Kademlia-dynamic - это легковесная асинхронная реализация распределенной хэш-таблицы (DHT) на базе алгоритма Kademlia, написанная на чистом Python и не имеющая никаких внешних зависимостей.
В отличие от классического пакета
kademlia с PyPI, данный модуль спроектирован с упором на современный asyncio (импортируется как kademlia_dynamic), работает из коробки без сторонних библиотек и поддерживает тонкую настройку параметров сети.set() и get() нативно принимают и возвращают как обычные строки (str), так и бинарные файлы (bytes).JSON (удобен для отладки) и компактный Bencode в стиле BitTorrent (BEP 5).verify_response_source сбрасывает пакеты, пришедшие с неисходных IP/портов, защищая узел от спуфинга.max_dispatch_tasks) защищает узел от перегрузки при высоком сетевом трафике.Установка из PyPI:
pip install kademlia-dynamic
Пример создания и запуска DHT-узла:
import asyncio
from kademlia_dynamic import KademliaServer
async def main():
# Создаем сервер (можно выбрать serialization="bencode")
server = KademliaServer(serialization="json")
# Слушаем UDP-порт (для работы в LAN/WAN можно передать ip="0.0.0.0")
await server.listen(port=8000)
# Подключаемся к существующему узлу
await server.bootstrap([("192.168.1.100", 8000)])
# Сохраняем текстовые или бинарные данные в сеть
await server.set("my_key", "Hello, P2P!")
await server.set("my_bytes", b"\x00\x01\x02\x03")
# Читаем данные из DHT
value = await server.get("my_key")
print("Результат:", value)
server.stop()
asyncio.run(main())
#Python #P2P #Kademlia #DHT #AsyncIO #Networking #OpenSource #DevTools #Decentralized
https://github.com/f4rsantos/kademlia_dynamic
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - f4rsantos/kademlia_dynamic
Contribute to f4rsantos/kademlia_dynamic development by creating an account on GitHub.
1⚡3👍3 1