Skip to content

Commit 975565f

Browse files
authored
Merge pull request #1312 from o1-labs/dw/design-website
Website: update design, using Claude
2 parents ab6d967 + ccd0caa commit 975565f

37 files changed

+1199
-679
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
6666
([#1269](https://github.com/o1-labs/openmina/pull/1269/)).
6767
- **CI**: set fail-fast to false to prevent cancellation of other jobs
6868
([#1305](https://github.com/o1-labs/openmina/pull/1305))
69+
- **Website**: (temporary) new design, for a first release and rename OpenMina
70+
to "the Mina Russt node"
71+
([#1312](https://github.com/o1-labs/openmina/pull/1312)).
6972

7073
### Fixed
7174

website/README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
# OpenMina Documentation Website
1+
# Mina Rust Node Documentation Website
22

3-
This directory contains the Docusaurus-based documentation website for OpenMina.
3+
This directory contains the Docusaurus-based documentation website for the Mina
4+
Rust Node.
45

56
## Quick Start
67

@@ -37,7 +38,7 @@ cd website && npm run serve
3738

3839
The documentation is organized around three main user personas:
3940

40-
- **Node Runners** (`docs/node-runners/`) - Installation, configuration, and
41+
- **Node Operators** (`docs/node-operators/`) - Installation, configuration, and
4142
operation guides
4243
- **Developers** (`docs/developers/`) - Architecture, codebase understanding,
4344
and contribution guides
@@ -55,7 +56,7 @@ The documentation is organized around three main user personas:
5556

5657
### New Pages
5758

58-
1. Create markdown files in the appropriate directory (`docs/node-runners/`,
59+
1. Create markdown files in the appropriate directory (`docs/node-operators/`,
5960
`docs/developers/`, or `docs/researchers/`)
6061
2. Add frontmatter with title, description, and sidebar position:
6162
```yaml

website/docs/developers/architecture.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,22 @@
22
sidebar_position: 1
33
title: Architecture Overview
44
description:
5-
Understand OpenMina's Redux-style state machine architecture and design
6-
principles
5+
Understand the Mina Rust Node's Redux-style state machine architecture and
6+
design principles
77
slug: /developers/architecture
88
---
99

10-
# OpenMina Architecture
10+
# Mina Rust Node Architecture
1111

12-
OpenMina follows a Redux-style state machine architecture for predictable,
13-
debuggable behavior. This design ensures that all state changes are traceable
14-
and the system behavior is deterministic.
12+
The Mina Rust Node follows a Redux-style state machine architecture for
13+
predictable, debuggable behavior. This design ensures that all state changes are
14+
traceable and the system behavior is deterministic.
1515

1616
## Core Principles
1717

1818
### State Machine Pattern
1919

20-
OpenMina implements Redux principles adapted for a blockchain node:
20+
The Mina Rust Node implements Redux principles adapted for a blockchain node:
2121

2222
- **State** - Centralized, immutable data structure representing the entire node
2323
state
@@ -29,7 +29,7 @@ OpenMina implements Redux principles adapted for a blockchain node:
2929

3030
### Predictable State Management
3131

32-
Every state change in OpenMina follows the same pattern:
32+
Every state change in the Mina Rust Node follows the same pattern:
3333

3434
```rust
3535
// 1. Action is dispatched

website/docs/developers/getting-started.mdx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ import BuildSpecializedSh from "!!raw-loader!./scripts/setup/build-specialized.s
2020
import FormatAndLintSh from "!!raw-loader!./scripts/setup/format-and-lint.sh";
2121
import NixDevelop from "!!raw-loader!./scripts/setup/nix-develop.sh";
2222

23-
Welcome to OpenMina development! This guide will help you set up your
24-
development environment and build OpenMina from source.
23+
Welcome to Mina Rust Node development! This guide will help you set up your
24+
development environment and build the Mina Rust Node from source.
2525

2626
## Prerequisites
2727

@@ -57,8 +57,8 @@ development environment and build OpenMina from source.
5757

5858
#### 2. Rust Toolchain
5959

60-
OpenMina requires both stable and nightly Rust toolchains, plus additional tools
61-
for development:
60+
The Mina Rust Node requires both stable and nightly Rust toolchains, plus
61+
additional tools for development:
6262

6363
<CodeBlock language="bash">{InstallRustSh}</CodeBlock>
6464

@@ -111,7 +111,7 @@ to install the dependencies automatically and enter the shell:
111111

112112
<CodeBlock language="bash">{NixDevelop}</CodeBlock>
113113

114-
## Clone and Build OpenMina
114+
## Clone and Build the Mina Rust Node
115115

116116
### 1. Clone the Repository and Build
117117

@@ -136,7 +136,7 @@ environment.
136136

137137
### Code Quality and Formatting
138138

139-
OpenMina maintains strict code quality standards:
139+
The Mina Rust Node maintains strict code quality standards:
140140

141141
<CodeBlock language="bash">{FormatAndLintSh}</CodeBlock>
142142

@@ -196,11 +196,11 @@ export PG_DB="openmina_archive"
196196

197197
## Architecture Overview
198198

199-
For detailed information about OpenMina's architecture, Redux-style state
200-
machine pattern, and component organization, please see the
199+
For detailed information about the Mina Rust Node's architecture, Redux-style
200+
state machine pattern, and component organization, please see the
201201
[Architecture Documentation](./architecture.md).
202202

203-
## Running OpenMina
203+
## Running the Mina Rust Node
204204

205205
### Basic Node
206206

@@ -234,7 +234,7 @@ make docs-serve
234234

235235
### Logging
236236

237-
OpenMina uses structured logging with different levels:
237+
The Mina Rust Node uses structured logging with different levels:
238238

239239
```bash
240240
# Set log level
@@ -257,7 +257,7 @@ npm start
257257

258258
### Testing Framework
259259

260-
OpenMina includes a comprehensive testing framework:
260+
The Mina Rust Node includes a comprehensive testing framework:
261261

262262
```bash
263263
# Build testing binary
@@ -290,4 +290,4 @@ make build-testing
290290
- **API Docs**:
291291
[Rust Documentation](https://o1-labs.github.io/openmina/api-docs/)
292292

293-
Welcome to the OpenMina development community! 🎉
293+
Welcome to the Mina Rust Node development community! 🎉

website/docs/developers/libp2p.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ integrity. Without a P2P network, nodes in the Mina blockchain would be isolated
1616
and unable to exchange vital information, leading to fragmentation and
1717
compromising the blockchain's trustless nature.
1818

19-
OpenMina implements a LibP2P networking stack to ensure compatibility with
19+
The Rust node implements a LibP2P networking stack to ensure compatibility with
2020
existing OCaml Mina nodes while providing a foundation for the transition to
2121
WebRTC-based communication between Rust nodes.
2222

@@ -47,7 +47,7 @@ easier to manage and debug.
4747

4848
![LibP2P Stack Layers](https://github.com/openmina/openmina/assets/60480123/25bb08e8-d877-42b6-9c1f-b2ce29b14520)
4949

50-
_Above: A simplified overview of the OpenMina LibP2P networking stack. The
50+
_Above: A simplified overview of the Rust node LibP2P networking stack. The
5151
abstraction is in ascending order, i.e. the layers at the top have more
5252
abstraction than the layers at the bottom._
5353

@@ -87,8 +87,8 @@ Mina nodes use the following RPCs:
8787
### Overview
8888

8989
The P2P layer enables nodes in the Mina network to discover and connect with
90-
each other. OpenMina nodes must be able to connect to peers, both other OpenMina
91-
nodes (written in Rust) as well as native Mina nodes (written in OCaml).
90+
each other. Rust nodes must be able to connect to peers, both other Rust nodes
91+
(written in Rust) as well as native Mina nodes (written in OCaml).
9292

9393
To achieve this compatibility, we implement peer discovery via Kademlia as part
9494
of our LibP2P networking stack. Previously, we used the RPC `get_initial_peers`
@@ -273,13 +273,14 @@ sense that it is backwards-compatible. For example, since multiple transports
273273
are supported, we can change `tcp` to `udp`, and the address will still be
274274
readable and valid.
275275

276-
## Integration with OpenMina
276+
## Integration with the Rust Node
277277

278-
The LibP2P implementation in OpenMina serves as a compatibility layer, enabling
279-
communication between:
278+
The LibP2P implementation in the Mina Rust Node serves as a compatibility layer,
279+
enabling communication between:
280280

281-
- **OCaml Mina nodes****Rust OpenMina nodes** (via LibP2P)
282-
- **Rust OpenMina nodes****Rust OpenMina nodes** (preferably via WebRTC)
281+
- **OCaml Mina nodes****Mina Rust Node instances** (via LibP2P)
282+
- **Mina Rust Node instances****Mina Rust Node instances** (preferably via
283+
WebRTC)
283284

284285
This dual-transport approach allows for gradual migration from the existing
285286
OCaml implementation to the new Rust implementation while maintaining network
@@ -291,4 +292,4 @@ connectivity and compatibility.
291292
design goals
292293
- [WebRTC Implementation](webrtc) - WebRTC transport layer for Rust-to-Rust
293294
communication
294-
- [Architecture Overview](architecture) - Overall OpenMina architecture
295+
- [Architecture Overview](architecture) - Overall Rust node architecture

website/docs/developers/p2p-networking.md

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,23 @@
22
sidebar_position: 4
33
title: P2P Networking Overview
44
description:
5-
Comprehensive guide to OpenMina's peer-to-peer networking implementation
5+
Comprehensive guide to the Mina Rust Node's peer-to-peer networking
6+
implementation
67
slug: /developers/p2p-networking
78
---
89

9-
# P2P Networking in OpenMina
10+
# P2P Networking in the Mina Rust Node
1011

11-
This document provides a comprehensive overview of OpenMina's peer-to-peer
12-
networking implementation, covering the design goals, architecture, and key
13-
features that enable secure, scalable, and decentralized communication.
12+
This document provides a comprehensive overview of the Mina Rust Node's
13+
peer-to-peer networking implementation, covering the design goals, architecture,
14+
and key features that enable secure, scalable, and decentralized communication.
1415

1516
## Design Goals
1617

1718
In blockchain networks, particularly in Mina, **security**,
1819
**decentralization**, **scalability**, and **eventual consistency** (in that
19-
order) are crucial. OpenMina's P2P design achieves these goals while building on
20-
Mina Protocol's existing architecture.
20+
order) are crucial. The Mina Rust Node's P2P design achieves these goals while
21+
building on Mina Protocol's existing architecture.
2122

2223
### Security
2324

@@ -58,8 +59,8 @@ transaction/snark pools) without crude rebroadcasts.
5859

5960
## Transport Layer
6061

61-
OpenMina uses WebRTC as the primary transport protocol for peer-to-peer
62-
communication. WebRTC provides several advantages for security and
62+
The Mina Rust Node uses WebRTC as the primary transport protocol for
63+
peer-to-peer communication. WebRTC provides several advantages for security and
6364
decentralization:
6465

6566
- **NAT Traversal**: Built-in support for connecting peers behind NAT routers
@@ -84,7 +85,7 @@ from:
8485

8586
### Long Polling Approach
8687

87-
OpenMina implements a poll-based approach resembling
88+
The Mina Rust Node implements a poll-based approach resembling
8889
[long polling](https://www.pubnub.com/guides/long-polling/):
8990

9091
**Core Principle**: Instead of peers flooding with messages, recipients must
@@ -109,7 +110,8 @@ reason about peer state and adjust messages accordingly.
109110
### Connection Establishment
110111

111112
WebRTC connections require exchanging **Offer** and **Answer** messages through
112-
a process called **Signaling**. OpenMina supports multiple signaling methods:
113+
a process called **Signaling**. The Mina Rust Node supports multiple signaling
114+
methods:
113115

114116
#### HTTP API Signaling
115117

@@ -129,7 +131,7 @@ a process called **Signaling**. OpenMina supports multiple signaling methods:
129131

130132
### Communication Channels
131133

132-
OpenMina uses different
134+
The Mina Rust Node uses different
133135
[WebRTC DataChannels](https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel)
134136
for each protocol, providing isolation and optimized handling:
135137

@@ -152,7 +154,7 @@ sending a response, maintaining the poll-based architecture.
152154

153155
### Efficient Pool Propagation
154156

155-
OpenMina achieves scalable, eventually consistent, and efficient pool
157+
The Mina Rust Node achieves scalable, eventually consistent, and efficient pool
156158
propagation by leveraging the poll-based approach:
157159

158160
#### Consistency Strategy
@@ -180,12 +182,13 @@ efficiently tracks sent messages:
180182

181183
## OCaml Node Compatibility
182184

183-
For compatibility with existing OCaml nodes, OpenMina includes a
185+
For compatibility with existing OCaml nodes, the Mina Rust Node includes a
184186
[libp2p implementation](libp2p):
185187

186188
- **Inter-Implementation Communication**: OCaml ↔ Rust via LibP2P
187189
- **Intra-Implementation Communication**: Rust ↔ Rust via WebRTC
188-
- **Gradual Migration**: Enables smooth transition as more nodes adopt OpenMina
190+
- **Gradual Migration**: Enables smooth transition as more nodes adopt the Mina
191+
Rust Node
189192

190193
## Future Enhancements
191194

@@ -219,5 +222,5 @@ increases propagation speed across the network.
219222

220223
- [WebRTC Implementation](webrtc) - Detailed WebRTC transport layer
221224
documentation
222-
- [Architecture Overview](architecture) - Overall OpenMina architecture
225+
- [Architecture Overview](architecture) - Overall Mina Rust Node architecture
223226
- [Getting Started](getting-started) - Development environment setup

website/docs/developers/scripts/setup/clone-and-build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ echo "Downloading required circuits..."
66
make download-circuits
77

88
# Build in debug mode (faster compilation, slower runtime)
9-
echo "Building OpenMina in debug mode..."
9+
echo "Building the Mina Rust Node in debug mode..."
1010
make build

website/docs/developers/updating-ocaml-node.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ sidebar_position: 4
55
# Updating the OCaml Node
66

77
When a new Mina Protocol release becomes available, you need to update the OCaml
8-
node references in OpenMina. The OCaml node releases are used to verify that the
9-
current OpenMina version maintains compatibility with the official Mina Protocol
10-
implementation through end-to-end and scenario testing. This guide walks through
11-
the process based on the workflow used in
8+
node references in the Mina Rust Node. The OCaml node releases are used to
9+
verify that the current Mina Rust Node version maintains compatibility with the
10+
official Mina Protocol implementation through end-to-end and scenario testing.
11+
This guide walks through the process based on the workflow used in
1212
[PR #1236](https://github.com/o1-labs/openmina/pull/1236).
1313

1414
## 1. Check for New Releases
@@ -25,7 +25,8 @@ configuration files. You'll need:
2525

2626
## 2. Automated Update with Script
2727

28-
OpenMina provides an automation script to handle the bulk of the update process:
28+
The Mina Rust Node provides an automation script to handle the bulk of the
29+
update process:
2930

3031
```bash
3132
./website/docs/developers/scripts/update-ocaml-node.sh <old_hash> <new_hash> <old_version> <new_version>
@@ -71,8 +72,8 @@ After making updates:
7172
1. **Build and Test**: Run the test suite to ensure compatibility
7273
2. **Check References**: Verify all version references are updated consistently
7374
3. **Configuration Validation**: Ensure new config files are properly referenced
74-
4. **End-to-End Testing**: Run scenario tests to verify OpenMina compatibility
75-
with the updated OCaml node
75+
4. **End-to-End Testing**: Run scenario tests to verify Mina Rust Node
76+
compatibility with the updated OCaml node
7677
5. **CI Pipeline**: Verify that automated testing passes with new versions
7778

7879
## 5. Commit Structure
@@ -88,6 +89,6 @@ Following the pattern from commit
8889
## Related Resources
8990

9091
- [Mina Protocol Releases](https://github.com/MinaProtocol/mina/releases/)
91-
- [OpenMina Architecture Documentation](./architecture.md)
92+
- [Mina Rust Node Architecture Documentation](./architecture.md)
9293
- [Example PR #1236](https://github.com/o1-labs/openmina/pull/1236)
93-
- [Node Runners Guide](../node-runners/getting-started.md)
94+
- [Node Operators Guide](../node-operators/getting-started.md)

0 commit comments

Comments
 (0)