Conversation
4114c46 to
8596b11
Compare
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
This was referenced Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
arya2
reviewed
Feb 10, 2026
arya2
reviewed
Feb 10, 2026
| | | | transaction relay. See ZIP 239 | | ||
| | | | [#zip-0239]_. | | ||
| +---------+-------------------------------------+------------------------------------------+ | ||
| | 170040 | ``MIN_TESTNET_PEER_PROTO_VERSION`` | Minimum protocol version for Testnet | |
Collaborator
There was a problem hiding this comment.
Suggested change
| | 170040 | ``MIN_TESTNET_PEER_PROTO_VERSION`` | Minimum protocol version for Testnet | | |
| | 170030 | ``MIN_TESTNET_PEER_PROTO_VERSION`` | Minimum protocol version for Testnet | |
This is currently implemented as 170110 and 170120 in Zebra right now (for NU6)
Contributor
Author
There was a problem hiding this comment.
Hm, wasn't it updated for NU6.1? Does that mean that unmodified NU6 peers will still be connecting to the NU6.1 testnet?
Collaborator
There was a problem hiding this comment.
The MIN*_PEER_PROTOCOL_VERSION constants are an initial check on connections, they are not what causes clients with version too low for the current epoch to be dropped. So they will be connecting and then getting dropped. I was at some point arguing for these constants to be raised more aggressively and the handshake simplified, but the latter wasn't a high priority and the former didn't make much difference on its own.
arya2
previously approved these changes
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
daira
reviewed
Feb 10, 2026
Replaces the Reserved stub with a comprehensive specification covering message framing, connection handshake, all 19 message types, block and transaction relay, peer discovery, misbehavior scoring, and network upgrade peer management. All constants derived from the zcashd reference implementation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix "order of preference" phrasing for peer discovery mechanisms - Replace "zcashd reference implementation" with "zcashd implementation" throughout and document Zebra's corresponding values - Remove integer type table (belongs in protocol spec) - Add note that CompactSize is not formally defined in protocol spec - Add RFC 4291 reference for IPv4-mapped IPv6 addresses - Spell out "little-endian" instead of abbreviating "LE" - Add Protocol Version Negotiation section to clarify ambiguous "the protocol version" usage - Spell out bit numbering convention for service flags - Add reference to zcashd PR #7039 for alert removal - Note ZIP 155 for addrv2 deployment version assignment status Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace undefined ``bool`` with ``uint8``; 0 for false, 1 for true in the version message relay field - Change "Unix epoch time" / "Unix timestamp" to "Unix-epoch UTC time in seconds" for all timestamp fields Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Revise DNS seeding to describe both zcashd and Zebra behavior - Remove zcashd-specific SeedSpec6 reference from hardcoded seeds - Clarify command string validation: "ignored" not "rejected"; enumerate all currently used command strings - Use $k$ inline math syntax instead of :math: for service flags - Rewrap pong timeout line with "a corresponding pong" - Fix getblocks/getheaders descriptions: "up to and including hash_stop" and explicit MUST NOT limits - Soften misbehavior penalties from MUST to SHOULD (overspecification) - Note that zcashd does not use headers-first sync (refs zcashd#6292) - Make MSG_TX MUST for v4 transactions (bidirectional requirement) - "To impede" instead of "To prevent" for trickling rationale - "halved rounding down" instead of "halved via integer right-shift" - "its view of the current chain tip" for transaction expiry - Remove orphan expiration check interval (overspecification) - Simplify shielded eligibility to "fully transparent transactions" - Document relay fee complexity with zcashd source reference - Use "zcashd-specific rate-limiting" and "token-bucket algorithm" - Reorder references per ZIP convention (BCP14, RFCs, protocol spec, ZIPs, BIPs, external) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Capitalize "Bloom" filter throughout (named after Burton Howard Bloom) - Capitalize "Testnet" and "Mainnet" in protocol version note - Add version validation disconnect summary to Protocol Version Negotiation section - relay field: no text change needed (informational links noted) - MSG_TX MUST for v4: already addressed in prior commit - MIN_TESTNET_PEER_PROTO_VERSION: confirmed 170040 matches zcashd Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Zebra strictly validates that the relay field is 0 or 1; zcashd accepts any non-zero value as true via implicit C++ bool conversion. Use SHOULD to recommend validation without making zcashd non-conformant. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Replaces the Reserved stub with a comprehensive specification covering message framing, connection handshake, all 19 message types, block and transaction relay, peer discovery, misbehavior scoring, and network upgrade peer management. All constants derived from the zcashd reference implementation.
Fixes #352