Skip to content

docs(protocol): document uniform server-side chain-anchor enforcement on dig.fetchRange - #67

Merged
MichaelTaylor3d merged 2 commits into
mainfrom
docs/1764-uniform-anchor-enforcement
Aug 6, 2026
Merged

docs(protocol): document uniform server-side chain-anchor enforcement on dig.fetchRange#67
MichaelTaylor3d merged 2 commits into
mainfrom
docs/1764-uniform-anchor-enforcement

Conversation

@MichaelTaylor3d

Copy link
Copy Markdown
Contributor

Coherence companion to dig-node PR #188 (closes DIG-Network/dig_ecosystem#1764 + #1765).

What changed in the protocol

The dig.fetchRange peer-serve arm now enforces the same chain-anchor pin as dig.getContent and the /s read path: a serving peer fails closed with -32005 ROOT_NOT_ANCHORED for a store with no confirmed on-chain generation, an unreachable chain, or a client-named superseded/forged root — rather than streaming an unanchored generation. Previously the anchor gate was reader-side only on this path; it is now enforced server-side too (defense-in-depth). The docs framed dig.fetchRange verification as reader-side; this corrects and completes that.

Edits

  • docs/protocol/peer-network.md — new normative Server-side enforcement section (#server-side-enforcement); the dig.fetchRange range-error table gains the -32005 row; the "advisory echo" root note + "Any source, one root" rule now point at the server-side gate.
  • docs/protocol/verification-and-provenance.md — "uniform pinning on every serve path" (was "on the read path"); adds that dig.fetchRange enforces the identical gate; a new paragraph clarifying source is orthogonal to verification (a peer/gateway-served resource is exactly as verified as a local one — the reader re-binds every response to its own pinned root) and that unverified only happens under the DIG_NODE_PIN=off dev opt-out.
  • docs/protocol/dig-rpc.md — the -32005 row + the node-profile methods paragraph note the dig.fetchRange serve-arm enforcement.
  • scripts/dig-spec.mjs (source of truth) — dig.fetchRange description + the ROOT_NOT_ANCHORED catalog prose updated; static/openrpc.json / openrpc-node.json / error-codes.json regenerated from it (drift-gate consistent).

Self-contained, positive-voice, no internal-file references. package.json 0.12.2 → 0.13.0 (minor — a new documented protocol section + regenerated machine contracts).


Generated by Claude Code

claude added 2 commits August 6, 2026 04:03
Co-Authored-By: Claude <noreply@anthropic.com>
… on dig.fetchRange

The dig.fetchRange peer-serve arm now enforces the same chain-anchor pin as
dig.getContent and the /s read path (dig-node #1764/#1765): a serving peer fails
closed with -32005 ROOT_NOT_ANCHORED for an unanchored/no-confirmed-generation
store, an unreachable chain, or a superseded/forged requested root, rather than
streaming an unanchored generation. Adds a normative Server-side enforcement
section to peer-network.md, broadens the verification-and-provenance + dig-rpc
-32005 prose, clarifies source is orthogonal to verification, and regenerates
the OpenRPC + error-code artifacts from dig-spec.mjs.

Co-Authored-By: Claude <noreply@anthropic.com>
@MichaelTaylor3d
MichaelTaylor3d merged commit b0ea18d into main Aug 6, 2026
7 checks passed
@MichaelTaylor3d
MichaelTaylor3d deleted the docs/1764-uniform-anchor-enforcement branch August 6, 2026 04:35
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.

2 participants