Commit Graph

24 Commits

Author SHA1 Message Date
Jordan Hrycaj b623909c44
Ledger activate unified accounts cache wrapper (#1939)
* Activate `LedgerRef` wrapper for `AccountsCache`

details:
  `accounts_cache.nim` methods are indirectly processed by the wrapper
  methods from `ledger.nim`.

  This works for all sources except `test_state_db.nim` where the source
  `accounts_cache.nim` is included (rather than imported) in order to
  access objects privy to the very source.

* Provide facility to switch to a preselected `LedgerRef` type

details:
  Can be set as suggestion when initialising `CommonRef`

* Update `CoreDb` test suite for better time tracking

details:
+ Allow time logging by pre-defined block intervals
+ Print `CoreDb`/`Ledger`profiling results (if enabled)
2023-12-12 19:12:56 +00:00
jangko b0000eed8b
Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
Jordan Hrycaj 221e6c9e2f
Unified database frontend integration (#1670)
* Nimbus folder environment update

details:
* Integrated `CoreDbRef` for the sources in the `nimbus` sub-folder.
* The `nimbus` program does not compile yet as it needs the updates
  in the parallel `stateless` sub-folder.

* Stateless environment update

details:
* Integrated `CoreDbRef` for the sources in the `stateless` sub-folder.
* The `nimbus` program compiles now.

* Premix environment update

details:
* Integrated `CoreDbRef` for the sources in the `premix` sub-folder.

* Fluffy environment update

details:
* Integrated `CoreDbRef` for the sources in the `fluffy` sub-folder.

* Tools environment update

details:
* Integrated `CoreDbRef` for the sources in the `tools` sub-folder.

* Nodocker environment update

details:
* Integrated `CoreDbRef` for the sources in the
  `hive_integration/nodocker` sub-folder.

* Tests environment update

details:
* Integrated `CoreDbRef` for the sources in the `tests` sub-folder.
* The unit tests compile and run cleanly now.

* Generalise `CoreDbRef` to any `select_backend` supported database

why:
  Generalisation was just missed due to overcoming some compiler oddity
  which was tied to rocksdb for testing.

* Suppress compiler warning for `newChainDB()`

why:
  Warning was added to this function which must be wrapped so that
  any `CatchableError` is re-raised as `Defect`.

* Split off persistent `CoreDbRef` constructor into separate file

why:
  This allows to compile a memory only database version without linking
  the backend library.

* Use memory `CoreDbRef` database by default

detail:
 Persistent DB constructor needs to import `db/core_db/persistent

why:
 Most tests use memory DB anyway. This avoids linking `-lrocksdb` or
 any other backend by default.

* fix `toLegacyBackend()` availability check

why:
  got garbled after memory/persistent split.

* Clarify raw access to MPT for snap sync handler

why:
  Logically, `kvt` is not the raw access for the hexary trie (although
  this holds for the legacy database)
2023-08-04 12:10:09 +01:00
Adam Spitz c921135e2e
Refactored to introduce distinct types AccountsTrie and StorageTrie. (#1490)
This is in preparation for working on stateless mode; it's useful to
have a clearer and more type-safe interface for accessing accounts
versus slots.
2023-03-10 13:42:37 -05:00
Kim De Mey 73e93f1f11
Reduce Nim 1.6 compiler warnings & hints
* Reduce Nim 1.6 compiler warnings/hints for Fluffy and Nimbus proxy

Mostly raises Defect removals, TaintedString removal and some
unnecessary imports.

Also updating the copyright years alongside.

* Further reduce Nim 1.6 compiler warnings/hints for Nimbus
2023-01-31 13:38:08 +01:00
jangko 3d468a7a4c
fixes path pointing to eth_tests 2021-01-06 21:45:48 +07:00
jangko 69787ed96a
fixes test_block_witness 2021-01-06 18:47:44 +07:00
jangko c8871bd00c
fix test_block_witness 2020-07-09 08:25:18 +07:00
jangko 61c60abdf2
block witness new spec impl 2020-05-14 11:09:01 +07:00
jangko af28985f6e
fix error message in tests 2020-05-14 06:58:34 +07:00
andri lim 37db9a55ee
deals with touched/not touched account code 2020-05-05 15:21:39 +07:00
andri lim 743759a979
wrong address ignored 2020-05-05 15:05:17 +07:00
andri lim e9191fefa1
witness builder major transformation, support multiproof 2020-05-05 13:50:31 +07:00
andri lim 1ef3f60b40
validate the branch of the constructed trie beside validate rootHash 2020-05-03 08:11:04 +07:00
andri lim fdb750f67e
implement witness header encoding decoding and implement buildForest 2020-04-29 15:29:25 +07:00
andri lim 90c2ede43b
deals with EIP170 error 2020-04-29 13:06:27 +07:00
andri lim 4974ca49db
fix buildWitness API 2020-04-29 13:06:27 +07:00
andri lim a540b8cbeb
InputStream still unstable, use seq[byte] again 2020-04-29 13:06:25 +07:00
andri lim 692bed176e
allow test_block_witness to run single test 2020-04-29 13:06:24 +07:00
andri lim 73c487fdb0
switch back to InputStream 2020-04-29 13:06:22 +07:00
andri lim 323204d939
deals with short node len < 32 2020-04-29 13:06:22 +07:00
andri lim 2b00c1923a
block witness test using jsonTest new feature 2020-04-29 13:06:21 +07:00
andri lim c33fb4deed
block witness: trie node encoding roundtrip test success using recursive functions 2020-04-29 13:06:20 +07:00
andri lim 5ae1bac115
implement crude block witness tester 2020-04-29 13:05:20 +07:00