Graph Commitments & Epoch Snapshots

One canonical epoch snapshot commitment per epoch — graph, seed, and artifact roots that serve as the reference for diffusion-derived claims.

Local Protocol finalizes one canonical epoch snapshot commitment per epoch. The ledger commits to snapshot roots and uses them as the canonical reference for any diffusion-derived claims.

Epochs

Time is divided into epochs . Each epoch defines:

  • a committed graph snapshot root
  • a committed teleport/seed root
  • a canonical randomness beacon
  • protocol parameters

Commitment structure

Partition nodes into shards . Each shard publishes:

The global graph root is:

Seed commitments (market-relative teleport)

Teleport is market-relative: each market marketId = m has its own protocol-committed teleport distribution .

To keep the fact layer compact while supporting many markets, the snapshot commits a root of roots:

Each per-market seed root commits to the seed-weight table for that market:

Snapshot artifact identifier (SnapshotId)

Audits require authenticated access to snapshot data (NodeRecords / EdgeRecords / alias tables). Each epoch therefore finalizes a Snapshot Artifact that is content-addressed and publicly retrievable.

At epoch , let SnapshotBlobHash_t be the content hash of the snapshot artifact bytes in the data layer (see Performance & Storage). The chain commits:

Proof-friendly snapshot packaging

To support efficient verification (including random-walk transcript checks), the snapshot is packaged in structures that are easy to open with Merkle proofs.

NodeRecord

For node :

  • nodeId: Address
  • marketOutIndexRoot: bytes32 — Merkle root of per-market outgoing-index entries keyed by marketId
  • nodeAttrRoot: bytes32 — root of node attributes (identity proofs, reputation flags, maturity gates)

Each per-market outgoing-index entry (opened by a Merkle proof from marketOutIndexRoot) is:

OutIndex(m)

  • marketId: uint32
  • outWeightSum: uint128 for this market
  • adjacencyRoot: bytes32 — Merkle root of outgoing edges in this market
  • aliasRoot: bytes32 — Merkle root of alias table for O(1) sampling of outgoing edges in this market
  • degree: uint32 — number of outgoing edges in this market

EdgeRecord

For an outgoing edge :

  • dst: Address
  • weight: uint128
  • edgeAttrRoot: bytes32 — service proof / dispute state commitments
  • marketId: uint32required market tag for commerce edges (“this edge belongs to market ”). marketId MUST match the registry-assigned marketId of the producing MarketContext at that block height.
  • flags: uint32 — dispute outcomes, maturity gating, etc.

For efficient verifiable sampling from , the protocol supports per-node, per-market alias tables (via OutIndex(m).aliasRoot):

  • alias entries deterministically derived from the market-scoped adjacency list
  • the table commits to sampling structure enabling O(1) verification of a sampled neighbor within the market context

Snapshot artifacts and data availability

Nodes can check availability via probabilistic sampling (DAS-style checks), as in LazyLedger and common DAS primers (e.g., Celestia’s Data Availability Sampling).

See: Performance & Storage