mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-30 12:47:05 +00:00
merge from unstable
This commit is contained in:
@@ -226,7 +226,6 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
||||
signed_envelope,
|
||||
import_data,
|
||||
payload_verification_outcome,
|
||||
self.spec.clone(),
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
@@ -132,7 +132,6 @@ impl<E: EthSpec> ExecutedEnvelope<E> {
|
||||
envelope: MaybeAvailableEnvelope<E>,
|
||||
import_data: EnvelopeImportData<E>,
|
||||
payload_verification_outcome: PayloadVerificationOutcome,
|
||||
spec: Arc<ChainSpec>,
|
||||
) -> Self {
|
||||
match envelope {
|
||||
MaybeAvailableEnvelope::Available(available_envelope) => {
|
||||
|
||||
@@ -23,12 +23,6 @@ impl<E: EthSpec> PendingColumn<E> {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO(gloas): insert_from_partial
|
||||
|
||||
pub fn has_cell(&self, index: usize) -> bool {
|
||||
self.cells.get(index).is_some_and(|c| c.is_some())
|
||||
}
|
||||
|
||||
pub fn cell_matches(&self, index: usize, cell: &Cell<E>, proof: &KzgProof) -> Option<bool> {
|
||||
self.cells
|
||||
.get(index)?
|
||||
|
||||
@@ -81,13 +81,6 @@ impl<E: EthSpec> PendingComponents<E> {
|
||||
self.envelope = Some(envelope);
|
||||
}
|
||||
|
||||
/// Returns the number of blobs expected by reading the bid's kzg commitments.
|
||||
/// Returns an error if the bid is not cached. This function should only be called
|
||||
/// after ensuring that the bid has been cached.
|
||||
pub fn num_blobs_expected(&self) -> usize {
|
||||
self.num_blobs_expected
|
||||
}
|
||||
|
||||
pub fn num_completed_columns(&self) -> usize {
|
||||
self.verified_data_columns
|
||||
.values()
|
||||
|
||||
@@ -3832,12 +3832,10 @@ pub fn generate_data_column_sidecars_from_block<E: EthSpec>(
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
// TODO(gloas): The fixture is Fulu format. Generate Gloas-specific fixture once format
|
||||
// is finalized, or compute columns dynamically for Gloas tests.
|
||||
let (cells, proofs) = template_data_columns
|
||||
.into_iter()
|
||||
.map(|sidecar| {
|
||||
let DataColumnSidecarFulu {
|
||||
let DataColumnSidecarGloas {
|
||||
column, kzg_proofs, ..
|
||||
} = sidecar;
|
||||
// There's only one cell per column for a single blob
|
||||
|
||||
@@ -3627,6 +3627,23 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> {
|
||||
self.propagate_if_timely(is_timely, message_id, peer_id)
|
||||
}
|
||||
|
||||
/// If a payload envelope is still valid with respect to the current time (i.e., its slot
|
||||
/// matches the current slot), propagate it on gossip. Otherwise, ignore it.
|
||||
fn propagate_envelope_if_timely(
|
||||
&self,
|
||||
envelope_slot: Slot,
|
||||
message_id: MessageId,
|
||||
peer_id: PeerId,
|
||||
) {
|
||||
let is_timely = self
|
||||
.chain
|
||||
.slot_clock
|
||||
.now()
|
||||
.is_some_and(|current_slot| envelope_slot == current_slot);
|
||||
|
||||
self.propagate_if_timely(is_timely, message_id, peer_id)
|
||||
}
|
||||
|
||||
/// If a sync committee signature or sync committee contribution is still valid with respect to
|
||||
/// the current time (i.e., timely), propagate it on gossip. Otherwise, ignore it.
|
||||
fn propagate_sync_message_if_timely(
|
||||
@@ -3831,6 +3848,12 @@ impl<T: BeaconChainTypes> NetworkBeaconProcessor<T> {
|
||||
let process_fn = Box::pin(async move {
|
||||
match chain.verify_envelope_for_gossip(envelope).await {
|
||||
Ok(verified_envelope) => {
|
||||
let envelope_slot = verified_envelope.signed_envelope.slot();
|
||||
inner_self.propagate_envelope_if_timely(
|
||||
envelope_slot,
|
||||
message_id,
|
||||
peer_id,
|
||||
);
|
||||
inner_self
|
||||
.process_gossip_verified_execution_payload_envelope(
|
||||
peer_id,
|
||||
|
||||
Reference in New Issue
Block a user