Mempool¶
Mempool maintains the node's working set of pending transactions. It tracks the nonces and resource credits reserved by those transactions and supplies candidate transactions to Block Producer.
A transaction in Mempool has not been included in the canonical chain.
Dependencies and inputs¶
Mempool connects to RabbitMQ and coordinates with Chain. It observes:
- transactions accepted or rejected during validation;
- accepted blocks that may include pending transactions or change their validity; and
- irreversible blocks that allow old fork state to be discarded.
Outputs and interfaces¶
Its RPC interface provides pending-transaction lookup, pending counts, account nonce checks, and reserved resource-credit information. After accepting a pending transaction, Mempool broadcasts that updated view. It also forwards a processed accepted-block event used by Block Producer.
State and consistency¶
The selected release uses a fork-aware Koinos state database for working state. Mempool state is transient relative to the blockchain: transactions can be included, invalidated by a state change, displaced by a fork, expire, or be removed under service policy.
Consequently, finding a transaction in Mempool does not guarantee inclusion in a block. If Mempool is unavailable, transaction queries and block assembly are affected even though Chain can continue validating blocks received from peers.