feat(p2p): automatically detect changes in announce P2P IP#22405
Open
spypsy wants to merge 4 commits intomerge-train/spartanfrom
Open
feat(p2p): automatically detect changes in announce P2P IP#22405spypsy wants to merge 4 commits intomerge-train/spartanfrom
spypsy wants to merge 4 commits intomerge-train/spartanfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes A-310
Re-implements the IP auto-detection that was reverted in #21606, fixing the bootstrap node deadlock that caused nextnet to fail.
Root cause of the original failure: PR #21606 removed the upfront
getPublicIp()call for all nodes, including bootstrap nodes. Bootstrap nodes need an IP in their ENR before any peers connect .Fix: Only bootstrap nodes call
getPublicIp(). Non-bootstrap nodes discover their IP entirely through discv5's PONG-based voting mechanism (enrUpdate), removing the dependency on checkip.amazonaws.com.Changes
enrUpdatewhenqueryForIpis set (not just whenp2pIpis absent). SetpingIntervalto 10s (vs default 300s) so PONG votes arrive promptly. Emitip:changedevent onmultiaddrUpdated.ip:changedevents to libp2p'sAddressManagerviaaddObservedAddr/confirmObservedAddr. Allow starting without an announce address whenqueryForIpis enabled.getPublicIp()call, make synchronous. Non-bootstrap nodes no longer hit the AWS checkip endpoint.