mirror of
https://gitlab.com/pulsechaincom/erigon-pulse.git
synced 2025-01-03 17:44:29 +00:00
db1c2d2d82
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. |
||
---|---|---|
.. | ||
cli | ||
main.go |