Skip to main content

Mithril client CLI 'snapshot' command is deprecated

· One min read
Mithril Team

The 'snapshot' command of the client CLI is deprecated

With the release of the new distribution 2412, we have deprecated the snapshot command of the client CLI.

The snapshot command has been superseded by the cardano-db snapshot command. In order to give time to our users to use the new command, the now legacy snapshot command is still available, but it will be removed in a near future.

In order to proceed to the upgrade, install the latest stable client CLI, and replace the legacy command with the new command, e.g.:

mithril-client -vvv snapshot download latest --json

Should be replaced with

mithril-client -vvv cardano-db snapshot download latest --json

For any inquiries or assistance, don't hesitate to reach out to the team on the Discord channel.

Mithril signer Prometheus endpoint is available

· One min read
Mithril Team

Mithril signer Prometheus endpoint is available

With the release of the new distribution 2412, the Mithril signer can start an optional Prometheus endpoint to monitor basic metrics.

The endpoint is not activated by default, and needs to be setup by the SPOs who wish to use it. We have added a section in the Run a Mithril signer as an SPO guide describing the setup process.

Please note that the Mithril signer needs to be restarted after the configuration for the Prometheus endpoint.

Additionally, a Grafana template has been created to easily setup a dashboard for this Prometheus endpoint (ID 20776): https://grafana.com/grafana/dashboards/20776-mithril-signer/

Grafana Dashboard

For any inquiries or assistance, don't hesitate to reach out to the team on the Discord channel.

Mithril client CLI output breaking change

· 3 min read
Mithril Team

Breaking change introduced in the output of Mithril client CLI

With the release of the new distribution 2408, we have introduced a breaking change to the Mithril client CLI version 0.7.0: all logs are now written to stderr instead of stdout. This allows for cleaner command results that you can directly pipe into tools like jq.

Below, the stdout output of mithril-client -vvv snapshot download latest --json command before the update:

{"timestamp": "2024-02-27T10:41:55.576645+00:00", "step_num": 1, "total_steps": 5, "message": "Checking local disk info…"}
{"timestamp": "2024-02-27T10:41:55.576932+00:00", "step_num": 2, "total_steps": 5, "message": "Fetching the certificate and verifying the certificate chain…"}
{"timestamp": "2024-02-27T10:41:55.847199+00:00", "step_num": 3, "total_steps": 5, "message": "Downloading and unpacking the snapshot…"}
{"timestamp": "2024-02-27T10:41:56.023585+00:00", "bytes_downloaded": 390, "bytes_total": 345223208, "seconds_left": 75797.765, "seconds_elapsed": 0.085}
{"timestamp": "2024-02-27T10:41:56.356820+00:00", "bytes_downloaded": 9487846, "bytes_total": 345223208, "seconds_left": 32.674, "seconds_elapsed": 0.418}
{"timestamp": "2024-02-27T10:41:56.690001+00:00", "bytes_downloaded": 21682030, "bytes_total": 345223208, "seconds_left": 18.209, "seconds_elapsed": 0.752}
{"timestamp": "2024-02-27T10:41:57.023923+00:00", "bytes_downloaded": 33795639, "bytes_total": 345223208, "seconds_left": 14.218, "seconds_elapsed": 1.085}
{"timestamp": "2024-02-27T10:41:57.356999+00:00", "bytes_downloaded": 45934938, "bytes_total": 345223208, "seconds_left": 12.204, "seconds_elapsed": 1.419}
{"timestamp": "2024-02-27T10:41:57.690031+00:00", "bytes_downloaded": 58130472, "bytes_total": 345223208, "seconds_left": 10.894, "seconds_elapsed": 1.752}
{"timestamp": "2024-02-27T10:41:58.023964+00:00", "bytes_downloaded": 70235494, "bytes_total": 345223208, "seconds_left": 9.922, "seconds_elapsed": 2.086}
{"timestamp": "2024-02-27T10:41:58.357817+00:00", "bytes_downloaded": 82456663, "bytes_total": 345223208, "seconds_left": 9.134, "seconds_elapsed": 2.419}
{"timestamp": "2024-02-27T10:41:58.690945+00:00", "bytes_downloaded": 94618128, "bytes_total": 345223208, "seconds_left": 8.463, "seconds_elapsed": 2.753}
{"timestamp": "2024-02-27T10:41:59.024599+00:00", "bytes_downloaded": 106765259, "bytes_total": 345223208, "seconds_left": 7.868, "seconds_elapsed": 3.086}
{"timestamp": "2024-02-27T10:41:59.358139+00:00", "bytes_downloaded": 118941687, "bytes_total": 345223208, "seconds_left": 7.325, "seconds_elapsed": 3.420}
{"timestamp": "2024-02-27T10:41:59.691176+00:00", "bytes_downloaded": 131052374, "bytes_total": 345223208, "seconds_left": 6.824, "seconds_elapsed": 3.753}
{"timestamp": "2024-02-27T10:42:00.025189+00:00", "bytes_downloaded": 143190076, "bytes_total": 345223208, "seconds_left": 6.351, "seconds_elapsed": 4.087}
{"timestamp": "2024-02-27T10:42:00.358735+00:00", "bytes_downloaded": 155448192, "bytes_total": 345223208, "seconds_left": 5.896, "seconds_elapsed": 4.420}
{"timestamp": "2024-02-27T10:42:00.693529+00:00", "bytes_downloaded": 167494850, "bytes_total": 345223208, "seconds_left": 5.466, "seconds_elapsed": 4.755}
{"timestamp": "2024-02-27T10:42:01.026885+00:00", "bytes_downloaded": 179789000, "bytes_total": 345223208, "seconds_left": 5.043, "seconds_elapsed": 5.088}
{"timestamp": "2024-02-27T10:42:01.360483+00:00", "bytes_downloaded": 187536751, "bytes_total": 345223208, "seconds_left": 4.778, "seconds_elapsed": 5.422}
{"timestamp": "2024-02-27T10:42:01.693978+00:00", "bytes_downloaded": 199737576, "bytes_total": 345223208, "seconds_left": 4.389, "seconds_elapsed": 5.756}
{"timestamp": "2024-02-27T10:42:02.027113+00:00", "bytes_downloaded": 211879712, "bytes_total": 345223208, "seconds_left": 4.006, "seconds_elapsed": 6.089}
{"timestamp": "2024-02-27T10:42:02.360139+00:00", "bytes_downloaded": 224033698, "bytes_total": 345223208, "seconds_left": 3.626, "seconds_elapsed": 6.422}
{"timestamp": "2024-02-27T10:42:02.694407+00:00", "bytes_downloaded": 236212871, "bytes_total": 345223208, "seconds_left": 3.249, "seconds_elapsed": 6.756}
{"timestamp": "2024-02-27T10:42:03.027431+00:00", "bytes_downloaded": 248301091, "bytes_total": 345223208, "seconds_left": 2.878, "seconds_elapsed": 7.089}
{"timestamp": "2024-02-27T10:42:03.361001+00:00", "bytes_downloaded": 260428703, "bytes_total": 345223208, "seconds_left": 2.509, "seconds_elapsed": 7.423}
{"timestamp": "2024-02-27T10:42:03.694430+00:00", "bytes_downloaded": 272673595, "bytes_total": 345223208, "seconds_left": 2.139, "seconds_elapsed": 7.756}
{"timestamp": "2024-02-27T10:42:04.028557+00:00", "bytes_downloaded": 284878102, "bytes_total": 345223208, "seconds_left": 1.774, "seconds_elapsed": 8.090}
{"timestamp": "2024-02-27T10:42:04.361686+00:00", "bytes_downloaded": 296835374, "bytes_total": 345223208, "seconds_left": 1.418, "seconds_elapsed": 8.423}
{"timestamp": "2024-02-27T10:42:04.695532+00:00", "bytes_downloaded": 309005759, "bytes_total": 345223208, "seconds_left": 1.058, "seconds_elapsed": 8.757}
{"timestamp": "2024-02-27T10:42:05.028705+00:00", "bytes_downloaded": 321118015, "bytes_total": 345223208, "seconds_left": 0.702, "seconds_elapsed": 9.090}
{"timestamp": "2024-02-27T10:42:05.361956+00:00", "bytes_downloaded": 333264477, "bytes_total": 345223208, "seconds_left": 0.347, "seconds_elapsed": 9.424}
{"timestamp": "2024-02-27T10:42:05.711065+00:00", "step_num": 4, "total_steps": 5, "message": "Computing the snapshot message"}
{"timestamp": "2024-02-27T10:42:12.540752+00:00", "step_num": 5, "total_steps": 5, "message": "Verifying the snapshot signature…"}
{"timestamp": "2024-02-27T10:42:12.540913+00:00", "db_directory": "/mithril-client-0.5.17/db"}

Now the stdout output with Mithril client CLI version 0.7.0:

{"timestamp": "2024-02-27T10:43:06.357962+00:00", "db_directory": "/mithril-client-0.7.0/db"}

In addition, the --log-format-json option that enable JSON output is now written to stderr as well.

For any inquiries or assistance, don't hesitate to reach out to the team on the Discord channel.

Mithril SanchoNet network released

· One min read
Mithril Team

The release of the Mithril SanchoNet testing network

The Mithril team has released the new testing-sanchonet Mithril network.

Mithril pioneer stake pool operators (SPOs) are welcome to run a Mithril signer on this network, with configuration parameters available here.

It's important to note that this network will serve as the primary platform for experimenting with unstable features of the Mithril networks in the future, such as the Cardano transactions set signatures or peer-to-peer (P2P) networking.

The unstable features are consistently developed and deployed to the SanchoNet testing network directly from the main branch of the Mithril repository. Therefore, Mithril nodes operating on this network must be either built from the main branch or use pre-built binaries from the unstable release. Failure to update Mithril nodes to the latest unstable version or encountering a bug during development could result in operational disruptions.

Note that the testing-sanchonet network undergoes continuous monitoring, and its availability status is reported on this status page.

For any inquiries or assistance, don't hesitate to reach out to the team on the Discord channel.

Mithril client npm package is released!

· One min read
Mithril Team

Mithril client npm is open to developers on npmjs.com

The Mithril team has published the first release (v0.1.7) of its mithril-client-wasm npm package on npmjs.com.

The Mithril client npm package allows developers to use all the tooling necessary to manipulate Mithril certified types from a Mithril Aggregator directly in their (web) applications and to develop their own Mithril clients in any supported browser!

Here are some useful documentation that can be used by developers:

Feel free to reach out to us on the Discord channel for questions and/or help.

Mithril signer service new configuration

· One min read
Mithril Team

PR: Fix signer service recommended configuration #1419

Issue: Fix signer node service setup #1404

The previous recommended configuration proposed a service restart frequency which was too high. When the service was restarted, and if the Cardano node was not ready yet, the service tried to restart too many times in a short period: thus the service just failed and the service had to be started manually after the Cardano node is up and ready. This lead to some SPOs skipping registrations for some epochs.

The duration before restarting the service is increased to 60s: RestartSec=60.

Below is the new recommended configuration:

[Unit]
Description=Mithril signer service
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=60
User=cardano
EnvironmentFile=/opt/mithril/mithril-signer.env
ExecStart=/opt/mithril/mithril-signer -vvv

[Install]
WantedBy=multi-user.target
EOF'

We highly recommend to update your existing configuration file (/etc/systemd/system/mithril-signer.service) with the values specified in the guide

⚠️ Following this modification, the service needs to be restarted with the following command:

sudo systemctl restart mithril-signer

Feel free to reach out to us on the Discord channel for questions and/or help.

Mithril client library is released!

· One min read
Mithril Team

Mithril client library is open to developers on crates.io

The Mithril team has published the first release (v0.5.7) of its mithril-client library on crates.io.

The Mithril client library allows developers to use all the tooling necessary to manipulate Mithril certified types from a Mithril Aggregator directly in their (Rust) applications and to develop their own Mithril clients!

Here are some useful documentation that can be used by developers:

Feel free to reach out to us on the Discord channel for questions and/or help.

Mithril Relay Security Advisory

· One min read
Mithril Team

Mithril relay could expose Cardano block producer internal IP when updated (Security Advisory)

The Mithril team has published a security advisory to destination of SPOs running a Mithril signer/relay on the mainnet infrastructure:

danger

We strongly encourage all the mainnet SPOs to update the listening port of their Mithril relay in order to prevent the issue, with the process explained in the Workarounds section of the security advisory.

Feel free to reach out to us on the Discord channel for questions and/or help.

Mithril Protocol’s Mainnet Beta Launch

· 2 min read
Mithril Team

Update 2023/07/30: The first certificates and snapshots have been produced by the release-mainnet network!

Update 2023/07/25: The Genesis certificate of the release-mainnet network has been successfully created.

Mithril Protocol’s Mainnet Beta is launched 🚀

The Mithril team is thrilled to announce that the Mithril Protocol’s Mainnet Beta is launched 🎉

Here are the next steps that we will follow in order to get the release-mainnet network producing its first certificates:

  1. Open the first signers registrations on the release-mainnet network (1 epoch).
  2. Create the genesis certificate of the release-mainnet network (1 epoch).
  3. Wait for the first certificates to be produced by the release-mainnet network.

Mainnet Beta Launch Timeline

This is an expected timeline, in case of modification, we will amend this post with a new one.

Also, the documentation has been updated with the configuration of the release-mainnet network. It is available here.

danger

As a Cardano SPO, before being able to setup a Mithril signer on the mainnet, it is required to complete the step 2 of the SPO onboarding guide

Feel free to reach out to us on the Discord channel for questions and/or help.

Mithril Signer Deployment Models

· 2 min read
Mithril Team

The new Mithril Signer Deployment Models for SPOs will be introduced soon

Epic: Prepare Mithril Signer deployment model for SPO #862

⚠️ The Mithril Signer Deployment Models is not deployed yet to the pre-release-preview and release-preprod network. A special announcement will be made on the ask-mithril Discord channel when a new release candidate distribution is ready.

All these information will be available at the updated Run a Mithril Signer node (SPO) guide. In the mean time, a preview of the Mithril signer setup with the production deployment model is available here. In the new production deployment model, a new Mithril Relay has been introduced and requires an extra setup effort versus the naive deployment model that is currently ran by the pioneer SPOs on the Mithril test networks.

info

We strongly encourage the volunteer SPOs to test the production deployment (once it is available of the pre-release-preview network) and to give us their feedback on the setup (clarity of the documentation, if you needed some fixes to make it work, ...).

Here is the schema of the production deployment for the mainnet: Production Mithril Signer Deployment Model

and the schema of the naive deployment only for the testnet: Naive Mithril Signer Deployment Model

Feel free to reach out to us on the Discord channel for questions and/or help.