Skip to content

Restructure node-operators documentation#1186

Open
glyh wants to merge 4 commits intomainfrom
lyh/refactor-node-operators-section-1
Open

Restructure node-operators documentation#1186
glyh wants to merge 4 commits intomainfrom
lyh/refactor-node-operators-section-1

Conversation

@glyh
Copy link
Copy Markdown
Member

@glyh glyh commented Apr 14, 2026

This PR restructure lots of places in doc so it's more human readable instead of a mess that's unorganized.

New pages:
- seed-peers/generating-a-libp2p-keypair.mdx: dedicated page for libp2p
  key generation, moved out of the wallet keypair page
- validator-node/installing-on-ubuntu-and-debian.mdx: standalone install guide
- validator-node/index.mdx, reference/index.mdx: category index pages

Removed sections:
- Seed Peer Requirements from validator-node/requirements.mdx (belongs in
  seed-peers section)
- Node Auto-restart from validator-node/requirements.mdx (covered in
  connecting-to-the-network)
- Installation caution from validator-node/requirements.mdx (covered in
  installing-on-ubuntu-and-debian)
- Mina Daemon Requirements wrapper heading (only had IP/Port config, lifted up)
- libp2p keypair section from validator-node/generating-a-keypair.mdx
  (moved to seed-peers)
- libp2p keypair generation from validator-node/connecting-to-the-network.mdx
- --block-producer-key examples from standalone node section
- Troubleshooting link from connecting-to-the-network standalone section
- Key permission commands from Docker sections in connecting-to-the-network
- Check your connectivity section (redundant with Monitor section)
- High-Level Overview and Install mina node sections from
  connecting-to-the-network
- "What are node operators", "Where can I try Mainnet/Devnet" from FAQ
- Troubleshooting reference section from FAQ
- block-producer-key reference from querying-data

Renamed/restructured:
- generating-a-keypair.mdx: renamed to "Wallet Key Pair", restructured as
  Generation (mina advanced / Ledger / Mina Signer) + Validation sections.
  Added "Using Docker" section with interactive shell instead of repeating
  docker run wrappers
- querying-data.mdx: renamed to "Interacting with the Node"
- FAQ: renamed from "Node Operators FAQ", promoted questions from h4 to h3
  for TOC visibility, organized under General and SNARKs sections
- connecting-to-the-network: "auto-restart flows" renamed to "Running mina
  node as a service" with Start/Stop subsections. Swapped tab nesting so
  Systemd/Docker is outer (Systemd identical for both networks), Mainnet/
  Devnet inner only for Docker. Unified Docker command styles. Stop commands
  added (mina client stop-daemon, systemctl stop, docker stop). Container
  name standardized to mina-node. Monitor section now has Native/Docker tabs
  with bootstrap timeline table
- Troubleshooting and FAQ lifted out of Reference in sidebar to top level
  under Node Operators
- seed-peers/getting-started.mdx: replaced inline libp2p keygen with link
  to new dedicated page
- node-operators/index.mdx: added node operator description, separated
  Support section for Troubleshooting/FAQ

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 14, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
docs2 Ready Ready Preview, Comment Apr 14, 2026 7:28am

Request Review

glyh and others added 2 commits April 14, 2026 15:12
- Block producer getting started: add prerequisite note directing users to
  complete validator setup first, remove duplicated requirements, streamline
  to focus on daemon startup and verification
- Requirements: consolidate hardware requirements, rename "Mina Daemon Node"
  to "Block Producer", add software/clock sync/VM instance sections
- Hot/cold block production: rewrite for clarity, add delegate-stake command
- Delegation program: move uptime guidance here from block producer page
- Installation: broaden to cover Docker, macOS, Windows, and build from source
- Logging: restructure with tables for log files, options, and crash reports
- Querying data: retitle to mention GraphQL, tighten examples
- Staking and snarking: refocus as "Delegating MINA" with concise instructions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add prerequisite note directing users to complete validator setup first
- Remove duplicated requirements (already in validator requirements page)
- Document both embedded worker and coordinator modes
- Add flag tables for both --run-snark-worker and --run-snark-coordinator
- Add security caution: coordinator-worker protocol is not secure, keep on intranet
- Clean up index page and Docker Compose example

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

:::caution

Please be careful when using `--config` argument at archive node bootstrap.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I don't really agree here. IMHO we should always start with --config parameter as it will ensure genesis accounts are inserted in db. Yes, it will take a lot of time to insert them but it's better to wait than to have gaps in accounts balance (since archive node stores only incremental changes). We are not recommending them on mainnet/devnet because noone is start archive from scratch (from precomputed blocks) but rather choose some point in time, grabs dump and then start filling blocks.

I would change this warning to be alert that it can take a lot of time and resources to insert accoutns and there is no need to provide it if you are connecting to devnet or mainnet if you are not starting with an empty archive

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Oh, i just saw that you simply move this section. Please ignore


- [Instructions for the SNARK-work-based uptime system](/node-operators/delegation-program/uptime-tracking-system)

Please follow the latest updates and post questions in the [#delegation-program](https://discord.com/channels/484437221055922177/808895957978447882) channel on Mina Protocol Discord.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why deleting this? Looks like it is quite helpful information regarding delegation program channel?

generate_wallet_key:
image: 'minaprotocol/mina-daemon:3.3.0-8c0c2e6-bullseye-mainnet'
# image: 'gcr.io/o1labs-192920/mina-daemon:3.3.0-alpha1-6929a7e-bullseye-devnet' # Use this image for Devnet
# image: 'gcr.io/o1labs-192920/mina-daemon:3.3.0-alpha1-6929a7e-bullseye-devnet'
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Do you think we should add For Devnet on each case? there is only on in 54 line , which is in the middlte

# SNARK Workers Getting Started
# SNARK Workers Getting Started

The Mina protocol is unique because nodes are not required to maintain the full history of the blockchain like other cryptocurrency protocols. By recursively using cryptographic proofs, the Mina protocol effectively compresses the blockchain to constant size. This compression reduces terabytes of data to a few kilobytes.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I liked this part explaining why we are unique :D and there is also link to glossary which can be helpful

```
For a Docker Compose example that sets up a coordinator and worker together, see [Docker Compose Example](/node-operators/snark-workers/docker-compose).

As a SNARK-worker, you get to share some of the block rewards for each block that include your compressed transactions. The block producer is responsible for gathering compressed transactions before including them into a block and is incentivized by the protocol to reward SNARK-workers.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is this section not important?


## Monitor the mina client status

<Tabs groupId="install-runtime">
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nice idea with tabs

@glyh
Copy link
Copy Markdown
Member Author

glyh commented Apr 14, 2026

I've used claude to move sections around, it might've deleted some information on the theory/reasoning parts. I'm leaning toward keeping it as an operational document, and any theories should go into "Mina Protocol" section. But I'll double check what you've pointed out.


```sh
sudo rm /etc/apt/sources.list.d/mina*.list
echo "deb [trusted=yes] http://packages.o1test.net $(lsb_release -cs) devnet" | sudo tee /etc/apt/sources.list.d/mina-devnet.list
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

there is no devnet channel. only alpha for devnet (but this is not a first time people are making this mistake. maybe we should introduce devnet channel, since not everyone knows that alpha = devnet

Next block will be produced in: in 7.077h for slot: ...
```

### Windows
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IMHO it would be good that information is preserved somewhere. Maybe not in getting start and witout that sud ufw stuff but general infromation that we are not supporting windows etc.

Block production requires a node connected to the internet, which means the block producer's private key is exposed on an online machine. To mitigate this risk, Mina supports a hot/cold wallet pattern:

- A wallet is "hot" if the private key is available on a machine that is connected to the internet. To mitigate risk in the case of hackers breaking into their systems, careful block producers avoid having hot wallets with substantial stake on them.
- A wallet is "cold" if the private key is not, and never has been, available on the internet. Cold storage is preferred for wallets associated with meaningful stake as it is harder to hack into cold wallet systems if they never have been on the internet. This could be as easy as generating a key pair on a laptop with the internet turned off or using a hardware wallet, like a [Ledger](https://shop.ledger.com/) device.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Here additional text is only regarding security mesaures either link to some well respected page explaining how to keep cold wallet safe or revert it


# Installation

Supported environments include Linux (Debian 10, 11, 12 and Ubuntu 20.04 LTS), any host with Docker, and macOS (build from source). The binary download is around 1 GB.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We support also 22.04 and 24.04


:::caution

If you already installed the standalone `mina-generate-keypair` package, remove it first:
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think it's already obsolete


### Windows

Windows is not natively supported. Use the [Docker](#docker) instructions instead.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Ok, now i see that you move this section here. please disregard comment for windows support. However i don't know if this is a good idea to have this geeneral information in validator node, since it regrads all other nodes type

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants