@@ -927,20 +927,20 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> {
927
927
block_root : Hash256 ,
928
928
publish_blobs : bool ,
929
929
) {
930
- let is_supernode = self . network_globals . is_supernode ( ) ;
931
-
930
+ let custody_columns = self . network_globals . sampling_columns . clone ( ) ;
932
931
let self_cloned = self . clone ( ) ;
933
932
let publish_fn = move |blobs_or_data_column| {
934
- // At the moment non supernodes are not required to publish any columns.
935
- // TODO(das): we could experiment with having full nodes publish their custodied
936
- // columns here.
937
- if publish_blobs && is_supernode {
933
+ if publish_blobs {
938
934
match blobs_or_data_column {
939
935
BlobsOrDataColumns :: Blobs ( blobs) => {
940
936
self_cloned. publish_blobs_gradually ( blobs, block_root) ;
941
937
}
942
938
BlobsOrDataColumns :: DataColumns ( columns) => {
943
- self_cloned. publish_data_columns_gradually ( columns, block_root) ;
939
+ let columns_to_publish = columns
940
+ . into_iter ( )
941
+ . filter ( |c| custody_columns. contains ( & c. index ) )
942
+ . collect ( ) ;
943
+ self_cloned. publish_data_columns_gradually ( columns_to_publish, block_root) ;
944
944
}
945
945
} ;
946
946
}
@@ -1139,7 +1139,7 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> {
1139
1139
///
1140
1140
/// This is an optimisation to reduce outbound bandwidth and ensures each column is published
1141
1141
/// by some nodes on the network as soon as possible. Our hope is that some columns arrive from
1142
- /// other supernodes in the meantime, obviating the need for us to publish them. If no other
1142
+ /// other nodes in the meantime, obviating the need for us to publish them. If no other
1143
1143
/// publisher exists for a column, it will eventually get published here.
1144
1144
fn publish_data_columns_gradually (
1145
1145
self : & Arc < Self > ,
@@ -1164,9 +1164,9 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> {
1164
1164
} ) ;
1165
1165
} ;
1166
1166
1167
- // If this node is a super node, permute the columns and split them into batches.
1167
+ // Permute the columns and split them into batches.
1168
1168
// The hope is that we won't need to publish some columns because we will receive them
1169
- // on gossip from other supernodes .
1169
+ // on gossip from other nodes .
1170
1170
data_columns_to_publish. shuffle ( & mut rand:: thread_rng ( ) ) ;
1171
1171
1172
1172
let blob_publication_batch_interval = chain. config . blob_publication_batch_interval ;
0 commit comments