nimbus-eth2/beacon_chain/networking
Etan Kissling 47639ef89c
replace `Eth2NetworkMetadata` case object with `Result` (#5452)
`Eth2NetworkMetadata` has an `incompatible` case to hold an error string
in case the loaded file is not compatible with the compile-time config.
The same can be modeled with a `Result[Eth2NetworkMetadata, string]` and
avoids followup checks for the `incompatible` case.
2023-09-22 23:45:24 +02:00
..
README.md Reorg (5/5) (#2377) 2021-03-05 14:12:00 +01:00
eth2_discovery.nim reduce `nim-eth` dependencies just for RNG (#5099) 2023-06-19 22:43:50 +00:00
eth2_network.nim BN+LC+SN: Fix cancellation deprecate warnings. (#5455) 2023-09-22 11:06:27 +00:00
libp2p_json_serialization.nim remove `{.raises: [Defect].}` Nim 1.2 compatibility (#5352) 2023-08-25 11:29:07 +02:00
network_metadata.nim replace `Eth2NetworkMetadata` case object with `Result` (#5452) 2023-09-22 23:45:24 +02:00
network_metadata_downloads.nim Support both snappy-encoded and pure SSZ genesis states 2023-09-12 01:52:15 +03:00
network_metadata_gnosis.S Revert "Revert "correctly align genesis size (#5244)" (#5253)" (#5254) 2023-08-04 20:49:12 +00:00
network_metadata_mainnet.S Revert "Revert "correctly align genesis size (#5244)" (#5253)" (#5254) 2023-08-04 20:49:12 +00:00
peer_pool.nim BN+LC+SN: Fix cancellation deprecate warnings. (#5455) 2023-09-22 11:06:27 +00:00
peer_scores.nim harden req/resp peer scoring (#4966) 2023-05-19 15:01:27 +03:00
topic_params.nim remove Nim 1.2-compatible `push raise`s and update copyright notice years (#4528) 2023-01-20 14:14:37 +00:00

README.md

Networking

This folders hold a collection of modules to:

  • configure the Eth2 P2P network
  • discover, connect, and maintain quality Eth2 peers

Data received is handed other to the ../gossip_processing modules for validation.

Security concerns

  • Collusion: part of the peer selection must be kept random. This avoids peers bringing all their friends and colluding against a beacon node.
  • Denial-of-service: The beacon node must provide ways to handle burst of data that may come:
    • from malicious nodes trying to DOS us
    • from long periods of non-finality, creating lots of forks, attestations, forks