2009-06-08 14 views

risposta

19

Twisted è praticamente la risposta a qualsiasi cosa seriamente connessa alla rete in Python, ma devi davvero acquistare il modo di fare Twisted. Non è intrinsecamente uno stack P2P, è un ciclo di eventi, un sistema di callback e un framework di rete.

Divmod Vertex non è attualmente in manutenzione, ed era ancora piuttosto approssimativo quando ho provato a utilizzarlo alcuni anni fa.

CSpace potrebbe essere il più vicino a quello che stai cercando: "una piattaforma per la comunicazione sicura, decentralizzata, utente-a-utente su Internet". Estrae la traversal P2P e NAT in modo che la tua app possa agire normalmente e non essere "un'app P2P". Allo stesso modo, alcuni anni fa esisteva un vecchio sistema P2P chiamato "The Circle", scritto interamente in Python, che disponeva di messaggistica P2P sicura, chat, condivisione di file e altre funzionalità. 0.41c è stata l'ultima versione: http://savannah.nongnu.org/projects/circle/

anche dai miei preferiti:

http://entangled.sourceforge.net/ è impigliata ", una tabella hash distribuita (DHT) sulla base di Kademlia, così come un'implementazione spazio tuple peer-to-peer. "

http://khashmir.sourceforge.net/ è una tabella hash distribuita in Python, notevole perché utilizza il protocollo Airhook, che è molto fault-tolerant (progettato per essere utilizzato, ad esempio, su reti cellulari).

http://kenosis.sourceforge.net/ è un sistema Python P2P RPC.

+0

Divmod Vertex ha visto un po 'di manutenzione di recente. Ora puoi trovarlo su http://github.org/twisted/vertex –

+0

@ Jean-Paul Calderone è Vertex un framework di lavoro per l'app p2p o solo in teoria? Il doc si concentra più sulla filosofia che sulla guida. – PieOhPah

2

Non so se esiste una cosa del genere, anche se posso offrire le seguenti alternative:

+0

Grazie per la risposta. Ma attualmente ho assolutamente bisogno di CPython. L'uso di JXTA-C sembra troppo complicato per ora –

0

cito da the Sun JXTA pages che hanno una data di dicembre 2002,

"Project JXTA ha un dominio Java L'implementazione di rence è disponibile da download.jxta.org e sta attualmente lavorando per aggiungere implementazioni di riferimento in altri linguaggi comuni, inclusi C, Objective C, Perl, Ruby e Python. Anche se l'implementazione Java è l'implementazione più completa dei protocolli JXTA, l'implementazione C (disponibile sia per Win32 e Linux) si sta avvicinando velocemente lo stesso livello di completezza ".

+0

Sfortunatamente, l'implementazione di Python è lungi dall'essere completa –

-3

Stackless Python potrebbe essere di vostro interesse.

+0

Non sono sicuro di come si tratti di applicazioni P2P? –

4

opzione migliore che posso pensare, naturalmente, è quello di utilizzare twisted.

Old version of BitTorrent è stato costruito con esso. Il collegamento è per durare versione nota che utilizza contorto. si può studiare che come punto di partenza.

C'è anche Vertex. È una libreria che usa twisted e consente p2p con bypass del firewall.

+0

sembra che il collegamento Vertex non sia valido ora – Darek

+0

@tdi sì, sfortunatamente il server divmod ha sofferto alcuni problemi hardware e non c'è specchio. Posso trovare il codice sorgente di Vertex su http://launchpad.net/divmod ma non i documenti che stavo collegando prima. Se riesci a trovare un nuovo URL di documentazione di Vertex da indicare, ti prego, dimmi, aggiornerò la risposta. Grazie. – nosklo

0

Hi (dal leader delle ultime due versioni di JXTA per Java 2.6 & 2.7),

Non v'è alcuna nota implementazione di JXTA in Python.

Se qualcuno vuole affrontare questo problema, si dovrebbe prima conoscere i protocolli JXTA 2.0. Il libro Pratico JXTA II disponibile online per la lettura su Scribd dovrebbe aiutare a comprendere la tecnologia.

Cheer!

3

Dato che questa domanda è stata posta e successivamente ha risposto, è emerso lo ZeroMQ, e mi piace VERAMENTE. Il modulo Python si chiama pyzmq. Rende il processo di creazione di socket TCP molto meno complicato, specialmente quando si gestiscono modelli di messaggi diversi da Request> Respond, sebbene lo faccia altrettanto. È perfetto per i server di base, le app p2p, i messaggi, l'elaborazione distribuita, il tuo nome.

Problemi correlati