Observer - P2P network crawler
Observer crawls the Ethereum network and collects information about the nodes.
Build
make observer
Run
observer --datadir ... --nat extip:<IP> --port <PORT>
Where IP
is your public IP, and PORT
has to be open for incoming UDP traffic.
See observer --help
for available options.
Report
To get the report about the currently known network state run:
observer report --datadir ...
Description
Observer uses discv4 protocol to discover new nodes.
Starting from a list of preconfigured "bootnodes" it uses FindNode
to obtain their "neighbor" nodes, and then recursively crawls neighbors of neighbors and so on.
Each found node is re-crawled again a few times.
If the node fails to be pinged after maximum attempts, it is considered "dead", but still re-crawled less often.
A separate "diplomacy" process is doing "handshakes" to obtain information about the discovered nodes.
It tries to get RLPx Hello
and Eth Status
from each node.
The handshake repeats a few times according to the configured delays.