You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.5 KiB
65 lines
1.5 KiB
syntax = "proto3";
|
|
package message;
|
|
|
|
// ReceiverType indicates who is the receiver of this message.
|
|
enum ReceiverType {
|
|
NEWNODE = 0;
|
|
LEADER = 1;
|
|
VALIDATOR = 2;
|
|
CLIENT = 3;
|
|
}
|
|
|
|
// ServiceType indicates which service used to generate this message.
|
|
enum ServiceType {
|
|
CONSENSUS = 0;
|
|
STAKING = 1;
|
|
DRAND = 2;
|
|
}
|
|
|
|
// MessageType indicates what is the type of this message.
|
|
enum MessageType {
|
|
NEWNODE_BEACON_STAKING = 0;
|
|
ANNOUNCE = 1;
|
|
PREPARE = 2;
|
|
PREPARED = 3;
|
|
COMMIT = 4;
|
|
COMMITTED = 5;
|
|
DRAND_INIT = 6;
|
|
DRAND_COMMIT = 7;
|
|
}
|
|
|
|
// This is universal message for all communication protocols.
|
|
// There are different Requests for different message types.
|
|
// As we introduce a new type of message just add a new MessageType and new type of request in Message.
|
|
//
|
|
// The request field will be either one of the structure corresponding to the MessageType type.
|
|
message Message {
|
|
ReceiverType receiver_type = 1;
|
|
ServiceType service_type = 2;
|
|
MessageType type = 3;
|
|
bytes signature = 4;
|
|
oneof request {
|
|
StakingRequest staking = 5;
|
|
ConsensusRequest consensus = 6;
|
|
DrandRequest drand = 7;
|
|
}
|
|
}
|
|
|
|
// Staking Request from new node to beacon node.
|
|
message StakingRequest {
|
|
bytes transaction = 1;
|
|
string node_id = 2;
|
|
}
|
|
|
|
message ConsensusRequest {
|
|
uint32 consensus_id = 1;
|
|
bytes block_hash = 2;
|
|
uint32 sender_id = 3;
|
|
bytes payload = 4;
|
|
}
|
|
|
|
message DrandRequest {
|
|
uint32 sender_id = 1; // TODO: make it public key
|
|
bytes block_hash = 2;
|
|
bytes payload = 3;
|
|
} |