Commit Graph

267 Commits

Author SHA1 Message Date
Giulio rebuffo
cfa8dd8657
Fixed sanity consensus tests for slots processing (#6949) 2023-02-24 21:07:32 +00:00
Giulio rebuffo
4525db6a9c
Fixed lightclient regression (#6946) 2023-02-24 15:11:50 +00:00
Andrew Ashikhmin
54593d934c
Don't use embedded CL by default for Gnosis (#6918)
Only Nimbus peers support light clients, and there's not enough Nimbus
peers on Gnosis.
2023-02-21 18:36:25 +00:00
Andrew Ashikhmin
67de38f097
Schedule Capella on Sepolia (#6920)
See https://github.com/eth-clients/sepolia/pull/30
2023-02-21 14:57:35 +00:00
Philippe Schommers
55091456a7
feat: add Gnosis and Chiado to CL (#6788)
This adds the Gnosis and Chiado configs to the CL. I'm sure there's
other things missing too. Any pointers would be appreciated!

Currently stuck on:
```
INFO[02-06|14:00:01.421] [Checkpoint Sync] Requesting beacon state uri=https://checkpoint.gnosis.gateway.fm/eth/v2/debug/beacon/states/finalized
INFO[02-06|14:00:02.846] [Checkpoint Sync] Retrieving lightclient bootstrap from sentinel root=6cd2f0f4018d7ca17c9bfaf69f7eb46706b5a9b3356b9686aa71ae15a11c47e4
```
2023-02-16 19:40:50 +00:00
Giulio rebuffo
60a3aa71e3
Fixed epoch processing consensus tests (#6887) 2023-02-16 19:04:16 +00:00
Giulio rebuffo
3c069f7cbd
added static peers flag (#6884) 2023-02-15 17:56:10 +00:00
Giulio rebuffo
7c43cb532c
~2x Optimization to state root computation (#6854)
Most notably use of more than a single thread. there is still potential
for me but there are more important things for now to work on.
2023-02-12 21:26:31 +00:00
Giulio rebuffo
885ed781fd
added better tests to epoch transitions (#6838) 2023-02-10 23:53:05 +00:00
Giulio rebuffo
4e950db56e
added processing of historical roots (#6823) 2023-02-10 01:09:05 +01:00
Giulio rebuffo
64ddd9f60e
Added reward/penalties processing (#6819) 2023-02-09 17:48:52 +01:00
Giulio rebuffo
a585ae4894
Added Optimizations to Beacon state transition. (#6792) 2023-02-07 17:44:37 +01:00
Philippe Schommers
9e93914998
test: fix clparams config test (#6790)
Was only testing `MainnetNetwork` repeatedly before.
2023-02-07 18:32:23 +07:00
Alex Sharov
4cae1b94e9
switch sentinel to native go errors (#6782) 2023-02-06 10:15:52 +07:00
Giulio rebuffo
ee4c8ed3bd
Added working slot processing. (#6779) 2023-02-05 21:53:59 +01:00
Giulio rebuffo
3748a6af97
Added processing for deposits (#6746) 2023-01-30 18:55:57 +01:00
Giulio rebuffo
1436060fd8
added sync aggregate method for processing (#6740) 2023-01-30 14:39:56 +01:00
Giulio rebuffo
ff21ef7b21
Added checkpoints and justification bits processing (post-altair) (#6699)
* Added processing of checkpoints
* Unit tests rigorously imported from prysm
* They all pass :)
2023-01-26 00:31:20 +01:00
Giulio rebuffo
f44b22f066
Shangai Compatible embedded CL lightclient (#6688)
* LightClientHeader: Capella
* Added versions to lightclient
* TODO: Capella->Bellatrix transition
2023-01-24 17:36:02 +01:00
Giulio rebuffo
635fe0cb21
Added custom chain flags to embedded consensus lightclient (#6674) 2023-01-24 00:03:48 +01:00
Giulio rebuffo
8dda3614e6
Added beacon state capella support (#6673) 2023-01-23 14:26:57 +01:00
Giulio rebuffo
eda4471d95
Fixed inconsistencies (#6670) 2023-01-23 12:04:50 +01:00
Giulio rebuffo
20a4ae4ffb
added support for Capella beacon blocks (#6665) 2023-01-22 23:39:23 +01:00
Giulio rebuffo
f1dd51ccb3
Added Historical Summary and FromBlsToExecution (#6658)
Added Capella specific Data types.
2023-01-22 11:48:17 +01:00
Giulio rebuffo
0eebd61ab8
separation of state: a continuation (#6647) 2023-01-21 22:33:50 +01:00
Giulio rebuffo
9503672194
Separation of SSZ Beacon State and Fix BeaconRpc (#6635) 2023-01-20 20:41:16 +01:00
Giulio rebuffo
3f07c66928
Fast gossip routine for Sentinel. (#6614)
removed bunch of ugly repetitive routines.
2023-01-18 14:30:39 +01:00
Giulio rebuffo
4e53a12c53
Flexible Blocks and States for easy hard forking (#6566)
Preparation for Shangai Beacon Blocks/Beacon State
2023-01-17 02:22:05 +01:00
Mike Neuder
01ce83ad99
ProcessAttesterSlashing (#6581)
Spec:
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#attester-slashings

Part of https://github.com/ledgerwatch/erigon/issues/5965
2023-01-15 12:05:51 +01:00
hexoscott
7dcbfbc283
reference hash, address, and chain config from lib (#6536) 2023-01-13 18:12:18 +00:00
Alex Sharov
41e9356f61
e3: stream.ToBitamp() (#6562) 2023-01-12 09:58:21 +07:00
Giulio rebuffo
4bee05dd12
Added ETH1 Block SSZ Hashing to CL (#6549)
more of SSZ again.
2023-01-11 17:18:14 +01:00
Alex Sharov
7c2ed8e01f
mdbx: v0.12.3 (#6521) 2023-01-10 09:15:18 +07:00
Giulio rebuffo
599480c5e0
ExecutionPayloaHeader: ssz support for withdrawals root (#6524)
I do not recommend this.
2023-01-09 01:04:05 +01:00
Giulio rebuffo
77d946ba3e
[First PR] Removing FastSSZ and use more efficient hashing with gohashtree (#6520) 2023-01-07 12:25:28 +01:00
Giulio rebuffo
f6c25de4d2
Added EL <-> CL integration (#6483) 2023-01-04 03:02:24 +01:00
Giulio rebuffo
4932aa5264
added indexes to beacon blocks (#6460) 2022-12-29 15:15:25 +01:00
Giulio rebuffo
80b5954c3c
fixed encoding for slot > 17 million (#6451) 2022-12-28 02:29:24 +01:00
Giulio rebuffo
cf7e0e292c
Compact Attestations final form (#6446) 2022-12-27 17:22:52 +01:00
Giulio rebuffo
9006804ac0
Fast/compact attestations encoding, prototype 1 (#6442) 2022-12-26 19:23:55 +01:00
Giulio rebuffo
fa55cf8efe
Added full backfilling routine with support with Phase0/Altair and Bellatrix + Consensus Layer Database Schema Prototype (#6435)
This PR Adds:

* Backfilling routine, downloads and write to db all historical blocks.
* Prototype of first attempt at Database schema for Historical blocks.
* Fixed minor bugs.
* Support for following forks: Phase0, Altair, Bellatrix.
2022-12-25 18:07:12 +01:00
Mike Neuder
aa9b30a656
Implement ProcessRandao (#6425)
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#randao

Part of https://github.com/ledgerwatch/erigon/issues/5965
2022-12-24 19:39:39 +01:00
Giulio rebuffo
d2bda25b29
Added Beacon RPC as a wrapper for Sentinel (#6424) 2022-12-23 22:31:08 +01:00
Giulio rebuffo
f655e337d1
Added signed block abstraction (Phase0 & Altair & Bellatrix block support) (#6422) 2022-12-23 18:39:44 +01:00
Giulio rebuffo
5fd3536ef0
Erigon-cl database schema (#6399) 2022-12-22 19:59:24 +01:00
Giulio rebuffo
ed2c79d2ca
fixed backfilling algo (#6364) 2022-12-18 23:28:30 +01:00
Giulio rebuffo
e640cea7d0
no CPU implosion when using sentinel (#6361) 2022-12-18 18:57:30 +01:00
Giulio rebuffo
0a3bfef484
Added prototype for Beacon history reconstruction stage (#6351) 2022-12-17 16:05:56 +01:00
Andrew Ashikhmin
1e206e375b
Set default for externalcl based on whether embedded CL is supported (#6294)
Embedded CL is not supported for Gnosis Chain, so it makes sense to set
`externalcl` to true by default for it.

Also, this PR sets `terminalTotalDifficultyPassed` for Gnosis Chain &
Chiado (see https://docs.gnosischain.com/updates/20221210-merge).
2022-12-13 14:51:13 +01:00
Giulio rebuffo
1c8a11df40
Added dirty leaves system to beacon state (#6264) 2022-12-09 19:19:01 +01:00
Giulio rebuffo
ecf34b2493
Proper Beacon State Repressentation attempt (#6254) 2022-12-09 00:55:31 +01:00
Giulio rebuffo
0da12e4c94
Verification by root and not by slot (#6243) 2022-12-07 21:26:45 +01:00
Andrew Ashikhmin
7eab12d90d
Shanghai & Cancun forks should be based on timestamp (#6238) 2022-12-07 18:45:44 +01:00
Giulio rebuffo
6e76643c09
Added Handshake protocol to Erigon-CL Lightclient and Fullclient (#6206) 2022-12-05 01:25:12 +01:00
Giulio rebuffo
1fd3a01edf
Added Consensus Layer staged sync (#6183) 2022-12-03 03:16:26 +01:00
Giulio rebuffo
ae6d00747e
removed debug util now not necessary (#6149) 2022-11-29 09:46:52 +01:00
Giulio rebuffo
025839afd5
moved out protobuffers for sentinel (#6145) 2022-11-29 00:00:40 +01:00
Giulio rebuffo
8c67c55cc7
Created Erigon beacon downloader (#6130) 2022-11-25 16:38:22 +01:00
Giulio rebuffo
f8916e9226
Made Lightclient default (#5813)
lightclient cl is default, for external cl, run `--externalcl`
2022-11-10 17:06:04 +00:00
Mike Neuder
bf34bed004
Adding GetStatus to the req/resp domain (#6010)
Part of https://github.com/ledgerwatch/erigon/issues/5884 defined in the
spec
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#status.

We need this functionality to continue
https://github.com/ledgerwatch/erigon/issues/5965 because we need to
determine how many blocks to request from the checkpoint block.
2022-11-10 14:14:26 +01:00
Mike Neuder
5c5094ae6a
Adding BeaconBlocksByRoot req to consensus layer RPC (#5968)
https://github.com/ledgerwatch/erigon/issues/5884. 

Follows up on https://github.com/ledgerwatch/erigon/pull/5967 to
implement the by root request as well.
2022-11-06 23:41:21 +01:00
Mike Neuder
bc7128e671
Adding BeaconBlocksByRangeReq to consensus layer RPC (#5967)
part of https://github.com/ledgerwatch/erigon/issues/5884. we have
tested this manually, but need to include it in the CL client RPC layer.
2022-11-05 19:39:24 +01:00
Mike Neuder
75db1aae0b
Add support for beacon_blocks_by_root on the req/resp domain (#5951)
Continuation of https://github.com/ledgerwatch/erigon/issues/5884

We make use of
bb09295072/beacon-chain/p2p/types/types.go
from Prysm to construct our request because the generated code injects
an offset that is not included in the spec.


https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#beaconblocksbyroot
2022-11-04 17:34:36 +01:00
Giulio rebuffo
63a8b21bb8
switch BLS library (#5950) 2022-11-03 23:55:59 +01:00
Mike Neuder
5518e69005
Finish BeaconBlocksByRange decoder (#5943)
issue: https://github.com/ledgerwatch/erigon/issues/5884

this PR finishes the decoding of BeaconBlocksByRange responses.
`stream_test.go` now checks two sample ranges, of length 2 and 3
respectively (avoiding doing super long ranges to keep the files
relatively smaller).

https://beaconcha.in/slot/5000007 is the source i used to verify the
decoded data.
2022-11-03 19:04:49 +01:00
Mike Neuder
7590411ffc
BeaconBlocksByRange req/resp domain encoding work. (#5917)
I am trying to decode these messages from the req/resp domain. see
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#beaconblocksbyrange
for the spec.

this is part of https://github.com/ledgerwatch/erigon/issues/5884
2022-11-02 15:48:22 +01:00
Giulio rebuffo
adf5fc7b82
refactored files regarding lightclient (#5904) 2022-10-29 21:51:32 +02:00