Tutorial Monad
Panduan cepat untuk memulai validator Monad di Testnet dan Mainnet
Monad Validator - Quick Start Guide
Panduan cepat untuk memulai validator Monad di Testnet dan Mainnet
🚀 Quick Installation
Testnet Setup (5 Langkah)
curl -fsSL https://apt.monad.xyz/monad.gpg | sudo gpg --dearmor -o /usr/share/keyrings/monad-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/monad-archive-keyring.gpg] https://apt.monad.xyz testnet main" | sudo tee /etc/apt/sources.list.d/monad.list
sudo apt update && sudo apt install -y monad
wget https://raw.githubusercontent.com/monad-labs/monad-configs/main/testnet/full-node/node.toml -O /root/node.toml
sudo mkdir -p /mnt/triedb /mnt/monadbft
sudo chown -R $USER:$USER /mnt/triedb /mnt/monadbft
sudo systemctl enable monad-bft monad-execution monad-rpc
sudo systemctl start monad-bft monad-execution monad-rpc
sudo systemctl status monad-bft monad-execution monad-rpc --no-pager
Mainnet Setup (5 Langkah)
curl -fsSL https://apt.monad.xyz/monad.gpg | sudo gpg --dearmor -o /usr/share/keyrings/monad-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/monad-archive-keyring.gpg] https://apt.monad.xyz stable main" | sudo tee /etc/apt/sources.list.d/monad.list
sudo apt update && sudo apt install -y monad
wget https://raw.githubusercontent.com/monad-labs/monad-configs/main/mainnet/full-node/node.toml -O /root/node.toml
sudo mkdir -p /mnt/triedb /mnt/monadbft
sudo chown -R $USER:$USER /mnt/triedb /mnt/monadbft
sudo systemctl enable monad-bft monad-execution monad-rpc
sudo systemctl start monad-bft monad-execution monad-rpc
sudo systemctl status monad-bft monad-execution monad-rpc --no-pager
📋 Checklist Hardware
Sebelum mulai, pastikan server Anda memenuhi:
- Bare Metal Server (BUKAN cloud/VM)
- CPU: 16 cores, 4.5 GHz+ (AMD Ryzen 9950x/7950x atau Intel equivalent)
- RAM: 32 GB minimum
- Storage: 2TB NVMe (TrieDB) + 500GB NVMe (MonadBFT)
- SSD: Samsung 980/990 Pro atau equivalent
- Bandwidth: 300 Mbit/s untuk validator, 100 Mbit/s untuk full node
- OS: Ubuntu 20.04+ atau Debian-based Linux
🔄 Upgrade Full Node → Validator
Step 1: Install Staking CLI
git clone https://github.com/monad-labs/staking-sdk-cli.git
cd staking-sdk-cli
npm install && npm run build
Step 2: Register Validator
export PRIVATE_KEY="your_private_key_here"
npm run onboard
Step 3: Update Config ke Validator Mode
Testnet:
wget https://raw.githubusercontent.com/monad-labs/monad-configs/main/testnet/validator/node.toml -O /root/node.toml
Mainnet:
wget https://raw.githubusercontent.com/monad-labs/monad-configs/main/mainnet/validator/node.toml -O /root/node.toml
Step 4: Edit Beneficiary Address
nano /root/node.toml
Ubah baris ini:
beneficiary = "0x<INSERT_YOUR_ADDRESS_HERE>"
Dan pastikan port RPC:
[rpc]
listen_address = "127.0.0.1:13080"
Step 5: Restart Services
sudo systemctl restart monad-bft monad-execution monad-rpc
📊 Monitoring Commands
Check Sync Status
curl http://localhost:13080/ \
-X POST \
-H "Content-Type: application/json" \
--data '{"method":"eth_blockNumber","params":[],"id":1,"jsonrpc":"2.0"}'
Check Services
sudo systemctl status monad-bft monad-execution monad-rpc
View Logs
sudo journalctl -u monad-bft -f
sudo journalctl -u monad-execution -f
sudo journalctl -u monad-rpc -f
sudo journalctl -u monad-bft -n 100 --no-pager
Check Disk Space
df -h /mnt/triedb
df -h /mnt/monadbft
Check Version
monad-rpc --version
🎯 Validator Requirements
Untuk menjadi active validator, Anda harus memenuhi:
| Requirement | Value | Status |
|---|---|---|
| Minimum Self-Stake | 100,000 MON | Untuk registrasi |
| Total Stake | 10,000,000 MON | Untuk menjadi aktif |
| Validator Rank | Top 200 | Berdasarkan stake weight |
Validator akan aktif di epoch berikutnya setelah semua kondisi terpenuhi.
🔧 Common Commands
Restart Services
sudo systemctl restart monad-bft monad-execution monad-rpc
Stop Services
sudo systemctl stop monad-bft monad-execution monad-rpc
Reload Config (tanpa restart)
monad-debug-node \
--control-panel-ipc-path /home/monad/monad-bft/controlpanel.sock \
reload-config
Upgrade Node
Mainnet:
sudo apt update
sudo apt install --reinstall monad=<version> -y --allow-downgrades --allow-change-held-packages
sudo systemctl restart monad-bft monad-execution monad-rpc
Testnet:
sudo apt update
sudo apt install --reinstall monad=<version>~rc.<number> -y --allow-downgrades --allow-change-held-packages
sudo systemctl restart monad-bft monad-execution monad-rpc
🛡️ Security Setup
Basic Firewall
sudo apt install -y ufw
sudo ufw allow 22/tcp
sudo ufw allow 26656/tcp
sudo ufw enable
sudo ufw status
Disable Root Login
sudo nano /etc/ssh/sshd_config
sudo systemctl restart sshd
⚠️ Troubleshooting
Node tidak sync?
curl http://localhost:13080/ \
-X POST \
-H "Content-Type: application/json" \
--data '{"method":"net_peerCount","params":[],"id":1,"jsonrpc":"2.0"}'
sudo systemctl restart monad-bft monad-execution monad-rpc
Service crash?
sudo journalctl -u monad-bft -n 100 --no-pager
sudo journalctl -u monad-execution -n 100 --no-pager
free -h
df -h
top
Validator tidak aktif?
Pastikan:
- Node fully synced
- Total stake >= 10M MON
- Rank dalam top 200
- Self-stake >= 100K MON
cd staking-sdk-cli
npm run cli -- getValidatorInfo --address <your_address> --rpc http://localhost:13080
📚 Resources
- Dokumentasi: docs.monad.xyz
- Staking CLI: github.com/monad-labs/staking-sdk-cli
- Hardware List: monadhcl.xyz
- Discord: discord.gg/monad
🔑 Network Info
Testnet
- Chain ID: 10143
- RPC: https://testnet-rpc.monad.xyz
- Explorer: https://testnet-explorer.monad.xyz
Mainnet
- Chain ID: TBA
- RPC: https://rpc.monad.xyz
- Explorer: https://explorer.monad.xyz
💡 Tips
- Selalu backup private key di tempat aman (offline)
- Monitor disk space secara regular
- Setup alerting untuk downtime
- Join Discord untuk update terbaru
- Gunakan hardware wallet untuk keamanan maksimal
- Test di testnet sebelum mainnet
- Keep node updated dengan versi terbaru
Butuh bantuan? Join Monad Discord atau baca dokumentasi lengkap.