Configure a Mithril Signer

This guide will walk you through configuring a Mithril signer on your block producing node on the preproduction testnet.

Before we build and configure the mithril client, we need some pre-requisites.

Let's install Rust first.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

Next we will use apt to install the rest.

sudo apt-get install -y libssl-dev jq squid pkg-config build-essential

The next thing we need to do is acquire the Mithril binary. IOG does not currently offer arm64 binaries for Mithril so we will need to build our own. However, because we are on Raspberry Pi's with only 4GB of RAM we will need to increase the amount of SWAP memory available on our devices to avoid OOM (out of memory) issues and crashes while building. As of writing this (March 6th 2024) the current version of Mithril is 2408.0. Let's make a directory and clone the repo.

mkdir ~/preprodnet/bin/git
cd ~/preprodnet/bin/git
git clone https://github.com/input-output-hk/mithril.git
cd ~/preprodnet/bin/git/mithril

We will then checkout the current version 2408.0.

git checkout 2408.0

Now let's run a build test. This step is going to take a bit.

cd ~/preprodnet/bin/git/mithril/mithril-signer
make test

If the test succeeds, proceed with building. If not, please download the arm64 binary shared here.

21MB
Open

Here's the command to download the binary if you've followed along with this guide. Download it and copy it over to your block producer. An example on how to copy after you download it.

Next, check to ensure your paths are correctly configured and that the mithril-signer binary is in the correct place.

You'll see a versioned output like this if all is good.

Next let's setup our environment file.

Add the following text to your environment file and adjust accordingly to your setup.

We will now configure the systemd service.

Edit your mithril.service file to look like the following. If you've followed the setup in this guide, this service file should work.

Once saved, copy the service file to the system directory to make it a service.

Reload daemons.

Start the service.

Check the service to make sure it is in the "active" state.

If it is active and running, you can enable the service.

Last updated