input-output-hk / jormungandr

privacy voting blockchain node
https://input-output-hk.github.io/jormungandr/
Apache License 2.0
364 stars 132 forks source link

This repo is unmaintained please refer to https://github.com/input-output-hk/catalyst-core/tree/main/src/jormungandr

Full Node

Just because you call something a blockchain, that doesn't mean you aren't subject to normal engineering laws.

User guide documentation available here

Master current build status

CI Status Description
CircleCI CircleCI Master and PRs

Install from Binaries

Use the Latest Binaries, available for many operating systems and architectures.

Install from Source

Prerequisites

Rust

Get the Rust Compiler (latest stable version is recommended, minimum required: 1.39+).

rustup install stable
rustup default stable
rustc --version # if this fails, try a new command window, or add the path (see below)

Dependencies

Path

protobuf

Commands

Check <latest release tag> on https://github.com/input-output-hk/jormungandr/releases/latest

git clone https://github.com/input-output-hk/jormungandr
cd jormungandr
git checkout tags/<latest release tag> #replace this with something like v1.2.3
cargo build # skip this if you do not want to run the tests
cargo test  # skip this if you do not want to run the tests
cargo install --locked --path jormungandr # --features systemd # (on linux with systemd)
cargo install --locked --path jcli

This will install 2 tools:

Configuration Basics

A functional node needs 2 configurations:

  1. Its own node configuration: Where to store data, network configuration, logging.
  2. The blockchain genesis configuration, which contains the initial trusted setup of the blockchain: coin configuration, consensus settings, initial state.

In normal use, the blockchain genesis configuration is given to you or automatically fetched from the network.

Quick-Start - Public Mode

To start a new node from scratch on a given blockchain, you need to know the block0 hash of this blockchain for trust purpose and internet peers to connect to. The simplest way to start such a node is:

jormungandr --block0-hash <HASH> --trusted-peers <IPs>

Quick-Start - Cardano Shelly Testnet

Quick-Start - Private Mode

Follow instructions on installation, then to start a private and minimal test setup:

mkdir mynode
cd mynode
python3 PATH/TO/SOURCE/REPOSITORY/scripts/bootstrap.py <options>

Use the following recommended bootstrap options:

bootstrap --bft # BFT setup
bootstrap --genesis-praos --slot-duration 2 # Genesis-praos setup
bootstrap --help # further help

The bootstrap script creates a simple setup with a faucet with 10 millions coins, a BFT leader, and a stake pool.

Both scripts can be used to do simple limited operation through the jcli debugging tools.

Documentation

Documentation is available in the markdown format here

License

This project is licensed under either of the following licenses: