For the complete documentation index, see llms.txt. This page is also available as Markdown.

Verification

Verification rules ensure that incoming blocks and transactions are valid before they enter consensus.

Header validation

verify_header_params checks:

  • Custom data length and custom prefix for fork markers.

  • Presence of base_price.

  • Proof of Work validity (unless in catch-up mode or seed unknown).

  • Referee count bound and duplicate parent/referee hashes.

  • Basic timestamp validity (when enabled).

Block integrity

  • Transactions root is re-computed via MPT and compared to the header.

  • Block size is checked against max_block_size_in_bytes.

Transaction validation

  • Signature and encoding checks.

  • Gas, storage, and epoch height bounds.

  • Chain id and space-specific rules.

Base fee and gas checks

verify_sync_graph_ready_block verifies that:

  • Packed gas does not exceed per-space limits.

  • Base price is correctly derived from parent and gas usage.

Inclusion proofs

The verification module exposes helpers to compute and verify:

  • Transaction inclusion proofs.

  • Block receipt proofs.

  • Epoch receipt proofs.

These are used by RPCs and light client workflows.

Key source files

  • crates/mazzecore/core/src/verification.rs

  • crates/primitives/src/block_header.rs

  • crates/dbs/storage/src/impls/merkle_patricia_trie/trie_proof.rs

Last updated

Was this helpful?