nimbus-eth1/nimbus
Jordan Hrycaj 3e88589eb1
Optional accounts cache module for creating genesis (#1897)
* Split off `ReadOnlyStateDB` from `AccountStateDB` from `state_db.nim`

why:
  Apart from testing, applications use `ReadOnlyStateDB` as an easy
  way to access the accounts ledger. This is well supported by the
  `Aristo` db, but writable mode is only parially supported.

  The writable AccountStateDB` object for modifying accounts is not
  used by production code.

  So, for lecgacy and testing apps, the full support of the previous
  `AccountStateDB` is now enabled by `import db/state_db/read_write`
  and the `import db/state_db` provides read-only mode.

* Encapsulate `AccountStateDB` as `GenesisLedgerRef` or genesis creation

why:
  `AccountStateDB` has poor support for `Aristo` and is not widely used
   in favour of `AccountsLedger` (which will be abstracted as `ledger`.)

   Currently, using other than the `AccountStateDB` ledgers within the
   `GenesisLedgerRef` wrapper is experimental and test only. Eventually,
    the wrapper should disappear so that the `Ledger` object (which
    encapsulates `AccountsCache` and `AccountsLedger`) will prevail.

* For the `Ledger`, provide access to raw accounts `MPT`

why:
  This gives to the `CoreDbMptRef` descriptor from the `CoreDb` (which is
  the legacy version of 	CoreDxMptRef`.) For the new `ledger` API, the
  accounts are based on the `CoreDxMAccRef` descriptor which uses a
  particular sub-system for accounts while legacy applications use the
  `CoreDbPhkRef` equivalent of the `SecureHexaryTrie`.

  The only place where this feature will currently be used is the
 `genesis.nim` source file.

* Fix `Aristo` bugs, missing boundary checks, typos, etc.

* Verify root vertex in `MPT` and account constructors

why:
  Was missing so far, in particular the accounts constructor must
  verify `VertexID(1)

* Fix include file
2023-11-20 11:51:43 +00:00
..
beacon Engine API: Fix latestValidHash value when invalid timestamp detected 2023-11-05 10:52:27 +07:00
common Optional accounts cache module for creating genesis (#1897) 2023-11-20 11:51:43 +00:00
core Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
db Optional accounts cache module for creating genesis (#1897) 2023-11-20 11:51:43 +00:00
evm Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
graphql Fix TxPool when handling EIP-4844 blob tx (#1831) 2023-10-20 15:30:05 +07:00
rpc Add blobGasPrice and blobGasUsed to ReceiptObject of RPC 2023-11-02 11:38:07 +07:00
sync Aristo db update for short nodes key edge cases (#1887) 2023-11-08 12:18:32 +00:00
transaction More meaningful error message of processBlockBeaconRoot 2023-10-31 12:54:57 +07:00
utils Aristo db update for short nodes key edge cases (#1887) 2023-11-08 12:18:32 +00:00
common.nim implement better hardfork management 2022-12-02 13:51:42 +07:00
config.nim ValidIpAddress -> IpAddress related vendor bumps and changes (#1892) 2023-11-10 19:38:11 +01:00
constants.nim Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
errors.nim Core db update providing additional results code interface (#1776) 2023-09-26 10:21:13 +01:00
launcher.nim Add check copyright year linter to CI 2023-11-01 10:41:20 +07: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 Increase rpc server request limit to 2MB 2023-10-22 10:25:33 +07:00
rpc.nim Increase rpc server request limit to 2MB 2023-10-22 10:25:33 +07:00
stateless_runner.nim Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
tracer.nim Add check copyright year linter to CI 2023-11-01 10:41:20 +07:00
transaction.nim TxPool will not pack tx with invalid chainId 2023-11-01 08:56:57 +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 EIP-4844: Fix excessBlobGas handling (#1771) 2023-09-24 22:25:41 +07:00
vm_state_transactions.nim EIP-4788: Make it clear what is an EVM system call 2023-09-22 17:21:09 +07:00
vm_types.nim Implement EIP-7516: BLOBBASEFEE opcode (#1791) 2023-10-01 14:24:15 +07:00