Como inicializo um serviço P2P para que os usuários possam se localizar?

5

Meu aplicativo P2P precisa localizar colegas, mas não quero codificar um endereço DNS ...

Um exemplo que eu vi é bootstrapping via IRC, mas eu gostaria de fazer isso em HTTP / s, se possível.

Quais são minhas opções e técnicas para inicializar um aplicativo P2P?

    
por random65537 21.11.2013 / 23:03
fonte

1 resposta

7

É mais fácil se você tem uma "mothership". Hoje em dia não precisa ser um único servidor, um SPOF, há toneladas de soluções baratas de CDN (rede de distribuição de conteúdo) e de nuvem.

Caso contrário, empreste uma ideia de um software que seja o mais bem-sucedido: o bittorrent. Tabelas de hash distribuídas (DHT) são simplesmente lindas. E se não me engano, você pode pegar o seu próprio software na rede DHT. O DHT não precisa ser específico para o bittorrent, mas existem milhões de hosts na rede bittorrent DHT, então por que não usá-lo para qualquer coisa que você goste? É um enorme recurso gratuito, o protocolo é trivial, mas já existem muitas bibliotecas para ele, é como uma mina de ouro.

É claro que o DHT também precisa ser bootstrap, mas é um problema já resolvido. Você pode coletar uma grande lista de hosts DHT conhecidos, ou apenas investigar randombly, é tão grande que qualquer um pode funcionar.

O DHT do Bittorrent é simples: todo torrent tem um hash, e a rede DHT armazena uma lista de pares para cada hash. Tudo o que você precisa fazer é criar um hash fixo e falso para suas necessidades e armazená-lo no DHT. Você pode ajudar o bootstrapping se você mesmo criar alguns nós DHT próximos ao seu hash fixo, mas isso não será necessário.

Bem, na verdade não é um recurso totalmente gratuito, se você participa da rede DHT, também deve participar do armazenamento de outros hashes, e outros colegas usarão seus colegas como um serviço.

    
por 07.01.2014 / 13:43
fonte