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 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/hardforks/mesa.md b/website/docs/developers/hardforks/mesa.md new file mode 100644 index 000000000..33bc7bf0f --- /dev/null +++ b/website/docs/developers/hardforks/mesa.md @@ -0,0 +1,73 @@ +--- +sidebar_position: 3 +--- + +# Mesa upgrade + +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 four main protocol improvements: + +### MIP-6: Slot reduction to 90 seconds + +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 + +### 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) + +### MIP-9: Increase zkApp account update limit + +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: Performance Dialed Up for zkApps](https://www.o1labs.org/blog/account-update-limit) +- **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 diff --git a/website/sidebars.ts b/website/sidebars.ts index 962b0621d..ced3d73eb 100644 --- a/website/sidebars.ts +++ b/website/sidebars.ts @@ -75,6 +75,15 @@ const sidebars: SidebarsConfig = { 'developers/updating-ocaml-node', ], }, + { + type: 'category', + label: 'Hardforks', + items: [ + 'developers/hardforks/index', + 'developers/hardforks/berkeley', + 'developers/hardforks/mesa', + ], + }, { type: 'category', label: 'Architecture',