Closed
Description
Prysm reported the the following issue with a Lighthouse peer on a LH-Prysm PeerDAS devnet:
- The peer requests several time the exact same column (root, index)
- Instead of sending only one by root request with multiple indices for the same root, the peer sends n by root requests with only one index
- At this time, the Prysm node was not even synced to the first slot of the retention window, so not to this perticular block. There is not chance for Prysm to be able to respond to this request.
It looks like there are multiple issues here:
- We're not sending request to a peer that has the block (
lookup_peers
). Instead, we're sending it to any custodial peer we can find from our global peer list:
lighthouse/beacon_node/network/src/sync/network_context/custody.rs
Lines 241 to 243 in d60c24e
- Assuming we're sending the request to the right peer, if the peer doesn't respond back with the columns, we should add it to failed peers and penalise them. So the retry request should be sent to a different peer
- Not sure why the requests are not batched together. The following code suggested we do batching by peer_id, so i suspect there might be multiple lookups happening simultaneously:
lighthouse/beacon_node/network/src/sync/network_context/custody.rs
Lines 290 to 304 in d60c24e
Logs
[2025-03-24 09:37:24] DEBUG sync: Serving data column sidecar by root request columns=map[0x0e2939f566245f788d2de7b10ded6d966e4f2b275dadbbe366e102d41df24975:[60]] peer=16Uiu2HAmH77XYainBfaerpEXAc1WfZ3YHBpE7aC9u7Q9BsZFPBM5
[2025-03-24 09:37:24] DEBUG sync: Serving data column sidecar by root request columns=map[0x0e2939f566245f788d2de7b10ded6d966e4f2b275dadbbe366e102d41df24975:[63]] peer=16Uiu2HAmH77XYainBfaerpEXAc1WfZ3YHBpE7aC9u7Q9BsZFPBM5
[2025-03-24 09:37:24] DEBUG sync: Serving data column sidecar by root request columns=map[0x0e2939f566245f788d2de7b10ded6d966e4f2b275dadbbe366e102d41df24975:[94]] peer=16Uiu2HAmH77XYainBfaerpEXAc1WfZ3YHBpE7aC9u7Q9BsZFPBM5
[2025-03-24 09:37:24] DEBUG sync: Serving data column sidecar by root request columns=map[0x0e2939f566245f788d2de7b10ded6d966e4f2b275dadbbe366e102d41df24975:[58]] peer=16Uiu2HAmH77XYainBfaerpEXAc1WfZ3YHBpE7aC9u7Q9BsZFPBM5
[2025-03-24 09:37:25] DEBUG sync: Serving data column sidecar by root request columns=map[0x0e2939f566245f788d2de7b10ded6d966e4f2b275dadbbe366e102d41df24975:[58]] peer=16Uiu2HAmH77XYainBfaerpEXAc1WfZ3YHBpE7aC9u7Q9BsZFPBM5
[2025-03-24 09:37:25] DEBUG sync: Serving data column sidecar by root request columns=map[0x0e2939f566245f788d2de7b10ded6d966e4f2b275dadbbe366e102d41df24975:[58]] peer=16Uiu2HAmH77XYainBfaerpEXAc1WfZ3YHBpE7aC9u7Q9BsZFPBM5
[2025-03-24 09:37:25] DEBUG sync: Serving data column sidecar by root request columns=map[0x0e2939f566245f788d2de7b10ded6d966e4f2b275dadbbe366e102d41df24975:[60]] peer=16Uiu2HAmH77XYainBfaerpEXAc1WfZ3YHBpE7aC9u7Q9BsZFPBM5
[2025-03-24 09:37:25] DEBUG sync: Serving data column sidecar by root request columns=map[0x0e2939f566245f788d2de7b10ded6d966e4f2b275dadbbe366e102d41df24975:[58]] peer=16Uiu2HAmH77XYainBfaerpEXAc1WfZ3YHBpE7aC9u7Q9BsZFPBM5
...
Discord message here: https://discord.com/channels/595666850260713488/1331931919260057602/1353650763712167958