Update Mithril Signer

In this example we will update from Mithril Signer version 0.2.109 to 0.2.116 - Updated: 4/4/2024

Please note this update didn't require any changes to the configuration files. Other updates may require changes to additional files.


The following updates are done just on your Block Producer.

Step 1 - Update Rust

On Block Producer, run the following command to update Rust:

rustup update

Step 2 - Clone Mithril Git

Clone the Mithril git to your git folder. Run:

cd $HOME/git
git clone https://github.com/input-output-hk/mithril.git

Step 3 - Checkout Current Verison

To find the current version go to https://github.com/input-output-hk/mithril/releases/latest and look for latest version. In this case the current version is Mithril v2412.0

Always make sure the version is compatible with Mainnet before updating

Don't get the tag version of Mithril v2412.0 confused with the version of the Mithril Signer in this case 0.2.116 The Crate versions are different from the tag version.

To checkout current version in this case Mithril v2412.0, first change to Mithril folder in git and then checkout version. Run:

cd $HOME/git/mithril
git checkout 2412.0

Step 4 - Change Directory

cd $HOME/git/mithril/mithril-signer

Step 5 - Run Tests (optional)

make test

Step 6 - Build the Executable

make build

Step 7 - Verify the Build Version

Stay in $HOME/git/mithril/mithril-signer folder and then run:

./mithril-signer -V

Step 8 - Stop Mithril Signer Service

sudo systemctl stop mithril-signer

Step 9 - Move mithril Signer Executable

We keep our mithril signer in the following folder, please adjust to your path. $NODE_HOME/mithril-signer

cd $HOME/git/mithril/mithril-signer
sudo mv -f mithril-signer $NODE_HOME/mithril-signer

Step 10 - Start Mithril Signer Service

sudo systemctl start mithril-signer

Step 11 - Verify Version and Status

Check version run:

We keep our mithril signer in the following folder, please adjust to your path. $NODE_HOME/mithril-signer

cd $NODE_HOME/mithril-signer
./mithril-signer -V

Check status

systemctl status mithril-signer.service

Step 12 - Clean up

If you have the correct version and the status is good, go ahead and clean up files.

cd $HOME/git/
rm -rf mithril

Verify your signer is registered

Download the script into the mithril-signer directory

cd $NODE_HOME/mithril-signer
wget https://mithril.network/doc/scripts/verify_signer_registration.sh

Make the script executable:

cd $NODE_HOME/mithril-signer
chmod +x verify_signer_registration.sh

Run Script:

Replace "**POOL_ID**" with your pool ID, example below

cd $NODE_HOME/mithril-signer
PARTY_ID=**POOL_ID** AGGREGATOR_ENDPOINT=https://aggregator.release-mainnet.api.mithril.network/aggregator ./verify_signer_registration.sh

Example: PARTY_ID=pool16cdtqyk0fvxzfkhjg3esjcuty4tnlpds5lj0lkmqmwdjyzaj7p8 AGGREGATOR_ENDPOINT=https://aggregator.release-mainnet.api.mithril.network/aggregator ./verify_signer_registration.sh

If your signer is registered, you should see this message:

>> Congrats, your signer node is registered!

If this is an error with registration you will see this message:

>> Oops, your signer node is not registered. Party ID not found among the signers registered at epoch XXX.

Verify your signer contributes with individual signatures

Download the script into the mithril-signer directory

cd $NODE_HOME/mithril-signer
wget https://mithril.network/doc/scripts/verify_signer_signature.sh

Make the script executable:

cd $NODE_HOME/mithril-signer
chmod +x verify_signer_signature.sh

Run Script:

Replace "**POOL_ID**" with your pool ID, example below

cd $NODE_HOME/mithril-signer
PARTY_ID=**POOL_ID** AGGREGATOR_ENDPOINT=https://aggregator.release-mainnet.api.mithril.network/aggregator ./verify_signer_signature.sh

Example: PARTY_ID=pool16cdtqyk0fvxzfkhjg3esjcuty4tnlpds5lj0lkmqmwdjyzaj7p8 AGGREGATOR_ENDPOINT=https://aggregator.release-mainnet.api.mithril.network/aggregator ./verify_signer_signature.sh

If your signer is contributing, you should see this message:

>> Congrats, you have signed this certificate: ...

Otherwise, you should see this error message:

>> Oops, your party id was not found in the last 20 certificates. Please try again later.

Congratulations you did it!

Mithril Explorer: https://mithril.network/explorer/?aggregator=https%3A%2F%2Faggregator.release-mainnet.api.mithril.network%2Faggregator

Additional sources which helped create this guide: https://mithril.network/doc/manual/getting-started/run-signer-node/

Contributors

Thanks to the following pools for helping to put together these guides. Please consider delegating to their pools to support them. Are you a pool? Consider buying them a coffee

Last updated