All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Documentation: add interactive OpenAPI documentation (Swagger UI, Stoplight
Elements, Scalar) to the website, with
cargo xtaskfor static spec generation (#2119) - Node: add OpenAPI documentation endpoints (
/api-docs/*) (#2119)
- Frontend: remove Sentry error tracking dependencies and services (#2130)
- CI: Add
merge_grouptrigger to workflows for merge queue support (#2127) - CI: Add path filtering to skip Rust/backend workflows when only frontend files change (#2115)
- Updated
proof-systemsdependencies (kimchi,mina-curves,mina-hasher,mina-poseidon,mina-signer,o1-utils,poly-commitment) from0.2.0to0.3.0. - Adjusted ledger proofs implementation to align with
proof-systems0.3.0 API changes. - Added
.gemini/to.gitignore. - Fix linter for latest beta Rust (#2097)
- Bumped up
rsafrom0.9.70.9.10andnumb-bigint-digfrom0.8.4to0.8.6(#2096) - Frontend: remove old code adding so-called "deployment" information, leaking engineer information (#2092)
- Node: migrate HTTP server from warp to axum (#2119)
- Bump react and react-dom from 19.2.3 to 19.2.4 in /website (#2123, #2124)
- Bump aws-config from 1.5.16 to 1.5.18 (#2125)
- Bump serde from 1.0.219 to 1.0.228, update private API usage for compatibility (#2089)
- Documentation: add Schnorr signatures specification from MinaProtocol/mina repository to Researchers section (#1918)
- Documentation: add RPC API reference documentation with CI validation against o1Labs node, reorganize API docs into dedicated section (#1745)
- Node: add top-level documentation for the crate
node(#1736) - CI: automatically push Docker images for
vX.Y.ZandvX.Ywhen tagvX.Y.Zis created (#1838) - Web Node: fix webnode build, add quality-of-life improvements when running webnode in Docker. (#1778)
- CI: add beta channel lint workflow to catch build issues early (#1875)
- Feature: Add logging if initial peers are invalid (#1703)
- Frontend: Fix security vulnerabilities by upgrading Angular to 19.2.18 to address XSS vulnerability in SVG script attributes and fix qs DoS vulnerability (#2076)
- Frontend: Fixed a bug where user could reach a non-existent page with a non-existent block height on the scan state page (#1966)
- Frontend: Fixed a bug where text was overlapping in the view. (#1957)
- CI: fix version regex in build verification workflows to accept variable-length commit hashes (7+ characters) instead of exactly 7, adapting to Git's dynamic abbreviation based on repository size, fix #1911 (#1912)
- Docker compose files: replace old environment by local in docker-compose.block-producer.yml (#1916
- CI: Remove clippy exceptions for large enum/err variants added as part of the Rust 1.92 upgrade #1968
- Frontend: Upgrade Angular from 19.x to 21.x, migrate templates from
*ngIf/*ngForto@if/@forcontrol flow syntax, update NgRx to 19.x, and remove unused directive imports (#2091) - Bump webpack-bundle-analyzer from 4.9.0 to 5.1.1 in /frontend (#1958)
- Bump webpack from 5.88.2 to 5.104.1 in /frontend (#1960)
- Bump @sentry/angular from 8.35.0 to 10.32.1 (#1965)
- Bump typescript from 5.6.2 to 5.9.3 in /website (#1888)
- Build System: rename crate packages to use
mina-prefix consistently (node→mina-node,p2p→mina-p2p,snark→mina-snark,vrf→mina-vrf,cli→mina-cli) for clearer project identity, fix #1902 (#1925) - Frontend: Renamed
@openmina/sharedto@mina-rust/sharedand all its references (#1953 - Frontend: Renamed
@openmina/sharedto@mina-rust/sharedand all its references (#1953 - Repository Structure: reorganize workspace into
crates/,libs/,vendor/, andtools/directories for clearer separation of concerns (#1910) - Dependencies: vendor alloc-test into
vendor/alloc-testto centralize all code in the monorepo (#1815) - Dependencies: vendor redux-rs into
vendor/reduxto centralize all code in the monorepo (#1814) - Build System: enforce GNU sed on macOS, require
brew install gnu-sedformake fix-trailing-whitespace, add CI test for cross-platform support, fix #1864 (#1898, #1872). (#1872) - Frontend: Move
@openmina/sharedandopenmina-stylesfrom npm packages to vendor directory as local file dependencies, simplifying frontend dependency management and consolidating all frontend code in the monorepo (#1799) - Dependency: use tag instead of references of o1-labs/proof-systems, fix [#1674] (#1673)
- Remove ocaml-interop dependency, fix #1235 (#1646)
- Build* Update Rust to 1.92 #1894
- CI: run builds on macos-latest for each patch submission, fixing #1899 (#1900)
- Docs: add notes in
.cargo/config.tomlabout the magic RUSTFLAGS for WASM #1863 - Docs: Consistent naming of the "web node" across docs #1858
- Docs: Reorganized web node docs with clear audience split #2006
- Web Node: Removed compatible browser gate. Web Node is experimental anyway #2006
- Dependencies: bump up tokio from 1.26.0 to 1.46.1 (#2053)
- Web Node: Standardized WebRTC peer address to Multiaddr and deprecated old "WebRTC-Multiaddrish" format #2052
- Ledger: remove FFI codebase and
port_ocamlmodule, fix #1235 - Build: remove unused Docker files from
tools/testing/dockerand corresponding Makefile targets - Frontend: remove outdated
frontend/functionsdirectory containing unused Firebase Cloud Functions - CI: remove network debugger from CI (#1700)
- CI: remove setup-ocaml from CI (#1879)
- Web Node: Removed web-node-secrets.json format and unified key handling across documentation to use standard encrypted key format (#1917)
- CLI Removed
-web-node-secretsflag frommina misc mina-key-pair(#1917)
0.18.1 - 2025-11-20
- Documentation: Add comprehensive API endpoints reference for the Node Dashboard, documenting all endpoints and specific data fields used by the frontend (#1566)
- Docker Compose: Fix frontend black screen issue by changing environment
from
composetolocaland exposing port 3000 for rust node HTTP API (hotfixv0.18.1) fromcomposetolocaland exposing port 3000 for mina-node HTTP API (#1649)
- Dependencies/proof-systems: bump up proof-systems to 282faf5 (#1662)
- Tests: removed unused tests and fixed tests (#1682)
0.18.0 - 2025-11-04
- Update the CI and code to compare with the latest release 3.3.0-alpha1-6929a7e (#1454)
- Frontend: add production seed nodes for the production environment (#1837
- Website: Update Docusaurus to version 3.9.2 from 3.9.1 for latest features and bug fixes (#1583)
- Website: Migrate deprecated
onBrokenMarkdownLinksconfiguration option to the newmarkdown.hooks.onBrokenMarkdownLinksformat for Docusaurus v4 compatibility (#1583) - Development Tools: Add
setup-taploandsetupMakefile targets to simplify development environment setup. Updaterelease-validatescript to test only packages that are tested in CI, avoiding untested packages with failing tests (#1573) - CI: Add validation workflows for block producer nodes infrastructure, including connectivity and API capability testing similar to plain nodes (#1571)
- Website: Add block producer nodes documentation page with GraphQL query examples for latest canonical block and transaction information. Include note that block production functionality is under development (#1571)
- CLI: add GraphQL introspection and execution commands under
mina internal graphql. Three new commands enable dynamic endpoint discovery (list), detailed schema inspection (inspect <endpoint>), and arbitrary query execution (run [query]) with support for multiple input methods (command line, stdin, file) and variables. All commands use GraphQL introspection API for dynamic discovery without hardcoded endpoints. CI tests validate commands against o1Labs infrastructure (#1565) - CI: add devnet and mainnet Caml nodes to remote GraphQL test suite to ensure compatibility between Rust and OCaml implementations (#1542)
- CI: add workflow to test GraphQL queries with the OCaml node (#1465)
- Website: add o1Labs infrastructure entry, describing the nodes managed by o1Labs, including seed and plain nodes (#1430). The infrastructure is tested accordingly in the CI at every push.
- Website: add comparison list of implemented and missing GraphQL endpoints (#1486)
- Frontend: use a Makefile for scripts in package.json (#1468)
- Frontend: define one Makefile target per build configuration (#1469)
- Frontend: revamping the Docker image, and provide a better support and documentation for the different configuration. (#1473)
- Website: add "Join devnet" page with instructions for community members to join the devnet program and test the Rust node implementation (#1425)
- Website: add documentation guidelines (#1493)
- Website: add search bar with Algolia (#1493)
- Ledger/ZkAppCommand: show how to build a ZkAppCommand from scratch, with dummy values (#1514)
- CI/Documentation: add a script to check the references to the OCaml code (#1525).
- mina-node-account: move tests into
node/account/tests, document the library and run the tests in CI (#1540). - Ledger: add tests to verify some properties transaction application should have on the ledger. Also, document the different types of transactions that can be used to modify the ledger (#1541)
- CLI: introduce a subcommand
walletto be able to send transactions, get the public key and address from the secret key, get balance and generate wallets from the CLI. End-to-end tests are added in the CI and a new targetmake test-wallethas been added. This focuses on basic payments (#1543) - Makefile: add targets to only build and run tests of the package
mina-node-native(#1549) - CI: add a step in tests to run the unit/integration tests of the package
mina-node-native(#1549) - Tests: add account creation test cases for payment and coinbase transactions, verifying correct handling of account creation fees during the first pass of transaction application (#1581)
- tools: remove stack allocation from tools (#1576)
- Development Tools: Update taplo configuration to exclude
node_modulesandtargetdirectories from TOML formatting checks (#1573) - Build System: Move salsa-simple from tools/ to vendor/ and alphabetize workspace members. salsa-simple is a vendored XSalsa20 implementation with serde support, not a command-line tool (#1580)
- CI: Speed up CI by decoupling test runs from full build completion. Created dedicated single-platform build jobs that run only on ubuntu-22.04 to produce artifacts needed for testing, allowing tests to start as soon as those builds complete instead of waiting for all cross-platform matrix builds (#1427)
- CI: Update CI to test on specific macOS versions (13, 14, 15) instead of only macos-latest, providing better coverage across macOS versions that developers are using (#1421)
- Website: update GraphQL API page by extracting all endpoints and run it in CI, at every push, with the o1Labs managed plain nodes (#1421).
- Frontend: rename all occurences of openmina.scss to mina-rust.scss (#1467)
- Website: bump up to docusaurus 3.9.1 (#1500)
- Dependencies: move all dependencies to the workspace Cargo.toml (#1513)
- scan_state: refactorize
transaction_logic.rsin smaller modules (#1515) - CI/tests: run the step
build-wasmfor each push and PR todevelop(#1497) - ledger/scan_state/transaction_logic: update OCaml references in
mod.rs(#1525) - ledger/scan_state/transaction_logic: move submodule
for_testsinto a new filezkapp_command/for_tests.rs(#1527). - Ledger/scan-state/transaction-logic: split
ledger::scan_state::transaction_logic::zkapp_commandinto submodules in a new directoryzkapp_command(#1528) - Codebase: remove unused
ledger/src/poseidon/fp.rsfile (#1538) - Ledger: convert unused binary to proper criterion benchmarks. Benchmarks are now built as part of the existing build workflows across all platforms, reusing build caches for efficiency (#1539)
- Ledger: document, clean and add tests for the crate
mina-tree(#1531. - GraphQL: fixed parsing when neither signature nor proof is given. See issue #1464. Fixed in #1546 (#1546)
- transactions: fixed a typo in
p2p_request_transactions_if_neededwhere snark count was used instead of transaction count (#1563). - tools: remove heartbeat-processors (#1577)
- tools: remove producer-dashboard (#1578)
- CI: build benches for each PR with the workflow
tests, and fix the step in the workflowbuildby adding the missing SQLx/SQLite setup (#1548) - frontend: remove leaderboard from the frontend (#1579
- Development Tools: Fix
fix-trailing-whitespaceMakefile target to work correctly on macOS by removing conflicting-eflag in sed command (#1573)
0.17.0 - 2025-04-08
- Update the CI and code to compare with the latest release 3.2.0-alpha1-7f94ae0 (#1236, fix #1158)
- Update the CI and code to compare with the latest release 3.2.0-beta1-978866c (#1250)
- Update the CI and code to compare with the latest release 3.2.0-beta2-939b08d (#1285)
- Documentation: Add instructions to update the OCaml node dependencies. (#1237)
- Development Tools: Automation script for updating OCaml node references with comprehensive documentation and CI testing to ensure reproducibility (#1252)
- Documentation: Complete Docusaurus-based documentation website with
comprehensive guides for node runners, developers, and researchers
(#1234). It migrates all the
documentation from
docstowebsite/docs. It includes SEO metadata and social media integration. - Documentation: Developer getting-started guide with automated setup scripts for system dependencies, Rust toolchain, Node.js, Docker, and WASM tools. This is run nightly and on-demand via PR labels to avoid blocking development workflow. (#1234).
- Development Tools: Enhanced formatting infrastructure with MDX file support and trailing whitespace management (#1234)
- Documentation: add instructions for developers using MacOS based systems, and test the installation commands in CI (#1247).
- Development tools: Add shellcheck to the CI (#1255)
- Makefile: Add
run-block-producertarget with devnet/mainnet support andgenerate-block-producer-keytarget for key generation (#1221). - Documentation: add section regarding peers setup and seeds (#1295)
- Node: add
openmina misc mina-encrypted-keyto generate a new encrypted key with password, as the OCaml node provides (#1284). - CI: push images on tags and develop to o1labs/mina-rust-frontend and o1labs/mina-rust, and support ARM and AMD64, fixing !1336, !1192 (#1337, #1335, #1344, #1340, #2981ecf, #1e9f33f)
- Documentation: add release communication checklist (#1390)
- CI: Generalized build jobs to support multiple platforms (Ubuntu 22.04, Ubuntu 24.04, Ubuntu 24.04 ARM, macOS latest), updated test execution to ubuntu-latest, and fixed GLIBC compatibility for scenario tests by using Ubuntu 22.04 for test binary artifacts to ensure compatibility with Debian Bullseye container environment (#1249)
- Build System: Enhanced Makefile with documentation-related targets and comprehensive formatting commands (#1234)
- Use consistent
usestatements for fields. Replacemina_hasher::Fpwithmina_curves::pasta::Fp. (#1269). - Proof systems: Updated proof systems to use same version as OCaml node
- CI: set fail-fast to false to prevent cancellation of other jobs (#1305)
- Website: (temporary) new design, for a first release and rename OpenMina to "the Mina Russt node" (#1312).
- Codebase: rename
openminatomina, the project being officially called for now "the Mina Rust node" (#1314). - Dependencies: update redux-rs to o1-labs fork, after we moved from openmina to o1-labs organization (#1356).
- Documentation: Resolved broken links and bare URL warnings in Rust documentation (#1234)
- Build System: Fixed SQLx compilation errors in lint workflow (#1234)
- Formatting: Standardized markdown and MDX files to 80-character line wrapping (#1234)
- Build warnings: Fix the warnings generated by the missing lifetime (#1244)
- bump proc-macro2 from 1.0.93 to 1.0.95 (#1230)
- bump itertools from 0.10.5 to 0.12.0 #1228 (#1228)
- bump aes from 0.8.3 to 0.8.4 (#1272)
- Remove OpenMina forks of arkworks and proof-systems (#1383)
- Bump mio from 1.0.3 to 1.0.4 (#1384)
- Added a
flake.nixfor building the project on nixos/using nix (#1241), together with documentation: instructions for developers, and test the installation commands in CI.
0.16.0 - 2025-04-04
- GraphQL: More queries (snark pool, pending snark work, genesis block, ledger status).
- GraphQL: Added more fields to
daemonStatusquery˙
- GraphQL: Some issues with accounts.
- Block Producer: Corner case that caused the won slot search to sometimes be interrupted at epoch bounds.
0.15.0 - 2025-03-13
- Restored support for snark workers.
- Archive: Support for storing blocks to AWS, GCP and filesystem.
- Tooling: WebRTC traffic sniffer.
- GraphQL:
sendPaymentmutation.sendDelegationmutation.pooledUserCommandsquery.pooledZkappCommandsquery.- Various other partially implemented queries expanded to ensure compatibility with the OCaml node.
- 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.
- 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.
0.14.0 - 2025-01-31
- Rust Toolchain: Updated the minimum required Rust toolchain to version 1.84.
- Proofs: Optimizations (MSM, field inversion) that speed up proof production.
- 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.
- Archive mode: Added support for archive mode, which allows the node to connect to an archiver process and store node data in a database.
0.13.0 - 2025-01-06
- 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::zipnever panics now, on failure it returns an error.
- 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_BACKTRACEis always set tofullnow.
0.12.0 - 2024-12-04
- 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.
- 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.
- Webnode: Transaction propagation
- P2P: Support for specifying the external ip to be advertised.
0.11.0 - 2024-10-31
- Webnode: Peer discovery and p2p based signaling (so that webnodes can find each other).
- Webnode: Connection authentication.
- Support for specifying external IPs.
- 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.
0.10.3 - 2024-10-16
- 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.
0.10.0 - 2024-10-10
- GraphQL endpoints for o1js.
- Support for batched verification of proofs.
- Enabled full proof verification of completed works included in blocks.
- Deduplication of zkApp logic.
- Various internal improvements.
- 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
0.9.0 - 2024-10-02
- Many bugfixes, performance, security and stability improvements.
0.8.14 - 2024-09-18
- Correctly show transaction fee values in the frontend.
- Make sure that incorrectly encoded finite field values are handled properly.
0.8.13 - 2024-09-18
- Many stability and security improvements.
- Make the JSON encodings of many kinds of values closer to what the Mina node produces to increase compatibility.
- Combined all frontend docker images into a single one configurable at runtime.
- Many internal state machine refactorings.
0.8.3 - 2024-09-09
- Handling verification key updates with proof authorization kind.
- Block producer incorrectly discarding blocks if staking ledger between best tip and won slot were different.
0.8.2 - 2024-09-06
- Include circuit blobs in docker images, required for block production.
- Add missing bounds to ZkAppUri and TokenSymbol fields.
- Various stability improvements to make sure the node will not crash in certain circumstances.
- Root snarked ledger re-syncs now reuse the previously in-progress root snarked ledger instead of starting again from the next-epoch ledger.
- Added
--libp2p-keypair=<path to json>flag to specify encrypted secret key (with passphrase fromMINA_LIBP2P_PASSenvironment variable).
0.8.1 - 2024-09-02
- Mempool: handling of missing verification key in the transaction pool.
0.8.0 - 2024-08-30
- Webnode: Streaming ledger sync RPC.
- P2P: Meshsub for gossip.
- P2P: Additional tests.
- Mempool: Various transaction pool issues.
- Poseidon hashing and witness generation when absorbing empty slices.
- Rust Toolchain: Updated the minimum required Rust toolchain to version 1.80.
0.7.0 - 2024-08-02
- Transaction pool (alpha).
- Support for sending transactions, inspecting the transaction pool and the scan state to the block producer demo.
- P2P layer fixes and improvements.
- Various internal fixes and improvements.
- Rust Toolchain: Updated the minimum required Rust toolchain to version 1.79.
0.6.0 - 2024-07-01
- Devnet support.
- Callbacks support in the state machine, support in reducer functions for queueing new actions.
- Cache for the genesis and initial epoch ledgers data for faster loading.
- Berkeleynet support.
- State machine records are now encoded in postcard format.
- General improvements in performance and stability.
- Various P2P layer issues.
- Correct handling of heartbeats in long-running P2P RPCs.
- Genesis snarked mask being overwritten, which sometimes resulted in some ledgers not being found when applying a block.
- State machine record-and-replay functionality issues.
- WASM target restored for the webnode.
- WebRTC P2P protocol restored for the webnode.
0.5.1 - 2024-06-01
- ARM docker builds.
0.5.0 - 2024-05-31
- When applying blocks, use the
supercharge_coinbasevalue from the block which was being ignored before. - Incorrect stream being used for RPC responses.
- Allow multiple nodes running on the same host to connect to each other.
- Invalid
delta_block_chain_proofin block producer. - Various p2p layer fixes.
- Support for PubSub in the p2p layer.
- Block producer dashboard, and simulator-based demo.
- Support for parsing
daemon.jsonfiles with custom genesis ledgers. - Chain ID computation (was hardcoded before).
- Multiple RPC and p2p tests.
- More limits to p2p messages, connections, and parsing.
- Support for v1 messages in p2p layer.
0.4.0 - 2024-04-30
- Interactions with the ledger service are now async. This fixes situations in which expensive ledger operations could starve the state machine loop.
- Ledger synchronization issue that happens when synchronizing the node during the second epoch.
- Correctly handle the situation in which the best tip changes during staged ledger reconstruction, causing the reconstruct to produce a stale result.
- Various edge cases in p2p layer (error propagation, disconnection, self-connection).
- Support for
identifyprotocol. - P2P layer testing framework.
- Frontend: Block production page.
- Removed rust-libp2p based code, in favor of our own libp2p implementation.
0.3.1 - 2024-04-05
- Internal improvements to the actions logging mechanism.
- Corrected sync stats for accounts fetching during ledger sync.
- Pruning of kademlia streams and requests.
- Docker images tagged for each new release.
- Bootstrap process testing on CI.
0.3.0 - 2024-03-29
- Rust Toolchain: Updated the minimum required Rust toolchain to version 1.77.
- Networking:
- Libp2p Replacement: Transitioned from libp2p to a custom internal networking implementation. The transition will be finalized in the next release, completely removing the libp2p dependency.
- Gossipsub: Pending support. Current version of the node performs initial bootstrapping but cannot stay synchronized with network broadcasts.
- Kademlia: Partial implementation includes bootstrapping and FIND_NODE server/client functionalities.
- Identify Protocol: Absent in this release, rendering the node unusable as a seed node.
- Libp2p Replacement: Transitioned from libp2p to a custom internal networking implementation. The transition will be finalized in the next release, completely removing the libp2p dependency.
- Frontend:
- Mobile Compatibility: Enhanced support for mobile platforms, improving user experience across various devices.
- Staged Ledger: Resolved an issue where the ledger reconstruct step would block the state machine.
- Node Communication: Fixed a bug where nodes did not respond to ledger queries from bootstrapping peers, enhancing network cooperation.
- Frontend:
- Test Stability: Addressed and fixed previously failing tests.
- Backend:
- HTTP RPC: Corrected an error triggered when querying the
/stateendpoint.
- HTTP RPC: Corrected an error triggered when querying the
- Bootstrap Efficiency:
- Ledger Synchronization: Optimized the snarked ledger synchronization process during bootstrap, significantly reducing the time required.
- Genesis Ledger Loading: Enhanced the loading mechanism for the genesis ledger, achieving much faster startup times.
- Frontend Enhancements:
- Network Node DHT view.
- Network Bootstrap Stats for real-time monitoring of network bootstrap statistics.
- Main Dashboard view.
- Backend Improvements:
- JsonPath Support: Enhanced the
/stateHTTP RPC endpoint with JsonPath support, offering more flexible state querying capabilities.
- JsonPath Support: Enhanced the
0.2.0 - 2024-02-29
- Default Rust toolchain switched to stable channel (as of 1.75).
- Internal refactoring to how leaf actions in the state machine are organized.
- Node can now connect to the current berkeleynet after updates to:
- Wire type definitions.
- Verification, proving and circuits.
- Ledger and transaction application logic.
- Ledger tests on CI.
0.1.0 - 2024-02-02
- Optimized scan state to reduce memory usage by avoiding duplication of data.
- Updated proof verification to be compatible with the current berkeleynet (rampup4).
- Introduced support for producing proofs (blocks, payments, zkApp transactions, and merge proofs) compatible with the current berkeleynet (rampup4), with pending support for generating circuits.
- Added the ability to produce blocks (excluding user transactions) for testing purposes.
- Implemented pruning of inferior blocks post synchronization with the best tip.
- Enhanced the testing framework and debugging support as follows:
- Improved compatibility with the OCaml node within the testing framework.
- Introduced declarations for essential invariants to be verified by the test framework, simulator, and replayer.
- Integrated SNARK worker into the simulator for SNARK production.
- Added functionality to store dumps of blocks and staged ledgers for inspection upon block application failure due to mismatches.
0.0.1 - 2023-12-22
First public release.
- Alpha version of the node which can connect and syncup to the berkeleynet network, and keep applying new blocks to maintain consensus state and ledger up to date.
- Web-based frontend for the node.