O Interplanetary File System (IPFS) é uma rede distribuída de compartilhamento de arquivos ponto a ponto que está bem posicionada para se tornar a base de uma nova web descentralizada. Veja como funciona e como você pode começar a usá-lo.
Índice
Uma Internet Descentralizada
Mesmo sendo global, a world wide web ainda é uma rede centralizada . O armazenamento de dados por trás da Internet é predominantemente de servidores – físicos ou virtuais – em massivos farms de servidores ou plataformas de nuvem . Essas instalações são de propriedade de uma única empresa. Os servidores são de propriedade ou alugados por outras empresas e configurados e expostos para serem acessíveis ao mundo exterior.
Qualquer pessoa que queira acessar as informações nesses servidores deve fazer uma conexão HTTPS de seu navegador para o servidor apropriado. O servidor está no centro, atendendo a todas as solicitações de acesso aos dados que detém.
Isso é uma simplificação, é claro, mas descreve o modelo geral. Para permitir o dimensionamento e fornecer robustez, as organizações podem ativar servidores espelho e redes de entrega de conteúdo . Mas mesmo assim, ainda há um número relativamente pequeno e finito de locais que as pessoas podem acessar para acessar esses arquivos.
O IPFS é uma implementação de uma rede descentralizada . Um dos sistemas descentralizados mais populares é o Git , o software de controle de versão. Git é um sistema distribuído porque todo desenvolvedor que clonou um repositório tem uma cópia de todo o repositório, incluindo o histórico, em seu computador. Se o repositório central for eliminado, qualquer cópia do repositório poderá ser usada para restaurá-lo. O IPFS pega esse conceito distribuído e o aplica ao armazenamento de arquivos e à recuperação de dados.
A IPFS foi criada por Juan Benet e é mantida pela Protocol Labs , empresa que ele fundou. Eles pegaram a natureza descentralizada do Git e as técnicas distribuídas de economia de largura de banda dos torrents e criaram um sistema de arquivamento que funciona em todos os nós da rede IPFS. E está aqui agora, e funcionando.
Como funciona o IPFS
A web descentralizada do IPFS é composta por todos os computadores conectados a ela, conhecidos como nós . Os nós podem armazenar dados e torná-los acessíveis a qualquer pessoa que os solicite.
Se alguém solicitar um arquivo ou uma página da Web, uma cópia do arquivo será armazenada em cache em seu nó. À medida que mais e mais pessoas solicitam esses dados, mais e mais cópias em cache existirão. As solicitações subsequentes para esse arquivo podem ser atendidas por qualquer nó — ou combinação de nós — que tenha o arquivo nele. O ônus de entregar os dados e atender a solicitação é gradualmente dividido entre muitos nós.
Isso exige um novo tipo de endereço da web. Em vez de roteamento baseado em endereço, onde você precisa saber a localização dos dados e fornecer uma URL específica para esses dados, a web descentralizada usa roteamento baseado em conteúdo .
Você não diz onde estão os dados; você solicita o que deseja, e ele é encontrado e recuperado para você. Como os dados são armazenados em muitos computadores diferentes, todos esses computadores podem alimentar partes dos dados ao seu computador de uma só vez, como um download de torrent . Isso tem como objetivo diminuir a latência, reduzir a largura de banda e evitar gargalos causados por um único servidor central.
Afastar-se do modelo centralizado significa que não há um ponto focal para os hackers atacarem. Mas a preocupação imediata para a maioria das pessoas será a ideia de que seus arquivos, imagens e outras mídias serão armazenados nos computadores de outras pessoas.
Não é bem assim. O IPFS não é algo ao qual você se conecta e faz upload. Não é um Dropbox distribuído e comunitário. É algo em que você participa hospedando um nó ou pagando para usar um nó provisionado profissionalmente hospedado por um serviço de nuvem. E, a menos que você escolha compartilhar ou publicar algo, não será acessível a mais ninguém. Na verdade, o termo “upload” é enganoso. O que você está realmente fazendo é importar arquivos para seu próprio nó.
Se você deseja que um arquivo seja acessível a outras pessoas, mas precisa manter o conteúdo restrito a alguns selecionados, você deve criptografá-lo antes de importá-lo. A transmissão de dados é criptografada em ambas as direções, mas os arquivos importados não são criptografados propositalmente por padrão. Isso deixa a escolha da tecnologia de criptografia para você. O IPFS não oferece uma forma de criptografia de armazenamento de arquivos como a criptografia “oficial”.
Como os dados são armazenados
Os dados são armazenados em blocos de 256 KB, chamados objetos IPFS. Arquivos maiores que isso são divididos em quantos objetos IPFS forem necessários para acomodar o arquivo. Um objeto IPFS por arquivo contém links para todos os outros objetos IPFS que compõem esse arquivo.
Quando um arquivo é adicionado à rede IPFS, ele recebe um ID de hash exclusivo de 24 caracteres, chamado de ID de conteúdo ou CID. É assim que é identificado e referenciado na rede IPFS. Recalcular o hash quando o arquivo é recuperado verifica a integridade do arquivo . Se a verificação falhar, o arquivo foi modificado. Quando os arquivos são atualizados legitimamente, o IPFS lida com o controle de versão dos arquivos. Isso significa que a nova versão do arquivo é armazenada junto com a versão anterior. O IPFS opera como um sistema de arquivos distribuído e esse conceito de controle de versão fornece um grau de imutabilidade a esse sistema de arquivos.
Digamos que você armazene um arquivo no IPFS em seu nó e alguém chamado Dave o solicite e faça o download para seu nó. A próxima pessoa que pedir esse arquivo pode obtê-lo de você, ou de Dave, ou de uma maneira semelhante a um torrent, com partes do arquivo provenientes de seu nó e do nó de Dave. Quanto mais pessoas baixarem o arquivo, mais nós haverá para participar e ajudar nas solicitações de arquivos subsequentes.
A coleta de lixo removerá periodicamente objetos IPFS armazenados em cache. Se você deseja armazenar um arquivo permanentemente, pode fixá -lo em seu nó. Isso significa que não será limpo durante a coleta de lixo. Você pode pagar pelo armazenamento em provedores de armazenamento em nuvem que expõem seus dados à rede IPFS e os mantêm permanentemente fixados, e há serviços especificamente adaptados para hospedar sites acessíveis por IPFS.
Se algo em seu site se tornar viral e direcionar grandes ondas de tráfego para seu site, as páginas serão armazenadas em cache em todos os nós que recuperam essas páginas. Essas páginas em cache serão usadas para ajudar a atender outras solicitações de página, ajudando você a aproveitar a onda e satisfazer a demanda.
Obviamente, tudo isso depende de um número suficiente de nós ativados e disponíveis, e com dados suficientes fixados e armazenados em cache. E isso requer participantes.
Como instalar o IPFS
Os usuários do Windows podem baixar e executar o arquivo EXE encontrado na página de lançamento do IPFS . Se você estiver em um Mac, baixe o arquivo DMG e arraste-o para Aplicativos como faria normalmente. Se você tiver problemas, confira a documentação oficial .
Para fins de demonstração, percorreremos a instalação no Ubuntu . Existem pacotes Snap disponíveis para IPFS e para o cliente de desktop IPFS em qualquer distribuição Linux. Se você apenas instalar o IPFS, terá um nó IPFS totalmente funcional que poderá controlar e administrar usando um navegador. Se você instalar o cliente de desktop, não precisará usar o navegador, o cliente fornecerá todas as mesmas funcionalidades.
Para instalar os Snaps use:
sudo snap instalar ipfs
sudo snap install ipfs-desktop
Agora você precisa executar o comando para inicializar seu nó.
inicialização ipfs
Os comandos a seguir são sugeridos pelo IPFS se você tiver dificuldades e o daemon não for executado ou você não conseguir se conectar a ele. Em todos os computadores de teste que tentamos, eles eram necessários, então você pode ir em frente e emiti-los agora:
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https ://webui.ipfs.io"]'
ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]'
sudo sysctl -w net.core.rmem_max=2500000
Com isso fora do caminho, você pode iniciar o daemon IPFS.
daemon ipfs
Quando o daemon é iniciado, ele relata os dois endereços que você pode usar para se conectar a ele. Um é para a área de trabalho do IPFS e o outro é para o IPFS “webui” ou interface de usuário da web.
A interface web
Cole o endereço webui http://127.0.0.1:5001/webui
em seu navegador para se conectar ao front-end da web IPFS.
A página padrão é a tela “Status”. Este é um painel que mostra o status e a atividade do seu nó. Ele mostra o tamanho dos arquivos que você está hospedando, mais o tamanho total dos objetos IPFS em cache que seu nó está hospedando. Esses são dados de outro lugar na rede IPFS. O painel também exibe dois medidores em tempo real mostrando o tráfego IPFS de entrada e saída e um gráfico em tempo real mostrando o histórico desse tráfego.
Para mudar para uma tela diferente, clique em um dos ícones na barra lateral esquerda. A tela “Arquivos” permite que você veja os arquivos importados para o IPFS. Você pode usar o botão azul “Importar” para procurar arquivos ou pastas em seu computador que deseja importar para o IPFS.
O IPFS faz uso de árvores Merkle. Estes são um superconjunto muito eficiente de árvores de hash binárias, inventado em 1979 por Ralph Merkle . Se você tem muitas árvores, você tem uma floresta. O ícone “Explorar” abre uma tela que permite navegar por diferentes tipos de informações armazenadas no IPFS e em sua floresta Merkle.
Há um arquivo de desenhos animados do conhecido site XKCD . Clicar nessa opção e selecionar um desenho animado entrega o desenho escolhido para você através do IPFS.
O ícone “Peers” abre um mapa-múndi que mostra onde suas conexões IPFS estão localizadas ao redor do globo.
Em poucos minutos, tínhamos conexões da Austrália, Bielorrússia, Bélgica, Canadá, China, Finlândia, França, Alemanha, Japão, Malásia, Holanda, Noruega, Polônia, Portugal, Romênia, Rússia, Cingapura, Coréia do Sul, Suécia, Taiwan, Turquia, Reino Unido e, claro, EUA.
Prova positiva, se alguma for necessária, de que o IPFS gerou um burburinho global. Você não se conectará a todos os nós disponíveis, é claro. Isso seria ineficiente.
O cliente de área de trabalho IPFS
Encontre o IPFS Desktop no inicializador de aplicativos do seu sistema. No GNOME, com o daemon IPFS parado , pressione a tecla “Super” e digite “ipfs”. Você verá o ícone azul do cubo IPFS.
Clique neste ícone e o cliente de desktop será iniciado. Ele iniciará o próprio daemon.
A aparência e a funcionalidade do cliente de desktop são exatamente as mesmas da interface da Web, mas desta vez ele está sendo executado como um aplicativo independente.
Um recurso adicional que o aplicativo oferece é um indicador de aplicativo na área de notificação.
Isso lhe dá acesso rápido a um menu de opções e um indicador de semáforo do status do seu nó. O indicador fica verde para funcionamento normal, vermelho para erro e amarelo para inicialização.
O que vem depois?
Nada substituirá de repente a web centralizada existente, mas com o tempo as coisas vão evoluir. Talvez o IPFS seja um vislumbre do que pode evoluir.