mirror of
https://github.com/QuilibriumNetwork/ceremonyclient.git
synced 2026-02-22 02:47:26 +08:00
* Add externally reachable data peer flag * Announce node reachability * Go through candidates based on reachability
131 lines
3.3 KiB
Protocol Buffer
131 lines
3.3 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package quilibrium.node.data.pb;
|
|
|
|
option go_package = "source.quilibrium.com/quilibrium/monorepo/node/protobufs";
|
|
|
|
import "google/protobuf/wrappers.proto";
|
|
|
|
import "channel.proto";
|
|
import "clock.proto";
|
|
import "keys.proto";
|
|
import "node.proto";
|
|
|
|
message DataPeerListAnnounce {
|
|
reserved 1;
|
|
reserved "peer_list";
|
|
DataPeer peer = 2;
|
|
}
|
|
|
|
message DataPeer {
|
|
bytes peer_id = 1;
|
|
string multiaddr = 2;
|
|
uint64 max_frame = 3;
|
|
int64 timestamp = 4;
|
|
bytes version = 5;
|
|
reserved 6;
|
|
reserved "signature";
|
|
reserved 7;
|
|
reserved "public_key";
|
|
bytes total_distance = 8;
|
|
bytes patch_version = 9;
|
|
google.protobuf.BoolValue externally_reachable = 10;
|
|
}
|
|
|
|
message DataCompressedSync {
|
|
uint64 from_frame_number = 1;
|
|
uint64 to_frame_number = 2;
|
|
repeated quilibrium.node.clock.pb.ClockFrame truncated_clock_frames = 3;
|
|
repeated InclusionProofsMap proofs = 4;
|
|
repeated InclusionSegmentsMap segments = 5;
|
|
}
|
|
|
|
message SyncRequestAuthentication {
|
|
bytes peer_id = 1;
|
|
bytes challenge = 2;
|
|
quilibrium.node.keys.pb.Ed448Signature response = 3;
|
|
}
|
|
|
|
message DataCompressedSyncRequestMessage {
|
|
oneof sync_message {
|
|
quilibrium.node.clock.pb.ClockFramesPreflight preflight = 1;
|
|
quilibrium.node.clock.pb.ClockFramesRequest request = 2;
|
|
SyncRequestAuthentication authentication = 3;
|
|
}
|
|
}
|
|
|
|
message DataCompressedSyncResponseMessage {
|
|
oneof sync_message {
|
|
quilibrium.node.clock.pb.ClockFramesPreflight preflight = 1;
|
|
DataCompressedSync response = 2;
|
|
}
|
|
}
|
|
|
|
message InclusionProofsMap {
|
|
bytes frame_commit = 1;
|
|
bytes proof = 2;
|
|
repeated InclusionCommitmentsMap commitments = 3;
|
|
}
|
|
|
|
message InclusionSegmentsMap {
|
|
bytes hash = 1;
|
|
bytes data = 2;
|
|
}
|
|
|
|
message InclusionCommitmentsMap {
|
|
bytes commitment = 1;
|
|
string type_url = 2;
|
|
repeated bytes segment_hashes = 3;
|
|
}
|
|
|
|
message GetDataFrameRequest {
|
|
uint64 frame_number = 1;
|
|
string peer_id = 2;
|
|
}
|
|
|
|
message DataFrameResponse {
|
|
quilibrium.node.clock.pb.ClockFrame clock_frame = 1;
|
|
bytes proof = 2;
|
|
}
|
|
|
|
message PreMidnightMintResponse {
|
|
bytes address = 1;
|
|
uint32 increment = 2;
|
|
}
|
|
|
|
message PreMidnightMintStatusRequest {
|
|
bytes owner = 1;
|
|
}
|
|
|
|
message FrameRebroadcast {
|
|
uint64 from = 1;
|
|
uint64 to = 2;
|
|
repeated quilibrium.node.clock.pb.ClockFrame clock_frames = 3;
|
|
bytes random = 4;
|
|
}
|
|
|
|
service DataService {
|
|
rpc GetCompressedSyncFrames (quilibrium.node.clock.pb.ClockFramesRequest) returns (stream DataCompressedSync);
|
|
rpc NegotiateCompressedSyncFrames (stream DataCompressedSyncRequestMessage) returns (stream DataCompressedSyncResponseMessage);
|
|
rpc GetPublicChannel (stream quilibrium.node.channel.pb.P2PChannelEnvelope) returns (stream quilibrium.node.channel.pb.P2PChannelEnvelope);
|
|
rpc GetDataFrame (GetDataFrameRequest) returns (DataFrameResponse);
|
|
rpc HandlePreMidnightMint (quilibrium.node.node.pb.MintCoinRequest) returns (PreMidnightMintResponse);
|
|
rpc GetPreMidnightMintStatus (PreMidnightMintStatusRequest) returns (PreMidnightMintResponse);
|
|
}
|
|
|
|
message ChallengeProofRequest {
|
|
bytes peer_id = 1;
|
|
uint32 core = 2;
|
|
quilibrium.node.clock.pb.ClockFrame clock_frame = 3;
|
|
bytes output = 4;
|
|
uint64 frame_number = 5;
|
|
uint32 difficulty = 6;
|
|
}
|
|
|
|
message ChallengeProofResponse {
|
|
bytes output = 1;
|
|
}
|
|
|
|
service DataIPCService {
|
|
rpc CalculateChallengeProof(ChallengeProofRequest) returns (ChallengeProofResponse);
|
|
} |