feat: v2.8.0#5477
Merged
Merged
Conversation
akrem-chabchoub
approved these changes
May 26, 2026
martinconic
approved these changes
May 26, 2026
acud
approved these changes
May 26, 2026
janos
approved these changes
May 27, 2026
Member
janos
left a comment
There was a problem hiding this comment.
This is a larger changeset that include also conflicts resolution, which is not so clear to track what has changed. The release v2.8.0 is tagged on a commit that is not on a master, not even on any dedicated branch in this repository, so the git exact state of that release will not be on the master branch.
In order not to introduce any regressions, it is needed to check the conflict resolution between the tagged release, master and the branch on this PR, I have used range diff git range-diff origin/feat/v2.8.0..v2.8.0 origin/master..origin/feat/v2.8.0 with coordination with Ljubisa.
martinconic
added a commit
that referenced
this pull request
May 28, 2026
Resolve conflicts from v2.8.0 (#5477): - cmd.go: keep node-mode flag and deprecated full-node path while adding master's chequebook-verification and chequebook-min-balance flags; keep chequebook-enable default of false. - node.go: take master's chain-enabled chequebook factory init (wallet ERC20 resolution); adapt new chequebook-verification check to use NodeMode == FullMode instead of the removed FullNodeMode field. - packaging/*.yaml: keep the section-organized layout and add the new chequebook-verification option.
martinconic
added a commit
that referenced
this pull request
May 28, 2026
…s-config-5475 Resolve conflicts from v2.8.0 (#5477): - pkg/config/chain_test.go (add/add): keep both this branch's BzzAddress tests and master's TestDeriveChequebookBytecodeHash helper; merge imports. - pkg/node/node.go: drop master's duplicate "chainCfg, found := config.GetByChainID(chainID)" in the new chequebook-verification block; reuse the one this branch already moved up for BzzAddress resolution.
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.
Checklist
Description
Bundles three related peer-identity features into the v2.8.0 release. Each BzzAddress is now signed over more fields and verified before it can enter the address book.
Overlay nonce in signature — the BzzAddress signature now covers the overlay nonce, and hive gossip validates this signature before storing records instead of accepting them at face value. Protocol version bumped.
Signed timestamps on address records — every BzzAddress carries a signed Unix timestamp. Future timestamps beyond clock-skew tolerance are rejected; gossip updates must be strictly newer and outside a minimum update interval, while handshake updates bypass the interval check for legitimate live reconnects. Zero-timestamp records are treated as legacy.
Chequebook address verification — every BzzAddress carries the peer's chequebook contract address, covered by the signature. On first ingestion three on-chain checks run:
issuer()matches the peer's Ethereum address, deployed bytecode hash matches the canonical ERC20SimpleSwap hash, and balance meets a minimum threshold. A uniqueness check enforces a 1-to-1 overlay↔chequebook mapping. The address book acts as the verification gate (owner/bytecode checks cached on entry); balance is re-checked on each handshake. Verification is permissive when the verifier is not wired up.A statestore migration re-wraps existing legacy address-book entries into the new verified envelope format.
Open API Spec Version Changes (if applicable)
Motivation and Context (Optional)
Related Issue (Optional)
Screenshots (if appropriate):
AI Disclosure