Skip to content
A node.js implementation of the 3box-pinning-node
Branch: develop
Clone or download
zachferland Merge pull request #178 from 3box/feat/segment-events
feat: add events, seperate api/node, add status codes
Latest commit a8b9971 Jul 17, 2019

Twitter Follow Discord Greenkeeper badge

3Box pinning node

The pinning node is an ipfs and orbit-db node that persists the data of 3box users.

Run as command line tool

# Install via npm
(sudo) npm install 3box-pinning-node --global
# Install via yarn
yarn global add 3box-pinning-node
# Run node
(sudo) 3box-pinning-node

Pubsub messages

request to pin

This message is sent from a 3box-js client when openBox is called.

  type: 'PIN_DB',
  odbAddress: <orbit-db address>

length response

This message is sent from the pinning node as a response to PIN_DB.

  type: 'HAS_ENTRIES',
  odbAddress: <orbit-db address>,
  numEntries: <the number of entries that the pinning node has for the given db>

replicated response

This message is sent from the pinning node when a db has been replicated.

  type: 'REPLICATED',
  odbAddress: <orbit-db address>,


Configurations for both production and development environments can be found in both .env.production and .env.development respectively. The pinning service also runs a profile caching service. This can be disabled by running (i.e. you only require the pinning node) the following command instead.

$ (sudo) npm run start -- --runCacheService=false

The profile caching service also uses a Redis cache to cache requests. This is disabled by default in development. And can generally be disabled by not setting the env variable REDIS_PATH.

You can’t perform that action at this time.