Un protocole P2P complet écrit entièrement en JavaScript

Un protocole JavaScript P2P

js-ipfs ouvre la voie à l'implémentation du protocole IPFS dans les navigateurs. Ecrit intégralement en JavaScript, il peut s'exécuter dans le navigateur, un Service Worker, une extension Web et avec Node.js, ouvrant une porte vers un monde de possibilités.

js-ipfs s'exécute dans le navigateur, un Service Worker, une extension Web et Node.js, ouvrant une porte vers un monde de possibilités.

Désactiver Animation
La librairie js-ipfs est en alpha.Le code de base n'a pas été audité par des spécialistes de sécurité et ne doit pas être utilisé pour stocker, partager ou publier des informations sensibles.

Fonctionnalités

Contient toutes les choses que vous connaissez et aimez à propos de l'IPFS. Cette implémentation comporte également des fonctionnalités supplémentaires propres au navigateur. C'est la boîte à outils pour alimenter toutes vos applications DWeb.

S’exécute sur Node.js et sur navigateur

js-ipfs ne requiert aucune configuration et fonctionne sur Node.js, Electron et n'importe quel navigateur moderne. Il est également entièrement personnalisable afin que vous puissiez l'utiliser avec votre système préféré.

Implémentation complète d'IPFS

Aucune fonctionnalité n'a été oubliée. js-ipfs n'est pas un client léger, c'est l'implémentation complète du protocole IPFS.

Utiliser PubSub pour communiquer en temps réel avec les autres pairs

Les nœuds IPFS peuvent créer des topologies réseau basées sur des sujets d'intérêt pour diffuser des événements en temps réel.

Ajouter et récupérer des fichiers de n'importe où dans le réseau IPFS

IPFS est conçu pour utiliser la puissance de l'adressage de contenu et de l'adressage de processus pour trouver les nœuds du réseau ayant le contenu que vous recherchez et les récupérer. De la même manière, vous pouvez ajouter n'importe quelles données et d'autres nœuds les trouveront aussi.

Utilise l'API DAG pour traverser n'importe quelle structures de données basée sur des hash

IPFS utilise IPLD, l'InterPlanetary Linked-Data, un modèle qui vous permet d'interagir avec des données provenant de plusieurs sources, telles que des git, des blockchains et plus encore.

libp2p est intégré

libp2p est le Modular Networking Stack qui a été créée pour IPFS, et maintenant vous pouvez l'utiliser directement via IPFS pour votre application.

Exécuter en tant que processus d'arrière-plan

js-ipfs a aussi une option pour l'exécuter en tant que processus d'arrière-plan afin que vous puissiez interagir avec lui en utilisant l'API HTTP que vous utilisez déjà avec go-ipfs.

Créer des adresses stables pour changer les données

Il est livré avec IPNS, l'InterPlanetary Naming System (système de nomination interplanétaire), un moyen d'utiliser des noms mutables pour distribuer les mises à jour de manière authentifiée et certifiée.

Commencer

IPFS vous donne un moyen d'indexer le contenu de toutes vos données sur le DWeb. Vous pouvez rendre vos données disponibles à travers le réseau ou en récupérer depuis leurs CID, l'identifiant de contenu. Essayez-le ci-dessous !

Ajouter des données à 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)
  })
})

Sortie

Obtenir des données depuis IPFS

En utilisant JavaScript sur le navigateur ou sur 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())
  })
})

Sortie

En utilisant la console

npm install ipfs -g
jsipfs cat QmPChd2hVbrJ6bfo3WBcTW4iZnpHm8TEzWkLHmLpXhF68A

En utilisant la passerelle HTTP

https://ipfs.io/ipfs/QmPChd2hVbrJ6bfo3WBcTW4iZnpHm8TEzWkLHmLpXhF68A
En apprendre Plus

Passerelle du ServiceWorker

Transformez cette page en passerelle IPFS complète sans toucher à aucun serveur ni en utilisant HTTP pour récupérer le contenu du réseau IPFS! Exactement, vous avez bien lu, la passerelle du ServiceWorker peut se connecter directement au réseau IPFS avec js-ipfs.

Activer le ServiceWorker

Ce que les gens construisent avec

Paratii construit une technologie open source pour le streaming et la curation vidéo, avec des contrats js-ipfs et Ethereum. Le Portal est une application Web avec des vidéos liées à la cryptographie qui fonctionne sur IPFS.

Project Preview

Publications et Discussions

Regardez les mises à jour du projet, les démos et les autres discussions de la communauté sur le projet JavaScript d'IPFS. Nous allons bientôt ajouter des dizaines de discussions, issues des réunions de développement d'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!

Communauté

js-ipfs est un projet Open Source sous licence MIT de la communauté IPFS. Vous pouvez contribuer de plusieurs façons: aidez-nous à rédiger la spécification, les implémentations de code et les outils en utilisant libp2p, des exemples spécifiques et des tutoriels, et rejoignez nos appels réguliers sur les produits pour discuter sur libp2p avec nous.