mirror of https://github.com/libp2p/py-libp2p.git
Alex Haynes
6 years ago
committed by
Stuckinaboot
1 changed files with 78 additions and 0 deletions
@ -0,0 +1,78 @@ |
|||
// Borrowed from https://github.com/libp2p/go-libp2p-pubsub/blob/master/pb/rpc.proto |
|||
|
|||
syntax = "proto2"; |
|||
|
|||
package pubsub.pb; |
|||
|
|||
message RPC { |
|||
repeated SubOpts subscriptions = 1; |
|||
repeated Message publish = 2; |
|||
|
|||
message SubOpts { |
|||
optional bool subscribe = 1; // subscribe or unsubcribe |
|||
optional string topicid = 2; |
|||
} |
|||
|
|||
optional ControlMessage control = 3; |
|||
} |
|||
|
|||
message Message { |
|||
optional bytes from = 1; |
|||
optional bytes data = 2; |
|||
optional bytes seqno = 3; |
|||
repeated string topicIDs = 4; |
|||
optional bytes signature = 5; |
|||
optional bytes key = 6; |
|||
} |
|||
|
|||
message ControlMessage { |
|||
repeated ControlIHave ihave = 1; |
|||
repeated ControlIWant iwant = 2; |
|||
repeated ControlGraft graft = 3; |
|||
repeated ControlPrune prune = 4; |
|||
} |
|||
|
|||
message ControlIHave { |
|||
optional string topicID = 1; |
|||
repeated string messageIDs = 2; |
|||
} |
|||
|
|||
message ControlIWant { |
|||
repeated string messageIDs = 1; |
|||
} |
|||
|
|||
message ControlGraft { |
|||
optional string topicID = 1; |
|||
} |
|||
|
|||
message ControlPrune { |
|||
optional string topicID = 1; |
|||
} |
|||
|
|||
message TopicDescriptor { |
|||
optional string name = 1; |
|||
optional AuthOpts auth = 2; |
|||
optional EncOpts enc = 3; |
|||
|
|||
message AuthOpts { |
|||
optional AuthMode mode = 1; |
|||
repeated bytes keys = 2; // root keys to trust |
|||
|
|||
enum AuthMode { |
|||
NONE = 0; // no authentication, anyone can publish |
|||
KEY = 1; // only messages signed by keys in the topic descriptor are accepted |
|||
WOT = 2; // web of trust, certificates can allow publisher set to grow |
|||
} |
|||
} |
|||
|
|||
message EncOpts { |
|||
optional EncMode mode = 1; |
|||
repeated bytes keyHashes = 2; // the hashes of the shared keys used (salted) |
|||
|
|||
enum EncMode { |
|||
NONE = 0; // no encryption, anyone can read |
|||
SHAREDKEY = 1; // messages are encrypted with shared key |
|||
WOT = 2; // web of trust, certificates can allow publisher set to grow |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue