Skip to content

Instantly share code, notes, and snippets.

@amc-ie
Last active March 26, 2025 19:34
Show Gist options
  • Save amc-ie/9774efd70fd8407e84630aaca40e4c84 to your computer and use it in GitHub Desktop.
Save amc-ie/9774efd70fd8407e84630aaca40e4c84 to your computer and use it in GitHub Desktop.
Devnet Pre-Release 3.1.0-alpha1

The o1Labs team is proud to announce that 3.1.0-alpha1 is ready to test on Devnet! This release includes some bug fixes, hashing performance enhancements as well as additional code cleanup & general improvements. A very cool addition to this release is an optimization to the ledger synchronization protocol, specifically enhancing how nodes sync their ledger state during a fresh startup, after downtime, or restarting from stale state.

The change reduces the number of network roundtrips needed to sync a ledger and therefore makes syncing fast even as the # of accounts in the ledger grows!

We have also introduced enhancements during bootstrapping to reduce empty blocks on node restart.

We have also landed some very cool additional work such as a reduction of the max time to produce a block from >120s down to <45s and some nice items that allow for resource reductions.

This release also introduces the ability to spin up custom snark coordinator configurations! Here's a cool script that showcases the usage!

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

What has changed

Improvements

  • #16093: Wide merkle query
  • #16272: Improve lagrange retrieval performance & remove unsafes
  • #16201: optimize memory consumption for verifier subprocess
  • #16356: provide full runtime config to graphql
  • #16207: Update proof systems commit to include safe lagrange basis
  • #16274: LMDB storage
  • #16304: Remove redundant fields from compile config type
  • #16186: [Part 1 of 2] Constants loader and Config loader
  • #16163: Explicitly declare missing daemon runtime configuration
  • #16206: Work_selector: small cleanup
  • #16145: Refactor transition router
  • #16216: using snark work rpc in bootstrap to initialize completed snark pool
  • #16656: replace Root with Root_(hash, common) in persistent database
  • #16569: Do not compute hash for logging in RPC
  • #16568: Don't compute staged ledger hash on every RPC call
  • #16201: optimize memory consumption for verifier subprocess
  • #16055: Optimize the non-present zkapp uri hashing
  • #16367: Standalone snarkwork process to submit proofs via graphql
  • #16366: Submit snark work using graphql
  • #16244: GraphQL: add a query to fetch specific pending snark work

Bug fixes

  • #16261: Fix Lagrange basis performance regression
  • #16285: Fix generator for transaction_pool tests
  • #16055: Optimize the non-present zkapp uri hashing
  • #16375: [Rosetta] use mina missing block guardian script instead of download missing blocks
  • #16057: Small fix of zk rows for chunking

Complete Changelog since 3.0.4:

https://github.com/MinaProtocol/mina/compare/3.0.4...3.1.0-alpha1

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


Upgrading & Connecting to Devnet

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.1.0-alpha1-56cdb61
Mina Archive: sudo apt-get install --allow-downgrades -y mina-archive=3.1.0-alpha1-56cdb61
Mina Archive Schema: create_schema.sql
Config File: var/lib/coda/config_56cdb612.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.1.0-alpha1-56cdb61-CODENAME-devnet
Mina Archive: gcr.io/o1labs-192920/mina-archive:3.1.0-alpha1-56cdb61-CODENAME
Mina Rosetta: gcr.io/o1labs-192920/mina-rosetta:3.1.0-alpha1-56cdb61-CODENAME-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:    56cdb61260e6124c5f7937406859f410cc33772a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment