mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-27 01:33:33 +00:00
Cell Dissemination (Partial messages) (#8314)
- https://github.com/ethereum/consensus-specs/pull/4558 - https://eips.ethereum.org/EIPS/eip-8136 Co-Authored-By: Daniel Knopik <daniel@dknopik.de> Co-Authored-By: Pawan Dhananjay <pawandhananjay@gmail.com> Co-Authored-By: Jimmy Chen <jchen.tc@gmail.com>
This commit is contained in:
@@ -392,6 +392,7 @@ pub enum Work<E: EthSpec> {
|
||||
GossipBlock(AsyncFn),
|
||||
GossipBlobSidecar(AsyncFn),
|
||||
GossipDataColumnSidecar(AsyncFn),
|
||||
GossipPartialDataColumnSidecar(AsyncFn),
|
||||
DelayedImportBlock {
|
||||
beacon_block_slot: Slot,
|
||||
beacon_block_root: Hash256,
|
||||
@@ -470,6 +471,7 @@ pub enum WorkType {
|
||||
GossipBlock,
|
||||
GossipBlobSidecar,
|
||||
GossipDataColumnSidecar,
|
||||
GossipPartialDataColumnSidecar,
|
||||
DelayedImportBlock,
|
||||
DelayedImportEnvelope,
|
||||
GossipVoluntaryExit,
|
||||
@@ -524,6 +526,7 @@ impl<E: EthSpec> Work<E> {
|
||||
Work::GossipBlock(_) => WorkType::GossipBlock,
|
||||
Work::GossipBlobSidecar(_) => WorkType::GossipBlobSidecar,
|
||||
Work::GossipDataColumnSidecar(_) => WorkType::GossipDataColumnSidecar,
|
||||
Work::GossipPartialDataColumnSidecar(_) => WorkType::GossipPartialDataColumnSidecar,
|
||||
Work::DelayedImportBlock { .. } => WorkType::DelayedImportBlock,
|
||||
Work::DelayedImportEnvelope { .. } => WorkType::DelayedImportEnvelope,
|
||||
Work::GossipVoluntaryExit(_) => WorkType::GossipVoluntaryExit,
|
||||
@@ -836,6 +839,10 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
Some(item)
|
||||
} else if let Some(item) = work_queues.gossip_data_column_queue.pop() {
|
||||
Some(item)
|
||||
} else if let Some(item) =
|
||||
work_queues.gossip_partial_data_column_queue.pop()
|
||||
{
|
||||
Some(item)
|
||||
} else if let Some(item) = work_queues.column_reconstruction_queue.pop() {
|
||||
Some(item)
|
||||
// Check the priority 0 API requests after blocks and blobs, but before attestations.
|
||||
@@ -1146,6 +1153,9 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
Work::GossipDataColumnSidecar { .. } => {
|
||||
work_queues.gossip_data_column_queue.push(work, work_id)
|
||||
}
|
||||
Work::GossipPartialDataColumnSidecar { .. } => work_queues
|
||||
.gossip_partial_data_column_queue
|
||||
.push(work, work_id),
|
||||
Work::DelayedImportBlock { .. } => {
|
||||
work_queues.delayed_block_queue.push(work, work_id)
|
||||
}
|
||||
@@ -1284,6 +1294,9 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
WorkType::GossipDataColumnSidecar => {
|
||||
work_queues.gossip_data_column_queue.len()
|
||||
}
|
||||
WorkType::GossipPartialDataColumnSidecar => {
|
||||
work_queues.gossip_partial_data_column_queue.len()
|
||||
}
|
||||
WorkType::DelayedImportBlock => work_queues.delayed_block_queue.len(),
|
||||
WorkType::DelayedImportEnvelope => work_queues.delayed_envelope_queue.len(),
|
||||
WorkType::GossipVoluntaryExit => {
|
||||
@@ -1506,6 +1519,7 @@ impl<E: EthSpec> BeaconProcessor<E> {
|
||||
Work::GossipBlock(work)
|
||||
| Work::GossipBlobSidecar(work)
|
||||
| Work::GossipDataColumnSidecar(work)
|
||||
| Work::GossipPartialDataColumnSidecar(work)
|
||||
| Work::GossipExecutionPayload(work) => task_spawner.spawn_async(async move {
|
||||
work.await;
|
||||
}),
|
||||
|
||||
@@ -126,6 +126,7 @@ pub struct BeaconProcessorQueueLengths {
|
||||
gossip_block_queue: usize,
|
||||
gossip_blob_queue: usize,
|
||||
gossip_data_column_queue: usize,
|
||||
gossip_partial_data_column_queue: usize,
|
||||
delayed_block_queue: usize,
|
||||
delayed_envelope_queue: usize,
|
||||
status_queue: usize,
|
||||
@@ -199,6 +200,7 @@ impl BeaconProcessorQueueLengths {
|
||||
gossip_block_queue: 1024,
|
||||
gossip_blob_queue: 1024,
|
||||
gossip_data_column_queue: 1024,
|
||||
gossip_partial_data_column_queue: 1024,
|
||||
delayed_block_queue: 1024,
|
||||
delayed_envelope_queue: 1024,
|
||||
status_queue: 1024,
|
||||
@@ -255,6 +257,7 @@ pub struct WorkQueues<E: EthSpec> {
|
||||
pub gossip_block_queue: FifoQueue<Work<E>>,
|
||||
pub gossip_blob_queue: FifoQueue<Work<E>>,
|
||||
pub gossip_data_column_queue: FifoQueue<Work<E>>,
|
||||
pub gossip_partial_data_column_queue: FifoQueue<Work<E>>,
|
||||
pub delayed_block_queue: FifoQueue<Work<E>>,
|
||||
pub delayed_envelope_queue: FifoQueue<Work<E>>,
|
||||
pub status_queue: FifoQueue<Work<E>>,
|
||||
@@ -323,6 +326,8 @@ impl<E: EthSpec> WorkQueues<E> {
|
||||
let gossip_block_queue = FifoQueue::new(queue_lengths.gossip_block_queue);
|
||||
let gossip_blob_queue = FifoQueue::new(queue_lengths.gossip_blob_queue);
|
||||
let gossip_data_column_queue = FifoQueue::new(queue_lengths.gossip_data_column_queue);
|
||||
let gossip_partial_data_column_queue =
|
||||
FifoQueue::new(queue_lengths.gossip_partial_data_column_queue);
|
||||
let delayed_block_queue = FifoQueue::new(queue_lengths.delayed_block_queue);
|
||||
let delayed_envelope_queue = FifoQueue::new(queue_lengths.delayed_envelope_queue);
|
||||
|
||||
@@ -388,6 +393,7 @@ impl<E: EthSpec> WorkQueues<E> {
|
||||
gossip_block_queue,
|
||||
gossip_blob_queue,
|
||||
gossip_data_column_queue,
|
||||
gossip_partial_data_column_queue,
|
||||
delayed_block_queue,
|
||||
delayed_envelope_queue,
|
||||
status_queue,
|
||||
|
||||
Reference in New Issue
Block a user