nimbus-eth2/beacon_chain
Eugene Kabanov 18409a69e1
Light forward sync mechanism (#6515)
* Initial commit.

* Add hybrid syncing.

* Compilation fixes.

* Cast custom event for our purposes.

* Instantiate AsyncEventQueue properly.

* Fix mistype.

* Further research on optimistic updates.

* Fixing circular deps.

* Add backfilling.

* Add block download feature.

* Add block store.

* Update backfill information before storing block.

* Use custom block verifier for backfilling sync.

* Skip signature verification in backfilling.

* Add one more generic reload to storeBackfillBlock().

* Add block verification debugging statements.

* Add more debugging

* Do not use database for backfilling, part 1.

* Fix for stash.

* Stash fixes part 2.

* Prepare for testing.

* Fix assertion.

* Fix post-restart syncing process.

* Update backfill loading log statement.
Use proper backfill slot callback for sync manager.

* Add handling of Duplicates.

* Fix store duration and block backfilled log statements.

* Add proper syncing state log statement.

* Add snappy compression to beaconchain_file.
Format syncing speed properly.

* Add blobs verification.

* Add `slot` number to file structure for easy navigation over stream of compressed objects.

* Change database filename.

* Fix structure size.

* Add more consistency properties.

* Fix checkRepair() issues.

* Preparation to state rebuild process.

* Add plain & compressed size.

* Debugging snappy encode process.

* Add one more debugging line.

* Dump blocks.

* One more filedump.

* Fix chunk corruption code.

* Fix detection issue.

* Some fixes in state rebuilding process.

* Add more clearance steps.

* Move updateHead() back to block_processor.

* Fix compilation issues.

* Make code more async friendly.

* Fix async issues.
Add more information when proposer verification failed.

* Fix 8192 slots issue.

* Fix Future double completion issue.

* Pass updateFlags to some of the core procedures.

* Fix tests.

* Improve initial sync handling mechanism.

* Fix checkStateTransition() performance improvements.

* Add some performance tuning and meters.

* Light client performance tuning.

* Remove debugging statement.

* Use single file descriptor for blockchain file.

* Attempt to fix LC.

* Fix timeleft calculation when untrusted sync backfilling started right after LC block received.

* Workaround for `chronicles` + `results` `error` issue.
Remove some compilation warnings.
Fix `CatchableError` leaks on Windows.

* Address review comments.

* Address review comments part 2.

* Address review comments part 1.

* Rebase and fix the issues.

* Address review comments part 3.

* Add tests and fix some issues in auto-repair mechanism.

* Add tests to all_tests.

* Rename binary test file to pass restrictions.

* Add `bin` extension to excluded list.
Recover binary test data.

* Rename fixture file to .bin again.

* Update AllTests.

* Address review comments part 4.

* Address review comments part 5 and fix tests.

* Address review comments part 6.

* Eliminate foldl and combine from blobs processing.
Add some tests to ensure that checkResponse() also checks for correct order.

* Fix forgotten place.

* Post rebase fixes.

* Add unique slots tests.

* Optimize updateHead() code.

* Add forgotten changes.

* Address review comments on state as argument.
2024-10-30 05:38:53 +00:00
..
consensus_object_pools Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
el stop checking for irrelevant unsigned wraparound in Electra deposit codepath (#6683) 2024-10-28 17:18:01 +01:00
fork_choice Fix comment to reflect correct validator balance count transition (#6663) 2024-10-21 00:40:14 +00:00
gossip_processing Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
libnimbus_lc Bump nim-web3 to `c76ddefea96e7763c3cc5b28ec5cbac1adefc4e7` (#6670) 2024-10-22 18:13:36 +02:00
networking rm experimental Yamux support (#6636) 2024-10-17 00:23:13 +00:00
rpc Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
spec Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
sync Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
validator_client VC: Electra fixes. (#6631) 2024-10-16 17:20:39 +00:00
validators Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
.editorconfig Add .editorconfig file and remove trailing newlines 2021-09-14 12:12:49 +03:00
.gitignore Rename binaries; Mimic the original repo layout in the distribution 2020-11-09 11:38:52 +02:00
beacon_chain_db.nim rm unused code/type conversoins; re-enable Electra block gossip verification (#6545) 2024-09-12 11:11:08 +02:00
beacon_chain_db_immutable.nim automated consensus spec URL updating to v1.5.0-alpha.8 (#6617) 2024-10-09 08:37:35 +02:00
beacon_chain_db_light_client.nim extend light client protocol for Electra (#6375) 2024-06-26 19:02:03 +00:00
beacon_chain_file.nim Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
beacon_clock.nim automated consensus spec URL updating to v1.5.0-alpha.8 (#6617) 2024-10-09 08:37:35 +02:00
beacon_node.nim Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
beacon_node_light_client.nim Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
beacon_node_status.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
conf.nim rm experimental Yamux support (#6636) 2024-10-17 00:23:13 +00:00
conf_common.nim Dissect Windows specific code from beacon node. (#5612) 2024-01-13 12:53:53 +02:00
conf_light_client.nim rm experimental Yamux support (#6636) 2024-10-17 00:23:13 +00:00
db_limits.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
deposits.nim VC: Electra fixes. (#6631) 2024-10-16 17:20:39 +00:00
era_db.nim add Electra to ConsensusFork enum (#6169) 2024-04-03 16:43:43 +02:00
extras.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
filepath.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
light_client.nim inhibit LC sync while DAG is synced (#6505) 2024-08-22 06:13:47 +00:00
light_client_db.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
nim.cfg fix most ConvFromXtoItselfNotNeeded hints and unhide remaining ones (#6307) 2024-05-22 13:56:37 +02:00
nimbus_beacon_node.nim Light forward sync mechanism (#6515) 2024-10-30 05:38:53 +00:00
nimbus_beacon_node.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
nimbus_binary_common.nim VC: Electra fixes. (#6631) 2024-10-16 17:20:39 +00:00
nimbus_light_client.nim remove Bellatrix EL syncing support from light client (#6352) 2024-06-14 01:23:17 +00:00
nimbus_light_client.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
nimbus_signing_node.nim Add Web3signer electra support (#6607) 2024-10-07 23:31:16 +00:00
nimbus_signing_node.nim.cfg Revert writing backfill root to database (#3215) 2021-12-21 11:40:14 +01:00
nimbus_validator_client.nim VC: Electra fixes. (#6631) 2024-10-16 17:20:39 +00:00
nimbus_validator_client.nim.cfg remove `news` leftovers (#4299) 2022-11-08 20:06:54 +00:00
sszdump.nim update `wss_sim` for Bellatrix, Capella and Deneb (#6170) 2024-04-08 15:28:46 +02:00
statediff.nim automated consensus spec URL updating to v1.5.0-alpha.8 (#6617) 2024-10-09 08:37:35 +02:00
statusbar.nim verify `genesis_time` more strictly (fixes #1667) (#5694) 2024-01-06 15:26:56 +01:00
trusted_node_sync.nim automated consensus spec URL updating to v1.5.0-alpha.8 (#6617) 2024-10-09 08:37:35 +02:00
validator_bucket_sort.nim calculate next slot's withdrawals properly even across epoch boundary (#6470) 2024-08-06 13:33:16 +02:00
version.nim version v24.10.0 2024-10-29 00:27:43 +00:00
wallets.nim add `{.push raises: [].}` to recently modified files (#5908) 2024-02-18 01:16:49 +00:00
winservice.nim bump nimbus-build-system to use Nim v2.0.10 (#6592) 2024-10-03 17:13:44 +02:00