2019-08-14 19:16:17 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package ethereum.eth.v1alpha1;
|
|
|
|
|
|
|
|
import "google/protobuf/empty.proto";
|
|
|
|
import "proto/eth/v1alpha1/beacon_block.proto";
|
|
|
|
import "proto/eth/v1alpha1/attestation.proto";
|
|
|
|
|
|
|
|
option go_package = "github.com/prysmaticlabs/prysm/proto/eth/v1alpha1;eth";
|
|
|
|
|
|
|
|
// Slasher service API
|
|
|
|
//
|
|
|
|
// Slasher service provides an interface for validators and beacon chain server to query
|
|
|
|
// and subscribe for slashable events on the network as well as to make sure that the
|
|
|
|
// attestation or proposal they are going to submit to the network are not going to
|
|
|
|
// produce a slashable event.
|
|
|
|
service Slasher {
|
|
|
|
// Gets AttesterSlashing container if the attestation that
|
|
|
|
// was received produces a slashable event.
|
|
|
|
rpc IsSlashableAttestation(ethereum.eth.v1alpha1.Attestation) returns (ethereum.eth.v1alpha1.AttesterSlashing);
|
|
|
|
|
|
|
|
// Gets ProposerSlashing container if the block header that
|
|
|
|
// was received produces a slashable event.
|
2019-09-26 16:29:10 +00:00
|
|
|
rpc IsSlashableBlock(ProposerSlashingRequest) returns (ProposerSlashingResponse);
|
2019-08-14 19:16:17 +00:00
|
|
|
|
|
|
|
// Subscription to receive all slashable proposer slashing events found by the watchtower.
|
|
|
|
rpc SlashableProposals(google.protobuf.Empty) returns (stream ethereum.eth.v1alpha1.ProposerSlashing);
|
|
|
|
|
|
|
|
// Subscription to receive all slashable attester slashing events found by the watchtower.
|
|
|
|
rpc SlashableAttestations(google.protobuf.Empty) returns (stream ethereum.eth.v1alpha1.AttesterSlashing);
|
|
|
|
}
|
2019-10-19 03:35:09 +00:00
|
|
|
|
|
|
|
message ValidatorIDToIdxAtt {
|
|
|
|
repeated uint64 indices = 1 ;
|
|
|
|
bytes data_root = 2;
|
|
|
|
// 96 bytes aggregate signature.
|
|
|
|
bytes signature = 3;
|
|
|
|
}
|
|
|
|
message ValidatorIDToIdxAttList {
|
|
|
|
repeated ValidatorIDToIdxAtt indicesList = 1 ;
|
|
|
|
}
|
|
|
|
|
2019-09-26 16:29:10 +00:00
|
|
|
message ProposerSlashingRequest {
|
|
|
|
ethereum.eth.v1alpha1.BeaconBlockHeader block_header=1;
|
|
|
|
uint64 validator_index=2;
|
|
|
|
}
|
|
|
|
message ProposerSlashingResponse {
|
|
|
|
repeated ethereum.eth.v1alpha1.ProposerSlashing proposer_slashing=1;
|
2019-10-19 03:35:09 +00:00
|
|
|
}
|