Skip to content

feat: v2.8.0#5477

Merged
acud merged 6 commits into
masterfrom
feat/v2.8.0
May 27, 2026
Merged

feat: v2.8.0#5477
acud merged 6 commits into
masterfrom
feat/v2.8.0

Conversation

@gacevicljubisa
Copy link
Copy Markdown
Member

@gacevicljubisa gacevicljubisa commented May 26, 2026

Checklist

  • I have read the coding guide.
  • My change requires a documentation update, and I have done it.
  • I have added tests to cover my changes.
  • I have filled out the description and linked the related issues.

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

  • This PR contains code that has been generated by an LLM.
  • I have reviewed the AI generated code thoroughly.
  • I possess the technical expertise to responsibly review the code generated in this PR.

@gacevicljubisa gacevicljubisa requested review from acud, akrem-chabchoub, janos, martinconic and sbackend123 and removed request for janos May 26, 2026 10:47
Copy link
Copy Markdown
Member

@janos janos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@acud acud merged commit 11668f8 into master May 27, 2026
15 checks passed
@acud acud deleted the feat/v2.8.0 branch May 27, 2026 18:16
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants