mirror of
https://github.com/vacp2p/research.git
synced 2025-02-23 19:58:30 +00:00
Misc
This commit is contained in:
parent
67fce4964f
commit
625cd6827a
@ -1,5 +1,9 @@
|
||||
# Sync protocol PoC
|
||||
|
||||
import hashlib
|
||||
import sync_pb2
|
||||
import time
|
||||
|
||||
# TODO: Expand message to be a payload with message hash
|
||||
# TODO: Add support for multiple peers
|
||||
# TODO: Introduce latency and unreliability
|
||||
@ -50,3 +54,55 @@ a.send_message("B", "a0")
|
||||
print a.sync_state["a0"]
|
||||
|
||||
# TODO: Use the actual protobufs
|
||||
|
||||
# this is a record
|
||||
# XXX: where is the message id?
|
||||
def new_message_record(body):
|
||||
msg = sync_pb2.Record()
|
||||
msg.header.version = 1
|
||||
# assert based on type and length
|
||||
msg.header.type = 1 # MESSAGE type
|
||||
# XXX: Should be inferred
|
||||
msg.header.length = 10
|
||||
# XXX: Hardcoded for now
|
||||
msg.payload.message.group_id = "foo"
|
||||
# XXX: Should be 64 bit integer ms
|
||||
msg.payload.message.timestamp = int(time.time())
|
||||
msg.payload.message.body = body
|
||||
return msg
|
||||
|
||||
# need to be bytes
|
||||
acks = sync_pb2.Record()
|
||||
acks.header.version = 1
|
||||
# XXX: not showing up if version is 0
|
||||
acks.header.type = 0
|
||||
acks.header.length = 10
|
||||
acks.payload.ack.id.extend(["a", "b"])
|
||||
|
||||
# XXX: Where do we use this?
|
||||
def sha1(message):
|
||||
sha = hashlib.sha1(message)
|
||||
return sha.hexdigest()
|
||||
|
||||
#- message\_id = HASH("MESSAGE\_ID", group\_id, timestamp, message\_body)
|
||||
|
||||
# TODO: Create a message
|
||||
|
||||
def create_message(body):
|
||||
group_id = "0xdeadbeef"
|
||||
timestamp = time.time()
|
||||
message_body = body
|
||||
message = {"group_id": group_id, "timestamp": timestamp, "message_body": message_body}
|
||||
return message
|
||||
|
||||
# XXX: Is this hashing correctly?
|
||||
def get_message_id(message_record):
|
||||
msg = message_record.payload.message
|
||||
s = "MESSAGE_ID" + msg.group_id + str(msg.timestamp) + msg.body
|
||||
print s
|
||||
return sha1(s)
|
||||
|
||||
# So... a message doesn't have anything pertaining to where it came from?
|
||||
# Signatures etc but be inside the body payload
|
||||
foo = new_message_record("hello world")
|
||||
foo_id = get_message_id(foo)
|
||||
|
@ -21,6 +21,7 @@ DESCRIPTOR = _descriptor.FileDescriptor(
|
||||
syntax='proto3',
|
||||
serialized_pb=_b('\n\nsync.proto\x12\x04sync\"\x82\x04\n\x06Record\x12#\n\x06header\x18\x01 \x01(\x0b\x32\x13.sync.Record.Header\x12%\n\x07payload\x18\x02 \x01(\x0b\x32\x14.sync.Record.Payload\x1aJ\n\x06Header\x12\x0f\n\x07version\x18\x01 \x01(\x05\x12\x1f\n\x04type\x18\x02 \x01(\x0e\x32\x11.sync.Record.Type\x12\x0e\n\x06length\x18\x03 \x01(\x05\x1a\xac\x01\n\x07Payload\x12\x1f\n\x03\x61\x63k\x18\x01 \x01(\x0b\x32\x10.sync.Record.AckH\x00\x12\'\n\x07message\x18\x02 \x01(\x0b\x32\x14.sync.Record.MessageH\x00\x12#\n\x05offer\x18\x03 \x01(\x0b\x32\x12.sync.Record.OfferH\x00\x12\'\n\x07request\x18\x04 \x01(\x0b\x32\x14.sync.Record.RequestH\x00\x42\t\n\x07payload\x1a\x11\n\x03\x41\x63k\x12\n\n\x02id\x18\x01 \x03(\t\x1a<\n\x07Message\x12\x10\n\x08group_id\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\x12\x0c\n\x04\x62ody\x18\x03 \x01(\x0c\x1a\x13\n\x05Offer\x12\n\n\x02id\x18\x01 \x03(\t\x1a\x15\n\x07Request\x12\n\n\x02id\x18\x01 \x03(\t\"4\n\x04Type\x12\x07\n\x03\x41\x43K\x10\x00\x12\x0b\n\x07MESSAGE\x10\x01\x12\t\n\x05OFFER\x10\x02\x12\x0b\n\x07REQUEST\x10\x03\x62\x06proto3')
|
||||
)
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
|
||||
|
||||
@ -68,21 +69,21 @@ _RECORD_HEADER = _descriptor.Descriptor(
|
||||
has_default_value=False, default_value=0,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='type', full_name='sync.Record.Header.type', index=1,
|
||||
number=2, type=14, cpp_type=8, label=1,
|
||||
has_default_value=False, default_value=0,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='length', full_name='sync.Record.Header.length', index=2,
|
||||
number=3, type=5, cpp_type=1, label=1,
|
||||
has_default_value=False, default_value=0,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
@ -112,28 +113,28 @@ _RECORD_PAYLOAD = _descriptor.Descriptor(
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='message', full_name='sync.Record.Payload.message', index=1,
|
||||
number=2, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='offer', full_name='sync.Record.Payload.offer', index=2,
|
||||
number=3, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='request', full_name='sync.Record.Payload.request', index=3,
|
||||
number=4, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
@ -166,7 +167,7 @@ _RECORD_ACK = _descriptor.Descriptor(
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
@ -196,21 +197,21 @@ _RECORD_MESSAGE = _descriptor.Descriptor(
|
||||
has_default_value=False, default_value=_b("").decode('utf-8'),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='timestamp', full_name='sync.Record.Message.timestamp', index=1,
|
||||
number=2, type=3, cpp_type=2, label=1,
|
||||
has_default_value=False, default_value=0,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='body', full_name='sync.Record.Message.body', index=2,
|
||||
number=3, type=12, cpp_type=9, label=1,
|
||||
has_default_value=False, default_value=_b(""),
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
@ -240,7 +241,7 @@ _RECORD_OFFER = _descriptor.Descriptor(
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
@ -270,7 +271,7 @@ _RECORD_REQUEST = _descriptor.Descriptor(
|
||||
has_default_value=False, default_value=[],
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
@ -300,14 +301,14 @@ _RECORD = _descriptor.Descriptor(
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
_descriptor.FieldDescriptor(
|
||||
name='payload', full_name='sync.Record.payload', index=1,
|
||||
number=2, type=11, cpp_type=10, label=1,
|
||||
has_default_value=False, default_value=None,
|
||||
message_type=None, enum_type=None, containing_type=None,
|
||||
is_extension=False, extension_scope=None,
|
||||
options=None, file=DESCRIPTOR),
|
||||
options=None),
|
||||
],
|
||||
extensions=[
|
||||
],
|
||||
@ -352,7 +353,6 @@ _RECORD.fields_by_name['header'].message_type = _RECORD_HEADER
|
||||
_RECORD.fields_by_name['payload'].message_type = _RECORD_PAYLOAD
|
||||
_RECORD_TYPE.containing_type = _RECORD
|
||||
DESCRIPTOR.message_types_by_name['Record'] = _RECORD
|
||||
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
|
||||
|
||||
Record = _reflection.GeneratedProtocolMessageType('Record', (_message.Message,), dict(
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user