Skip to content

Latest commit

 

History

History
95 lines (67 loc) · 3.13 KB

README.md

File metadata and controls

95 lines (67 loc) · 3.13 KB

🦑 Nexus

IPFS Network Node Orchestrator

Nexus is the IPFS private network node orchestration and registry service for Temporal, an easy-to-use interface into distributed and decentralized storage technologies. Nexus handles on-demand deployment, resource management, metadata persistence, and fine-grained access control for IPFS nodes running within Docker containers.

GoDoc Build Status codecov Go Report Card Latest Release

Multi-Language

jaywcjlove/sb

Installation and Usage

$> go get -u github.com/RTradeLtd/Nexus/cmd/nexus

Releases are also be available from the Releases page. To start up the Nexus daemon using the default configuration, run:

$> nexus init
$> nexus daemon

Further documentation is available via nexus --help. Documentation about the configuration generated by the init command can currently be found inline in the configuration source code.

Development

This project requires Docker CE and Go 1.11 or above.

To fetch the codebase, clone the repository or use go get:

$> go get github.com/RTradeLtd/Nexus

Dependencies can be installed using the provided Makefile:

$> make   # installs dependencies and builds a binary

Testing

To execute the tests, make sure the Docker daemon is running and run:

$> make test

You can remove leftover assets using make clean.

Running Locally

A few make commands make it easy to simulate a full orchestrator environment on your machine:

$> make dev-config # make sure dev configuration is up to date
$> make testenv    # initialize test environment
$> make daemon     # start up daemon with dev configuration

Then, you can set up and start a network node:

$> make new-network   # create network entry in database
$> make start-network # spin up network node

ctl

An experimental, lightweight controller for the gRPC API is available via the nexus ctl command, which exposes a client via the ctl library.

$> nexus ctl help
$> nexus -dev ctl StartNetwork Network=test-network
$> nexus -dev ctl NetworkStats Network=test-network
$> nexus -dev ctl StopNetwork Network=test-network