66## Overview
77
88This repository contains the Validator Kit for Mezo chain. The Validator Kit is
9- a collection of tools and documentation to help you run a validator node on Mezo chain.
9+ a collection of tools and documentation to help you run a Mezo chain node.
10+
11+ Although the Validator Kit is primarily designed for validator nodes, it can be
12+ used to run [ non-validator nodes] ( #non-validator-nodes ) as well.
1013
1114### Main components
1215
@@ -27,13 +30,10 @@ As a validator you can choose between the above options to run your validator no
2730
2831### Auxiliary components
2932
30- Moreover, there are several auxiliary components of the Validator Kit that
31- can help you with various operational tasks:
33+ Moreover, there are auxiliary components of the Validator Kit that can help you with various
34+ operational tasks:
3235
33- 1 . [ ` tools ` ] ( ./tools ) : provides a collection of Hardhat tasks designed to simplify
34- interactions with the blockchain’s Proof-of-Authority (PoA) based network.
35- For example, you can submit your application to become one of the PoA validators.
36- 2 . [ ` docker-monitoring ` ] ( ./docker-monitoring ) : contains files to run a monitoring
36+ 1 . [ ` docker-monitoring ` ] ( ./docker-monitoring ) : contains files to run a monitoring
3737 stack for your validator node using Docker. This is an optional way to monitor
3838 your validator node. The monitoring stack is dedicated to the ` docker ` setup.
3939 You can use it for the ` native ` variant after some adjustments (not covered in this repo).
@@ -42,15 +42,30 @@ can help you with various operational tasks:
4242
4343Regardless of the chosen way to run a validator node, you may want to use
4444pre-built artifacts provided by the Mezo team. These include Docker images and
45- binary files for the ` mezod ` node software.
45+ binary files for the ` mezod ` node software. Alternatively, you can build the
46+ necessary artifacts yourself.
47+
48+ ### Stable releases (Mainnet)
49+
50+ Stable releases are ready to be rolled out on Mainnet nodes. You can find relevant
51+ artifacts in the following locations (substitute ` VERSION ` with the desired
52+ stable version, e.g. ` v1.0.0 ` ):
53+
54+ - Docker image (DockerHub): ` mezo/mezod:VERSION `
55+ - Binary (amd64): ` https://github.com/mezo-org/mezod/releases/download/VERSION/linux-amd64.tar.gz `
56+
57+ ### Candidate releases (Testnet)
58+
59+ > [ !WARNING]
60+ > Candidate releases are ** NOT READY** for Mainnet use.
61+
62+ Candidate releases are intended to be rolled out on Testnet nodes. You can find
63+ relevant artifacts in the following locations (substitute ` VERSION ` with the
64+ desired candidate version, e.g. ` v1.0.0-rc0 ` ):
4665
47- You can find the mentioned artifacts in the following locations (substitute
48- ` VERSION ` with the desired version, e.g. ` v0.5.0-rc0 ` ):
4966- Docker image: ` us-central1-docker.pkg.dev/mezo-test-420708/mezo-staging-docker-public/mezod:VERSION `
5067- Binary (amd64): ` https://artifactregistry.googleapis.com/download/v1/projects/mezo-test-420708/locations/us-central1/repositories/mezo-staging-binary-public/files/mezod:VERSION:linux-amd64.tar.gz:download?alt=media `
5168
52- Alternatively, you can build the necessary artifacts yourself.
53-
5469## Node synchronization
5570
5671There are two ways to synchronize your node with the Mezo blockchain.
@@ -67,15 +82,20 @@ a long time depending on your network connection and the number of blocks in
6782the network. Moreover, you need to start with the initial version
6883of ` mezod ` and upgrade along the way to handle on-chain upgrades properly.
6984
70- Version ordering for Mezo Matsnet testnet:
85+ #### Version ordering for Mezo Matsnet testnet
86+
7187- ` v0.2.0-rc3 ` : initial version from genesis to block 1093500
7288- ` v0.3.0-rc3 ` : from block 1093500 to block 1745000
7389- ` v0.4.0-rc1 ` : from block 1745000 to block 2213000
7490- ` v0.5.0-rc1 ` : from block 2213000 to block 2563000
7591- ` v0.6.0-rc2 ` : from block 2563000 to block 3078794
7692- ` v0.7.0-rc0 ` : from block 3078794 to block 3569000
7793- ` v1.0.0-rc0 ` : from block 3569000 to block 3712500
78- - ` v1.0.0-rc* ` : from block 3712500 to the current chain tip (pick the latest ` -rc* ` )
94+ - ` v1.0.0-rc1 ` : from block 3712500 to the current chain tip
95+
96+ #### Version ordering for Mezo Mainnet
97+
98+ - ` v1.*.* ` : from genesis to the current chain tip (pick the latest minor/patch version)
7999
80100### State sync from snapshot
81101
@@ -90,32 +110,70 @@ apply the snapshot to get the latest state of the chain. The downside here
90110is the fact that your node won't have the chain history prior to the snapshot.
91111Moreover, you need to trust the source of the snapshot.
92112
93- Mezo team provides snapshots for Mezo Matsnet testnet. Please refer to
94- [ this runbook] ( ./manual/README.md#State-sync-from-snapshot )
95- for details. Alternatively, you can ask trusted community members for a snapshot.
113+ Mezo team provides snapshots only for Mezo Matsnet testnet. Mezo team ** DOES NOT**
114+ provide snapshots for Mezo Mainnet. In any case, you can ask trusted community members
115+ for a snapshot.
116+
117+ Please refer to [ this runbook] ( ./manual/README.md#State-sync-from-snapshot )
118+ to learn how to sync your node from a snapshot in practice.
96119
97120## PoA application submission
98121
99122The final step to becoming a PoA validator is submitting your application to the Mezo
100- team. Before you proceed, ensure you have sufficient funds in your validator's node
101- address. You have several ways to submit your application:
102-
103- 1 . Using a CLI command exposed by ` mezod ` (recommended):
104- ``` bash
105- mezod --home=< mezod_home_path> poa submit-application < key_name>
106- ```
107- where ` key_name ` denotes the private key from your node's keyring that
108- corresponds to the aforementioned validator's node address.
109-
110- 2 . Alternatively, you can run the ` submit-application.sh ` script from the
111- [ tools/hardhat] ( tools/hardhat/README.md#how-to-submit-an-application-to-validator-pool ) toolbox.
112-
113- Both options are valid, and you can choose either. Once you submit your application,
114- the Mezo team will verify your node status and approve your application if everything
115- is in order. Please provide your public IP, your node address, and any custom port
116- settings. If you wish to close the CometBFT RPC port (note that the CometBFT
117- P2P port must remain open), please whitelist the following IP
118- address: ` 34.57.120.151 ` so that we can verify your status.
123+ team. Before you proceed, ensure you have sufficient funds on your validator's node
124+ address. You can submit your application using a CLI command exposed by ` mezod ` :
125+
126+ ``` bash
127+ mezod --home=< mezod_home_path> poa submit-application < key_name>
128+ ```
129+ where ` key_name ` denotes the private key from your node's keyring that corresponds to
130+ the aforementioned validator's node address.
131+
132+ Once you submit your application, the Mezo team will verify your node status and approve
133+ your application if everything is in order. Please provide your public IP, your node address,
134+ and any custom port settings. If you wish to close the CometBFT RPC port (note that the
135+ CometBFT P2P port must remain open), please whitelist the following IP address: ` 34.57.120.151 `
136+ so that we can verify your status.
137+
138+ ## Non-validator nodes
139+
140+ ### Network seed nodes
141+
142+ If you want to run a seed node to help network peer discovery, follow the configuration
143+ process as for a validator node but:
144+ - Do not submit an application to PoA.
145+ - Set the ` p2p.seed_mode ` parameter in your node's ` config.toml ` file to ` true ` .
146+
147+ Ensure your CometBFT P2P port is open and accessible from the outside.
148+ This is ` 26656 ` by default, but can be changed using the ` p2p.laddr ` or
149+ ` p2p.external_address ` parameters in the ` config.toml ` file.
150+
151+ ### RPC node
152+
153+ To run an RPC node (serving both EVM JSON-RPC and CometBFT RPC), follow the configuration
154+ process as for a validator node but:
155+ - Do not submit an application to PoA.
156+ - If you want to run an archiving node (i.e. with full history of the chain),
157+ set the ` pruning ` parameter in your node's ` app.toml ` file to ` nothing ` .
158+
159+ Ensure the following ports are open and accessible from the outside:
160+ - EVM JSON-RPC HTTP port: ` 8545 ` by default. Can be changed using the
161+ ` json-rpc.address ` parameter in the ` app.toml ` file.
162+ - EVM JSON-RPC WebSocket port: ` 8546 ` by default. Can be changed using the
163+ ` json-rpc.ws-address ` parameter in the ` app.toml ` file.
164+ - CometBFT RPC port: ` 26657 ` by default. Can be changed using the ` rpc.laddr `
165+ parameter in the ` config.toml ` file.
166+
167+ ## Hardware requirements
168+
169+ Here are the minimum recommended hardware requirements for running different
170+ types of Mezo chain nodes:
171+
172+ | Node Type | vCPU | RAM | Disk |
173+ | -----------| ------| -------| ---------|
174+ | Validator | 4 | 16 GB | 256 GB |
175+ | RPC | 8 | 32 GB | 512 GB |
176+ | Seed | 2 | 8 GB | 128 GB |
119177
120178## Acknowledgements
121179
0 commit comments