mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-30 20:57:10 +00:00
Implement beacon_blocks_by_head (#9237)
Co-Authored-By: dapplion <35266934+dapplion@users.noreply.github.com>
This commit is contained in:
@@ -161,6 +161,9 @@ pub enum Response<E: EthSpec> {
|
||||
DataColumnsByRange(Option<Arc<DataColumnSidecar<E>>>),
|
||||
/// A response to a get BLOCKS_BY_ROOT request.
|
||||
BlocksByRoot(Option<Arc<SignedBeaconBlock<E>>>),
|
||||
/// A response to a get BEACON_BLOCKS_BY_HEAD request. A None response signals the end of the
|
||||
/// batch.
|
||||
BlocksByHead(Option<Arc<SignedBeaconBlock<E>>>),
|
||||
/// A response to a get `EXECUTION_PAYLOAD_ENVELOPES_BY_ROOT` request.
|
||||
PayloadEnvelopesByRoot(Option<Arc<SignedExecutionPayloadEnvelope<E>>>),
|
||||
/// A response to a get `EXECUTION_PAYLOAD_ENVELOPES_BY_RANGE` request.
|
||||
@@ -186,6 +189,10 @@ impl<E: EthSpec> std::convert::From<Response<E>> for RpcResponse<E> {
|
||||
Some(b) => RpcResponse::Success(RpcSuccessResponse::BlocksByRoot(b)),
|
||||
None => RpcResponse::StreamTermination(ResponseTermination::BlocksByRoot),
|
||||
},
|
||||
Response::BlocksByHead(r) => match r {
|
||||
Some(b) => RpcResponse::Success(RpcSuccessResponse::BlocksByHead(b)),
|
||||
None => RpcResponse::StreamTermination(ResponseTermination::BlocksByHead),
|
||||
},
|
||||
Response::BlocksByRange(r) => match r {
|
||||
Some(b) => RpcResponse::Success(RpcSuccessResponse::BlocksByRange(b)),
|
||||
None => RpcResponse::StreamTermination(ResponseTermination::BlocksByRange),
|
||||
|
||||
@@ -1691,6 +1691,14 @@ impl<E: EthSpec> Network<E> {
|
||||
request_type,
|
||||
})
|
||||
}
|
||||
RequestType::BlocksByHead(_) => {
|
||||
metrics::inc_counter_vec(&metrics::TOTAL_RPC_REQUESTS, &["blocks_by_head"]);
|
||||
Some(NetworkEvent::RequestReceived {
|
||||
peer_id,
|
||||
inbound_request_id,
|
||||
request_type,
|
||||
})
|
||||
}
|
||||
RequestType::PayloadEnvelopesByRange(_) => {
|
||||
metrics::inc_counter_vec(
|
||||
&metrics::TOTAL_RPC_REQUESTS,
|
||||
@@ -1827,6 +1835,9 @@ impl<E: EthSpec> Network<E> {
|
||||
RpcSuccessResponse::BlocksByRoot(resp) => {
|
||||
self.build_response(id, peer_id, Response::BlocksByRoot(Some(resp)))
|
||||
}
|
||||
RpcSuccessResponse::BlocksByHead(resp) => {
|
||||
self.build_response(id, peer_id, Response::BlocksByHead(Some(resp)))
|
||||
}
|
||||
RpcSuccessResponse::PayloadEnvelopesByRange(resp) => self.build_response(
|
||||
id,
|
||||
peer_id,
|
||||
@@ -1871,6 +1882,7 @@ impl<E: EthSpec> Network<E> {
|
||||
let response = match termination {
|
||||
ResponseTermination::BlocksByRange => Response::BlocksByRange(None),
|
||||
ResponseTermination::BlocksByRoot => Response::BlocksByRoot(None),
|
||||
ResponseTermination::BlocksByHead => Response::BlocksByHead(None),
|
||||
ResponseTermination::PayloadEnvelopesByRange => {
|
||||
Response::PayloadEnvelopesByRange(None)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user