def trade_peers(peer): peers = tools.db_get('peers') peer_length = peers[peer]['length'] peer_diffLength = peers[peer]['diffLength'] their_peers = cmd(peer, {'type': 'peers'}) if type( their_peers ) == list: #compatibility so that I can download from old-fashioned nodes out = {} for p in their_peers: out[p[0][0]] = tools.empty_peer() out[p[0][0]]['port'] = p[0][1] their_peers = out #end of compatibility patch. #tools.log('their_peers: ' +str(their_peers)) if 'error' in their_peers.keys(): return {'error': 'cannot connect'} def minus(a, b): return filter(lambda p: p not in b, a) to_them = minus(peers.keys(), their_peers.keys()) to_me = minus(their_peers.keys(), peers.keys()) for p in to_me: if not ':' in p: #these two lines wont be necessary after the networking node finishes downloading the blockchain. p = p + ':' + str(their_peers[p]['port']) #tools.log('peer: ' +str(p)) tools.add_peer(p) cmd(peer, {'type': 'recieve_peer', 'peers': to_them})
def trade_peers(peer): peers=tools.local_get('peers') peer_length=peers[peer]['length'] their_peers=cmd(peer, {'type':'peers'}) if type(their_peers)!=dict: return {'error': 'cannot connect'} if 'error' in their_peers.keys(): return {'error': 'cannot connect'} def minus(a, b): return filter(lambda p: p not in b, a) to_them=minus(peers.keys(), their_peers.keys()) to_me=minus(their_peers.keys(), peers.keys()) for p in to_me: if not ':' in p: p=p+':'+str(their_peers[p]['port']) tools.log('peer: ' +str(p)) tools.add_peer(p) cmd(peer, {'type':'recieve_peer', 'peers':to_them})
def main(peers, DB): # Check on the peers to see if they know about more blocks than we do. #DB['peers_ranked']=[] p = tools.db_get('peers_ranked') if type(p) != list: time.sleep(3) return main(peers, DB) for peer in peers: tools.add_peer(peer, p) tools.db_put('peers_ranked', p) try: while True: if tools.db_get('stop'): return if len(peers) > 0: main_once(DB) except Exception as exc: tools.log(exc)
def main(peers, DB): # Check on the peers to see if they know about more blocks than we do. #DB['peers_ranked']=[] p=tools.db_get('peers_ranked') if type(p)!=list: time.sleep(3) return main(peers, DB) for peer in peers: tools.add_peer(peer, p) tools.db_put('peers_ranked', p) try: while True: if tools.db_get('stop'): return if len(peers)>0: main_once(DB) except Exception as exc: tools.log(exc)
def trade_peers(peer): peers = tools.local_get('peers') peer_length = peers[peer]['length'] their_peers = cmd(peer, {'type': 'peers'}) if type(their_peers) != dict: return {'error': 'cannot connect'} if 'error' in their_peers.keys(): return {'error': 'cannot connect'} def minus(a, b): return filter(lambda p: p not in b, a) to_them = minus(peers.keys(), their_peers.keys()) to_me = minus(their_peers.keys(), peers.keys()) for p in to_me: if not ':' in p: p = p + ':' + str(their_peers[p]['port']) tools.log('peer: ' + str(p)) tools.add_peer(p) cmd(peer, {'type': 'recieve_peer', 'peers': to_them})
def trade_peers(peer): peers=tools.db_get('peers') peer_length=peers[peer]['length'] peer_diffLength=peers[peer]['diffLength'] their_peers=cmd(peer, {'type':'peers'}) if type(their_peers)==list:#compatibility so that I can download from old-fashioned nodes out={} for p in their_peers: out[p[0][0]]=tools.empty_peer() out[p[0][0]]['port']=p[0][1] their_peers=out#end of compatibility patch. #tools.log('their_peers: ' +str(their_peers)) if 'error' in their_peers.keys(): return {'error':'cannot connect'} def minus(a, b): return filter(lambda p: p not in b, a) to_them=minus(peers.keys(), their_peers.keys()) to_me=minus(their_peers.keys(), peers.keys()) for p in to_me: if not ':' in p:#these two lines wont be necessary after the networking node finishes downloading the blockchain. p=p+':'+str(their_peers[p]['port']) #tools.log('peer: ' +str(p)) tools.add_peer(p) cmd(peer, {'type':'recieve_peer', 'peers':to_them})
def recieve_peer(dic): peer = dic['peer'] tools.add_peer(peer[0])
def add_peer(args): ip = args[0] port = args[1] tools.add_peer([ip, port]) return 'peer is added'
def recieve_peer(dic, DB): if 'peers' in dic: map(tools.add_peer, dic['peers']) else: tools.add_peer(dic['peer'])
def recieve_peer(dic, DB): peer = dic['peer'] ps = tools.db_get('peers_ranked') if peer[0] not in map(lambda x: x[0][0], ps): tools.add_peer(peer)
def recieve_peer(dic, DB): peer=dic['peer'] ps=tools.db_get('peers_ranked') if peer[0] not in map(lambda x: x[0][0], ps): tools.add_peer(peer)