Skip to content

Latest commit

 

History

History
321 lines (227 loc) · 19.8 KB

README.md

File metadata and controls

321 lines (227 loc) · 19.8 KB

IPFS é a Web Distribuída

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

ipfs Changelog #204

Bem vindo ao IPFS! Por que não assiste um vídeo de demonstração para começar? Por favor, poste perguntas e idéias em https://discuss.ipfs.io

Índice

Visão Geral

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

O IPFS é um sistema de arquivos distribuídos que procura conectar todos os dispositivos computacionais com o mesmo sistema de arquivos. De certa forma, isso é semelhante aos objetivos originais da Web, mas o IPFS funciona como um único bittorrent swarm trocando objetos git. Você pode ler mais sobre suas origens no documento IPFS - Content Addressed, Versioned, P2P File System.

O IPFS está se tornando um novo grande subsistema da Internet. Se construído corretamente, pode complementar ou substituir o HTTP. Pode complementar ou substituir. Parece loucura. É uma loucura.

Alpha Demo

Quer ver mais? Confira a palestra de Juan Benet no Sourcegraph - IPFS: The Permanent Web.

Sumário

O IPFS é um protocolo que:

  • define um sistema de arquivos endereçado ao conteúdo
  • coordena a entrega de conteúdo
  • combina o Kademlia + BitTorrent + Git

IPFS é um sistema de arquivos que:

  • tem diretórios e arquivos
  • tem sistemas de arquivos montáveis (via FUSE)

IPFS é uma web que:

  • pode ser usada para visualizar documentos, como na web
  • arquivos acessíveis via HTTP em https://ipfs.io/<path>
  • navegadores ou extensões podem aprender a usar os esquemas de URL ipfs:// ou dweb:/ipfs/ diretamente
  • garante a autencidade via conteúdo endereçado

O IPFS é modular e possui:

  • camada de conexão sobre qualquer protocolo de rede
  • camada de roteamento
  • camada de roteamento DHT (kademlia/coral)
  • um serviço de nomenclatura baseado em caminho
  • usa a troca de blocos inspirada no bittorrent

O IPFS usa criptografia com:

  • endereçamento de conteúdo hash criptográfico
  • desduplicação em nível de bloco
  • integridade de arquivos + versionamento
  • execução em nível de sistema de arquivos + suporte a assinatura

O IPFS é P2P:

  • transferências de arquivos peer-to-peer em todo o mundo
  • arquitetura completamente descentralizada
  • não possui um ponto central de falha

O IPFS é um cdn:

  • adicionar um arquivo ao sistema de arquivos localmente está disponível para o mundo
  • amigável ao cache (nomenclatura de conteúdo hash)
  • distribuição de largura de banda baseada em bittorrent

O IPFS tem um serviço de nome:

  • IPNS, um sistema de nomes inspirado em 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

Como o IPFS Funciona?

Para saber mais sobre como funciona o IPFS, dê uma olhada nos Papers ou Conversas. Você também pode explorar as Especificações por escrito.

Papers IPFS

Conversas IPFS

Esta é uma breve seleção de palestras introdutórias. Com o tempo, coletaremos mais.

Veja a lista completa em IPFS Media

Mais Sobre IPFS

O projeto IPFS busca evoluir a infraestrutura da Internet e da Web, com muitas coisas que aprendemos com sistemas de sucesso, como o Git, BitTorrent, Kademlia, Bitcoin, e muitos, muitos outros. Esse é o tipo de coisa que teria saído no ARPA/DARPA/IETF/BellLabs em outra época. IPFS é um projeto Open Source Livre, com centenas de colaboradores.

Estado Atual do IPFS

O IPFS é um trabalho em andamento!

Observe que o IPFS é um trabalho em andamento. É um plano ambicioso para tornar a Internet mais livre, aberta, segura e de alto desempenho. Baseia-se nas boas ideias de numerosos sistemas distribuídos testados em campo.

Hoje, há uma implementação principal do protocolo IPFS (em Go) com mais projetos a caminho (JavaScript e Python).

Distribuição Alpha

Em fevereiro de 2015, a implementação do go-ipfs foi lançada como uma "Distribuição Alfa". Desde então, o go-ipfs vem fazendo lançamentos regulares no caminho da Beta. Ambos js-ipfs e py-ipfs estão em andamento.

Para um tutorial detalhado, clique aqui e mãos à obra!.

Questões de Segurança e Divulgações

O protocolo IPFS e suas implementações estão em desenvolvimento pesado. 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 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, por favor, chame a nossa atenção imediatamente!

Se você encontrar uma vulnerabilidade que pode afetar implementações ativas - por exemplo, expondo uma exploração de execução remota - envie seu relatório de maneira privada para security@ipfs.io. Por favor, NÃO torne um problema público.

Se o problema for uma falha do protocolo que não pode ser imediatamente explorada ou algo ainda não implementado, basta discuti-lo abertamente.

Projeto e Comunidade

O Projeto IPFS é agora muito grande, com centenas de colaboradores em nossa comunidade. Você está convidado a participar! Aqui estão alguns links para nossos canais de comunicação:

Você também pode encontrar nossa comunidade em:

Links do projeto

O Projeto IPFS é grande - há muitos subprojetos e esforços relacionados. Vamos documentar os principais aqui, mas você deve dar uma olhada. O espaço está explodindo e muitos novos projetos estão surgindo o tempo todo.

Para uma lista com curadoria da comunidade de projetos incríveis usando o IPFS, confira awesome-ipfs!

Implementações do Protocolo

Linguagem Projeto Completude
Go https://github.com/ipfs/go-ipfs referência
JavaScript https://github.com/ipfs/js-ipfs alpha
Python https://github.com/ipfs/py-ipfs iniciando
C https://github.com/Agorise/c-ipfs iniciando

Se você deseja iniciar sua própria implementação de linguagem do IPFS, confira o Guia de implementação do IPFS e Especificações. As especificações ainda estão evoluindo, mas os principais formatos são estáveis e podem ser construídos. Certifique-se de postar uma issue caso queira iniciar uma, já que muitas pessoas expressaram interesse em contribuir para novas implementações.

Bibliotecas de Clientes HTTP

IPFS http client lib logo

Linguagem Biblioteca Completude
Go https://github.com/ipfs/go-ipfs-api ??
Java https://github.com/ipfs/java-ipfs-api ??
JavaScript https://github.com/ipfs/js-ipfs-api 100%
Python https://github.com/ipfs/py-ipfs-api ??
Scala https://github.com/ipfs/scala-ipfs-api ??
Clojure https://github.com/keorn/clj-ipfs-api ??
Clojurescript https://github.com/district0x/cljs-ipfs-api ??
Haskell https://github.com/davidar/hs-ipfs-api ??
Swift https://github.com/ipfs/swift-ipfs-api ??
CommonLisp https://github.com/WeMeetAgain/cl-ipfs-api ??
Rust https://github.com/ferristseng/rust-ipfs-api ??
https://github.com/gkbrk/rust-ipfs-api ??
https://github.com/rmnoff/rust-ipfs-api ??
https://github.com/rschulman/rust-ipfs-api ??
Ruby https://github.com/Fryie/ipfs-ruby ??
Mac Automator https://github.com/NeoTeo/ipfs-osx-service ??
PHP https://github.com/cloutier/php-ipfs-api ??
https://github.com/digitalkaoz/php-ipfs-api ??
C# https://github.com/jeremy-ellis-tech/net-ipfs-http-client ??
https://github.com/richardschneider/net-ipfs-api ??
C++ https://github.com/vasild/cpp-ipfs-api ??
Erlang https://github.com/hendry19901990/erlang-ipfs-http-client ??
Objective C N/A ??
Julia contato: @rened ??
Lua contato: @seclorum ??

Por favor ajude contribuindo para uma das bibliotecas acima. Caso você queira implementar em outra linguagem, consulte o Guia de Implementação do Cliente HTTP IPFS e avise-nos para que possamos ajudar!

Diretório de Projetos

Este tem como objetivo ser um diretório de todos os repositórios da Organização do IPFS Github e outras coisas relacionadas.

Temos um quadro de status que verifica todos os repositórios do IPFS com informações sobre CI, Readmes, cobertura de testes e assim por diante, neste link: http://project-repos.ipfs.io/

Organização do Projeto

  • ipfs - Repositório Master, introdução e notícias.
  • discourse - Discussões da comunidade e fórum de suporte.
  • tm - Equipe IPFS Planejamento e Gestão do Projeto.

Obtenha ajuda!

O melhor lugar para procurar ajuda é no fórum da comunidade do IPFS ou no IRC (freenode) no canal # ipfs.

Há dois repositórios depreciados contendo FAQ e support. Use-os como referência, mas publique novas perguntas ou solicitações de ajuda em https://discuss.ipfs.io.

Documentos

  • papers - Papers acadêmicos sobre IPFS.
  • specs - Especificações no protocolo IPFS.
  • notes - Várias notas e discussões relevantes (que não se encaixam em outro lugar).
  • reading-list - Artigos para entender o IPFS.

Discussões

Implementações de Protocolo

  • go-ipfs - Implementação em Go.
  • js-ipfs - Implementação em Javascript.
  • py-ipfs - Implementação em Python.

IPFS DSLs

IPFS GUIs

  • ipfs-companion - A extensão do navegador web.
  • ipfs-desktop - Um aplicativo de desktop.
  • ipfs-webui - O aplicativp IPFS WebUI.
  • i18n - O Projeto de Tradução IPFS: traduções de crowdsourcing de GUIs do IPFS e sites.
  • pm-ipfs-gui - Coordenação de desenvolvimento e manutenção de aplicativos GUI.

Apps no IPFS

Você pode encontrar uma lista cada vez maior em Awesome IPFS

Infraestrutura da Comunidade

Listas de Referência

  • refs - Ferramentas para publicar listas de cabeçalhos de referência do IPFS.
  • refs-denylists-dmca - Avisos de remoção do DMCA para o IPFS Public Gateway.
  • refs-solarnet-storage - Inventário de conteúdo armazenado nos hosts de armazenamento do Solarnet.

Outros Recursos da Comunidade

  • examples - Exemplos de como usar o go-ipfs.
  • awesome-ipfs - Recursos úteis para usar o IPFS e construir coisas sobre ele.
  • logo - O logotipo para o IPFS.

Meetups sobre IPFS

Há uma infinidade de Meetups IPFS em todo o mundo agora. Encontre o seu no Community Repo

Encorajamos e apoiamos os Meetups do IPFS, por favor, avise-nos caso você queira iniciar um. Sinta-se à vontade para se organizar através das discussões da comunidade e para anunciar eventos no repositório principal.

Ferramentas

Instalando

Outros

Licença

MIT