nimbus-eth1/nimbus/db
Jordan Hrycaj e14fd4b96c
Prep for full sync after snap make 6 (#1291)
* Update log ticker, using time interval rather than ticker count

why:
  Counting and logging ticker occurrences is inherently imprecise. So
  time intervals are used.

* Use separate storage tables for snap sync data

* Left boundary proof update

why:
  Was not properly implemented, yet.

* Capture pivot in peer worker (aka buddy) tasks

why:
  The pivot environment is linked to the `buddy` descriptor. While
  there is a task switch, the pivot may change. So it is passed on as
  function argument `env` rather than retrieved from the buddy at
  the start of a sub-function.

* Split queues `fetchStorage` into `fetchStorageFull` and `fetchStoragePart`

* Remove obsolete account range returned from `GetAccountRange` message

why:
  Handler returned the wrong right value of the range. This range was
  for convenience, only.

* Prioritise storage slots if the queue becomes large

why:
  Currently, accounts processing is prioritised up until all accounts
  are downloaded. The new prioritisation has two thresholds for
  + start processing storage slots with a new worker
  + stop account processing and switch to storage processing

also:
  Provide api for `SnapTodoRanges` pair of range sets in `worker_desc.nim`

* Generalise left boundary proof for accounts or storage slots.

why:
  Detailed explanation how this works is documented with
  `snapdb_accounts.importAccounts()`.

  Instead of enforcing a left boundary proof (which is still the default),
  the importer functions return a list of `holes` (aka node paths) found in
  the argument ranges of leaf nodes. This in turn is used by the book
   keeping software for data download.

* Forgot to pass on variable in function wrapper

also:
  + Start healing not before 99% accounts covered (previously 95%)
  + Logging updated/prettified
2022-11-08 18:56:04 +00:00
..
access_list.nim EIP2929 implementation 2021-01-11 14:56:42 +07:00
accounts_cache.nim update EF test fixtures and fixes to pass all tests 2022-10-03 16:41:32 +07:00
capturedb.nim rlp: don't use ranges / experimental features (#495) 2020-04-20 20:12:44 +02:00
db_chain.nim add additional constructor to BaseChainDB 2022-10-25 11:01:31 +07:00
geth_db.nim allow nimbus to read geth database 2020-06-18 13:16:25 +07:00
kvstore_rocksdb.nim Experimental bulk loader tests (#1187) 2022-08-12 16:42:07 +01:00
select_backend.nim Experimental bulk loader tests (#1187) 2022-08-12 16:42:07 +01:00
state_db.nim refactor genesis.nim 2022-03-03 08:28:00 +07:00
storage_types.nim Prep for full sync after snap make 6 (#1291) 2022-11-08 18:56:04 +00:00