From 2ee2480c8bc55860ccc6db90ddefffdb8485c8b0 Mon Sep 17 00:00:00 2001 From: Jacob Kaufmann Date: Wed, 9 Oct 2024 17:23:00 -0400 Subject: [PATCH] add initial electra spec (#101) * add initial electra spec * move indirectly updated types into note * adjust for move of exec reqs from exec payload to beacon block * use electra constants for max lengths of attester slasings & attestations * replace execution requests with corresponding root * add ExecutionBundle and extend BuilderBid * clean up execution bundle * add notes to accompany type changes * fix broken link * replace exec reqs root with exec reqs * remove execution bundle container --- specs/electra/builder.md | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 specs/electra/builder.md diff --git a/specs/electra/builder.md b/specs/electra/builder.md new file mode 100644 index 0000000..307a31e --- /dev/null +++ b/specs/electra/builder.md @@ -0,0 +1,47 @@ +# Electra -- Builder Specification + +## Introduction + +This is the modification of the builder specification accompanying the Electra upgrade. + +The behavior defined by the specification is consistent with previous forks except for the changes to the types given below. + +## Containers + +### Extended containers + +#### `BuilderBid` + +Note: `SignedBuilderBid` is updated indirectly. + +```python +class BuilderBid(Container): + header: ExecutionPayloadHeader + blob_kzg_commitments: List[KZGCommitment, MAX_BLOB_COMMITMENTS_PER_BLOCK] + execution_requests: ExecutionRequests # [New in Electra] + value: uint256 + pubkey: BLSPubkey +``` + +#### `BlindedBeaconBlockBody` + +Note: `BlindedBeaconBlock` and `SignedBlindedBeaconBlock` types are updated indirectly. + +```python +class BlindedBeaconBlockBody(Container): + randao_reveal: BLSSignature + eth1_data: Eth1Data + graffiti: Bytes32 + proposer_slashings: List[ProposerSlashing, MAX_PROPOSER_SLASHINGS] + attester_slashings: List[AttesterSlashing, MAX_ATTESTER_SLASHINGS_ELECTRA] # [Modified in Electra:EIP7549] + attestations: List[Attestation, MAX_ATTESTATIONS_ELECTRA] # [Modified in Electra:EIP7549] + deposits: List[Deposit, MAX_DEPOSITS] + voluntary_exits: List[SignedVoluntaryExit, MAX_VOLUNTARY_EXITS] + sync_aggregate: SyncAggregate + execution_payload_header: ExecutionPayloadHeader + bls_to_execution_changes: List[SignedBLSToExecutionChange, MAX_BLS_TO_EXECUTION_CHANGES] + blob_kzg_commitments: List[KZGCommitment, MAX_BLOB_COMMITMENTS_PER_BLOCK] + execution_requests: ExecutionRequests # [New in Electra] +``` + +[execution-payload-and-blobs-bundle-deneb]: ../deneb/builder.md#executionpayloadandblobsbundle