Can someone explain in short how the peering system works:

  • How peers are initially found in a new installation?

  • How peers are added and removed?

  • If/how peers are subject to quality controls?


How are peers initially found?

Every Ethereum client stores hardcoded so called "boot nodes" or another way to retrieve some nodes as a starting point. An example can be found here: https://github.com/ethereum/go-ethereum/blob/master/params/bootnodes.go

How are new peers added / removed?

The clients add new peers with the help of their current peers. After the initial start up of an Ethereum client, the first peers are retrieved from the boot nodes. Peers are removed by disconnecting from them and, if desired, by temporarily or permanently blacklisting them.

Are peers subject to quality controls and yes, how?

I am not sure about this point in Ethereum, but intuitively I think that every client decides by his own if a peer has a negative impact. For example, if a peer creates a huge network load by spamming (invalid) transactions.

From using bitcoin clients in the past I know, that crawlers exist. Those are "collectors of peer addresses". They search the network for valid bitcoin node addresses and store them. They can then distribute those addresses between the known peers. What I have recognized by running a bitcoin node is that those crawlers remember your address and the quality of your node. For example, if your node is unavailable a lot of the time or unstable, they will eventually remove you from their lists and probably blacklist your for an unknown period of time.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.