prysm-pulse/proto/beacon/rpc/v1/services.proto

71 lines
1.8 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
package ethereum.beacon.rpc.v1;
import "proto/beacon/p2p/v1/messages.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
service BeaconService {
rpc GenesisTimeAndCanonicalState(google.protobuf.Empty) returns (GenesisTimeAndStateResponse);
rpc CanonicalHead(google.protobuf.Empty) returns (ethereum.beacon.p2p.v1.BeaconBlock);
rpc LatestCrystallizedState(google.protobuf.Empty) returns (stream ethereum.beacon.p2p.v1.CrystallizedState);
rpc LatestAttestation(google.protobuf.Empty) returns (stream ethereum.beacon.p2p.v1.AggregatedAttestation);
}
service AttesterService {
rpc AttestHead(AttestRequest) returns (AttestResponse);
}
service ProposerService {
rpc ProposeBlock(ProposeRequest) returns (ProposeResponse);
}
service ValidatorService {
rpc ValidatorShardID(PublicKey) returns (ShardIDResponse);
rpc ValidatorIndex(PublicKey) returns (IndexResponse);
rpc ValidatorSlot(PublicKey) returns (SlotResponse);
}
message GenesisTimeAndStateResponse {
google.protobuf.Timestamp genesis_timestamp = 1;
ethereum.beacon.p2p.v1.CrystallizedState latest_crystallized_state = 2;
}
message ProposeRequest {
bytes parent_hash = 1;
uint64 slot_number = 2;
bytes randao_reveal = 3;
bytes attestation_bitmask = 4;
repeated uint32 attestation_aggregate_sig = 5;
google.protobuf.Timestamp timestamp = 6;
}
message ProposeResponse {
bytes block_hash = 1;
}
message AttestRequest {
ethereum.beacon.p2p.v1.AggregatedAttestation attestation = 1;
}
message AttestResponse {
bytes attestation_hash = 1;
}
message PublicKey {
uint64 public_key = 1;
}
message ShardIDResponse {
uint64 shard_id = 1;
}
message IndexResponse {
uint32 index = 1;
}
message SlotResponse {
uint64 slot = 1;
}