Just because you call something a blockchain, that doesn't mean you aren't subject to normal engineering laws.
User guide documentation available here
CI | Status | Description |
---|---|---|
Travis CI | Master and release | |
CircleCI | Master and PRs | |
Appveyor | Master, release and PRs |
Currently the minimum supported version of the rust compiler is 1.35, however we recommend to use the most recent stable version of the rust compiler.
- Install rustup
- Run
rustup install stable
- Run
rustup default stable
- Clone this repository:
git clone --recurse-submodules https://github.com/input-output-hk/jormungandr
- Enter the repository directory:
cd jormungandr
- Check latest release tag on https://github.com/input-output-hk/jormungandr/releases/latest
- Checkout this tag:
git checkout tags/<latest release tag>
- Update submodules:
git submodule update
- Install jormungandr:
cargo install --path jormungandr
- Install jcli:
cargo install --path jcli
Note:
- On Windows, you'll need to add the
%USERPROFILE%\.cargo\bin
into the environment variablePATH
. - On Linux and macOS: add
${HOME}/.cargo/bin
into yourPATH
. - Make sure the C compiler toolchain is installed and, on Unix (e.g. macOS),
the compiler and linker executable
cc
is found inPATH
. - On Linux with systemd: to enable logging to journald replace step 9
with
cargo install --path jormungandr --features systemd
. - The build requires the Protocol Buffers compiler:
- On Linux environments without glibc such as Alpine, the protobuf compiler
protoc
needs to be installed and found inPATH
or otherwise specified in the environment variablePROTOC
. - NixOS users should rely on shell.nix provided in this source tree to pull the dependencies and set up the environment for the build.
- For distribution or container builds in general, it's a good practice to
install
protoc
from the official distribution package if available, otherwise the version bundled with crateprost-build
will be used.
- On Linux environments without glibc such as Alpine, the protobuf compiler
This will install 2 tools:
jormungandr
: the node part of the blockchain;jcli
: a command line helper tool to help you use and setup the node;
Our binaries releases are available here for many operating systems and architecture, but in due time, jormungandr will be available through package managers.
A functional node needs 2 configurations:
- Its own system configuration: Where to store data, network configuration, logging.
- 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.
More documentation on the node configuration can be found here, and for the blockchain genesis configuration here
Follow instructions on installation, then to start a private and minimal test setup:
- In terminal, create an empty directory somewhere and enter this directory
PATH/TO/SOURCE/REPOSITORY/scripts/bootstrap <options>
- execute the instruction to start printed at the end
For a BFT setup, use the following recommended options:
bootstrap -b
For a Genesis-praos setup, use the following recommended options:
bootstrap -g -s 2
For help on the options:
bootstrap -h
The bootstrap script creates a simple setup with a faucet with 10 millions coins, a BFT leader, and a stake pool.
The bootstrap script also create 2 shell scripts parametrized to this specific run of bootstrap:
faucet-send-money
faucet-send-certificate
Both scripts can be used to do simple limited operation through the jcli debugging tools.
With release of 0.6.0, public mode became available; there are currently two testnets operating at any given time:
- beta testnet
- nightly testnet
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>
In order to connect your node to a IOHK operated beta testnet, follow the official documentation. In order to connect to a nightly testnet, it's best to seek support in Cardano Stake Pool Workgroup Telegram group.
Documentation is available in the markdown format here
This project is licensed under either of the following licenses:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)