Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
46 changes: 46 additions & 0 deletions website/docs/developers/hardforks/berkeley.md
Original file line number Diff line number Diff line change
@@ -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
39 changes: 39 additions & 0 deletions website/docs/developers/hardforks/index.md
Original file line number Diff line number Diff line change
@@ -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.
73 changes: 73 additions & 0 deletions website/docs/developers/hardforks/mesa.md
Original file line number Diff line number Diff line change
@@ -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
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not the only thing it introduces. I suggest you link to the blog post that give better context.
https://www.o1labs.org/blog/mesa-upgrade

of these features in the Rust node.

## Overview

The Mesa upgrade consists of four main protocol improvements:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are 5 total
you are missing the HF Automation Mip

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure keeping this page up to date while the work is still WIP is a good use of our time.


### 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
9 changes: 9 additions & 0 deletions website/sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand Down
Loading