From f82f5a2e0bc7b049481750031fbfc02ac91d05fb Mon Sep 17 00:00:00 2001 From: Minh Doan Date: Sat, 10 Aug 2019 13:03:49 -0700 Subject: [PATCH] add doc design of tx pool --- core/tx_pool.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 core/tx_pool.md diff --git a/core/tx_pool.md b/core/tx_pool.md new file mode 100644 index 000000000..d0a69f086 --- /dev/null +++ b/core/tx_pool.md @@ -0,0 +1,41 @@ +# TxPool design +--------------- + + + +## Functionalities +1. Being a storage of coming transactions +2. Managing all tx policies/filters (see below) +3. Handling logic of accepting new txs and generating a new block of tx + + +## Policies + +### PriceLimit +This policy is to ensure that minimum gas price of a coming transaction should be enforced for acceptance into the pool. + +### PriceBump +This policy is to accept a later transaction from the sender with the same nonce of an accepted transaction and drop that accepted transaction if the gas price of later transaction is (100+PriceBump)% more than the gas price of the accepted transaction. + +### AccountSlots +This policy is to limit the number of executable transactions slots per account. + +### GlobalSlots +This policy is to limit the number of executable transactions slots of all accounts. + +### AccountQueue +This policy is to limit the number of non-executable transactions slots per account. The non-executable transactions are stored in a queue data structure. See later. +### GlobalQueue +This policy is to limit the number of non-executable transactions slots of all accounts. The non-executable transactions are stored in a queue data structure. See later. +### Lifetime +This policy is to limit the amount of time non-executable transactions are queued. + +### DropOldTx +This policy is to drop all transactions that are deemed too old + +### DropLowBalance +This policy is to drop all transactions that are too costly (low balance or out of gas) + +## Data Structure + +Coming up later.