|
10 | 10 | - [Prerequisites](#prerequisites)
|
11 | 11 | - [Configuration](#configuration)
|
12 | 12 | - [Custody setting](#custody-setting)
|
| 13 | +- [Helpers](#helpers) |
| 14 | + - [`BlobsBundle`](#blobsbundle) |
| 15 | + - [Modified `GetPayloadResponse`](#modified-getpayloadresponse) |
| 16 | +- [Protocol](#protocol) |
| 17 | + - [`ExecutionEngine`](#executionengine) |
| 18 | + - [Modified `get_payload`](#modified-get_payload) |
13 | 19 | - [Beacon chain responsibilities](#beacon-chain-responsibilities)
|
14 | 20 | - [Validator custody](#validator-custody)
|
15 | 21 | - [Block and sidecar proposal](#block-and-sidecar-proposal)
|
@@ -44,6 +50,54 @@ document and used throughout.
|
44 | 50 | | `VALIDATOR_CUSTODY_REQUIREMENT` | `8` | Minimum number of custody groups an honest node with validators attached custodies and serves samples from |
|
45 | 51 | | `BALANCE_PER_ADDITIONAL_CUSTODY_GROUP` | `Gwei(32 * 10**9)` | Balance increment corresponding to one additional group to custody |
|
46 | 52 |
|
| 53 | +## Helpers |
| 54 | + |
| 55 | +### `BlobsBundle` |
| 56 | + |
| 57 | +*[Modified in Fulu:EIP7594]* |
| 58 | + |
| 59 | +The `BlobsBundle` object is modified to include cell KZG proofs instead of blob KZG proofs. |
| 60 | + |
| 61 | +```python |
| 62 | +@dataclass |
| 63 | +class BlobsBundle(object): |
| 64 | + commitments: List[KZGCommitment, MAX_BLOB_COMMITMENTS_PER_BLOCK] |
| 65 | + # [Modified in Fulu:EIP7594] |
| 66 | + proofs: List[KZGProof, FIELD_ELEMENTS_PER_EXT_BLOB * MAX_BLOB_COMMITMENTS_PER_BLOCK] |
| 67 | + blobs: List[Blob, MAX_BLOB_COMMITMENTS_PER_BLOCK] |
| 68 | +``` |
| 69 | + |
| 70 | +### Modified `GetPayloadResponse` |
| 71 | + |
| 72 | +*[Modified in Fulu:EIP7594]* |
| 73 | + |
| 74 | +The `GetPayloadResponse` object is modified to use the updated `BlobsBundle` object. |
| 75 | + |
| 76 | +```python |
| 77 | +@dataclass |
| 78 | +class GetPayloadResponse(object): |
| 79 | + execution_payload: ExecutionPayload |
| 80 | + block_value: uint256 |
| 81 | + blobs_bundle: BlobsBundle # [Modified in Fulu:EIP7594] |
| 82 | +``` |
| 83 | + |
| 84 | +## Protocol |
| 85 | + |
| 86 | +### `ExecutionEngine` |
| 87 | + |
| 88 | +#### Modified `get_payload` |
| 89 | + |
| 90 | +The `get_payload` method is modified to return the updated `GetPayloadResponse` object. |
| 91 | + |
| 92 | +```python |
| 93 | +def get_payload(self: ExecutionEngine, payload_id: PayloadId) -> GetPayloadResponse: |
| 94 | + """ |
| 95 | + Return ExecutionPayload, uint256, BlobsBundle objects. |
| 96 | + """ |
| 97 | + # pylint: disable=unused-argument |
| 98 | + ... |
| 99 | +``` |
| 100 | + |
47 | 101 | ## Beacon chain responsibilities
|
48 | 102 |
|
49 | 103 | ### Validator custody
|
|
0 commit comments