Crate zebra_state

Source
Expand description

State contextual verification and storage code for Zebra.

§Correctness

Await UTXO and block commit requests should be wrapped in a timeout, because:

  • await UTXO requests wait for a block containing that UTXO, and
  • contextual verification and state updates wait for all previous blocks.

Otherwise, verification of out-of-order and invalid blocks can hang indefinitely.

Re-exports§

Modules§

  • Consensus critical contextual checks
  • Cached state configuration for Zebra.
  • Constants that impact state behaviour.

Structs§

  • A chain tip block, with precalculated block data.
  • A chain tip change monitor.
  • A sender for changes to the non-finalized and finalized chain tips.
  • A block ready to be committed directly to the finalized state with a small number of checks if compared with a ContextuallyVerifiedBlock.
  • A wrapper for type erased errors that is itself clonable and implements the Error trait
  • An error describing the reason a semantically verified block could not be committed to the state.
  • A contextually verified block, ready to be committed directly to the finalized state with no checks, if it becomes the root of the best non-finalized chain.
  • Efficient access to the state’s current best chain tip.
  • Information about a transaction in the best chain
  • The state of the chains in memory, including queued blocks.
  • A transparent output’s index in its transaction.
  • A transparent output’s location in the chain, by block height and transaction index.
  • A read-only service for accessing Zebra’s cached blockchain state.
  • A block which has undergone semantic validation and has been prepared for contextual validation.
  • A transaction’s index in its block.
  • A transaction’s location in the chain, by block height and transaction index.
  • Efficient access to state data via a tokio watch::Receiver channel, while avoiding deadlocks.
  • Wrapper struct to ensure high-level zebra-state database access goes through the correct API.

Enums§

Traits§

Functions§

Type Aliases§