Nexus

module
Version: v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 18, 2019 License: Apache-2.0

README

🦑 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

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

Directories

Path Synopsis
Package client provides a simple wrapper around the generated gRPC client for Nexus
Package client provides a simple wrapper around the generated gRPC client for Nexus
cmd
nexus
Nexus is the command-line interface for Temporal's IPFS private network node orchestrator.
Nexus is the command-line interface for Temporal's IPFS private network node orchestrator.
Package config provides configuration definitions for Nexus
Package config provides configuration definitions for Nexus
Package daemon provides the ipfs-orchestrator's server
Package daemon provides the ipfs-orchestrator's server
Package delegator provides the ipfs-orchestrator's network routing functionality
Package delegator provides the ipfs-orchestrator's network routing functionality
Package ipfs wraps the Docker API to provide an interface through which to interact with containerized network nodes
Package ipfs wraps the Docker API to provide an interface through which to interact with containerized network nodes
mock
Code generated by counterfeiter.
Code generated by counterfeiter.
Package log provides utility functions that wrap Uber's Zap logging library
Package log provides utility functions that wrap Uber's Zap logging library
Package network provides port allocation managers
Package network provides port allocation managers
Package orchestrator manages network node operations and database interactions
Package orchestrator manages network node operations and database interactions
Package registry provides node information caching and retrieval
Package registry provides node information caching and retrieval
Package temporal provides wrappers for imported Temporal classes
Package temporal provides wrappers for imported Temporal classes
mock
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL