Come posso eseguire il bootstrap di un servizio P2P in modo che gli utenti possano localizzarsi a vicenda?

5

La mia app P2P ha bisogno di localizzare i peer, ma non voglio codificare un indirizzo DNS ...

Un esempio che ho visto è il bootstrap via IRC, ma mi piacerebbe farlo su HTTP / s se possibile.

Quali sono le mie opzioni e tecniche per l'avvio di un'applicazione P2P?

    
posta random65537 21.11.2013 - 23:03
fonte

1 risposta

7

È il più semplice se hai una "nave madre". Al giorno d'oggi non deve essere un singolo server, un SPOF, ci sono tonnellate di CDN (content delivery network) a basso costo e soluzioni cloud.

Altrimenti, prendi in prestito un'idea da un software che ha il maggior successo: bittorrent. Le tabelle hash distribuite (DHT) sono semplicemente belle. E se non sbaglio, puoi portare il tuo software sulla rete DHT. DHT non deve essere specifico bittorrent, ma ci sono già milioni di host nella rete DHT bittorrent, quindi perché non usarlo per tutto ciò che ti piace? È un'enorme risorsa gratuita, il protocollo è banale, ma ci sono già molte librerie per questo, è come una miniera d'oro.

Naturalmente, anche il DHT deve essere riavviato, ma è già un problema risolto. Puoi raccogliere una grande lista di host DHT conosciuti, o solo sondare in modo rudimentale, è così grande che entrambi possono funzionare.

Il DHT di Bittorrent è semplice: ogni torrente ha un hash e la rete DHT memorizza un elenco di pari per ogni hash. Tutto quello che devi fare è creare un hash falso e corretto per le tue esigenze e memorizzarlo nel DHT. Puoi aiutare il bootstrap se crei tu stesso alcuni nodi DHT vicini all'hash fisso, ma non sarà necessario.

Beh, in realtà non è una risorsa completamente gratuita, se si partecipa alla rete DHT, allora si dovrebbe anche partecipare alla memorizzazione di altri hash, e altri peer useranno i propri pari come un servizio.

    
risposta data 07.01.2014 - 13:43
fonte

Leggi altre domande sui tag