From c7e68d728a69ff6cc208919444658ee574cfd36d Mon Sep 17 00:00:00 2001 From: Danny Willems Date: Fri, 10 Oct 2025 13:27:57 +0200 Subject: [PATCH 1/3] Website: add page for Mesa upgrade --- website/docs/developers/mesa-upgrade.md | 61 +++++++++++++++++++++++++ website/sidebars.ts | 1 + 2 files changed, 62 insertions(+) create mode 100644 website/docs/developers/mesa-upgrade.md diff --git a/website/docs/developers/mesa-upgrade.md b/website/docs/developers/mesa-upgrade.md new file mode 100644 index 000000000..48cfa79c8 --- /dev/null +++ b/website/docs/developers/mesa-upgrade.md @@ -0,0 +1,61 @@ +--- +sidebar_position: 3 +--- + +# Mesa upgrade + +The Mesa upgrade is a hardfork of the Mina Protocol that introduces several +enhancements to zkApp capabilities. This page tracks the implementation of these +features in the Rust node. + +## Overview + +The Mesa upgrade consists of three main protocol improvements: + +### Account update limit increases + +Increases the number of account updates allowed per transaction from 10 +signature-based and 5 proof-based updates to roughly triple those limits. This +enables more complex zkApp logic to be executed in fewer transactions. + +- **Blog post**: + [Road to Mesa: Performance Dialed Up for zkApps](https://www.o1labs.org/blog/account-update-limit) +- **Implementation status**: To be tracked + +### Events and actions capacity expansion (MIP-8) + +Increases the field element limit from 100 to 1024 for both events and actions +per transaction, and removes the per-event/per-action mini-cap of 16 field +elements. This allows zkApps to carry more information and instructions in a +single transaction. + +- **Blog post**: + [Road to Mesa: Preparing for the Next Chapter with More Use Cases](https://www.o1labs.org/blog/mip-8-events-actions) +- **Implementation tracking**: + [#1261](https://github.com/o1-labs/mina-rust/issues/1261) + +### zkApp state expansion + +Expands zkApp account state from 8 to 32 fields, allowing developers to store +more data directly on-chain and reducing the need for external storage +workarounds. + +- **Blog post**: + [Road to Mesa: Expanding zkApp State with Fewer Constraints](https://www.o1labs.org/blog/increasing-zkapp-state) +- **Implementation status**: To be tracked + +## Implementation tracking + +All Mesa upgrade work is tracked in +[#1259](https://github.com/o1-labs/mina-rust/issues/1259). Each feature has its +own sub-issue that includes: + +- Links to relevant MIPs (Mina Improvement Proposals) +- OCaml node patches implementing the feature +- Rust node implementation PRs +- Performance benchmarks and tests + +## Additional resources + +- [Mesa Hard Fork Project Board](https://www.notion.so/o1labs/Hard-Fork-MIPs-Project-1c9e79b1f910805fb44cdc2b9db2ee8e?p=1c9e79b1f910804da24ed4f96638ab2b&pm=s) +- [Mina Protocol Website](https://minaprotocol.com/) diff --git a/website/sidebars.ts b/website/sidebars.ts index 962b0621d..dd49dbd0f 100644 --- a/website/sidebars.ts +++ b/website/sidebars.ts @@ -73,6 +73,7 @@ const sidebars: SidebarsConfig = { items: [ 'developers/getting-started', 'developers/updating-ocaml-node', + 'developers/mesa-upgrade', ], }, { From d7dbbf122534136bc283dc618011f3facdcf2c51 Mon Sep 17 00:00:00 2001 From: Danny Willems Date: Fri, 10 Oct 2025 13:46:45 +0200 Subject: [PATCH 2/3] Website: introduce page for HF Berkeley and update Mesa one --- website/docs/developers/hardforks/berkeley.md | 46 +++++++++++++++++ website/docs/developers/hardforks/index.md | 39 +++++++++++++++ .../{mesa-upgrade.md => hardforks/mesa.md} | 50 ++++++++++++------- website/sidebars.ts | 10 +++- 4 files changed, 125 insertions(+), 20 deletions(-) create mode 100644 website/docs/developers/hardforks/berkeley.md create mode 100644 website/docs/developers/hardforks/index.md rename website/docs/developers/{mesa-upgrade.md => hardforks/mesa.md} (58%) diff --git a/website/docs/developers/hardforks/berkeley.md b/website/docs/developers/hardforks/berkeley.md new file mode 100644 index 000000000..6cf38dd75 --- /dev/null +++ b/website/docs/developers/hardforks/berkeley.md @@ -0,0 +1,46 @@ +--- +sidebar_position: 2 +--- + +# Berkeley upgrade + +The Berkeley upgrade was the first hardfork of the Mina Protocol, deployed in +June 2024. It introduced zkApps (zero-knowledge applications) and programmable +smart contracts to Mina. + +## Overview + +The Berkeley upgrade implemented three Mina Improvement Proposals (MIPs): + +### MIP-1: Remove supercharged rewards + +Removes the supercharged coinbase rewards mechanism from the protocol. + +- **MIP**: + [MIP-1](https://github.com/MinaProtocol/MIPs/blob/main/MIPS/mip-0001-remove-supercharged-rewards.md) + +### MIP-3: Kimchi + +Introduces Kimchi, an updated version of the PLONK proof system with improved +performance and capabilities. + +- **MIP**: + [MIP-3](https://github.com/MinaProtocol/MIPs/blob/main/MIPS/mip-0003-kimchi.md) + +### MIP-4: zkApps + +Introduces zkApps, enabling programmable smart contracts on Mina with +zero-knowledge proofs. + +- **MIP**: + [MIP-4](https://github.com/MinaProtocol/MIPs/blob/main/MIPS/mip-0004-zkapps.md) + +## TODO + +This page needs to be updated with detailed implementation tracking for the +Berkeley features in the Rust node, including: + +- Links to OCaml node implementation patches for each feature +- Links to Rust node implementation PRs +- Implementation status and testing coverage +- Any Berkeley-specific configuration or compatibility notes diff --git a/website/docs/developers/hardforks/index.md b/website/docs/developers/hardforks/index.md new file mode 100644 index 000000000..9de9f37d0 --- /dev/null +++ b/website/docs/developers/hardforks/index.md @@ -0,0 +1,39 @@ +--- +sidebar_position: 1 +--- + +# Introduction + +Mina Protocol evolves through hardforks that introduce new features and protocol +improvements. This section tracks the implementation of hardfork features in the +Rust node. + +## Overview + +A hardfork is a protocol upgrade that is not backward-compatible with previous +versions. All nodes on the network must upgrade to continue participating in +consensus. + +The Mina Rust node maintains compatibility with the OCaml node by implementing +the same protocol changes. Each hardfork page in this section documents: + +- The features introduced in the hardfork +- Links to official specifications and blog posts +- Implementation tracking via GitHub issues and pull requests +- OCaml node patches that serve as reference implementations + +## Hardfork history + +### Berkeley (June 2024) + +The first hardfork of the Mina Protocol, deployed in June 2024. Berkeley +introduced zkApps and programmable smart contracts to Mina. + +See the [Berkeley hardfork page](./berkeley.md) for details. + +### Mesa (Upcoming) + +The second hardfork of the Mina Protocol. Mesa enhances zkApp capabilities with +increased limits for account updates, events/actions, and on-chain state. + +See the [Mesa hardfork page](./mesa.md) for implementation tracking. diff --git a/website/docs/developers/mesa-upgrade.md b/website/docs/developers/hardforks/mesa.md similarity index 58% rename from website/docs/developers/mesa-upgrade.md rename to website/docs/developers/hardforks/mesa.md index 48cfa79c8..33bc7bf0f 100644 --- a/website/docs/developers/mesa-upgrade.md +++ b/website/docs/developers/hardforks/mesa.md @@ -4,44 +4,61 @@ sidebar_position: 3 # Mesa upgrade -The Mesa upgrade is a hardfork of the Mina Protocol that introduces several -enhancements to zkApp capabilities. This page tracks the implementation of these -features in the Rust node. +The Mesa upgrade is the second hardfork of the Mina Protocol that introduces +several enhancements to zkApp capabilities. This page tracks the implementation +of these features in the Rust node. ## Overview -The Mesa upgrade consists of three main protocol improvements: +The Mesa upgrade consists of four main protocol improvements: -### Account update limit increases +### MIP-6: Slot reduction to 90 seconds -Increases the number of account updates allowed per transaction from 10 -signature-based and 5 proof-based updates to roughly triple those limits. This -enables more complex zkApp logic to be executed in fewer transactions. +Reduces the slot time from 180 seconds to 90 seconds, enabling faster block +production and improved network responsiveness. +- **MIP**: + [MIP-6](https://github.com/MinaProtocol/MIPs/blob/main/MIPS/mip-0006-slot-reduction-90s.md) - **Blog post**: [Road to Mesa: Performance Dialed Up for zkApps](https://www.o1labs.org/blog/account-update-limit) - **Implementation status**: To be tracked -### Events and actions capacity expansion (MIP-8) +### MIP-7: Increase state size limit + +Expands zkApp account state from 8 to 32 fields, allowing developers to store +more data directly on-chain and reducing the need for external storage +workarounds. + +- **MIP**: + [MIP-7](https://github.com/MinaProtocol/MIPs/blob/main/MIPS/mip-0007-increase-state-size-limit.md) +- **Blog post**: + [Road to Mesa: Expanding zkApp State with Fewer Constraints](https://www.o1labs.org/blog/increasing-zkapp-state) +- **Implementation status**: To be tracked + +### MIP-8: Increase events and actions limit Increases the field element limit from 100 to 1024 for both events and actions per transaction, and removes the per-event/per-action mini-cap of 16 field elements. This allows zkApps to carry more information and instructions in a single transaction. +- **MIP**: + [MIP-8](https://github.com/MinaProtocol/MIPs/blob/main/MIPS/mip-0008-increase-events-actions-limit.md) - **Blog post**: [Road to Mesa: Preparing for the Next Chapter with More Use Cases](https://www.o1labs.org/blog/mip-8-events-actions) - **Implementation tracking**: [#1261](https://github.com/o1-labs/mina-rust/issues/1261) -### zkApp state expansion +### MIP-9: Increase zkApp account update limit -Expands zkApp account state from 8 to 32 fields, allowing developers to store -more data directly on-chain and reducing the need for external storage -workarounds. +Increases the number of account updates allowed per transaction from 10 +signature-based and 5 proof-based updates to roughly triple those limits. This +enables more complex zkApp logic to be executed in fewer transactions. +- **MIP**: + [MIP-9](https://github.com/MinaProtocol/MIPs/blob/main/MIPS/mip-0009-increase-zkapp-account-update-limit.md) - **Blog post**: - [Road to Mesa: Expanding zkApp State with Fewer Constraints](https://www.o1labs.org/blog/increasing-zkapp-state) + [Road to Mesa: Performance Dialed Up for zkApps](https://www.o1labs.org/blog/account-update-limit) - **Implementation status**: To be tracked ## Implementation tracking @@ -54,8 +71,3 @@ own sub-issue that includes: - OCaml node patches implementing the feature - Rust node implementation PRs - Performance benchmarks and tests - -## Additional resources - -- [Mesa Hard Fork Project Board](https://www.notion.so/o1labs/Hard-Fork-MIPs-Project-1c9e79b1f910805fb44cdc2b9db2ee8e?p=1c9e79b1f910804da24ed4f96638ab2b&pm=s) -- [Mina Protocol Website](https://minaprotocol.com/) diff --git a/website/sidebars.ts b/website/sidebars.ts index dd49dbd0f..ced3d73eb 100644 --- a/website/sidebars.ts +++ b/website/sidebars.ts @@ -73,7 +73,15 @@ const sidebars: SidebarsConfig = { items: [ 'developers/getting-started', 'developers/updating-ocaml-node', - 'developers/mesa-upgrade', + ], + }, + { + type: 'category', + label: 'Hardforks', + items: [ + 'developers/hardforks/index', + 'developers/hardforks/berkeley', + 'developers/hardforks/mesa', ], }, { From dfe8e74cfaf07385d5cf950b1eb4726809061c32 Mon Sep 17 00:00:00 2001 From: Danny Willems Date: Fri, 10 Oct 2025 13:48:58 +0200 Subject: [PATCH 3/3] CHANGELOG: add description for patch 1529 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 118808c5a..995332ff7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#1493](https://github.com/o1-labs/mina-rust/pull/1509)) - **Ledger/ZkAppCommand**: show how to build a ZkAppCommand from scratch, with dummy values ([#1514](https://github.com/o1-labs/mina-rust/pull/1514)) +- **Website**: add pages regarding Mina hardforks + ([#1529](https://github.com/o1-labs/mina-rust/pull/1529)) ### Changed