Web Node Revitalization & Workspace Reorganization
This release marks a major milestone for the Web Node, restoring its functionality and modernizing its networking stack. Alongside these improvements, we have performed an extensive structural cleanup of the codebase to enhance developer experience and performance.
🌐 Web Node Improvements
The Web Node has been the primary focus of this update, with significant work dedicated to its stability and connectivity.
- Restored Functionality: The Web Node has been fully re-stabilized and is once again operational for all users.
- Removal of Browser Restrictions: We have lifted previous browser-level constraints to provide a more open environment, though performance may still vary across different browser engines.
- WebRTC Multiaddrs Support: We have introduced support for standard WebRTC multiaddrs for peer discovery. This is a foundational change as we transition to this standard for network connectivity moving forward.
- Refined Build Process: Documentation and build workflows for the Web Node have been overhauled for a smoother onboarding experience.
🏗️ Core Infrastructure & Refactoring
To support long-term maintainability, the project has undergone a significant structural reorganization:
- Workspace Restructuring: The codebase is now organized into dedicated directories:
crates/,libs/,vendor/, andtools/. - Unified Crate Naming: All crates have been renamed with a consistent
mina-prefix for better clarity and dependency management. - Rust 1.92 Migration: The project now requires and utilizes the features of Rust 1.92.
- Legacy Cleanup: We have removed OCaml interop and unused FFI components, resulting in a cleaner, more streamlined Rust codebase.
Note: As we transition to WebRTC for peer discovery, please refer to the updated "Web Node" documentation for configuration details.
What's Changed
- CI: fix build-benches + add it in the workflow
testsby @dannywillems in #1548 - Frontend: remove leaderboard and firebase by @dannywillems in #1579
- tools/Cargo: use workspace as often as possible by @dannywillems in #1617
- Frontend: add o1Labs BP by @dannywillems in #1618
- CI/lint: increase timeout to 15 by @dannywillems in #1630
- CI/docs: remove path dependency for the job test-doc-commands by @dannywillems in #1632
- CI/docker: accept version tags in build-info validation by @directcuteo in #1624
- CI/E2E: commenting for now single_node/bootstrap_from_replayer by @dannywillems in #1633
- Replayer node - add documentation by @dannywillems in #1620
- Merge main back to develop (v0.18.0) by @directcuteo in #1634
- Run unit tests in CI as a separate job by @richardpringle in #1562
- Remove node install scripts by @richardpringle in #1612
- Create documentation about each endpoint the dashboard is using by @directcuteo in #1639
- Update release process documentation by @directcuteo in #1648
- Fix frontend black screen issue in docker-compose setup by @directcuteo in #1649
- Update Cargo.lock properly by @richardpringle in #1657
- Updated replayer address and first block slot by @0xMimir in #1631
- Bump DeterminateSystems/nix-installer-action from 20 to 21 by @dependabot[bot] in #1655
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #1656
- Deps: bump up proof-systems to 282faf5 by @dannywillems in #1662
- Deps: install taplo using nightly by @dannywillems in #1663
- Add new version and rearrange steps for the release documentation by @richardpringle in #1670
- Add the remaining commit by @richardpringle in #1671
- Merge main back into develop by @richardpringle in #1669
- Changes on main back to develop by @richardpringle in #1668
- Deps: use tag for proof-systems instead of rev by @dannywillems in #1673
- CI: VRF unit tests run as part of unit-tests by @dannywillems in #1684
- Website: update release branch name for hotfix by @dannywillems in #1685
- Makefile: fix fix-trailing-whitespace on MacOS by @dannywillems in #1691
- Frontend: Remove OpenMina branding from logo by @directcuteo in #1666
- Remove OpenMina logo files from frontend by @directcuteo in #1704
- Fixed tests, removed ignores and removed old/failing tests by @0xMimir in #1682
- CI: remove usage of debugger by @dannywillems in #1700
- Remove OCaml related code from mina-tree by @dannywillems in #1646
- Move testing into the tools directory by @richardpringle in #1693
- Node dashboard: remove old nodes and use o1Labs infrastructure by @directcuteo in #1705
- Node: add succinct top-level documentation by @dannywillems in #1736
- Node: add documentation of stats sub directory by @dannywillems in #1744
- Bump curve25519-dalek from 4.1.2 to 4.1.3 by @dependabot[bot] in #1776
- Bump dialoguer from 0.10.4 to 0.12.0 by @dependabot[bot] in #1775
- Bump pcap from 2.3.0 to 2.4.0 by @dependabot[bot] in #1773
- Website: update release process with temporary release branches by @dannywillems in #1692
- Website/frontend: remove outdated content and text copied from files by @dannywillems in #1734
- Make a PR description template. by @richardpringle in #1659
- Add cross-references between API endpoints and sidecar service docs by @directcuteo in #1796
- Remove unused .firebaserc configuration file from frontend by @Copilot in #1821
- Remove outdated frontend/functions directory by @Copilot in #1820
- Updated block slot by @0xMimir in #1836
- CI: Tweak docker workflow to push additional tags for versioned releases by @iostat in #1838
- Add seed nodes to production configuration and cleanup unused files by @directcuteo in #1837
- Remove FFI codebase and port_ocaml module by @Copilot in #1832
- Website: add RPC API documentation with CI validation by @dannywillems in #1745
- Remove unused Docker files from tools/testing/docker by @Copilot in #1843
- Resurrect the webnode by @iostat in #1778
- Vendor: move redux-rs into mina-rust monorepo by @dannywillems in #1814
- Fix frontend-build CI failure by removing fuzzing and staging build tests by @Copilot in #1874
- CI: add beta channel lint workflow by @iostat in #1875
- Add Dependabot NPM configuration for frontend and website packages by @Copilot in #1882
- Bump cfg-if from 1.0.0 to 1.0.4 by @dependabot[bot] in #1883
- Bump peter-evans/create-pull-request from 7 to 8 by @dependabot[bot] in #1892
- Bump shellexpand from 3.1.0 to 3.1.1 by @dependabot[bot] in #1884
- Rust 1.92 by @iostat in #1894
- CI: remove OCaml setup by @dannywillems in #1879
- Makefile: enforce GNU sed on macOS by @dannywillems in #1872
- Removed Fuzzing and Staging from frontend configuration options by @directcuteo in #1896
- CI/build-deps: add missing gnu-sed for MacOS builds by @dannywillems in #1898
- CI: always runs build on latest MacOS by @dannywillems in #1900
- CI: fix version regex to accept variable-length commit hashes by @Copilot in #1912
- Vendor: move alloc-test into mina-rust monorepo by @dannywillems in #1815
- Docs: add Schnorr signatures specification by @dannywillems in #1918
- Docker: replace old compose-producer by local env by @dannywillems in #1916
- Web Node: remove
web-node-secrets.jsonby @iostat in #1917 - Reorganize repository structure: crates/, libs/, vendor/, tools/ by @dannywillems in #1910
- Remove old or introduced by errors files by @dannywillems in #1924
- Move openmina-shared and openmina-styles into vendor directory by @directcuteo in #1850
- Ensure transaction hash is parsed as a string by @directcuteo in #1957
- Comment out instructions in PR template so they don't show up if you forget to clear them by @iostat in #1969
- Rename crate packages to use mina- prefix consistently by @Copilot in #1925
- Fix more 1.92 Clippies by @iostat in #1968
- CI: remove macos-13 from CI workflows by @dannywillems in #1998
- misc: Document WASM
RUSTFLAGSin.cargo/config.tomlby @iostat in #2000 - Fix pagination on scan state page by @directcuteo in #1966
- Docs: fix mismatched code reference by @iostat in #2005
- Website: "Web Node" nomenclature consistency by @iostat in #2004
- CI: Escape generated env values in frontend/docker/generate-docker-env.sh by @iostat in #2008
- Reorganize and verify Web Node Docs by @iostat in #2006
- Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #1962
- Bump actions/download-artifact from 6 to 7 by @dependabot[bot] in #1961
- Bump proc-macro2 from 1.0.95 to 1.0.103 by @dependabot[bot] in #1964
- Bump tracing from 0.1.40 to 0.1.43 by @dependabot[bot] in #1963
- 1801 change the prefix openmina to something like mina rust or mina by @directcuteo in #1953
- CI: switch macOS 14 and 15 workflows to weekly schedule by @dannywillems in #2027
- Added exit/log if initial peers are invalid by @0xMimir in #1703
- Bump @mdx-js/react from 3.1.0 to 3.1.1 in /website by @dependabot[bot] in #1886
- Bump react from 19.1.0 to 19.2.3 in /website by @dependabot[bot] in #1887
- Create symlink for WASM blobs in Dockerfile by @iostat in #2050
- build(deps): bump tokio from 1.37.0 to 1.46.1 by @dannywillems in #2053
- docs: add Mina Protocol RFCs to researchers section by @dannywillems in #1999
- Website: add block production from 159 by @dannywillems in #2064
- Bump @sentry/angular from 8.55.0 to 10.32.0 in /frontend by @dependabot[bot] in #1965
- Clean
ledger/src/verifier.rsby @dannywillems in #2065 - Cargo: share fields by @dannywillems in #2066
- Bump webpack-bundle-analyzer from 4.10.2 to 5.1.0 in /frontend by @dependabot[bot] in #1958
- Bump typescript from 5.6.3 to 5.9.3 in /website by @dependabot[bot] in #1888
- Bump version to 0.19.0 by @richardpringle in #2090
Full Changelog: v0.18.1...v0.19.0