- fix pre-merge block production (#3746)
- return `None` on pre-4844 blob requests
This commit is contained in:
parent
24e5252a55
commit
0228b2b42d
@ -3384,13 +3384,15 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
|||||||
//
|
//
|
||||||
// Wait for the execution layer to return an execution payload (if one is required).
|
// Wait for the execution layer to return an execution payload (if one is required).
|
||||||
let prepare_payload_handle = partial_beacon_block.prepare_payload_handle.take();
|
let prepare_payload_handle = partial_beacon_block.prepare_payload_handle.take();
|
||||||
let execution_payload = if let Some(prepare_payload_handle) = prepare_payload_handle {
|
let block_contents = if let Some(prepare_payload_handle) = prepare_payload_handle {
|
||||||
|
Some(
|
||||||
prepare_payload_handle
|
prepare_payload_handle
|
||||||
.await
|
.await
|
||||||
.map_err(BlockProductionError::TokioJoin)?
|
.map_err(BlockProductionError::TokioJoin)?
|
||||||
.ok_or(BlockProductionError::ShuttingDown)??
|
.ok_or(BlockProductionError::ShuttingDown)??,
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
return Err(BlockProductionError::MissingExecutionPayload);
|
None
|
||||||
};
|
};
|
||||||
|
|
||||||
//FIXME(sean) waiting for the BN<>EE api for this to stabilize
|
//FIXME(sean) waiting for the BN<>EE api for this to stabilize
|
||||||
@ -3405,7 +3407,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
|||||||
move || {
|
move || {
|
||||||
chain.complete_partial_beacon_block(
|
chain.complete_partial_beacon_block(
|
||||||
partial_beacon_block,
|
partial_beacon_block,
|
||||||
execution_payload,
|
block_contents,
|
||||||
kzg_commitments,
|
kzg_commitments,
|
||||||
verification,
|
verification,
|
||||||
)
|
)
|
||||||
@ -3657,7 +3659,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
|||||||
fn complete_partial_beacon_block<Payload: AbstractExecPayload<T::EthSpec>>(
|
fn complete_partial_beacon_block<Payload: AbstractExecPayload<T::EthSpec>>(
|
||||||
&self,
|
&self,
|
||||||
partial_beacon_block: PartialBeaconBlock<T::EthSpec, Payload>,
|
partial_beacon_block: PartialBeaconBlock<T::EthSpec, Payload>,
|
||||||
block_contents: BlockProposalContents<T::EthSpec, Payload>,
|
block_contents: Option<BlockProposalContents<T::EthSpec, Payload>>,
|
||||||
kzg_commitments: Vec<KzgCommitment>,
|
kzg_commitments: Vec<KzgCommitment>,
|
||||||
verification: ProduceBlockVerification,
|
verification: ProduceBlockVerification,
|
||||||
) -> Result<BeaconBlockAndState<T::EthSpec, Payload>, BlockProductionError> {
|
) -> Result<BeaconBlockAndState<T::EthSpec, Payload>, BlockProductionError> {
|
||||||
@ -3737,6 +3739,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
|||||||
sync_aggregate: sync_aggregate
|
sync_aggregate: sync_aggregate
|
||||||
.ok_or(BlockProductionError::MissingSyncAggregate)?,
|
.ok_or(BlockProductionError::MissingSyncAggregate)?,
|
||||||
execution_payload: block_contents
|
execution_payload: block_contents
|
||||||
|
.ok_or(BlockProductionError::MissingExecutionPayload)?
|
||||||
.to_payload()
|
.to_payload()
|
||||||
.try_into()
|
.try_into()
|
||||||
.map_err(|_| BlockProductionError::InvalidPayloadFork)?,
|
.map_err(|_| BlockProductionError::InvalidPayloadFork)?,
|
||||||
@ -3759,6 +3762,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
|||||||
sync_aggregate: sync_aggregate
|
sync_aggregate: sync_aggregate
|
||||||
.ok_or(BlockProductionError::MissingSyncAggregate)?,
|
.ok_or(BlockProductionError::MissingSyncAggregate)?,
|
||||||
execution_payload: block_contents
|
execution_payload: block_contents
|
||||||
|
.ok_or(BlockProductionError::MissingExecutionPayload)?
|
||||||
.to_payload()
|
.to_payload()
|
||||||
.try_into()
|
.try_into()
|
||||||
.map_err(|_| BlockProductionError::InvalidPayloadFork)?,
|
.map_err(|_| BlockProductionError::InvalidPayloadFork)?,
|
||||||
@ -3783,6 +3787,7 @@ impl<T: BeaconChainTypes> BeaconChain<T> {
|
|||||||
sync_aggregate: sync_aggregate
|
sync_aggregate: sync_aggregate
|
||||||
.ok_or(BlockProductionError::MissingSyncAggregate)?,
|
.ok_or(BlockProductionError::MissingSyncAggregate)?,
|
||||||
execution_payload: block_contents
|
execution_payload: block_contents
|
||||||
|
.ok_or(BlockProductionError::MissingExecutionPayload)?
|
||||||
.to_payload()
|
.to_payload()
|
||||||
.try_into()
|
.try_into()
|
||||||
.map_err(|_| BlockProductionError::InvalidPayloadFork)?,
|
.map_err(|_| BlockProductionError::InvalidPayloadFork)?,
|
||||||
|
@ -959,11 +959,11 @@ impl<T: EthSpec> ExecutionLayer<T> {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let blob_fut = async {
|
let blob_fut = async {
|
||||||
//FIXME(sean) do a fork check here and return None otherwise
|
match current_fork {
|
||||||
// ^
|
ForkName::Base | ForkName::Altair | ForkName::Merge | ForkName::Capella => {
|
||||||
// well now we have the fork in this function so
|
None
|
||||||
// it should be easier to do that now
|
}
|
||||||
// - Mark
|
ForkName::Eip4844 => {
|
||||||
debug!(
|
debug!(
|
||||||
self.log(),
|
self.log(),
|
||||||
"Issuing engine_getBlobsBundle";
|
"Issuing engine_getBlobsBundle";
|
||||||
@ -973,6 +973,8 @@ impl<T: EthSpec> ExecutionLayer<T> {
|
|||||||
"parent_hash" => ?parent_hash,
|
"parent_hash" => ?parent_hash,
|
||||||
);
|
);
|
||||||
Some(engine.api.get_blobs_bundle_v1::<T>(payload_id).await)
|
Some(engine.api.get_blobs_bundle_v1::<T>(payload_id).await)
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
let payload_fut = async {
|
let payload_fut = async {
|
||||||
debug!(
|
debug!(
|
||||||
|
Loading…
Reference in New Issue
Block a user