Skip to content

Commit

Permalink
add initial electra spec (#101)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
jacobkaufmann authored Oct 9, 2024
1 parent 982af90 commit 2ee2480
Showing 1 changed file with 47 additions and 0 deletions.
47 changes: 47 additions & 0 deletions specs/electra/builder.md
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 2ee2480

Please sign in to comment.