Skip to main content

Module vid

Module vid 

Source
Expand description

Verifiable information dispersal (VID) for the new protocol.

A block’s payload is erasure-coded per namespace and spread across the committee so the block can be recovered from any subset of storage nodes whose shards cover the recovery threshold. This module owns the three stages of that lifecycle, one per submodule:

  • disperse – the leader side. VidDisperser erasure-codes each namespace, coalesces namespaces into size-balanced buckets, and unicasts to every node a stream of AvidmGf2DisperseShareFragment messages (one per bucket), each carrying that node’s shares for the bucket’s namespaces.

  • fragments – the receive side of dispersal, the mirror of VidDisperser. VidFragmentAccumulator buffers the fragments a node receives for its own share and, once every namespace has arrived, reassembles them into a complete VidDisperseShare2. That share is then verified, attached to this node’s vote, and fed to the reconstructor.

  • reconstruct – block recovery. VidReconstructor collects the verified shares contributed by many voters (each node’s own share, carried on its vote) and decodes the payload once their shards cover the recovery threshold.

Modules§

disperse 🔒
fragments 🔒
reconstruct 🔒

Structs§

VidDisperseOutput
VidDisperseRequest
VidDisperser
VidFragmentAccumulator
VidReconstructError
A failed reconstruction attempt for one view and claimed commitment.
VidReconstructOutput
VidReconstructor

Enums§

VidDisperseError
VidFragmentError
VidReconstructErrorKind
Why a reconstruction attempt failed.