Библиотека Python / фреймворк для написания P2P-приложений [закрыт]
-
12-09-2019 - |
Вопрос
Существует ли какая - либо библиотека или фреймворк для написания P2P - приложений на Python ?
Я знаю, что первоначальный клиент Bittorrent был написан на Python.Я выгляжу примерно так JXTA но для Python.
Решение
Twisted - это в значительной степени ответ на все, что серьезно связано с сетью в Python, но вы действительно должны поверить в Twisted способ ведения дел.По сути, это не P2P-стек, а цикл событий, система обратного вызова и сетевая платформа.
Divmod Vertex в настоящее время не поддерживается, и все еще был довольно грубым, когда я пытался использовать его несколько лет назад.
Cпространство возможно, это самое близкое к тому, что вы ищете:"платформа для безопасного, децентрализованного взаимодействия пользователя с пользователем через Интернет". Она абстрагирует обход P2P и NAT, чтобы ваше приложение могло работать нормально и не было "приложением P2P".
Аналогично, несколько лет назад в Австралии существовала старая P2P-система под названием "The Circle", полностью написанная на Python, которая обеспечивала безопасные P2P-сообщения, чат, общий доступ к файлам и другие функции.0.41c была последней версией: http://savannah.nongnu.org/projects/circle/
Также из моих закладок:
http://entangled.sourceforge.net/ запутана "распределенная хэш-таблица (DHT), основанная на Kademlia, а также реализация однорангового пространства кортежей".
http://khashmir.sourceforge.net/ является распределенной хэш-таблицей Python, примечательной тем, что она работает в сети с использованием протокола Airhook, который очень отказоустойчив (предназначен для использования, напримерпо сотовым сетям).
http://kenosis.sourceforge.net/ представляет собой систему Python P2P RPC.
Другие советы
Лучший вариант, который я могу придумать, конечно, это использовать скрученный.
Старая версия BitTorrent был построен с его помощью.Ссылка находится на последнюю известную версию, использующую twisted.Вы можете изучить это в качестве отправной точки.
Есть также Вершина.Это библиотека, которая использует twisted и допускает p2p с обходом брандмауэра.
Поскольку этот вопрос был задан и на него впоследствии был дан ответ, ZeroMQ ( Нулевой код ) появился, и мне это ДЕЙСТВИТЕЛЬНО нравится.Модуль Python называется pyzmq.Это делает процесс построения TCP-сокетов намного менее неуклюжим, особенно при работе с шаблонами сообщений, отличными от Запроса> Ответить, хотя это тоже работает.Это отлично подходит для базовых серверов, p2p-приложений, обмена сообщениями, распределенной обработки - всего, что угодно.
Я не знаю, существует ли такая вещь, хотя я могу предложить следующие альтернативы:
- использование Джитон и JXTA
- использование Python C-API или ГЛОТОК и JXTA-C
Я цитирую из страницы Sun JXTA которые имеют дату декабря 2002 года,
"Проект JXTA имеет эталонную реализацию Java, доступную по адресу download.jxta.org, и в настоящее время работает над добавлением эталонных реализаций на других распространенных языках, включая C, Objective C, Perl, Ruby и Python.Хотя реализация Java является наиболее полной реализацией протоколов JXTA, реализация C (доступная как для Win32, так и для Linux) быстро приближается к тому же уровню завершенности ".
Привет (от автора двух последних выпусков JXTA для Java 2.6 и 2.7),
Известной реализации JXTA в Python не существует.
Если кто-то хочет решить эту проблему, сначала следует ознакомиться с протоколами JXTA 2.0.Практическая книга JXTA II, доступная онлайн для чтения на Scribd, должна помочь понять технологию.
Приветствую!
Питон без стека может быть, это вас заинтересует.