mirror of https://github.com/vacp2p/research.git
Only use pubkey for sender
This commit is contained in:
parent
74d3e08749
commit
edce7e6976
|
@ -262,18 +262,19 @@ class Node():
|
||||||
else:
|
else:
|
||||||
log("*** node {} offline, dropping message".format(self.name))
|
log("*** node {} offline, dropping message".format(self.name))
|
||||||
|
|
||||||
def on_receive_message(self, sender, message):
|
# TODO: Problem: It assumes there's a name, as opposed to a pubkey
|
||||||
|
def on_receive_message(self, sender_pubkey, message):
|
||||||
message_id = get_message_id(message)
|
message_id = get_message_id(message)
|
||||||
log('MESSAGE ({} -> {}): {} received'.format(sender.name, self.name, message_id[:4]))
|
log('MESSAGE ({} -> {}): {} received'.format(sender_pubkey, self.name, message_id[:4]))
|
||||||
if message_id not in self.sync_state:
|
if message_id not in self.sync_state:
|
||||||
self.sync_state[message_id] = {}
|
self.sync_state[message_id] = {}
|
||||||
|
|
||||||
if sender.name in self.sync_state[message_id]:
|
if sender_pubkey in self.sync_state[message_id]:
|
||||||
self.sync_state[message_id][sender.name]['hold_flag'] == 1
|
self.sync_state[message_id][sender_pubkey]['hold_flag'] == 1
|
||||||
self.sync_state[message_id][sender.name]['ack_flag'] == 1
|
self.sync_state[message_id][sender_pubkey]['ack_flag'] == 1
|
||||||
# XXX: ACK again here?
|
# XXX: ACK again here?
|
||||||
# XXX: This is bad, sender here with Whisper is only pbukey
|
# XXX: This is bad, sender here with Whisper is only pbukey
|
||||||
self.sync_state[message_id][sender.name] = {
|
self.sync_state[message_id][sender_pubkey] = {
|
||||||
"hold_flag": 1,
|
"hold_flag": 1,
|
||||||
"ack_flag": 1,
|
"ack_flag": 1,
|
||||||
"request_flag": 0,
|
"request_flag": 0,
|
||||||
|
@ -294,47 +295,47 @@ class Node():
|
||||||
|
|
||||||
self.messages[message_id] = message
|
self.messages[message_id] = message
|
||||||
|
|
||||||
def on_receive_ack(self, sender, message):
|
def on_receive_ack(self, sender_pubkey, message):
|
||||||
for ack in message.payload.ack.id:
|
for ack in message.payload.ack.id:
|
||||||
log(' ACK ({} -> {}): {} received'.format(sender.name, self.name, ack[:4]))
|
log(' ACK ({} -> {}): {} received'.format(sender_pubkey, self.name, ack[:4]))
|
||||||
self.sync_state[ack][sender.name]["hold_flag"] = 1
|
self.sync_state[ack][sender_pubkey]["hold_flag"] = 1
|
||||||
|
|
||||||
def on_receive_offer(self, sender, message):
|
def on_receive_offer(self, sender_pubkey, message):
|
||||||
for message_id in message.payload.offer.id:
|
for message_id in message.payload.offer.id:
|
||||||
log(' OFFER ({} -> {}): {} received'.format(sender.name, self.name, message_id[:4]))
|
log(' OFFER ({} -> {}): {} received'.format(sender_pubkey, self.name, message_id[:4]))
|
||||||
if (message_id in self.sync_state and
|
if (message_id in self.sync_state and
|
||||||
sender.name in self.sync_state[message_id] and
|
sender_pubkey in self.sync_state[message_id] and
|
||||||
self.sync_state[message_id][sender.name]['ack_flag'] == 1):
|
self.sync_state[message_id][sender_pubkey]['ack_flag'] == 1):
|
||||||
print("Have message, not ACKED yet, add to list", sender.name, message_id)
|
print("Have message, not ACKED yet, add to list", sender_pubkey, message_id)
|
||||||
if sender.name not in self.offeredMessages:
|
if sender_pubkey not in self.offeredMessages:
|
||||||
self.offeredMessages[sender.name] = []
|
self.offeredMessages[sender_pubkey] = []
|
||||||
self.offeredMessages[sender.name].append(message_id)
|
self.offeredMessages[sender_pubkey].append(message_id)
|
||||||
elif message_id not in self.sync_state:
|
elif message_id not in self.sync_state:
|
||||||
#print "*** {} on_receive_offer from {} not holding {}".format(self.name, sender.name, message_id)
|
#print "*** {} on_receive_offer from {} not holding {}".format(self.name, sender_pubkey, message_id)
|
||||||
if sender.name not in self.offeredMessages:
|
if sender_pubkey not in self.offeredMessages:
|
||||||
self.offeredMessages[sender.name] = []
|
self.offeredMessages[sender_pubkey] = []
|
||||||
self.offeredMessages[sender.name].append(message_id)
|
self.offeredMessages[sender_pubkey].append(message_id)
|
||||||
#else:
|
#else:
|
||||||
# print "*** {} on_receive_offer have {} and ACKd OR peer {} unknown".format(self.name, message_id, sender.name)
|
# print "*** {} on_receive_offer have {} and ACKd OR peer {} unknown".format(self.name, message_id, sender_pubkey)
|
||||||
|
|
||||||
# XXX: Init fn to wrap updates
|
# XXX: Init fn to wrap updates
|
||||||
if message_id not in self.sync_state:
|
if message_id not in self.sync_state:
|
||||||
self.sync_state[message_id] = {}
|
self.sync_state[message_id] = {}
|
||||||
if sender.name not in self.sync_state[message_id]:
|
if sender_pubkey not in self.sync_state[message_id]:
|
||||||
self.sync_state[message_id][sender.name] = {
|
self.sync_state[message_id][sender_pubkey] = {
|
||||||
"hold_flag": 1,
|
"hold_flag": 1,
|
||||||
"ack_flag": 0,
|
"ack_flag": 0,
|
||||||
"request_flag": 0,
|
"request_flag": 0,
|
||||||
"send_count": 0,
|
"send_count": 0,
|
||||||
"send_time": 0
|
"send_time": 0
|
||||||
}
|
}
|
||||||
self.sync_state[message_id][sender.name]['hold_flag'] = 1
|
self.sync_state[message_id][sender_pubkey]['hold_flag'] = 1
|
||||||
#print "*** {} offeredMessages {}".format(self.name, self.offeredMessages)
|
#print "*** {} offeredMessages {}".format(self.name, self.offeredMessages)
|
||||||
|
|
||||||
def on_receive_request(self, sender, message):
|
def on_receive_request(self, sender_pubkey, message):
|
||||||
for req in message.payload.request.id:
|
for req in message.payload.request.id:
|
||||||
log('REQUEST ({} -> {}): {} received'.format(sender.name, self.name, req[:4]))
|
log('REQUEST ({} -> {}): {} received'.format(sender_pubkey, self.name, req[:4]))
|
||||||
self.sync_state[req][sender.name]["request_flag"] = 1
|
self.sync_state[req][sender_pubkey]["request_flag"] = 1
|
||||||
|
|
||||||
def print_sync_state(self):
|
def print_sync_state(self):
|
||||||
log("\n{} POV @{}".format(self.name, self.time))
|
log("\n{} POV @{}".format(self.name, self.time))
|
||||||
|
@ -588,5 +589,6 @@ def whisperRun(steps=10):
|
||||||
a.print_sync_state2()
|
a.print_sync_state2()
|
||||||
b.print_sync_state2()
|
b.print_sync_state2()
|
||||||
|
|
||||||
|
# TODO: With Whisper branch this one breaks, probably due to sender{,.name} => sender_pubkey mismatch.
|
||||||
#run(30)
|
#run(30)
|
||||||
whisperRun(30)
|
whisperRun(30)
|
||||||
|
|
Loading…
Reference in New Issue