plugai_updsrv/deps/github.com/ledgerwatch/interfaces/p2psentinel/sentinel.proto

58 lines
1.3 KiB
Protocol Buffer

syntax = "proto3";
package sentinel;
option go_package = "./sentinel;sentinel";
import "types/types.proto";
message EmptyMessage {}
enum GossipType {
// Lightclient gossip
LightClientFinalityUpdateGossipType = 0;
LightClientOptimisticUpdateGossipType = 1;
// Legacy gossip
BeaconBlockGossipType = 2;
// Global gossip topics.
AggregateAndProofGossipType = 3;
VoluntaryExitGossipType = 4;
ProposerSlashingGossipType = 5;
AttesterSlashingGossipType = 6;
}
message GossipData {
bytes data = 1; // SSZ encoded data
GossipType type = 2;
}
message Status {
uint32 fork_digest = 1; // 4 bytes can be repressented in uint32.
types.H256 finalized_root = 2;
uint64 finalized_epoch = 3;
types.H256 head_root = 4;
uint64 head_slot = 5;
}
message PeerCount {
uint64 amount = 1;
}
message RequestData {
bytes data = 1; // SSZ encoded data
string topic = 2;
}
message ResponseData {
bytes data = 1; // prefix-stripped SSZ encoded data
bool error = 2; // did the peer encounter an error
}
service Sentinel {
rpc SubscribeGossip(EmptyMessage) returns (stream GossipData);
rpc SendRequest(RequestData) returns (ResponseData);
rpc SetStatus(Status) returns(EmptyMessage); // Set status for peer filtering.
rpc GetPeers(EmptyMessage) returns (PeerCount);
}