Skip to content

Releases: o1-labs/mina-rust

Release v0.16.0

04 Apr 16:35
8a1a457
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
Choose a tag to compare

Stability improvements release

Fixes

  • Many bugfixes, performance, security and stability improvements.

Release v0.8.14

18 Sep 19:11
ffb6efc
Compare
Choose a tag to compare

Fixed

  • Correctly show transaction fee values in the frontend.
  • Make sure that incorrectly encoded finite field values are handled properly.