Skip to main content

BlobAdmissionIsBounded

Trait BlobAdmissionIsBounded 

Source
pub trait BlobAdmissionIsBounded: CorrectValidator { }
Expand description

Lemma (Unpaid blob storage is bounded). A validator’s storage of blobs that no certified block references is bounded, so pushing data at a validator buys neither storage nor availability.

This is the companion to BlobRetention. Retention says a certified block’s blobs stay available; without a matching bound on uncertified ones, “blobs are available” would be an invitation to store anything for free.

Proof. Blobs arrive ahead of certification only through ChainWorkerState::handle_pending_blob, which admits one only if it is expected: it must belong to a pending proposal or validated block for this chain, or the call fails with WorkerError::UnexpectedBlob. Admission is then bounded twice over by the committee’s ResourceControlPolicy — in count, ensure!(count < policy.maximum_published_blobs) with WorkerError::TooManyPublishedBlobs, and in size, by check_blob_size against maximum_blob_size. The staging areas themselves are per-chain view state (pending_proposed_blobs, pending_validated_blobs) and are cleared when the chain manager is reset for the next height.

Publication that does survive is charged: the policy prices it at blob_published per blob and blob_byte_published per byte, paid by the block that publishes it. ∎

The economic side is out of scope. That those prices cover the cost of keeping a blob for as long as BlobRetention requires is an economic question this specification does not address; it treats the fee schedule as given.

Implementors§