zebrad::components

Module mempool

source
Expand description

Zebra mempool.

A zebrad application component that manages the active collection, reception, gossip, verification, in-memory storage, eviction, and rejection of unmined Zcash transactions (those that have not been confirmed in a mined block on the blockchain).

Major parts of the mempool include:

  • Mempool Service
    • activates when the syncer is near the chain tip
    • spawns download and verify tasks for each crawled or gossiped transaction
    • handles in-memory storage of unmined transactions
  • Crawler
    • runs in the background to periodically poll peers for fresh unmined transactions
  • Queue Checker
    • runs in the background, polling the mempool to store newly verified transactions
  • Transaction Gossip Task
    • runs in the background and gossips newly added mempool transactions to peers

Re-exportsยง

Modulesยง

Structsยง

  • The mempool transaction crawler.
  • Mempool async management and query service.
  • The mempool queue checker.
  • Hold mempool verified and rejected mempool transactions.

Enumsยง

  • ActiveState ๐Ÿ”’
    The state of the mempool.
  • Transactions rejected based on transaction authorizing data (scripts, proofs, signatures), or lock times. These rejections are only valid for the current tip.
  • Mempool errors.
  • Transactions rejected based only on their effects (spends, outputs, transaction header). These rejections are valid while the current chain continues to grow.
  • Transactions rejected based only on their effects (spends, outputs, transaction header). These rejections are only valid for the current tip.

Type Aliasesยง