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
- a committed graph snapshot root
- a committed teleport/seed root
- a canonical randomness beacon
- protocol parameters
Commitment structure
Partition nodes into shards
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 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: AddressmarketOutIndexRoot: bytes32— Merkle root of per-market outgoing-index entries keyed bymarketIdnodeAttrRoot: 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: uint32outWeightSum: uint128—for this market adjacencyRoot: bytes32— Merkle root of outgoing edges in this marketaliasRoot: bytes32— Merkle root of alias table for O(1) sampling of outgoing edges in this marketdegree: uint32— number of outgoing edges in this market
EdgeRecord
For an outgoing edge
dst: Addressweight: uint128edgeAttrRoot: bytes32— service proof / dispute state commitmentsmarketId: uint32— required market tag for commerce edges (“this edge belongs to market”). marketIdMUST match the registry-assignedmarketIdof the producing MarketContext at that block height.flags: uint32— dispute outcomes, maturity gating, etc.
Alias tables (recommended)
For efficient verifiable sampling from 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
Related
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).