etclabscore / multi-geth-fork

GNU Lesser General Public License v3.0
3 stars 8 forks source link

feat: bootnodes healthcheck CI (& generator/aggregator?) #141

Open meowsbits opened 4 years ago

meowsbits commented 4 years ago

Bootnodes are nodes that "cold" clients (protocol providers) use to establish a connection with the peer-to-peer network. Inadequate bootnodes for a network can cause either slow or impossible network connections.

Bootnode lists are currently hardcoded for each supported network. But liveness (useability) checks are never systematically undertaken, which can cause p2p issues if the lists get invalidated. The current system for bootnode addition is essentially that a node or nodes are proposed, a developer reviews the proposed enodes by pinging them manually (over an arbitrary and variable time course), and then approves the addition. Same, but backwards, for removal.

This feature prop wants to establish a system for

This would remove tedious developer burden, reduce connection failures, and, in essence, move toward systematizing variables for a critical first process for all devp2p networks.

soc1c commented 4 years ago

what about bootnodes that are temporarily offline?

meowsbits commented 4 years ago

Bootnodes should not normally be temporarily offline ("You had 1 job..." :joy_cat:) . And if and when they are, it should be for short enough periods that the chances of coincidence with reachability tests should be very small (assuming we don't want tests that intentionally run for v long times).