Example #1
0
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()
Example #2
0
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) ]