erigon-pulse/cmd/observer
battlmonstr 25b14edbf6
p2p: STUN external IP detection (#4195)
--nat stun is an automatic external IP detection alternative to manual --nat extip option.
It can be used both at home or on production servers without any extra setup.
It is fast (up to 5 ms) and more reliable than alternatives (as the request goes to the public internet).

This auto-detection is useful to run multiple instances of a service in cloud environments
where the node IPs are not known in advance.
2022-05-18 16:50:50 +01:00
..
database Observer - P2P network crawler (#3928) 2022-04-22 12:02:12 +01:00
observer p2p: STUN external IP detection (#4195) 2022-05-18 16:50:50 +01:00
reports Observer - P2P network crawler (#3928) 2022-04-22 12:02:12 +01:00
utils Observer - P2P network crawler (#3928) 2022-04-22 12:02:12 +01:00
main.go Observer - P2P network crawler (#3928) 2022-04-22 12:02:12 +01:00
README.md Observer - P2P network crawler (#3928) 2022-04-22 12:02:12 +01:00

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.