Skip to content

feat(node)!: adopt the released peer-stack cascade + read multi-frame chunk_lens layouts (#1668) - #114

Closed
MichaelTaylor3d wants to merge 3 commits into
mainfrom
loop/1668-cascade-adoption/dig-node
Closed

feat(node)!: adopt the released peer-stack cascade + read multi-frame chunk_lens layouts (#1668)#114
MichaelTaylor3d wants to merge 3 commits into
mainfrom
loop/1668-cascade-adoption/dig-node

Conversation

@MichaelTaylor3d

Copy link
Copy Markdown
Contributor

WIP lane anchor. Adopts dig-nat 0.14 / dig-dht 0.8 / dig-download 0.12 / dig-peer 0.7 / dig-peer-selector 0.7 / dig-gossip v0.17.0, lifts the readable-resource ceiling via the paged prologue, fixes the IPv6-literal DIG_NODE_HOST brick (#1682), and reports the #1657 evidence.

Refs #1668, #1641, #1682, #1657

MichaelTaylor3d and others added 2 commits July 27, 2026 06:22
Refs #1668

Co-Authored-By: Claude <noreply@anthropic.com>
Adopt the released peer-stack cascade from crates.io plus the dig-gossip
v0.17.0 tag:

- dig-nat 0.13 -> 0.14
- dig-dht 0.7 -> 0.8
- dig-download 0.11 -> 0.12
- dig-peer 0.6 -> 0.7
- dig-peer-selector 0.6 -> 0.7
- dig-gossip git rev b065e70c -> ce6cce75 (tag v0.17.0), in lockstep with
  the two workspace `[patch.crates-io]` revs for its vendored
  chia-protocol / chia-sdk-client forks (a git dep's own patches do not
  apply transitively, so the root manifest re-declares them).

BREAKING CHANGE: the peer stack moves to the 0.14 dig-nat generation; a
host embedding dig-node-core must move its own peer-stack deps in lockstep.

Refs #1668

Co-Authored-By: Claude <noreply@anthropic.com>
@MichaelTaylor3d
MichaelTaylor3d force-pushed the loop/1668-cascade-adoption/dig-node branch from 9231303 to 63c5ed4 Compare July 27, 2026 15:22
… the node

`Config::bind_addr` rendered its authority as `format!("{host}:{port}")`, which is
invalid for every IPv6 literal: `DIG_NODE_HOST=::1` produced the unbindable
`::1:9778`, and the primary bind failure is documented as FATAL — so one missing
pair of brackets stopped the node from starting at all. The same string is reused
for the CLI control-plane URL and `/health`'s `addr`, so all three were affected.

Both `bind_addr` and `bind_addr_v6` now render through `SocketAddr`, which brackets
a v6 literal for free. `open::browser_host` was already correct (it bracketed by
hand) but built its authority with the same banned idiom; it becomes
`browser_authority`, rendering an explicit host through `SocketAddr` and
interpolating only the port for the `localhost` NAME case.

That empties the `banned_address_patterns` tracked-violation list, which the guard
also used as its cross-crate reach detector. Since an empty list makes that
assertion trivially true, the detector is replaced by an explicit
`SIBLING_CRATE_UNDER_SCAN` assertion, which holds whether or not anything is ever
tracked again, and the entry-matching self-test now runs against a synthetic list
rather than going vacuous.

SPEC.md §4.1 states the rendering requirement normatively.

BREAKING CHANGE: an operator who set an IPv6 `DIG_NODE_HOST` and worked around the
fatal bind failure by also setting a v4 host now gets the v6 bind they asked for.

Refs #1682, #1593

Co-Authored-By: Claude <noreply@anthropic.com>
@MichaelTaylor3d

Copy link
Copy Markdown
Contributor Author

Closing: fully superseded on main, both halves, with no unique content left.

  • The peer-stack cascade this PR carried (dig-nat 0.13→0.14, dig-dht 0.7→0.8, dig-download 0.11→0.12, dig-peer 0.6→0.7, dig-peer-selector 0.6→0.7, dig-gossip → the 0.17 line) landed via chore(deps)!: bump dig-gossip to v0.17.12 (duplicate-connection fixes #1691/#1703/#1762) #118 (502458bf), which went further and pinned dig-gossip v0.17.12 for the duplicate-connection fixes #1691/#1703/#1762 — a strictly newer rev than the v0.17.0 tag here — plus the multi-frame chunk_lens read path.
  • The fix(config)! IPv6-authority fix landed independently as fcd4ef1 "fix(config)!: type the socket authority so an unbracketed IPv6 host cannot render", released in v0.66.0. Config::host is now a typed IpAddr and bind_addr/bind_addr_v6 render through SocketAddr, so the unbracketed-literal defect is structurally unreachable rather than patched — and its regression pin (the_localhost_tier_url_brackets_an_ipv6_host) is on main too.
  • The banned_address_patterns.rs churn here was cascade adaptation; main compiles and tests green against dig-nat 0.14, so nothing is owed.

Nothing to rebase. Superseded rather than abandoned — the work shipped, by a different route.

Co-Authored-By: Claude noreply@anthropic.com

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.

1 participant