nimbus-eth1/nimbus/db
Jordan Hrycaj cd1d370543
Aristo db api extensions for use as core db backend (#1754)
* Update docu

* Update Aristo/Kvt constructor prototype

why:
  Previous version used an `enum` value to indicate what backend is to
  be used. This was replaced by using the backend object type.

* Rewrite `hikeUp()` return code into `Result[Hike,(Hike,AristoError)]`

why:
  Better code maintenance. Previously, the `Hike` object was returned. It
  had an internal error field so partial success was also available on
  a failure. This error field has been removed.

* Use `openArray[byte]` rather than `Blob` in functions prototypes

* Provide synchronised multi instance transactions

why:
  The `CoreDB` object was geared towards the legacy DB which used a single
  transaction for the key-value backend DB. Different state roots are
  provided by the backend database, so all instances work directly on the
  same backend.

  Aristo db instances have different in-memory mappings (aka different
  state roots) and the transactions are on top of there mappings. So each
  instance might run different transactions.

  Multi instance transactions are a compromise to converge towards the
  legacy behaviour. The synchronised transactions span over all instances
  available at the time when base transaction was opened. Instances
  created later are unaffected.

* Provide key-value pair database iterator

why:
  Needed in `CoreDB` for `replicate()` emulation

also:
  Some update of internal code

* Extend API (i.e. prototype variants)

why:
  Needed for `CoreDB` geared towards the legacy backend which has a more
  basic API than Aristo.
2023-09-15 16:23:53 +01:00
..
aristo Aristo db api extensions for use as core db backend (#1754) 2023-09-15 16:23:53 +01:00
core_db Unified database frontend integration (#1670) 2023-08-04 12:10:09 +01:00
kvt Aristo db api extensions for use as core db backend (#1754) 2023-09-15 16:23:53 +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 Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
aristo.nim Aristo db implement filter storage scheduler (#1713) 2023-08-25 23:53:59 +01:00
core_db.nim Aristo db refactor tx paradim (#1674) 2023-08-07 18:45:23 +01:00
distinct_tries.nim Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
geth_db.nim Unified database frontend integration (#1670) 2023-08-04 12:10:09 +01:00
incomplete_db.nim Unified database frontend integration (#1670) 2023-08-04 12:10:09 +01:00
kvstore_rocksdb.nim Silence compiler gossip after nim upgrade cont1 (#1455) 2023-01-31 01:32:17 +00:00
kvt.nim Simple stupid key-value table companion for Aristo DB (#1746) 2023-09-12 19:44:45 +01:00
select_backend.nim Unified database frontend integration (#1670) 2023-08-04 12:10:09 +01:00
state_db.nim Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
storage_types.nim implement EIP-1153: Transient storage 2023-06-23 14:04:36 +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