lançamento do sistema de arquivos descentralizado (InterPlanetary File System), formando um armazenamento global de arquivos versionado, implementado 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, e se assemelha a um único 'cardume' BitTorrent (pares que participam da distribuição), trocando objetos Git. O IPFS se caracteriza por endereçamento baseado em conteúdo, em vez de local de armazenamento e nomes arbitrários. O código da implementação de referência está escrito na linguagem Go e sob as licenças Apache 2.0 e MIT.
Na nova versão, o transporte , que foi substituído pela transporte , no protocolo e desenvolvido no contexto de uma pilha de rede modular para aplicativos P2P . Como transporte de fallback, o TLSv1.3 foi mantido. Administradores de nós que utilizam versões antigas do IPFS (Go IPFS < 0.5 ou JS IPFS < 0.47) são aconselhados a atualizar o software para evitar degradação de desempenho.
Na nova versão, também foi feita a transição para o uso de chaves ed25519 por padrão em vez de RSA. O suporte para as antigas chaves RSA foi mantido, mas novas chaves agora serão geradas utilizando o algoritmo ed25519. O uso de chaves públicas incorporadas ed25519 resolve o problema do armazenamento de chaves públicas, por exemplo, para verificar dados assinados utilizando ed25519, basta a informação do PeerId. Os nomes das chaves nos caminhos IPNS agora são codificados usando o algoritmo base36 CIDv1 em vez de base58btc.
Além da mudança do tipo de chaves por padrão, o IPFS 0.7 adicionou a capacidade de rotação de chaves de identificação. Para trocar a chave do nó, agora é possível executar o comando 'ipfs key rotate'. Além disso, novos comandos para importação e exportação de chaves ('ipfs key import' e 'ipfs key export') foram adicionados, que podem ser usados para fins de backup, assim como o comando 'ipfs dag stat' para exibir estatísticas sobre DAG (Gráficos Acíclicos Distribuídos).
Vale lembrar que no IPFS o link para acessar um arquivo está diretamente relacionado ao seu conteúdo e inclui um hash criptográfico do conteúdo. O endereço do arquivo não pode ser renomeado aleatoriamente; ele só pode mudar após uma alteração no conteúdo. Da mesma forma, não é possível modificar um arquivo sem alterar seu endereço (a versão antiga permanecerá no endereço antigo e a nova estará acessível por outro endereço, uma vez que o hash do conteúdo do arquivo mudará). Considerando que o identificador do arquivo muda a cada alteração, para evitar o envio de novos links, são fornecidos serviços para vincular endereços permanentes que consideram diferentes versões do arquivo,), ou para fixar um apelido, semelhante aos FSS e DNS tradicionais, ( (Sistema de Arquivos Mutáveis) e ).
Assim como no 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 conteúdo específico, o sistema encontra participantes que possuem esse arquivo e o fornece a partir de seus sistemas em partes, através de múltiplos fluxos. Após o download do arquivo para seu sistema, o participante se torna automaticamente um dos pontos de distribuição. Para identificar os participantes da rede nos nós onde o conteúdo de interesse está presente, uma tabela hash distribuída (). Para acessar o FSS global, o IPFS pode usar o protocolo HTTP ou montar um FSS virtual /ipfs usando o módulo FUSE.
O IPFS ajuda a resolver questões como a confiabilidade do armazenamento (se o armazenamento original falhar, o arquivo pode ser baixado de sistemas de outros usuários), resistência à censura de conteúdo (para bloquear, seria necessário bloquear todos os sistemas dos usuários que possuem uma cópia dos dados) e organização de acesso em caso de ausência de conexão direta à internet ou em situações de baixa qualidade de canal (é possível baixar dados através dos participantes mais próximos na rede local). Além de armazenar arquivos e trocar dados, o IPFS pode servir como base para criar novos serviços, por exemplo, para organizar o funcionamento de sites não vinculados a servidores, ou para criar aplicações descentralizadas. .
Fonte: opennet.ru
