JorManager is designed to be installed on Linux systems. Most of the commands in this guide will be designed for the Ubuntu distribution, but it should be able to run on others with slight modifications.
Update any packages on your system and configure some build environment tools.
#!bash $ sudo apt-get update ... ... $ sudo apt-get upgrade ... ... $ sudo apt-get install python3 build-essential pkg-config libffi-dev libgmp-dev libssl-dev libtinfo-dev systemd libsystemd-dev zlib1g-dev make g++ tmux git jq libncursesw5 gnupg aptitude libtool autoconf secure-delete iproute2 bc tcptraceroute dialog libsqlite3-dev
JorManager requires Java 14 or higher.
#!bash $ sudo apt-get install openjdk-14-jdk ... ... $ java -version openjdk version "14.0.2" 2020-07-14 OpenJDK Runtime Environment (build 14.0.2+12-Ubuntu-120.04) OpenJDK 64-Bit Server VM (build 14.0.2+12-Ubuntu-120.04, mixed mode, sharing)
java -version command doesn't show you java 14 as the default, you need run the following command and choose the correct java 14 version.
#!bash $ sudo update-alternatives --config java There are 4 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/jvm/java-14-openjdk-amd64/bin/java 1411 auto mode 1 /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1111 manual mode 2 /usr/lib/jvm/java-13-oracle/bin/java 1091 manual mode 3 /usr/lib/jvm/java-14-openjdk-amd64/bin/java 1411 manual mode 4 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode Press <enter> to keep the current choice[*], or type selection number:
In order to do things like calculate leader logs, JorManager needs the version of libsodium from IOG.
#!bash $ git clone https://github.com/input-output-hk/libsodium ... ... $ cd libsodium $ git checkout 66f017f1 HEAD is now at 66f017f1 Fix issue when building VRF tests with g++ $ ./autogen.sh ... ... $ ./configure ... ... $ make && make check ... ... $ sudo make install ... Libraries have been installed in: /usr/local/lib ...
Install cardano-node and cardano-cli locally
In a normal JorManager setup, it's a good practice to have a local passive node on the same machine as JorManager. This node will be used for submitting transactions during the stakepool setup and keeping JorManager in sync with the blockchain. You can choose to have the default node be remote too, but local is the recommended setup for the default node.
You can follow any guide for installing these. I'm linking the one from IOG for reference.
Install cardano-node and cardano-cli on remotes
Follow the guide above for installing on any remote server nodes.
Configure remote SSH into the servers using passwordless SSH keys. While it's better security-wise to add a password to your keys, in an automated system like JorManager, this is too much friction to have JorManager prompt you for passwords each and every time it needs to talk to your remote nodes. Make sure you use best practices for securing the JorManager machine itself and any SSH Keys. ed25519 keys are recommended.
Remote nodes also require a work-around so that we can talk to the cardano-node unix socket over SSH. We need to modify the ssh configuration to add the
CARDANO_NODE_SOCKET_PATH as an allowed environment variable.
#!bash $ sudo nano /etc/ssh/sshd_config ... # Allow client to pass locale environment variables AcceptEnv LANG LC_* CARDANO_NODE_SOCKET_PATH ... $ sudo systemctl restart ssh.service
Now that we have our local JorManager host system configured and any remote nodes, we can setup JorManager itself.
First, download the latest JorManager jar file from bitbucket and put it into a location you control. I put everything in ~/haskell/jormanager or ~/haskell/jormanager_test if I'm configuring a testnet setup.
#!bash $ cd ~/haskell/jormanager $ sha256sum -c jormanager-2.0.0-SNAPSHOT.jar.sha256 jormanager-2.0.0-SNAPSHOT.jar: OK $ mv jormanager-*.jar jormanager.jar $ java -jar jormanager.jar install
SAVE YOUR SPENDING PASSWORD in a secure location!!! If you lose this password, you lose any secret keys stored in JorManager. You're done, kaput, mount your picture on the stakepool operator wall of shame.
The installer has created several ways for you to run JorManager. If systemd was found on your system, the installer has created systemd scripts for you.
$ sudo systemctl start jm.service $ sudo systemctl stop jm.service
If you don't have or use systemd, manual startup/shutdown scripts have been created for you.
$ ./startJormanager.sh $ ./stopJormanager.sh
To access JorManager, open a browser to
If something gets screwed up, you might be instructed to dig into the database. It can be accessed at
Continue on to >> Default Node Setup