You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.1 KiB

  1. # Mempool Functionality
  2. The mempool maintains a list of potentially valid transactions,
  3. both to broadcast to other nodes, as well as to provide to the
  4. consensus reactor when it is selected as the block proposer.
  5. There are two sides to the mempool state:
  6. - External: get, check, and broadcast new transactions
  7. - Internal: return valid transaction, update list after block commit
  8. ## External functionality
  9. External functionality is exposed via network interfaces
  10. to potentially untrusted actors.
  11. - CheckTx - triggered via RPC or P2P
  12. - Broadcast - gossip messages after a successful check
  13. ## Internal functionality
  14. Internal functionality is exposed via method calls to other
  15. code compiled into the tendermint binary.
  16. - Reap - get tx to propose in next block
  17. - Update - remove tx that were included in last block
  18. - ABCI.CheckTx - call ABCI app to validate the tx
  19. What does it provide the consensus reactor?
  20. What guarantees does it need from the ABCI app?
  21. (talk about interleaving processes in concurrency)
  22. ## Optimizations
  23. Talk about the LRU cache to make sure we don't process any
  24. tx that we have seen before