instrumentation: add next-share/
[cs-p2p-next.git] / instrumentation / next-share / BaseLib / Core / DecentralizedTracking / kadtracker / ktracker_example.py.no
1 '''
2 This example shows how ktracker can be used as a library
3 '''
4
5 import time
6
7 import ktracker_query
8 import ktracker
9
10
11 my_dht_port = 1111
12
13 bootstrap_node_addr = ('127.0.0.1', 2222)
14 bootstrap_node_id = '0' * 20
15
16 info_hash = 'z' * 20
17 my_bt_addr = ('127.0.0.1', my_dht_port)
18
19
20 def on_query_event(query):
21     print '-' * 40
22     print 'Query status:', query.status
23     print query.peers
24     print '-' * 40
25
26
27
28
29 ktracker = ktracker.KTracker(my_dht_port)
30 ktracker.start()
31
32 # join an existing DHT via bootstraping node (node_id is optional)
33 ktracker.add_bootstrap_node(bootstrap_node_addr)
34
35 # create an announce_and_get_peers query
36 query = ktracker_query.AnnounceAndGetPeersQuery(info_hash, my_bt_addr)
37 ktracker.do_query(query, on_query_event)
38
39 # let's give some time for the first query to finish
40 time.sleep(60)
41
42 # create a get_peers query
43 query = ktracker_query.GetPeersQuery(info_hash)
44 ktracker.do_query(query, on_query_event)
45
46 # we are done
47 ktracker.stop()