nimbus-eth2/beacon_chain/networking
Etan Kissling 17ee40b39b
make blobs use less quota when other nodes sync from us (#6120)
Each individual blob currently uses as much quota from the network limit
as an entire block does, 128 items per second shared across all peers.
Blobs are 128 KB each instead of up to several MB and are simpler to
encode. There can be multiple per block (6 currently), so allow 2000
blobs per second across all peers. That decreases the cost per block
from `3125 + 3125 * blobs.len` quota (= `[3125, 21875]`) to a lower
`3125 + 200 * blobs.len` quota (= `[3125, 4325]`), accounting for the
slight increase in data transfer and encoding time.
2024-03-22 02:36:08 +01:00
..
README.md Reorg (5/5) (#2377) 2021-03-05 14:12:00 +01:00
eth2_discovery.nim remove unnecessary exports in `eth2_discovery` (#5987) 2024-02-28 13:34:16 +00:00
eth2_network.nim make blobs use less quota when other nodes sync from us (#6120) 2024-03-22 02:36:08 +01:00
eth2_protocol_dsl.nim simplify eth2_network error handling (#5765) 2024-01-19 21:05:52 +00:00
libp2p_json_serialization.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
network_metadata.nim fix `/eth/v1/beacon/deposit_snapshot` for EIP-4881 (#6038) 2024-03-08 14:22:03 +01:00
network_metadata_downloads.nim add missing `std/` prefix to more imports (#5696) 2024-01-06 07:18:28 +01: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 load Goerli metadata from `goerli` repo (#5680) 2024-01-02 16:15:44 +01:00
peer_pool.nim unrevert more of https://github.com/status-im/nimbus-eth2/pull/5765 (#5834) 2024-01-29 08:35:16 +01:00
peer_protocol.nim automated consensus spec URL updating to v1.4.0 (#6074) 2024-03-14 07:26:36 +01:00
peer_scores.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
topic_params.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01: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