Skip to content

Releases: MinaProtocol/mina

Mainnet Stable Release 3.0.1

12 Sep 20:26
4e62fc2
Compare
Choose a tag to compare

The o1Labs team is proud to announce that 3.0.1 is ready for Mainnet! This release includes a set of important bugfixes, improvements as well as code cleanup & CI improvements.

If you run into any issues, please include Release: 3.0.1 in the name of any issues you create.
Please report any issues you encounter here or join the Discussion!

What changed

Bug Fixes

  • Allow resending local txns #15719
  • Ignore old, deprecated fields in rosetta transactions #15718

Improvements

  • Move wire check to the tx validation logic #15813
  • [Rosetta] Refactor indexer SQL queries #15780

Complete Changelog since 3.0.0:

3.0.0...3.0.1

Supported environments include macOS, Linux (Debian 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Debian 10 is no longer a supported operating system and as such is not tested as part of our release process.
We recommend that users upgrade to a more recent supported operating system.


Upgrading & Connecting to Mainnet

Debian Packages:

Debian Repository:
First, set up and update the stable Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Daemon: sudo apt-get install --allow-downgrades -y mina-mainnet=3.0.1-4e62fc2
Mina Archive: sudo apt-get install --allow-downgrades -y mina-archive=3.0.1-4e62fc2
Mina Archive Schema: create_schema.sql
Config File: var/lib/coda/config_4e62fc20.json

Docker Images:

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal or bullseye to select the base docker image.

Mina Daemon: minaprotocol/mina-daemon:3.0.1-4e62fc2-CODENAME-mainnet
Mina Archive: minaprotocol/mina-archive:3.0.1-4e62fc2-CODENAME
Mina Rosetta: minaprotocol/mina-rosetta:3.0.1-4e62fc2-CODENAME-mainnet

Step by Step Guide:

Docker only Make sure to run with:
--peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt or add PEER_LIST_URL=https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt to your .mina-env.

Run mina daemon with:
mina daemon --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt

Check out our documentation for complete instructions on using this version to connect to Mainnet.

If you are running the correct version on the correct network MAINNET, mina client status will show:

Chain id:     a7351abc7ddf2ea92d1b38cc8e636c271c1dfd2c081c637f62ebc2af34eb7cc1
Git SHA-1:    4e62fc20520b083eff06bc6d5c60579fa88bf4ff

Mina Mainnet Beta Release 3.0.1-beta1

26 Aug 18:21
a29d1a0
Compare
Choose a tag to compare
Pre-release

The o1Labs team is proud to announce that 3.0.1-beta1 is ready to test on Mainnet! This release includes a set of important bugfixes, improvements as well as code cleanup & CI improvements.

If you run into any issues, please include Release: 3.0.1-beta1 in the name of any issues you create.
Please report any issues you encounter here or join the Discussion!

What changed

Bug Fixes

  • Allow resending local txns #13409
  • Ignore old, deprecated fields in rosetta transactions #15718

Improvements

  • Move wire check to the tx validation logic #15813
  • [Rosetta] Refactor indexer SQL queries #15780

Complete Changelog since 3.0.0:

3.0.0...3.0.1-beta1

Supported environments include macOS, Linux (Debian 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Debian 10 is no longer a supported operating system and as such is not tested as part of our release process.
We recommend that users upgrade to a more recent supported operating system.


Upgrading & Connecting to Mainnet

Debian Packages:

Debian Repository:
First, set up and update the beta Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) beta" | sudo tee /etc/apt/sources.list.d/mina-beta.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Daemon: sudo apt-get install --allow-downgrades -y mina-mainnet=3.0.1-beta1-a29d1a0
Mina Archive: sudo apt-get install --allow-downgrades -y mina-archive=3.0.1-beta1-a29d1a0
Mina Archive Schema: create_schema.sql
Config File: var/lib/coda/config_a29d1a0d.json

Docker Images:

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal or bullseye to select the base docker image.

Mina Daemon: gcr.io/o1labs-192920/mina-daemon:3.0.1-beta1-a29d1a0-CODENAME-mainnet
Mina Archive: gcr.io/o1labs-192920/mina-archive:3.0.1-beta1-a29d1a0-CODENAME
Mina Rosetta: gcr.io/o1labs-192920/mina-rosetta:3.0.1-beta1-a29d1a0-CODENAME-mainnet

Step by Step Guide:

Docker only Make sure to run with:
--peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt or add PEER_LIST_URL=https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt to your .mina-env.

Run mina daemon with:
mina daemon --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt

Check out our documentation for complete instructions on using this version to connect to Mainnet.

If you are running the correct version on the correct network MAINNET, mina client status will show:

Chain id:     a7351abc7ddf2ea92d1b38cc8e636c271c1dfd2c081c637f62ebc2af34eb7cc1
Git SHA-1:    a29d1a0dc6bd520c5f1ff6cf917d25e76fbe2eb1

Devnet Pre-Release 3.0.1-alpha1

29 Jul 17:00
Compare
Choose a tag to compare
Pre-release

The o1Labs team is proud to announce that 3.0.1-alpha1 is ready to test on Devnet! This release includes a set of important bugfixes, improvements as well as code cleanup & CI improvements.

If you run into any issues, please include Release: 3.0.1-alpha1 in the name of any issues you create.
Please report any issues you encounter here or join the Discussion!

What changed

Bug Fixes

  • Allow resending local txns #13409
  • Ignore old, deprecated fields in rosetta transactions #15718

Improvements

  • Move wire check to the tx validation logic #15813
  • [Rosetta] Refactor indexer SQL queries #15780

Complete Changelog since 3.0.0:

3.0.0...3.0.1-alpha1

Supported environments include macOS, Linux (Debian 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Debian 10 is no longer a supported operating system and as such is not tested as part of our release process.
We recommend that users upgrade to a more recent supported operating system.


Upgrading & Connecting to Devnet

Note - if you encounter the following error when launching one of the debian packages:
"Could not find a ledger tar file for hash 'jy1wjiJgTkzXr7yL8r5x4ikaNJuikibsRMnkjdH6uqGCsDmR2sf'"

Please run the following command to manually download the ledger, this is a one time operation.
curl --fail --silent --show-error -o /tmp/s3_cache_dir/genesis_ledger_7f8e3c72be57f296e86e1083379c7a09c6131b1567510cf0019eb4aff8b87813.tar.gz https://s3-us-west-2.amazonaws.com/snark-keys-ro.o1test.net/genesis_ledger_7f8e3c72be57f296e86e1083379c7a09c6131b1567510cf0019eb4aff8b87813.tar.gz

Debian Packages:

Debian Repository:
First, set up and update the alpha Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) alpha" | sudo tee /etc/apt/sources.list.d/mina-alpha.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Daemon: sudo apt-get install --allow-downgrades -y mina-devnet=3.0.1-alpha1-0473756
Mina Archive: sudo apt-get install --allow-downgrades -y mina-archive=3.0.1-alpha1-0473756
Mina Archive Schema: create_schema.sql
Config File: var/lib/coda/config_04737568.json

Docker Images:

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal or bullseye to select the base docker image.

Mina Daemon: gcr.io/o1labs-192920/mina-daemon:3.0.1-alpha1-0473756-CODENAME-devnet
Mina Archive: gcr.io/o1labs-192920/mina-archive:3.0.1-alpha1-0473756-CODENAME
Mina Rosetta: gcr.io/o1labs-192920/mina-rosetta:3.0.1-alpha1-1df449c-focal-devnet

Step by Step Guide:

Docker only Make sure to run with:
--peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/devnet/seed-list-devnet.txt or add PEER_LIST_URL=https://storage.googleapis.com/o1labs-gitops-infrastructure/devnet/seed-list-devnet.txt to your .mina-env.

Run mina daemon with:
mina daemon --peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/devnet/seed-list-devnet.txt

Check out our documentation for complete instructions on using this version to connect to Devnet.

If you are running the correct version on the correct network DEVNET, mina client status will show:

Chain id:     29936104443aaf264a7f0192ac64b1c7173198c1ed404c1bcff5e562e05eb7f6
Git SHA-1:    047375688f93546d4bdd58c75674394e3faae1f4

Mina Mainnet 3.0.0 Berkeley Release

04 Jun 19:14
93e0279
Compare
Choose a tag to compare

The o1Labs team is proud to announce that the 3.0.0 Berkeley Release is now ready and available for Mainnet!

This release represents the final stage in the Mainnet upgrade process which concludes the execution of the upgrade mechanism. This release brings zk programmability to the new upgraded network, which will unlock developers to build zk smart contracts, zkApps, layer 2 solutions and bridges, and more!

🚨 This is mandatory and without it you will no longer be able to interact with the Mina network from June 5th 2024. 🚨

Complete Changelog since 2.0.0.

This Berkeley release will also include the 3 Mina Improvement Proposals that were proposed and voted on by the Mina community. MIP1 (zkApp programmability), MIP3 (improved Kimchi proof system), and MIP4 (removal of supercharged rewards).


Supported environments include macOS, Linux (Debian 10, 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Installation

If you have mina-generate-keypair installed, you will need to first run sudo apt remove mina-generate-keypair before installing mina-mainnet=3.0.0-93e0279. The mina-generate-keypair binary is now installed as part of the mina-mainnet package.

Debian Packages

Debian Repository:
First, set up and update the stable Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
sudo echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Daemon sudo apt-get install --allow-downgrades -y mina-mainnet=3.0.0-93e0279
Mina Archive sudo apt-get install --allow-downgrades -y mina-archive=3.0.0-93e0279
Mina Archive Schema
create_schema.sql
zkapp_tables.sql
Config File: var/lib/coda/config_93e02797.json

Docker Images

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal, buster, or bullseye to select the base docker image.

Mina Daemon minaprotocol/mina-daemon:3.0.0-93e0279-CODENAME-mainnet
Mina Archive minaprotocol/mina-archive:3.0.0-93e0279-CODENAME
Mina Archive Schema
create_schema.sql
zkapp_tables.sql
Mina Rosetta minaprotocol/mina-rosetta:3.0.0-93e0279-CODENAME

Step by Step Guides


Upgrade Package verification

Documentation
https://github.com/MinaProtocol/mina/blob/berkeley/docs/upgrading-to-berkeley.md

Further usage details are documented inside the script itself as its help message: https://github.com/MinaProtocol/mina/blob/berkeley/scripts/mina-verify-packaged-fork-config

You can find the fork config from the pre-upgrade Mainnet here

Mina Archive Node

  1. Start the archive node using the migrated DB. You can migrate your database as instructed in this guide using the migration tool.

  2. Alternatively you can import the migrated db dump from here.

Mina Daemon

Nodes will remain in Bootstrap status until such a point as block production begins at 00:00UTC on June 5th.
During this period of no block production, nodes will automatically terminate after 25 minutes, this is expected behavior. Ensure you have configured your nodes to auto-restart on crash to have them automatically try and reconnect (for Docker).

  • Run mina daemon with:
    --peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt

If you are running the correct version on the correct network, mina client status will show:

Chain id:     a7351abc7ddf2ea92d1b38cc8e636c271c1dfd2c081c637f62ebc2af34eb7cc1
Git SHA-1:    93e02797f72abe2cbf8dfca6f2328e9c8cd76546

If you run into any issues, please include Release: 3.0.0 in the name of any issues you create. Please report any issues you encounter here or join the discussion!


SDK Tooling

If you are new to the world of Berkeley & indeed zkApps we strongly encourage you to check it out!
The new Berkeley era allows compatibility with the mina network and our extensive suite of SDK tooling that allows anyone to write smart contracts utilising zero knowledge proofs!

Start here zkApps Overview and let us know what you think!

Useful links

Mainnet Stable Stop Slot Release 2.0.0

21 May 12:28
039296a
Compare
Choose a tag to compare

This release is the first phase of the Mina Mainnet upgrade that specifies the stop slots in the codebase that formally begins the upgrade process.


Node operators MUST upgrade to this version as soon as possible, starting immediately and before 27 May, 2024 to ensure we have a maximum percentage of stake running on this new version to successfully continue with the planned upgrade.

It is crucial for block producers to continue running their nodes with version 2.0.0 until the stop network slot is reached so that the network reaches consensus on which block to upgrade from. The team at o1Labs will also be collecting network data from these nodes for the post-upgrade release build.


This release will set the stage for the upcoming mainnet upgrade by defining the stop slots in the codebase. This stop slot will take effect in just 2 weeks on upgrade day: June 4th, 2024, and thereby kicking off the upgrade process.

Stop Transaction Slot: At Tue Jun 4 9:00 UTC, this slot will be initiated. Blocks produced by upgraded stakeholders will be empty, and no transactions will be accepted.

Stop Network Slot: 5 hours after the stop-transaction-slot, nodes in the Mina network will stop creating new blocks, marking a pause in block production. This is intentional and necessary for the upgrade to occur smoothly.

For more information regading these milestones please see our high level plan here

After these two important stop slots, we’ll publish the post-upgrade Berkeley package. We’ll be working very closely with the community and the archive node operators during this time to migrate data from the network and validate the ledger state.


Supported environments include macOS, Linux (Debian 10, 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Complete Changelog since 1.4.1:

1.4.1...2.0.0

Connecting to the Mainnet network

Debian Packages:

Debian Repository:
First, set up and update the stable Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
sudo echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Daemon:
sudo apt-get install --allow-downgrades -y mina-mainnet=2.0.0-039296a

Mina Archive:
sudo apt-get install --allow-downgrades -y mina-archive=2.0.0-039296a

Mina Archive Schema: create_schema.sql
Config File: var/lib/coda/config_039296a2.json

Docker Images:

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal, buster, or bullseye to select the base docker image.

Mina Daemon: minaprotocol/mina-daemon:2.0.0-039296a-CODENAME-mainnet
Mina Archive: minaprotocol/mina-archive:2.0.0-039296a-CODENAME
Mina Archive Schema: create_schema.sql
Mina Rosetta: minaprotocol/mina-rosetta:2.0.0-039296a-focal

Step by Step Guide:

Run mina daemon with the following seed list parameter:
--peer-list-url https://storage.googleapis.com/mina-seed-lists/mainnet_seeds.txt

If you are running the correct version on the correct network, mainnet will show:

Chain id:     5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1:    039296a260080ed02d0d0750d185921f030b6c9c

Optional: For this release we have temporarily enabled node status tracking by default to help us track successful upgrade progress. This behaviour can be turned off by starting the node using the --disable-node-status flag.

Mina Mainnet Beta 2.0.0 Stop Slot Release

17 May 18:20
039296a
Compare
Choose a tag to compare

Mina Mainnet Beta 2.0.0 Stop Slot Release

This release is the beta phase of the Mina Mainnet upgrade that specifies the stop slot in the codebase that formally begins the upgrade process. This build is intended for use by experienced community members to test with prior to promoting it to a full stable release very soon. While this has been extensively tested; we promote transparency and always welcome feedback.

For this release we have temporarily enabled node status tracking by default to help us track successful upgrade progress. This behaviour can be turned off by starting the node using the --disable-node-status flag.

This release is a beta version of the release that will set the stage for the upcoming mainnet upgrade by defining the stop slots in the codebase. This stop slot will take effect in just 2 weeks on upgrade day: June 4th, 2024, and thereby kicking off the upgrade process.

Stop Transaction Slot: At Hour 0, this slot will be initiated. Blocks produced by upgraded stakeholders will be empty, and no transactions will be allowed.

Stop Network Slot: 5 hours after the stop-transaction-slot, nodes in the Mina network will stop creating new blocks, marking a pause in block production. This is intentional and necessary for the upgrade to occur smoothly.

After these two important stop slots, we’ll publish the post-upgrade Berkeley package. We’ll be working very closely with the community and the archive node operators during this time to migrate data from the network and validate the ledger state.


Supported environments include macOS, Linux (Debian 10, 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Complete Changelog since 1.4.1:

1.4.1...2.0.0beta1

Connecting to the Mainnet network

Debian Packages:

Debian Repository:
First, set up and update the beta Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
sudo echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) beta" | sudo tee /etc/apt/sources.list.d/mina-beta.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Daemon:
sudo apt-get install --allow-downgrades -y mina-mainnet=2.0.0beta1-039296a

Mina Archive:
sudo apt-get install --allow-downgrades -y mina-archive=2.0.0beta1-039296a

Mina Archive Schema: create_schema.sql
Config File: var/lib/coda/config_039296a2.json

Docker Images:

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal, buster, or bullseye to select the base docker image.

Mina Daemon: gcr.io/o1labs-192920/mina-daemon:2.0.0beta1-039296a-CODENAME-mainnet
Mina Archive: gcr.io/o1labs-192920/mina-archive:2.0.0beta1-039296a-CODENAME
Mina Archive Schema: create_schema.sql
Mina Rosetta: gcr.io/o1labs-192920/mina-rosetta:2.0.0beta1-039296a-focal

Step by Step Guide:

Run mina daemon with the following seed list parameter:
--peer-list-url https://bootnodes.minaprotocol.com/networks/mainnet.txt

If you are running the correct version on the correct network, mainnet will show:

Chain id:     5f704cc0c82e0ed70e873f0893d7e06f148524e3f0bdae2afb02e7819a0c24d1
Git SHA-1:    039296a260080ed02d0d0750d185921f030b6c9c

Mina 3.0.1 Upgrade Migration Tooling

01 May 17:52
e848ecb
Compare
Choose a tag to compare
Pre-release

The o1Labs team is excited to announce the stable release of our archive migration tooling to better facilitate the migration of the Mina Archive Node database to the Berkeley era! The release contains several fixes around the stability and usability of the migration tools and processes which were reported during our devnet upgrade process as well as from the alpha release. This will allow archive node operators to incrementally migrate their database in a timely manner prior to the Berkeley upgrade taking place.

The tools included are:

  1. mina-archive-maintenance: A tool to verify that the archive database is correct and up-to-date. If the database is missing blocks, then the tool patches using blocks exported as json files by mina daemon. Users can also find these blocks in gs://mina_network_block_data location. Please refer here for documentation on this tool.

  2. mina-berkeley-migration-script: This script uses multiple tools to migrate and verify the migrated database. For documentation on how to use the tooling, either the top-level simplified script or understanding the individual components, please refer to the draft documentation or abbreviated reference information.

Installation

Supported environments include macOS, Linux (Debian 10, 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Note - in order to install mina-archive-migration you will need to install google-cloud-sdk as a prerequisite.

Debian Packages:

Debian Repository:
First, set up and update the stable Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
sudo echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/mina.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Migration Tooling: sudo apt-get install --allow-downgrades -y mina-archive-migration=3.0.1-e848ecb
Mina Archive Maintenance Tooling: sudo apt-get install --allow-downgrades -y mina-archive-maintenance=1.4.1-060f0a5
Mina Berkeley Archive Schema: create_schema.sql and zkapp_tables.sql (both needed)

Docker Images:

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal, buster, or bullseye to select the base docker image.

Mina Archive Migration Tooling: gcr.io/o1labs-192920/mina-archive-migration:3.0.1-e848ecb-CODENAME
Mina Archive Maintenance Tooling: gcr.io/o1labs-192920/mina-archive-maintenance:1.4.1-060f0a5-CODENAME
Mina Berkeley Archive Schema: create_schema.sql and zkapp_tables.sql (both needed)

Step By Step Guide for Testing Migration

The migration documentation has a worked example that walks through two phases of the process, for a shortened version of the full process. To understand the full three-phase process, see the docs.

Mina Devnet 3.0.0 Upgrade Release

09 Apr 20:22
dc6bf78
Compare
Choose a tag to compare
Pre-release

❗ This release is only to be used as part of the Devnet upgrade process ❗


This release represents the final stage in the Devnet upgrade process which concludes the execution of the upgrade mechanism. This release marks a new upgraded network with all of the Berkeley functionality that will feature on Mainnet when subsequently upgraded. This version of the daemon is not compatible with the previous builds and as such it is necessary to either install this on a clean system or to remove the previous builds and artifacts. The steps on how to do this are contained within the release notes.


Supported environments include macOS, Linux (Debian 10, 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Removing previous builds

mina client stop
sudo apt remove mina-devnet=1.5.0devnet-stop-slot-c18c750 
sudo mv /tmp/coda_cache_dir /tmp/coda_cache_dir_bak
sudo mv $HOME/.mina-config $HOME/.mina-config_bak   

Connecting to the Devnet network

Debian Packages

Debian Repository:
First, set up and update the devnet Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
sudo echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) devnet" | sudo tee /etc/apt/sources.list.d/mina-devnet.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Daemon
sudo apt-get install --allow-downgrades -y mina-devnet=3.0.0
sudo apt-mark hold mina-devnet=3.0.0
Mina Archive
sudo apt-get install --allow-downgrades -y mina-archive=3.0.0
sudo apt-mark hold mina-archive=3.0.0

Mina Archive Schema
create_schema.sql
zkapp_tables.sql
Config File: var/lib/coda/config_dc6bf78b.json

Docker Images

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal, buster, or bullseye to select the base docker image.

Mina Daemon gcr.io/o1labs-192920/mina-daemon:3.0.0-dc6bf78-CODENAME-devnet
Mina Archive gcr.io/o1labs-192920/mina-archive:3.0.0-dc6bf78-CODENAME
Mina Archive Schema
create_schema.sql
zkapp_tables.sql
Mina Rosetta gcr.io/o1labs-192920/mina-rosetta:3.0.0-fbe1a6d-<CODENAME>

Step by Step Guides


Upgrade Package verification

Documentation
https://github.com/MinaProtocol/mina/blob/berkeley/docs/upgrading-to-berkeley.md

Further usage details are documented inside the script itself as its help message: https://github.com/MinaProtocol/mina/blob/berkeley/scripts/mina-verify-packaged-fork-config

You can find the fork config from the pre-upgrade Devnet here

In this release, the fork_config GraphQL endpoint does not automatically determine the correct block to fork from. As such, you will need to manually specify the block for the devnet hardfork when executing the GraphQL fork_config query.
The block that we hardfork from is always the latest block in the chain immediately prior to the transaction stop slot. In this case, the devnet transaction stop slot is set to 445620, so the correct fork block is the latest block in the chain where the globalSlotSinceGenesis < 445620. So the correct fork block to use here has the following properties:

{
  "state_hash": "3NKSvjaGSKiQuAt8BP1b1VCpLbJc9RcEFjYCaBYsJJFdrtd6tpaV",
  "blockchain_length": 296371,
  "global_slot_since_genesis": 445619
}
You can check this information by issuing the following GraphQL query and then searching through the blocks returned for the latest block where globalSlotSinceGenesis < 445620.
query MyQuery {
  bestChain {
    protocolState {
      consensusState {
        blockHeight
        slotSinceGenesis
      }
    }
    stateHash
  }
}

To query the correct fork config from GraphQL, you can specify the block height of this fork block as shown in the following query:

query MyQuery {
  fork_config(height: 296371)
}

Mina Archive Node

  1. Start the archive node using the migrated DB. You can migrate your database as instructed in this guide using the migration tool.

  2. Alternatively you can import the migrated db dump from here

Mina Daemon

This version connects and functions only on the Mina Devnet Network.

  1. If you don't already have one, create a libp2p key pair and persist it.
    mina libp2p generate-keypair -privkey-path <path-to-the-key-file>
  2. Set the environment variable MINA_LIBP2P_PASS with the password set for the libp2p key pair in the previous step.
  3. Run mina daemon with:
    -libp2p-keypair <path-to-the-key-file> and --peer-list-url https://storage.googleapis.com/o1labs-gitops-infrastructure/devnet/seed-list-devnet.txt

If you are running the correct version on the correct network (i.e. devnet), mina client status will show:

Chain id:     29936104443aaf264a7f0192ac64b1c7173198c1ed404c1bcff5e562e05eb7f6
Git SHA-1:    dc6bf78b8ddbbca3a1a248971b76af1514bf05aa

SDK Tooling

If you are new to the world of Berkeley & indeed zkApps we strongly encourage you to check it out!
The new Berkeley era allows compatibility with the mina network and our extensive suite of SDK tooling that allows anyone to write smart contracts utilising zero knowledge proofs!

Start here zkApps Overview and let us know what you think!

Useful links

Mina Devnet 1.5.0 Stop Slot Release

03 Apr 22:54
c18c750
Compare
Choose a tag to compare
Pre-release

❗ This release is only to be used as part of the Devnet Upgrade ❗


This release is the first phase of the Devnet upgrade that specifies the stop slot in the codebase that formally begins the process.
This is the first stage in the upgrade process; while a subsequent devnet release will usher in the start of the new Devnet and as such the new era of Berkeley functionality on our Devnet! The stop slot will take effect at 09:00 UTC on April 9th 2024, please upgrade your devnet nodes before this time!

For this release we have temporarily enabled node status tracking by default to help us track the successful progress towards the devnet upgrade. This behaviour can be turned off by starting the node using the --disable-node-status flag.


Supported environments include macOS, Linux (Debian 10, 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Connecting to the Devnet network

Debian Packages:

Debian Repository:
First, set up and update the devnet Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
sudo echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) devnet" | sudo tee /etc/apt/sources.list.d/mina-devnet.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Daemon:
sudo apt-get install --allow-downgrades -y mina-devnet=1.5.0devnet-stop-slot-c18c750
sudo apt-mark hold mina-devnet=1.5.0devnet-stop-slot-c18c750
Mina Archive:
sudo apt-get install --allow-downgrades -y mina-archive=1.5.0devnet-stop-slot-c18c750
sudo apt-mark hold mina-archive=1.5.0devnet-stop-slot-c18c750
Mina Archive Schema: create_schema.sql
Config File: var/lib/coda/config_c18c750a.json

Docker Images:

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal, buster, or bullseye to select the base docker image.

Mina Daemon: gcr.io/o1labs-192920/mina-daemon:1.5.0devnet-stop-slot-c18c750-CODENAME-devnet
Mina Archive: gcr.io/o1labs-192920/mina-archive:1.5.0devnet-stop-slot-c18c750-CODENAME
Mina Archive Schema: create_schema.sql
Mina Rosetta: gcr.io/o1labs-192920/mina-rosetta:1.5.0devnet-stop-slot-c18c750-focal

Step by Step Guide:

Run mina daemon with the following seed list parameter:
--peer-list-url https://storage.googleapis.com/seed-lists/devnet_seeds.txt

If you are running the correct version on the correct network, devnet will show:

Chain id:     b6ee40d336f4cc3f33c1cc04dee7618eb8e556664c2b2d82ad4676b512a82418
Git SHA-1:    c18c750a76a66da9b57587f2cc77b9d996eb76cd

Mina Devnet Upgrade Migration Tooling

03 Apr 00:55
6e92017
Compare
Choose a tag to compare
Pre-release

❗ This tooling release is only for the Mina Devnet Upgrade ❗

The O(1) Labs team is excited to announce the release of the tools required to migrate Devnet archive database! The release will enable archive node operators on Devnet to incrementally migrate their database before the Berkeley Upgrade on Devnet.

The new tools included are:

  1. mina-archive-maintenance: A tool to verify that the devnet archive database is correct and up-to-date. If the database is missing blocks, then the tool patches using blocks exported as json files by mina daemon. Users can also find these blocks in gs://mina_network_block_data location. Please refer here for documentation on this tool.

  2. mina-berkeley-migration-script: This script uses multiple tools to migrate devnet database and verify the migrated database. For documentation on how to use the tooling, either the toplevel simplified script or understanding the individual components, please refer to the draft documentation or abbreviated reference information.

Installation

Note - it is recommended to use a clean machine/VM for this testing with no other installed mina instances, until the final devnet hardfork build is prepared.

Supported environments include macOS, Linux (Debian 10, 11 and Ubuntu 20.04 LTS), and any host machine with Docker.

Note - in order to install mina-archive-migration you will need to install google-cloud-sdk as a prerequisite.

Debian Packages:

Debian Repository:
First, set up and update the devnet Debian Repository for your platform with the following commands:

sudo rm /etc/apt/sources.list.d/mina*.list
sudo echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) devnet" | sudo tee /etc/apt/sources.list.d/mina-devnet.list
sudo apt-get update

Then, install the package(s) that you need:

Mina Migration Tooling: sudo apt-get install --allow-downgrades -y mina-archive-migration=3.0.0devnet-tooling-6e92017
Mina Archive Maintenance Tooling: sudo apt-get install --allow-downgrades -y mina-archive-maintenance=1.4.0beta2-compatible-060f0a5
Mina Berkeley Archive Schema: create_schema.sql and zkapp_tables.sql (both needed)

Docker Images:

Every docker image is built for each of the supported platforms, replace CODENAME in the images below with your choice of focal, buster, or bullseye to select the base docker image.

Mina Archive Migration Tooling: gcr.io/o1labs-192920/mina-archive-migration:3.0.0devnet-tooling-6e92017-CODENAME
Mina Archive Maintenance Tooling: gcr.io/o1labs-192920/mina-archive-maintenance:1.4.0beta2-compatible-060f0a5-CODENAME
Mina Berkeley Archive Schema: create_schema.sql and zkapp_tables.sql (both needed)

Testing Information

The Devnet canonical-only migration and replay verification process downloads around 80GB and takes from a few hours (local PostgreSQL and all blocks downloaded over gigabit using SSD) to over a week (50ms ping to PostgreSQL).

The Mainnet canonical-only migration and replay verification process downloads 240GB and takes between 14 hours (local PostgreSQL and all blocks downloaded over gigabit using SSD) and 20-30 days (50ms ping to PostgreSQL).

For this tooling release, all the same documentation as usual for connecting to devnet applies:

https://docs.minaprotocol.com/node-operators/connecting-to-devnet

However, a new requirement for the migration is enough disk space to store the entire chain history in a bloated JSON format. Yeah, a full node can sync without downloading it, but we can't trustlessly perform data migration on data we don't have :think-about-it:

If you are short on disk space and high on patience, the mina-berkeley-migration-script --delete-blocks switch is your friend. If you want the process to avoid alternating between download and migrating, the mina-berkeley-migration-script --prefetch-blocks switch is also your friend and will do the download up-front, at the expense of disk space but lets you rerun at any time.

A bundle of some testing blocks is available at gs://mina_network_block_data/devnet-bundle-3NKRsRWBzmPR8Z8ZmJb4u8FLpnSkjRitUpKZzVkHp11QuwP5i839.tar.gz. Downloading and extracting this will take around half the time as prefetching or streaming the blocks. It is 50GB and unpacks to around 80GB.

The recommended testing configuration if you wish to migrate with live data is to use one container/environment with the SQL server and migration tools, and another that has the daemon/archive node. Using a high-latency PostgreSQL server distantly connected via network can extend the process from 12-18 hours into several days. Multiply your ping time to the server by at least 10 million or so to estimate the total migration time.

If you would like to test the tools without bothering with a node, O(1) is providing a fork configuration from 2024-03-25.

If you do already have a devnet node, when you are ready to perform a final migration with the mina-berkeley-migration-script, connect to your 1.4.1 node. Export a state dump for the current best tip:

curl --location "http://localhost:3085/graphql" \
  --header "Content-Type: application/json" \
  --data "{\"query\":\"query MyQuery {\n  fork_config\n}\n\",\"variables\":{}}" | jq '.data.fork_config' > best_tip_state_dump.json

The daemon will complain (probably into the file) if it is not yet Synced, and the devnet is known to have bad bootstrap performance (one of many reasons to hardfork). So be careful, best_tip_state_dump.json might actually be an error message.

mina-create-genesis --config-file best_tip_state_dump.json --genesis-dir new-devnet-ledgers --hash-output-file hashes.json
# adjusts data format compatibility between major versions
sed -i -e 's/"set_verification_key": "signature"/"set_verification_key": {"auth": "signature", "txn_version": "2"}/' best_tip_state_dump.json
FORK_CONFIG_JSON=best_tip_state_dump.json LEDGER_HASHES_JSON=hashes.json GENESIS_TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ" -d "10 mins") mina-hf-create-runtime-config > genesis_config.json

This genesis_config.json can be used to start a new isolated devnet fork, for testing.

Step By Step Guide for Testing Devnet Migration

The migration documentation has a worked example that walks through two phases of the process, for a shortened version of the full process. To understand the full three-phase process, see the docs.

Mina Riddle

These notes are longer than usual and you deserve some entertainment. Noone on the team was prepared for this.

In the realm of our code, a curious tale unfurls,
With "buggy validations" and glitches that gave us whirls.
Processes failed, though all seemed right,
Yet it brought us laughter and sheer delight.
Can you fathom why, with mind's bright light,
why mainnet block 241082 brought us relief, a moment so right?