Uma implementação completa de um protocolo P2P escrito integralmente em JavaScript

Um protocolo P2P escrito em JavaScript

js-ipfs estabelece o caminho para a implementação do protocolo IPFS no Browser. Programado completamente em JavaScript, pode ser usado no Browser, num Service Worker, numa Web Extension e em Node.js, abrindo as portas para um mundo de possibilidades.

js-ipfs pode ser usado no Browser, num Service Worker, numa Web Extension e em Node.js, abrindo as portas para um mundo de possibilidades.

Desligar Animação
O js-ipfs ainda se encontra em estado Alfa.O código ainda não foi revisto por especialistas em segurança e por isso não é recomendado que seja usado para guardar, partilhar e/ou publicar informação sensível.

Características

Com todas as funcionalidades que conhece e adora sobre o IPFS. Esta implementação também carrega alguns extras que são únicos para uma implementação que funciona no browser. É a caixa de ferramenta ideal para todas as suas aplicações para a DWeb.

Corre em Node.js e no Browser

js-ipfs funciona automaticamente em Node.js, Electron e em qualquer browser moderno. É também personalizável de forma a que o possa usar na sua plataforma favorita.

Implementação completa da Stack IPFS

Nenhuma funcionalidade foi deixada de lado. O js-ipfs não é um light client, é uma implementação completa do protocolo IPFS.

Usa PubSub para comunicar em tempo real com todos os outros pares

Os nós do IPFS criam topologias de rede dedicadas à volta dos tópicos de interesse de forma a que os eventos sejam propagados em tempo real.

Providencia e/ou encontra ficheiros de qualquer parte da rede IPFS

IPFS foi desenhado para tirar proveito do endereçamento de conteúdo para encontrar nós na rede com os dados que procura. Da mesma forma, quaisquer dados adicionados também vão estar disponíveis a qualquer outro nó.

Usa a DAG API para atravessar qualquer estrutura de dados que seja ligada por hashes

IPFS usa o IPLD, a \"InterPlanetary Linked-Data\", um modelo de dados que permite interagir com dados de muitas fontes, como por exemplo git, blockchains entre outras.

libp2p incluída

libp2p é a stack de rede modular que foi criada para o IPFS e agora pode usar também diretamente na sua aplicação através do IPFS.

Executa como um processo independente

js-ipfs vem também com a opção de ser executado como um processo independente com o qual pode interagir através da API HTTP que já está familiarizado do go-ipfs.

Crie endereços estáveis para os dados em constante mudança

O IPNS, \"Interplanetary Naming System\", oferece uma forma de criar ponteiros mutáveis (registos) para propagar atualizações de uma forma certificada.

Iniciação

IPFS oferece-te uma primitiva de endereçamento baseada no seu conteúdo para todos os dados que possui na DWeb. Pode disponibilizar dados para a rede ou obter dados já disponibilizados através da CID (Content Identifier), o Identificador de Conteúdo. Experimente agora!

Adicionar dados ao IPFS

Resultado

Obter dados do IPFS

Usando JavaScript no Browser or Node.js

Resultado

Usando a CLI

Usando a Gateway de HTTP

https://ipfs.io/ipfs/
Mais detalhes

Service Worker Gateway

Transforme esta página num Gateway de IPFS sem tocar em nenhum servidor ou usar HTTP para obter conteúdo da rede do IPFS. Sim, leu bem, o Service Worker Gateway com o js-ipfs conseguem conectar-se à rede do IPFS.

Ativar Service Worker

O que está a ser criado

Todo o Internet Archive, mas descentralizado. Aceda a mais de 40 milhões de conteúdo do arquivo através da DWeb. Utilize um gateway para fazer seeding do conteúdo e uma UI escrita em JavaScript para Firefox e Chrome.

Project Preview

O que pode construir com JS-IPFS

Existem múltiplas formas de utilizar o js-ipfs. Os exemplos seguintes dão uma boa ideia daquilo que pode construir com o js-ipfs. Experimente-os!

Stream Video through IPFS
Upload and send files

Tem alguma ideia nova e quer sugeri-la?Sugira aqui!

Publicações e Palestras

Veja as atualizações dos projetos, demonstrações e outras palestras da comunidade IPFS no projeto de IPFS em JavaScript. Brevemente iremos adicionar dezenas de novas palestras dos encontros de programadores do IPFS.

IPFS on the Brave Browser, Alan Shaw

CRDTs as the foundation for Distributed Web Apps, Pedro Teixeira

A Regular JS Core Dev Call, join us!

Comunidade

js-ipfs é um projeto de código-fonte aberto sob a licença MIT. Pode contribuir de várias formas: ajudar a escrever as especificações, implementar código e ferramentas usando libp2p, criar exemplos e tutoriais, e pode também juntar-se às nossas chamadas regulares para discutir connosco sobre o libp2p.

Divirta-se connosco!