def main(): port = 7111 node = None while not node: try: net = Network(port, ROOT) # pregenerated keys for example seed if port == 7111: net.node.node_id = SEED.split(':', 2)[2] net.node.secret_key = SECRET net.join([SEED]) node = net.get_local() except ConnectionError: port += 1 print "Unable to bind to socket, trying next port: {0}".format(port) try: while True: print node if not net.get_peers(): print " - No peers" for x in net.get_peers(): print " - {0}".format(x.to_json()) gevent.sleep(10) except KeyboardInterrupt: print 'Exiting...' net.leave()
def test_find_nodes(root, closeme): # seed net = Network(7001, root) seeds[0] += ":{0}".format(net.node.node_id) print seeds net.join(seeds) closeme.append(net) node = net.get_local() # can find self assert net.find_nodes(node.node_id) != None # check for consistency across nodes net2 = Network(7002, root) net2.join(seeds) closeme.append(net2) net3 = Network(7003, root) net3.join(seeds) closeme.append(net3) # some more random nodes for i in range(7004, 7024): n = Network(i, root) n.join(seeds) closeme.append(n) # find a random id target = generate_random() # just pull out the id's for comparison nodes = [ x.node_id for x in net.find_nodes(target, 5) ] # same response from other nodes assert nodes == [ x.node_id for x in net2.find_nodes(target, 5) ] assert nodes == [ x.node_id for x in net3.find_nodes(target, 5) ]