feat(node)!: adopt the released peer-stack cascade + read multi-frame chunk_lens layouts (#1668) - #114
Draft
MichaelTaylor3d wants to merge 3 commits into
Draft
feat(node)!: adopt the released peer-stack cascade + read multi-frame chunk_lens layouts (#1668)#114MichaelTaylor3d wants to merge 3 commits into
MichaelTaylor3d wants to merge 3 commits into
Conversation
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
force-pushed
the
loop/1668-cascade-adoption/dig-node
branch
from
July 27, 2026 15:22
9231303 to
63c5ed4
Compare
… 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>
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.
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_HOSTbrick (#1682), and reports the #1657 evidence.Refs #1668, #1641, #1682, #1657