From 01b1f799b0d31b12fd0ceccaefad3936f3cd80a9 Mon Sep 17 00:00:00 2001 From: haxry Date: Tue, 12 Aug 2025 15:10:57 +0530 Subject: [PATCH 1/3] add inclusion list topic --- src/types/topics.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/types/topics.rs b/src/types/topics.rs index 4e60c2e..4210840 100644 --- a/src/types/topics.rs +++ b/src/types/topics.rs @@ -33,6 +33,7 @@ pub const SYNC_COMMITTEE_PREFIX_TOPIC: &str = "sync_committee_"; pub const BLS_TO_EXECUTION_CHANGE_TOPIC: &str = "bls_to_execution_change"; pub const LIGHT_CLIENT_FINALITY_UPDATE: &str = "light_client_finality_update"; pub const LIGHT_CLIENT_OPTIMISTIC_UPDATE: &str = "light_client_optimistic_update"; +pub const SIGNED_INCLUSION_LIST: &str = "inclusion_list"; pub const BASE_CORE_TOPICS: [GossipKind; 5] = [ GossipKind::BeaconBlock, @@ -158,6 +159,8 @@ pub enum GossipKind { LightClientFinalityUpdate, /// Topic for publishing optimistic updates for light clients. LightClientOptimisticUpdate, + /// Topic for publishing inclusion list. + SignedInclusionList, } impl std::fmt::Display for GossipKind { @@ -239,6 +242,7 @@ impl GossipTopic { BLS_TO_EXECUTION_CHANGE_TOPIC => GossipKind::BlsToExecutionChange, LIGHT_CLIENT_FINALITY_UPDATE => GossipKind::LightClientFinalityUpdate, LIGHT_CLIENT_OPTIMISTIC_UPDATE => GossipKind::LightClientOptimisticUpdate, + SIGNED_INCLUSION_LIST => GossipKind::SignedInclusionList, topic => match subnet_topic_index(topic) { Some(kind) => kind, None => return Err(format!("Unknown topic: {}", topic)), @@ -304,6 +308,7 @@ impl std::fmt::Display for GossipTopic { GossipKind::BlsToExecutionChange => BLS_TO_EXECUTION_CHANGE_TOPIC.into(), GossipKind::LightClientFinalityUpdate => LIGHT_CLIENT_FINALITY_UPDATE.into(), GossipKind::LightClientOptimisticUpdate => LIGHT_CLIENT_OPTIMISTIC_UPDATE.into(), + GossipKind::SignedInclusionList => SIGNED_INCLUSION_LIST.into(), }; write!( f, @@ -375,6 +380,7 @@ mod tests { VoluntaryExit, ProposerSlashing, AttesterSlashing, + SignedInclusionList, ] .iter() { From 0e4506cf6756dd2f6628c6c5c15cb50ed74c4880 Mon Sep 17 00:00:00 2001 From: haxry Date: Tue, 12 Aug 2025 16:11:50 +0530 Subject: [PATCH 2/3] add pubsub changes --- src/types/pubsub.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/types/pubsub.rs b/src/types/pubsub.rs index 4649818..77b1df3 100644 --- a/src/types/pubsub.rs +++ b/src/types/pubsub.rs @@ -36,6 +36,7 @@ use types::{ }, primitives::{ForkDigest, SubnetId}, }, + eip7805::{InclusionList, SignedInclusionList}, preset::Preset, traits::SignedBeaconBlock as _, }; @@ -70,6 +71,8 @@ pub enum PubsubMessage { LightClientFinalityUpdate(Box>), /// Gossipsub message providing notification of a light client optimistic update. LightClientOptimisticUpdate(Box>), + /// Gossipsub message providing notification of a signed inclusion list. + SignedInclusionList(Box), } // Implements the `DataTransform` trait of gossipsub to employ snappy compression @@ -171,7 +174,8 @@ impl PubsubMessage

{ PubsubMessage::LightClientFinalityUpdate(_) => GossipKind::LightClientFinalityUpdate, PubsubMessage::LightClientOptimisticUpdate(_) => { GossipKind::LightClientOptimisticUpdate - } + }, + PubsubMessage::SignedInclusionList(_) => GossipKind::SignedInclusionList, } } @@ -498,6 +502,14 @@ impl PubsubMessage

{ light_client_optimistic_update, ))) } + GossipKind::SignedInclusionList => { + let signed_inclusion_list = + SignedInclusionList::from_ssz_default(data) + .map_err(|e| format!("{:?}", e))?; + Ok(PubsubMessage::SignedInclusionList(Box::new( + signed_inclusion_list, + ))) + } } } } @@ -525,6 +537,7 @@ impl PubsubMessage

{ PubsubMessage::BlsToExecutionChange(data) => data.to_ssz(), PubsubMessage::LightClientFinalityUpdate(data) => data.to_ssz(), PubsubMessage::LightClientOptimisticUpdate(data) => data.to_ssz(), + PubsubMessage::SignedInclusionList(data) => data.to_ssz(), } } } @@ -594,6 +607,10 @@ impl std::fmt::Display for PubsubMessage

{ PubsubMessage::LightClientOptimisticUpdate(_data) => { write!(f, "Light CLient Optimistic Update") } + PubsubMessage::SignedInclusionList(_) => { + write!(f, "Signed Inclusion List") + }, + } } } From 092449e7868b1c104c63d25e375857b2d97c2f88 Mon Sep 17 00:00:00 2001 From: haxry Date: Tue, 12 Aug 2025 16:47:20 +0530 Subject: [PATCH 3/3] use correct smart pointer --- src/types/pubsub.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/types/pubsub.rs b/src/types/pubsub.rs index 77b1df3..4f861fe 100644 --- a/src/types/pubsub.rs +++ b/src/types/pubsub.rs @@ -72,7 +72,7 @@ pub enum PubsubMessage { /// Gossipsub message providing notification of a light client optimistic update. LightClientOptimisticUpdate(Box>), /// Gossipsub message providing notification of a signed inclusion list. - SignedInclusionList(Box), + SignedInclusionList(Arc), } // Implements the `DataTransform` trait of gossipsub to employ snappy compression @@ -506,7 +506,7 @@ impl PubsubMessage

{ let signed_inclusion_list = SignedInclusionList::from_ssz_default(data) .map_err(|e| format!("{:?}", e))?; - Ok(PubsubMessage::SignedInclusionList(Box::new( + Ok(PubsubMessage::SignedInclusionList(Arc::new( signed_inclusion_list, ))) }