nimbus-eth1/nimbus/sync
Jordan Hrycaj a241050c94
Beacon sync update multi exe heads aware (#2861)
* Log/trace cancellation events in scheduler

* Provide `clear()` functions for explicitly flushing data objects

* Renaming header cache functions

why:
  More systematic, all functions start with prefix `dbHeader`

* Remove `danglingParent` from layout

why:
  Already provided by header cache

* Remove `couplerHash` and `headHash` from layout

why:
  No need to cache, `headHash` is unused and `couplerHash` used typically
  once, only.

* Remove `lastLayout` from sync descriptor

why:
  No need to compare changes, saving is always triggered after actively
  changing the sync layout state

* Early reject unsuitable head + finalised header from CL

why:
  The finalised header is only passed by its hash so the header must be
  fetched somewhere, e.g. from a peer via eth/xx.

  Also, finalised headers earlier than the `base` from `FC` cannot be
  handled due to the `Aristo` single state database architecture.

  Luckily, on a full node, the complete block history is available so
  unsuitable finalised headers are stored there already which is exploited
  here to avoid unnecessary network traffic.

* Code cosmetics, remove cruft, prettify logging, remove `final` metrics

detail:
  The `final` layout parameter will be deprecated and later removed

* Update/re-calibrate syncer logic documentation

why:
  The current implementation sucks if the `FC` module changes the
  canonical branch in the middle of completing a header chain (due
  to concurrent updates by the `newPayload()` logic.)

* Implement according to re-calibrated syncer docu

details:
  The implementation employs the notion of named layout states (see
  `SyncLayoutState` in `worker_desc.nim`) which are derived from the
  state parameter triple `(C,D,H)` as described in `README.md`.
2024-11-21 16:32:47 +00:00
..
beacon Beacon sync update multi exe heads aware (#2861) 2024-11-21 16:32:47 +00:00
handlers Cleanup db/core_apps error handling (#2838) 2024-11-07 08:24:21 +07:00
protocol eth: bump to devp2p v5 (#2837) 2024-11-08 10:24:35 +01:00
beacon.nim Beacon sync docu todo and async prototype update v2 (#2832) 2024-11-05 11:39:45 +00:00
handlers.nim Culling legacy DB and accounts cache (#2197) 2024-05-20 10:17:51 +00:00
peers.nim Slightly change the static peer manager lookup behaviour (#1484) 2023-03-06 09:22:07 +00:00
protocol.nim Remove eth/66 and eth/67 wire protocol (#2238) 2024-05-29 09:20:25 +02:00
sync_desc.nim Beacon sync updates tbc (#2818) 2024-11-01 19:18:41 +00:00
sync_sched.nim Beacon sync update multi exe heads aware (#2861) 2024-11-21 16:32:47 +00:00