Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
February 16, 2021 13:09

Centrifuge POD (P2P Node)

Tests GoDoc Reference codecov Go Report Card

This repository contains the Go implementation of the Centrifuge POD (Private Off-chain Data) protocol. It connects to other nodes via libp2p and uses Centrifuge Chain for on-chain interactions.

Getting help: Head over to our documentation at to learn how to setup a node and interact with it. If you have any questions, feel free to join our discord


Fetch dependencies

To fetch the dependencies, run make install-deps.

Install Node

To install, run make install will compile project to binary centrifuge and be placed under GOBIN.

Ensure GOBIN is under PATH to call the binary globally.

Running tests

There 4 different flavours of tests in the project

  • Unit tests(unit)
  • Integration tests(integration)
  • Environment tests(testworld): spins up multiple PODs and local ethereum and centrifuge chains

To run all the tests:

  • make run-unit-tests
  • make run-integration-tests
  • make run-testworld-tests

Deploying locally

If you like to deploy all the dependencies including node, please follow below steps

Create config file and Start centrifuge node locally:

To start centrifuge node locally, follow the steps below:

  • Start the local test environment
  • Run make start-local-node
    • This will start a local centrifuge node and create a config if not present already
    • The default config file will be placed under ~/centrifuge/testing.
    • If you like to recreate config, then run recreate_config=true make start-local-node

API definitions

Node APIs are published to swagger hub. For the latest APIs, please see here: APIs