This is the parent task for implemented a tiered memory pool. This allows many memory pool synchronization and optimizations in block propagation. The basic idea is that the memory pool will be tiered into three parts:
- Incubator
- Preconsensus Nursery
- Block construction pool
Incubator
New transactions are placed here.
Preconsensus Nursery
This nursery will be agreed upon by Bitcoin Cash nodes over some interval, and flushed to the Block construction pool as nodes come to agreement upon the set of transactions which are within this pool. Transactions may be added to this pool from the incubator, or rejected into the incubator.
Block construction pool
This pool contains a stable set of transactions to be included into any blocks which are created.