Skip to content

Tabela Hash Distribuida (DHT)

Como os nós IPFS se encontram e descobrem quem possui o conteúdo que você está procurando.

O que é um DHT?

Uma Tabela Hash Distribuida é um sistema de busca descentralizado. Pense nela como uma lista telefônica que nenhuma pessoa possui por completo — em vez disso, cada participante possui algumas paginas e sabe a quem perguntar pelas paginas que não tem.

No IPFS, o DHT mapeia CIDs para os endereços de rede dos nós que possuem o conteúdo correspondente. Quando você solicita um arquivo pelo CID, o DHT ajuda a encontrar quais nós podem servi-lo.

Como funciona no IPFS

O IPFS usa uma variante do DHT Kademlia. Cada no mantem uma tabela de roteamento de nós próximos (em termos de distância XOR entre IDs dos nós). Quando um no quer encontrar conteúdo:

  1. Calcula a distância XOR entre o CID e os IDs de nós conhecidos
  2. Pergunta aos nós mais próximos que conhece: "quem tem este CID?"
  3. Esses nós possuem o conteúdo ou apontam para nós que estão mais perto
  4. A busca converge — cada salto se aproxima de um no que possui o arquivo
  5. O conteúdo e obtido diretamente do no provedor

TIP

Essa busca tipicamente leva apenas alguns saltos — mesmo em uma rede de milhoes de nós, um arquivo pode ser localizado em 20-30 passos.

Registros de provedor

Quando um no fixa conteúdo, ele pública um registro de provedor no DHT anunciando: "Eu tenho o CID X, e meu endereço e Y." Esses registros expiram após ~24 horas e devem ser atualizados periodicamente. Por isso a fixação ativa importa — sem ela, os registros de provedor expiram é o conteúdo se torna impossível de descobrir.

Por que você não precisa pensar no DHT

O IPFS.NINJA gerência todas as interações com o DHT por você. Quando você faz upload de um arquivo:

  • Nosso cluster fixa o arquivo e pública registros de provedor automaticamente
  • Os registros de provedor são atualizados continuamente — seu conteúdo permanece descobrível
  • Nosso gateway resolve CIDs via DHT ao servir requisições
  • Você apenas usa CIDs e URLs de gateway — o DHT é invisiinvisivel