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 docs.centrifuge.io to learn how to setup a node and interact with it. If you have any questions, feel free to join our discord
- Go >= 1.18.x
- Node: 10.15.1
- Npm: 6.xx
- Truffle 5.1.29
- jq(https://stedolan.github.io/jq/)
- flock
To fetch the dependencies, run make install-deps
.
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.
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
If you like to deploy all the dependencies including node, please follow below steps
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
Node APIs are published to swagger hub. For the latest APIs, please see here: APIs