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
- 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
- User-configurable mempool parameters.
- crawler 🔒Zebra Mempool crawler.
- Transaction downloader and verifier.
- error 🔒Errors that can occur when interacting with the mempool.
- A task that gossips any
zebra_chain::transaction::UnminedTxIdthat enters the mempool to peers.
- Zebra Mempool queue checker.
- storage 🔒Mempool transaction storage.
- The mempool transaction crawler.
- Mempool async management and query service.
- The mempool queue checker.
- Hold mempool verified and rejected mempool transactions.
- 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.