# Dev Update Week 7 This week’s marked a significant step forward for me in implementing the proposer-builder separation feature. I focused on establishing the foundational constants and configurations for the epbs feature on Nimbus: 1. **Constants and Presets:** - **Payload Status:** - `PAYLOAD_ABSENT` set to `uint8(0)` - `PAYLOAD_PRESENT` set to `uint8(1)` - `PAYLOAD_WITHHELD` set to `uint8(2)` - `PAYLOAD_INVALID_STATUS` set to `uint8(3)` - **Preset Miscellaneous:** - `PTC_SIZE` defined as `uint64(2**9)` (512), introduced as part of EIP-XXXX. - **Domain Types:** - `DOMAIN_BEACON_BUILDER` assigned the value `DomainType('0x1B000000')`. - `DOMAIN_PTC_ATTESTER` assigned the value `DomainType('0x0C000000')`. - **Max Operations per Block:** - `MAX_PAYLOAD_ATTESTATIONS` set to `2**2` (4). **Next Steps:** 1. **Implementation:** - Begin incorporating these constants into the codebase. 2. **Container Updates:** - **Add New Containers**: Implement new containers including `PayloadAttestationData`, `PayloadAttestation`, `PayloadAttestationMessage`, `IndexedPayloadAttestation`, `SignedExecutionPayloadHeader`, `ExecutionPayloadEnvelope`, and `SignedExecutionPayloadEnvelope`. - **Modify Containers**: Update `BeaconBlockBody` to include `SignedExecutionPayloadHeader` and `payload_attestations`. Modify `ExecutionPayloadHeader` to focus on block hash and builder’s payment information, while tracking `blob_kzg_commitments_root`. 3. **Beacon State and Functions:** - **BeaconState Modifications**: Update `BeaconState` to track the last honored withdrawals and latest execution payload header. Add fields for tracking the last committed block hash and the last full slot. - **Helper Functions**: Implement various helper functions including `is_valid_indexed_payload_attestation`, `is_parent_block_full`, and modifications to `get_attesting_indices` and `get_payload_attesting_indices`. I will be pushing all updates to this [branch](https://github.com/status-im/nimbus-eth2/pull/6443) ---