nimbus-eth1/nimbus/core/tx_pool
Jordan Hrycaj 14c3772545
On demand mpt revisited (#2426)
* rebased from `github/on-demand-mpt`

ackn:
  wip: on-demand mpt construction

  Given that actual data is stored in the `Vertex` structure, it's useful
  to think of the MPT as a cache for computing roots rather than being a
  functional requirement on its own.

  This PR engenders this line of thinking by incrementally computing the
  MPT only when it's needed, ie when a state (or similar) root is needed.

  This has the effect of siginficantly reducing memory usage as well as
  improving performance:

  * no need for dirty-mpt-node book-keeping
  * no need to build complex forest of upcoming hashing work
  * only hashes that are functionally needed are ever computed -
  intermediate nodes whose MTP root is not observed are never computed /
  processed

* Unit test hot fixes

* Unit test hot fixes cont.

(somehow lost that part)

---------

Co-authored-by: Jacek Sieka <jacek@status.im>
2024-06-28 15:03:12 +00:00
..
tx_chain Simplify txpool baseFeeGet (#2416) 2024-06-27 12:54:36 +07:00
tx_tabs Allocation-free nibbles buffer (#2406) 2024-06-22 22:33:37 +02:00
tx_tasks On demand mpt revisited (#2426) 2024-06-28 15:03:12 +00:00
tx_chain.nim Simplify txpool baseFeeGet (#2416) 2024-06-27 12:54:36 +07:00
tx_desc.nim remove expicit PoW support from tx pool; tighten tx pool exceptions specs (#2235) 2024-05-28 20:26:51 +02:00
tx_gauge.nim Silence compiler gossip after nim upgrade (#1454) 2023-01-30 22:10:23 +00:00
tx_info.nim TxPool will not pack tx with invalid chainId 2023-11-01 08:56:57 +07:00
tx_item.nim Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
tx_tabs.nim results: use canonical import (#2248) 2024-05-30 14:54:03 +02:00