nimbus-eth1/nimbus/db/kvt
Jordan Hrycaj 61bbf40014
Update storage tree admin (#2419)
* Tighten `CoreDb` API for accounts

why:
  Apart from cruft, the way to fetch the accounts state root via a
  `CoreDbColRef` record was unnecessarily complicated.

* Extend `CoreDb` API for accounts to cover storage tries

why:
  In future, this will make the notion of column objects obsolete. Storage
  trees will then be indexed by the account address rather than the vertex
  ID equivalent like a `CoreDbColRef`.

* Apply new/extended accounts API to ledger and tests

details:
  This makes the `distinct_ledger` module obsolete

* Remove column object constructors

why:
  They were needed as an abstraction of MPT sub-trees including storage
  trees. Now, storage trees are handled by the account (e.g. via address)
  they belong to and all other trees can be identified by a constant well
  known vertex ID. So there is no need for column objects anymore.

  Still there are some left-over column object methods wnich will be
  removed next.

* Remove `serialise()` and `PayloadRef` from default Aristo API

why:
  Not needed. `PayloadRef` was used for unstructured/unknown payload
  formats (account or blob) and `serialise()` was used for decodng
  `PayloadRef`. Now it is known in advance what the payload looks
  like.

* Added query function `hasStorageData()` whether a storage area exists

why:
  Useful for supporting `slotStateEmpty()` of the `CoreDb` API

* In the `Ledger` replace `storage.stateEmpty()` by 	`slotStateEmpty()`

* On Aristo, hide the storage root/vertex ID in the `PayloadRef`

why:
  The storage vertex ID is fully controlled by Aristo while the
  `AristoAccount` object is controlled by the application. With the
  storage root part of the `AristoAccount` object, there was a useless
  administrative burden to keep that storage root field up to date.

* Remove cruft, update comments etc.

* Update changed MPT access paradigms

why:
  Fixes verified proxy tests

* Fluffy cosmetics
2024-06-27 09:01:26 +00:00
..
kvt_delta Triggered write event for kvt (#2351) 2024-06-13 18:15:11 +00:00
kvt_desc Cache code and invalid jump destination tables (fixes #2268) (#2404) 2024-06-21 09:44:10 +02:00
kvt_init Use RocksDb column family handles instead of name strings. (#2418) 2024-06-27 16:51:43 +08:00
kvt_tx Triggered write event for kvt (#2351) 2024-06-13 18:15:11 +00:00
kvt_walk Aristo: Update unit test suite (#2002) 2024-02-01 21:27:48 +00:00
kvt_api.nim Cache code and invalid jump destination tables (fixes #2268) (#2404) 2024-06-21 09:44:10 +02:00
kvt_constants.nim Core db use differential tx layers for aristo and kvt (#1949) 2023-12-19 12:39:23 +00:00
kvt_debug.nim Aristo db kvt maintenance update (#1952) 2023-12-20 16:19:00 +00:00
kvt_delta.nim Triggered write event for kvt (#2351) 2024-06-13 18:15:11 +00:00
kvt_desc.nim Triggered write event for kvt (#2351) 2024-06-13 18:15:11 +00:00
kvt_init.nim Core db use differential tx layers for aristo and kvt (#1949) 2023-12-19 12:39:23 +00:00
kvt_layers.nim Update storage tree admin (#2419) 2024-06-27 09:01:26 +00:00
kvt_persistent.nim Aristo update rocksdb backend drivers (#2135) 2024-04-16 20:39:11 +00:00
kvt_tx.nim Triggered write event for kvt (#2351) 2024-06-13 18:15:11 +00:00
kvt_utils.nim Cache code and invalid jump destination tables (fixes #2268) (#2404) 2024-06-21 09:44:10 +02:00
kvt_walk.nim Core db use differential tx layers for aristo and kvt (#1949) 2023-12-19 12:39:23 +00:00