You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement BIP434 Peer Feature Negotiation in crates/p2p so bitcoin-rs can negotiate independent P2P extensions with compatible peers. Bitcoin Core implements BIP434 (PR #35221); BIP332 depends on it.
Implementation
Raise the advertised P2P protocol version to 70017 when BIP434 is supported, preserving normal compatibility with older peers.
Add the feature message codec: featureid length 4–80, featuredata length ≤512, minimal CompactSize encoding, exact payload consumption, and bounded parsing. Support the BIP324 v2 short message ID 37 for pre-verack messages.
Send and accept feature announcements after version and before verack, within the existing handshake FSM and peer capability state. Never send them to peers advertising a protocol version below 70017.
Ignore well-formed unknown feature IDs. Make enabled features available to existing peer dispatch/relay logic without introducing an independent handshake/peer-state owner.
Closing the implementation issue: the BIP434 feature-message codec, protocol-version/handshake integration, v1/v2 transport handling, version-gated announcements, and malformed/legacy-peer regression coverage are present on main (see the merged protocol stack, #1697, and crates/p2p/src/feature.rs, handshake.rs, fsm.rs).
Live interoperability with a BIP434-capable Bitcoin Core build and further external qualification have not been claimed or measured here. Those are follow-up qualification activities, not a reason to keep the implemented feature request indefinitely open. Reopen or file a focused issue if a concrete interoperability failure is reproduced. Closing as completed for the implementation scope.
Activity
gosunuts commentedon Oct 28, 2026
Closing the implementation issue: the BIP434 feature-message codec, protocol-version/handshake integration, v1/v2 transport handling, version-gated announcements, and malformed/legacy-peer regression coverage are present on
main(see the merged protocol stack, #1697, andcrates/p2p/src/feature.rs,handshake.rs,fsm.rs).Live interoperability with a BIP434-capable Bitcoin Core build and further external qualification have not been claimed or measured here. Those are follow-up qualification activities, not a reason to keep the implemented feature request indefinitely open. Reopen or file a focused issue if a concrete interoperability failure is reproduced. Closing as completed for the implementation scope.
fix(p2p): enforce BIP434 send windows and reject duplicate versions (#…