erigon-pulse/cmd/observer
Mark Holt 19bc328a07
Added db loggers to all db callers and fixed flag settings (#9099)
Mdbx now takes a logger - but this has not been pushed to all callers -
meaning it had an invalid logger

This fixes the log propagation.

It also fixed a start-up issue for http.enabled and txpool.disable
created by a previous merge
2023-12-31 17:10:08 +07:00
..
database torrent: add --webseeds cli arg (#8176) 2023-09-12 12:18:47 +07:00
observer Added db loggers to all db callers and fixed flag settings (#9099) 2023-12-31 17:10:08 +07:00
reports Grow string builders (#6192) 2022-12-04 10:51:20 +07:00
utils go1.19 gofmt (#4988) 2022-08-10 19:04:13 +07:00
main.go rpcdaemon: must not create db - because doesn't know right parameters (#8445) 2023-10-12 14:11:46 +07:00
README.md

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.