- orbit-electron
- orbit-textui (--> orbit-terminal?)
- orbit-core (orbit_)
- orbit-crypto
- orbit-db
- orbit-db-store
- ipfs-log
| /* Sketch of how muport identities could be used in OrbitDB */ | |
| const identitySignerFn = async (id, data) => { | |
| // One can check here too that identity-to-be-signed is actually | |
| // the same muport identity | |
| if (id !== muport.getDid()) throw new Error("Trying to sign with a different identity!") | |
| return await muport.sign(data) | |
| } | |
| const identityVerifierFn = async (identity) => { |
| 'use strict' | |
| const path = require('path') | |
| const AccessController = require('./access-controller') | |
| class OrbitDBAccessController extends AccessController { | |
| constructor (orbitdb) { | |
| super() | |
| this._orbitdb = orbitdb | |
| this._db = null |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>Hello, WebVR! - A-Frame</title> | |
| <meta name="description" content="Hello, WebVR! - A-Frame"> | |
| <script type="text/javascript" src="lib/aframe.min.js" charset="utf-8"></script> | |
| <script type="text/javascript" src="lib/orbitdb.min.js" charset="utf-8"></script> | |
| <script type="text/javascript" src="lib/ipfs-browser-daemon.min.js" charset="utf-8"></script> | |
| </head> | |
| <body> |
| /* Components for Orbit */ | |
| 'use strict' | |
| const styles = { | |
| layout: { | |
| flex: { | |
| display: 'flex', | |
| }, | |
| row: { |
| 'use strict' | |
| const PubsubMessageStream = require('ipfs-pubsub-message-stream') | |
| class Pubsub { | |
| constructor (send: Function) { | |
| this._subscriptions = {} | |
| this._send = send | |
| } |
| fs.init(1 * 1024 * 1024, (err) => { | |
| if(err) { | |
| logger.error("Couldn't initialize file system:", err) | |
| } else { | |
| logger.debug("FileSystem initialized") | |
| } | |
| }) |
| 'use strict'; | |
| // const ipfsd = require('ipfsd-ctl'); | |
| const IPFS = require('ipfs') | |
| const ipfsd = require('ipfsd-ctl'); | |
| const OrbitDB = require('../src/OrbitDB'); | |
| const Timer = require('./Timer'); | |
| // usage: benchmark.js <network hash> <username> <channel>; |
An interface for immutable databases
ImmutableDB is an abstract interface for content-addressed databases that:
The difference to a a traditional key-value store is that the key doesn't get specified explicitly. Instead, the key gets calculated based on the data using a hashing function. This is also called content-addressed storage.