Skip to content

Commit 815599c

Browse files
jimmygchendapplion
authored andcommitted
Fix data column rpc request not being sent due to incorrect limits set. (#6000)
1 parent f3bd42c commit 815599c

File tree

2 files changed

+59
-3
lines changed

2 files changed

+59
-3
lines changed

beacon_node/lighthouse_network/src/rpc/codec/ssz_snappy.rs

+57-1
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,8 @@ mod tests {
813813
use crate::types::{EnrAttestationBitfield, EnrSyncCommitteeBitfield};
814814
use types::{
815815
blob_sidecar::BlobIdentifier, BeaconBlock, BeaconBlockAltair, BeaconBlockBase,
816-
BeaconBlockBellatrix, EmptyBlock, Epoch, FullPayload, Signature, Slot,
816+
BeaconBlockBellatrix, DataColumnIdentifier, EmptyBlock, Epoch, FullPayload, Signature,
817+
Slot,
817818
};
818819

819820
type Spec = types::MainnetEthSpec;
@@ -860,6 +861,10 @@ mod tests {
860861
Arc::new(BlobSidecar::empty())
861862
}
862863

864+
fn empty_data_column_sidecar() -> Arc<DataColumnSidecar<Spec>> {
865+
Arc::new(DataColumnSidecar::empty())
866+
}
867+
863868
/// Bellatrix block with length < max_rpc_size.
864869
fn bellatrix_block_small(
865870
fork_context: &ForkContext,
@@ -921,6 +926,27 @@ mod tests {
921926
}
922927
}
923928

929+
fn dcbrange_request() -> DataColumnsByRangeRequest {
930+
DataColumnsByRangeRequest {
931+
start_slot: 0,
932+
count: 10,
933+
columns: vec![1, 2, 3],
934+
}
935+
}
936+
937+
fn dcbroot_request(spec: &ChainSpec) -> DataColumnsByRootRequest {
938+
DataColumnsByRootRequest {
939+
data_column_ids: RuntimeVariableList::new(
940+
vec![DataColumnIdentifier {
941+
block_root: Hash256::zero(),
942+
index: 0,
943+
}],
944+
spec.max_request_data_column_sidecars as usize,
945+
)
946+
.unwrap(),
947+
}
948+
}
949+
924950
fn bbroot_request_v1(spec: &ChainSpec) -> BlocksByRootRequest {
925951
BlocksByRootRequest::new_v1(vec![Hash256::zero()], spec)
926952
}
@@ -1210,6 +1236,34 @@ mod tests {
12101236
),
12111237
Ok(Some(RPCResponse::BlobsByRoot(empty_blob_sidecar()))),
12121238
);
1239+
1240+
assert_eq!(
1241+
encode_then_decode_response(
1242+
SupportedProtocol::DataColumnsByRangeV1,
1243+
RPCCodedResponse::Success(RPCResponse::DataColumnsByRange(
1244+
empty_data_column_sidecar()
1245+
)),
1246+
ForkName::Deneb,
1247+
&chain_spec
1248+
),
1249+
Ok(Some(RPCResponse::DataColumnsByRange(
1250+
empty_data_column_sidecar()
1251+
))),
1252+
);
1253+
1254+
assert_eq!(
1255+
encode_then_decode_response(
1256+
SupportedProtocol::DataColumnsByRootV1,
1257+
RPCCodedResponse::Success(RPCResponse::DataColumnsByRoot(
1258+
empty_data_column_sidecar()
1259+
)),
1260+
ForkName::Deneb,
1261+
&chain_spec
1262+
),
1263+
Ok(Some(RPCResponse::DataColumnsByRoot(
1264+
empty_data_column_sidecar()
1265+
))),
1266+
);
12131267
}
12141268

12151269
// Test RPCResponse encoding/decoding for V1 messages
@@ -1563,6 +1617,8 @@ mod tests {
15631617
OutboundRequest::MetaData(MetadataRequest::new_v1()),
15641618
OutboundRequest::BlobsByRange(blbrange_request()),
15651619
OutboundRequest::BlobsByRoot(blbroot_request(&chain_spec)),
1620+
OutboundRequest::DataColumnsByRange(dcbrange_request()),
1621+
OutboundRequest::DataColumnsByRoot(dcbroot_request(&chain_spec)),
15661622
OutboundRequest::MetaData(MetadataRequest::new_v2()),
15671623
];
15681624

beacon_node/lighthouse_network/src/rpc/protocol.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -517,8 +517,8 @@ impl ProtocolId {
517517
Protocol::BlobsByRoot => RpcLimits::new(0, spec.max_blobs_by_root_request),
518518
Protocol::DataColumnsByRoot => RpcLimits::new(0, spec.max_data_columns_by_root_request),
519519
Protocol::DataColumnsByRange => RpcLimits::new(
520-
<DataColumnsByRangeRequest as Encode>::ssz_fixed_len(),
521-
<DataColumnsByRangeRequest as Encode>::ssz_fixed_len(),
520+
DataColumnsByRangeRequest::ssz_min_len(),
521+
DataColumnsByRangeRequest::ssz_max_len(spec),
522522
),
523523
Protocol::Ping => RpcLimits::new(
524524
<Ping as Encode>::ssz_fixed_len(),

0 commit comments

Comments
 (0)