'use strict' const IPFS = require('ipfs') const Repo = require('ipfs-repo') const LevelStore = require('datastore-level') function MemoryLevelStore() { return new LevelStore('/memory', {db: require('memdown')}) } MemoryLevelStore.prototype = new LevelStore('/memory', {db: require('memdown')}) MemoryLevelStore.prototype.constructor = MemoryLevelStore const stringToUse = 'Hello world from self-contained, self-hosted js-ipfs!!!' function App() { let node create() function create () { // Create the IPFS node instance var repo_name = String(Math.random() + Date.now()) var storage_backends = { root: MemoryLevelStore, blocks: MemoryLevelStore, datastore: MemoryLevelStore, } node = new IPFS({ repo: new Repo(repo_name, {storageBackends: storage_backends}) }) node.once('ready', () => { console.log('IPFS node is ready') ops() }) } function ops () { node.id((err, res) => { if (err) { throw err } document.body.insertAdjacentHTML('beforeend', "
Your ID is " + res.id + "
" + "Your IPFS version is " + res.agentVersion + "
" + "Your IPFS protocol version is " + res.protocolVersion + "
" ) }) node.files.add([Buffer.from(stringToUse)], (err, filesAdded) => { if (err) { console.log("ERROR"); throw err } const hash = filesAdded[0].hash document.body.insertAdjacentHTML('beforeend', "Contents of this file:
" + data + "