|
- from xmlrpc.client import ServerProxy
- import random
-
- M = 5
- PORT = 1234
- RING = [2, 7, 11, 17, 22, 27]
-
-
- def lookup(node_id: int, key: int) -> None:
- """Calls the get method for a remote node over RPC and print the result"""
- with ServerProxy(f'http://node_{node_id}:{PORT}') as node:
- print(f"lookup({node_id}, {key}) = {node.get(key)}")
-
-
- if __name__ == '__main__':
- print("Client started")
-
- # Asking a random node to insert an entry into the DHT
- # String keys should be consistently hashed to an integer value between 0 and (2**M)-1
- for i in range(2 ** M):
- with ServerProxy(f'http://node_{random.choice(RING)}:{PORT}') as node:
- node.put(i, f"value_{i}")
-
- # Querying a DHT node for the value of a certain key.
- lookup(2, 20)
- lookup(11, 15)
- lookup(17, 1)
- lookup(22, 27)
- lookup(2, 5)
|