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

50 lines
1.2 KiB
Protocol Buffer

syntax = "proto3";
package ethereum.beacon.rpc.v1;
import "proto/sharding/p2p/v1/messages.proto";
import "proto/beacon/p2p/v1/messages.proto";
import "google/protobuf/empty.proto";
service BeaconService {
rpc LatestBeaconBlock(google.protobuf.Empty) returns (stream ethereum.beacon.p2p.v1.BeaconBlock);
rpc LatestCrystallizedState(google.protobuf.Empty) returns (stream ethereum.beacon.p2p.v1.CrystallizedState);
rpc FetchShuffledValidatorIndices(ShuffleRequest) returns (ShuffleResponse);
}
service AttesterService {
rpc SignBlock(SignRequest) returns (SignResponse);
}
service ProposerService {
rpc ProposeBlock(ProposeRequest) returns (ProposeResponse);
}
message ShuffleRequest {
bytes crystallized_state_hash = 1;
}
message ShuffleResponse {
repeated uint64 shuffled_validator_indices = 1;
repeated uint64 cutoff_indices = 2;
repeated uint64 assigned_attestation_heights = 3;
}
message ProposeRequest {
bytes randao_reveal = 1;
bytes attestation_bitmask = 2;
repeated uint32 attestation_aggregate_sig = 3;
}
message ProposeResponse {
bytes block_hash = 1;
}
message SignRequest {
bytes block_hash = 1;
ethereum.sharding.p2p.v1.Signature signature = 2;
}
message SignResponse {
bool signed = 1;
}