-
Notifications
You must be signed in to change notification settings - Fork 895
Description
Hey team,
I've been running some interop tests to make our Vero VC ready for the Pectra upgrade.
I ran into 2 issues with Lighthouse as the CL client which are not present with other clients on the POST /eth/v2/beacon/pool/attestations
endpoint.
1) The endpoint accepts uints instead of strings for the attester_index
and committee_index
fields ( also the Lighthouse VC sends uints instead of strings )
See the output below from the Beacon API snooper post-Electra for the difference.
Lightouse CL <> Lighthouse VC:
[snooper-beacon-3-lighthouse-lighthouse] INFO[2025-01-24T10:38:41Z] REQUEST #1238: POST /eth/v2/beacon/pool/attestations length=1717 type=json
[snooper-beacon-3-lighthouse-lighthouse] [
[snooper-beacon-3-lighthouse-lighthouse] {
[snooper-beacon-3-lighthouse-lighthouse] "attester_index": 175,
[snooper-beacon-3-lighthouse-lighthouse] "committee_index": 0,
[snooper-beacon-3-lighthouse-lighthouse] "data": {
[snooper-beacon-3-lighthouse-lighthouse] "beacon_block_root": "0xc764973cf758251fad788a302fea0dfbf706028f5eb8f390a4eb81c2a6466275",
[snooper-beacon-3-lighthouse-lighthouse] "index": "0",
[snooper-beacon-3-lighthouse-lighthouse] "slot": "44",
[snooper-beacon-3-lighthouse-lighthouse] "source": {
[snooper-beacon-3-lighthouse-lighthouse] "epoch": "0",
[snooper-beacon-3-lighthouse-lighthouse] "root": "0x0000000000000000000000000000000000000000000000000000000000000000"
[snooper-beacon-3-lighthouse-lighthouse] },
[snooper-beacon-3-lighthouse-lighthouse] "target": {
[snooper-beacon-3-lighthouse-lighthouse] "epoch": "1",
[snooper-beacon-3-lighthouse-lighthouse] "root": "0xc8cf554c9d833bd456a478fb5635c2d7b8370232424cb283cda65bbbfe84b35c"
[snooper-beacon-3-lighthouse-lighthouse] }
[snooper-beacon-3-lighthouse-lighthouse] },
[snooper-beacon-3-lighthouse-lighthouse] "signature": "0x9162a19d986efbe613dae9a941996cb43944e30b0f83cbfbba47738a68fe56447417d7d0587e0a088888a68300cd5b5213510938e539a7c1c1815e8d150fa3e7fbc94294777bb594d142217259f1b6f1cf13f2d49c7dd0208d00102372075bb1"
[snooper-beacon-3-lighthouse-lighthouse] },
Lighthouse CL <> Lodestar VC:
[snooper-beacon-1-lighthouse-lodestar] INFO[2025-01-24T10:38:37Z] REQUEST #677: POST /eth/v2/beacon/pool/attestations length=-1 type=json
[snooper-beacon-1-lighthouse-lodestar] [
[snooper-beacon-1-lighthouse-lodestar] {
[snooper-beacon-1-lighthouse-lodestar] "attester_index": "5",
[snooper-beacon-1-lighthouse-lodestar] "committee_index": "0",
[snooper-beacon-1-lighthouse-lodestar] "data": {
[snooper-beacon-1-lighthouse-lodestar] "beacon_block_root": "0xc764973cf758251fad788a302fea0dfbf706028f5eb8f390a4eb81c2a6466275",
[snooper-beacon-1-lighthouse-lodestar] "index": "0",
[snooper-beacon-1-lighthouse-lodestar] "slot": "44",
[snooper-beacon-1-lighthouse-lodestar] "source": {
[snooper-beacon-1-lighthouse-lodestar] "epoch": "0",
[snooper-beacon-1-lighthouse-lodestar] "root": "0x0000000000000000000000000000000000000000000000000000000000000000"
[snooper-beacon-1-lighthouse-lodestar] },
[snooper-beacon-1-lighthouse-lodestar] "target": {
[snooper-beacon-1-lighthouse-lodestar] "epoch": "1",
[snooper-beacon-1-lighthouse-lodestar] "root": "0xc8cf554c9d833bd456a478fb5635c2d7b8370232424cb283cda65bbbfe84b35c"
[snooper-beacon-1-lighthouse-lodestar] }
[snooper-beacon-1-lighthouse-lodestar] },
[snooper-beacon-1-lighthouse-lodestar] "signature": "0xb51fea1a5d1e4789184fbb3b21d2587759939bb9350db091d4f6eae52fd5831f3d5fda50713103071028939fad3f285c0451b6874f09d73edf3763a30df5416248ebbb12aeaef68a5c0a224d7dbfa8de8f840a770c56ce5d53fac6240bba9ba2"
[snooper-beacon-1-lighthouse-lodestar] }
[snooper-beacon-1-lighthouse-lodestar] ]
2) The endpoint does not support Attestation objects pre-Electra
This is not a huge deal since we can use the v1 endpoint pre-Electra, but all other clients do support this so it would be really nice for Lighthouse to support this too.
Kurtosis config for reproducibility, devnet-5
specs:
participants:
- el_type: reth
el_image: ethpandaops/reth:main-11bd9dd
cl_type: lighthouse
cl_image: ethpandaops/lighthouse:single_attestation-b6d80eb
use_separate_vc: true
vc_type: lodestar
vc_image: ethpandaops/lodestar:unstable-d584aed
snooper_enabled: true
- el_type: reth
el_image: ethpandaops/reth:main-11bd9dd
cl_type: lighthouse
cl_image: ethpandaops/lighthouse:single_attestation-b6d80eb
use_separate_vc: true
vc_type: teku
vc_image: consensys/teku:develop
snooper_enabled: true
- el_type: reth
el_image: ethpandaops/reth:main-11bd9dd
cl_type: lighthouse
cl_image: ethpandaops/lighthouse:single_attestation-b6d80eb
use_separate_vc: true
vc_type: lighthouse
vc_image: ethpandaops/lighthouse:single_attestation-b6d80eb
snooper_enabled: true
network_params:
electra_fork_epoch: 1
additional_services:
- tx_spammer
- blob_spammer
- dora
- prometheus_grafana
dora_params:
image: "ethpandaops/dora:master-latest"