Skip to content

tallylab/orbitdb-pinner

 
 

Repository files navigation

orbitdb-pinner

A pinning service for orbitdb.

  • Pass it a single orbitdb address to pin.
  • Pin/unpin multiple orbitdb databases via http.
  • Have it follow the pinning list of another instance of the service.

This is the initial release. It is not production ready.

Installation

npm i

CLI usage

node pinner				    \\ start the server with current config file
node pinner -address ORBITDB_ADDRESS 	    \\ start the server and start replicating ORBITDB_ADDRESS
node pinner -http -port 1111	  	    \\ receive http connections. Port defaults to 3000
node pinner -follow  PINNER_DB_ADDRESS \\ replicate a database of orbitdb instances

Config

The config npm package is used for configuration handling.

Configuration of ipfs and the http server are handled via json files in the config directory, allowing development and production configurations to be set via env

{
  "http": {
    "port": 3000,
    "enabled": true
  },
  "ipfsConfig": {
    "repo": "./orbitdb/pinner",
    "start": true,
    "EXPERIMENTAL": {
      "pubsub": true
    },
    "config": {
      "Addresses": {
        "Swarm": [
          "/dns4/ws-star.discovery.libp2p.io/tcp/443/wss/p2p-websocket-star"
        ]
      }
    }
  }
}

Http api

The http api is turned off by default. Enable it with -http in the cli, or "http": true in the config file.

\pin?address=ADDRESS

Pins the orbitdb at ADDRESS. Resumes on restart. Any following servers will also pin this database.

\unpin?address=ADDRESS

Forgets the orbitdb at ADDRESS. Any following servers will also unpin this database.

\follow?address=PINNER_DB_ADDRESS

  • Drops all current streams
  • Pins all orbitdb addresses in the list at PINNER_DB_ADDRESS.

About

A pinning service for the orbitdb decentralized database.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 93.7%
  • Dockerfile 4.6%
  • Makefile 1.7%