nimbus-eth1/tests
Jordan Hrycaj a84a2131cd
No ext update (#2494)
* Imported/rebase from `no-ext`, PR #2485

  Store extension nodes together with the branch

  Extension nodes must be followed by a branch - as such, it makes sense
  to store the two together both in the database and in memory:

  * fewer reads, writes and updates to traverse the tree
  * simpler logic for maintaining the node structure
  * less space used, both memory and storage, because there are fewer
    nodes overall

  There is also a downside: hashes can no longer be cached for an
  extension - instead, only the extension+branch hash can be cached - this
  seems like a fine tradeoff since computing it should be fast.

  TODO: fix commented code

* Fix merge functions and `toNode()`

* Update `merkleSignCommit()` prototype

why:
  Result is always a 32bit hash

* Update short Merkle hash key generation

details:
  Ethereum reference MPTs use Keccak hashes as node links if the size of
  an RLP encoded node is at least 32 bytes. Otherwise, the RLP encoded
  node value is used as a pseudo node link (rather than a hash.) This is
  specified in the yellow paper, appendix D.

  Different to the `Aristo` implementation, the reference MPT would not
  store such a node on the key-value database. Rather the RLP encoded node value is stored instead of a node link in a parent node
  is stored as a node link on the parent database.

  Only for the root hash, the top level node is always referred to by the
  hash.

* Fix/update `Extension` sections

why:
  Were commented out after removal of a dedicated `Extension` type which
  left the system disfunctional.

* Clean up unused error codes

* Update unit tests

* Update docu

---------

Co-authored-by: Jacek Sieka <jacek@status.im>
2024-07-16 19:47:59 +00:00
..
bootstrap config: fix new config based on input from jamie and zahary 2021-09-18 17:34:51 +07:00
customgenesis Enable test_accounts_cache (#2373) 2024-06-17 14:19:12 +02:00
db Added support for namespaces to RocksDb kvstore. (#2066) 2024-03-12 11:04:46 +08:00
fixtures Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
graphql Workaround for 0 gas price estimation (#2180) 2024-05-28 13:36:38 +07:00
keystore implement more eth rpc and keystore management 2020-07-23 14:54:32 +07:00
merge reenable testEngineAPI in test_merge 2022-03-17 12:54:04 +07:00
replay rm PoW hash function and validation support (#2372) 2024-06-16 10:22:06 +07:00
rpc Cleanup stateless and block witness code. (#2295) 2024-06-08 15:05:00 +07:00
test_aristo No ext update (#2494) 2024-07-16 19:47:59 +00:00
test_beacon Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
test_coredb Separate constructor helpers for core db and ledger (#2480) 2024-07-12 19:32:31 +00:00
test_jwt_auth Enable JWT authentication for websockets (#1039) 2022-04-06 15:11:13 +01:00
test_txpool Convert GasInt to uint64, bump nim-eth and nimbus-eth2 (#2461) 2024-07-07 06:52:11 +00:00
all_tests.nim Convert GasInt to uint64, bump nim-eth and nimbus-eth2 (#2461) 2024-07-07 06:52:11 +00:00
all_tests_macro.nim Cache code and invalid jump destination tables (fixes #2268) (#2404) 2024-06-21 09:44:10 +02:00
asynctest.nim Core db and aristo updates for destructor and tx logic (#1894) 2023-11-16 19:35:03 +00:00
macro_assembler.nim avoid allocations for slot storage (#2455) 2024-07-04 23:48:45 +00:00
nim.cfg import: read from era files (#2254) 2024-05-31 09:13:56 +02:00
persistBlockTestGen.nim Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
test_allowed_to_fail.nim ForkedChain implementation (#2405) 2024-06-26 07:27:48 +07:00
test_aristo.nim No ext update (#2494) 2024-07-16 19:47:59 +00:00
test_block_fixture.nim Core db and aristo updates for destructor and tx logic (#1894) 2023-11-16 19:35:03 +00:00
test_blockchain_json.nim Update storage tree admin (#2419) 2024-06-27 09:01:26 +00:00
test_config.nim Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
test_configuration.nim Cleanup stateless and block witness code. (#2295) 2024-06-08 15:05:00 +07:00
test_coredb.nim No ext update (#2494) 2024-07-16 19:47:59 +00:00
test_difficulty.nim Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
test_eip4844.nim Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
test_evm_support.nim odds and ends (#2481) 2024-07-13 20:42:49 +02:00
test_filters.nim Bump nim-web3 and others 2024-01-14 10:41:23 +07:00
test_forked_chain.nim Core db remove legacy phrases (#2468) 2024-07-10 12:19:35 +00:00
test_forkid.nim Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
test_generalstate_json.nim Reduce EVM complexity by removing forkOverride (#2448) 2024-07-04 15:48:36 +02:00
test_genesis.nim No ext update (#2494) 2024-07-16 19:47:59 +00:00
test_getproof_json.nim Remove AccountStateDB (#2368) 2024-06-16 10:21:02 +07:00
test_graphql.nim Bump nim-eth, nim-web3, nimbus-eth2 (#2344) 2024-06-14 14:31:08 +07:00
test_helpers.nim Cache code and invalid jump destination tables (fixes #2268) (#2404) 2024-06-21 09:44:10 +02:00
test_jwt_auth.nim enable JWT auth tests (#2312) 2024-06-07 09:01:45 +07:00
test_ledger.nim Separate config for core db and ledger (#2479) 2024-07-12 13:12:25 +00:00
test_merge.nim Culling legacy DB and accounts cache (#2197) 2024-05-20 10:17:51 +00:00
test_multi_keys.nim Cleanup stateless and block witness code. (#2295) 2024-06-08 15:05:00 +07:00
test_op_arith.nim Fix styles and reduce compiler warnings (#2086) 2024-03-20 14:35:38 +07:00
test_op_bit.nim Fix styles and reduce compiler warnings (#2086) 2024-03-20 14:35:38 +07:00
test_op_custom.nim Fix styles and reduce compiler warnings (#2086) 2024-03-20 14:35:38 +07:00
test_op_env.nim Remove EVM indirect imports and unused EVM errors (#2370) 2024-06-17 09:56:39 +02:00
test_op_memory.nim Culling legacy DB and accounts cache (#2197) 2024-05-20 10:17:51 +00:00
test_op_misc.nim Fix styles and reduce compiler warnings (#2086) 2024-03-20 14:35:38 +07:00
test_persistblock_json.nim Consolidate block type for block processing (#2325) 2024-06-09 16:32:20 +02:00
test_precompiles.nim Reduce EVM complexity by removing forkOverride (#2448) 2024-07-04 15:48:36 +02:00
test_rpc.nim Core db remove legacy phrases (#2468) 2024-07-10 12:19:35 +00:00
test_rpc_experimental_json.nim Consolidate block type for block processing (#2325) 2024-06-09 16:32:20 +02:00
test_rpc_getproofs_track_state_changes.nim Remove AccountStateDB (#2368) 2024-06-16 10:21:02 +07:00
test_tools_build.nim Add t8n debugging tool and fix EVM regression (#2386) 2024-06-19 08:58:08 +07:00
test_tracer_json.nim Core db remove legacy phrases (#2468) 2024-07-10 12:19:35 +00:00
test_transaction_json.nim Fix lowest-hanging fruit in VM (#2382) 2024-06-18 07:55:35 +07:00
test_txpool.nim Convert GasInt to uint64, bump nim-eth and nimbus-eth2 (#2461) 2024-07-07 06:52:11 +00:00
test_txpool2.nim Use simpler schema when writing transactions, receipts, and withdrawals (#2420) 2024-06-29 12:43:17 +07:00
test_wire_protocol.nim Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
tracerTestGen.nim Remove EVM indirect imports and unused EVM errors (#2370) 2024-06-17 09:56:39 +02:00