## EPF Week 12 Update This week, I started on the VC's `publish_block` flow, which includes getting the block from BN, signing, and then publishing it back to the BN for gossip. During the investigation, I realized the modifications will depend a bit on what will be the changes to the beacon api, such as: 1. the existing VC -> BN `get_block` v3 call is versioned and returns full payload, kzg_commitments, and blobs. Will they just update the version to gloas and then rip out these fields and replace with the bid + payload_attestations in the body? or will they update to a new v4 endpoint? https://ethereum.github.io/beacon-APIs/?urls.primaryName=dev#/Validator/produceBlockV3 The decision above kind of impacts how we'll then `sign_and_publish_block` since structs like the `UnsignedBlock` wouldn't contain `kzg_commitments` anymore, and assumedly not blobs either Instead of waiting for the specs to come out that will shape the answers to the questions above, I took the initiative to make a [PR](https://github.com/ethereum/beacon-APIs/pull/552) to the beacon api repo detailing all the new and modified endpoints that will be required for epbs. This was a great opportunity to make an impact on epbs that will help out all of the CL clients. TLDR of the PR: ### Updated Endpoints: - `GET /eth/v3/validator/blocks/{slot}` - Retrieves the gloas `BeaconBlock` so it can be signed, no blinded/unblinded variants nor `blobs/kzg_commitments` anymore - `POST /eth/v2/beacon/blocks` - Publishes a signed gloas `BeaconBlock` to the network ### New Endpoints: **ExecutionPayloadBid** - `GET /eth/v1/validator/execution_payload_bid/{slot}/{builder_index}` - Retrieves the builder’s execution payload bid so it can be signed - `POST /eth/v1/beacon/execution_payload_bid` - Publishes a signed execution payload bid to the network, and the bid must pass gossip validation for success **ExecutionPayloadEnvelope** - `GET /eth/v1/validator/execution_payload_envelope/{slot}/{builder_index}` - Retrieves the builder’s execution payload envelope so it can be signed response - `POST /eth/v1/beacon/execution_payload_envelope` - Publishes a signed execution payload envelope to the network, and the envelope must pass gossip validation for success **PTC** - `POST /eth/v1/validator/duties/ptc/{epoch}` - Retrieves Payload Timeliness Committee (PTC) duties for a given epoch and validator indices - `GET /eth/v1/validator/payload_attestation_data/{slot}` - Produces the payload attestation data for a given slot, to be signed by the validator if in the PTC that slot - `POST /eth/v1/beacon/pool/payload_attestations` - Submits a signed payload attestation message for gossip and pool inclusion - `GET /eth/v1/beacon/pool/payload_attestations` - Retrieves payload attestations currently in the beacon node’s operation pool `Post` `SignedExecutionPayloadBid` - endpoint to submit a signed bid to the BN for gossip ## Next Week - resolve any PR comments to the beacon api PR - start implementing the end points relevant to self-building block proposal pipeline