14c3772545
* 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> |
||
---|---|---|
.. | ||
bootstrap | ||
customgenesis | ||
db | ||
fixtures | ||
graphql | ||
keystore | ||
merge | ||
replay | ||
rpc | ||
test_aristo | ||
test_beacon | ||
test_coredb | ||
test_jwt_auth | ||
test_txpool | ||
README.md | ||
all_tests.nim | ||
all_tests_macro.nim | ||
asynctest.nim | ||
evm_tests.nim | ||
macro_assembler.nim | ||
nim.cfg | ||
persistBlockTestGen.nim | ||
test_allowed_to_fail.nim | ||
test_aristo.nim | ||
test_block_fixture.nim | ||
test_blockchain_json.nim | ||
test_code_stream.nim | ||
test_config.nim | ||
test_configuration.nim | ||
test_coredb.nim | ||
test_difficulty.nim | ||
test_eip4844.nim | ||
test_filters.nim | ||
test_forkid.nim | ||
test_gas_meter.nim | ||
test_generalstate_json.nim | ||
test_genesis.nim | ||
test_getproof_json.nim | ||
test_graphql.nim | ||
test_helpers.nim | ||
test_jwt_auth.nim | ||
test_ledger.nim | ||
test_memory.nim | ||
test_merge.nim | ||
test_misc.nim | ||
test_multi_keys.nim | ||
test_op_arith.nim | ||
test_op_bit.nim | ||
test_op_custom.nim | ||
test_op_env.nim | ||
test_op_memory.nim | ||
test_op_misc.nim | ||
test_overflow.nim | ||
test_persistblock_json.nim | ||
test_precompiles.nim | ||
test_rpc.nim | ||
test_rpc_experimental_json.nim | ||
test_rpc_getproofs_track_state_changes.nim | ||
test_stack.nim | ||
test_state_db.nim | ||
test_tools_build.nim | ||
test_tracer_json.nim | ||
test_transaction_json.nim | ||
test_txpool.nim | ||
test_txpool2.nim | ||
test_wire_protocol.nim | ||
tracerTestGen.nim |
README.md
tests
TODO: more GeneralStateTest fixtures!