@@ -108,6 +108,7 @@ pub struct BeaconProcessorQueueLengths {
108
108
unknown_light_client_update_queue : usize ,
109
109
rpc_block_queue : usize ,
110
110
rpc_blob_queue : usize ,
111
+ rpc_custody_column_queue : usize ,
111
112
chain_segment_queue : usize ,
112
113
backfill_chain_segment : usize ,
113
114
gossip_block_queue : usize ,
@@ -163,6 +164,7 @@ impl BeaconProcessorQueueLengths {
163
164
unknown_light_client_update_queue : 128 ,
164
165
rpc_block_queue : 1024 ,
165
166
rpc_blob_queue : 1024 ,
167
+ rpc_custody_column_queue : 1024 ,
166
168
chain_segment_queue : 64 ,
167
169
backfill_chain_segment : 64 ,
168
170
gossip_block_queue : 1024 ,
@@ -228,6 +230,7 @@ pub const GOSSIP_LIGHT_CLIENT_OPTIMISTIC_UPDATE: &str = "light_client_optimistic
228
230
pub const RPC_BLOCK : & str = "rpc_block" ;
229
231
pub const IGNORED_RPC_BLOCK : & str = "ignored_rpc_block" ;
230
232
pub const RPC_BLOBS : & str = "rpc_blob" ;
233
+ pub const RPC_CUSTODY_COLUMN : & str = "rpc_custody_column" ;
231
234
pub const CHAIN_SEGMENT : & str = "chain_segment" ;
232
235
pub const CHAIN_SEGMENT_BACKFILL : & str = "chain_segment_backfill" ;
233
236
pub const STATUS_PROCESSING : & str = "status_processing" ;
@@ -606,6 +609,7 @@ pub enum Work<E: EthSpec> {
606
609
RpcBlobs {
607
610
process_fn : AsyncFn ,
608
611
} ,
612
+ RpcCustodyColumn ( AsyncFn ) ,
609
613
IgnoredRpcBlock {
610
614
process_fn : BlockingFn ,
611
615
} ,
@@ -653,6 +657,7 @@ impl<E: EthSpec> Work<E> {
653
657
Work :: GossipLightClientOptimisticUpdate ( _) => GOSSIP_LIGHT_CLIENT_OPTIMISTIC_UPDATE ,
654
658
Work :: RpcBlock { .. } => RPC_BLOCK ,
655
659
Work :: RpcBlobs { .. } => RPC_BLOBS ,
660
+ Work :: RpcCustodyColumn { .. } => RPC_CUSTODY_COLUMN ,
656
661
Work :: IgnoredRpcBlock { .. } => IGNORED_RPC_BLOCK ,
657
662
Work :: ChainSegment { .. } => CHAIN_SEGMENT ,
658
663
Work :: ChainSegmentBackfill ( _) => CHAIN_SEGMENT_BACKFILL ,
@@ -815,6 +820,7 @@ impl<E: EthSpec> BeaconProcessor<E> {
815
820
// Using a FIFO queue since blocks need to be imported sequentially.
816
821
let mut rpc_block_queue = FifoQueue :: new ( queue_lengths. rpc_block_queue ) ;
817
822
let mut rpc_blob_queue = FifoQueue :: new ( queue_lengths. rpc_blob_queue ) ;
823
+ let mut rpc_custody_column_queue = FifoQueue :: new ( queue_lengths. rpc_custody_column_queue ) ;
818
824
let mut chain_segment_queue = FifoQueue :: new ( queue_lengths. chain_segment_queue ) ;
819
825
let mut backfill_chain_segment = FifoQueue :: new ( queue_lengths. backfill_chain_segment ) ;
820
826
let mut gossip_block_queue = FifoQueue :: new ( queue_lengths. gossip_block_queue ) ;
@@ -970,6 +976,8 @@ impl<E: EthSpec> BeaconProcessor<E> {
970
976
self . spawn_worker ( item, idle_tx) ;
971
977
} else if let Some ( item) = rpc_blob_queue. pop ( ) {
972
978
self . spawn_worker ( item, idle_tx) ;
979
+ } else if let Some ( item) = rpc_custody_column_queue. pop ( ) {
980
+ self . spawn_worker ( item, idle_tx) ;
973
981
// Check delayed blocks before gossip blocks, the gossip blocks might rely
974
982
// on the delayed ones.
975
983
} else if let Some ( item) = delayed_block_queue. pop ( ) {
@@ -1262,6 +1270,9 @@ impl<E: EthSpec> BeaconProcessor<E> {
1262
1270
rpc_block_queue. push ( work, work_id, & self . log )
1263
1271
}
1264
1272
Work :: RpcBlobs { .. } => rpc_blob_queue. push ( work, work_id, & self . log ) ,
1273
+ Work :: RpcCustodyColumn { .. } => {
1274
+ rpc_custody_column_queue. push ( work, work_id, & self . log )
1275
+ }
1265
1276
Work :: ChainSegment { .. } => {
1266
1277
chain_segment_queue. push ( work, work_id, & self . log )
1267
1278
}
@@ -1497,9 +1508,9 @@ impl<E: EthSpec> BeaconProcessor<E> {
1497
1508
beacon_block_root : _,
1498
1509
process_fn,
1499
1510
} => task_spawner. spawn_async ( process_fn) ,
1500
- Work :: RpcBlock { process_fn } | Work :: RpcBlobs { process_fn } => {
1501
- task_spawner . spawn_async ( process_fn)
1502
- }
1511
+ Work :: RpcBlock { process_fn }
1512
+ | Work :: RpcBlobs { process_fn }
1513
+ | Work :: RpcCustodyColumn ( process_fn ) => task_spawner . spawn_async ( process_fn ) ,
1503
1514
Work :: IgnoredRpcBlock { process_fn } => task_spawner. spawn_blocking ( process_fn) ,
1504
1515
Work :: GossipBlock ( work)
1505
1516
| Work :: GossipBlobSidecar ( work)
0 commit comments