This issue tracks the tasks for implementing the Gloas fork in Prysm. Expect changes to this issue and the checklists as work evolves. Also changes are expected after some recent proposed changes in the specs will get merged (e.g. ethereum/consensus-specs#4807 & ethereum/consensus-specs#4788)
EIP-7732: execution Payload-Block Separation
Beacon Chain
Custom Types
Constants, Preset & Configuration
Containers
New Containers
Modified Containers
Helper Functions
Predicates
Misc
Beacon State Accessors
State Transition Function
Process Slot
Epoch Processing
Block Processing - Withdrawals
Block Processing - Execution Payload Bid
Block Processing - Operations
Execution Payload Processing
Fork Choice
Custom Types & Constants
Containers
Functions
Fork-choice Helpers
Fork-choice Handlers
Validator
Time Parameters
Validator Assignment
Beacon Chain Responsibilities
Modified Functions
Data Column Sidecars
P2P Interface
Helper Functions
Configuration
Containers
Helpers
Gossip Topics
Req/Resp
Builder
Becoming a Builder
Builder Activities
Fork
Related PRs
| PR |
Description |
Status |
| #15601 |
Gloas protobuf definitions with spec tests |
Merged |
| #15611 |
Gloas beacon state package |
Merged |
| #15618 |
Gloas consensus type block package |
Merged |
| #16169 |
BuilderIndex SSZ type |
Merged |
| #16164 |
Builders registry + state fields |
Open |
| #15736 |
Process attestation |
Draft |
| #15730 |
Process slot |
Draft |
| #15656 |
Process execution payload envelope |
Draft |
| #15655 |
Process pending payment |
Draft |
| #15650 |
Process payload attestation |
Draft |
| #15638 |
Execution payload header processing |
Open |
This issue tracks the tasks for implementing the Gloas fork in Prysm. Expect changes to this issue and the checklists as work evolves. Also changes are expected after some recent proposed changes in the specs will get merged (e.g. ethereum/consensus-specs#4807 & ethereum/consensus-specs#4788)
EIP-7732: execution Payload-Block Separation
Beacon Chain
Custom Types
BuilderIndexSSZ type (#16169)Constants, Preset & Configuration
DOMAIN_BEACON_BUILDER,DOMAIN_PTC_ATTESTER)BUILDER_PAYMENT_THRESHOLD_NUMERATOR,BUILDER_PAYMENT_THRESHOLD_DENOMINATOR)BUILDER_WITHDRAWAL_PREFIX)PTC_SIZE,MAX_PAYLOAD_ATTESTATIONS,BUILDER_PENDING_WITHDRAWALS_LIMIT)Containers
New Containers
BuilderPendingPaymentBuilderPendingWithdrawalPayloadAttestationDataPayloadAttestationPayloadAttestationMessageIndexedPayloadAttestationExecutionPayloadBidSignedExecutionPayloadBidExecutionPayloadEnvelopeSignedExecutionPayloadEnvelopeModified Containers
BeaconBlockBody(#15618 - In Progress)BeaconState(#15611, #16164 - In Progress)Helper Functions
Predicates
is_builder_withdrawal_credentialhas_builder_withdrawal_credentialhas_compounding_withdrawal_credentialis_attestation_same_slotis_valid_indexed_payload_attestationis_parent_block_fullMisc
get_pending_balance_to_withdrawcompute_balance_weighted_selectioncompute_balance_weighted_acceptancecompute_proposer_indicesBeacon State Accessors
get_next_sync_committee_indicesget_attestation_participation_flag_indicesget_ptcget_indexed_payload_attestationget_builder_payment_quorum_thresholdState Transition Function
Process Slot
process_slot(#15730) - In Progress (Draft)Epoch Processing
process_epochprocess_builder_pending_payments(#15655) - In Progress (Draft)Block Processing - Withdrawals
is_builder_payment_withdrawableget_builder_withdrawable_balanceget_builder_withdrawalsget_expected_withdrawalsupdate_payload_expected_withdrawalsupdate_builder_pending_withdrawalsprocess_withdrawalsBlock Processing - Execution Payload Bid
verify_execution_payload_bid_signatureprocess_execution_payload_bid(#15638) - In ProgressBlock Processing - Operations
process_operationsprocess_attestation(#15736) - In Progress (Draft)process_payload_attestation(#15650) - In Progress (Draft)process_proposer_slashingExecution Payload Processing
verify_execution_payload_envelope_signatureprocess_execution_payload(#15656) - In Progress (Draft)Fork Choice
Custom Types & Constants
PayloadStatustypePAYLOAD_TIMELY_THRESHOLD,PAYLOAD_STATUS_PENDING,PAYLOAD_STATUS_EMPTY,PAYLOAD_STATUS_FULL)Containers
ForkChoiceNodeLatestMessageStore(addedexecution_payload_states,ptc_vote)Functions
update_latest_messagesget_forkchoice_storenotify_ptc_messagesis_payload_timelyget_parent_payload_statusis_parent_node_fullget_ancestorget_checkpoint_blockis_supporting_voteshould_extend_payloadget_payload_status_tiebreakerget_weightget_node_childrenget_headFork-choice Helpers
get_attestation_due_msget_aggregate_due_msget_sync_message_due_msget_contribution_due_msget_payload_attestation_due_msFork-choice Handlers
on_blockon_execution_payloadon_payload_attestation_messagevalidate_on_attestationValidator
Time Parameters
ATTESTATION_DUE_BPS_GLOAS,AGGREGATE_DUE_BPS_GLOAS,SYNC_MESSAGE_DUE_BPS_GLOAS,CONTRIBUTION_DUE_BPS_GLOAS,PAYLOAD_ATTESTATION_DUE_BPS)Validator Assignment
get_ptc_assignment)Beacon Chain Responsibilities
data.indexusage for payload status)signed_execution_payload_bidpayload_attestationsDataColumnSidecarobjectsModified Functions
prepare_execution_payloadData Column Sidecars
get_data_column_sidecars_from_column_sidecarP2P Interface
Helper Functions
compute_fork_versionConfiguration
MAX_REQUEST_PAYLOADSContainers
DataColumnSidecar(removedsigned_block_header,kzg_commitments_inclusion_proof; addedslot,beacon_block_root)Helpers
verify_data_column_sidecarGossip Topics
beacon_aggregate_and_proofvalidation changesbeacon_blockvalidation changesexecution_payloadtopicpayload_attestation_messagetopicexecution_payload_bidtopicdata_column_sidecar_{subnet_id}validation changesbeacon_attestation_{subnet_id}validation changesReq/Resp
BeaconBlocksByRangev2 (addGLOAS_FORK_VERSION)BeaconBlocksByRootv2 (addGLOAS_FORK_VERSION)ExecutionPayloadEnvelopesByRangev1ExecutionPayloadEnvelopesByRootv1Builder
Becoming a Builder
BUILDER_WITHDRAWAL_PREFIX)Builder Activities
SignedExecutionPayloadBidDataColumnSidecarsget_data_column_sidecarsget_data_column_sidecars_from_blockSignedExecutionPayloadEnvelopeFork
GLOAS_FORK_VERSIONGLOAS_FORK_EPOCHupgrade_to_gloasstate transitionRelated PRs