IPFS capacita a Web Distribuída

Um protocolo de hipermídia ponto a ponto para tornar a web mais rápida, segura e aberta.

Link para Github:

IPFS capacita a Web Distribuída

Fórum Matriz IRC Discórdia Changelog # 204

TL; DR

Conteúdo completo

Resumo rápido

O projeto IPFS busca desenvolver a infraestrutura da Internet e da Web, com muitas coisas que aprendemos com sistemas de sucesso, como Git , BitTorrent , Kademlia , Bitcoin e muitos, muitos mais. Esse é o tipo de coisa que sairia da ARPA / DARPA, IETF ou Bell Labs em outra época. IPFS é um projeto de código aberto gratuito com milhares de contribuidores.

IPFS ( o InterPlanetary File System ) é um protocolo de distribuição hipermídia endereçado por conteúdo e identidades. Ele permite a criação de aplicativos totalmente distribuídos e, com isso, visa tornar a web mais rápida, segura e aberta.

IPFS é um sistema de arquivos distribuído que busca conectar todos os dispositivos de computação com o mesmo sistema de arquivos. Em alguns aspectos, isso é semelhante aos objetivos originais da Web, mas o IPFS é na verdade mais semelhante a um único enxame de BitTorrent trocando objetos Git. Você pode ler mais sobre suas origens no artigo IPFS - Content Addressed, Versioned, P2P File System .

O IPFS está se tornando um novo subsistema importante da Internet . Se construído corretamente, ele pode complementar ou substituir o HTTP. Ele pode complementar ou substituir ainda mais. Vamos ver como fazer ponto a ponto.

IPFS é um protocolo :

  • Define um sistema de arquivos com conteúdo endereçado
  • Coordena a entrega de conteúdo
  • Combina Kademlia + BitTorrent + Git

IPFS é um sistema de arquivos :

  • Possui diretórios e arquivos
  • É um sistema de arquivos montável (via FUSE)

IPFS é uma web :

  • Pode ser usado para visualizar documentos como a web convencional
  • Os arquivos podem ser acessados ​​via HTTP em https://ipfs.io/<path>
  • Navegadores e extensões podem aprender a usar os esquemas de ipfs://URL ou dweb:/ipfs/URI diretamente
  • O conteúdo endereçado a hash garante autenticidade

IPFS é modular :

  • Camada de conexão em qualquer protocolo de rede
  • Camada de roteamento
  • Usa uma camada de roteamento DHT (Kademlia / Coral)
  • Usa um serviço de nomenclatura baseado em caminho
  • Usa uma troca de blocos inspirada em BitTorrent

IPFS usa criptografia :

  • Endereçamento de conteúdo de hash criptográfico
  • Desduplicação em nível de bloco
  • Integridade do arquivo mais controle de versão
  • Criptografia no nível do sistema de arquivos mais suporte à assinatura

IPFS é p2p :

  • Transferências de arquivos ponto a ponto em todo o mundo
  • Arquitetura totalmente descentralizada
  • Nenhum ponto central de falha

IPFS é um CDN :

  • Adicione um arquivo ao sistema de arquivos localmente, e agora está disponível para o mundo
  • Fácil de armazenar em cache (nomenclatura hash de conteúdo)
  • Distribuição de largura de banda baseada em BitTorrent

IPFS tem um serviço de nomes :

  • IPNS, um sistema de nomes inspirado no SFS
  • Namespace global baseado em PKI
  • Serve para construir cadeias de confiança
  • É compatível com outros NSes
  • Pode mapear DNS, .onion, .bit, etc. para IPNS

Aprenda como funciona o IPFS

Para saber mais sobre como o IPFS funciona, explore os seguintes recursos:

Estado atual do IPFS

IPFS é um trabalho em andamento! É um plano ambicioso para tornar a Internet mais gratuita, aberta, segura e de alto desempenho. Baseia-se nas boas ideias de vários sistemas distribuídos testados em batalha.

Hoje, há uma implementação de protocolo IPFS de referência principal (em Go ) com mais a caminho (incluindo JavaScript e Python ).

Experimente

A implementação go-ipfs foi lançada como uma distribuição alfa em fevereiro de 2015 e, desde então, tem feito lançamentos regulares no caminho para o beta. Notavelmente, js-ipfs também está bem avançado. Quer começar a usar o IPFS alpha? Experimente estes recursos:

Uma palavra sobre segurança

O protocolo IPFS e suas implementações ainda estão em forte desenvolvimento. Isso significa que pode haver problemas em nossos protocolos, ou pode haver erros em nossas implementações. E - embora o IPFS ainda não esteja pronto para a produção - muitas pessoas já estão executando nós em suas máquinas, por isso levamos as vulnerabilidades de segurança muito a sério. Se você descobrir um problema de segurança, informe-nos imediatamente!

Se você encontrar uma vulnerabilidade que pode afetar implantações ao vivo - por exemplo, expondo uma exploração de execução remota - envie seu relatório em particular para [email protected] . Por favor, não registre um problema público.

Se o problema for uma falha de protocolo que não pode ser explorada imediatamente, ou algo ainda não implantado, apenas discuta abertamente.

Se envolver

O projeto IPFS é grande - com milhares de colaboradores em nossa comunidade - e você está convidado a participar! Verifique a seção Community do IPFS Docs para todos os detalhes sobre como se envolver, incluindo os fóruns oficiais do IPFS , nossos canais de IRC , mídia social , encontros e workshops ProtoSchool e muito mais.

Se você estiver interessado em como o projeto é organizado em um nível superior, visite o repositório IPFS Team & Project Management .

Há também um boletim informativo semanal do IPFS ( assine aqui ) e um blog atualizado regularmente .

Ajuda e documentação

Se você está procurando ajuda para aprender ou construir com IPFS, comece com estes recursos:

Se você encontrou um bug ou deseja fazer uma solicitação de recurso em relação a um componente específico do IPFS, abra um problema no repositório apropriado para que possa ser triado e respondido o mais rápido possível.

Links e recursos

O projeto IPFS é grande (e está se expandindo a cada dia!), Portanto, extraímos alguns links usados ​​com frequência e outros recursos abaixo. No entanto, encorajamos você a explorar a organização IPFS GitHub principal (para implementações principais e outros trabalhos de missão crítica) e a organização IPFS Shipyard GitHub , que abriga projetos incubados pela comunidade IPFS.

Implementações de protocolo

Estas são as implementações atuais do IPFS:

Língua Projeto Integridade
Vai https://github.com/ipfs/go-ipfs referência
JavaScript https://github.com/ipfs/js-ipfs alfa
Ferrugem https://github.com/rs-ipfs/rust-ipfs alfa
Pitão https://github.com/ipfs-shipyard/py-ipfs começando (inativo)
C https://github.com/Agorise/c-ipfs começando (inativo)

Se você deseja iniciar sua própria implementação de linguagem do IPFS, verifique as Especificações . As especificações ainda estão evoluindo, mas os formatos principais são estáveis ​​e podem ser construídos. Certifique-se de postar um problema se desejar iniciar um esforço, pois muitas pessoas expressaram interesse em contribuir para novas implementações.

Bibliotecas de cliente HTTP

As seguintes bibliotecas de cliente HTTP estão completas ou em desenvolvimento. Todas as contribuições são bem-vindas! Se você gostaria de criar uma nova biblioteca, consulte o Guia de Implementação do Cliente IPFS HTTP e diga-nos para que possamos ajudar.

Língua Biblioteca cliente Status
Vai https://github.com/ipfs/go-ipfs-api Ativo
Java https://github.com/ipfs-shipyard/java-ipfs-http-client Ativo
JavaScript https://github.com/ipfs/js-ipfs/tree/master/packages/ipfs-http-client Ativo
Pitão https://github.com/ipfs-shipyard/py-ipfs-http-client Ativo
Scala https://github.com/ipfs-shipyard/scala-ipfs-api Inativo
Clojure https://github.com/keorn/clj-ipfs-http-client Ativo
Clojurescript https://github.com/district0x/cljs-ipfs-http-client Ativo
Haskell https://github.com/davidar/hs-ipfs-api Inativo
Rápido https://github.com/ipfs-shipyard/swift-ipfs-http-client Ativo
CommonLisp https://github.com/WeMeetAgain/cl-ipfs-api Inativo
Ferrugem https://github.com/ferristseng/rust-ipfs-api Ativo
https://github.com/gkbrk/rust-ipfs-api Inativo
https://github.com/rmnoff/rust-ipfs-api Inativo
https://github.com/rschulman/rust-ipfs-api Inativo
Rubi https://github.com/Fryie/ipfs-ruby Inativo
https://github.com/tbenett/ruby-ipfs-http-client Ativo
Mac Automator https://github.com/NeoTeo/ipfs-osx-service Inativo
Pharo https://github.com/khinsen/ipfs-pharo Ativo
PHP https://github.com/cloutier/php-ipfs-api Inativo
https://github.com/digitalkaoz/php-ipfs-api Inativo
C # https://github.com/jeremy-ellis-tech/net-ipfs-http-client Inativo
https://github.com/richardschneider/net-ipfs-http-client Ativo
C ++ https://github.com/vasild/cpp-ipfs-api Ativo
Erlang https://github.com/hendry19901990/erlang-ipfs-http-client Inativo

GUIs e aplicativos auxiliares

  • ipfs-companion - A extensão do navegador da web IPFS.
  • ipfs-webui - O aplicativo IPFS WebUI.
  • ipfs-desktop - Um aplicativo de barra de menus / bandeja para desktop.
  • ipfs-gui - Coordenação do desenvolvimento, experiência do usuário e manutenção de GUIs IPFS.
  • i18n - The IPFS Translation Project: traduções de crowdsourcing de IPFS GUIs e websites.

Aplicativos e conjuntos de dados em IPFS

  • IPFS incrível - uma lista cada vez maior de aplicativos, conjuntos de dados e outros recursos inspiradores criados no IPFS.

Especificações e papéis

Ferramentas de instalação e atualização

Recursos adicionais

  • distribuições - Código-fonte do site de distribuições IPFS, https://dist.ipfs.io .
  • infra - Ferramentas para manutenção de infraestrutura para a comunidade IPFS.
  • testground - Ferramentas para testar software distribuído em escala.
  • ipfs-cluster - Fornece orquestração de dados em um enxame de daemons IPFS alocando, replicando e rastreando um conjunto de pinos global distribuído entre vários pares.
  • estaleiro ipfs - Uma ampla gama de projetos incubados por e para a comunidade IPFS.
  • website - Código-fonte do website IPFS, http://ipfs.io .

Licença

MIT .