Библиотека Python / фреймворк для написания P2P-приложений [закрыт]

StackOverflow https://stackoverflow.com/questions/963305

  •  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-приложений, обмена сообщениями, распределенной обработки - всего, что угодно.

Я не знаю, существует ли такая вещь, хотя я могу предложить следующие альтернативы:

Я цитирую из страницы 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, должна помочь понять технологию.

Приветствую!

Питон без стека может быть, это вас заинтересует.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top