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, должна помочь понять технологию.
Болейте!
Ответ 7
Stackless Python может вас заинтересовать.