syntax = "proto3"; import "google/protobuf/empty.proto"; package controller; service Transactions { rpc NodeRegister(NodeRegisterRequest) returns (google.protobuf.Empty); rpc CommitDkg(CommitDkgRequest) returns (google.protobuf.Empty); rpc PostProcessDkg(PostProcessDkgRequest) returns (google.protobuf.Empty); rpc Mine(MineRequest) returns (MineReply); } message NodeRegisterRequest { string id_address = 1; bytes id_public_key = 2; } message CommitDkgRequest { string id_address = 1; uint32 group_index = 2; uint32 group_epoch = 3; bytes public_key = 4; bytes partial_public_key = 5; repeated string disqualified_nodes = 6; } message PostProcessDkgRequest { string id_address = 1; uint32 group_index = 2; uint32 group_epoch = 3; } message MineRequest { uint32 block_number_increment = 1; } message MineReply { uint32 block_number = 1; } service Views { rpc GetNode(GetNodeRequest) returns (NodeReply); rpc EmitDkgTask(google.protobuf.Empty) returns (DkgTaskReply); } message GetNodeRequest { string id_address = 1; } message NodeReply { string id_address = 1; bytes id_public_key = 2; bool state = 3; uint32 pending_until_block = 4; bytes staking = 5; } message Member { uint32 index = 1; string id_address = 2; bytes partial_public_key = 3; } message DkgTaskReply { uint32 group_index = 1; uint32 epoch = 2; uint32 size = 3; uint32 threshold = 4; map members = 5; uint32 assignment_block_height = 6; string coordinator_address = 7; }