Skip to content

Releases: o1-labs/mina-rust

Mina Rust v0.17.0

17 Sep 14:44
736642f

Choose a tag to compare

Mina Rust Node v0.17.0 - First Official Release (Devnet)

We are excited to announce the first official release of the Mina Rust node
(v0.17.0), a Rust implementation of the Mina Protocol. This marks an important
step following the handover of the project from Mina Foundation to o1Labs, as
we continue to advance and maintain this alternative node implementation for
the Mina community.

Important: This release is currently intended for Devnet only. We recommend
running the node on Devnet as we continue testing and optimizing for mainnet
deployment.

Key Highlights

This release brings compatibility with the latest OCaml node version
3.2.0-beta2, ensuring seamless integration with the existing Mina network on
Devnet.

What's New in v0.17.0

  • Full compatibility with OCaml node releases from 3.2.0-alpha1 through
    3.2.0-beta2
  • Docker images now available for both ARM64 and AMD64 architectures with
    automatic CI deployment
  • Complete Docusaurus-based documentation website with comprehensive guides for
    node operators, developers, and researchers
  • New mina misc mina-encrypted-key command to generate encrypted keys with
    passwords, matching OCaml node functionality
  • Enhanced Makefile targets including run-block-producer for easy
    devnet setup and generate-block-producer-key for key generation
  • Multi-platform CI support (Ubuntu 22.04, Ubuntu 24.04, Ubuntu 24.04 ARM,
    macOS)
  • Updated proof systems to match the OCaml node version
  • Rebranding from OpenMina to the official "Mina Rust node"

For more details, refer to the CHANGELOG on the repository:
https://github.com/o1-labs/mina-rust/blob/v0.17.0/CHANGELOG.md#v0170

You can follow the team work on the dashboards
https://github.com/orgs/o1-labs/projects/24

Getting Started

The website is available on https://o1-labs.github.io/mina-rust.

We recommend starting with Docker for the easiest deployment experience on Devnet:

Docker images are available at:

Running Different Node Types

Developer Resources

Looking Ahead

This is our first official release under o1Labs stewardship, and we are
committed to delivering regular updates with performance improvements, new
features, and enhanced stability.
We plan to maintain a consistent release cycle to ensure the node stays current
with network requirements and community needs. Future releases will expand
support beyond Devnet as the implementation matures.

Community and Support

We welcome feedback from node operators and block producers as you deploy and
test the Mina Rust node on Devnet. Your input is invaluable as we continue to
improve and optimize the implementation. Please report any issues or
suggestions through our GitHub repository.

Thank you for your continued support of the Mina ecosystem. We look forward to
building the future of Mina together with this new, performant Rust
implementation.

What's Changed

Read more

Release v0.16.0

04 Apr 16:35
8a1a457

Choose a tag to compare

Added

  • GraphQL: More queries (snark pool, pending snark work, genesis block, ledger status).

Changed

  • GraphQL: Added more fields to daemonStatus query.

Fixed

  • GraphQL: Some issues with accounts.
  • Block Producer: Corner case that caused the won slot search to sometimes be interrupted at epoch bounds.

Release v0.15.0

13 Mar 16:37
056deae

Choose a tag to compare

Added

  • Restored support for snark workers.
  • Archive: Support for storing blocks to AWS, GCP and filesystem.
  • Tooling: WebRTC traffic sniffer.
  • GraphQL:
    • sendPayment mutation.
    • sendDelegation mutation.
    • pooledUserCommands query.
    • pooledZkappCommands query.
    • Various other partially implemented queries expanded to ensure compatibility with the OCaml node.

Changed

  • P2P: Wait until full validation is complete before broadcasting transactions and completed works.
  • Transition frontier: Perform cheap consensus operation first, and then the more expensive proof verification.
  • Transaction pool: Unified libp2p and webrtc logic for the initial phase of handling transactions received from gossip network. As a result, processing of transactions received during bootstrap is delayed until the initial sync is complete.
  • Transaction pool: Suspend processing during block production.

Fixed

  • Transition frontier: Rare race condition in the case of forks during block production that could result in dropping staged ledgers too early.
  • Webnode: Replaced tokio channels which had a race condition that could crash the thread on WASM.
  • Transaction pool: Verify zkApp proofs in a dedicated thread to avoid blocking the state machine.

Release v0.14.0

31 Jan 16:52
7e4bb21

Choose a tag to compare

Changed

  • Rust Toolchain: Updated the minimum required Rust toolchain to version 1.84.
  • Proofs: Optimizations (MSM, field inversion) that speed up proof production.

Fixed

  • P2P: Correct handling of yamux windows limits
  • P2P: Wait until full validation is complete before broadcasting blocks.
  • WebRTC/P2P: Handle propagation of messages received from the WebRTC network to libp2p's gossip network (blocks, snarks and transactions).
  • Transaction pool: Fixed checks for deep account updates when pre-validating transactions.

Added

  • Archive mode: Added support for archive mode, which allows the node to connect to an archiver process and store node data in a database.

Release v0.13.0

06 Jan 23:27
44ba150

Choose a tag to compare

Fixed

  • Mempool: Inside the transaction and snark pool reducers, only broadcast locally injected transactions and producer snarks. Libp2p layer takes care of diffs received from gossip already.
  • P2P: Don't forget the initial peers list.
  • WebRTC connection leaks.
  • zkApp transaction proofs are now verified on a separate thread.
  • Sometimes produced blocks were broadcasted too early.
  • OneOrTwo::zip never panics now, on failure it returns an error.

Changed

  • On native, use jemalloc as the default allocator.
  • Allocations reduced considerably by using stack-allocated bignums in the VRF evaluator.
  • The same thread is now reused to verify all block proofs.
  • RUST_BACKTRACE is always set to full now.

Release v0.12.0

04 Dec 23:18
36f7627

Choose a tag to compare

Fixed

  • Properly handle time in cases in which the system goes to sleep.
  • Various corner cases in block proof production.
  • Improved ledgers sync during bootstrap (be smarter about which peers to query).
  • P2P: More efficient memory usage when managing the p2p state.
  • P2P: Lower outgoing traffic by being more conservative about what is broadcasted to each peer.
  • P2P: Better handling of disconnections.
  • VRF: Correctly handle cases in which the delegator table is empty.
  • Webnode: Peer connection handling improvements.

Changed

  • Rust Toolchain: Updated the minimum required Rust toolchain to version 1.83.
  • Webnode: Reduced startup time by loading prover indexes in parallel to the bootstrap process.
  • Webnode: Faster field operations (faster hashing and proving).
  • Improved hashing performance by caching and reusing common prefixes.
  • Added more pre-validation checks for blocks received from the network.

Added

  • Webnode: Transaction propagation
  • P2P: Support for specifying the external ip to be advertised.

Release v0.11.0

31 Oct 18:56
d1dd9f9

Choose a tag to compare

Added

  • Webnode: Peer discovery and p2p based signaling (so that webnodes can find each other).
  • Webnode: Connection authentication.
  • Support for specifying external IPs.

Fixed

  • Ledger: Fixed a regression introduced in v0.10.0 that caused the ZKApp precondition checks ordering to not match the OCaml implementation's exactly, which resulted in block application failures.
  • Ledger: Corrected handling of custom tokens in the block application logic.
  • P2P: Reduced excessive outgoing traffic.
  • P2P: Yamux fixes and improvements (backpressure).
  • Webnode: Staging ledger sync timeout.

Release v0.10.3

16 Oct 18:02
07fa6a1

Choose a tag to compare

Added

  • Support for name resolution in peer addresses.
  • Block producer docker compose setup.
  • WASM file containing the webnode is now included in the frontend image.
  • Logging output to the filesystem in addition to stdout.
  • Webnode: peer discovery and p2p based signaling.

Release v0.10.0

10 Oct 14:48
80f96bc

Choose a tag to compare

Added

  • GraphQL endpoints for o1js.
  • Support for batched verification of proofs.
  • Enabled full proof verification of completed works included in blocks.

Changed

  • Deduplication of zkApp logic.
  • Various internal improvements.

Fixed

  • Regression in the verification zkApp transactions with feature flags (introduced when upgrading proof-systems).
  • Potential overflow in yamux.
  • Added a missing check for next epoch seed finality

Release v0.9.0

02 Oct 21:25
c1441a1

Choose a tag to compare

Stability improvements release

Fixes

  • Many bugfixes, performance, security and stability improvements.