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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/dbval/dbval.proto
package dbval

View File

@@ -4,20 +4,25 @@ package ethereum.eth.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
// the origin block used to checkpoint sync a node. There is only one BackfillStatus value in the database.
// BackfillStatus is a value used to keep track of the progress of the process
// 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 {
// low_slot is the slot of the last block that backfill will attempt to download and import.
// This is determined by MIN_EPOCHS_FOR_BLOCK_REQUESTS, or by a user-specified override.
uint64 low_slot = 1;
// low_root is the root of the last block that backfill will attempt to download and import.
bytes low_root = 2;
// low_parent_root is the parent_root of the block at low_root. This enables the backfill service to check
// that a block is the direct ancestor of the block for low_root without an additional db lookup.
bytes low_parent_root = 3;
// origin_slot is the slot of the origin block, which is the block used to 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;
// low_slot is the slot of the last block that backfill will attempt to
// download and import. This is determined by MIN_EPOCHS_FOR_BLOCK_REQUESTS,
// or by a user-specified override.
uint64 low_slot = 1;
// low_root is the root of the last block that backfill will attempt to
// download and import.
bytes low_root = 2;
// low_parent_root is the parent_root of the block at low_root. This enables
// the backfill service to check that a block is the direct ancestor of the
// block for low_root without an additional db lookup.
bytes low_parent_root = 3;
// origin_slot is the slot of the origin block, which is the block used to
// 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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/engine/v1/electra.proto
package enginev1

View File

@@ -25,52 +25,59 @@ option java_outer_classname = "ElectraProto";
option java_package = "org.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
// new in Electra
// WithdrawalRequest is the message from the execution layer to trigger the
// withdrawal of a validator's balance to its withdrawal address new in Electra
message WithdrawalRequest {
// The execution address receiving the funds
bytes source_address = 1 [(ethereum.eth.ext.ssz_size) = "20"];
// The execution address receiving the funds
bytes source_address = 1 [ (ethereum.eth.ext.ssz_size) = "20" ];
// 48 byte BLS public key of the validator.
bytes validator_pubkey = 2 [(ethereum.eth.ext.ssz_size) = "48"];
// 48 byte BLS public key of the validator.
bytes validator_pubkey = 2 [ (ethereum.eth.ext.ssz_size) = "48" ];
// Deposit amount in gwei.
uint64 amount = 3;
// Deposit amount in gwei.
uint64 amount = 3;
}
// DepositRequest is the message from the execution layer to trigger the deposit of a validator's balance to its balance
// new in Electra
// DepositRequest is the message from the execution layer to trigger the deposit
// of a validator's balance to its balance new in Electra
message DepositRequest {
bytes pubkey = 1 [(ethereum.eth.ext.ssz_size) = "48"];
bytes withdrawal_credentials = 2 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 amount = 3;
bytes signature = 4 [(ethereum.eth.ext.ssz_size) = "96"];
uint64 index = 5;
bytes pubkey = 1 [ (ethereum.eth.ext.ssz_size) = "48" ];
bytes withdrawal_credentials = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 amount = 3;
bytes signature = 4 [ (ethereum.eth.ext.ssz_size) = "96" ];
uint64 index = 5;
}
// ConsolidationRequest is the message from the execution layer to trigger the consolidation of one
// validator to another validator.
// ConsolidationRequest is the message from the execution layer to trigger the
// consolidation of one validator to another validator.
message ConsolidationRequest {
// Source address of account which originated the request.
bytes source_address = 1 [(ethereum.eth.ext.ssz_size) = "20"];
// Funds will be moved from this public key.
bytes source_pubkey = 2 [(ethereum.eth.ext.ssz_size) = "48"];
// Funds will be moved to this public key.
bytes target_pubkey = 3 [(ethereum.eth.ext.ssz_size) = "48"];
// Source address of account which originated the request.
bytes source_address = 1 [ (ethereum.eth.ext.ssz_size) = "20" ];
// Funds will be moved from this public key.
bytes source_pubkey = 2 [ (ethereum.eth.ext.ssz_size) = "48" ];
// Funds will be moved to this public key.
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 {
repeated DepositRequest deposits = 1 [(ethereum.eth.ext.ssz_max) = "max_deposit_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"];
repeated DepositRequest deposits = 1
[ (ethereum.eth.ext.ssz_max) = "max_deposit_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 {
ExecutionPayloadDeneb payload = 1;
bytes value = 2;
BlobsBundle blobs_bundle = 3;
bool should_override_builder = 4;
repeated bytes execution_requests = 5;
ExecutionPayloadDeneb payload = 1;
bytes value = 2;
BlobsBundle blobs_bundle = 3;
bool should_override_builder = 4;
repeated bytes execution_requests = 5;
}

View File

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

View File

@@ -25,206 +25,232 @@ option java_package = "org.ethereum.engine.v1";
option php_namespace = "Ethereum\\Engine\\v1";
message ExecutionPayload {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"];
bytes state_root = 3 [(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 prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 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"];
bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [ (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 prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 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"
];
}
message ExecutionPayloadCapella {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"];
bytes state_root = 3 [(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 prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 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"];
// MAX_WITHDRAWALS_PER_PAYLOAD
repeated Withdrawal withdrawals = 15 [(ethereum.eth.ext.ssz_max) = "withdrawal.size"]; // New in Capella.
bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [ (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 prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 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"
];
// MAX_WITHDRAWALS_PER_PAYLOAD
repeated Withdrawal withdrawals = 15
[ (ethereum.eth.ext.ssz_max) = "withdrawal.size" ]; // New in Capella.
}
message ExecutionPayloadDeneb {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"];
bytes state_root = 3 [(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 prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 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"];
// 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;
bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [ (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 prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 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"
];
// 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 {
ExecutionPayloadCapella payload = 1;
bytes value = 2;
ExecutionPayloadCapella payload = 1;
bytes value = 2;
}
message ExecutionPayloadDenebWithValueAndBlobsBundle {
ExecutionPayloadDeneb payload = 1;
bytes value = 2;
BlobsBundle blobs_bundle = 3;
bool should_override_builder = 4;
ExecutionPayloadDeneb payload = 1;
bytes value = 2;
BlobsBundle blobs_bundle = 3;
bool should_override_builder = 4;
}
message ExecutionPayloadHeader {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"];
bytes state_root = 3 [(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 prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 block_hash = 13 [(ethereum.eth.ext.ssz_size) = "32"];
bytes transactions_root = 14 [(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 state_root = 3 [ (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 prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 block_hash = 13 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes transactions_root = 14 [ (ethereum.eth.ext.ssz_size) = "32" ];
}
message ExecutionPayloadHeaderCapella {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"];
bytes state_root = 3 [(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 prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 block_hash = 13 [(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 parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [ (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 prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 block_hash = 13 [ (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.
}
message ExecutionPayloadHeaderDeneb {
bytes parent_hash = 1 [(ethereum.eth.ext.ssz_size) = "32"];
bytes fee_recipient = 2 [(ethereum.eth.ext.ssz_size) = "20"];
bytes state_root = 3 [(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 prev_randao = 6 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 block_hash = 13 [(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"];
uint64 blob_gas_used = 16;
uint64 excess_blob_gas = 17;
bytes parent_hash = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes fee_recipient = 2 [ (ethereum.eth.ext.ssz_size) = "20" ];
bytes state_root = 3 [ (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 prev_randao = 6 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 block_number = 7;
uint64 gas_limit = 8;
uint64 gas_used = 9;
uint64 timestamp = 10;
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 block_hash = 13 [ (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" ];
uint64 blob_gas_used = 16;
uint64 excess_blob_gas = 17;
}
message PayloadAttributes {
uint64 timestamp = 1;
bytes prev_randao = 2 [(ethereum.eth.ext.ssz_size) = "32"];
bytes suggested_fee_recipient = 3 [(ethereum.eth.ext.ssz_size) = "20"];
uint64 timestamp = 1;
bytes prev_randao = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes suggested_fee_recipient = 3 [ (ethereum.eth.ext.ssz_size) = "20" ];
}
message PayloadAttributesV2 {
uint64 timestamp = 1;
bytes prev_randao = 2 [(ethereum.eth.ext.ssz_size) = "32"];
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.
uint64 timestamp = 1;
bytes prev_randao = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
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.
}
message PayloadAttributesV3 {
uint64 timestamp = 1;
bytes prev_randao = 2 [(ethereum.eth.ext.ssz_size) = "32"];
bytes suggested_fee_recipient = 3 [(ethereum.eth.ext.ssz_size) = "20"];
repeated Withdrawal withdrawals = 4 [(ethereum.eth.ext.ssz_max) = "withdrawal.size"];
bytes parent_beacon_block_root = 5 [(ethereum.eth.ext.ssz_size) = "32"];
uint64 timestamp = 1;
bytes prev_randao = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
bytes suggested_fee_recipient = 3 [ (ethereum.eth.ext.ssz_size) = "20" ];
repeated Withdrawal withdrawals = 4
[ (ethereum.eth.ext.ssz_max) = "withdrawal.size" ];
bytes parent_beacon_block_root = 5 [ (ethereum.eth.ext.ssz_size) = "32" ];
}
message PayloadStatus {
Status status = 1;
bytes latest_valid_hash = 2 [(ethereum.eth.ext.ssz_size) = "32"];
string validation_error = 3;
enum Status {
UNKNOWN = 0;
VALID = 1;
INVALID = 2;
SYNCING = 3;
ACCEPTED = 4;
INVALID_BLOCK_HASH = 5;
}
Status status = 1;
bytes latest_valid_hash = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
string validation_error = 3;
enum Status {
UNKNOWN = 0;
VALID = 1;
INVALID = 2;
SYNCING = 3;
ACCEPTED = 4;
INVALID_BLOCK_HASH = 5;
}
}
message ForkchoiceState {
bytes head_block_hash = 1 [(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 head_block_hash = 1 [ (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" ];
}
// The withdrawal receipt with the recipient address and amount withdrawn
message Withdrawal {
// Withdrawal index for accounting purposes
uint64 index = 1;
// Withdrawal index for accounting purposes
uint64 index = 1;
// Validator index for the withdrawal
uint64 validator_index = 2 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"];
// Validator index for the withdrawal
uint64 validator_index = 2
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// The execution address receiving the funds
bytes address = 3 [(ethereum.eth.ext.ssz_size) = "20"];
// The execution address receiving the funds
bytes address = 3 [ (ethereum.eth.ext.ssz_size) = "20" ];
// The withdrawn amount in Gwei
uint64 amount = 4;
// The withdrawn amount in Gwei
uint64 amount = 4;
}
// 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 {
// 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"];
// 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"
];
// The proofs of the blobs.
repeated bytes proofs = 2 [(ethereum.eth.ext.ssz_size) = "?,48", (ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"];
// The proofs of the blobs.
repeated bytes proofs = 2 [
(ethereum.eth.ext.ssz_size) = "?,48",
(ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"
];
// The blobs itself.
repeated bytes blobs = 3 [(ethereum.eth.ext.ssz_size) = "?,blob.size", (ethereum.eth.ext.ssz_max) = "max_blob_commitments.size"];
// The blobs itself.
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.
message Blob {
// The blob bytes.
bytes data = 1 [(ethereum.eth.ext.ssz_size) = "blob.size"];
// The blob bytes.
bytes data = 1 [ (ethereum.eth.ext.ssz_size) = "blob.size" ];
}
message BlobAndProof {
bytes blob = 1 [(ethereum.eth.ext.ssz_size) = "blob.size"];
bytes kzg_proof = 2 [(ethereum.eth.ext.ssz_size) = "48"];
bytes blob = 1 [ (ethereum.eth.ext.ssz_size) = "blob.size" ];
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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/eth/ext/options.proto
package ext

View File

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

View File

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

View File

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

View File

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

View File

@@ -27,7 +27,8 @@ option php_namespace = "Ethereum\\Eth\\v1";
// Beacon State API related messages.
message StateRequest {
// 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>.
bytes state_id = 1;
// 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>.
bytes state_id = 1;
}

View File

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

View File

@@ -27,22 +27,25 @@ option php_namespace = "Ethereum\\Eth\\v1";
message EventHead {
// 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.
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.
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.
bool epoch_transition = 4;
// 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.
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.
bool execution_optimistic = 7;
@@ -50,10 +53,13 @@ message EventHead {
message EventBlock {
// 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.
bytes block = 2 [(ethereum.eth.ext.ssz_size) = "32"];
bytes block = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Information about optimistic sync.
bool execution_optimistic = 3;
@@ -61,25 +67,31 @@ message EventBlock {
message EventChainReorg {
// 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.
uint64 depth = 2;
// 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.
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.
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.
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.
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.
bool execution_optimistic = 8;
@@ -87,13 +99,16 @@ message EventChainReorg {
message EventFinalizedCheckpoint {
// 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.
bytes state = 2 [(ethereum.eth.ext.ssz_size) = "32"];
bytes state = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// 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.
bool execution_optimistic = 4;

View File

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

View File

@@ -33,7 +33,8 @@ message Peer {
// The address of the peer, as a full multiaddr, for example:
// /ip4/37.221.192.134/tcp/13000/p2p/16Uiu2HAm8maLMjag1TAUM52zPfmLbVMGFdwUAWgoHu1HDQLR6e17
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;
// The direction of the connection (inbound/outbound).
PeerDirection direction = 5;

View File

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

View File

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

View File

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

View File

@@ -29,64 +29,82 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// ----------------------------------------------------------------------------
message SignedAggregateAttestationAndProof {
// The aggregated attestation and selection proof itself.
AggregateAttestationAndProof message = 1;
// The aggregated attestation and selection proof itself.
AggregateAttestationAndProof message = 1;
// 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"];
// 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
}
message AggregateAttestationAndProof {
// 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"];
// 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" ];
// The aggregated attestation that was submitted.
Attestation aggregate = 3;
// The aggregated attestation that was submitted.
Attestation aggregate = 3;
// 96 byte selection proof signed by the aggregator, which is the signature of the slot to aggregate.
bytes selection_proof = 2 [(ethereum.eth.ext.ssz_size) = "96"];
// 96 byte selection proof signed by the aggregator, which is the signature of
// the slot to aggregate.
bytes selection_proof = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
}
message Attestation {
// A bitfield representation of validator indices that have voted exactly
// 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"];
// A bitfield representation of validator indices that have voted exactly
// 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"
];
AttestationData data = 2;
AttestationData data = 2;
// 96 byte BLS aggregate signature.
bytes signature = 3 [(ethereum.eth.ext.ssz_size) = "96"];
// 96 byte BLS aggregate signature.
bytes signature = 3 [ (ethereum.eth.ext.ssz_size) = "96" ];
}
message AttestationData {
// Attestation data includes information on Casper the Friendly Finality Gadget's votes
// See: https://arxiv.org/pdf/1710.09437.pdf
// Attestation data includes information on Casper the Friendly Finality
// Gadget's votes See: https://arxiv.org/pdf/1710.09437.pdf
// Slot of the attestation attesting for.
uint64 slot = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"];
// Slot of the attestation attesting for.
uint64 slot = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
// 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"];
// 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" ];
// 32 byte root of the LMD GHOST block vote.
bytes beacon_block_root = 3 [(ethereum.eth.ext.ssz_size) = "32"];
// 32 byte root of the LMD GHOST block vote.
bytes beacon_block_root = 3 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The most recent justified checkpoint in the beacon state
Checkpoint source = 4;
// The most recent justified checkpoint in the beacon state
Checkpoint source = 4;
// The checkpoint attempting to be justified for the current epoch and its epoch boundary block
Checkpoint target = 5;
// The checkpoint attempting to be justified for the current epoch and its
// epoch boundary block
Checkpoint target = 5;
}
message Checkpoint {
// A checkpoint is every epoch's first slot. The goal of Casper FFG
// is to link the check points together for justification and finalization.
// A checkpoint is every epoch's first slot. The goal of Casper FFG
// is to link the check points together for justification and finalization.
// Epoch the checkpoint references.
uint64 epoch = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"];
// Epoch the checkpoint references.
uint64 epoch = 1 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
// Block root of the checkpoint references.
bytes root = 2 [(ethereum.eth.ext.ssz_size) = "32"];
// Block root of the checkpoint references.
bytes root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
}
// ----------------------------------------------------------------------------
@@ -94,60 +112,79 @@ message Checkpoint {
// ----------------------------------------------------------------------------
message SignedAggregateAttestationAndProofElectra {
// The aggregated attestation and selection proof itself.
AggregateAttestationAndProofElectra message = 1;
// The aggregated attestation and selection proof itself.
AggregateAttestationAndProofElectra message = 1;
// 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"];
// 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
}
message AggregateAttestationAndProofElectra {
// 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"];
// 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" ];
// The aggregated attestation that was submitted.
AttestationElectra aggregate = 3;
// The aggregated attestation that was submitted.
AttestationElectra aggregate = 3;
// 96 byte selection proof signed by the aggregator, which is the signature of the slot to aggregate.
bytes selection_proof = 2 [(ethereum.eth.ext.ssz_size) = "96"];
// 96 byte selection proof signed by the aggregator, which is the signature of
// the slot to aggregate.
bytes selection_proof = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
}
message AttestationElectra {
// A bitfield representation of validator indices that have voted exactly
// 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"];
// A bitfield representation of validator indices that have voted exactly
// 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"
];
AttestationData data = 2;
AttestationData data = 2;
// 96 byte BLS aggregate signature.
bytes signature = 3 [(ethereum.eth.ext.ssz_size) = "96"];
// 96 byte BLS aggregate signature.
bytes signature = 3 [ (ethereum.eth.ext.ssz_size) = "96" ];
// 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"];
// 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"
];
}
message SignedAggregateAttestationAndProofSingle {
// The aggregated attestation and selection proof itself.
AggregateAttestationAndProofSingle message = 1;
// The aggregated attestation and selection proof itself.
AggregateAttestationAndProofSingle message = 1;
// 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"];
// 96 byte BLS aggregate signature signed by the aggregator over the message.
bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
}
message AggregateAttestationAndProofSingle {
// 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"];
// 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" ];
// The aggregated attestation that was submitted.
SingleAttestation aggregate = 3;
// The aggregated attestation that was submitted.
SingleAttestation aggregate = 3;
// 96 byte selection proof signed by the aggregator, which is the signature of the slot to aggregate.
bytes selection_proof = 2 [(ethereum.eth.ext.ssz_size) = "96"];
// 96 byte selection proof signed by the aggregator, which is the signature of
// the slot to aggregate.
bytes selection_proof = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
}
message SingleAttestation {
uint64 committee_id = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.CommitteeIndex"];
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"];
uint64 committee_id = 1 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/"
"consensus-types/primitives.CommitteeIndex" ];
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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/prysm/v1alpha1/beacon_block.proto
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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/prysm/v1alpha1/beacon_chain.proto
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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/prysm/v1alpha1/beacon_state.proto
package eth

View File

@@ -23,63 +23,96 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
message BeaconState {
// Versioning [1001-2000]
uint64 genesis_time = 1001;
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"];
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"
];
Fork fork = 1004;
// History [2001-3000]
BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"];
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"];
repeated bytes block_roots = 2002
[ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
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]
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;
// Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated Validator validators = 4001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// 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]
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]
repeated PendingAttestation previous_epoch_attestations = 7001 [(ethereum.eth.ext.ssz_max) = "previous_epoch_attestations.max"];
repeated PendingAttestation current_epoch_attestations = 7002 [(ethereum.eth.ext.ssz_max) = "current_epoch_attestations.max"];
repeated PendingAttestation previous_epoch_attestations = 7001
[ (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]
// 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 current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004;
}
message Fork {
bytes previous_version = 1 [(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"];
bytes previous_version = 1 [ (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"
];
}
message PendingAttestation {
// Bitfield representation of validator indices that have voted exactly
// 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;
// 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.
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 {
repeated bytes block_roots = 1 [(ethereum.eth.ext.ssz_size) = "block_roots.size"];
repeated bytes state_roots = 2 [(ethereum.eth.ext.ssz_size) = "state_roots.size"];
repeated bytes block_roots = 1
[ (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
@@ -88,29 +121,34 @@ message HistoricalBatch {
// and blocks.
message StateSummary {
// 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.
bytes root = 2;
}
message SigningData {
// 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.
bytes domain = 2 [(ethereum.eth.ext.ssz_size) = "32"];
bytes domain = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
}
message ForkData {
// 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.
bytes genesis_validators_root = 2 [(ethereum.eth.ext.ssz_size) = "32"];
bytes genesis_validators_root = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
}
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;
// 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;
// Validators that were active at that check point.
repeated uint64 active_indices = 3;
@@ -120,28 +158,31 @@ message CheckPtInfo {
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 {
// 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.
bytes withdrawal_credentials = 2 [(ethereum.eth.ext.ssz_size) = "32"];
bytes withdrawal_credentials = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// Deposit amount in gwei.
uint64 amount = 3;
}
// PowBlock is a definition from Bellatrix fork choice spec to represent a block with total difficulty in the PoW chain.
// Spec:
// class PowBlock(Container):
// PowBlock is a definition from Bellatrix fork choice spec to represent a block
// with total difficulty in the PoW chain. Spec: class PowBlock(Container):
// block_hash: Hash32
// parent_hash: Hash32
// total_difficulty: uint256
message PowBlock {
bytes block_hash = 1 [(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 block_hash = 1 [ (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" ];
}
// ----------------------------------------------------------------------------
@@ -149,62 +190,91 @@ message PowBlock {
// ----------------------------------------------------------------------------
// 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 {
// Versioning [1001-2000]
uint64 genesis_time = 1001;
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"];
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"
];
Fork fork = 1004;
// History [2001-3000]
BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"];
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"];
repeated bytes block_roots = 2002
[ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
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]
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;
// Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated Validator validators = 4001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// 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]
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]
bytes previous_epoch_participation = 7001 [(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]
bytes previous_epoch_participation = 7001 [
(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]
// 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 current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004;
// New Altair fields [9001-10000]
repeated uint64 inactivity_scores = 9001 [(ethereum.eth.ext.ssz_max) = "1099511627776"]; // [New in Altair]
SyncCommittee current_sync_committee = 9002; // [New in Altair]
SyncCommittee next_sync_committee = 9003; // [New in Altair]
repeated uint64 inactivity_scores = 9001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ]; // [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 {
repeated bytes pubkeys = 1 [(ethereum.eth.ext.ssz_size) = "sync_committee_bits.size,48"];
bytes aggregate_pubkey = 2 [(ethereum.eth.ext.ssz_size) = "48"];
repeated bytes pubkeys = 1
[ (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 {
// 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.
uint64 subcommittee_index = 2;
}
@@ -216,49 +286,70 @@ message SyncAggregatorSelectionData {
message BeaconStateBellatrix {
// Versioning [1001-2000]
uint64 genesis_time = 1001;
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"];
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"
];
Fork fork = 1004;
// History [2001-3000]
BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"];
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"];
repeated bytes block_roots = 2002
[ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
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]
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;
// Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated Validator validators = 4001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// 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]
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]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes previous_epoch_participation = 7001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000]
// 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 current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004;
// 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 next_sync_committee = 9003;
// 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 {
// Versioning [1001-2000]
uint64 genesis_time = 1001;
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"];
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"
];
Fork fork = 1004;
// History [2001-3000]
BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"];
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"];
repeated bytes block_roots = 2002
[ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
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]
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;
// Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated Validator validators = 4001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// 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]
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]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes previous_epoch_participation = 7001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000]
// 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 current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004;
// 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 next_sync_committee = 9003;
// 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]
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]
repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"]; // [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]
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 {
bytes block_summary_root = 1 [(ethereum.eth.ext.ssz_size) = "32"];
bytes state_summary_root = 2 [(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" ];
}
// ----------------------------------------------------------------------------
@@ -331,54 +448,79 @@ message HistoricalSummary {
message BeaconStateDeneb {
// Versioning [1001-2000]
uint64 genesis_time = 1001;
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"];
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"
];
Fork fork = 1004;
// History [2001-3000]
BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"];
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"];
repeated bytes block_roots = 2002
[ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
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]
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;
// Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated Validator validators = 4001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// 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]
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]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes previous_epoch_participation = 7001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000]
// 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 current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004;
// 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 next_sync_committee = 9003;
// 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]
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"];
repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"];
uint64 next_withdrawal_validator_index = 11002
[ (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 {
// Versioning [1001-2000]
uint64 genesis_time = 1001;
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"];
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"
];
Fork fork = 1004;
// History [2001-3000]
BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"];
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"];
repeated bytes block_roots = 2002
[ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
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]
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;
// Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated Validator validators = 4001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// 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]
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]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes previous_epoch_participation = 7001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000]
// 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 current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004;
// 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 next_sync_committee = 9003;
// 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]
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"];
repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"];
uint64 next_withdrawal_validator_index = 11002
[ (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]
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 exit_balance_to_consume = 12003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"];
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"];
uint64 deposit_balance_to_consume = 12002 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
];
uint64 exit_balance_to_consume = 12003 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
];
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 {
// Versioning [1001-2000]
uint64 genesis_time = 1001;
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"];
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"
];
Fork fork = 1004;
// History [2001-3000]
BeaconBlockHeader latest_block_header = 2001;
repeated bytes block_roots = 2002 [(ethereum.eth.ext.ssz_size) = "block_roots.size"];
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"];
repeated bytes block_roots = 2002
[ (ethereum.eth.ext.ssz_size) = "block_roots.size" ];
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]
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;
// Registry [4001-5000]
repeated Validator validators = 4001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated uint64 balances = 4002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
repeated Validator validators = 4001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
repeated uint64 balances = 4002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// 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]
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]
bytes previous_epoch_participation = 7001 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes current_epoch_participation = 7002 [(ethereum.eth.ext.ssz_max) = "1099511627776"];
bytes previous_epoch_participation = 7001
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
bytes current_epoch_participation = 7002
[ (ethereum.eth.ext.ssz_max) = "1099511627776" ];
// Finality [8001-9000]
// 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 current_justified_checkpoint = 8003;
Checkpoint finalized_checkpoint = 8004;
// 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 next_sync_committee = 9003;
// 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]
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"];
repeated HistoricalSummary historical_summaries = 11003 [(ethereum.eth.ext.ssz_max) = "16777216"];
uint64 next_withdrawal_validator_index = 11002
[ (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]
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 exit_balance_to_consume = 12003 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"];
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"];
uint64 deposit_balance_to_consume = 12002 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
];
uint64 exit_balance_to_consume = 12003 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Gwei"
];
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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/prysm/v1alpha1/blobs.proto
package eth

View File

@@ -25,26 +25,32 @@ option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1";
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 {
BlindedBlobSidecar message = 1;
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"];
bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
}
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 slot = 3 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"];
bytes block_parent_root = 4 [(ethereum.eth.ext.ssz_size) = "32"];
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"];
uint64 slot = 3 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Slot"
];
bytes block_parent_root = 4 [ (ethereum.eth.ext.ssz_size) = "32" ];
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 {
bytes block_root = 1 [(ethereum.eth.ext.ssz_size) = "32"];
bytes block_root = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 index = 2;
}

View File

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

View File

@@ -25,17 +25,27 @@ option java_outer_classname = "DataColumnsProto";
option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1";
message DataColumnSidecar {
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 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"];
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 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;
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 {
bytes block_root = 1 [(ethereum.eth.ext.ssz_size) = "32"];
bytes block_root = 1 [ (ethereum.eth.ext.ssz_size) = "32" ];
uint64 column_index = 2;
}

View File

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

View File

@@ -25,33 +25,48 @@ option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1";
message PendingDeposit {
// 48 byte BLS public key of the validator.
bytes public_key = 1 [(ethereum.eth.ext.ssz_size) = "48", (ethereum.eth.ext.spec_name) = "pubkey"];
// 48 byte BLS public key of the validator.
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.
bytes withdrawal_credentials = 2 [(ethereum.eth.ext.ssz_size) = "32"];
// A 32 byte hash of the withdrawal address public key.
bytes withdrawal_credentials = 2 [ (ethereum.eth.ext.ssz_size) = "32" ];
// The amount of the deposit (gwei).
uint64 amount = 3;
// 96 byte BLS signature from the validator that produced this block.
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"];
// The amount of the deposit (gwei).
uint64 amount = 3;
// 96 byte BLS signature from the validator that produced this block.
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"
];
}
message PendingPartialWithdrawal {
// Validator index for the withdrawal.
uint64 index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"];
// Validator index for the withdrawal.
uint64 index = 1 [ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// The amount of the withdrawal (gwei).
uint64 amount = 2;
// The amount of the withdrawal (gwei).
uint64 amount = 2;
// 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"];
// 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"
];
}
message PendingConsolidation {
// 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"];
// 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"];
// 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" ];
// 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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/prysm/v1alpha1/finalized_block_root_container.proto
package eth

View File

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

View File

@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/prysm/v1alpha1/health.proto
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
// such being able to stream logs via gRPC.
service Health {
rpc StreamBeaconLogs(google.protobuf.Empty) returns (stream LogsResponse) {
option (google.api.http) = {
get: "/eth/v1alpha1/health/logs/stream"
};
}
rpc StreamBeaconLogs(google.protobuf.Empty) returns (stream LogsResponse) {
option (google.api.http) = {
get : "/eth/v1alpha1/health/logs/stream"
};
}
}
message LogsResponse {
repeated string logs = 1;
}
message LogsResponse { repeated string logs = 1; }

View File

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

View File

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

View File

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

View File

@@ -13,23 +13,35 @@ option java_package = "org.ethereum.eth.v1alpha1";
option php_namespace = "Ethereum\\Eth\\v1alpha1";
message Status {
bytes fork_digest = 1 [(ethereum.eth.ext.ssz_size) = "4"];
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"];
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"];
bytes fork_digest = 1 [ (ethereum.eth.ext.ssz_size) = "4" ];
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"
];
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 {
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 step = 3;
}
message ENRForkID {
bytes current_fork_digest = 1 [(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"];
bytes current_fork_digest = 1 [ (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"
];
}
/*
@@ -42,7 +54,11 @@ message ENRForkID {
*/
message MetaDataV0 {
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 {
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 syncnets = 3 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"];
bytes attnets = 2 [
(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 {
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 syncnets = 3 [(ethereum.eth.ext.ssz_size) = "1", (ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/go-bitfield.Bitvector4"];
bytes attnets = 2 [
(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;
}
@@ -85,7 +117,10 @@ message MetaDataV2 {
)
*/
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;
}
@@ -98,7 +133,10 @@ Spec Definition:
)
*/
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;
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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/prysm/v1alpha1/powchain.proto
package eth

View File

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

View File

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

View File

@@ -26,10 +26,12 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
message HighestAttestation {
uint64 validator_index = 1;
uint64 highest_source_epoch = 2
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch" ];
uint64 highest_target_epoch = 3
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch" ];
uint64 highest_source_epoch = 2 [
(ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.Epoch"
];
uint64 highest_target_epoch = 3 [
(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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/prysm/v1alpha1/sync_committee.proto
package eth

View File

@@ -27,52 +27,69 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// Sync committee object to support light client.
message SyncCommitteeMessage {
// 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.
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.
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`.
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 {
ContributionAndProof message = 1;
// 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 {
// 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;
// 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.
message SyncCommitteeContribution {
// 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.
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;
// A bit is set if a signature from the validator at the corresponding
// 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`.
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.
// versions:
// protoc-gen-go v1.31.0
// protoc v4.25.1
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: proto/prysm/v1alpha1/validator-client/keymanager.proto
package validatorpb

View File

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

View File

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

View File

@@ -26,23 +26,24 @@ option php_namespace = "Ethereum\\Eth\\v1alpha1";
// The signed version of a BLSToExecutionChange
message SignedBLSToExecutionChange {
// The BLSToExecutionChange message itself
BLSToExecutionChange message = 1;
// The BLSToExecutionChange message itself
BLSToExecutionChange message = 1;
// The 96 byte BLS signature from the withdrawal address requesting the change
bytes signature = 2 [(ethereum.eth.ext.ssz_size) = "96"];
// The 96 byte BLS signature from the withdrawal address requesting the change
bytes signature = 2 [ (ethereum.eth.ext.ssz_size) = "96" ];
}
// The message requesting a BLS to execution withdrawal credentials change
message BLSToExecutionChange {
// The validator index requesting the change
uint64 validator_index = 1 [(ethereum.eth.ext.cast_type) = "github.com/prysmaticlabs/prysm/v5/consensus-types/primitives.ValidatorIndex"];
// 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"];
}
// The validator index requesting the change
uint64 validator_index = 1
[ (ethereum.eth.ext.cast_type) =
"github.com/prysmaticlabs/prysm/v5/consensus-types/"
"primitives.ValidatorIndex" ];
// 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 {
string foo = 1;
string bar = 2 [(ssz_size) = "32", (spec_name) = "foo"];
string bar = 2 [ (ssz_size) = "32", (spec_name) = "foo" ];
}
message TestNestedMessage {
@@ -46,9 +46,7 @@ message Person {
}
// Our address book file is just one of these.
message AddressBook {
repeated Person people = 1;
}
message AddressBook { repeated Person people = 1; }
message TestSimpleMessage {
bytes foo = 1;