## EPF Week 16 Updates This week, we will focus on building out the rpc request/response logic for `ExecutionPayloadEnvelopesByRange v1` and `ExecutionPayloadEnvelopesByRoot v1` per the [consensus spec](https://ethereum.github.io/consensus-specs/specs/gloas/p2p-interface/#executionpayloadenvelopesbyrange-v1) in lighthouse. These rpc's will be responsible for service up a range of `SignedExecutionPayloadEnvelope` to peers who need it for syncing. For both `ExecutionPayloadEnvelopesByRange` and `ExecutionPayloadEnvelopesByRoot`, we will need to be able to handle inbound requests from peers and also outbound requests from our own beacon node. Conceptually, the req/resp for `ExecutionPayloadEnvelopesByRange` will be mainly used during the syncing flow. The request object is ``` ( start_slot: Slot count: uint64 ) ``` with a response of: ``` ( List[SignedExecutionPayloadEnvelope, MAX_REQUEST_BLOCKS_DENEB] ) ``` You can request a range of slots that you're hoping to get back the envelopes as to validate the CL block in the corresponding slots, which is used when trying to catch up with the head during sync. However, `ExecutionPayloadEnvelopesByRoot` is more likely to be used when trying to validate a parent's envelope that you don't have in your db for example. So you'll request this envelope by the CL block's root. Request shape: ``` ( List[Root, MAX_REQUEST_PAYLOADS] ) ``` Response shape: ``` ( List[SignedExecutionPayloadEnvelope, MAX_REQUEST_PAYLOADS] ) ``` `ExecutionPayloadEnvelopesByRange` was implemented in [PR](https://github.com/shane-moore/lighthouse/pull/20). We will need to hook this up to the sync manager, but the boilerplate is all set. Similarly, the boilerplate for `ExecutionPayloadEnvelopesByRoot` is in good shape via [PR](https://github.com/shane-moore/lighthouse/pull/21), and next steps is to implement the envelope validation logic and hook into that. ## Next Week - update stale block processing PR's with updates from the consensus spec [v1.6.0-beta.0](https://github.com/ethereum/consensus-specs/releases/tag/v1.6.0-beta.0) release, which is the basis for devnet-0.