我对这项任务非常迷茫。我们应该使用kademlia创建3个python文件。这两个文件是节点,第三个文件是DHT应用程序的一个集合查询。我们还收到一个CSV文件,必须导入该文件并将数据发送到DHT网络任何帮助都将不胜感激以下是作业:
您首先需要创建一个初始起始节点(参见下面的代码)。这将在端口8468的本地系统上启动
# Modified from: https://kademlia.readthedocs.io/en/latest/intro.html
import logging
import asyncio
from kademlia.network import Server
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
log = logging.getLogger('kademlia')
log.addHandler(handler)
log.setLevel(logging.DEBUG)
loop = asyncio.get_event_loop()
loop.set_debug(True)
server = Server()
loop.run_until_complete(server.listen(8468))
try:
loop.run_forever()
except KeyboardInterrupt:
pass
finally:
server.stop()
loop.close()
接下来,您需要在端口8469上启动DHT应用程序的另一个本地节点(请参阅下面的代码)
# Modified from: https://kademlia.readthedocs.io/en/latest/intro.html
import logging
import asyncio
from kademlia.network import Server
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
log = logging.getLogger('kademlia')
log.addHandler(handler)
log.setLevel(logging.DEBUG)
bootstrap_node = ("localhost", int("8468"))
loop = asyncio.get_event_loop()
loop.set_debug(True)
server = Server()
loop.run_until_complete(server.listen(8469))
loop.run_until_complete(server.bootstrap([bootstrap_node]))
try:
loop.run_forever()
except KeyboardInterrupt:
pass
finally:
server.stop()
loop.close()
最后,下面的代码将允许您查询DHT应用程序并添加键/值对(见下文)
# Modified from: https://kademlia.readthedocs.io/en/latest/querying.html
import logging
import asyncio
from kademlia.network import Server
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
log = logging.getLogger('kademlia')
log.addHandler(handler)
log.setLevel(logging.DEBUG)
async def run():
server = Server()
await server.listen(8470)
bootstrap_node = ("localhost", int("8469"))
await server.bootstrap([bootstrap_node])
await server.set("myKey2", "myValue2")
result = await server.get("myKey2")
print("Get result:", result)
server.stop()
asyncio.run(run())
现在您已经有了两个节点的代码以及设置和查询DHT应用程序的代码,使用DHT_Data.csv文件,编写一个Python程序,导入csv文件并将该数据发送到DHT网络。此外,编写一些代码,获取DHT_Data.csv文件中的密钥列表,并查询DHT应用程序,以显示您可以查询和返回值
以下是CSV文件的屏幕截图: DHT_Data.csv
以下是我的代码截图:
目前没有回答
相关问题 更多 >
编程相关推荐