CI: Add clang-formatter lint workflow for proto files (#14831)

* Enforce clang-format for proto files in proto/

* Update pb files after #14818

* Changelog fragment
This commit is contained in:
Preston Van Loon
2025-01-27 14:01:21 -06:00
committed by GitHub
parent 536cded4cc
commit b4220e35c4
60 changed files with 4136 additions and 3007 deletions

21
.github/workflows/clang-format.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Protobuf Format
on:
push:
branches: [ '*' ]
pull_request:
branches: [ '*' ]
merge_group:
types: [checks_requested]
jobs:
clang-format-checking:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# Is this step failing for you?
# Run: clang-format -i proto/**/*.proto
# See: https://clang.llvm.org/docs/ClangFormat.html
- uses: RafikFarhad/clang-format-github-action@v3
with:
sources: "proto/**/*.proto"

View File

@@ -0,0 +1,5 @@
### Changed
- CI now requires proto files to be properly formatted with clang-format. [[PR](https://github.com/prysmaticlabs/prysm/pull/14831)]
### Ignored
- Run ./hacks/update-go-pb.sh

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/dbval/dbval.proto // source: proto/dbval/dbval.proto
package dbval package dbval

View File

@@ -4,20 +4,25 @@ package ethereum.eth.dbval;
option go_package = "github.com/prysmaticlabs/prysm/v5/proto/dbval;dbval"; option go_package = "github.com/prysmaticlabs/prysm/v5/proto/dbval;dbval";
// BackfillStatus is a value used to keep track of the progress of the process of backfilling blocks leading up to // BackfillStatus is a value used to keep track of the progress of the process
// the origin block used to checkpoint sync a node. There is only one BackfillStatus value in the database. // of backfilling blocks leading up to the origin block used to checkpoint sync
// a node. There is only one BackfillStatus value in the database.
message BackfillStatus { message BackfillStatus {
// low_slot is the slot of the last block that backfill will attempt to download and import. // low_slot is the slot of the last block that backfill will attempt to
// This is determined by MIN_EPOCHS_FOR_BLOCK_REQUESTS, or by a user-specified override. // download and import. This is determined by MIN_EPOCHS_FOR_BLOCK_REQUESTS,
uint64 low_slot = 1; // or by a user-specified override.
// low_root is the root of the last block that backfill will attempt to download and import. uint64 low_slot = 1;
bytes low_root = 2; // low_root is the root of the last block that backfill will attempt to
// low_parent_root is the parent_root of the block at low_root. This enables the backfill service to check // download and import.
// that a block is the direct ancestor of the block for low_root without an additional db lookup. bytes low_root = 2;
bytes low_parent_root = 3; // low_parent_root is the parent_root of the block at low_root. This enables
// origin_slot is the slot of the origin block, which is the block used to initiate a checkpoint sync. // the backfill service to check that a block is the direct ancestor of the
// Backfill uses the origin block as the reference point to determine canonical ancestors. // block for low_root without an additional db lookup.
uint64 origin_slot = 4; bytes low_parent_root = 3;
// origin_root is the root of the origin block. // origin_slot is the slot of the origin block, which is the block used to
bytes origin_root = 6; // initiate a checkpoint sync. Backfill uses the origin block as the reference
// point to determine canonical ancestors.
uint64 origin_slot = 4;
// origin_root is the root of the origin block.
bytes origin_root = 6;
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/engine/v1/electra.proto // source: proto/engine/v1/electra.proto
package enginev1 package enginev1

View File

@@ -25,52 +25,59 @@ option java_outer_classname = "ElectraProto";
option java_package = "org.ethereum.engine.v1"; option java_package = "org.ethereum.engine.v1";
option php_namespace = "Ethereum\\Engine\\v1"; option php_namespace = "Ethereum\\Engine\\v1";
// WithdrawalRequest is the message from the execution layer to trigger the withdrawal of a validator's balance to its withdrawal address // WithdrawalRequest is the message from the execution layer to trigger the
// new in Electra // withdrawal of a validator's balance to its withdrawal address new in Electra
message WithdrawalRequest { message WithdrawalRequest {
// The execution address receiving the funds // The execution address receiving the funds
bytes source_address = 1 [(ethereum.eth.ext.ssz_size) = "20"]; bytes source_address = 1 [ (ethereum.eth.ext.ssz_size) = "20" ];
// 48 byte BLS public key of the validator. // 48 byte BLS public key of the validator.
bytes validator_pubkey = 2 [(ethereum.eth.ext.ssz_size) = "48"]; bytes validator_pubkey = 2 [ (ethereum.eth.ext.ssz_size) = "48" ];
// Deposit amount in gwei. // Deposit amount in gwei.
uint64 amount = 3; uint64 amount = 3;
} }
// DepositRequest is the message from the execution layer to trigger the deposit of a validator's balance to its balance // DepositRequest is the message from the execution layer to trigger the deposit
// new in Electra // of a validator's balance to its balance new in Electra
message DepositRequest { message DepositRequest {
bytes pubkey = 1 [(ethereum.eth.ext.ssz_size) = "48"]; bytes pubkey = 1 [ (ethereum.eth.ext.ssz_size) = "48" ];
bytes withdrawal_credentials = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes withdrawal_credentials = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 amount = 3; uint64 amount = 3;
bytes signature = 4 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 4 [ (ethereum.eth.ext.ssz_size) = "96" ];
uint64 index = 5; uint64 index = 5;
} }
// ConsolidationRequest is the message from the execution layer to trigger the consolidation of one // ConsolidationRequest is the message from the execution layer to trigger the
// validator to another validator. // consolidation of one validator to another validator.
message ConsolidationRequest { message ConsolidationRequest {
// Source address of account which originated the request. // Source address of account which originated the request.
bytes source_address = 1 [(ethereum.eth.ext.ssz_size) = "20"]; bytes source_address = 1 [ (ethereum.eth.ext.ssz_size) = "20" ];
// Funds will be moved from this public key. // Funds will be moved from this public key.
bytes source_pubkey = 2 [(ethereum.eth.ext.ssz_size) = "48"]; bytes source_pubkey = 2 [ (ethereum.eth.ext.ssz_size) = "48" ];
// Funds will be moved to this public key. // Funds will be moved to this public key.
bytes target_pubkey = 3 [(ethereum.eth.ext.ssz_size) = "48"]; bytes target_pubkey = 3 [ (ethereum.eth.ext.ssz_size) = "48" ];
} }
// ExecutionRequests is a container that contains all the requests from the execution layer to be included in a block // ExecutionRequests is a container that contains all the requests from the
// execution layer to be included in a block
message ExecutionRequests { message ExecutionRequests {
repeated DepositRequest deposits = 1 [(ethereum.eth.ext.ssz_max) = "max_deposit_requests_per_payload.size"]; repeated DepositRequest deposits = 1
repeated WithdrawalRequest withdrawals = 2 [(ethereum.eth.ext.ssz_max) = "max_withdrawal_requests_per_payload.size"]; [ (ethereum.eth.ext.ssz_max) = "max_deposit_requests_per_payload.size" ];
repeated ConsolidationRequest consolidations = 3 [(ethereum.eth.ext.ssz_max) = "max_consolidation_requests_per_payload.size"]; repeated WithdrawalRequest withdrawals = 2
[ (ethereum.eth.ext.ssz_max) =
"max_withdrawal_requests_per_payload.size" ];
repeated ConsolidationRequest consolidations = 3
[ (ethereum.eth.ext.ssz_max) =
"max_consolidation_requests_per_payload.size" ];
} }
// ExecutionBundleElectra is a container that builds on Payload V4 and includes execution requests sidecar needed post Electra // ExecutionBundleElectra is a container that builds on Payload V4 and includes
// execution requests sidecar needed post Electra
message ExecutionBundleElectra { message ExecutionBundleElectra {
ExecutionPayloadDeneb payload = 1; ExecutionPayloadDeneb payload = 1;
bytes value = 2; bytes value = 2;
BlobsBundle blobs_bundle = 3; BlobsBundle blobs_bundle = 3;
bool should_override_builder = 4; bool should_override_builder = 4;
repeated bytes execution_requests = 5; repeated bytes execution_requests = 5;
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/engine/v1/execution_engine.proto // source: proto/engine/v1/execution_engine.proto
package enginev1 package enginev1

View File

@@ -25,206 +25,232 @@ option java_package = "org.ethereum.engine.v1";
option php_namespace = "Ethereum\\Engine\\v1"; option php_namespace = "Ethereum\\Engine\\v1";
message ExecutionPayload { message ExecutionPayload {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"]; bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes receipts_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; bytes receipts_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes logs_bloom = 5 [(ethereum.eth.ext.ssz_size) = "logs_bloom.size"]; bytes logs_bloom = 5 [ (ethereum.eth.ext.ssz_size) = "logs_bloom.size" ];
bytes prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"]; bytes prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7; uint64 block_number = 7;
uint64 gas_limit = 8; uint64 gas_limit = 8;
uint64 gas_used = 9; uint64 gas_used = 9;
uint64 timestamp = 10; uint64 timestamp = 10;
bytes extra_data = 11 [(ethereum.eth.ext.ssz_max) = "extra_data.size"]; bytes extra_data = 11 [ (ethereum.eth.ext.ssz_max) = "extra_data.size" ];
bytes base_fee_per_gas = 12 [(ethereum.eth.ext.ssz_size) = "32"]; bytes base_fee_per_gas = 12 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes block_hash = 13 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_hash = 13 [ (ethereum.eth.ext.ssz_size) = "32" ];
repeated bytes transactions = 14 [(ethereum.eth.ext.ssz_size) = "?,?", (ethereum.eth.ext.ssz_max) = "1048576,1073741824"]; repeated bytes transactions = 14 [
(ethereum.eth.ext.ssz_size) = "?,?",
(ethereum.eth.ext.ssz_max) = "1048576,1073741824"
];
} }
message ExecutionPayloadCapella { message ExecutionPayloadCapella {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"]; bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes receipts_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; bytes receipts_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes logs_bloom = 5 [(ethereum.eth.ext.ssz_size) = "logs_bloom.size"]; bytes logs_bloom = 5 [ (ethereum.eth.ext.ssz_size) = "logs_bloom.size" ];
bytes prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"]; bytes prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7; uint64 block_number = 7;
uint64 gas_limit = 8; uint64 gas_limit = 8;
uint64 gas_used = 9; uint64 gas_used = 9;
uint64 timestamp = 10; uint64 timestamp = 10;
bytes extra_data = 11 [(ethereum.eth.ext.ssz_max) = "extra_data.size"]; bytes extra_data = 11 [ (ethereum.eth.ext.ssz_max) = "extra_data.size" ];
bytes base_fee_per_gas = 12 [(ethereum.eth.ext.ssz_size) = "32"]; bytes base_fee_per_gas = 12 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes block_hash = 13 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_hash = 13 [ (ethereum.eth.ext.ssz_size) = "32" ];
repeated bytes transactions = 14 [(ethereum.eth.ext.ssz_size) = "?,?", (ethereum.eth.ext.ssz_max) = "1048576,1073741824"]; repeated bytes transactions = 14 [
// MAX_WITHDRAWALS_PER_PAYLOAD (ethereum.eth.ext.ssz_size) = "?,?",
repeated Withdrawal withdrawals = 15 [(ethereum.eth.ext.ssz_max) = "withdrawal.size"]; // New in Capella. (ethereum.eth.ext.ssz_max) = "1048576,1073741824"
];
// MAX_WITHDRAWALS_PER_PAYLOAD
repeated Withdrawal withdrawals = 15
[ (ethereum.eth.ext.ssz_max) = "withdrawal.size" ]; // New in Capella.
} }
message ExecutionPayloadDeneb { message ExecutionPayloadDeneb {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"]; bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes receipts_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; bytes receipts_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes logs_bloom = 5 [(ethereum.eth.ext.ssz_size) = "logs_bloom.size"]; bytes logs_bloom = 5 [ (ethereum.eth.ext.ssz_size) = "logs_bloom.size" ];
bytes prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"]; bytes prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7; uint64 block_number = 7;
uint64 gas_limit = 8; uint64 gas_limit = 8;
uint64 gas_used = 9; uint64 gas_used = 9;
uint64 timestamp = 10; uint64 timestamp = 10;
bytes extra_data = 11 [(ethereum.eth.ext.ssz_max) = "extra_data.size"]; bytes extra_data = 11 [ (ethereum.eth.ext.ssz_max) = "extra_data.size" ];
bytes base_fee_per_gas = 12 [(ethereum.eth.ext.ssz_size) = "32"]; bytes base_fee_per_gas = 12 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes block_hash = 13 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_hash = 13 [ (ethereum.eth.ext.ssz_size) = "32" ];
repeated bytes transactions = 14 [(ethereum.eth.ext.ssz_size) = "?,?", (ethereum.eth.ext.ssz_max) = "1048576,1073741824"]; repeated bytes transactions = 14 [
// MAX_WITHDRAWALS_PER_PAYLOAD (ethereum.eth.ext.ssz_size) = "?,?",
repeated Withdrawal withdrawals = 15 [(ethereum.eth.ext.ssz_max) = "withdrawal.size"]; (ethereum.eth.ext.ssz_max) = "1048576,1073741824"
uint64 blob_gas_used = 16; ];
uint64 excess_blob_gas = 17; // MAX_WITHDRAWALS_PER_PAYLOAD
repeated Withdrawal withdrawals = 15
[ (ethereum.eth.ext.ssz_max) = "withdrawal.size" ];
uint64 blob_gas_used = 16;
uint64 excess_blob_gas = 17;
} }
message ExecutionPayloadCapellaWithValue { message ExecutionPayloadCapellaWithValue {
ExecutionPayloadCapella payload = 1; ExecutionPayloadCapella payload = 1;
bytes value = 2; bytes value = 2;
} }
message ExecutionPayloadDenebWithValueAndBlobsBundle { message ExecutionPayloadDenebWithValueAndBlobsBundle {
ExecutionPayloadDeneb payload = 1; ExecutionPayloadDeneb payload = 1;
bytes value = 2; bytes value = 2;
BlobsBundle blobs_bundle = 3; BlobsBundle blobs_bundle = 3;
bool should_override_builder = 4; bool should_override_builder = 4;
} }
message ExecutionPayloadHeader { message ExecutionPayloadHeader {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"]; bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes receipts_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; bytes receipts_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes logs_bloom = 5 [(ethereum.eth.ext.ssz_size) = "logs_bloom.size"]; bytes logs_bloom = 5 [ (ethereum.eth.ext.ssz_size) = "logs_bloom.size" ];
bytes prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"]; bytes prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7; uint64 block_number = 7;
uint64 gas_limit = 8; uint64 gas_limit = 8;
uint64 gas_used = 9; uint64 gas_used = 9;
uint64 timestamp = 10; uint64 timestamp = 10;
bytes extra_data = 11 [(ethereum.eth.ext.ssz_max) = "extra_data.size"]; bytes extra_data = 11 [ (ethereum.eth.ext.ssz_max) = "extra_data.size" ];
bytes base_fee_per_gas = 12 [(ethereum.eth.ext.ssz_size) = "32"]; bytes base_fee_per_gas = 12 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes block_hash = 13 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_hash = 13 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes transactions_root = 14 [(ethereum.eth.ext.ssz_size) = "32"]; bytes transactions_root = 14 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
message ExecutionPayloadHeaderCapella { message ExecutionPayloadHeaderCapella {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"]; bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes receipts_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; bytes receipts_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes logs_bloom = 5 [(ethereum.eth.ext.ssz_size) = "logs_bloom.size"]; bytes logs_bloom = 5 [ (ethereum.eth.ext.ssz_size) = "logs_bloom.size" ];
bytes prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"]; bytes prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7; uint64 block_number = 7;
uint64 gas_limit = 8; uint64 gas_limit = 8;
uint64 gas_used = 9; uint64 gas_used = 9;
uint64 timestamp = 10; uint64 timestamp = 10;
bytes extra_data = 11 [(ethereum.eth.ext.ssz_max) = "extra_data.size"]; bytes extra_data = 11 [ (ethereum.eth.ext.ssz_max) = "extra_data.size" ];
bytes base_fee_per_gas = 12 [(ethereum.eth.ext.ssz_size) = "32"]; bytes base_fee_per_gas = 12 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes block_hash = 13 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_hash = 13 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes transactions_root = 14 [(ethereum.eth.ext.ssz_size) = "32"]; bytes transactions_root = 14 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes withdrawals_root = 15 [(ethereum.eth.ext.ssz_size) = "32"]; // New in Capella. bytes withdrawals_root = 15
[ (ethereum.eth.ext.ssz_size) = "32" ]; // New in Capella.
} }
message ExecutionPayloadHeaderDeneb { message ExecutionPayloadHeaderDeneb {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"]; bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes receipts_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; bytes receipts_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes logs_bloom = 5 [(ethereum.eth.ext.ssz_size) = "logs_bloom.size"]; bytes logs_bloom = 5 [ (ethereum.eth.ext.ssz_size) = "logs_bloom.size" ];
bytes prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"]; bytes prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7; uint64 block_number = 7;
uint64 gas_limit = 8; uint64 gas_limit = 8;
uint64 gas_used = 9; uint64 gas_used = 9;
uint64 timestamp = 10; uint64 timestamp = 10;
bytes extra_data = 11 [(ethereum.eth.ext.ssz_max) = "extra_data.size"]; bytes extra_data = 11 [ (ethereum.eth.ext.ssz_max) = "extra_data.size" ];
bytes base_fee_per_gas = 12 [(ethereum.eth.ext.ssz_size) = "32"]; bytes base_fee_per_gas = 12 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes block_hash = 13 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_hash = 13 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes transactions_root = 14 [(ethereum.eth.ext.ssz_size) = "32"]; bytes transactions_root = 14 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes withdrawals_root = 15 [(ethereum.eth.ext.ssz_size) = "32"]; bytes withdrawals_root = 15 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 blob_gas_used = 16; uint64 blob_gas_used = 16;
uint64 excess_blob_gas = 17; uint64 excess_blob_gas = 17;
} }
message PayloadAttributes { message PayloadAttributes {
uint64 timestamp = 1; uint64 timestamp = 1;
bytes prev_randao = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes prev_randao = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes suggested_fee_recipient = 3 [(ethereum.eth.ext.ssz_size) = "20"]; bytes suggested_fee_recipient = 3 [ (ethereum.eth.ext.ssz_size) = "20" ];
} }
message PayloadAttributesV2 { message PayloadAttributesV2 {
uint64 timestamp = 1; uint64 timestamp = 1;
bytes prev_randao = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes prev_randao = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes suggested_fee_recipient = 3 [(ethereum.eth.ext.ssz_size) = "20"]; bytes suggested_fee_recipient = 3 [ (ethereum.eth.ext.ssz_size) = "20" ];
repeated Withdrawal withdrawals = 4 [(ethereum.eth.ext.ssz_max) = "withdrawal.size"]; // New in Capella. repeated Withdrawal withdrawals = 4
[ (ethereum.eth.ext.ssz_max) = "withdrawal.size" ]; // New in Capella.
} }
message PayloadAttributesV3 { message PayloadAttributesV3 {
uint64 timestamp = 1; uint64 timestamp = 1;
bytes prev_randao = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes prev_randao = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes suggested_fee_recipient = 3 [(ethereum.eth.ext.ssz_size) = "20"]; bytes suggested_fee_recipient = 3 [ (ethereum.eth.ext.ssz_size) = "20" ];
repeated Withdrawal withdrawals = 4 [(ethereum.eth.ext.ssz_max) = "withdrawal.size"]; repeated Withdrawal withdrawals = 4
bytes parent_beacon_block_root = 5 [(ethereum.eth.ext.ssz_size) = "32"]; [ (ethereum.eth.ext.ssz_max) = "withdrawal.size" ];
bytes parent_beacon_block_root = 5 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
message PayloadStatus { message PayloadStatus {
Status status = 1; Status status = 1;
bytes latest_valid_hash = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes latest_valid_hash = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
string validation_error = 3; string validation_error = 3;
enum Status { enum Status {
UNKNOWN = 0; UNKNOWN = 0;
VALID = 1; VALID = 1;
INVALID = 2; INVALID = 2;
SYNCING = 3; SYNCING = 3;
ACCEPTED = 4; ACCEPTED = 4;
INVALID_BLOCK_HASH = 5; INVALID_BLOCK_HASH = 5;
} }
} }
message ForkchoiceState { message ForkchoiceState {
bytes head_block_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes head_block_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes safe_block_hash = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes safe_block_hash = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes finalized_block_hash = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes finalized_block_hash = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
// The withdrawal receipt with the recipient address and amount withdrawn // The withdrawal receipt with the recipient address and amount withdrawn
message Withdrawal { message Withdrawal {
// Withdrawal index for accounting purposes // Withdrawal index for accounting purposes
uint64 index = 1; uint64 index = 1;
// Validator index for the withdrawal // Validator index for the withdrawal
uint64 validator_index = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 validator_index = 2
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// The execution address receiving the funds // The execution address receiving the funds
bytes address = 3 [(ethereum.eth.ext.ssz_size) = "20"]; bytes address = 3 [ (ethereum.eth.ext.ssz_size) = "20" ];
// The withdrawn amount in Gwei // The withdrawn amount in Gwei
uint64 amount = 4; uint64 amount = 4;
} }
// BlobsBundle is retrieved through engine-api from the execution layer client. // BlobsBundle is retrieved through engine-api from the execution layer client.
// It consists of the necessary components for constructing a blobs sidecar object to gossip through p2p. // It consists of the necessary components for constructing a blobs sidecar
// object to gossip through p2p.
message BlobsBundle { message BlobsBundle {
// The KZG commitments of the blobs. // The KZG commitments of the blobs.
repeated bytes kzg_commitments = 1 [(ethereum.eth.ext.ssz_size) = "?,48", (ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"]; repeated bytes kzg_commitments = 1 [
(ethereum.eth.ext.ssz_size) = "?,48",
(ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"
];
// The proofs of the blobs. // The proofs of the blobs.
repeated bytes proofs = 2 [(ethereum.eth.ext.ssz_size) = "?,48", (ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"]; repeated bytes proofs = 2 [
(ethereum.eth.ext.ssz_size) = "?,48",
(ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"
];
// The blobs itself. // The blobs itself.
repeated bytes blobs = 3 [(ethereum.eth.ext.ssz_size) = "?,blob.size", (ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"]; repeated bytes blobs = 3 [
(ethereum.eth.ext.ssz_size) = "?,blob.size",
(ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"
];
} }
// Blob contains the data that is to be committed on chain. // Blob contains the data that is to be committed on chain.
message Blob { message Blob {
// The blob bytes. // The blob bytes.
bytes data = 1 [(ethereum.eth.ext.ssz_size) = "blob.size"]; bytes data = 1 [ (ethereum.eth.ext.ssz_size) = "blob.size" ];
} }
message BlobAndProof { message BlobAndProof {
bytes blob = 1 [(ethereum.eth.ext.ssz_size) = "blob.size"]; bytes blob = 1 [ (ethereum.eth.ext.ssz_size) = "blob.size" ];
bytes kzg_proof = 2 [(ethereum.eth.ext.ssz_size) = "48"]; bytes kzg_proof = 2 [ (ethereum.eth.ext.ssz_size) = "48" ];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/eth/ext/options.proto // source: proto/eth/ext/options.proto
package ext package ext

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/eth/v1/attestation.proto // source: proto/eth/v1/attestation.proto
package v1 package v1

View File

@@ -26,62 +26,79 @@ option java_package = "org.ethereum.eth.v1";
option php_namespace = "Ethereum\\Eth\\v1"; option php_namespace = "Ethereum\\Eth\\v1";
message Attestation { message Attestation {
// A bitfield representation of validator indices that have voted exactly // A bitfield representation of validator indices that have voted exactly
// the same vote and have been aggregated into this attestation. // the same vote and have been aggregated into this attestation.
bytes aggregation_bits = 1 [(ethereum.eth.ext.ssz_max) = "2048", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitlist"]; bytes aggregation_bits = 1 [
(ethereum.eth.ext.ssz_max) = "2048",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitlist"
];
AttestationData data = 2; AttestationData data = 2;
// 96 byte BLS aggregate signature. // 96 byte BLS aggregate signature.
bytes signature = 3 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 3 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message AggregateAttestationAndProof { message AggregateAttestationAndProof {
// The aggregator index that submitted this aggregated attestation and proof. // The aggregator index that submitted this aggregated attestation and proof.
uint64 aggregator_index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 aggregator_index = 1
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// The aggregated attestation that was submitted. // The aggregated attestation that was submitted.
Attestation aggregate = 3; Attestation aggregate = 3;
// 96 byte selection proof signed by the aggregator, which is the signature of the slot to aggregate. // 96 byte selection proof signed by the aggregator, which is the signature of
bytes selection_proof = 2 [(ethereum.eth.ext.ssz_size) = "96"]; // the slot to aggregate.
bytes selection_proof = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message SignedAggregateAttestationAndProof { message SignedAggregateAttestationAndProof {
// The aggregated attestation and selection proof itself. // The aggregated attestation and selection proof itself.
AggregateAttestationAndProof message = 1; AggregateAttestationAndProof message = 1;
// 96 byte BLS aggregate signature signed by the aggregator over the message. // 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message AttestationData { message AttestationData {
// Attestation data includes information on Casper the Friendly Finality Gadget's votes // Attestation data includes information on Casper the Friendly Finality
// See: https://arxiv.org/pdf/1710.09437.pdf // Gadget's votes See: https://arxiv.org/pdf/1710.09437.pdf
// Slot of the attestation attesting for. // Slot of the attestation attesting for.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// The committee index that submitted this attestation. // The committee index that submitted this attestation.
uint64 index = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.CommitteeIndex"]; uint64 index = 2 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.CommitteeIndex" ];
// 32 byte root of the LMD GHOST block vote. // 32 byte root of the LMD GHOST block vote.
bytes beacon_block_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes beacon_block_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The most recent justified checkpoint in the beacon state // The most recent justified checkpoint in the beacon state
Checkpoint source = 4; Checkpoint source = 4;
// The checkpoint attempting to be justified for the current epoch and its epoch boundary block // The checkpoint attempting to be justified for the current epoch and its
Checkpoint target = 5; // epoch boundary block
Checkpoint target = 5;
} }
message Checkpoint { message Checkpoint {
// A checkpoint is every epoch's first slot. The goal of Casper FFG // A checkpoint is every epoch's first slot. The goal of Casper FFG
// is to link the check points together for justification and finalization. // is to link the check points together for justification and finalization.
// Epoch the checkpoint references. // Epoch the checkpoint references.
uint64 epoch = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 epoch = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Block root of the checkpoint references. // Block root of the checkpoint references.
bytes root = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/eth/v1/beacon_block.proto // source: proto/eth/v1/beacon_block.proto
package v1 package v1

View File

@@ -26,140 +26,158 @@ option java_outer_classname = "BeaconBlockProto";
option java_package = "org.ethereum.eth.v1"; option java_package = "org.ethereum.eth.v1";
option php_namespace = "Ethereum\\Eth\\v1"; option php_namespace = "Ethereum\\Eth\\v1";
// The Ethereum consensus beacon block. The message does not contain a validator signature. // The Ethereum consensus beacon block. The message does not contain a validator
// signature.
message BeaconBlock { message BeaconBlock {
// Beacon chain slot that this block represents. // Beacon chain slot that this block represents.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// Validator index of the validator that proposed the block header. // Validator index of the validator that proposed the block header.
uint64 proposer_index = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 proposer_index = 2 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/"
"consensus-types/primitives.ValidatorIndex" ];
// 32 byte root of the parent block. // 32 byte root of the parent block.
bytes parent_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes parent_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
// 32 byte root of the resulting state after processing this block. // 32 byte root of the resulting state after processing this block.
bytes state_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The block body itself. // The block body itself.
BeaconBlockBody body = 5; BeaconBlockBody body = 5;
} }
// The signed version of beacon block. // The signed version of beacon block.
message SignedBeaconBlock { message SignedBeaconBlock {
// The unsigned beacon block itself. // The unsigned beacon block itself.
BeaconBlock block = 1; BeaconBlock block = 1;
// 96 byte BLS signature from the validator that produced this block. // 96 byte BLS signature from the validator that produced this block.
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
// The block body of an Ethereum consensus beacon block. // The block body of an Ethereum consensus beacon block.
message BeaconBlockBody { message BeaconBlockBody {
// The validators RANDAO reveal 96 byte value. // The validators RANDAO reveal 96 byte value.
bytes randao_reveal = 1 [(ethereum.eth.ext.ssz_size) = "96"]; bytes randao_reveal = 1 [ (ethereum.eth.ext.ssz_size) = "96" ];
// A reference to the Ethereum 1.x chain. // A reference to the Ethereum 1.x chain.
Eth1Data eth1_data = 2; Eth1Data eth1_data = 2;
// 32 byte field of arbitrary data. This field may contain any data and // 32 byte field of arbitrary data. This field may contain any data and
// is not used for anything other than a fun message. // is not used for anything other than a fun message.
bytes graffiti = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes graffiti = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Block operations // Block operations
// Refer to spec constants at https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#max-operations-per-block // Refer to spec constants at
// https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/beacon-chain.md#max-operations-per-block
// At most MAX_PROPOSER_SLASHINGS. // At most MAX_PROPOSER_SLASHINGS.
repeated ProposerSlashing proposer_slashings = 4 [(ethereum.eth.ext.ssz_max) = "16"]; repeated ProposerSlashing proposer_slashings = 4
[ (ethereum.eth.ext.ssz_max) = "16" ];
// At most MAX_ATTESTER_SLASHINGS. // At most MAX_ATTESTER_SLASHINGS.
repeated AttesterSlashing attester_slashings = 5 [(ethereum.eth.ext.ssz_max) = "2"]; repeated AttesterSlashing attester_slashings = 5
[ (ethereum.eth.ext.ssz_max) = "2" ];
// At most MAX_ATTESTATIONS. // At most MAX_ATTESTATIONS.
repeated Attestation attestations = 6 [(ethereum.eth.ext.ssz_max) = "128"]; repeated Attestation attestations = 6 [ (ethereum.eth.ext.ssz_max) = "128" ];
// At most MAX_DEPOSITS. // At most MAX_DEPOSITS.
repeated Deposit deposits = 7 [(ethereum.eth.ext.ssz_max) = "16"]; repeated Deposit deposits = 7 [ (ethereum.eth.ext.ssz_max) = "16" ];
// At most MAX_VOLUNTARY_EXITS. // At most MAX_VOLUNTARY_EXITS.
repeated SignedVoluntaryExit voluntary_exits = 8 [(ethereum.eth.ext.ssz_max) = "16"]; repeated SignedVoluntaryExit voluntary_exits = 8
[ (ethereum.eth.ext.ssz_max) = "16" ];
} }
// Proposer slashings are proofs that a slashable offense has been committed by // Proposer slashings are proofs that a slashable offense has been committed by
// proposing two conflicting blocks from the same validator. // proposing two conflicting blocks from the same validator.
message ProposerSlashing { message ProposerSlashing {
// First conflicting signed block header. // First conflicting signed block header.
SignedBeaconBlockHeader signed_header_1 = 2; SignedBeaconBlockHeader signed_header_1 = 2;
// Second conflicting signed block header. // Second conflicting signed block header.
SignedBeaconBlockHeader signed_header_2 = 3; SignedBeaconBlockHeader signed_header_2 = 3;
} }
// Attestor slashings are proofs that a slashable offense has been committed by // Attestor slashings are proofs that a slashable offense has been committed by
// attesting to two conflicting pieces of information by the same validator. // attesting to two conflicting pieces of information by the same validator.
message AttesterSlashing { message AttesterSlashing {
// First conflicting attestation. // First conflicting attestation.
IndexedAttestation attestation_1 = 1; IndexedAttestation attestation_1 = 1;
// Second conflicting attestation. // Second conflicting attestation.
IndexedAttestation attestation_2 = 2; IndexedAttestation attestation_2 = 2;
} }
// Deposit into the Ethereum consensus from the Ethereum 1.x deposit contract. // Deposit into the Ethereum consensus from the Ethereum 1.x deposit contract.
message Deposit { message Deposit {
message Data { message Data {
// 48 byte BLS public key of the validator. // 48 byte BLS public key of the validator.
bytes pubkey = 1 [(ethereum.eth.ext.ssz_size) = "48", (ethereum.eth.ext.spec_name) = "pubkey"]; bytes pubkey = 1 [
(ethereum.eth.ext.ssz_size) = "48",
(ethereum.eth.ext.spec_name) = "pubkey"
];
// A 32 byte hash of the withdrawal address public key. // A 32 byte hash of the withdrawal address public key.
bytes withdrawal_credentials = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes withdrawal_credentials = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Deposit amount in gwei. // Deposit amount in gwei.
uint64 amount = 3; uint64 amount = 3;
// 96 byte signature from the validators public key. // 96 byte signature from the validators public key.
bytes signature = 4 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 4 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
// 32 byte roots in the deposit tree branch. // 32 byte roots in the deposit tree branch.
repeated bytes proof = 1 [(ethereum.eth.ext.ssz_size) = "33,32"]; repeated bytes proof = 1 [ (ethereum.eth.ext.ssz_size) = "33,32" ];
Data data = 2; Data data = 2;
} }
// A message that represents a validator signaling that they want to voluntarily // A message that represents a validator signaling that they want to voluntarily
// withdraw from the active validator set. The message does not contain a // withdraw from the active validator set. The message does not contain a
// validator signature. // validator signature.
message VoluntaryExit { message VoluntaryExit {
// The epoch on when exit request becomes valid. // The epoch on when exit request becomes valid.
uint64 epoch = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 epoch = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Index of the exiting validator. // Index of the exiting validator.
uint64 validator_index = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 validator_index = 2
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
} }
// The signed version of voluntary exit. // The signed version of voluntary exit.
message SignedVoluntaryExit { message SignedVoluntaryExit {
// The unsigned voluntary exit itself. // The unsigned voluntary exit itself.
VoluntaryExit message = 1; VoluntaryExit message = 1;
// Validator's 96 byte signature // Validator's 96 byte signature
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
// Eth1Data represents references to the Ethereum 1.x deposit contract. // Eth1Data represents references to the Ethereum 1.x deposit contract.
message Eth1Data { message Eth1Data {
// The 32 byte deposit tree root for the last deposit included in this // The 32 byte deposit tree root for the last deposit included in this
// block. // block.
bytes deposit_root = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes deposit_root = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The total number of deposits included in the beacon chain since genesis // The total number of deposits included in the beacon chain since genesis
// including the deposits in this block. // including the deposits in this block.
uint64 deposit_count = 2; uint64 deposit_count = 2;
// The 32 byte block hash of the Ethereum 1.x block considered for deposit // The 32 byte block hash of the Ethereum 1.x block considered for deposit
// inclusion. // inclusion.
bytes block_hash = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_hash = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
// A beacon block header is essentially a beacon block with only a reference to // A beacon block header is essentially a beacon block with only a reference to
@@ -167,45 +185,54 @@ message Eth1Data {
// lightweight than a full beacon block. The message does not contain // lightweight than a full beacon block. The message does not contain
// a validator signature. // a validator signature.
message BeaconBlockHeader { message BeaconBlockHeader {
// Beacon chain slot that this block represents. // Beacon chain slot that this block represents.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// Validator index of the validator that proposed the block header. // Validator index of the validator that proposed the block header.
uint64 proposer_index = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 proposer_index = 2 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/"
"consensus-types/primitives.ValidatorIndex" ];
// 32 byte merkle tree root of the parent ssz encoded block. // 32 byte merkle tree root of the parent ssz encoded block.
bytes parent_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes parent_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
// 32 byte merkle tree root of the resulting ssz encoded state after processing this block. // 32 byte merkle tree root of the resulting ssz encoded state after
bytes state_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; // processing this block.
bytes state_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
// 32 byte merkle tree root of the ssz encoded block body. // 32 byte merkle tree root of the ssz encoded block body.
bytes body_root = 5 [(ethereum.eth.ext.ssz_size) = "32"]; bytes body_root = 5 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
message SignedBeaconBlockHeader { message SignedBeaconBlockHeader {
// The unsigned beacon block header itself. // The unsigned beacon block header itself.
BeaconBlockHeader message = 1; BeaconBlockHeader message = 1;
// 96 byte BLS signature from the validator that produced this block header. // 96 byte BLS signature from the validator that produced this block header.
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message IndexedAttestation { message IndexedAttestation {
repeated uint64 attesting_indices = 1 [(ethereum.eth.ext.ssz_max) = "2048"]; repeated uint64 attesting_indices = 1 [ (ethereum.eth.ext.ssz_max) = "2048" ];
AttestationData data = 2; AttestationData data = 2;
// 96 bytes aggregate signature. // 96 bytes aggregate signature.
bytes signature = 3 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 3 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
// The sync aggregate object for the beacon chain to track sync committee votes and to // The sync aggregate object for the beacon chain to track sync committee votes
// support light client infra. // and to support light client infra.
message SyncAggregate { message SyncAggregate {
// Sync committee bits as Bitvector to track votes. // Sync committee bits as Bitvector to track votes.
bytes sync_committee_bits = 1 [(ethereum.eth.ext.ssz_size) = "sync_committee_bytes.size", (ethereum.eth.ext.cast_type) = "sync_committee_bits.type"]; bytes sync_committee_bits = 1 [
(ethereum.eth.ext.ssz_size) = "sync_committee_bytes.size",
(ethereum.eth.ext.cast_type) = "sync_committee_bits.type"
];
// BLS aggregated signature of the sync committee for the ones that voted. // BLS aggregated signature of the sync committee for the ones that voted.
bytes sync_committee_signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes sync_committee_signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/eth/v1/beacon_chain.proto // source: proto/eth/v1/beacon_chain.proto
package v1 package v1

View File

@@ -27,7 +27,8 @@ option php_namespace = "Ethereum\\Eth\\v1";
// Beacon State API related messages. // Beacon State API related messages.
message StateRequest { message StateRequest {
// The state id which can be any of: "head" (canonical head in node's view), // The state id which can be any of: "head" (canonical head in node's view),
// "genesis", "finalized", "justified", <slot>, <hex encoded stateRoot with 0x prefix>. // "genesis", "finalized", "justified", <slot>, <hex encoded stateRoot with 0x
bytes state_id = 1; // prefix>.
bytes state_id = 1;
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/eth/v1/events.proto // source: proto/eth/v1/events.proto
package v1 package v1

View File

@@ -27,22 +27,25 @@ option php_namespace = "Ethereum\\Eth\\v1";
message EventHead { message EventHead {
// Slot of the new chain head. // Slot of the new chain head.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// Block root of the new chain head. // Block root of the new chain head.
bytes block = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// State root of the new chain head. // State root of the new chain head.
bytes state = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Whether or not the new chain head is at an epoch transition. // Whether or not the new chain head is at an epoch transition.
bool epoch_transition = 4; bool epoch_transition = 4;
// The previous dependent root. // The previous dependent root.
bytes previous_duty_dependent_root = 5 [(ethereum.eth.ext.ssz_size) = "32"]; bytes previous_duty_dependent_root = 5 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The current dependent root. // The current dependent root.
bytes current_duty_dependent_root = 6 [(ethereum.eth.ext.ssz_size) = "32"]; bytes current_duty_dependent_root = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Information about optimistic sync. // Information about optimistic sync.
bool execution_optimistic = 7; bool execution_optimistic = 7;
@@ -50,10 +53,13 @@ message EventHead {
message EventBlock { message EventBlock {
// The slot of the observed block. // The slot of the observed block.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// The root of the observed block. // The root of the observed block.
bytes block = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Information about optimistic sync. // Information about optimistic sync.
bool execution_optimistic = 3; bool execution_optimistic = 3;
@@ -61,25 +67,31 @@ message EventBlock {
message EventChainReorg { message EventChainReorg {
// The slot of the observed reorg. // The slot of the observed reorg.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// Depth of the reorg in slots. // Depth of the reorg in slots.
uint64 depth = 2; uint64 depth = 2;
// Block root of the old head. // Block root of the old head.
bytes old_head_block = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes old_head_block = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Block root of the new head. // Block root of the new head.
bytes new_head_block = 4 [(ethereum.eth.ext.ssz_size) = "32"]; bytes new_head_block = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
// State root of the old state. // State root of the old state.
bytes old_head_state = 5 [(ethereum.eth.ext.ssz_size) = "32"]; bytes old_head_state = 5 [ (ethereum.eth.ext.ssz_size) = "32" ];
// State root of the new state. // State root of the new state.
bytes new_head_state = 6 [(ethereum.eth.ext.ssz_size) = "32"]; bytes new_head_state = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Epoch of the observed reorg. // Epoch of the observed reorg.
uint64 epoch = 7 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 epoch = 7 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Information about optimistic sync. // Information about optimistic sync.
bool execution_optimistic = 8; bool execution_optimistic = 8;
@@ -87,13 +99,16 @@ message EventChainReorg {
message EventFinalizedCheckpoint { message EventFinalizedCheckpoint {
// Block root of the finalized checkpoint. // Block root of the finalized checkpoint.
bytes block = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
// State root of the finalized checkpoint. // State root of the finalized checkpoint.
bytes state = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Epoch the checkpoint references. // Epoch the checkpoint references.
uint64 epoch = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 epoch = 3 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Information about optimistic sync. // Information about optimistic sync.
bool execution_optimistic = 4; bool execution_optimistic = 4;

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/eth/v1/node.proto // source: proto/eth/v1/node.proto
package v1 package v1

View File

@@ -33,7 +33,8 @@ message Peer {
// The address of the peer, as a full multiaddr, for example: // The address of the peer, as a full multiaddr, for example:
// /ip4/37.221.192.134/tcp/13000/p2p/16Uiu2HAm8maLMjag1TAUM52zPfmLbVMGFdwUAWgoHu1HDQLR6e17 // /ip4/37.221.192.134/tcp/13000/p2p/16Uiu2HAm8maLMjag1TAUM52zPfmLbVMGFdwUAWgoHu1HDQLR6e17
string last_seen_p2p_address = 3; string last_seen_p2p_address = 3;
// The connection state of the peer at the moment of the request. (e.g. Connecting) // The connection state of the peer at the moment of the request. (e.g.
// Connecting)
ConnectionState state = 4; ConnectionState state = 4;
// The direction of the connection (inbound/outbound). // The direction of the connection (inbound/outbound).
PeerDirection direction = 5; PeerDirection direction = 5;

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/eth/v1/validator.proto // source: proto/eth/v1/validator.proto
package v1 package v1

View File

@@ -29,69 +29,88 @@ option php_namespace = "Ethereum\\Eth\\v1";
// An Ethereum validator. // An Ethereum validator.
message Validator { message Validator {
// 48 byte BLS public key used for the validator's activities. // 48 byte BLS public key used for the validator's activities.
bytes pubkey = 1 [(ethereum.eth.ext.ssz_size) = "48", (ethereum.eth.ext.spec_name) = "pubkey"]; bytes pubkey = 1 [
(ethereum.eth.ext.ssz_size) = "48",
(ethereum.eth.ext.spec_name) = "pubkey"
];
// 32 byte hash of the withdrawal destination public key. // 32 byte hash of the withdrawal destination public key.
bytes withdrawal_credentials = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes withdrawal_credentials = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The validators current effective balance in gwei. // The validators current effective balance in gwei.
uint64 effective_balance = 3; uint64 effective_balance = 3;
// Whether or not the validator has been slashed. // Whether or not the validator has been slashed.
bool slashed = 4; bool slashed = 4;
// Epoch when the validator became eligible for activation. This field may // Epoch when the validator became eligible for activation. This field may
// be zero if the validator was present in the Ethereum proof of stake genesis. This // be zero if the validator was present in the Ethereum proof of stake
// field is FAR_FUTURE_EPOCH if the validator has not been activated. // genesis. This field is FAR_FUTURE_EPOCH if the validator has not been
uint64 activation_eligibility_epoch = 5 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; // activated.
uint64 activation_eligibility_epoch = 5 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Epoch when the validator was activated. This field may be zero if the // Epoch when the validator was activated. This field may be zero if the
// validator was present in the Ethereum proof of stake genesis. This field is // validator was present in the Ethereum proof of stake genesis. This field is
// FAR_FUTURE_EPOCH if the validator has not been activated. // FAR_FUTURE_EPOCH if the validator has not been activated.
uint64 activation_epoch = 6 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 activation_epoch = 6 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Epoch when the validator was exited. This field is FAR_FUTURE_EPOCH if // Epoch when the validator was exited. This field is FAR_FUTURE_EPOCH if
// the validator has not exited. // the validator has not exited.
// FAR_FUTURE_EPOCH is a constant defined by the official Ethereum Beacon Chain specification: // FAR_FUTURE_EPOCH is a constant defined by the official Ethereum Beacon
// https://github.com/ethereum/consensus-specs/blob/v0.9.2/specs/core/0_beacon-chain.md#constants // Chain specification:
uint64 exit_epoch = 7 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; // https://github.com/ethereum/consensus-specs/blob/v0.9.2/specs/core/0_beacon-chain.md#constants
uint64 exit_epoch = 7 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Epoch when the validator is eligible to withdraw their funds. This field // Epoch when the validator is eligible to withdraw their funds. This field
// is FAR_FUTURE_EPOCH if the validator has not exited. // is FAR_FUTURE_EPOCH if the validator has not exited.
// FAR_FUTURE_EPOCH is a constant defined by the official Ethereum Beacon Chain specification: // FAR_FUTURE_EPOCH is a constant defined by the official Ethereum Beacon
// https://github.com/ethereum/consensus-specs/blob/v0.9.2/specs/core/0_beacon-chain.md#constants // Chain specification:
uint64 withdrawable_epoch = 8 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; // https://github.com/ethereum/consensus-specs/blob/v0.9.2/specs/core/0_beacon-chain.md#constants
uint64 withdrawable_epoch = 8 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
} }
enum ValidatorStatus { enum ValidatorStatus {
PENDING_INITIALIZED = 0; PENDING_INITIALIZED = 0;
PENDING_QUEUED = 1; PENDING_QUEUED = 1;
ACTIVE_ONGOING = 2; ACTIVE_ONGOING = 2;
ACTIVE_EXITING = 3; ACTIVE_EXITING = 3;
ACTIVE_SLASHED = 4; ACTIVE_SLASHED = 4;
EXITED_UNSLASHED = 5; EXITED_UNSLASHED = 5;
EXITED_SLASHED = 6; EXITED_SLASHED = 6;
WITHDRAWAL_POSSIBLE = 7; WITHDRAWAL_POSSIBLE = 7;
WITHDRAWAL_DONE = 8; WITHDRAWAL_DONE = 8;
ACTIVE = 9; ACTIVE = 9;
PENDING = 10; PENDING = 10;
EXITED = 11; EXITED = 11;
WITHDRAWAL = 12; WITHDRAWAL = 12;
} }
message ProduceBlockRequest { message ProduceBlockRequest {
// The slot to request a block for. // The slot to request a block for.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// The validators RANDAO reveal 96 byte value. // The validators RANDAO reveal 96 byte value.
bytes randao_reveal = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes randao_reveal = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
// 32 byte field of arbitrary data. This field may contain any data and // 32 byte field of arbitrary data. This field may contain any data and
// is not used for anything other than a fun message. // is not used for anything other than a fun message.
optional bytes graffiti = 3 [(ethereum.eth.ext.ssz_size) = "32"]; optional bytes graffiti = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
message ProduceBlockResponse { message ProduceBlockResponse { BeaconBlock data = 1; }
BeaconBlock data = 1;
}

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/attestation.proto // source: proto/prysm/v1alpha1/attestation.proto
package eth package eth

View File

@@ -29,64 +29,82 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
message SignedAggregateAttestationAndProof { message SignedAggregateAttestationAndProof {
// The aggregated attestation and selection proof itself. // The aggregated attestation and selection proof itself.
AggregateAttestationAndProof message = 1; AggregateAttestationAndProof message = 1;
// 96 byte BLS aggregate signature signed by the aggregator over the message. // 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message AggregateAttestationAndProof { message AggregateAttestationAndProof {
// The aggregator index that submitted this aggregated attestation and proof. // The aggregator index that submitted this aggregated attestation and proof.
uint64 aggregator_index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 aggregator_index = 1
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// The aggregated attestation that was submitted. // The aggregated attestation that was submitted.
Attestation aggregate = 3; Attestation aggregate = 3;
// 96 byte selection proof signed by the aggregator, which is the signature of the slot to aggregate. // 96 byte selection proof signed by the aggregator, which is the signature of
bytes selection_proof = 2 [(ethereum.eth.ext.ssz_size) = "96"]; // the slot to aggregate.
bytes selection_proof = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message Attestation { message Attestation {
// A bitfield representation of validator indices that have voted exactly // A bitfield representation of validator indices that have voted exactly
// the same vote and have been aggregated into this attestation. // the same vote and have been aggregated into this attestation.
bytes aggregation_bits = 1 [(ethereum.eth.ext.ssz_max) = "2048", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitlist"]; bytes aggregation_bits = 1 [
(ethereum.eth.ext.ssz_max) = "2048",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitlist"
];
AttestationData data = 2; AttestationData data = 2;
// 96 byte BLS aggregate signature. // 96 byte BLS aggregate signature.
bytes signature = 3 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 3 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message AttestationData { message AttestationData {
// Attestation data includes information on Casper the Friendly Finality Gadget's votes // Attestation data includes information on Casper the Friendly Finality
// See: https://arxiv.org/pdf/1710.09437.pdf // Gadget's votes See: https://arxiv.org/pdf/1710.09437.pdf
// Slot of the attestation attesting for. // Slot of the attestation attesting for.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// The committee index that submitted this attestation. // The committee index that submitted this attestation.
uint64 committee_index = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.CommitteeIndex"]; uint64 committee_index = 2
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.CommitteeIndex" ];
// 32 byte root of the LMD GHOST block vote. // 32 byte root of the LMD GHOST block vote.
bytes beacon_block_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes beacon_block_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The most recent justified checkpoint in the beacon state // The most recent justified checkpoint in the beacon state
Checkpoint source = 4; Checkpoint source = 4;
// The checkpoint attempting to be justified for the current epoch and its epoch boundary block // The checkpoint attempting to be justified for the current epoch and its
Checkpoint target = 5; // epoch boundary block
Checkpoint target = 5;
} }
message Checkpoint { message Checkpoint {
// A checkpoint is every epoch's first slot. The goal of Casper FFG // A checkpoint is every epoch's first slot. The goal of Casper FFG
// is to link the check points together for justification and finalization. // is to link the check points together for justification and finalization.
// Epoch the checkpoint references. // Epoch the checkpoint references.
uint64 epoch = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 epoch = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Block root of the checkpoint references. // Block root of the checkpoint references.
bytes root = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -94,60 +112,79 @@ message Checkpoint {
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
message SignedAggregateAttestationAndProofElectra { message SignedAggregateAttestationAndProofElectra {
// The aggregated attestation and selection proof itself. // The aggregated attestation and selection proof itself.
AggregateAttestationAndProofElectra message = 1; AggregateAttestationAndProofElectra message = 1;
// 96 byte BLS aggregate signature signed by the aggregator over the message. // 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message AggregateAttestationAndProofElectra { message AggregateAttestationAndProofElectra {
// The aggregator index that submitted this aggregated attestation and proof. // The aggregator index that submitted this aggregated attestation and proof.
uint64 aggregator_index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 aggregator_index = 1
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// The aggregated attestation that was submitted. // The aggregated attestation that was submitted.
AttestationElectra aggregate = 3; AttestationElectra aggregate = 3;
// 96 byte selection proof signed by the aggregator, which is the signature of the slot to aggregate. // 96 byte selection proof signed by the aggregator, which is the signature of
bytes selection_proof = 2 [(ethereum.eth.ext.ssz_size) = "96"]; // the slot to aggregate.
bytes selection_proof = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message AttestationElectra { message AttestationElectra {
// A bitfield representation of validator indices that have voted exactly // A bitfield representation of validator indices that have voted exactly
// the same vote and have been aggregated into this attestation. // the same vote and have been aggregated into this attestation.
bytes aggregation_bits = 1 [(ethereum.eth.ext.ssz_max) = "max_attesting_indices.size", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitlist"]; bytes aggregation_bits = 1 [
(ethereum.eth.ext.ssz_max) = "max_attesting_indices.size",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitlist"
];
AttestationData data = 2; AttestationData data = 2;
// 96 byte BLS aggregate signature. // 96 byte BLS aggregate signature.
bytes signature = 3 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 3 [ (ethereum.eth.ext.ssz_size) = "96" ];
// Represents the committee which aggregated attestation belong. // Represents the committee which aggregated attestation belong.
bytes committee_bits = 4 [(ethereum.eth.ext.ssz_size) = "committee_bits.size", (ethereum.eth.ext.cast_type) = "committee_bits.type"]; bytes committee_bits = 4 [
(ethereum.eth.ext.ssz_size) = "committee_bits.size",
(ethereum.eth.ext.cast_type) = "committee_bits.type"
];
} }
message SignedAggregateAttestationAndProofSingle { message SignedAggregateAttestationAndProofSingle {
// The aggregated attestation and selection proof itself. // The aggregated attestation and selection proof itself.
AggregateAttestationAndProofSingle message = 1; AggregateAttestationAndProofSingle message = 1;
// 96 byte BLS aggregate signature signed by the aggregator over the message. // 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message AggregateAttestationAndProofSingle { message AggregateAttestationAndProofSingle {
// The aggregator index that submitted this aggregated attestation and proof. // The aggregator index that submitted this aggregated attestation and proof.
uint64 aggregator_index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 aggregator_index = 1
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// The aggregated attestation that was submitted. // The aggregated attestation that was submitted.
SingleAttestation aggregate = 3; SingleAttestation aggregate = 3;
// 96 byte selection proof signed by the aggregator, which is the signature of the slot to aggregate. // 96 byte selection proof signed by the aggregator, which is the signature of
bytes selection_proof = 2 [(ethereum.eth.ext.ssz_size) = "96"]; // the slot to aggregate.
bytes selection_proof = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message SingleAttestation { message SingleAttestation {
uint64 committee_id = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.CommitteeIndex"]; uint64 committee_id = 1 [ (ethereum.eth.ext.cast_type) =
uint64 attester_index = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; "github.com/prysmaticlabs/prysm/v5/"
AttestationData data = 3; "consensus-types/primitives.CommitteeIndex" ];
bytes signature = 4 [(ethereum.eth.ext.ssz_size) = "96"]; uint64 attester_index = 2 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/"
"consensus-types/primitives.ValidatorIndex" ];
AttestationData data = 3;
bytes signature = 4 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/beacon_block.proto // source: proto/prysm/v1alpha1/beacon_block.proto
package eth package eth

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/beacon_chain.proto // source: proto/prysm/v1alpha1/beacon_chain.proto
package eth package eth

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/beacon_state.proto // source: proto/prysm/v1alpha1/beacon_state.proto
package eth package eth

View File

@@ -23,63 +23,96 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
message BeaconState { message BeaconState {
// Versioning [1001-2000] // Versioning [1001-2000]
uint64 genesis_time = 1001; uint64 genesis_time = 1001;
bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; bytes genesis_validators_root = 1002 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1003 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
Fork fork = 1004; Fork fork = 1004;
// History [2001-3000] // History [2001-3000]
BeaconBlockHeader latest_block_header = 2001; BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; repeated bytes block_roots = 2002
repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; [ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; repeated bytes state_roots = 2003
[ (ethereum.eth.ext.ssz_size) = "state_roots.size" ];
repeated bytes historical_roots = 2004 [
(ethereum.eth.ext.ssz_size) = "?,32",
(ethereum.eth.ext.ssz_max) = "16777216"
];
// Eth1 [3001-4000] // Eth1 [3001-4000]
Eth1Data eth1_data = 3001; Eth1Data eth1_data = 3001;
repeated Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; repeated Eth1Data eth1_data_votes = 3002
[ (ethereum.eth.ext.ssz_max) = "eth1_data_votes.size" ];
uint64 eth1_deposit_index = 3003; uint64 eth1_deposit_index = 3003;
// Registry [4001-5000] // Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated Validator validators = 4001
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Randomness [5001-6000] // Randomness [5001-6000]
repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; repeated bytes randao_mixes = 5001
[ (ethereum.eth.ext.ssz_size) = "randao_mixes.size" ];
// Slashings [6001-7000] // Slashings [6001-7000]
repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; repeated uint64 slashings = 6001
[ (ethereum.eth.ext.ssz_size) = "slashings.size" ];
// Attestations [7001-8000] // Attestations [7001-8000]
repeated PendingAttestation previous_epoch_attestations = 7001 [(ethereum.eth.ext.ssz_max) = "previous_epoch_attestations.max"]; repeated PendingAttestation previous_epoch_attestations = 7001
repeated PendingAttestation current_epoch_attestations = 7002 [(ethereum.eth.ext.ssz_max) = "current_epoch_attestations.max"]; [ (ethereum.eth.ext.ssz_max) = "previous_epoch_attestations.max" ];
repeated PendingAttestation current_epoch_attestations = 7002
[ (ethereum.eth.ext.ssz_max) = "current_epoch_attestations.max" ];
// Finality [8001-9000] // Finality [8001-9000]
// Spec type [4]Bitvector which means this would be a fixed size of 4 bits. // Spec type [4]Bitvector which means this would be a fixed size of 4 bits.
bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; bytes justification_bits = 8001 [
(ethereum.eth.ext.ssz_size) = "1",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector4"
];
Checkpoint previous_justified_checkpoint = 8002; Checkpoint previous_justified_checkpoint = 8002;
Checkpoint current_justified_checkpoint = 8003; Checkpoint current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004; Checkpoint finalized_checkpoint = 8004;
} }
message Fork { message Fork {
bytes previous_version = 1 [(ethereum.eth.ext.ssz_size) = "4"]; bytes previous_version = 1 [ (ethereum.eth.ext.ssz_size) = "4" ];
bytes current_version = 2 [(ethereum.eth.ext.ssz_size) = "4"]; bytes current_version = 2 [ (ethereum.eth.ext.ssz_size) = "4" ];
uint64 epoch = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 epoch = 3 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
} }
message PendingAttestation { message PendingAttestation {
// Bitfield representation of validator indices that have voted exactly // Bitfield representation of validator indices that have voted exactly
// the same vote and have been aggregated into this attestation. // the same vote and have been aggregated into this attestation.
bytes aggregation_bits = 1 [(ethereum.eth.ext.ssz_max) = "2048", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitlist"]; bytes aggregation_bits = 1 [
(ethereum.eth.ext.ssz_max) = "2048",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitlist"
];
AttestationData data = 2; AttestationData data = 2;
// The difference of when attestation gets created and get included on chain. // The difference of when attestation gets created and get included on chain.
uint64 inclusion_delay = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 inclusion_delay = 3 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// The proposer who included the attestation in the block. // The proposer who included the attestation in the block.
uint64 proposer_index = 4 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 proposer_index = 4 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/"
"consensus-types/primitives.ValidatorIndex" ];
} }
message HistoricalBatch { message HistoricalBatch {
repeated bytes block_roots = 1 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; repeated bytes block_roots = 1
repeated bytes state_roots = 2 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; [ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
repeated bytes state_roots = 2
[ (ethereum.eth.ext.ssz_size) = "state_roots.size" ];
} }
// The state summary object is defined for summarizing a state // The state summary object is defined for summarizing a state
@@ -88,29 +121,34 @@ message HistoricalBatch {
// and blocks. // and blocks.
message StateSummary { message StateSummary {
// The slot of the state. // The slot of the state.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// The block root of the state. // The block root of the state.
bytes root = 2; bytes root = 2;
} }
message SigningData { message SigningData {
// The root of the object being signed. // The root of the object being signed.
bytes object_root = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes object_root = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The domain for the particular object being signed. // The domain for the particular object being signed.
bytes domain = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes domain = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
message ForkData { message ForkData {
// The current version of the fork. // The current version of the fork.
bytes current_version = 4 [(ethereum.eth.ext.ssz_size) = "4"]; bytes current_version = 4 [ (ethereum.eth.ext.ssz_size) = "4" ];
// The genesis validators root of the fork. // The genesis validators root of the fork.
bytes genesis_validators_root = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes genesis_validators_root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
message CheckPtInfo { message CheckPtInfo {
// The randao seed which the check point refers to, this will be used to retrieve shuffled indices. // The randao seed which the check point refers to, this will be used to
// retrieve shuffled indices.
bytes seed = 1; bytes seed = 1;
// The genesis root which the check point refers to. This ensures same seed can't happen on different chain. // The genesis root which the check point refers to. This ensures same seed
// can't happen on different chain.
bytes genesis_root = 2; bytes genesis_root = 2;
// Validators that were active at that check point. // Validators that were active at that check point.
repeated uint64 active_indices = 3; repeated uint64 active_indices = 3;
@@ -120,28 +158,31 @@ message CheckPtInfo {
Fork fork = 5; Fork fork = 5;
} }
// DepositMessage serves as a subset of deposit data in order to derive the signing root. // DepositMessage serves as a subset of deposit data in order to derive the
// signing root.
message DepositMessage { message DepositMessage {
// 48 byte BLS public key of the validator. // 48 byte BLS public key of the validator.
bytes public_key = 1 [(ethereum.eth.ext.ssz_size) = "48", (ethereum.eth.ext.spec_name) = "pubkey"]; bytes public_key = 1 [
(ethereum.eth.ext.ssz_size) = "48",
(ethereum.eth.ext.spec_name) = "pubkey"
];
// A 32 byte hash of the withdrawal address public key. // A 32 byte hash of the withdrawal address public key.
bytes withdrawal_credentials = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes withdrawal_credentials = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Deposit amount in gwei. // Deposit amount in gwei.
uint64 amount = 3; uint64 amount = 3;
} }
// PowBlock is a definition from Bellatrix fork choice spec to represent a block with total difficulty in the PoW chain. // PowBlock is a definition from Bellatrix fork choice spec to represent a block
// Spec: // with total difficulty in the PoW chain. Spec: class PowBlock(Container):
// class PowBlock(Container):
// block_hash: Hash32 // block_hash: Hash32
// parent_hash: Hash32 // parent_hash: Hash32
// total_difficulty: uint256 // total_difficulty: uint256
message PowBlock { message PowBlock {
bytes block_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes parent_hash = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes parent_hash = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes total_difficulty = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes total_difficulty = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -149,62 +190,91 @@ message PowBlock {
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// The beacon state for Altair hard fork 1. // The beacon state for Altair hard fork 1.
// Reference: https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/beacon-chain.md#beaconstate // Reference:
// https://github.com/ethereum/consensus-specs/blob/dev/specs/altair/beacon-chain.md#beaconstate
message BeaconStateAltair { message BeaconStateAltair {
// Versioning [1001-2000] // Versioning [1001-2000]
uint64 genesis_time = 1001; uint64 genesis_time = 1001;
bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; bytes genesis_validators_root = 1002 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1003 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
Fork fork = 1004; Fork fork = 1004;
// History [2001-3000] // History [2001-3000]
BeaconBlockHeader latest_block_header = 2001; BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; repeated bytes block_roots = 2002
repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; [ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; repeated bytes state_roots = 2003
[ (ethereum.eth.ext.ssz_size) = "state_roots.size" ];
repeated bytes historical_roots = 2004 [
(ethereum.eth.ext.ssz_size) = "?,32",
(ethereum.eth.ext.ssz_max) = "16777216"
];
// Eth1 [3001-4000] // Eth1 [3001-4000]
Eth1Data eth1_data = 3001; Eth1Data eth1_data = 3001;
repeated Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; repeated Eth1Data eth1_data_votes = 3002
[ (ethereum.eth.ext.ssz_max) = "eth1_data_votes.size" ];
uint64 eth1_deposit_index = 3003; uint64 eth1_deposit_index = 3003;
// Registry [4001-5000] // Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated Validator validators = 4001
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Randomness [5001-6000] // Randomness [5001-6000]
repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; repeated bytes randao_mixes = 5001
[ (ethereum.eth.ext.ssz_size) = "randao_mixes.size" ];
// Slashings [6001-7000] // Slashings [6001-7000]
repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; repeated uint64 slashings = 6001
[ (ethereum.eth.ext.ssz_size) = "slashings.size" ];
// Participation [7001-8000] // Participation [7001-8000]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; // [New in Altair, replaced previous_epoch_attestations] bytes previous_epoch_participation = 7001 [
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; // [New in Altair, replaced current_epoch_attestations] (ethereum.eth.ext.ssz_max) = "1099511627776"
]; // [New in Altair, replaced previous_epoch_attestations]
bytes current_epoch_participation = 7002 [
(ethereum.eth.ext.ssz_max) = "1099511627776"
]; // [New in Altair, replaced current_epoch_attestations]
// Finality [8001-9000] // Finality [8001-9000]
// Spec type [4]Bitvector which means this would be a fixed size of 4 bits. // Spec type [4]Bitvector which means this would be a fixed size of 4 bits.
bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; bytes justification_bits = 8001 [
(ethereum.eth.ext.ssz_size) = "1",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector4"
];
Checkpoint previous_justified_checkpoint = 8002; Checkpoint previous_justified_checkpoint = 8002;
Checkpoint current_justified_checkpoint = 8003; Checkpoint current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004; Checkpoint finalized_checkpoint = 8004;
// New Altair fields [9001-10000] // New Altair fields [9001-10000]
repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; // [New in Altair] repeated uint64 inactivity_scores = 9001
SyncCommittee current_sync_committee = 9002; // [New in Altair] [ (ethereum.eth.ext.ssz_max) = "1099511627776" ]; // [New in Altair]
SyncCommittee next_sync_committee = 9003; // [New in Altair] SyncCommittee current_sync_committee = 9002; // [New in Altair]
SyncCommittee next_sync_committee = 9003; // [New in Altair]
} }
// SyncCommittee serves as committees to facilitate light client syncing to beacon chain. // SyncCommittee serves as committees to facilitate light client syncing to
// beacon chain.
message SyncCommittee { message SyncCommittee {
repeated bytes pubkeys = 1 [(ethereum.eth.ext.ssz_size) = "sync_committee_bits.size,48"]; repeated bytes pubkeys = 1
bytes aggregate_pubkey = 2 [(ethereum.eth.ext.ssz_size) = "48"]; [ (ethereum.eth.ext.ssz_size) = "sync_committee_bits.size,48" ];
bytes aggregate_pubkey = 2 [ (ethereum.eth.ext.ssz_size) = "48" ];
} }
// SyncAggregatorSelectionData is used to sign over and then check whether the aggregator is selected within a subcommittee. // SyncAggregatorSelectionData is used to sign over and then check whether the
// aggregator is selected within a subcommittee.
message SyncAggregatorSelectionData { message SyncAggregatorSelectionData {
// Slot of this signing data. // Slot of this signing data.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// Subcommittee index of this signing data. // Subcommittee index of this signing data.
uint64 subcommittee_index = 2; uint64 subcommittee_index = 2;
} }
@@ -216,49 +286,70 @@ message SyncAggregatorSelectionData {
message BeaconStateBellatrix { message BeaconStateBellatrix {
// Versioning [1001-2000] // Versioning [1001-2000]
uint64 genesis_time = 1001; uint64 genesis_time = 1001;
bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; bytes genesis_validators_root = 1002 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1003 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
Fork fork = 1004; Fork fork = 1004;
// History [2001-3000] // History [2001-3000]
BeaconBlockHeader latest_block_header = 2001; BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; repeated bytes block_roots = 2002
repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; [ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; repeated bytes state_roots = 2003
[ (ethereum.eth.ext.ssz_size) = "state_roots.size" ];
repeated bytes historical_roots = 2004 [
(ethereum.eth.ext.ssz_size) = "?,32",
(ethereum.eth.ext.ssz_max) = "16777216"
];
// Eth1 [3001-4000] // Eth1 [3001-4000]
Eth1Data eth1_data = 3001; Eth1Data eth1_data = 3001;
repeated Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; repeated Eth1Data eth1_data_votes = 3002
[ (ethereum.eth.ext.ssz_max) = "eth1_data_votes.size" ];
uint64 eth1_deposit_index = 3003; uint64 eth1_deposit_index = 3003;
// Registry [4001-5000] // Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated Validator validators = 4001
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Randomness [5001-6000] // Randomness [5001-6000]
repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; repeated bytes randao_mixes = 5001
[ (ethereum.eth.ext.ssz_size) = "randao_mixes.size" ];
// Slashings [6001-7000] // Slashings [6001-7000]
repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; repeated uint64 slashings = 6001
[ (ethereum.eth.ext.ssz_size) = "slashings.size" ];
// Participation [7001-8000] // Participation [7001-8000]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; bytes previous_epoch_participation = 7001
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000] // Finality [8001-9000]
// Spec type [4]Bitvector which means this would be a fixed size of 4 bits. // Spec type [4]Bitvector which means this would be a fixed size of 4 bits.
bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; bytes justification_bits = 8001 [
(ethereum.eth.ext.ssz_size) = "1",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector4"
];
Checkpoint previous_justified_checkpoint = 8002; Checkpoint previous_justified_checkpoint = 8002;
Checkpoint current_justified_checkpoint = 8003; Checkpoint current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004; Checkpoint finalized_checkpoint = 8004;
// Altair fields [9001-10000] // Altair fields [9001-10000]
repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated uint64 inactivity_scores = 9001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
SyncCommittee current_sync_committee = 9002; SyncCommittee current_sync_committee = 9002;
SyncCommittee next_sync_committee = 9003; SyncCommittee next_sync_committee = 9003;
// Bellatrix fields [10001-11000] // Bellatrix fields [10001-11000]
ethereum.engine.v1.ExecutionPayloadHeader latest_execution_payload_header = 10001; // [New in Bellatrix] ethereum.engine.v1.ExecutionPayloadHeader latest_execution_payload_header =
10001; // [New in Bellatrix]
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -268,60 +359,86 @@ message BeaconStateBellatrix {
message BeaconStateCapella { message BeaconStateCapella {
// Versioning [1001-2000] // Versioning [1001-2000]
uint64 genesis_time = 1001; uint64 genesis_time = 1001;
bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; bytes genesis_validators_root = 1002 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1003 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
Fork fork = 1004; Fork fork = 1004;
// History [2001-3000] // History [2001-3000]
BeaconBlockHeader latest_block_header = 2001; BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; repeated bytes block_roots = 2002
repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; [ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; repeated bytes state_roots = 2003
[ (ethereum.eth.ext.ssz_size) = "state_roots.size" ];
repeated bytes historical_roots = 2004 [
(ethereum.eth.ext.ssz_size) = "?,32",
(ethereum.eth.ext.ssz_max) = "16777216"
];
// Eth1 [3001-4000] // Eth1 [3001-4000]
Eth1Data eth1_data = 3001; Eth1Data eth1_data = 3001;
repeated Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; repeated Eth1Data eth1_data_votes = 3002
[ (ethereum.eth.ext.ssz_max) = "eth1_data_votes.size" ];
uint64 eth1_deposit_index = 3003; uint64 eth1_deposit_index = 3003;
// Registry [4001-5000] // Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated Validator validators = 4001
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Randomness [5001-6000] // Randomness [5001-6000]
repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; repeated bytes randao_mixes = 5001
[ (ethereum.eth.ext.ssz_size) = "randao_mixes.size" ];
// Slashings [6001-7000] // Slashings [6001-7000]
repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; repeated uint64 slashings = 6001
[ (ethereum.eth.ext.ssz_size) = "slashings.size" ];
// Participation [7001-8000] // Participation [7001-8000]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; bytes previous_epoch_participation = 7001
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000] // Finality [8001-9000]
// Spec type [4]Bitvector which means this would be a fixed size of 4 bits. // Spec type [4]Bitvector which means this would be a fixed size of 4 bits.
bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; bytes justification_bits = 8001 [
(ethereum.eth.ext.ssz_size) = "1",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector4"
];
Checkpoint previous_justified_checkpoint = 8002; Checkpoint previous_justified_checkpoint = 8002;
Checkpoint current_justified_checkpoint = 8003; Checkpoint current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004; Checkpoint finalized_checkpoint = 8004;
// Altair fields [9001-10000] // Altair fields [9001-10000]
repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated uint64 inactivity_scores = 9001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
SyncCommittee current_sync_committee = 9002; SyncCommittee current_sync_committee = 9002;
SyncCommittee next_sync_committee = 9003; SyncCommittee next_sync_committee = 9003;
// Bellatrix fields [10001-11000] // Bellatrix fields [10001-11000]
ethereum.engine.v1.ExecutionPayloadHeaderCapella latest_execution_payload_header = 10001; ethereum.engine.v1.ExecutionPayloadHeaderCapella
latest_execution_payload_header = 10001;
// Capella fields [11001-12000] // Capella fields [11001-12000]
uint64 next_withdrawal_index = 11001; // [New in Capella] uint64 next_withdrawal_index = 11001; // [New in Capella]
uint64 next_withdrawal_validator_index = 11002 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; // [New in Capella] uint64 next_withdrawal_validator_index = 11002
repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"]; // [New in Capella] [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ]; // [New in Capella]
repeated HistoricalSummary historical_summaries = 11003
[ (ethereum.eth.ext.ssz_max) = "16777216" ]; // [New in Capella]
} }
// HistoricalSummary matches the components of the phase0 `HistoricalBatch` making the two hash_tree_root-compatible. // HistoricalSummary matches the components of the phase0 `HistoricalBatch`
// making the two hash_tree_root-compatible.
message HistoricalSummary { message HistoricalSummary {
bytes block_summary_root = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_summary_root = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes state_summary_root = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes state_summary_root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -331,54 +448,79 @@ message HistoricalSummary {
message BeaconStateDeneb { message BeaconStateDeneb {
// Versioning [1001-2000] // Versioning [1001-2000]
uint64 genesis_time = 1001; uint64 genesis_time = 1001;
bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; bytes genesis_validators_root = 1002 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1003 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
Fork fork = 1004; Fork fork = 1004;
// History [2001-3000] // History [2001-3000]
BeaconBlockHeader latest_block_header = 2001; BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; repeated bytes block_roots = 2002
repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; [ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; repeated bytes state_roots = 2003
[ (ethereum.eth.ext.ssz_size) = "state_roots.size" ];
repeated bytes historical_roots = 2004 [
(ethereum.eth.ext.ssz_size) = "?,32",
(ethereum.eth.ext.ssz_max) = "16777216"
];
// Eth1 [3001-4000] // Eth1 [3001-4000]
Eth1Data eth1_data = 3001; Eth1Data eth1_data = 3001;
repeated Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; repeated Eth1Data eth1_data_votes = 3002
[ (ethereum.eth.ext.ssz_max) = "eth1_data_votes.size" ];
uint64 eth1_deposit_index = 3003; uint64 eth1_deposit_index = 3003;
// Registry [4001-5000] // Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated Validator validators = 4001
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Randomness [5001-6000] // Randomness [5001-6000]
repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; repeated bytes randao_mixes = 5001
[ (ethereum.eth.ext.ssz_size) = "randao_mixes.size" ];
// Slashings [6001-7000] // Slashings [6001-7000]
repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; repeated uint64 slashings = 6001
[ (ethereum.eth.ext.ssz_size) = "slashings.size" ];
// Participation [7001-8000] // Participation [7001-8000]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; bytes previous_epoch_participation = 7001
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000] // Finality [8001-9000]
// Spec type [4]Bitvector which means this would be a fixed size of 4 bits. // Spec type [4]Bitvector which means this would be a fixed size of 4 bits.
bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; bytes justification_bits = 8001 [
(ethereum.eth.ext.ssz_size) = "1",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector4"
];
Checkpoint previous_justified_checkpoint = 8002; Checkpoint previous_justified_checkpoint = 8002;
Checkpoint current_justified_checkpoint = 8003; Checkpoint current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004; Checkpoint finalized_checkpoint = 8004;
// Fields introduced in Altair fork [9001-10000] // Fields introduced in Altair fork [9001-10000]
repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated uint64 inactivity_scores = 9001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
SyncCommittee current_sync_committee = 9002; SyncCommittee current_sync_committee = 9002;
SyncCommittee next_sync_committee = 9003; SyncCommittee next_sync_committee = 9003;
// Fields introduced in Bellatrix fork [10001-11000] // Fields introduced in Bellatrix fork [10001-11000]
ethereum.engine.v1.ExecutionPayloadHeaderDeneb latest_execution_payload_header = 10001; // [New in Deneb] ethereum.engine.v1.ExecutionPayloadHeaderDeneb
latest_execution_payload_header = 10001; // [New in Deneb]
// Fields introduced in Capella fork [11001-12000] // Fields introduced in Capella fork [11001-12000]
uint64 next_withdrawal_index = 11001; uint64 next_withdrawal_index = 11001;
uint64 next_withdrawal_validator_index = 11002 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 next_withdrawal_validator_index = 11002
repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"]; [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
repeated HistoricalSummary historical_summaries = 11003
[ (ethereum.eth.ext.ssz_max) = "16777216" ];
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -388,65 +530,108 @@ message BeaconStateDeneb {
message BeaconStateElectra { message BeaconStateElectra {
// Versioning [1001-2000] // Versioning [1001-2000]
uint64 genesis_time = 1001; uint64 genesis_time = 1001;
bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; bytes genesis_validators_root = 1002 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1003 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
Fork fork = 1004; Fork fork = 1004;
// History [2001-3000] // History [2001-3000]
BeaconBlockHeader latest_block_header = 2001; BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; repeated bytes block_roots = 2002
repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; [ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; repeated bytes state_roots = 2003
[ (ethereum.eth.ext.ssz_size) = "state_roots.size" ];
repeated bytes historical_roots = 2004 [
(ethereum.eth.ext.ssz_size) = "?,32",
(ethereum.eth.ext.ssz_max) = "16777216"
];
// Eth1 [3001-4000] // Eth1 [3001-4000]
Eth1Data eth1_data = 3001; Eth1Data eth1_data = 3001;
repeated Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; repeated Eth1Data eth1_data_votes = 3002
[ (ethereum.eth.ext.ssz_max) = "eth1_data_votes.size" ];
uint64 eth1_deposit_index = 3003; uint64 eth1_deposit_index = 3003;
// Registry [4001-5000] // Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated Validator validators = 4001
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Randomness [5001-6000] // Randomness [5001-6000]
repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; repeated bytes randao_mixes = 5001
[ (ethereum.eth.ext.ssz_size) = "randao_mixes.size" ];
// Slashings [6001-7000] // Slashings [6001-7000]
repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; repeated uint64 slashings = 6001
[ (ethereum.eth.ext.ssz_size) = "slashings.size" ];
// Participation [7001-8000] // Participation [7001-8000]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; bytes previous_epoch_participation = 7001
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000] // Finality [8001-9000]
// Spec type [4]Bitvector which means this would be a fixed size of 4 bits. // Spec type [4]Bitvector which means this would be a fixed size of 4 bits.
bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; bytes justification_bits = 8001 [
(ethereum.eth.ext.ssz_size) = "1",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector4"
];
Checkpoint previous_justified_checkpoint = 8002; Checkpoint previous_justified_checkpoint = 8002;
Checkpoint current_justified_checkpoint = 8003; Checkpoint current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004; Checkpoint finalized_checkpoint = 8004;
// Fields introduced in Altair fork [9001-10000] // Fields introduced in Altair fork [9001-10000]
repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated uint64 inactivity_scores = 9001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
SyncCommittee current_sync_committee = 9002; SyncCommittee current_sync_committee = 9002;
SyncCommittee next_sync_committee = 9003; SyncCommittee next_sync_committee = 9003;
// Fields introduced in Bellatrix fork [10001-11000] // Fields introduced in Bellatrix fork [10001-11000]
ethereum.engine.v1.ExecutionPayloadHeaderDeneb latest_execution_payload_header = 10001; ethereum.engine.v1.ExecutionPayloadHeaderDeneb
latest_execution_payload_header = 10001;
// Fields introduced in Capella fork [11001-12000] // Fields introduced in Capella fork [11001-12000]
uint64 next_withdrawal_index = 11001; uint64 next_withdrawal_index = 11001;
uint64 next_withdrawal_validator_index = 11002 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 next_withdrawal_validator_index = 11002
repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"]; [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
repeated HistoricalSummary historical_summaries = 11003
[ (ethereum.eth.ext.ssz_max) = "16777216" ];
// Fields introduced in EIP-7251 fork [12001-13000] // Fields introduced in EIP-7251 fork [12001-13000]
uint64 deposit_requests_start_index = 12001; uint64 deposit_requests_start_index = 12001;
uint64 deposit_balance_to_consume = 12002 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"]; uint64 deposit_balance_to_consume = 12002 [
uint64 exit_balance_to_consume = 12003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"]; (ethereum.eth.ext.cast_type) =
uint64 earliest_exit_epoch = 12004 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
uint64 consolidation_balance_to_consume = 12005 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"]; ];
uint64 earliest_consolidation_epoch = 12006 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 exit_balance_to_consume = 12003 [
repeated PendingDeposit pending_deposits = 12007 [(ethereum.eth.ext.ssz_max) = "pending_deposits_limit"]; (ethereum.eth.ext.cast_type) =
repeated PendingPartialWithdrawal pending_partial_withdrawals = 12008 [(ethereum.eth.ext.ssz_max) = "pending_partial_withdrawals_limit"]; "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
repeated PendingConsolidation pending_consolidations = 12009 [(ethereum.eth.ext.ssz_max) = "pending_consolidations_limit"]; ];
uint64 earliest_exit_epoch = 12004 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
uint64 consolidation_balance_to_consume = 12005 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
];
uint64 earliest_consolidation_epoch = 12006 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
repeated PendingDeposit pending_deposits = 12007
[ (ethereum.eth.ext.ssz_max) = "pending_deposits_limit" ];
repeated PendingPartialWithdrawal pending_partial_withdrawals = 12008
[ (ethereum.eth.ext.ssz_max) = "pending_partial_withdrawals_limit" ];
repeated PendingConsolidation pending_consolidations = 12009
[ (ethereum.eth.ext.ssz_max) = "pending_consolidations_limit" ];
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -456,63 +641,106 @@ message BeaconStateElectra {
message BeaconStateFulu { message BeaconStateFulu {
// Versioning [1001-2000] // Versioning [1001-2000]
uint64 genesis_time = 1001; uint64 genesis_time = 1001;
bytes genesis_validators_root = 1002 [(ethereum.eth.ext.ssz_size) = "32"]; bytes genesis_validators_root = 1002 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 slot = 1003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1003 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
Fork fork = 1004; Fork fork = 1004;
// History [2001-3000] // History [2001-3000]
BeaconBlockHeader latest_block_header = 2001; BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"]; repeated bytes block_roots = 2002
repeated bytes state_roots = 2003 [(ethereum.eth.ext.ssz_size) = "state_roots.size"]; [ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
repeated bytes historical_roots = 2004 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "16777216"]; repeated bytes state_roots = 2003
[ (ethereum.eth.ext.ssz_size) = "state_roots.size" ];
repeated bytes historical_roots = 2004 [
(ethereum.eth.ext.ssz_size) = "?,32",
(ethereum.eth.ext.ssz_max) = "16777216"
];
// Eth1 [3001-4000] // Eth1 [3001-4000]
Eth1Data eth1_data = 3001; Eth1Data eth1_data = 3001;
repeated Eth1Data eth1_data_votes = 3002 [(ethereum.eth.ext.ssz_max) = "eth1_data_votes.size"]; repeated Eth1Data eth1_data_votes = 3002
[ (ethereum.eth.ext.ssz_max) = "eth1_data_votes.size" ];
uint64 eth1_deposit_index = 3003; uint64 eth1_deposit_index = 3003;
// Registry [4001-5000] // Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated Validator validators = 4001
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Randomness [5001-6000] // Randomness [5001-6000]
repeated bytes randao_mixes = 5001 [(ethereum.eth.ext.ssz_size) = "randao_mixes.size"]; repeated bytes randao_mixes = 5001
[ (ethereum.eth.ext.ssz_size) = "randao_mixes.size" ];
// Slashings [6001-7000] // Slashings [6001-7000]
repeated uint64 slashings = 6001 [(ethereum.eth.ext.ssz_size) = "slashings.size"]; repeated uint64 slashings = 6001
[ (ethereum.eth.ext.ssz_size) = "slashings.size" ];
// Participation [7001-8000] // Participation [7001-8000]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; bytes previous_epoch_participation = 7001
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; [ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000] // Finality [8001-9000]
// Spec type [4]Bitvector which means this would be a fixed size of 4 bits. // Spec type [4]Bitvector which means this would be a fixed size of 4 bits.
bytes justification_bits = 8001 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; bytes justification_bits = 8001 [
(ethereum.eth.ext.ssz_size) = "1",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector4"
];
Checkpoint previous_justified_checkpoint = 8002; Checkpoint previous_justified_checkpoint = 8002;
Checkpoint current_justified_checkpoint = 8003; Checkpoint current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004; Checkpoint finalized_checkpoint = 8004;
// Fields introduced in Altair fork [9001-10000] // Fields introduced in Altair fork [9001-10000]
repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; repeated uint64 inactivity_scores = 9001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
SyncCommittee current_sync_committee = 9002; SyncCommittee current_sync_committee = 9002;
SyncCommittee next_sync_committee = 9003; SyncCommittee next_sync_committee = 9003;
// Fields introduced in Bellatrix fork [10001-11000] // Fields introduced in Bellatrix fork [10001-11000]
ethereum.engine.v1.ExecutionPayloadHeaderDeneb latest_execution_payload_header = 10001; ethereum.engine.v1.ExecutionPayloadHeaderDeneb
latest_execution_payload_header = 10001;
// Fields introduced in Capella fork [11001-12000] // Fields introduced in Capella fork [11001-12000]
uint64 next_withdrawal_index = 11001; uint64 next_withdrawal_index = 11001;
uint64 next_withdrawal_validator_index = 11002 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 next_withdrawal_validator_index = 11002
repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"]; [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
repeated HistoricalSummary historical_summaries = 11003
[ (ethereum.eth.ext.ssz_max) = "16777216" ];
// Fields introduced in EIP-7251 fork [12001-13000] // Fields introduced in EIP-7251 fork [12001-13000]
uint64 deposit_requests_start_index = 12001; uint64 deposit_requests_start_index = 12001;
uint64 deposit_balance_to_consume = 12002 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"]; uint64 deposit_balance_to_consume = 12002 [
uint64 exit_balance_to_consume = 12003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"]; (ethereum.eth.ext.cast_type) =
uint64 earliest_exit_epoch = 12004 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
uint64 consolidation_balance_to_consume = 12005 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"]; ];
uint64 earliest_consolidation_epoch = 12006 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 exit_balance_to_consume = 12003 [
repeated PendingDeposit pending_deposits = 12007 [(ethereum.eth.ext.ssz_max) = "pending_deposits_limit"]; (ethereum.eth.ext.cast_type) =
repeated PendingPartialWithdrawal pending_partial_withdrawals = 12008 [(ethereum.eth.ext.ssz_max) = "pending_partial_withdrawals_limit"]; "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
repeated PendingConsolidation pending_consolidations = 12009 [(ethereum.eth.ext.ssz_max) = "pending_consolidations_limit"]; ];
uint64 earliest_exit_epoch = 12004 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
uint64 consolidation_balance_to_consume = 12005 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
];
uint64 earliest_consolidation_epoch = 12006 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
repeated PendingDeposit pending_deposits = 12007
[ (ethereum.eth.ext.ssz_max) = "pending_deposits_limit" ];
repeated PendingPartialWithdrawal pending_partial_withdrawals = 12008
[ (ethereum.eth.ext.ssz_max) = "pending_partial_withdrawals_limit" ];
repeated PendingConsolidation pending_consolidations = 12009
[ (ethereum.eth.ext.ssz_max) = "pending_consolidations_limit" ];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/blobs.proto // source: proto/prysm/v1alpha1/blobs.proto
package eth package eth

View File

@@ -25,26 +25,32 @@ option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1"; option php_namespace = "Ethereum\\Eth\\v1alpha1";
message BlindedBlobSidecars { message BlindedBlobSidecars {
repeated BlindedBlobSidecar sidecars = 1 [(ethereum.eth.ext.ssz_max) = "max_blobs_per_block.size"]; repeated BlindedBlobSidecar sidecars = 1
[ (ethereum.eth.ext.ssz_max) = "max_blobs_per_block.size" ];
} }
message SignedBlindedBlobSidecar { message SignedBlindedBlobSidecar {
BlindedBlobSidecar message = 1; BlindedBlobSidecar message = 1;
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
message BlindedBlobSidecar { message BlindedBlobSidecar {
bytes block_root = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_root = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 index = 2; uint64 index = 2;
uint64 slot = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 3 [
bytes block_parent_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; (ethereum.eth.ext.cast_type) =
uint64 proposer_index = 5 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
bytes blob_root = 6 [(ethereum.eth.ext.ssz_size) = "32"]; ];
bytes kzg_commitment = 7 [(ethereum.eth.ext.ssz_size) = "48"]; bytes block_parent_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes kzg_proof = 8 [(ethereum.eth.ext.ssz_size) = "48"]; uint64 proposer_index = 5 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/"
"consensus-types/primitives.ValidatorIndex" ];
bytes blob_root = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes kzg_commitment = 7 [ (ethereum.eth.ext.ssz_size) = "48" ];
bytes kzg_proof = 8 [ (ethereum.eth.ext.ssz_size) = "48" ];
} }
message BlobIdentifier { message BlobIdentifier {
bytes block_root = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_root = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 index = 2; uint64 index = 2;
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/data_columns.proto // source: proto/prysm/v1alpha1/data_columns.proto
package eth package eth

View File

@@ -25,17 +25,27 @@ option java_outer_classname = "DataColumnsProto";
option java_package = "org.ethereum.eth.v1alpha1"; option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1"; option php_namespace = "Ethereum\\Eth\\v1alpha1";
message DataColumnSidecar { message DataColumnSidecar {
uint64 column_index = 1; uint64 column_index = 1;
repeated bytes data_column = 2 [(ethereum.eth.ext.ssz_size) = "?,bytes_per_cell.size", (ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"]; repeated bytes data_column = 2 [
repeated bytes kzg_commitments = 3 [(ethereum.eth.ext.ssz_size) = "?,48", (ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"]; (ethereum.eth.ext.ssz_size) = "?,bytes_per_cell.size",
repeated bytes kzg_proof = 4 [(ethereum.eth.ext.ssz_size) = "?,48", (ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"]; (ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"
];
repeated bytes kzg_commitments = 3 [
(ethereum.eth.ext.ssz_size) = "?,48",
(ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"
];
repeated bytes kzg_proof = 4 [
(ethereum.eth.ext.ssz_size) = "?,48",
(ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"
];
SignedBeaconBlockHeader signed_block_header = 5; SignedBeaconBlockHeader signed_block_header = 5;
repeated bytes kzg_commitments_inclusion_proof = 6 [(ethereum.eth.ext.ssz_size) = "kzg_commitments_inclusion_proof_depth.size,32"]; repeated bytes kzg_commitments_inclusion_proof = 6
[ (ethereum.eth.ext.ssz_size) =
"kzg_commitments_inclusion_proof_depth.size,32" ];
} }
message DataColumnIdentifier { message DataColumnIdentifier {
bytes block_root = 1 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_root = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 column_index = 2; uint64 column_index = 2;
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/debug.proto // source: proto/prysm/v1alpha1/debug.proto
package eth package eth

View File

@@ -19,147 +19,154 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// //
// The debug service in Prysm provides API access to various utilities // The debug service in Prysm provides API access to various utilities
// for debugging the beacon node's functionality at runtime, such as being able // for debugging the beacon node's functionality at runtime, such as being able
// to retrieve the beacon state by block root or state root from the node directly. // to retrieve the beacon state by block root or state root from the node
// directly.
service Debug { service Debug {
// Returns a beacon state by filter criteria from the beacon node. // Returns a beacon state by filter criteria from the beacon node.
rpc GetBeaconState(BeaconStateRequest) returns (SSZResponse) { rpc GetBeaconState(BeaconStateRequest) returns (SSZResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/debug/state" get : "/eth/v1alpha1/debug/state"
}; };
} }
// Returns a beacon state by filter criteria from the beacon node. // Returns a beacon state by filter criteria from the beacon node.
rpc GetBlock(BlockRequestByRoot) returns (SSZResponse) { rpc GetBlock(BlockRequestByRoot) returns (SSZResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/debug/block" get : "/eth/v1alpha1/debug/block"
}; };
} }
// SetLoggingLevel sets the log-level of the beacon node programmatically. // SetLoggingLevel sets the log-level of the beacon node programmatically.
rpc SetLoggingLevel(LoggingLevelRequest) returns (google.protobuf.Empty) { rpc SetLoggingLevel(LoggingLevelRequest) returns (google.protobuf.Empty) {
option (google.api.http) = { option (google.api.http) = {
post: "/eth/v1alpha1/debug/logging" post : "/eth/v1alpha1/debug/logging"
}; };
} }
// Returns all the related data for every peer tracked by the host node. // Returns all the related data for every peer tracked by the host node.
rpc ListPeers(google.protobuf.Empty) returns (DebugPeerResponses){ rpc ListPeers(google.protobuf.Empty) returns (DebugPeerResponses) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/debug/peers" get : "/eth/v1alpha1/debug/peers"
}; };
} }
// Returns requested peer with specified peer id if it exists. // Returns requested peer with specified peer id if it exists.
rpc GetPeer(ethereum.eth.v1alpha1.PeerRequest) returns (DebugPeerResponse) { rpc GetPeer(ethereum.eth.v1alpha1.PeerRequest) returns (DebugPeerResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/debug/peer" get : "/eth/v1alpha1/debug/peer"
}; };
} }
} }
message InclusionSlotRequest { message InclusionSlotRequest {
uint64 id = 1; uint64 id = 1;
uint64 slot = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 2 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message InclusionSlotResponse { message InclusionSlotResponse {
uint64 slot = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 2 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message BeaconStateRequest { message BeaconStateRequest {
oneof query_filter { oneof query_filter {
// The slot corresponding to a desired beacon state. // The slot corresponding to a desired beacon state.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// The block root corresponding to a desired beacon state. // The block root corresponding to a desired beacon state.
bytes block_root = 2; bytes block_root = 2;
} }
} }
message BlockRequestByRoot { message BlockRequestByRoot { bytes block_root = 1; }
bytes block_root = 1;
}
message SSZResponse { message SSZResponse {
// Returns an ssz-encoded byte slice as a response. // Returns an ssz-encoded byte slice as a response.
bytes encoded = 1; bytes encoded = 1;
} }
message LoggingLevelRequest { message LoggingLevelRequest {
// The logging levels available in Prysm as an enum. // The logging levels available in Prysm as an enum.
enum Level { enum Level {
INFO = 0; INFO = 0;
DEBUG = 1; DEBUG = 1;
TRACE = 2; TRACE = 2;
} }
Level level = 1; Level level = 1;
} }
message DebugPeerResponses { message DebugPeerResponses { repeated DebugPeerResponse responses = 1; }
repeated DebugPeerResponse responses = 1;
}
message DebugPeerResponse { message DebugPeerResponse {
// Peer related metadata that is useful for debugging. // Peer related metadata that is useful for debugging.
message PeerInfo { message PeerInfo {
// Metadata of the peer, containing their bitfield // Metadata of the peer, containing their bitfield
// and sequence number. // and sequence number.
MetaDataV0 metadataV0 = 1; MetaDataV0 metadataV0 = 1;
MetaDataV1 metadataV1 = 2; MetaDataV1 metadataV1 = 2;
// List of protocols the peer supports. // List of protocols the peer supports.
repeated string protocols = 3; repeated string protocols = 3;
// Number of times peer has been penalised. // Number of times peer has been penalised.
uint64 fault_count = 4; uint64 fault_count = 4;
// Protocol Version peer is running. // Protocol Version peer is running.
string protocol_version = 5; string protocol_version = 5;
// Agent Version peer is running. // Agent Version peer is running.
string agent_version = 6; string agent_version = 6;
// Latency of responses from peer(in ms). // Latency of responses from peer(in ms).
uint64 peer_latency = 7; uint64 peer_latency = 7;
} }
// Listening addresses know of the peer. // Listening addresses know of the peer.
repeated string listening_addresses = 1; repeated string listening_addresses = 1;
// Direction of current connection. // Direction of current connection.
ethereum.eth.v1alpha1.PeerDirection direction = 2; ethereum.eth.v1alpha1.PeerDirection direction = 2;
// Current connection between host and peer. // Current connection between host and peer.
ethereum.eth.v1alpha1.ConnectionState connection_state = 3; ethereum.eth.v1alpha1.ConnectionState connection_state = 3;
// Peer ID of peer. // Peer ID of peer.
string peer_id = 4; string peer_id = 4;
// ENR of peer at the current moment. // ENR of peer at the current moment.
string enr = 5; string enr = 5;
// Peer Info of the peer containing all relevant metadata. // Peer Info of the peer containing all relevant metadata.
PeerInfo peer_info = 6; PeerInfo peer_info = 6;
// Peer Status of the peer. // Peer Status of the peer.
Status peer_status = 7; Status peer_status = 7;
// Last know update time for peer status. // Last know update time for peer status.
uint64 last_updated = 8; uint64 last_updated = 8;
// Score Info of the peer. // Score Info of the peer.
ScoreInfo score_info = 9; ScoreInfo score_info = 9;
} }
// The Scoring related information of the particular peer. // The Scoring related information of the particular peer.
message ScoreInfo { message ScoreInfo {
float overall_score = 1; float overall_score = 1;
// Amount of processed blocks provided by // Amount of processed blocks provided by
// the peer. // the peer.
uint64 processed_blocks = 2; uint64 processed_blocks = 2;
// Related block provider score. // Related block provider score.
float block_provider_score = 3; float block_provider_score = 3;
// Relevant scores by particular topic. // Relevant scores by particular topic.
map<string,TopicScoreSnapshot> topic_scores = 4; map<string, TopicScoreSnapshot> topic_scores = 4;
// Gossip Score for peer. // Gossip Score for peer.
float gossip_score = 5; float gossip_score = 5;
// Behaviour penalty of peer. // Behaviour penalty of peer.
float behaviour_penalty = 6; float behaviour_penalty = 6;
// Returns the current validation error(if it exists). // Returns the current validation error(if it exists).
string validation_error = 7; string validation_error = 7;
} }
message TopicScoreSnapshot { message TopicScoreSnapshot {
// Time a peer has spent in the gossip mesh. // Time a peer has spent in the gossip mesh.
uint64 time_in_mesh = 1; uint64 time_in_mesh = 1;
// This is the number of first message deliveries in the topic. // This is the number of first message deliveries in the topic.
float first_message_deliveries = 2; float first_message_deliveries = 2;
// This is the number of message deliveries in the mesh, within the MeshMessageDeliveriesWindow of // This is the number of message deliveries in the mesh, within the
// message validation.It effectively tracks first and near-first // MeshMessageDeliveriesWindow of message validation.It effectively tracks
// deliveries, ie a message seen from a mesh peer before we have forwarded it to them. // first and near-first deliveries, ie a message seen from a mesh peer before
float mesh_message_deliveries = 3; // we have forwarded it to them.
// This is the number of invalid messages in the topic from the peer. float mesh_message_deliveries = 3;
float invalid_message_deliveries = 4; // This is the number of invalid messages in the topic from the peer.
float invalid_message_deliveries = 4;
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/eip_7251.proto // source: proto/prysm/v1alpha1/eip_7251.proto
package eth package eth

View File

@@ -25,33 +25,48 @@ option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1"; option php_namespace = "Ethereum\\Eth\\v1alpha1";
message PendingDeposit { message PendingDeposit {
// 48 byte BLS public key of the validator. // 48 byte BLS public key of the validator.
bytes public_key = 1 [(ethereum.eth.ext.ssz_size) = "48", (ethereum.eth.ext.spec_name) = "pubkey"]; bytes public_key = 1 [
(ethereum.eth.ext.ssz_size) = "48",
(ethereum.eth.ext.spec_name) = "pubkey"
];
// A 32 byte hash of the withdrawal address public key. // A 32 byte hash of the withdrawal address public key.
bytes withdrawal_credentials = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes withdrawal_credentials = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The amount of the deposit (gwei). // The amount of the deposit (gwei).
uint64 amount = 3; uint64 amount = 3;
// 96 byte BLS signature from the validator that produced this block. // 96 byte BLS signature from the validator that produced this block.
bytes signature = 4 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 4 [ (ethereum.eth.ext.ssz_size) = "96" ];
uint64 slot = 5 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 5 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message PendingPartialWithdrawal { message PendingPartialWithdrawal {
// Validator index for the withdrawal. // Validator index for the withdrawal.
uint64 index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 index = 1 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// The amount of the withdrawal (gwei). // The amount of the withdrawal (gwei).
uint64 amount = 2; uint64 amount = 2;
// A partial withdrawal is valid at this epoch or later. // A partial withdrawal is valid at this epoch or later.
uint64 withdrawable_epoch = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 withdrawable_epoch = 3 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
} }
message PendingConsolidation { message PendingConsolidation {
// Validator from which the funds will be moved. // Validator from which the funds will be moved.
uint64 source_index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 source_index = 1 [ (ethereum.eth.ext.cast_type) =
// Validator to which the funds will be moved. "github.com/prysmaticlabs/prysm/v5/"
uint64 target_index = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; "consensus-types/primitives.ValidatorIndex" ];
// Validator to which the funds will be moved.
uint64 target_index = 2 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/"
"consensus-types/primitives.ValidatorIndex" ];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/finalized_block_root_container.proto // source: proto/prysm/v1alpha1/finalized_block_root_container.proto
package eth package eth

View File

@@ -10,6 +10,6 @@ option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1"; option php_namespace = "Ethereum\\Eth\\v1alpha1";
message FinalizedBlockRootContainer { message FinalizedBlockRootContainer {
bytes parent_root = 1; bytes parent_root = 1;
bytes child_root = 2; bytes child_root = 2;
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/health.proto // source: proto/prysm/v1alpha1/health.proto
package eth package eth

View File

@@ -17,13 +17,11 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// The health service is able to return important metadata about a beacon node // The health service is able to return important metadata about a beacon node
// such being able to stream logs via gRPC. // such being able to stream logs via gRPC.
service Health { service Health {
rpc StreamBeaconLogs(google.protobuf.Empty) returns (stream LogsResponse) { rpc StreamBeaconLogs(google.protobuf.Empty) returns (stream LogsResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/health/logs/stream" get : "/eth/v1alpha1/health/logs/stream"
}; };
} }
} }
message LogsResponse { message LogsResponse { repeated string logs = 1; }
repeated string logs = 1;
}

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/light_client.proto // source: proto/prysm/v1alpha1/light_client.proto
package eth package eth

View File

@@ -34,36 +34,45 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
message LightClientBootstrapAltair { message LightClientBootstrapAltair {
LightClientHeaderAltair header = 1; LightClientHeaderAltair header = 1;
SyncCommittee current_sync_committee = 2; SyncCommittee current_sync_committee = 2;
repeated bytes current_sync_committee_branch = 3 [(ethereum.eth.ext.ssz_size) = "5,32"]; repeated bytes current_sync_committee_branch = 3
[ (ethereum.eth.ext.ssz_size) = "5,32" ];
} }
message LightClientUpdateAltair { message LightClientUpdateAltair {
LightClientHeaderAltair attested_header = 1; LightClientHeaderAltair attested_header = 1;
SyncCommittee next_sync_committee = 2; SyncCommittee next_sync_committee = 2;
repeated bytes next_sync_committee_branch = 3 [(ethereum.eth.ext.ssz_size) = "5,32"]; repeated bytes next_sync_committee_branch = 3
[ (ethereum.eth.ext.ssz_size) = "5,32" ];
LightClientHeaderAltair finalized_header = 4; LightClientHeaderAltair finalized_header = 4;
repeated bytes finality_branch = 5 [(ethereum.eth.ext.ssz_size) = "6,32"]; repeated bytes finality_branch = 5 [ (ethereum.eth.ext.ssz_size) = "6,32" ];
SyncAggregate sync_aggregate = 6; SyncAggregate sync_aggregate = 6;
uint64 signature_slot = 7 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 7 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientFinalityUpdateAltair { message LightClientFinalityUpdateAltair {
LightClientHeaderAltair attested_header = 1; LightClientHeaderAltair attested_header = 1;
LightClientHeaderAltair finalized_header = 2; LightClientHeaderAltair finalized_header = 2;
repeated bytes finality_branch = 3 [(ethereum.eth.ext.ssz_size) = "6,32"]; repeated bytes finality_branch = 3 [ (ethereum.eth.ext.ssz_size) = "6,32" ];
SyncAggregate sync_aggregate = 4; SyncAggregate sync_aggregate = 4;
uint64 signature_slot = 5 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 5 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientOptimisticUpdateAltair { message LightClientOptimisticUpdateAltair {
LightClientHeaderAltair attested_header = 1; LightClientHeaderAltair attested_header = 1;
SyncAggregate sync_aggregate = 2; SyncAggregate sync_aggregate = 2;
uint64 signature_slot = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 3 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientHeaderAltair { message LightClientHeaderAltair { BeaconBlockHeader beacon = 1; }
BeaconBlockHeader beacon = 1;
}
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// Capella // Capella
@@ -72,37 +81,48 @@ message LightClientHeaderAltair {
message LightClientBootstrapCapella { message LightClientBootstrapCapella {
LightClientHeaderCapella header = 1; LightClientHeaderCapella header = 1;
SyncCommittee current_sync_committee = 2; SyncCommittee current_sync_committee = 2;
repeated bytes current_sync_committee_branch = 3 [(ethereum.eth.ext.ssz_size) = "5,32"]; repeated bytes current_sync_committee_branch = 3
[ (ethereum.eth.ext.ssz_size) = "5,32" ];
} }
message LightClientUpdateCapella { message LightClientUpdateCapella {
LightClientHeaderCapella attested_header = 1; LightClientHeaderCapella attested_header = 1;
SyncCommittee next_sync_committee = 2; SyncCommittee next_sync_committee = 2;
repeated bytes next_sync_committee_branch = 3 [(ethereum.eth.ext.ssz_size) = "5,32"]; repeated bytes next_sync_committee_branch = 3
[ (ethereum.eth.ext.ssz_size) = "5,32" ];
LightClientHeaderCapella finalized_header = 4; LightClientHeaderCapella finalized_header = 4;
repeated bytes finality_branch = 5 [(ethereum.eth.ext.ssz_size) = "6,32"]; repeated bytes finality_branch = 5 [ (ethereum.eth.ext.ssz_size) = "6,32" ];
SyncAggregate sync_aggregate = 6; SyncAggregate sync_aggregate = 6;
uint64 signature_slot = 7 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 7 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientFinalityUpdateCapella { message LightClientFinalityUpdateCapella {
LightClientHeaderCapella attested_header = 1; LightClientHeaderCapella attested_header = 1;
LightClientHeaderCapella finalized_header = 2; LightClientHeaderCapella finalized_header = 2;
repeated bytes finality_branch = 3 [(ethereum.eth.ext.ssz_size) = "6,32"]; repeated bytes finality_branch = 3 [ (ethereum.eth.ext.ssz_size) = "6,32" ];
SyncAggregate sync_aggregate = 4; SyncAggregate sync_aggregate = 4;
uint64 signature_slot = 5 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 5 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientOptimisticUpdateCapella { message LightClientOptimisticUpdateCapella {
LightClientHeaderCapella attested_header = 1; LightClientHeaderCapella attested_header = 1;
SyncAggregate sync_aggregate = 2; SyncAggregate sync_aggregate = 2;
uint64 signature_slot = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 3 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientHeaderCapella { message LightClientHeaderCapella {
BeaconBlockHeader beacon = 1; BeaconBlockHeader beacon = 1;
ethereum.engine.v1.ExecutionPayloadHeaderCapella execution = 2; ethereum.engine.v1.ExecutionPayloadHeaderCapella execution = 2;
repeated bytes execution_branch = 3 [(ethereum.eth.ext.ssz_size) = "4,32"]; repeated bytes execution_branch = 3 [ (ethereum.eth.ext.ssz_size) = "4,32" ];
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -112,37 +132,48 @@ message LightClientHeaderCapella {
message LightClientBootstrapDeneb { message LightClientBootstrapDeneb {
LightClientHeaderDeneb header = 1; LightClientHeaderDeneb header = 1;
SyncCommittee current_sync_committee = 2; SyncCommittee current_sync_committee = 2;
repeated bytes current_sync_committee_branch = 3 [(ethereum.eth.ext.ssz_size) = "5,32"]; repeated bytes current_sync_committee_branch = 3
[ (ethereum.eth.ext.ssz_size) = "5,32" ];
} }
message LightClientUpdateDeneb { message LightClientUpdateDeneb {
LightClientHeaderDeneb attested_header = 1; LightClientHeaderDeneb attested_header = 1;
SyncCommittee next_sync_committee = 2; SyncCommittee next_sync_committee = 2;
repeated bytes next_sync_committee_branch = 3 [(ethereum.eth.ext.ssz_size) = "5,32"]; repeated bytes next_sync_committee_branch = 3
[ (ethereum.eth.ext.ssz_size) = "5,32" ];
LightClientHeaderDeneb finalized_header = 4; LightClientHeaderDeneb finalized_header = 4;
repeated bytes finality_branch = 5 [(ethereum.eth.ext.ssz_size) = "6,32"]; repeated bytes finality_branch = 5 [ (ethereum.eth.ext.ssz_size) = "6,32" ];
SyncAggregate sync_aggregate = 6; SyncAggregate sync_aggregate = 6;
uint64 signature_slot = 7 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 7 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientFinalityUpdateDeneb { message LightClientFinalityUpdateDeneb {
LightClientHeaderDeneb attested_header = 1; LightClientHeaderDeneb attested_header = 1;
LightClientHeaderDeneb finalized_header = 2; LightClientHeaderDeneb finalized_header = 2;
repeated bytes finality_branch = 3 [(ethereum.eth.ext.ssz_size) = "6,32"]; repeated bytes finality_branch = 3 [ (ethereum.eth.ext.ssz_size) = "6,32" ];
SyncAggregate sync_aggregate = 4; SyncAggregate sync_aggregate = 4;
uint64 signature_slot = 5 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 5 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientOptimisticUpdateDeneb { message LightClientOptimisticUpdateDeneb {
LightClientHeaderDeneb attested_header = 1; LightClientHeaderDeneb attested_header = 1;
SyncAggregate sync_aggregate = 2; SyncAggregate sync_aggregate = 2;
uint64 signature_slot = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 3 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientHeaderDeneb { message LightClientHeaderDeneb {
BeaconBlockHeader beacon = 1; BeaconBlockHeader beacon = 1;
ethereum.engine.v1.ExecutionPayloadHeaderDeneb execution = 2; ethereum.engine.v1.ExecutionPayloadHeaderDeneb execution = 2;
repeated bytes execution_branch = 3 [(ethereum.eth.ext.ssz_size) = "4,32"]; repeated bytes execution_branch = 3 [ (ethereum.eth.ext.ssz_size) = "4,32" ];
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -152,23 +183,31 @@ message LightClientHeaderDeneb {
message LightClientBootstrapElectra { message LightClientBootstrapElectra {
LightClientHeaderDeneb header = 1; LightClientHeaderDeneb header = 1;
SyncCommittee current_sync_committee = 2; SyncCommittee current_sync_committee = 2;
repeated bytes current_sync_committee_branch = 3 [(ethereum.eth.ext.ssz_size) = "6,32"]; repeated bytes current_sync_committee_branch = 3
[ (ethereum.eth.ext.ssz_size) = "6,32" ];
} }
message LightClientUpdateElectra { message LightClientUpdateElectra {
LightClientHeaderDeneb attested_header = 1; LightClientHeaderDeneb attested_header = 1;
SyncCommittee next_sync_committee = 2; SyncCommittee next_sync_committee = 2;
repeated bytes next_sync_committee_branch = 3 [(ethereum.eth.ext.ssz_size) = "6,32"]; repeated bytes next_sync_committee_branch = 3
[ (ethereum.eth.ext.ssz_size) = "6,32" ];
LightClientHeaderDeneb finalized_header = 4; LightClientHeaderDeneb finalized_header = 4;
repeated bytes finality_branch = 5 [(ethereum.eth.ext.ssz_size) = "7,32"]; repeated bytes finality_branch = 5 [ (ethereum.eth.ext.ssz_size) = "7,32" ];
SyncAggregate sync_aggregate = 6; SyncAggregate sync_aggregate = 6;
uint64 signature_slot = 7 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 7 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message LightClientFinalityUpdateElectra { message LightClientFinalityUpdateElectra {
LightClientHeaderDeneb attested_header = 1; LightClientHeaderDeneb attested_header = 1;
LightClientHeaderDeneb finalized_header = 2; LightClientHeaderDeneb finalized_header = 2;
repeated bytes finality_branch = 3 [(ethereum.eth.ext.ssz_max) = "7,32"]; repeated bytes finality_branch = 3 [ (ethereum.eth.ext.ssz_max) = "7,32" ];
SyncAggregate sync_aggregate = 4; SyncAggregate sync_aggregate = 4;
uint64 signature_slot = 5 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signature_slot = 5 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/node.proto // source: proto/prysm/v1alpha1/node.proto
package eth package eth

View File

@@ -33,145 +33,143 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// Node service provides general information about the node itself, the services // Node service provides general information about the node itself, the services
// it supports, chain information and node version. // it supports, chain information and node version.
service Node { service Node {
// Retrieve the current network sync status of the node. // Retrieve the current network sync status of the node.
rpc GetSyncStatus(google.protobuf.Empty) returns (SyncStatus) { rpc GetSyncStatus(google.protobuf.Empty) returns (SyncStatus) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/node/syncing" get : "/eth/v1alpha1/node/syncing"
}; };
} }
// Retrieve information about the genesis of Ethereum proof of stake. // Retrieve information about the genesis of Ethereum proof of stake.
rpc GetGenesis(google.protobuf.Empty) returns (Genesis) { rpc GetGenesis(google.protobuf.Empty) returns (Genesis) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/node/genesis" get : "/eth/v1alpha1/node/genesis"
}; };
} }
// Retrieve information about the running Ethereum Beacon Node. // Retrieve information about the running Ethereum Beacon Node.
rpc GetVersion(google.protobuf.Empty) returns (Version) { rpc GetVersion(google.protobuf.Empty) returns (Version) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/node/version" get : "/eth/v1alpha1/node/version"
}; };
} }
// Retrieve the current health of the node. // Retrieve the current health of the node.
rpc GetHealth(HealthRequest) returns (google.protobuf.Empty) { rpc GetHealth(HealthRequest) returns (google.protobuf.Empty) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/node/health" get : "/eth/v1alpha1/node/health"
}; };
} }
// Retrieve the list of services implemented and enabled by this node. // Retrieve the list of services implemented and enabled by this node.
// //
// Any service not present in this list may return UNIMPLEMENTED or // Any service not present in this list may return UNIMPLEMENTED or
// PERMISSION_DENIED. The server may also support fetching services by grpc // PERMISSION_DENIED. The server may also support fetching services by grpc
// reflection. // reflection.
rpc ListImplementedServices(google.protobuf.Empty) returns (ImplementedServices) { rpc ListImplementedServices(google.protobuf.Empty)
option (google.api.http) = { returns (ImplementedServices) {
get: "/eth/v1alpha1/node/services" option (google.api.http) = {
}; get : "/eth/v1alpha1/node/services"
} };
}
// Retrieves the peer data of the local peer. // Retrieves the peer data of the local peer.
rpc GetHost(google.protobuf.Empty) returns (HostData) { rpc GetHost(google.protobuf.Empty) returns (HostData) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/node/p2p" get : "/eth/v1alpha1/node/p2p"
}; };
} }
// Retrieve the peer corresponding to the provided peer id. // Retrieve the peer corresponding to the provided peer id.
rpc GetPeer(PeerRequest) returns (Peer) { rpc GetPeer(PeerRequest) returns (Peer) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/node/peer" get : "/eth/v1alpha1/node/peer"
}; };
} }
// Retrieve the list of peers currently connected to this node. // Retrieve the list of peers currently connected to this node.
rpc ListPeers(google.protobuf.Empty) returns (Peers) { rpc ListPeers(google.protobuf.Empty) returns (Peers) {
option (google.api.http) = { option (google.api.http) = {
get: "/eth/v1alpha1/node/peers" get : "/eth/v1alpha1/node/peers"
}; };
} }
// // Retrieve the status of the ETH1 connections. // // Retrieve the status of the ETH1 connections.
rpc GetETH1ConnectionStatus(google.protobuf.Empty) returns (ETH1ConnectionStatus) { rpc GetETH1ConnectionStatus(google.protobuf.Empty)
option (google.api.http) = { returns (ETH1ConnectionStatus) {
get: "/eth/v1alpha1/node/eth1/connections" option (google.api.http) = {
}; get : "/eth/v1alpha1/node/eth1/connections"
} };
}
} }
message HealthRequest { message HealthRequest { uint64 syncing_status = 1; }
uint64 syncing_status = 1;
}
// Information about the current network sync status of the node. // Information about the current network sync status of the node.
message SyncStatus { message SyncStatus {
// Whether or not the node is currently syncing. // Whether or not the node is currently syncing.
bool syncing = 1; bool syncing = 1;
} }
// Information about the genesis of Ethereum proof of stake. // Information about the genesis of Ethereum proof of stake.
message Genesis { message Genesis {
// UTC time specified in the chain start event in the deposit contract. // UTC time specified in the chain start event in the deposit contract.
google.protobuf.Timestamp genesis_time = 1; google.protobuf.Timestamp genesis_time = 1;
// Address of the deposit contract in the Ethereum 1 chain. // Address of the deposit contract in the Ethereum 1 chain.
bytes deposit_contract_address = 2; bytes deposit_contract_address = 2;
// Root of the genesis validators deposits; used for domain separation // Root of the genesis validators deposits; used for domain separation
// when signing data structures for this chain. // when signing data structures for this chain.
bytes genesis_validators_root = 3 [(ethereum.eth.ext.ssz_size) = "32"]; bytes genesis_validators_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
} }
// Information about the node version. // Information about the node version.
message Version { message Version {
// A string that uniquely identifies the node and its version. // A string that uniquely identifies the node and its version.
string version = 1; string version = 1;
// Additional metadata that the node would like to provide. This field may // Additional metadata that the node would like to provide. This field may
// be used to list any meaningful data to the client. // be used to list any meaningful data to the client.
string metadata = 2; string metadata = 2;
} }
message ImplementedServices { message ImplementedServices { repeated string services = 1; }
repeated string services = 1;
}
message PeerRequest { message PeerRequest {
// Peer id of the peer requested. // Peer id of the peer requested.
string peer_id = 1; string peer_id = 1;
} }
// Peers is a list of peer messages. // Peers is a list of peer messages.
message Peers { message Peers { repeated Peer peers = 1; }
repeated Peer peers = 1;
}
// Peer provides details of a peer on the network. // Peer provides details of a peer on the network.
message Peer { message Peer {
// The address of the peer, as a full multiaddr, for example: // The address of the peer, as a full multiaddr, for example:
// /ip4/37.221.192.134/tcp/13000/p2p/16Uiu2HAm8maLMjag1TAUM52zPfmLbVMGFdwUAWgoHu1HDQLR6e17 // /ip4/37.221.192.134/tcp/13000/p2p/16Uiu2HAm8maLMjag1TAUM52zPfmLbVMGFdwUAWgoHu1HDQLR6e17
string address = 1; string address = 1;
// The direction of the connection (inbound/outbound). // The direction of the connection (inbound/outbound).
PeerDirection direction = 2; PeerDirection direction = 2;
// The connection state of the peer at the moment of the request. (e.g. Connecting) // The connection state of the peer at the moment of the request. (e.g.
ConnectionState connection_state = 3; // Connecting)
// The peer id of the peer. ConnectionState connection_state = 3;
string peer_id = 4; // The peer id of the peer.
// The latest ENR of the peer that's in the record. string peer_id = 4;
string enr = 5; // The latest ENR of the peer that's in the record.
string enr = 5;
} }
// P2P Data on the local host. // P2P Data on the local host.
message HostData { message HostData {
// All the multiaddress of the peer, specified as a full multiaddr, for example: // All the multiaddress of the peer, specified as a full multiaddr, for
// /ip4/37.221.192.134/tcp/13000/p2p/16Uiu2HAm8maLMjag1TAUM52zPfmLbVMGFdwUAWgoHu1HDQLR6e17 // example:
repeated string addresses = 1; // /ip4/37.221.192.134/tcp/13000/p2p/16Uiu2HAm8maLMjag1TAUM52zPfmLbVMGFdwUAWgoHu1HDQLR6e17
// The peer id of the peer. repeated string addresses = 1;
string peer_id = 2; // The peer id of the peer.
// The latest ENR of the local peer. string peer_id = 2;
string enr = 3; // The latest ENR of the local peer.
string enr = 3;
} }
// PeerDirection states the direction of the connection to a peer. // PeerDirection states the direction of the connection to a peer.
@@ -183,24 +181,24 @@ enum PeerDirection {
// ConnectionState states the current status of the peer. // ConnectionState states the current status of the peer.
enum ConnectionState { enum ConnectionState {
DISCONNECTED = 0; DISCONNECTED = 0;
DISCONNECTING = 1; DISCONNECTING = 1;
CONNECTED = 2; CONNECTED = 2;
CONNECTING = 3; CONNECTING = 3;
} }
// ETH1ConnectionStatus states the current address and error of the ETH1 API // ETH1ConnectionStatus states the current address and error of the ETH1 API
// endpoint. It also provides the addresses and errors for any fallback URLs. // endpoint. It also provides the addresses and errors for any fallback URLs.
message ETH1ConnectionStatus { message ETH1ConnectionStatus {
// Current ETH1 HTTP endpoint. // Current ETH1 HTTP endpoint.
string current_address = 1; string current_address = 1;
// Current error (if any) of the current connection. // Current error (if any) of the current connection.
string current_connection_error = 2; string current_connection_error = 2;
// A list of all provider URLs. // A list of all provider URLs.
repeated string addresses = 3; repeated string addresses = 3;
// Current error (if any) of the HTTP connections. // Current error (if any) of the HTTP connections.
repeated string connection_errors = 4; repeated string connection_errors = 4;
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/p2p_messages.proto // source: proto/prysm/v1alpha1/p2p_messages.proto
package eth package eth

View File

@@ -13,23 +13,35 @@ option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1"; option php_namespace = "Ethereum\\Eth\\v1alpha1";
message Status { message Status {
bytes fork_digest = 1 [(ethereum.eth.ext.ssz_size) = "4"]; bytes fork_digest = 1 [ (ethereum.eth.ext.ssz_size) = "4" ];
bytes finalized_root = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes finalized_root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 finalized_epoch = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 finalized_epoch = 3 [
bytes head_root = 4 [(ethereum.eth.ext.ssz_size) = "32"]; (ethereum.eth.ext.cast_type) =
uint64 head_slot = 5 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
bytes head_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 head_slot = 5 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
message BeaconBlocksByRangeRequest { message BeaconBlocksByRangeRequest {
uint64 start_slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 start_slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
uint64 count = 2; uint64 count = 2;
uint64 step = 3; uint64 step = 3;
} }
message ENRForkID { message ENRForkID {
bytes current_fork_digest = 1 [(ethereum.eth.ext.ssz_size) = "4"]; bytes current_fork_digest = 1 [ (ethereum.eth.ext.ssz_size) = "4" ];
bytes next_fork_version = 2 [(ethereum.eth.ext.ssz_size) = "4"]; bytes next_fork_version = 2 [ (ethereum.eth.ext.ssz_size) = "4" ];
uint64 next_fork_epoch = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 next_fork_epoch = 3 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
} }
/* /*
@@ -42,7 +54,11 @@ message ENRForkID {
*/ */
message MetaDataV0 { message MetaDataV0 {
uint64 seq_number = 1; uint64 seq_number = 1;
bytes attnets = 2 [(ethereum.eth.ext.ssz_size) = "8", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector64"]; bytes attnets = 2 [
(ethereum.eth.ext.ssz_size) = "8",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector64"
];
} }
/* /*
@@ -56,8 +72,16 @@ message MetaDataV0 {
*/ */
message MetaDataV1 { message MetaDataV1 {
uint64 seq_number = 1; uint64 seq_number = 1;
bytes attnets = 2 [(ethereum.eth.ext.ssz_size) = "8", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector64"]; bytes attnets = 2 [
bytes syncnets = 3 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; (ethereum.eth.ext.ssz_size) = "8",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector64"
];
bytes syncnets = 3 [
(ethereum.eth.ext.ssz_size) = "1",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector4"
];
} }
/* /*
@@ -72,8 +96,16 @@ message MetaDataV1 {
*/ */
message MetaDataV2 { message MetaDataV2 {
uint64 seq_number = 1; uint64 seq_number = 1;
bytes attnets = 2 [(ethereum.eth.ext.ssz_size) = "8", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector64"]; bytes attnets = 2 [
bytes syncnets = 3 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"]; (ethereum.eth.ext.ssz_size) = "8",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector64"
];
bytes syncnets = 3 [
(ethereum.eth.ext.ssz_size) = "1",
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/go-bitfield.Bitvector4"
];
uint64 custody_subnet_count = 4; uint64 custody_subnet_count = 4;
} }
@@ -85,7 +117,10 @@ message MetaDataV2 {
) )
*/ */
message BlobSidecarsByRangeRequest { message BlobSidecarsByRangeRequest {
uint64 start_slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 start_slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
uint64 count = 2; uint64 count = 2;
} }
@@ -98,7 +133,10 @@ Spec Definition:
) )
*/ */
message DataColumnSidecarsByRangeRequest { message DataColumnSidecarsByRangeRequest {
uint64 start_slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 start_slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
uint64 count = 2; uint64 count = 2;
repeated uint64 columns = 3 [(ethereum.eth.ext.ssz_max) = "128"]; repeated uint64 columns = 3 [ (ethereum.eth.ext.ssz_max) = "128" ];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/powchain.proto // source: proto/prysm/v1alpha1/powchain.proto
package eth package eth

View File

@@ -17,58 +17,59 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// ETH1ChainData is a container which holds all the relevant eth1 // ETH1ChainData is a container which holds all the relevant eth1
// information // information
message ETH1ChainData { message ETH1ChainData {
LatestETH1Data current_eth1_data = 1 ; LatestETH1Data current_eth1_data = 1;
ChainStartData chainstart_data = 2; ChainStartData chainstart_data = 2;
BeaconState beacon_state = 3; BeaconState beacon_state = 3;
SparseMerkleTrie trie = 4; SparseMerkleTrie trie = 4;
repeated DepositContainer deposit_containers = 5; repeated DepositContainer deposit_containers = 5;
DepositSnapshot deposit_snapshot = 6; DepositSnapshot deposit_snapshot = 6;
} }
// DepositSnapshot represents an EIP-4881 deposit snapshot // DepositSnapshot represents an EIP-4881 deposit snapshot
message DepositSnapshot { message DepositSnapshot {
repeated bytes finalized = 1 [(ethereum.eth.ext.ssz_size) = "?,32", (ethereum.eth.ext.ssz_max) = "32"]; repeated bytes finalized = 1 [
bytes deposit_root = 2 [(ethereum.eth.ext.ssz_size) = "32"]; (ethereum.eth.ext.ssz_size) = "?,32",
uint64 deposit_count = 3; (ethereum.eth.ext.ssz_max) = "32"
bytes execution_hash = 4 [(ethereum.eth.ext.ssz_size) = "32"]; ];
uint64 execution_depth = 5; bytes deposit_root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 deposit_count = 3;
bytes execution_hash = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 execution_depth = 5;
} }
// LatestETH1Data contains the current state of the eth1 chain. // LatestETH1Data contains the current state of the eth1 chain.
message LatestETH1Data { message LatestETH1Data {
uint64 block_height = 2; uint64 block_height = 2;
uint64 block_time = 3; uint64 block_time = 3;
bytes block_hash = 4; bytes block_hash = 4;
uint64 last_requested_block = 5; uint64 last_requested_block = 5;
} }
// ChainStartData contains all the information related to chainstart. // ChainStartData contains all the information related to chainstart.
message ChainStartData { message ChainStartData {
bool chainstarted = 1; bool chainstarted = 1;
uint64 genesis_time = 2; uint64 genesis_time = 2;
uint64 genesis_block = 3; uint64 genesis_block = 3;
Eth1Data eth1_data = 4; Eth1Data eth1_data = 4;
repeated Deposit chainstart_deposits = 5; repeated Deposit chainstart_deposits = 5;
} }
// SparseMerkleTrie is used to describe the model of our deposit trie. // SparseMerkleTrie is used to describe the model of our deposit trie.
message SparseMerkleTrie { message SparseMerkleTrie {
uint64 depth = 1; uint64 depth = 1;
repeated TrieLayer layers = 2; repeated TrieLayer layers = 2;
repeated bytes original_items = 3; repeated bytes original_items = 3;
} }
// TrieLayer is used to represent each layer in the deposit tree due to // TrieLayer is used to represent each layer in the deposit tree due to
// the lack of protobuf support for multi-dimensional arrays.(Ex: 3d,4d,...) // the lack of protobuf support for multi-dimensional arrays.(Ex: 3d,4d,...)
message TrieLayer { message TrieLayer { repeated bytes layer = 1; }
repeated bytes layer = 1;
}
// DepositContainer defines a container that can be used to store // DepositContainer defines a container that can be used to store
// deposit related information for a particular deposit. // deposit related information for a particular deposit.
message DepositContainer { message DepositContainer {
int64 index = 1; int64 index = 1;
uint64 eth1_block_height = 2; uint64 eth1_block_height = 2;
Deposit deposit = 3; Deposit deposit = 3;
bytes deposit_root = 4; bytes deposit_root = 4;
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/slasher.proto // source: proto/prysm/v1alpha1/slasher.proto
package eth package eth

View File

@@ -26,10 +26,12 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
message HighestAttestation { message HighestAttestation {
uint64 validator_index = 1; uint64 validator_index = 1;
uint64 highest_source_epoch = 2 uint64 highest_source_epoch = 2 [
[ (ethereum.eth.ext.cast_type) = (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch" ]; "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
uint64 highest_target_epoch = 3 ];
[ (ethereum.eth.ext.cast_type) = uint64 highest_target_epoch = 3 [
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch" ]; (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/sync_committee.proto // source: proto/prysm/v1alpha1/sync_committee.proto
package eth package eth

View File

@@ -27,52 +27,69 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// Sync committee object to support light client. // Sync committee object to support light client.
message SyncCommitteeMessage { message SyncCommitteeMessage {
// Slot to which this contribution pertains. // Slot to which this contribution pertains.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// 32 byte block root for this signature. // 32 byte block root for this signature.
bytes block_root = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Index of the validator that produced this signature. // Index of the validator that produced this signature.
uint64 validator_index = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 validator_index = 3
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// Signature by the validator over the block root of `slot`. // Signature by the validator over the block root of `slot`.
bytes signature = 4 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 4 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
// Signed aggregated sync committee signature object with selection proof to support light client. // Signed aggregated sync committee signature object with selection proof to
// support light client.
message SignedContributionAndProof { message SignedContributionAndProof {
ContributionAndProof message = 1; ContributionAndProof message = 1;
// Signature of the aggregator that produced `message`. // Signature of the aggregator that produced `message`.
bytes signature = 4 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 4 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
// Aggregated sync committee signature object with selection proof to support light client. // Aggregated sync committee signature object with selection proof to support
// light client.
message ContributionAndProof { message ContributionAndProof {
// Index of the aggregator that produced this proof. // Index of the aggregator that produced this proof.
uint64 aggregator_index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 aggregator_index = 1
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
SyncCommitteeContribution contribution = 2; SyncCommitteeContribution contribution = 2;
// The selection proof itself. // The selection proof itself.
bytes selection_proof = 3 [(ethereum.eth.ext.ssz_size) = "96"]; bytes selection_proof = 3 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
// Aggregated sync committee object to support light client. // Aggregated sync committee object to support light client.
message SyncCommitteeContribution { message SyncCommitteeContribution {
// Slot to which this contribution pertains. // Slot to which this contribution pertains.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// 32 byte block root for this signature. // 32 byte block root for this signature.
bytes block_root = 2 [(ethereum.eth.ext.ssz_size) = "32"]; bytes block_root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The subcommittee this contribution pertains to out of the broader sync committee. // The subcommittee this contribution pertains to out of the broader sync
// committee.
uint64 subcommittee_index = 3; uint64 subcommittee_index = 3;
// A bit is set if a signature from the validator at the corresponding // A bit is set if a signature from the validator at the corresponding
// index in the subcommittee is present in the aggregate `signature`. // index in the subcommittee is present in the aggregate `signature`.
bytes aggregation_bits = 4 [(ethereum.eth.ext.ssz_size) = "sync_committee_aggregate_bytes.size", (ethereum.eth.ext.cast_type) = "sync_committee_aggregate_bits.type"]; bytes aggregation_bits = 4 [
(ethereum.eth.ext.ssz_size) = "sync_committee_aggregate_bytes.size",
(ethereum.eth.ext.cast_type) = "sync_committee_aggregate_bits.type"
];
// Signature by the validator(s) over the block root of `slot`. // Signature by the validator(s) over the block root of `slot`.
bytes signature = 5 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 5 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/validator-client/keymanager.proto // source: proto/prysm/v1alpha1/validator-client/keymanager.proto
package validatorpb package validatorpb

View File

@@ -17,80 +17,93 @@ option php_namespace = "Ethereum\\Validator\\Accounts\\V2";
// SignRequest is a message type used by a keymanager // SignRequest is a message type used by a keymanager
// as part of Prysm's accounts v2 implementation. // as part of Prysm's accounts v2 implementation.
message SignRequest { message SignRequest {
// 48 byte public key corresponding to an associated private key // 48 byte public key corresponding to an associated private key
// being requested to sign data. // being requested to sign data.
bytes public_key = 1; bytes public_key = 1;
// Raw bytes signing root the client is requesting to sign. The client is // Raw bytes signing root the client is requesting to sign. The client is
// expected to determine these raw bytes from the appropriate BLS // expected to determine these raw bytes from the appropriate BLS
// signing domain as well as the signing root of the data structure // signing domain as well as the signing root of the data structure
// the bytes represent. // the bytes represent.
bytes signing_root = 2; bytes signing_root = 2;
// Signature domain and the beacon chain objects to allow server to verify // Signature domain and the beacon chain objects to allow server to verify
// the contents and to prevent slashing. // the contents and to prevent slashing.
bytes signature_domain = 3; bytes signature_domain = 3;
// Beacon chain objects. [100-200] // Beacon chain objects. [100-200]
oneof object { oneof object {
// Phase0 objects. // Phase0 objects.
ethereum.eth.v1alpha1.BeaconBlock block = 101; ethereum.eth.v1alpha1.BeaconBlock block = 101;
ethereum.eth.v1alpha1.AttestationData attestation_data = 102; ethereum.eth.v1alpha1.AttestationData attestation_data = 102;
ethereum.eth.v1alpha1.AggregateAttestationAndProof aggregate_attestation_and_proof = 103; ethereum.eth.v1alpha1.AggregateAttestationAndProof
ethereum.eth.v1alpha1.VoluntaryExit exit = 104; aggregate_attestation_and_proof = 103;
uint64 slot = 105 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; ethereum.eth.v1alpha1.VoluntaryExit exit = 104;
uint64 epoch = 106 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"]; uint64 slot = 105 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
uint64 epoch = 106 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Altair objects. // Altair objects.
ethereum.eth.v1alpha1.BeaconBlockAltair block_altair = 107; ethereum.eth.v1alpha1.BeaconBlockAltair block_altair = 107;
ethereum.eth.v1alpha1.SyncAggregatorSelectionData sync_aggregator_selection_data = 108; ethereum.eth.v1alpha1.SyncAggregatorSelectionData
ethereum.eth.v1alpha1.ContributionAndProof contribution_and_proof = 109; sync_aggregator_selection_data = 108;
bytes sync_message_block_root = 110; ethereum.eth.v1alpha1.ContributionAndProof contribution_and_proof = 109;
bytes sync_message_block_root = 110;
// Bellatrix objects. // Bellatrix objects.
ethereum.eth.v1alpha1.BeaconBlockBellatrix block_bellatrix = 111; ethereum.eth.v1alpha1.BeaconBlockBellatrix block_bellatrix = 111;
ethereum.eth.v1alpha1.BlindedBeaconBlockBellatrix blinded_block_bellatrix = 112; ethereum.eth.v1alpha1.BlindedBeaconBlockBellatrix blinded_block_bellatrix =
112;
// Builder objects. // Builder objects.
ethereum.eth.v1alpha1.ValidatorRegistrationV1 registration = 113; ethereum.eth.v1alpha1.ValidatorRegistrationV1 registration = 113;
// Capella objects. // Capella objects.
ethereum.eth.v1alpha1.BeaconBlockCapella block_capella = 114; ethereum.eth.v1alpha1.BeaconBlockCapella block_capella = 114;
ethereum.eth.v1alpha1.BlindedBeaconBlockCapella blinded_block_capella = 115; ethereum.eth.v1alpha1.BlindedBeaconBlockCapella blinded_block_capella = 115;
// Deneb objects. // Deneb objects.
ethereum.eth.v1alpha1.BeaconBlockDeneb block_deneb = 116; ethereum.eth.v1alpha1.BeaconBlockDeneb block_deneb = 116;
ethereum.eth.v1alpha1.BlindedBeaconBlockDeneb blinded_block_deneb = 117; ethereum.eth.v1alpha1.BlindedBeaconBlockDeneb blinded_block_deneb = 117;
// Electra objects. // Electra objects.
ethereum.eth.v1alpha1.BeaconBlockElectra block_electra = 118; ethereum.eth.v1alpha1.BeaconBlockElectra block_electra = 118;
ethereum.eth.v1alpha1.BlindedBeaconBlockElectra blinded_block_electra = 119; ethereum.eth.v1alpha1.BlindedBeaconBlockElectra blinded_block_electra = 119;
ethereum.eth.v1alpha1.AggregateAttestationAndProofElectra aggregate_attestation_and_proof_electra = 120; ethereum.eth.v1alpha1.AggregateAttestationAndProofElectra
aggregate_attestation_and_proof_electra = 120;
// Fulu objects. // Fulu objects.
ethereum.eth.v1alpha1.BeaconBlockFulu block_fulu = 121; ethereum.eth.v1alpha1.BeaconBlockFulu block_fulu = 121;
ethereum.eth.v1alpha1.BlindedBeaconBlockFulu blinded_block_fulu = 122; ethereum.eth.v1alpha1.BlindedBeaconBlockFulu blinded_block_fulu = 122;
} }
reserved 4, 5; // Reserving old, deleted fields. reserved 4, 5; // Reserving old, deleted fields.
uint64 signing_slot = 6 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"]; uint64 signing_slot = 6 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
} }
// SignResponse returned by a RemoteSigner gRPC service. // SignResponse returned by a RemoteSigner gRPC service.
message SignResponse { message SignResponse {
enum Status { enum Status {
UNKNOWN = 0; UNKNOWN = 0;
SUCCEEDED = 1; SUCCEEDED = 1;
DENIED = 2; DENIED = 2;
FAILED = 3; FAILED = 3;
} }
// BLS12-381 signature for the data specified in the request. // BLS12-381 signature for the data specified in the request.
bytes signature = 1; bytes signature = 1;
// Status of the signing response, standardized as an enum // Status of the signing response, standardized as an enum
// to ensure different remote signing servers follow the // to ensure different remote signing servers follow the
// same conventions. // same conventions.
Status status = 2; Status status = 2;
} }
// ProposerOptionPayload is a property of ProposerSettingsPayload // ProposerOptionPayload is a property of ProposerSettingsPayload
@@ -103,11 +116,15 @@ message ProposerOptionPayload {
// BuilderConfig is a property of ProposerOptionPayload // BuilderConfig is a property of ProposerOptionPayload
message BuilderConfig { message BuilderConfig {
bool enabled = 1; bool enabled = 1;
uint64 gas_limit = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/validator.Uint64"]; uint64 gas_limit = 2 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/validator.Uint64"
];
repeated string relays = 3; repeated string relays = 3;
} }
// ProposerSettingsPayload is used to unmarshal files sent from the validator flag as well as safe to bolt db bucket // ProposerSettingsPayload is used to unmarshal files sent from the validator
// flag as well as safe to bolt db bucket
message ProposerSettingsPayload { message ProposerSettingsPayload {
map<string, ProposerOptionPayload> proposer_config = 1; map<string, ProposerOptionPayload> proposer_config = 1;
ProposerOptionPayload default_config = 2; ProposerOptionPayload default_config = 2;

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/validator.proto // source: proto/prysm/v1alpha1/validator.proto
package eth package eth

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions: // versions:
// protoc-gen-go v1.31.0 // protoc-gen-go v1.33.0
// protoc v4.25.1 // protoc v3.21.7
// source: proto/prysm/v1alpha1/withdrawals.proto // source: proto/prysm/v1alpha1/withdrawals.proto
package eth package eth

View File

@@ -26,23 +26,24 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// The signed version of a BLSToExecutionChange // The signed version of a BLSToExecutionChange
message SignedBLSToExecutionChange { message SignedBLSToExecutionChange {
// The BLSToExecutionChange message itself // The BLSToExecutionChange message itself
BLSToExecutionChange message = 1; BLSToExecutionChange message = 1;
// The 96 byte BLS signature from the withdrawal address requesting the change // The 96 byte BLS signature from the withdrawal address requesting the change
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"]; bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
} }
// The message requesting a BLS to execution withdrawal credentials change // The message requesting a BLS to execution withdrawal credentials change
message BLSToExecutionChange { message BLSToExecutionChange {
// The validator index requesting the change // The validator index requesting the change
uint64 validator_index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"]; uint64 validator_index = 1
[ (ethereum.eth.ext.cast_type) =
// The public key of the BLS address requesting the change "github.com/prysmaticlabs/prysm/v5/consensus-types/"
bytes from_bls_pubkey = 2 [(ethereum.eth.ext.ssz_size) = "48"]; "primitives.ValidatorIndex" ];
// The new execution address to be the withdrawal credentials
bytes to_execution_address = 3 [(ethereum.eth.ext.ssz_size) = "20"];
}
// The public key of the BLS address requesting the change
bytes from_bls_pubkey = 2 [ (ethereum.eth.ext.ssz_size) = "48" ];
// The new execution address to be the withdrawal credentials
bytes to_execution_address = 3 [ (ethereum.eth.ext.ssz_size) = "20" ];
}

View File

@@ -12,7 +12,7 @@ extend google.protobuf.FieldOptions {
message TestMessage { message TestMessage {
string foo = 1; string foo = 1;
string bar = 2 [(ssz_size) = "32", (spec_name) = "foo"]; string bar = 2 [ (ssz_size) = "32", (spec_name) = "foo" ];
} }
message TestNestedMessage { message TestNestedMessage {
@@ -46,9 +46,7 @@ message Person {
} }
// Our address book file is just one of these. // Our address book file is just one of these.
message AddressBook { message AddressBook { repeated Person people = 1; }
repeated Person people = 1;
}
message TestSimpleMessage { message TestSimpleMessage {
bytes foo = 1; bytes foo = 1;