Retry custody requests after peer metadata updates (#6975)

Closes https://github.com/sigp/lighthouse/issues/6895

We need sync to retry custody requests when a peer CGC updates. A higher CGC can result in a data column subnet peer count increasing from 0 to 1, allowing requests to happen.


  Add new sync event `SyncMessage::UpdatedPeerCgc`. It's sent by the router when a metadata response updates the known CGC
This commit is contained in:
Lion - dapplion
2025-05-09 05:27:17 -03:00
committed by GitHub
parent 4b9c16fc71
commit a497ec601c
5 changed files with 106 additions and 8 deletions

View File

@@ -73,6 +73,8 @@ pub enum RouterMessage<E: EthSpec> {
PubsubMessage(MessageId, PeerId, PubsubMessage<E>, bool),
/// The peer manager has requested we re-status a peer.
StatusPeer(PeerId),
/// The peer has an updated custody group count from METADATA.
PeerUpdatedCustodyGroupCount(PeerId),
}
impl<T: BeaconChainTypes> Router<T> {
@@ -155,6 +157,10 @@ impl<T: BeaconChainTypes> Router<T> {
RouterMessage::PeerDisconnected(peer_id) => {
self.send_to_sync(SyncMessage::Disconnect(peer_id));
}
// A peer has updated CGC
RouterMessage::PeerUpdatedCustodyGroupCount(peer_id) => {
self.send_to_sync(SyncMessage::UpdatedPeerCgc(peer_id));
}
RouterMessage::RPCRequestReceived {
peer_id,
inbound_request_id,