mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-03 00:31:50 +00:00
Light client updates by range RPC (#6383)
* enable lc update over rpc * resolve TODOs * resolve merge conflicts * move max light client updates to eth spec * Merge branch 'unstable' of https://github.com/sigp/lighthouse into light-client-updates-by-range-rpc * remove ethspec dependency * Update beacon_node/network/src/network_beacon_processor/rpc_methods.rs Co-authored-by: Michael Sproul <micsproul@gmail.com> * Update beacon_node/lighthouse_network/src/rpc/methods.rs Co-authored-by: Michael Sproul <micsproul@gmail.com>
This commit is contained in:
@@ -135,6 +135,7 @@ pub struct BeaconProcessorQueueLengths {
|
||||
lc_bootstrap_queue: usize,
|
||||
lc_optimistic_update_queue: usize,
|
||||
lc_finality_update_queue: usize,
|
||||
lc_update_range_queue: usize,
|
||||
api_request_p0_queue: usize,
|
||||
api_request_p1_queue: usize,
|
||||
}
|
||||
@@ -202,6 +203,7 @@ impl BeaconProcessorQueueLengths {
|
||||
lc_bootstrap_queue: 1024,
|
||||
lc_optimistic_update_queue: 512,
|
||||
lc_finality_update_queue: 512,
|
||||
lc_update_range_queue: 512,
|
||||
api_request_p0_queue: 1024,
|
||||
api_request_p1_queue: 1024,
|
||||
})
|
||||
@@ -622,6 +624,7 @@ pub enum Work<E: EthSpec> {
|
||||
LightClientBootstrapRequest(BlockingFn),
|
||||
LightClientOptimisticUpdateRequest(BlockingFn),
|
||||
LightClientFinalityUpdateRequest(BlockingFn),
|
||||
LightClientUpdatesByRangeRequest(BlockingFn),
|
||||
ApiRequestP0(BlockingOrAsync),
|
||||
ApiRequestP1(BlockingOrAsync),
|
||||
}
|
||||
@@ -673,6 +676,7 @@ pub enum WorkType {
|
||||
LightClientBootstrapRequest,
|
||||
LightClientOptimisticUpdateRequest,
|
||||
LightClientFinalityUpdateRequest,
|
||||
LightClientUpdatesByRangeRequest,
|
||||
ApiRequestP0,
|
||||
ApiRequestP1,
|
||||
}
|
||||
@@ -723,6 +727,7 @@ impl<E: EthSpec> Work<E> {
|
||||
WorkType::LightClientOptimisticUpdateRequest
|
||||
}
|
||||
Work::LightClientFinalityUpdateRequest(_) => WorkType::LightClientFinalityUpdateRequest,
|
||||
Work::LightClientUpdatesByRangeRequest(_) => WorkType::LightClientUpdatesByRangeRequest,
|
||||
Work::UnknownBlockAttestation { .. } => WorkType::UnknownBlockAttestation,
|
||||
Work::UnknownBlockAggregate { .. } => WorkType::UnknownBlockAggregate,
|
||||
Work::UnknownBlockSamplingRequest { .. } => WorkType::UnknownBlockSamplingRequest,
|
||||
@@ -902,6 +907,7 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
let mut lc_optimistic_update_queue =
|
||||
FifoQueue::new(queue_lengths.lc_optimistic_update_queue);
|
||||
let mut lc_finality_update_queue = FifoQueue::new(queue_lengths.lc_finality_update_queue);
|
||||
let mut lc_update_range_queue = FifoQueue::new(queue_lengths.lc_update_range_queue);
|
||||
|
||||
let mut api_request_p0_queue = FifoQueue::new(queue_lengths.api_request_p0_queue);
|
||||
let mut api_request_p1_queue = FifoQueue::new(queue_lengths.api_request_p1_queue);
|
||||
@@ -1379,6 +1385,9 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
Work::LightClientFinalityUpdateRequest { .. } => {
|
||||
lc_finality_update_queue.push(work, work_id, &self.log)
|
||||
}
|
||||
Work::LightClientUpdatesByRangeRequest { .. } => {
|
||||
lc_update_range_queue.push(work, work_id, &self.log)
|
||||
}
|
||||
Work::UnknownBlockAttestation { .. } => {
|
||||
unknown_block_attestation_queue.push(work)
|
||||
}
|
||||
@@ -1470,6 +1479,7 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
WorkType::LightClientFinalityUpdateRequest => {
|
||||
lc_finality_update_queue.len()
|
||||
}
|
||||
WorkType::LightClientUpdatesByRangeRequest => lc_update_range_queue.len(),
|
||||
WorkType::ApiRequestP0 => api_request_p0_queue.len(),
|
||||
WorkType::ApiRequestP1 => api_request_p1_queue.len(),
|
||||
};
|
||||
@@ -1622,7 +1632,8 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
| Work::GossipBlsToExecutionChange(process_fn)
|
||||
| Work::LightClientBootstrapRequest(process_fn)
|
||||
| Work::LightClientOptimisticUpdateRequest(process_fn)
|
||||
| Work::LightClientFinalityUpdateRequest(process_fn) => {
|
||||
| Work::LightClientFinalityUpdateRequest(process_fn)
|
||||
| Work::LightClientUpdatesByRangeRequest(process_fn) => {
|
||||
task_spawner.spawn_blocking(process_fn)
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user