Foi lançado o IPFS 0.8 (InterPlanetary File System), um sistema de arquivos descentralizado que forma um armazenamento global de arquivos versionado, implantado na forma de uma rede P2P composta por sistemas de participantes. O IPFS combina ideias anteriormente implementadas em sistemas como Git, BitTorrent, Kademlia, SFS e Web, assemelhando-se a um ‘enxame’ único do BitTorrent (semente que participa do compartilhamento), trocando objetos Git. O IPFS se destaca pela endereçamento baseado no conteúdo, em vez do local de armazenamento e nomes arbitrários. O código da implementação de referência é escrito em Go e distribuído sob as licenças Apache 2.0 e MIT.
Na nova versão:
- Foi implementada a possibilidade de criar serviços externos para a fixação de dados dos usuários (pinning — vinculação de dados a um nó, para garantir que dados importantes sejam armazenados). Os dados fixados podem ter nomes diferentes do identificador de conteúdo (CID). É possível buscar dados tanto pelo nome quanto pelo CID. Para processar solicitações de fixação de dados, foi proposta uma API do IPFS Pinning Service, que pode ser usada diretamente no go-ipfs. No terminal, a seguinte ordem é sugerida para fixação: "ipfs pin remote": ipfs pin remote service add mysrv https://my-service.example.com/api-endpoint myAccessToken ipfs pin remote add /ipfs/bafymydata —service=mysrv —name=myfile ipfs pin remote ls —service=mysrv —name=myfile ipfs pin remote rm —service=mysrv —name=myfile
- As operações de pinning e unpinning de dados no nó local foram aceleradas. O aumento de desempenho e a redução do uso da memória são especialmente notáveis durante operações de saída ou modificação em sistemas com um grande número de fixações.
- Ao formar links "https://" para os gateways, foi adicionada a possibilidade de transmitir nomes DNSLink usando subdomínios. Por exemplo, para carregar o nome "ipns://en.wikipedia-on-ipfs.org", além dos links anteriormente suportados "https://dweb.link/ipns/en.wikipedia-on-ipfs.org", agora é possível usar links "https://en-wikipedia—on—ipfs-org.ipns.dweb.link", onde os pontos nos nomes originais são substituídos pelo símbolo "-", e os símbolos existentes "-" são escapados por mais um símbolo semelhante.
- O suporte ao protocolo QUIC foi ampliado. Para melhorar o desempenho, foi disponibilizada a opção de aumentar os buffers de recepção para UDP.
Lembramos que no IPFS, o link para acessar um arquivo está diretamente relacionado ao seu conteúdo e inclui o hash criptográfico desse conteúdo. O endereço de um arquivo não pode ser renomeado aleatoriamente, ele só pode mudar após a alteração do conteúdo. Assim como não é possível modificar um arquivo sem alterar o endereço (a versão antiga permanecerá no endereço original, enquanto a nova estará acessível através de um endereço diferente, já que o hash do conteúdo do arquivo mudará). Considerando que o identificador do arquivo muda a cada alteração, para evitar que novos links sejam compartilhados a cada vez, são fornecidos serviços para vincular endereços permanentes que levem em conta diferentes versões do arquivo (IPNS), ou para fixar um apelido, semelhante aos sistemas de arquivos tradicionais e DNS (MFS (Mutable File System) e DNSLink).
Semelhante ao BitTorrent, os dados são armazenados diretamente nos sistemas dos participantes, que trocam informações em modo P2P, sem depender de nós centralizados. Quando é necessário obter um arquivo com um determinado conteúdo, o sistema encontra participantes que possuem esse arquivo e o entrega a partir de seus sistemas em partes, em múltiplos fluxos. Após o download do arquivo para o seu sistema, o participante se torna automaticamente um dos pontos de distribuição. Para identificar os participantes da rede onde o conteúdo desejado está presente, é utilizada uma tabela hash distribuída (DHT). Para acessar o sistema de arquivos global, o IPFS pode usar o protocolo HTTP ou montar um sistema de arquivos virtual /ipfs através do módulo FUSE.
O IPFS ajuda a resolver problemas como a confiabilidade do armazenamento (se o armazenamento original falhar, o arquivo pode ser carregado de sistemas de outros usuários), a resistência à censura de conteúdo (para bloqueio, é necessário bloquear todos os sistemas de usuários que possuem uma cópia dos dados) e a organização do acesso na ausência de uma conexão direta à Internet ou com uma qualidade fraca do canal de comunicação (é possível baixar dados através dos participantes mais próximos na rede local). Além do armazenamento de arquivos e troca de dados, o IPFS pode ser utilizado como base para criar novos serviços, por exemplo, para organizar o funcionamento de sites que não estão vinculados a servidores ou para desenvolver aplicações descentralizadas.

Fonte: opennet.ru
