nimbus-eth1/nimbus
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
..
beacon Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
common Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
core Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
db Aristo db api extensions for use as core db backend (#1754) 2023-09-15 16:23:53 +01:00
evm Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
graphql Implement EIP-4788: Beacon block root in the EVM (#1722) 2023-08-30 23:29:48 +07:00
rpc Remove unused files because of rebase conflict (#1748) 2023-09-13 11:42:39 +07:00
sync Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
transaction Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
utils Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
common.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
config.nim Add cli option for providing bootstrap and static peers by ENR (#1634) 2023-07-07 09:47:26 +02:00
constants.nim Implement EIP-4788: Beacon block root in the EVM (#1722) 2023-08-30 23:29:48 +07:00
errors.nim fix EIP-3860 bugs 2023-01-13 13:04:23 +07:00
launcher.nim Premix-related changes 2019-01-28 12:38:23 +02:00
lightchain_shell.nim Some renames 2018-05-28 13:22:28 +03:00
makefile Snap sync fix trie interpolation fringe condition (#1457) 2023-02-01 18:56:06 +00:00
nim.cfg NAT port mapping 2019-04-17 03:56:28 +02:00
nimbus.nim Implement beacon sync stub 2023-09-07 08:49:31 +07:00
rpc.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
stateless_runner.nim Unified database frontend integration (#1670) 2023-08-04 12:10:09 +01:00
tracer.nim Unified database frontend integration (#1670) 2023-08-04 12:10:09 +01:00
transaction.nim Bump stint to v2.0: new array backend (#1747) 2023-09-13 09:32:38 +07:00
version.nim dist: precompiled binaries and Docker images (#1015) 2022-03-27 13:21:15 +02:00
vm_compile_info.nim Prepare snap server client test scenario (#1483) 2023-03-02 09:57:58 +00:00
vm_computation.nim EVM cleanup 2023-08-29 07:12:31 +07:00
vm_gas_costs.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
vm_internals.nim EVM cleanup 2023-08-29 07:12:31 +07:00
vm_precompiles.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
vm_state.nim Fix EVM tracer: capture exception properly 2023-08-28 14:26:43 +07:00
vm_state_transactions.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
vm_types.nim Implement plugable EVM tracer 2023-08-03 16:45:39 +07:00