284 lines
7.3 KiB
Protocol Buffer
284 lines
7.3 KiB
Protocol Buffer
syntax = "proto2";
|
|
|
|
package hyperspace;
|
|
import "hrpc.proto";
|
|
|
|
// General Structs
|
|
message Peer {
|
|
required bytes remotePublicKey = 1;
|
|
required string remoteAddress = 2;
|
|
required string type = 3;
|
|
}
|
|
|
|
// Hyperspace Methods
|
|
message HyperspaceStatusResponse {
|
|
required string apiVersion = 1;
|
|
optional bool holepunchable = 2;
|
|
optional string remoteAddress = 3;
|
|
}
|
|
|
|
// Corestore Methods
|
|
|
|
message OpenRequest {
|
|
required uint32 id = 1;
|
|
optional bytes key = 2;
|
|
optional string name = 3;
|
|
optional bool weak = 4;
|
|
}
|
|
|
|
message OpenResponse {
|
|
required bytes key = 1;
|
|
required uint64 length = 2;
|
|
required uint64 byteLength = 3;
|
|
required bool writable = 4;
|
|
repeated Peer peers = 5;
|
|
}
|
|
|
|
// Corestore Events
|
|
|
|
message FeedEvent {
|
|
required bytes key = 1;
|
|
}
|
|
|
|
// Networking Methods
|
|
|
|
message OpenNetworkResponse {
|
|
required bytes publicKey = 1;
|
|
repeated Peer peers = 2;
|
|
}
|
|
|
|
message NetworkStatus {
|
|
required bytes discoveryKey = 1;
|
|
optional bool announce = 2;
|
|
optional bool lookup = 3;
|
|
optional bool remember = 4;
|
|
}
|
|
|
|
message ConfigureNetworkRequest {
|
|
required NetworkStatus configuration = 1;
|
|
optional bool flush = 2;
|
|
optional bytes copyFrom = 3;
|
|
optional bool overwrite = 4 [default = true];
|
|
}
|
|
|
|
message NetworkStatusRequest {
|
|
required bytes discoveryKey = 1;
|
|
}
|
|
|
|
message NetworkStatusResponse {
|
|
optional NetworkStatus status = 1;
|
|
}
|
|
|
|
message AllNetworkStatusesResponse {
|
|
repeated NetworkStatus statuses = 1;
|
|
}
|
|
|
|
message RegisterNetworkExtensionRequest {
|
|
required uint64 resourceId = 1;
|
|
required string name = 2;
|
|
}
|
|
|
|
message NetworkExtensionMessage {
|
|
required uint64 id = 1;
|
|
required uint64 resourceId = 2;
|
|
optional bytes remotePublicKey = 3;
|
|
required bytes data = 4;
|
|
}
|
|
|
|
// Hypercore Methods
|
|
|
|
message CloseRequest {
|
|
required uint32 id = 1;
|
|
}
|
|
|
|
message GetRequest {
|
|
required uint32 id = 1;
|
|
required uint64 seq = 2;
|
|
required uint64 resourceId = 3;
|
|
optional bool wait = 4 [default = true];
|
|
optional bool ifAvailable = 5 [default = true];
|
|
optional uint64 onWaitId = 6;
|
|
}
|
|
message GetResponse {
|
|
optional bytes block = 1;
|
|
}
|
|
|
|
message AppendRequest {
|
|
required uint32 id = 1;
|
|
repeated bytes blocks = 2;
|
|
}
|
|
message AppendResponse {
|
|
required uint64 length = 1;
|
|
required uint64 byteLength = 2;
|
|
required uint64 seq = 3;
|
|
}
|
|
|
|
message UpdateRequest {
|
|
required uint32 id = 1;
|
|
optional uint64 minLength = 2;
|
|
optional bool ifAvailable = 3 [default = true];
|
|
optional bool hash = 4 [default = true];
|
|
}
|
|
|
|
message SeekRequest {
|
|
required uint32 id = 1;
|
|
required uint64 byteOffset = 2;
|
|
optional uint64 start = 3;
|
|
optional uint64 end = 4;
|
|
optional bool wait = 5 [default = true];
|
|
optional bool ifAvailable = 6 [default = true];
|
|
}
|
|
message SeekResponse {
|
|
required uint64 seq = 1;
|
|
required uint64 blockOffset = 2;
|
|
}
|
|
|
|
message HasRequest {
|
|
required uint32 id = 1;
|
|
required uint64 seq = 2;
|
|
}
|
|
message HasResponse {
|
|
required bool has = 1;
|
|
}
|
|
|
|
message CancelRequest {
|
|
required uint64 id = 1;
|
|
required uint64 resourceId = 2;
|
|
}
|
|
|
|
message DownloadRequest {
|
|
required uint64 id = 1;
|
|
required uint64 resourceId = 2;
|
|
optional uint64 start = 3;
|
|
optional uint64 end = 4;
|
|
repeated uint64 blocks = 5;
|
|
optional bool linear = 6;
|
|
}
|
|
|
|
message DownloadedRequest {
|
|
required uint64 id = 1;
|
|
optional uint64 start = 2;
|
|
optional uint64 end = 3;
|
|
}
|
|
|
|
message DownloadedResponse {
|
|
required uint64 bytes = 1;
|
|
}
|
|
|
|
message UndownloadRequest {
|
|
required uint64 id = 1;
|
|
required uint64 resourceId = 2;
|
|
}
|
|
|
|
message LockRequest {
|
|
required uint64 id = 1;
|
|
}
|
|
|
|
|
|
// Hypercore Events
|
|
|
|
message AppendEvent {
|
|
required uint64 id = 1;
|
|
required uint64 length = 2;
|
|
required uint64 byteLength = 3;
|
|
}
|
|
|
|
message PeerEvent {
|
|
required uint64 id = 1;
|
|
required Peer peer = 2;
|
|
}
|
|
|
|
message CloseEvent {
|
|
required uint64 id = 1;
|
|
}
|
|
|
|
message WaitEvent {
|
|
required uint64 id = 1;
|
|
required uint64 onWaitId = 2;
|
|
}
|
|
|
|
// Extension Methods
|
|
|
|
message RegisterExtensionRequest {
|
|
required uint64 id = 1;
|
|
required uint64 resourceId = 2;
|
|
required string name = 3;
|
|
}
|
|
|
|
message UnregisterExtensionRequest {
|
|
required uint64 id = 1;
|
|
required uint64 resourceId = 2;
|
|
}
|
|
|
|
message ExtensionMessage {
|
|
required uint64 id = 1;
|
|
required uint64 resourceId = 2;
|
|
optional bytes remotePublicKey = 3;
|
|
required bytes data = 4;
|
|
}
|
|
|
|
service Hyperspace {
|
|
option (hrpc.service) = 1;
|
|
|
|
// Methods
|
|
rpc Status (hrpc.Void) returns (HyperspaceStatusResponse) { option (hrpc.method) = 1; }
|
|
}
|
|
|
|
service Corestore {
|
|
option (hrpc.service) = 2;
|
|
|
|
// Methods
|
|
rpc Open (OpenRequest) returns (OpenResponse) { option (hrpc.method) = 1; }
|
|
|
|
// Events
|
|
rpc OnFeed (FeedEvent) returns (hrpc.Void) { option (hrpc.method) = 2; }
|
|
}
|
|
|
|
service Hypercore {
|
|
option (hrpc.service) = 3;
|
|
|
|
// Methods
|
|
rpc Get (GetRequest) returns (GetResponse) { option (hrpc.method) = 1; }
|
|
rpc Append (AppendRequest) returns (AppendResponse) { option (hrpc.method) = 2; }
|
|
rpc Update (UpdateRequest) returns (hrpc.Void) { option (hrpc.method) = 3; }
|
|
rpc Seek (SeekRequest) returns (SeekResponse) { option (hrpc.method) = 4; }
|
|
rpc Has (HasRequest) returns (HasResponse) { option (hrpc.method) = 5; }
|
|
rpc Cancel (CancelRequest) returns (hrpc.Void) { option (hrpc.method) = 6; }
|
|
rpc Download (DownloadRequest) returns (hrpc.Void) { option (hrpc.method) = 7; }
|
|
rpc Downloaded (DownloadedRequest) returns (DownloadedResponse) { option (hrpc.method) = 8; }
|
|
rpc Undownload (UndownloadRequest) returns (hrpc.Void) { option (hrpc.method) = 9; }
|
|
rpc Close (CloseRequest) returns (hrpc.Void) { option (hrpc.method) = 10; }
|
|
rpc RegisterExtension (RegisterExtensionRequest) returns (hrpc.Void) { option (hrpc.method) = 11; }
|
|
rpc UnregisterExtension (UnregisterExtensionRequest) returns (hrpc.Void) { option (hrpc.method) = 12; }
|
|
rpc SendExtension (ExtensionMessage) returns (hrpc.Void) { option (hrpc.method) = 13; }
|
|
|
|
rpc AcquireLock (LockRequest) returns (hrpc.Void) { option (hrpc.method) = 14; }
|
|
rpc ReleaseLock (LockRequest) returns (hrpc.Void) { option (hrpc.method) = 15; }
|
|
|
|
// Events
|
|
rpc OnAppend (AppendEvent) returns (hrpc.Void) { option (hrpc.method) = 16; }
|
|
rpc OnClose (CloseEvent) returns (hrpc.Void) { option (hrpc.method) = 17; }
|
|
rpc OnPeerOpen (PeerEvent) returns (hrpc.Void) { option (hrpc.method) = 18; }
|
|
rpc OnPeerRemove (PeerEvent) returns (hrpc.Void) { option (hrpc.method) = 19; }
|
|
rpc OnExtension (ExtensionMessage) returns (hrpc.Void) { option (hrpc.method) = 20; }
|
|
rpc OnWait (WaitEvent) returns (hrpc.Void) { option (hrpc.method) = 21; }
|
|
}
|
|
|
|
service Network {
|
|
option (hrpc.service) = 4;
|
|
|
|
// Methods
|
|
rpc Open (hrpc.Void) returns (OpenNetworkResponse) { option (hrpc.method) = 1; }
|
|
rpc Configure (ConfigureNetworkRequest) returns (NetworkStatusResponse) { option (hrpc.method) = 2; }
|
|
rpc Status (NetworkStatusRequest) returns (NetworkStatusResponse) { option (hrpc.method) = 3; }
|
|
rpc AllStatuses (hrpc.Void) returns (AllNetworkStatusesResponse) { option (hrpc.method) = 4; }
|
|
rpc RegisterExtension (RegisterExtensionRequest) returns (hrpc.Void) { option (hrpc.method) = 5; }
|
|
rpc UnregisterExtension (UnregisterExtensionRequest) returns (hrpc.Void) { option (hrpc.method) = 6; }
|
|
rpc SendExtension (ExtensionMessage) returns (hrpc.Void) { option (hrpc.method) = 7; }
|
|
|
|
// Events
|
|
rpc OnPeerAdd (PeerEvent) returns (hrpc.Void) { option (hrpc.method) = 8; }
|
|
rpc OnPeerRemove (PeerEvent) returns (hrpc.Void) { option (hrpc.method) = 9; }
|
|
rpc OnExtension (ExtensionMessage) returns (hrpc.Void) { option (hrpc.method) = 10; }
|
|
}
|