fix(kademlia): always connect to bootnodes on startup to identify them #4910
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Checklist
Description
For fresh nodes, bootnodes are discovered and are excluded from any protocol requests. For older nodes, however, because there are other peers in the addressbook, it may not have to call
connectBootNodes
to discover peers from the network. The older node may also connect to the bootnode at some point because there will an entry for it in the addressbook without realizing that the peer is in fact a bootnode. As a result, the node may accidently send protocol requests to the bootnode.As such, it's important that on every start up, the node discovers the bootnodes to exclude the bootnodes from the protocol requests peer list.
We are also persisting which peers are bootnodes so that "always discover" part can be removed in the future.
Open API Spec Version Changes (if applicable)
Motivation and Context (Optional)
Related Issue (Optional)
Screenshots (if appropriate):