nimbus-eth1/nimbus/db
Jordan Hrycaj 6d132811ba
Core db update providing additional results code interface (#1776)
* Split `core_db/base.nim` into several sources

* Rename `core_db/legacy.nim` => `core_db/legacy_db.nim`

* Update `CoreDb` API, dual methods returning `Result[]` or plain value

detail:
  Plain value methods implemet the legacy API, they defect on error results

* Redesign `CoreDB` direct backend access

why:
  Made the `backend` directive integral part of the API

* Discontinue providing unused or otherwise available functions

details:
+ setTransactionID() removed, not used and not easily replicable in Aristo
+ maybeGet() removed, available via direct backend access
+ newPhk() removed, never used & was experimental anyway

* Update/reorg backend API

why:
+ Added error print function `$$()`
+ General descriptor completion (and optional validation) via `bless()`

* Update `Aristo`/`Kvt` exception handling

why:
  Avoid `CatchableError` exceptions, rather pass them as error code where
  appropriate.

* More `CoreDB` compliant `Aristo` and `Kvt` methods

details:
+ Providing functions like `contains()`, `getVtxRc()` (returns `Result[]`).
+ Additional error code: `NotImplemented`

* Rewrite/reorg of Aristo DB constructor

why:
  Previously used global object `DefaultQidLayoutRef` as default
  initialiser. This object was created at compile time which lead to
  non-gc safe functions.

* Update nimbus/db/core_db/legacy_db.nim

Co-authored-by: Kim De Mey <kim.demey@gmail.com>

* Update nimbus/db/aristo/aristo_transcode.nim

Co-authored-by: Kim De Mey <kim.demey@gmail.com>

* Update nimbus/db/core_db/legacy_db.nim

Co-authored-by: Kim De Mey <kim.demey@gmail.com>

---------

Co-authored-by: Kim De Mey <kim.demey@gmail.com>
2023-09-26 10:21:13 +01:00
..
aristo Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
core_db Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
kvt Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
notused Unified database frontend integration (#1670) 2023-08-04 12:10:09 +01:00
access_list.nim implement EIP-1153: Transient storage 2023-06-23 14:04:36 +07:00
accounts_cache.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
aristo.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
core_db.nim Aristo db refactor tx paradim (#1674) 2023-08-07 18:45:23 +01:00
distinct_tries.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
geth_db.nim Unified database frontend integration (#1670) 2023-08-04 12:10:09 +01:00
incomplete_db.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
kvstore_rocksdb.nim Silence compiler gossip after nim upgrade cont1 (#1455) 2023-01-31 01:32:17 +00:00
kvt.nim Core db aristo and kvt updates preparing for integration (#1760) 2023-09-18 21:20:28 +01:00
select_backend.nim Unified database frontend integration (#1670) 2023-08-04 12:10:09 +01:00
state_db.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
storage_types.nim Refactor beacon skeleton (#1761) 2023-09-19 11:52:28 +07:00
transient_storage.nim implement EIP-1153: Transient storage 2023-06-23 14:04:36 +07:00
values_from_bytes.nim More work on stateless mode (#1535) 2023-04-12 08:39:11 -04:00