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