Un protocollo P2P completo e scritto interamente in JavaScript

Un protocollo P2P in JavaCcript

js-ipfs permette di implementare il protocollo IPFS direttamente nei Browsers. Scritto interamente in JavaScript, usabile nel Browser, nei Service Worker, nelle Web Extension e con Node.js, apre le porte ad un mondo di possibilità.

js-ipfs è utilizzabile nei Browser, nei Service Worker, nelle Web Extension e in Node.js, aprendo le porte a un mondo di possibilità.

Disattiva Animazione
La libreria js-ipfs è in stato Alpha.Il codice non è stato verificato da specialisti della sicurezza e non deve essere utilizzato per archiviare, condividere o pubblicare informazioni riservate.

Funzionalità

Ricco di tutto ciò che conosci e ami di IPFS. Questa implementazione include anche alcune cose importanti che sono uniche per il Browser. È il toolkit per far funzionare tutte le tue applicazioni DWeb.

Funziona su Node.js e sul Browser

js-ipfs funziona senza problemi su Node.js, Electron e qualsiasi altro browser moderno. È anche personalizzabile by-design in modo che tu possa usarlo sul tuo runtime preferito.

Implementa lo stack completo IPFS

Nessuna caratteristica è stata lasciata indietro. js-ipfs non è un client leggero, è la completa implementazione del protocollo IPFS.

Usa PubSub per comunicare in tempo reale con gli altri peers

I nodi IPFS possono creare topologie di rete basate su topic di interesse per fare broadcast eventi in tempo reale.

Salva e scarica file da qualsiasi peer nella rete IPFS

IPFS è disegnato per utilizzare la potenza del Content-addressing e Process-addressing per trovare i nodi nella rete che hanno il contenuto che stai cercando e recuperarlo. Allo stesso modo, puoi aggiungere qualsiasi dato e anche gli altri nodi lo troveranno.

Usa la DAG API per attraversare qualsiasi struttura di dati collegata con hash

IPFS usa IPLD, the InterPlanetary Linked-Data, un modello che consente di interagire con i dati provenienti da più fonti, come git, blockchain e altro.

libp2p è incluso

libp2p è lo stack di rete modulare creato per IPFS e che puoi utilizzare direttamente, tramite IPFS, per le tue applicazioni.

Esegui come demone

js-ipfs ha l'opzione di essere come un demone, con il quale puoi interagire tramite le HTTP API che già conosci da go-ipfs.

Crea indirizzi fissi per la modifica dei dati

js-ipfs ha all'interno IPNS, InterPlanetary Name System, un modo per gestire indirizzi (record) mutabili per distribuire gli aggiornamenti dei tuoi file in modo autenticato e certificato.

Primi Passi

IPFS ti offre i primitivi per il Content Addressing per tutti i tuoi dati sul DWeb. È possibile rendere i dati disponibili alla rete o recuperare i dati esistenti attraverso il suo indirizzo CID, il Content Identifier. Provalo qui sotto!

Aggiungere dati su IPFS

const node = new IPFS()

const data = 'Hello, <YOUR NAME HERE>'

// once the node is ready
node.once('ready', () => {
  // convert your data to a Buffer and add it to IPFS
  node.files.add(node.types.Buffer.from(data), (err, files) => {
    if (err) return console.error(err)

    // 'hash', known as CID, is a string uniquely addressing the data
    // and can be used to get it again. 'files' is an array because
    // 'add' supports multiple additions, but we only added one entry
    console.log(files[0].hash)
  })
})

Output

Recuperare dati da IPFS

Usando Javascript sul Browser o su Node.js

const node = new IPFS()

node.once('ready', () => {
  node.files.cat('QmPChd2hVbrJ6bfo3WBcTW4iZnpHm8TEzWkLHmLpXhF68A', (err, data) => {
    if (err) return console.error(err)

    // convert Buffer back to string
    console.log(data.toString())
  })
})

Output

Usando il terminale

npm install ipfs -g
jsipfs cat QmPChd2hVbrJ6bfo3WBcTW4iZnpHm8TEzWkLHmLpXhF68A

Usando il Gateway HTTP

https://ipfs.io/ipfs/QmPChd2hVbrJ6bfo3WBcTW4iZnpHm8TEzWkLHmLpXhF68A
Leggi ancora

Service Worker Gateway

Trasforma questa pagina in un gateway IPFS senza toccare alcun server o utilizzare HTTP per recuperare i contenuti dalla rete IPFS! Sì, avete letto bene, il Service Worker Gateway con js-ipfs può connettersi direttamente alla rete IPFS!

Abilita Service Worker

Cosa stanno creando gli altri

Paratii implementa tecnologie open source per lo streaming e la gestione di video, con js-ipfs e contratti Ethereum. Il portale è una Web App con video curati sul tema della crittografia, il tutto su IPFS.

Project Preview

TODO Title

Ci sono infinite opzioni per te per usare js-ipfs. Gli esempi seguenti offrono un'idea di cosa puoi costruire con js-ipfs. Provali!

Browser Video Streaming
Exchange Files in Browser

Hai un'idea e vuoi fare un suggerimento?Fallo qui!

Publicazioni & Talks

Guarda gli aggiornamenti del progetto, demo e altri talk dalla comunità IPFS sul progetto JavaScript di IPFS. Prossimamente aggiungeremo decine di nuove presentazioni dai nostri IPFS Dev Meetings.

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!

Community

js-ipfs è un progetto open source con licenza MIT. Ci sono molti modi in cui puoi contribuire: aiuta a scrivere le specs, le implementazioni del codice e altri tools che usano libp2p, crea esempi ed esercitazioni e unisciti alle nostre chiamate settimanali per discutere di libp2p con noi.

Divertiti con noi!