Releases: o1-labs/mina-rust
Releases · o1-labs/mina-rust
Release v0.16.0
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
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
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
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 tofull
now.
Release v0.12.0
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
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
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
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
Stability improvements release
Fixes
- Many bugfixes, performance, security and stability improvements.
Release v0.8.14
Fixed
- Correctly show transaction fee values in the frontend.
- Make sure that incorrectly encoded finite field values are handled properly.