Giulio rebuffo
8ad4870428
Banning peers sending bad gossip ( #7134 )
2023-03-28 20:29:38 +01:00
Giulio rebuffo
d6ba1b65c8
Added removeStreamHandler again ( #6996 )
2023-03-02 14:22:03 +00:00
Giulio rebuffo
f97550c48f
Fixed capella startup for LC ( #6989 )
2023-02-28 21:17:10 +00:00
Giulio rebuffo
300ef31888
fixed lightclient regression ( #6957 )
2023-02-25 16:39:35 +00:00
Alex Sharov
431fba815f
e3: simplify tracer ( #6953 )
2023-02-25 12:44:45 +07:00
Giulio rebuffo
4525db6a9c
Fixed lightclient regression ( #6946 )
2023-02-24 15:11:50 +00:00
Alex Sharov
4a81e62ea8
lightclient: simple retry backoff ( #6922 )
2023-02-22 01:42:01 +00:00
alex.sharov
8580111641
lighting: reduce retry rate
2023-02-20 14:39:31 +07:00
Alex Sharov
b5a310effe
temporary solution for lightclient ratelimit ( #6908 )
2023-02-20 07:33:13 +00:00
Alex Sharov
1ee4a13904
temporary solution for lightclient ratelimit ( #6907 )
...
https://github.com/ledgerwatch/erigon/issues/6905
2023-02-20 07:31:20 +00:00
Giulio rebuffo
ae8657e226
API in lightclient instead of gossip ( #6883 )
2023-02-15 17:09:21 +00:00
Philippe Schommers
22bf78ba92
fix: variable slots per epoch in light client ( #6868 )
...
Missed a spot in #6864 , my bad.
2023-02-13 21:27:13 +00:00
Giulio rebuffo
ef502afd51
Fixed finalized hash in lightclient ( #6867 )
2023-02-13 21:18:37 +00:00
Giulio rebuffo
7fb6d94a64
Added more peer count logs ( #6865 )
2023-02-13 20:51:50 +00:00
ledgerwatch
ee83447fa1
CL lightclient to create memdb in the tmpdir which gets cleaned up on… ( #6829 )
...
… startup
---------
Co-authored-by: Alexey Sharp <alexeysharp@Alexeys-iMac.local>
Co-authored-by: Alex Sharp <alexsharp@Alexs-MacBook-Pro-2.local>
2023-02-11 20:44:51 +00:00
Giulio rebuffo
f7e58a7964
added separable lightclient ( #6800 )
...
How to run:
Erigon flags needed: --private.api.addr <ADDR> --externalcl
Lightclient flags needed: --private.api.addr <ADDR>
2023-02-08 00:06:07 +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
0eebd61ab8
separation of state: a continuation ( #6647 )
2023-01-21 22:33:50 +01:00
Alex Sharov
2a9ae52c9e
grpc version up ( #6648 )
2023-01-21 10:58:16 +07:00
Andrew Ashikhmin
9927ca3171
Unify Engine API V1 & V2 methods ( #6638 )
...
Reduce code duplication.
Prerequisite: https://github.com/ledgerwatch/erigon-lib/pull/841 .
2023-01-20 18:43:08 +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
hexoscott
7dcbfbc283
reference hash, address, and chain config from lib ( #6536 )
2023-01-13 18:12:18 +00:00
Giulio rebuffo
4bee05dd12
Added ETH1 Block SSZ Hashing to CL ( #6549 )
...
more of SSZ again.
2023-01-11 17:18:14 +01:00
Giulio rebuffo
64a22eb0f4
Added Finalized to Lightclient ( #6510 )
2023-01-05 23:50:04 +01:00
Giulio rebuffo
4932aa5264
added indexes to beacon blocks ( #6460 )
2022-12-29 15:15:25 +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
Alex Sharov
ade933be6b
kv_remote: server to support thread-safe multi-streams per 1 tx ( #6402 )
2022-12-24 13:11:15 +07:00
Giulio rebuffo
d2bda25b29
Added Beacon RPC as a wrapper for Sentinel ( #6424 )
2022-12-23 22:31:08 +01:00
Giulio rebuffo
bae56ff119
Backfilling is now smooth and does not get stuck ( #6374 )
2022-12-19 22:40:34 +01:00
Giulio rebuffo
0f0d0de783
Use of proper beacon state interface ( #6277 )
2022-12-11 15:12:38 +01:00
Giulio rebuffo
1c8a11df40
Added dirty leaves system to beacon state ( #6264 )
2022-12-09 19:19:01 +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
cea51685fe
attempt at fixing lightclient performance leaks ( #6169 )
2022-12-02 00:21:33 +01:00
Giulio rebuffo
025839afd5
moved out protobuffers for sentinel ( #6145 )
2022-11-29 00:00:40 +01:00
Giulio rebuffo
05be20b70b
smol refactor of lightclient CI + logs demotion ( #6144 )
2022-11-28 23:29:48 +01:00
Giulio rebuffo
8c67c55cc7
Created Erigon beacon downloader ( #6130 )
2022-11-25 16:38:22 +01:00
Giulio rebuffo
7ea8de4a3f
added checkpoint saving ( #6060 )
2022-11-16 16:19:40 +01:00
Giulio rebuffo
3a2d3be080
Added persistence in LightClient ( #6056 )
2022-11-15 20:39:18 +01:00
Andrew Ashikhmin
32629bdce4
Upgrade urfave/cli to v2 ( #6047 )
...
See also
https://github.com/urfave/cli/blob/main/docs/migrate-v1-to-v2.md
2022-11-14 17:33:57 +01:00
Giulio rebuffo
ae01026ca9
Customizable networking for Erigon Lightclient ( #6032 )
2022-11-11 23:22:47 +01:00
Giulio rebuffo
63a8b21bb8
switch BLS library ( #5950 )
2022-11-03 23:55:59 +01:00
Giulio rebuffo
5c3245d4e0
Added Checkpoint sync for CL full client ( #5934 )
2022-11-02 13:12:44 +01:00
Giulio rebuffo
adf5fc7b82
refactored files regarding lightclient ( #5904 )
2022-10-29 21:51:32 +02:00
Mike Neuder
dab1ba44d0
Test req/resp domain response decoding ( #5886 )
...
https://github.com/ledgerwatch/erigon/issues/5884 has more context on
this issue. we are trying to understand the encoding of the responses.
from the Ethereum R&D discord, AgeManning said that the prefix is
supposed to be a varint representing the length of the payload:
https://developers.google.com/protocol-buffers/docs/encoding#varints .
that works for the `&cltypes.MetadataV1{}` type, but not for
`&cltypes.MetadataV2{}` or `&cltypes.LightClientFinalityUpdate{}`.
2022-10-29 13:02:26 +02:00
Mike Neuder
29ff8daa92
req/resp heartbeat handler modifications ( #5859 )
...
addressing some aspects of the req/resp portion of the CL spec:
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#reqresp-interaction .
this PR does a few things:
1. moves `blocksByRangeHandler` and `beaconBlocksByRootHandler` handlers
to a different file in the `handlers` package. these are going to be the
more complicated handlers so they will be better in their own files.
2. makes `pingHandler` a method on the `*ConsensusHandlers` receiver and
starts returning the sequence number instead of the request. (see
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#ping
`Peers request and respond with their local metadata sequence number`).
3. adds a `goodbyeHandler` to respond with a status message of 1. (see
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#goodbye ).
4. makes `statusHandler` a method on the `*ConsensusHandlers` receiver.
(the rest of this handler is still not implemented.
5. refactored the `heartbeats_test` into a table driven test. this makes
the test much more readable:
https://dave.cheney.net/2019/05/07/prefer-table-driven-tests .
2022-10-25 19:30:11 +02:00
Mike Neuder
4b5880e8d3
Adding VoluntaryExit, ProposerSlashing, and AttesterSlashing topics to pubsub service ( #5851 )
...
This is a follow on PR in support of
https://github.com/ledgerwatch/erigon/issues/5824 . See
https://github.com/ledgerwatch/erigon/pull/5841 for the
`beacon_aggregate_and_proof` topic.
This PR adds support for the `voluntary_exit, proposer_slashing, and
attester_slashing` topics as defined in the phase 0 spec
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#global-topics .
The CL types were already defined so this just adds the listening to the
pub sub service.
2022-10-24 17:52:49 +02:00
Mike Neuder
db1c2d2d82
Adding the AggregateAndProof global topic to the sentinel pubsub service ( #5841 )
...
This is the first PR in support of
https://github.com/ledgerwatch/erigon/issues/5824 .
The phase 0 sepc
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#global-topics
specifies 6 global pubsub topics that CL nodes need to handle.
This PR implements the `beacob_aggregate_and_proof` topic:
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#beacon_aggregate_and_proof .
The `AggregateAndProof` and `SignedAggregateAndProof` types are defined
here:
https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/validator.md#aggregateandproof .
I followed the implementation of `SignedBeaconBlockBellatrix`, which has
the following references:
1. cmd/lightclient/cltypes/types.go: defines the struct with relevant
SSZ annotations on the fields.
2. cmd/lightclient/cltypes/clone.go: this just returns a reference to an
empty object, so not super clear to me if it is necessary:
3. cmd/lightclient/rpc/common.go: this decodes gossip data, switching on
the type of gossip message that is received.
4. cmd/lightclient/sentinel/service/service.go: this listens on the
pubsub channel and notifies when a packet of the relevant type comes in.
5. cmd/lightclient/sentinel/pubsub.go: this defines the gossip topic
struct.
6. cmd/lightclient/lightclient/subscriber.go: this is the lightclient
interface for the incoming messages that come from the sentinel.
2022-10-23 20:22:33 +02:00
Enrique Jose Avila Asapche
a874459835
got rid of time.Sleep ( #5840 )
2022-10-22 17:38:29 +01:00