pub struct DecodeReceipt {Show 14 fields
pub code_id: String,
pub decoder: String,
pub check_matrix_hash: [u8; 32],
pub syndrome_hash: [u8; 32],
pub correction_hash: [u8; 32],
pub converged: bool,
pub rounds: u32,
pub work_messages: u64,
pub joules_micro: u64,
pub grant: GrantRef,
pub parent_receipt_hash: Option<[u8; 32]>,
pub signer_pubkey: [u8; 32],
pub signer_id: String,
pub sig: [u8; 64],
}Expand description
A signed, joule-metered, grant-authorized record of ONE quantum error-correction DECODE: it binds the code (its parity-check matrix), the measured syndrome, and the decoder parameters that went IN, to the correction and convergence that came OUT — plus the classical work (message passes) and joules the decode cost.
A real-time QEC decoder is the classical bottleneck of a fault-tolerant
machine: it must return a correction for every syndrome round inside the code
cycle, and its energy budget is a hard system constraint. Yet no decoder today
reports joules-per-decode, and none signs the correction it emitted. This
receipt does both — (check-matrix hash, syndrome hash, decoder params) → (correction hash, converged, work, joules), content-addressed and budget-
gated. The decode is byte-exact (a deterministic fixed-point decoder), so the
correction reproduces from the receipt and verifies with a public key.
logical_success is deliberately NOT a field: whether a correction leaves a
logical error is knowable only in simulation (it needs the true error), not to
a real decoder seeing only a syndrome. The receipt attests what a real decoder
actually knows: it converged (the correction reproduces the syndrome) at this
energy cost.
Fields§
§code_id: StringThe code decoded: "toric:L5", "bb:[[72,12]]".
decoder: StringThe decoder: "relay-bp.min-sum".
check_matrix_hash: [u8; 32]Content hash of the canonical parity-check matrix (the code’s identity).
syndrome_hash: [u8; 32]Content hash of the input syndrome.
correction_hash: [u8; 32]Content hash of the emitted correction.
converged: boolThe correction reproduces the syndrome (H·correction == syndrome).
rounds: u32Relay legs / BP rounds the decode used (informational, part of the work).
work_messages: u64Classical work: total messages passed. Deterministic and byte-portable — the exact figure the modeled/measured joules is derived from.
joules_micro: u64Measured (or modeled) energy of the decode (µJ). Attested by the signature.
grant: GrantRef§parent_receipt_hash: Option<[u8; 32]>§signer_pubkey: [u8; 32]§signer_id: String§sig: [u8; 64]Implementations§
Source§impl DecodeReceipt
impl DecodeReceipt
Sourcepub fn seal(
signer: &SigningKey,
signer_id: impl Into<String>,
code_id: impl Into<String>,
decoder: impl Into<String>,
check_matrix_hash: [u8; 32],
syndrome_hash: [u8; 32],
correction_hash: [u8; 32],
converged: bool,
rounds: u32,
work_messages: u64,
joules_micro: u64,
grant: GrantRef,
parent_receipt_hash: Option<[u8; 32]>,
) -> DecodeReceipt
pub fn seal( signer: &SigningKey, signer_id: impl Into<String>, code_id: impl Into<String>, decoder: impl Into<String>, check_matrix_hash: [u8; 32], syndrome_hash: [u8; 32], correction_hash: [u8; 32], converged: bool, rounds: u32, work_messages: u64, joules_micro: u64, grant: GrantRef, parent_receipt_hash: Option<[u8; 32]>, ) -> DecodeReceipt
Build and sign a decode receipt.
pub fn honors_budget(&self) -> bool
Sourcepub fn verify(&self) -> bool
pub fn verify(&self) -> bool
Merkle recomputes (the correction binds to the exact code + syndrome), joules within the grant ceiling, signature valid.
Sourcepub fn correction_matches(&self, correction_bytes: &[u8]) -> bool
pub fn correction_matches(&self, correction_bytes: &[u8]) -> bool
Confirm the correction bytes bind to this receipt’s correction_hash.
Sourcepub fn code_matches(&self, matrix_bytes: &[u8]) -> bool
pub fn code_matches(&self, matrix_bytes: &[u8]) -> bool
Confirm a supplied parity-check matrix binds to this receipt’s code.
pub fn receipt_hash(&self) -> [u8; 32]
pub fn to_json(&self) -> String
pub fn from_json(s: &str) -> Option<DecodeReceipt>
Trait Implementations§
Source§impl Clone for DecodeReceipt
impl Clone for DecodeReceipt
Source§fn clone(&self) -> DecodeReceipt
fn clone(&self) -> DecodeReceipt
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more