2023-10-09 04:52:19 +00:00
|
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
|
|
package quilibrium.node.node.pb;
|
|
|
|
|
|
|
|
|
|
option go_package = "source.quilibrium.com/quilibrium/monorepo/node/protobufs";
|
|
|
|
|
|
|
|
|
|
import "clock.proto";
|
|
|
|
|
|
|
|
|
|
message GetFramesRequest {
|
|
|
|
|
bytes filter = 1;
|
|
|
|
|
uint64 from_frame_number = 2;
|
|
|
|
|
uint64 to_frame_number = 3;
|
|
|
|
|
bool include_candidates = 4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GetFrameInfoRequest {
|
|
|
|
|
bytes filter = 1;
|
|
|
|
|
uint64 frame_number = 2;
|
|
|
|
|
bytes selector = 3;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message GetPeerInfoRequest {}
|
|
|
|
|
|
2024-02-13 07:00:50 +00:00
|
|
|
|
message GetNodeInfoRequest {}
|
2024-01-29 21:09:48 +00:00
|
|
|
|
|
2023-10-09 04:52:19 +00:00
|
|
|
|
message GetNetworkInfoRequest {}
|
|
|
|
|
|
|
|
|
|
message FramesResponse {
|
|
|
|
|
repeated quilibrium.node.clock.pb.ClockFrame truncated_clock_frames = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message FrameInfoResponse {
|
|
|
|
|
quilibrium.node.clock.pb.ClockFrame clock_frame = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message PeerInfo {
|
|
|
|
|
bytes peer_id = 1;
|
|
|
|
|
repeated string multiaddrs = 2;
|
|
|
|
|
uint64 max_frame = 3;
|
2023-10-26 05:55:39 +00:00
|
|
|
|
int64 timestamp = 4;
|
2023-11-01 03:45:20 +00:00
|
|
|
|
bytes version = 5;
|
|
|
|
|
bytes signature = 6;
|
|
|
|
|
bytes public_key = 7;
|
2024-02-24 08:35:13 +00:00
|
|
|
|
bytes total_distance = 8;
|
2023-10-09 04:52:19 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message PeerInfoResponse {
|
|
|
|
|
repeated PeerInfo peer_info = 1;
|
|
|
|
|
repeated PeerInfo uncooperative_peer_info = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message NetworkInfo {
|
|
|
|
|
bytes peer_id = 1;
|
|
|
|
|
repeated string multiaddrs = 2;
|
|
|
|
|
double peer_score = 3;
|
|
|
|
|
}
|
|
|
|
|
|
2024-02-13 07:00:50 +00:00
|
|
|
|
message NodeInfoResponse {
|
2024-01-29 21:09:48 +00:00
|
|
|
|
string peer_id = 1;
|
2024-02-13 07:00:50 +00:00
|
|
|
|
uint64 max_frame = 2;
|
|
|
|
|
uint64 peer_score = 3;
|
2024-03-24 08:11:58 +00:00
|
|
|
|
bytes version = 4;
|
2024-01-29 21:09:48 +00:00
|
|
|
|
}
|
|
|
|
|
|
2024-02-14 07:11:12 +00:00
|
|
|
|
message PutPeerInfoRequest {
|
|
|
|
|
repeated PeerInfo peer_info = 1;
|
|
|
|
|
repeated PeerInfo uncooperative_peer_info = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message PutNodeInfoRequest {
|
|
|
|
|
string peer_id = 1;
|
|
|
|
|
uint64 max_frame = 2;
|
|
|
|
|
uint64 peer_score = 3;
|
|
|
|
|
bytes signature = 4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message PutResponse {}
|
|
|
|
|
|
2023-10-09 04:52:19 +00:00
|
|
|
|
message NetworkInfoResponse {
|
|
|
|
|
repeated NetworkInfo network_info = 1;
|
|
|
|
|
}
|
|
|
|
|
|
2023-10-28 02:23:55 +00:00
|
|
|
|
message GetTokenInfoRequest {}
|
|
|
|
|
|
|
|
|
|
message TokenInfoResponse {
|
|
|
|
|
// Total active token supply, as a 256 bit integer representing maximum
|
|
|
|
|
// divisble units. 1 QUIL = 8000000000 units, 50 QUIL would be represented by
|
|
|
|
|
// 0x0000000000000000000000000000000000000000000000000000005D21DBA000
|
|
|
|
|
bytes confirmed_token_supply = 1;
|
|
|
|
|
// Total token supply, including unconfirmed frame data, as a 256 bit integer.
|
|
|
|
|
bytes unconfirmed_token_supply = 2;
|
|
|
|
|
// The total number of tokens owned by the prover address associated with the
|
|
|
|
|
// node.
|
|
|
|
|
bytes owned_tokens = 3;
|
2024-01-15 04:32:28 +00:00
|
|
|
|
// The total number of tokens owned by the prover address associated with the
|
|
|
|
|
// node, including unconfirmed frame data.
|
|
|
|
|
bytes unconfirmed_owned_tokens = 4;
|
2023-10-28 02:23:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
2024-03-01 07:12:31 +00:00
|
|
|
|
message Capability {
|
|
|
|
|
// A general protocol identifier as a uint32 – this is expected to rarely
|
|
|
|
|
// iterate, and should be uniquely identifying both protocol and version.
|
|
|
|
|
// Pragmatically speaking, this implies that the least significant byte
|
|
|
|
|
// specifies version (which should iterate most minimally), and the three most
|
|
|
|
|
// significant bytes should specify protocol. Recipients SHOULD ignore
|
|
|
|
|
// messages with incompatible protocol identifiers, but also SHOULD warn on
|
|
|
|
|
// identifiers with versions higher than the supported protocol. A large
|
|
|
|
|
// number of unsupported protocol messages may indicate spam/some other
|
|
|
|
|
// attack, whereas a large number of unsupported protocol versions may
|
|
|
|
|
// indicate an out of date client, respective to which side is the maximum of
|
|
|
|
|
// the version number.
|
|
|
|
|
uint32 protocol_identifier = 1;
|
|
|
|
|
// An optional bundle of information specific to the capability – used for
|
|
|
|
|
// extensibility in negotiating variations of a protocol – e.g. Triple-Ratchet
|
|
|
|
|
// but only for certain curve types.
|
|
|
|
|
bytes additional_metadata = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message SelfTestReport {
|
|
|
|
|
// The difficulty the self test was conducted under
|
|
|
|
|
uint32 difficulty = 1;
|
|
|
|
|
// The resulting local time of computing the VDF test under the difficulty
|
|
|
|
|
int64 difficulty_metric = 2;
|
|
|
|
|
// The resulting local time of computing a KZG commitment for a 16 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 commit_16_metric = 3;
|
|
|
|
|
// The resulting local time of computing a KZG commitment for a 128 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 commit_128_metric = 4;
|
|
|
|
|
// The resulting local time of computing a KZG commitment for a 1024 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 commit_1024_metric = 5;
|
|
|
|
|
// The resulting local time of computing a KZG commitment for a 65536 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 commit_65536_metric = 6;
|
|
|
|
|
// The resulting local time of computing a KZG proof for a 16 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 proof_16_metric = 7;
|
|
|
|
|
// The resulting local time of computing a KZG proof for a 128 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 proof_128_metric = 8;
|
|
|
|
|
// The resulting local time of computing a KZG proof for a 1024 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 proof_1024_metric = 9;
|
|
|
|
|
// The resulting local time of computing a KZG proof for a 65536 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 proof_65536_metric = 10;
|
|
|
|
|
// The number of reported accessible cores
|
|
|
|
|
uint32 cores = 11;
|
|
|
|
|
// The total available memory
|
|
|
|
|
bytes memory = 12;
|
|
|
|
|
// The total available storage
|
|
|
|
|
bytes storage = 13;
|
|
|
|
|
// The list of supported capabilities
|
|
|
|
|
repeated Capability capabilities = 14;
|
2024-03-08 05:05:04 +00:00
|
|
|
|
// The highest master frame the node has
|
|
|
|
|
uint64 master_head_frame = 15;
|
2024-05-25 05:22:50 +00:00
|
|
|
|
// A challenge proof
|
|
|
|
|
bytes proof = 16;
|
2024-06-08 08:38:53 +00:00
|
|
|
|
// The challenge, minus the peer id
|
|
|
|
|
bytes challenge = 17;
|
|
|
|
|
// The increment value
|
|
|
|
|
uint32 increment = 18;
|
2024-03-01 07:12:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message ValidationMessage {
|
|
|
|
|
bytes validation = 1;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-08 05:05:04 +00:00
|
|
|
|
message SyncRequest {
|
|
|
|
|
quilibrium.node.clock.pb.ClockFramesRequest frames_request = 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message SyncResponse {
|
|
|
|
|
quilibrium.node.clock.pb.ClockFramesResponse frames_response = 1;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-01 07:12:31 +00:00
|
|
|
|
service ValidationService {
|
|
|
|
|
rpc PerformValidation(ValidationMessage) returns (ValidationMessage);
|
2024-03-08 05:05:04 +00:00
|
|
|
|
rpc Sync(SyncRequest) returns (stream SyncResponse);
|
2024-03-01 07:12:31 +00:00
|
|
|
|
}
|
|
|
|
|
|
2024-03-04 03:20:24 +00:00
|
|
|
|
message GetPeerManifestsRequest {}
|
|
|
|
|
|
|
|
|
|
message PeerManifest {
|
|
|
|
|
bytes peer_id = 1;
|
|
|
|
|
// The difficulty the self test was conducted under
|
|
|
|
|
uint32 difficulty = 2;
|
|
|
|
|
// The resulting local time of computing the VDF test under the difficulty
|
|
|
|
|
int64 difficulty_metric = 3;
|
|
|
|
|
// The resulting local time of computing a KZG commitment for a 16 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 commit_16_metric = 4;
|
|
|
|
|
// The resulting local time of computing a KZG commitment for a 128 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 commit_128_metric = 5;
|
|
|
|
|
// The resulting local time of computing a KZG commitment for a 1024 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 commit_1024_metric = 6;
|
|
|
|
|
// The resulting local time of computing a KZG commitment for a 65536 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 commit_65536_metric = 7;
|
|
|
|
|
// The resulting local time of computing a KZG proof for a 16 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 proof_16_metric = 8;
|
|
|
|
|
// The resulting local time of computing a KZG proof for a 128 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 proof_128_metric = 9;
|
|
|
|
|
// The resulting local time of computing a KZG proof for a 1024 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 proof_1024_metric = 10;
|
|
|
|
|
// The resulting local time of computing a KZG proof for a 65536 degree
|
|
|
|
|
// polynomial
|
|
|
|
|
int64 proof_65536_metric = 11;
|
|
|
|
|
// The number of reported accessible cores
|
|
|
|
|
uint32 cores = 12;
|
|
|
|
|
// The total available memory
|
|
|
|
|
bytes memory = 13;
|
|
|
|
|
// The total available storage
|
|
|
|
|
bytes storage = 14;
|
|
|
|
|
// The list of supported capabilities
|
|
|
|
|
repeated Capability capabilities = 15;
|
2024-03-08 05:05:04 +00:00
|
|
|
|
// The highest master frame the node has
|
|
|
|
|
uint64 master_head_frame = 16;
|
2024-05-25 05:22:50 +00:00
|
|
|
|
// The last time seen tick
|
|
|
|
|
int64 last_seen = 17;
|
2024-06-08 08:38:53 +00:00
|
|
|
|
// The increment of the node
|
|
|
|
|
uint32 increment = 18;
|
2024-03-04 03:20:24 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
message PeerManifestsResponse {
|
|
|
|
|
repeated PeerManifest peer_manifests = 1;
|
|
|
|
|
}
|
|
|
|
|
|
2023-10-09 04:52:19 +00:00
|
|
|
|
service NodeService {
|
|
|
|
|
rpc GetFrames(GetFramesRequest) returns (FramesResponse);
|
|
|
|
|
rpc GetFrameInfo(GetFrameInfoRequest) returns (FrameInfoResponse);
|
|
|
|
|
rpc GetPeerInfo(GetPeerInfoRequest) returns (PeerInfoResponse);
|
2024-02-13 07:00:50 +00:00
|
|
|
|
rpc GetNodeInfo(GetNodeInfoRequest) returns (NodeInfoResponse);
|
2023-10-09 04:52:19 +00:00
|
|
|
|
rpc GetNetworkInfo(GetNetworkInfoRequest) returns (NetworkInfoResponse);
|
2023-10-28 02:23:55 +00:00
|
|
|
|
rpc GetTokenInfo(GetTokenInfoRequest) returns (TokenInfoResponse);
|
2024-03-04 03:20:24 +00:00
|
|
|
|
rpc GetPeerManifests(GetPeerManifestsRequest) returns (PeerManifestsResponse);
|
2024-02-14 07:11:12 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
service NodeStats {
|
|
|
|
|
rpc PutNodeInfo(PutNodeInfoRequest) returns (PutResponse);
|
|
|
|
|
rpc PutPeerInfo(PutPeerInfoRequest) returns (PutResponse);
|
2023-10-09 04:52:19 +00:00
|
|
|
|
}
|