Merge branch 'seqno' of https://github.com/libp2p/py-libp2p into seqno
This commit is contained in:
commit
8221e1057c
|
@ -1,3 +1,5 @@
|
||||||
|
// Modified from https://github.com/libp2p/go-libp2p-pubsub/blob/master/pb/rpc.proto
|
||||||
|
|
||||||
syntax = "proto2";
|
syntax = "proto2";
|
||||||
|
|
||||||
package pubsub.pb;
|
package pubsub.pb;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import asyncio
|
import asyncio
|
||||||
import uuid
|
|
||||||
|
|
||||||
from .pb import rpc_pb2
|
from .pb import rpc_pb2
|
||||||
from .pubsub_notifee import PubsubNotifee
|
from .pubsub_notifee import PubsubNotifee
|
||||||
|
@ -203,10 +202,6 @@ class Pubsub():
|
||||||
|
|
||||||
# Create subscribe message
|
# Create subscribe message
|
||||||
packet = rpc_pb2.RPC()
|
packet = rpc_pb2.RPC()
|
||||||
# packet.publish.extend([rpc_pb2.Message(
|
|
||||||
# from_id=str(self.host.get_id()).encode('utf-8'),
|
|
||||||
# seqno=str(generate_message_id()).encode('utf-8')
|
|
||||||
# )])
|
|
||||||
packet.subscriptions.extend([rpc_pb2.RPC.SubOpts(
|
packet.subscriptions.extend([rpc_pb2.RPC.SubOpts(
|
||||||
subscribe=True,
|
subscribe=True,
|
||||||
topicid=topic_id.encode('utf-8')
|
topicid=topic_id.encode('utf-8')
|
||||||
|
@ -256,10 +251,3 @@ class Pubsub():
|
||||||
|
|
||||||
# Write message to stream
|
# Write message to stream
|
||||||
await stream.write(rpc_msg)
|
await stream.write(rpc_msg)
|
||||||
|
|
||||||
def generate_message_id():
|
|
||||||
"""
|
|
||||||
Generate a unique message id
|
|
||||||
:return: messgae id
|
|
||||||
"""
|
|
||||||
return str(uuid.uuid1())
|
|
||||||
|
|
78
rpc.proto
78
rpc.proto
|
@ -1,78 +0,0 @@
|
||||||
// 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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -55,8 +55,6 @@ async def test_simple_two_nodes_RPC():
|
||||||
# as the message sent by node_a
|
# as the message sent by node_a
|
||||||
assert res_b.SerializeToString() == msg.publish[0].SerializeToString()
|
assert res_b.SerializeToString() == msg.publish[0].SerializeToString()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Success, terminate pending tasks.
|
# Success, terminate pending tasks.
|
||||||
await cleanup()
|
await cleanup()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user