Publish protocol 2.0

This commit is contained in:
2023-03-22 16:55:04 +01:00
commit 99cb5928bc
4 changed files with 91 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
syntax = "proto3";
// Client -> Server
// Request logging into the server
// seed: the seed used to generate the address
message AuthenticationRequest {
fixed64 seed = 1;
}
// Server -> Client
// Login response
// status: 0 if successful, anything else is an error
// address: the address assigned to the peer
message AuthenticationResponse {
uint32 status = 1;
fixed64 address = 2;
}
+18
View File
@@ -0,0 +1,18 @@
syntax = "proto3";
// Client <-> Server
message Container {
enum MessageType {
AuthenticationRequest = 0;
AuthenticationResponse = 1;
Message = 2;
PublishRequest = 3;
PublishResponse = 4;
DiscoverRequest = 5;
DiscoverResponse = 6;
}
MessageType type = 1;
uint32 id = 2;
bytes data = 3;
}
+12
View File
@@ -0,0 +1,12 @@
syntax = "proto3";
// Client <-> Server
// address:
// Client -> Server: destination
// Server -> Client: source
// data: message data
message Message {
fixed64 address = 1;
fixed32 port = 2;
bytes data = 3;
}
+44
View File
@@ -0,0 +1,44 @@
syntax = "proto3";
// Client -> Server
// Request a port to be published or deleted on Discover
// port: the port to publish
// publish:
// true: publish the port
// false: delete the port
// flags: search flags
message PublishRequest {
fixed32 port = 1;
bool publish = 2;
repeated string flags = 3;
}
// Server -> Client
// Acknowledge a PublishRequest
// status: 0 if successful, anything else is an error
message PublishResponse {
uint32 status = 1;
}
// Client -> Server
// Search for peers on Discover
// limit: maximum number of peers to search for
// flags: flags to search for
message DiscoverRequest {
uint32 limit = 1;
repeated string flags = 2;
}
// Server -> Client
// Response to a DiscoverRequest with a list of peers
// status: 0 if successful, anything else is an error
// peers: a list of peers, empty if nothing is found
message DiscoverResponse {
message DiscoverPeer {
uint32 port = 1;
fixed64 address = 2;
repeated string flags = 3;
}
uint32 status = 1;
repeated DiscoverPeer peers = 2;
}