2019-02-21 06:36:48 +00:00
|
|
|
import networkwhisper, sync, sys, threading, time
|
2019-02-21 06:08:21 +00:00
|
|
|
|
|
|
|
# XXX: Ugly constants, should be elsewhere
|
2019-02-21 06:36:48 +00:00
|
|
|
SETTINGS = {
|
|
|
|
'a': {
|
|
|
|
'keypair': "0x57083392b29bdf24512c93cfdf45d38c87d9d882da3918c59f4406445ea976a4",
|
|
|
|
'pubkey': "0x04d94a1a01872b598c7cdc5aca2358d35eb91cd8a91eaea8da277451bb71d45c0d1eb87a31ea04e32f537e90165c870b3e115a12438c754d507ac75bddd6ecacd5",
|
|
|
|
'friend' : "0x04ff921ddf78b5ed4537402f59a150caf9d96a83f2a345a1ddf9df12e99e7778f314c9ca72e8285eb213af84f5a7b01aabb62c67e46657976ded6658e1b9e83c73" #b
|
|
|
|
},
|
|
|
|
'b': {
|
|
|
|
'keypair': "0x7b5c5af9736d9f1773f2020dd0fef0bc3c8aeaf147d2bf41961e766588e086e7",
|
|
|
|
'pubkey' : "0x04ff921ddf78b5ed4537402f59a150caf9d96a83f2a345a1ddf9df12e99e7778f314c9ca72e8285eb213af84f5a7b01aabb62c67e46657976ded6658e1b9e83c73",
|
|
|
|
'friend': "0x04d94a1a01872b598c7cdc5aca2358d35eb91cd8a91eaea8da277451bb71d45c0d1eb87a31ea04e32f537e90165c870b3e115a12438c754d507ac75bddd6ecacd5" #a
|
|
|
|
}
|
|
|
|
}
|
2019-02-21 04:37:34 +00:00
|
|
|
|
2019-02-21 06:08:21 +00:00
|
|
|
def tick_process(node):
|
|
|
|
while True:
|
2019-02-21 06:18:29 +00:00
|
|
|
#print("tick")
|
2019-02-21 06:08:21 +00:00
|
|
|
node.tick()
|
|
|
|
time.sleep(1)
|
|
|
|
|
2019-02-21 04:37:34 +00:00
|
|
|
def main():
|
2019-02-21 06:36:48 +00:00
|
|
|
|
|
|
|
assert len(sys.argv) > 1, "Missing node argument. Example: 'a' or 'b'"
|
|
|
|
# Assume exists
|
|
|
|
settings = SETTINGS[sys.argv[1]]
|
|
|
|
keypair = settings['keypair']
|
|
|
|
identity_pk = settings['pubkey']
|
|
|
|
friend_pk = settings['friend']
|
2019-02-21 06:08:21 +00:00
|
|
|
|
|
|
|
# Init node
|
2019-02-21 06:36:48 +00:00
|
|
|
whisper_node = networkwhisper.WhisperNodeHelper(keypair)
|
|
|
|
node = sync.Node(identity_pk, whisper_node, 'burstyMobile', 'batch')
|
2019-02-21 06:08:21 +00:00
|
|
|
# XXX: A bit weird? Or very weird
|
|
|
|
node.nodes = [node]
|
|
|
|
# XXX: Doesn't make sense, a doesn't have b info
|
2019-02-21 06:36:48 +00:00
|
|
|
#node.addPeer(friend_pk, b)
|
2019-02-21 06:08:21 +00:00
|
|
|
# Clients should decide policy
|
2019-02-21 06:36:48 +00:00
|
|
|
node.share(friend_pk)
|
2019-02-21 06:08:21 +00:00
|
|
|
|
2019-02-21 04:37:34 +00:00
|
|
|
# Start background thread
|
2019-02-21 06:08:21 +00:00
|
|
|
thread = threading.Thread(target=tick_process, args=[node])
|
2019-02-21 04:37:34 +00:00
|
|
|
thread.daemon = True
|
|
|
|
thread.start()
|
|
|
|
|
|
|
|
while True:
|
2019-02-21 06:18:29 +00:00
|
|
|
text = input("> ")
|
2019-02-21 04:37:34 +00:00
|
|
|
print("You wrote", text)
|
2019-02-21 06:18:29 +00:00
|
|
|
rec = sync.new_message_record(text)
|
|
|
|
node.append_message(rec)
|
|
|
|
|
|
|
|
node.print_sync_state()
|
2019-02-21 04:37:34 +00:00
|
|
|
|
|
|
|
main()
|
2019-02-21 06:08:21 +00:00
|
|
|
|
2019-02-21 06:18:29 +00:00
|
|
|
# Ok, can send message
|
|
|
|
# Now share with these other
|
|
|
|
# And allow b to run as a proc too
|