Skip to content

Commit fa9e594

Browse files
authored
Merge pull request #1624 from input-output-hk/damien/1615/add-cardano-minimum-version-file
Minimum supported Cardano node versions for Mithril signers
2 parents 0e40969 + fa2114e commit fa9e594

File tree

5 files changed

+92
-17
lines changed

5 files changed

+92
-17
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,10 @@ jobs:
257257
base-ref: ${{ github.event.pull_request.base.sha || 'main' }}
258258
head-ref: ${{ github.event.pull_request.head.sha || github.ref }}
259259

260+
- name: Check networks.json validity
261+
if: success() || failure()
262+
run: jq . networks.json
263+
260264
e2e:
261265
runs-on: ubuntu-22.04
262266
needs: [ build-ubuntu-X64 ]

docs/runbook/README.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,20 @@ This page gathers the available guides to operate a Mithril network.
66

77
# Guides
88

9-
| Operation | Location | Description |
10-
| ----------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------- |
11-
| **Genesis manually** | [manual-genesis](./genesis-manually/README.md) | Proceed to manual (re)genesis of the aggregator certificate chain. |
12-
| **Era markers** | [era-markers](./era-markers/README.md) | Create and update era markers on the Cardano chain. |
13-
| **Downloads statistics** | [downloads statistics](./statistics/README.md) | Display the number of downloads per day. |
14-
| **Signer registrations monitoring** | [registrations-monitoring](./registrations-monitoring/README.md) | Gather aggregated data about signer registrations (versions, stake, ...). |
15-
| **Update protocol parameters** | [protocol-parameters](./protocol-parameters/README.md) | Update the protocol parameters of a Mithril network. |
16-
| **Recompute certificates hash** | [recompute-certificates-hash](./recompute-certificates-hash/README.md) | Recompute the certificates hash of an aggregator. |
17-
| **Fix terraform lock** | [terraform-lock](./terraform-lock/README.md) | Fix a terraform lock in CD workflows. |
18-
| **Manage SSH access to infrastructure** | [ssh-access](./ssh-access/README.md) | Manage SSH access on the VM of the infrastructure for a user. |
19-
| **Upgrade VM of infrastructure** | [upgrade-vm](./upgrade-vm/README.md) | Upgrade the VM of the infrastructure of a Mithril network. |
20-
| **Create test Docker distribution** | [test-docker-distribution](./test-docker-distribution/README.md) | Create a custom test Docker distribution. |
21-
| **Deploy a test network manually** | [test-deploy-network](./test-deploy-network/README.md) | Manually deploy a test distribution to a test Mithril network. |
22-
| **Publish crates to crates.io manually** | [manual-publish-crates](./manual-publish-crates/README.md) | Manually publish Rust crates to crates.io. |
23-
| **Publish packages to npm manually** | [manual-publish-npm](./manual-publish-npm/README.md) | Manually publish packages to npm registry. |
24-
| **Client multi-platform test** | [test-client-multiplatform](./test-client-multiplatform/README.md) | Run multi-platform client CLI binaries, docker and WASM package tests. |
9+
| Operation | Location | Description |
10+
| ----------------------------------------- | ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------- |
11+
| **Genesis manually** | [manual-genesis](./genesis-manually/README.md) | Proceed to manual (re)genesis of the aggregator certificate chain. |
12+
| **Era markers** | [era-markers](./era-markers/README.md) | Create and update era markers on the Cardano chain. |
13+
| **Downloads statistics** | [downloads statistics](./statistics/README.md) | Display the number of downloads per day. |
14+
| **Signer registrations monitoring** | [registrations-monitoring](./registrations-monitoring/README.md) | Gather aggregated data about signer registrations (versions, stake, ...). |
15+
| **Update protocol parameters** | [protocol-parameters](./protocol-parameters/README.md) | Update the protocol parameters of a Mithril network. |
16+
| **Recompute certificates hash** | [recompute-certificates-hash](./recompute-certificates-hash/README.md) | Recompute the certificates hash of an aggregator. |
17+
| **Fix terraform lock** | [terraform-lock](./terraform-lock/README.md) | Fix a terraform lock in CD workflows. |
18+
| **Manage SSH access to infrastructure** | [ssh-access](./ssh-access/README.md) | Manage SSH access on the VM of the infrastructure for a user. |
19+
| **Upgrade VM of infrastructure** | [upgrade-vm](./upgrade-vm/README.md) | Upgrade the VM of the infrastructure of a Mithril network. |
20+
| **Create test Docker distribution** | [test-docker-distribution](./test-docker-distribution/README.md) | Create a custom test Docker distribution. |
21+
| **Deploy a test network manually** | [test-deploy-network](./test-deploy-network/README.md) | Manually deploy a test distribution to a test Mithril network. |
22+
| **Publish crates to crates.io manually** | [manual-publish-crates](./manual-publish-crates/README.md) | Manually publish Rust crates to crates.io. |
23+
| **Publish packages to npm manually** | [manual-publish-npm](./manual-publish-npm/README.md) | Manually publish packages to npm registry. |
24+
| **Client multi-platform test** | [test-client-multiplatform](./test-client-multiplatform/README.md) | Run multi-platform client CLI binaries, docker and WASM package tests. |
25+
| **Maintain Cardano minimum versions file** | [maintain-cardano-min-versions-file](./maintain-cardano-min-versions-file/README.md) | Maintain the `networks.json` file |
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Cardano node minimum versions for Signers
2+
3+
## Introduction
4+
5+
The [networks.json](../../../networks.json) file specifies the minimum supported versions of the Cardano node for Mithril signers and facilitates the verification of compatibility for the Cardano networks.
6+
7+
## Maintaining the file
8+
9+
### Assessment of compatibility:
10+
- Update the `e2e` job in the [ci.yml](../../../.github/workflows/ci.yml) file by adding the new Cardano node version in the `cardano_node_version` variables of the matrix.
11+
- Create a pull request to test the new Cardano node version in the devnet using CI end-to-end tests
12+
- Assess the compatibility:
13+
- **Compatible without modification**: in that case Mithril nodes are compatible without modification and versions can be bumped immediately.
14+
- **Modifications are required by the Mithril team**: in that case the versions can be bumped after the necessary modifications are implemented and a new distribution is released.
15+
16+
### Update policy by network:
17+
18+
Here are the recommended update policies by Cardano network:
19+
| Network | Status | Policy
20+
|------------|------------|------------
21+
`preview` | **stable** | the minimum supported Cardano node version should be updated to be two stable releases behind the current release version.
22+
`preprod` | **stable** | the minimum supported Cardano node version should be updated to be two stable releases behind the current release version.
23+
`mainnet` | **stable** | the minimum supported Cardano node version should be updated to be two stable releases behind the current release version.
24+
`sanchonet` | **unstable** | given the unstable status of the network, the minimum supported Cardano node version may vary from the stable one.

docs/website/root/manual/getting-started/run-signer-node.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ Note that this guide works on a Linux machine only.
9393
* Read rights on the `Database` folder (specified by the `--database-path` setting of the **Cardano node**)
9494
* Read and write rights on the `Inter Process Communication` file (typically defined by the `CARDANO_NODE_SOCKET_PATH` environment variable used to launch the **Cardano node**)
9595

96-
* Install a recent version of [`cardano-cli`](https://github.com/input-output-hk/cardano-node/releases/tag/8.7.3) (version 8.7.3+).
96+
* Install a recent version of [`cardano-cli`](https://github.com/IntersectMBO/cardano-node/releases/tag/8.9.1) (version 8.9.1+).
9797

9898
* Install a correctly configured Rust toolchain (latest stable version). You can follow the instructions provided [here](https://www.rust-lang.org/learn/get-started).
9999

@@ -113,6 +113,30 @@ Note that this guide works on a Linux machine only.
113113

114114
:::
115115

116+
:::info
117+
118+
Compare the version of your Cardano node with the minimum supported versions listed in the [`networks.json`](https://github.com/input-output-hk/mithril/blob/main/networks.json) to verify its compatibility with the Mithril signer.
119+
120+
First, check the version of your Cardano node by running the following command:
121+
122+
```bash
123+
cardano-node --version
124+
```
125+
126+
Then, refer to the minimum supported versions listed in the the [`networks.json`](https://github.com/input-output-hk/mithril/blob/main/networks.json) file.
127+
128+
You can also fetch the minimum supported version for your network using the command below:
129+
```bash
130+
wget -q -O - https://raw.githubusercontent.com/input-output-hk/mithril/main/networks.json | jq -r '."**YOUR_CARDANO_NETWORK**"."cardano-minimum-version"."mithril-signer"'
131+
```
132+
133+
Here is an example for `preprod`:
134+
```bash
135+
wget -q -O - https://raw.githubusercontent.com/input-output-hk/mithril/main/networks.json | jq -r '."preprod"."cardano-minimum-version"."mithril-signer"'
136+
```
137+
138+
:::
139+
116140
### Building your own executable
117141

118142
#### Download the source file

networks.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"mainnet": {
3+
"cardano-minimum-version": {
4+
"mithril-signer": "8.7.3"
5+
}
6+
},
7+
"preprod": {
8+
"cardano-minimum-version": {
9+
"mithril-signer": "8.7.3"
10+
}
11+
},
12+
"preview": {
13+
"cardano-minimum-version": {
14+
"mithril-signer": "8.7.3"
15+
}
16+
},
17+
"sanchonet": {
18+
"cardano-minimum-version": {
19+
"mithril-signer": "8.10.0-pre"
20+
}
21+
}
22+
}

0 commit comments

Comments
 (0)