O que é Distributed Hash Table (DHT)?
Distributed Hash Table (DHT) é um livro de endereços partilhado que distribui a tarefa de localizar dados por vários computadores independentes. Em vez de um único servidor indicar onde fica um dado, uma DHT permite que a rede, em conjunto, aponte para o local correto. Pense nisso como perguntar a uma multidão informada onde está um ficheiro, e a multidão responde em alguns saltos rápidos.
Uma DHT guarda os seus ficheiros para sempre. Nem por isso. Armazena onde encontrar as coisas, não as coisas em si, e os dados continuam alojados nos pares que optam por os armazenar.
Como funciona a Distributed Hash Table (DHT)
Imagine a sua aplicação a pedir à comunidade por um item identificado por um hash de conteúdo. Aqui está o resumo rápido do processo.
- Passo 1: Junta-se ao enxame e torna-se um dos nós.
- Passo 2: Quer o item X, por isso pega no seu conteúdo e calcula um hash que funciona como um identificador único.
- Passo 3: Pergunta aos pares mais próximos, que encaminham a sua consulta em direção a pares matematicamente mais próximos desse ID.
- Passo 4: A consulta chega perto dos pares responsáveis, que respondem indicando quem tem atualmente o item X.
- Passo 5: Conecta-se a esses pares e faz o download diretamente deles. Rápido, simples, concluído.
Exemplo prático: IPFS (InterPlanetary File System) usa uma DHT para descobrir que pares detêm conteúdo para um determinado hash, e depois obtém o conteúdo a partir desses pares.
Porque a Distributed Hash Table (DHT) é importante
Então, porque é que isto deveria interessar-lhe para além dos pontos geek?
- Vantagem: Encontra conteúdos rapidamente sem intermediários centrais, o que traz velocidade e resiliência.
- Perspetiva: É um elemento chave das redes descentralizadas, onde a comunidade trata das pesquisas e reduz pontos únicos de falha.
- Relevância: Descoberta de pares para partilha de ficheiros, disponibilidade de dados para dapps, e até encontrar contrapartes em transações entre pares.
Quando alguém diz que uma DHT tem os seus dados, pergunte onde os dados estão armazenados e quantos pares os fixam ou replicam. Ponteiros não são cópias de segurança.
Principais características da Distributed Hash Table (DHT)
O que a torna útil e amplamente usada em projetos cripto e sistemas entre pares:
- Pesquisa: Dada uma chave, encontra os pares responsáveis em aproximadamente saltos logarítmicos, mesmo em grande escala.
- Distribuição: O índice é partilhado, por isso nenhum servidor único pode interromper a descoberta.
- Resiliência: Os pares podem entrar e sair e a rede continua a encaminhar apesar da rotatividade.
- Verificabilidade: As chaves são hashes, por isso o que obtém pode ser verificado em relação à chave.
Variações
Existem diferentes variantes, cada uma com o seu estilo de encaminhamento e respetivos compromissos:
- Kademlia: Muito usada, encaminha por distância XOR e prefere pares de longa duração.
- Chord: Organiza os pares num anel e encaminha através de tabelas "finger".
- Pastry: Usa encaminhamento baseado em prefixos com noção de proximidade.
Uma DHT é um diretório e um sistema de encaminhamento, não uma base de dados da verdade. Continua a verificar o conteúdo pelo seu hash e a encarar o que os pares afirmam com saudável ceticismo.
Exemplo
Solicita um hash de conteúdo numa aplicação que use IPFS (InterPlanetary File System), a DHT responde com vários endereços de pares, e a sua aplicação obtém os bytes diretamente desses pares.
Curiosidade
Kademlia, a variante de DHT mais popular, surgiu em 2002 e influenciou discretamente desde os magnet links do BitTorrent até o armazenamento moderno endereçado por conteúdo usado por projetos cripto. Artigo antigo, impacto atual.
Resumo
Resumo curto: uma DHT é o livro de endereços que ajuda redes de pares a encontrar o que precisam sem pedir a um servidor central. Ideia simples, grande impacto.
