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][
storage::Storage] of unmined transactions
- 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.
Transaction downloader and verifier.
The mempool transaction crawler.
Mempool async management and query service.
The mempool queue checker.
Transactions rejected based on transaction authorizing data (scripts, proofs, signatures), These rejections are only valid for the current tip.
A mempool service request.
A response to a mempool service request.
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.