Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
2 tasks
meowsbits opened this issue Feb 19, 2020 · 2 comments
Closed
2 tasks

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

meowsbits opened this issue Feb 19, 2020 · 2 comments

Comments

@meowsbits
Copy link
Member

meowsbits commented Feb 19, 2020

Migrated from: etclabscore/multi-geth-fork#141
Original author: @meowsbits


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

  • bootnode list health checks to be undertaken systematically via a CI environment, where given parameters, inadequate bootnode lists can be flagged for review, purging of dead nodes, and addition of new ones
  • ideally, an environment which could not only provide a health check, but also provide information that could be used in the generation of healthy lists

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.

@meowsbits
Copy link
Member Author

Challenges:

  • Affirming the availability of nodes in a decentralized p2p network
    • Reachability (nodes might turn off then on, or might be unreachable due to business)
    • Nearness (nodes must be close enough for requests to survive TTL limits)
    • Friendliness (devp2p protocol does not demand or necessarily incentivize that nodes should actually respond to you)

@meowsbits
Copy link
Member Author

Closing via https://github.com/etclabscore/discv4-dns-lists and can use the Go test ref'd in #26 separately if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant