@@ -951,7 +951,16 @@ impl<P: Preset> Network<P> {
951951 debug ! ( "received BeaconBlocksByRange request (peer_id: {peer_id}, request: {request:?})" ) ;
952952
953953 let start_slot = request. start_slot ( ) ;
954- let difference = request. count ( ) . min ( MAX_FOR_DOS_PREVENTION ) ;
954+ let max_request_blocks = match request {
955+ OldBlocksByRangeRequest :: V1 ( _) => self . controller . chain_config ( ) . max_request_blocks ,
956+ OldBlocksByRangeRequest :: V2 ( _) => {
957+ self . controller . chain_config ( ) . max_request_blocks_deneb
958+ }
959+ } ;
960+ let difference = request
961+ . count ( )
962+ . min ( max_request_blocks)
963+ . min ( MAX_FOR_DOS_PREVENTION ) ;
955964
956965 // `end_slot` is exclusive.
957966 let end_slot = start_slot
@@ -1013,17 +1022,28 @@ impl<P: Preset> Network<P> {
10131022 ) -> Result < ( ) > {
10141023 debug ! ( "received BlobSidecarsByRange request (peer_id: {peer_id}, request: {request:?})" ) ;
10151024
1016- let BlobsByRangeRequest { start_slot, count } = request;
1017- let difference = count
1018- . min ( self . controller . chain_config ( ) . max_request_blob_sidecars )
1025+ let start_slot = request. start_slot ( ) ;
1026+ let max_request_blob_sidecars = match request {
1027+ BlobsByRangeRequest :: V1 ( _) => self . controller . chain_config ( ) . max_request_blob_sidecars ,
1028+ BlobsByRangeRequest :: V2 ( _) => {
1029+ self . controller
1030+ . chain_config ( )
1031+ . max_request_blob_sidecars_electra
1032+ }
1033+ } ;
1034+ let difference = request
1035+ . count ( )
1036+ . min ( max_request_blob_sidecars)
10191037 . min ( MAX_FOR_DOS_PREVENTION ) ;
10201038
1021- let end_slot = start_slot
1022- . checked_add ( difference)
1023- . ok_or ( Error :: EndSlotOverflow {
1024- start_slot,
1025- difference,
1026- } ) ?;
1039+ let end_slot =
1040+ request
1041+ . start_slot ( )
1042+ . checked_add ( difference)
1043+ . ok_or ( Error :: EndSlotOverflow {
1044+ start_slot,
1045+ difference,
1046+ } ) ?;
10271047
10281048 let controller = self . controller . clone_arc ( ) ;
10291049 let network_to_service_tx = self . network_to_service_tx . clone ( ) ;
@@ -1078,11 +1098,18 @@ impl<P: Preset> Network<P> {
10781098 debug ! ( "received BlobsByRootRequest request (peer_id: {peer_id}, request: {request:?})" ) ;
10791099
10801100 // TODO(feature/deneb): MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS
1081- let BlobsByRootRequest { blob_ids } = request;
1101+ let max_request_blob_sidecars = match request {
1102+ BlobsByRootRequest :: V1 ( _) => self . controller . chain_config ( ) . max_request_blob_sidecars ,
1103+ BlobsByRootRequest :: V2 ( _) => {
1104+ self . controller
1105+ . chain_config ( )
1106+ . max_request_blob_sidecars_electra
1107+ }
1108+ } ;
1109+ let blob_ids = request. blob_ids ( ) ;
10821110
10831111 let controller = self . controller . clone_arc ( ) ;
10841112 let network_to_service_tx = self . network_to_service_tx . clone ( ) ;
1085- let max_request_blob_sidecars = self . controller . chain_config ( ) . max_request_blob_sidecars ;
10861113
10871114 self . dedicated_executor
10881115 . spawn ( async move {
@@ -1136,6 +1163,10 @@ impl<P: Preset> Network<P> {
11361163 request_id : IncomingRequestId ,
11371164 request : BlocksByRootRequest ,
11381165 ) {
1166+ let max_request_blocks = match request {
1167+ BlocksByRootRequest :: V1 ( _) => self . controller . chain_config ( ) . max_request_blocks ,
1168+ BlocksByRootRequest :: V2 ( _) => self . controller . chain_config ( ) . max_request_blocks_deneb ,
1169+ } ;
11391170 let block_roots = request. block_roots ( ) ;
11401171
11411172 debug ! (
@@ -1149,7 +1180,7 @@ impl<P: Preset> Network<P> {
11491180 . spawn ( async move {
11501181 let block_roots = block_roots
11511182 . into_iter ( )
1152- . take ( MAX_FOR_DOS_PREVENTION . try_into ( ) ?) ;
1183+ . take ( MAX_FOR_DOS_PREVENTION . min ( max_request_blocks ) . try_into ( ) ?) ;
11531184
11541185 let blocks = controller. blocks_by_root ( block_roots) ?;
11551186
@@ -1652,7 +1683,7 @@ impl<P: Preset> Network<P> {
16521683 count : u64 ,
16531684 ) {
16541685 // TODO: is count capped in eth2_libp2p?
1655- let request = BlobsByRangeRequest { start_slot, count } ;
1686+ let request = BlobsByRangeRequest :: new ( start_slot, count) ;
16561687
16571688 debug ! (
16581689 "sending BlobSidecarsByRange request (request_id: {request_id} peer_id: {peer_id}, \
0 commit comments