Python Library/Framework для написания приложений P2P

Есть ли библиотека или фреймворк для написания приложений P2P в Python?

Я знаю, что первоначальный клиент Bittorrent был написан на Python. Я смотрю что-то вроде JXTA, но для Python.

Ответы

Ответ 1

Twisted в значительной степени является ответом на все, что серьезно связано с сетью в Python, но вам действительно нужно покупать в Twisted способ делать что-то. Это не внутренний стек P2P, это цикл событий, система обратного вызова и сетевая инфраструктура.

Divmod Vertex в настоящее время не поддерживается, и все еще был довольно грубым, когда я пытался использовать его несколько лет назад.

CSpace может быть самым близким к тому, что вы ищете: "платформа для безопасного, децентрализованного пользователя и пользователя связь через Интернет". Он абстрагирует прохождение P2P и NAT, поэтому ваше приложение может нормально работать и не быть "приложением P2P".

Аналогичным образом из Австралии появилась старая система P2P под названием "The Circle", написанная полностью на Python, которая обеспечивала безопасную отправку сообщений P2P, чат, совместное использование файлов и другие функции. 0.41c была последней версией: http://savannah.nongnu.org/projects/circle/

Также из моих закладок:

http://entangled.sourceforge.net/ является Entangled, "распределенная хеш-таблица (DHT) на основе Kademlia, а также одноранговый кортеж космической реализации".

http://khashmir.sourceforge.net/ - это распределенная хеш-таблица на Python, известная тем, что она использует протокол Airhook, который является очень отказоустойчивым (предназначен для например, через сотовые сети).

http://kenosis.sourceforge.net/ - это P2P RPC-система Python.

Ответ 2

Лучший вариант, я думаю, конечно, использовать скрученный.

Была построена старая версия BitTorrent. Ссылка - это последняя известная версия, которая использует скрученную. Вы можете изучить это как отправную точку.

Там также Vertex. Это библиотека, которая использует скрученные и позволяет p2p с обходом брандмауэра.

Ответ 3

Поскольку этот вопрос задавали и затем отвечали, ZeroMQ появился, и мне это действительно нравится. Модуль Python называется pyzmq. Это делает процесс создания сокетов TCP менее неуклюжим, особенно при работе с шаблонами сообщений, отличными от Request > Respond, хотя он и делает это. Это отлично подходит для базовых серверов, приложений p2p, обмена сообщениями, распределенной обработки, вы называете это.

Ответ 4

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

Ответ 5

Я цитирую страницы Sun JXTA, которые имеют дату декабря 2002 года,

"Project JXTA имеет ссылочную реализацию Java, доступную из download.jxta.org, и в настоящее время работает над добавлением эталонных реализаций на других распространенных языках, включая C, Objective C, Perl, Ruby и Python. Хотя реализация Java наиболее полная реализация протоколов JXTA, реализация C (доступная как для Win32, так и для Linux) быстро приближается к тому же уровню полноты".

Ответ 6

Привет (от лидера двух последних выпусков JXTA для Java 2.6 и 2.7),

В Python не известна реализация JXTA.

Если кто-то хочет решить эту проблему, сначала нужно узнать о протоколах JXTA 2.0. Практическая книга JXTA II, доступная онлайн для чтения в Scribd, должна помочь понять технологию.

Болейте!