nimbus-eth1/nimbus
Jordan Hrycaj a1161b537b
Core db update storage root management for sub tries (#1964)
* Aristo: Re-phrase `LayerDelta` and `LayerFinal` as object references

why:
  Avoids copying in some cases

* Fix copyright header

* Aristo: Verify `leafTie.root` function argument for `merge()` proc

why:
  Zero root will lead to inconsistent DB entry

* Aristo: Update failure condition for hash labels compiler `hashify()`

why:
  Node need not be rejected as long as links are on the schedule. In
  that case, `redo[]` is to become `wff.base[]` at a later stage.

  This amends an earlier fix, part of #1952 by also testing against
  the target nodes of the `wff.base[]` sets.

* Aristo: Add storage root glue record to `hashify()` schedule

why:
  An account leaf node might refer to a non-resolvable storage root ID.
  Storage root node chains will end up at the storage root. So the link
  `storage-root->account-leaf` needs an extra item in the schedule.

* Aristo: fix error code returned by `fetchPayload()`

details:
  Final error code is implied by the error code form the `hikeUp()`
  function.

* CoreDb: Discard `createOk` argument in API `getRoot()` function

why:
  Not needed for the legacy DB. For the `Arsto` DB, a lazy approach is
  implemented where a stprage root node is created on-the-fly.

* CoreDb: Prevent `$$` logging in some cases

why:
  Logging the function `$$` is not useful when it is used for internal
  use, i.e. retrieving an an error text for logging.

* CoreDb: Add `tryHashFn()` to API for pretty printing

why:
  Pretty printing must not change the hashification status for the
  `Aristo` DB. So there is an independent API wrapper for getting the
  node hash which never updated the hashes.

* CoreDb: Discard `update` argument in API `hash()` function

why:
  When calling the API function `hash()`, the latest state is always
  wanted. For a version that uses the current state as-is without checking,
  the function `tryHash()` was added to the backend.

* CoreDb: Update opaque vertex ID objects for the `Aristo` backend

why:
  For `Aristo`, vID objects encapsulate a numeric `VertexID`
  referencing a vertex (rather than a node hash as used on the
  legacy backend.) For storage sub-tries, there might be no initial
  vertex known when the descriptor is created. So opaque vertex ID
  objects are supported without a valid `VertexID` which will be
  initalised on-the-fly when the first item is merged.

* CoreDb: Add pretty printer for opaque vertex ID objects

* Cosmetics, printing profiling data

* CoreDb: Fix segfault in `Aristo` backend when creating MPT descriptor

why:
  Missing initialisation  error

* CoreDb: Allow MPT to inherit shared context on `Aristo` backend

why:
  Creates descriptors with different storage roots for the same
  shared `Aristo` DB descriptor.

* Cosmetics, update diagnostic message items for `Aristo` backend

* Fix Copyright year
2024-01-11 19:11:38 +00:00
..
beacon Bump nim-web3: remove rpc types duplicates 2023-12-13 07:58:12 +07:00
common Bump json-serialization to v0.2.0: Improve lexer flexibility 2023-12-26 17:27:06 +07:00
core Bump nim-web3: remove rpc types duplicates 2023-12-13 07:58:12 +07:00
db Core db update storage root management for sub tries (#1964) 2024-01-11 19:11:38 +00:00
evm Fix vmflags for witness generation 1934. (#1961) 2024-01-09 23:15:19 +08:00
graphql Fix TxPool when handling EIP-4844 blob tx (#1831) 2023-10-20 15:30:05 +07:00
rpc Implementation of Nimbus eth_getProof RPC Endpoint. (#1960) 2024-01-09 10:05:52 +08:00
sync Aristo db update for short nodes key edge cases (#1887) 2023-11-08 12:18:32 +00:00
transaction Bump nim-web3: remove rpc types duplicates 2023-12-13 07:58:12 +07:00
utils Ledger activate unified accounts cache wrapper (#1939) 2023-12-12 19:12:56 +00:00
common.nim
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
makefile Snap sync fix trie interpolation fringe condition (#1457) 2023-02-01 18:56:06 +00:00
nim.cfg
nimbus.nim Increase rpc server request limit to 2MB 2023-10-22 10:25:33 +07:00
rpc.nim Bump nim-web3: remove rpc types duplicates 2023-12-13 07:58:12 +07:00
stateless_runner.nim Ledger activate unified accounts cache wrapper (#1939) 2023-12-12 19:12:56 +00:00
tracer.nim Bump nim-web3: remove rpc types duplicates 2023-12-13 07:58:12 +07:00
transaction.nim TxPool will not pack tx with invalid chainId 2023-11-01 08:56:57 +07:00
version.nim
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
vm_internals.nim EVM cleanup 2023-08-29 07:12:31 +07:00
vm_precompiles.nim
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