Volunteer Node Operator Guide

Help support government data transparency by running a OpenGovChain node

Why Run a Node?

Support Transparency

Help preserve government datasets

Ensure Availability

Provide redundant storage and access

Build Reputation

Earn on-chain recognition for contributions

Join the Community

Connect with transparency advocates worldwide

Ways to Help

Basic Node
Sync and relay transactions
Requirements
  • • 2 CPU cores
  • • 4 GB RAM
  • • 50 GB storage
Cost

$5-10/month (VPS)

Commitment
Low (can run part-time)
Data Pinner
Help preserve government datasets
Requirements
  • • 1 CPU core
  • • 2 GB RAM
  • • 100+ GB storage
Cost

$3-8/month

Commitment
Very Low (hobby-friendly)
Archive Node
Store complete blockchain history
Requirements
  • • 2 CPU cores
  • • 8 GB RAM
  • • 200 GB storage
Cost

$10-20/month

Commitment
Moderate availability
System Requirements

Most modern computers can run a basic node! Even a Raspberry Pi 4 works for simple setups.

Basic Setup

  • Any modern OS (Linux/macOS/Windows)
  • 2 GB RAM
  • 20 GB free space
  • Basic internet (5+ Mbps)

Better Performance

  • Ubuntu/Debian (easier setup)
  • 4 GB RAM
  • 100 GB SSD
  • Stable internet connection
Quick Setup
Get started in 6 steps
1

Install Dependencies

# Update system
sudo apt update && sudo apt upgrade -y
# Install basic tools
sudo apt install -y curl wget git build-essential jq
# Install Go 1.21
wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
# Install Ignite CLI
curl https://get.ignite.com/cli | bash
2

Build Blockchain Binary

# Clone repository
git clone https://github.com/bettergov/govchaind.git
cd govchaind
# Build binary
ignite chain build
3

Initialize Node

# Initialize node (replace 'my-node' with your moniker)
govchaind init my-node --chain-id govchain-1
# Download genesis file
wget https://govchain.bettergov.ph/genesis.json \
-O ~/.govchain/config/genesis.json
4

Configure Node

# Edit config.toml
nano ~/.govchain/config/config.toml
# Key settings:
persistent_peers = "node1@ip1:26656,node2@ip2:26656"
external_address = "tcp://YOUR_PUBLIC_IP:26656"
prometheus = true
5

Create Systemd Service

sudo systemctl daemon-reload
sudo systemctl enable govchaind
sudo systemctl start govchaind
6

Verify Node is Running

# Check status
sudo systemctl status govchaind
# Check sync status
govchaind status | jq .SyncInfo
Security Best Practices
  • Use a firewall: Allow only necessary ports (SSH, P2P)
  • Disable RPC on public interface: Keep RPC on localhost only
  • Use SSH keys, not passwords: Disable password authentication
  • Keep validator keys offline: Use a signer service for production
  • Regular security updates: Keep your system up to date
Support & Community
  • • Discord: https://discord.gg/bettergovph
  • • GitHub Issues: https://github.com/bettergovph/govchain/issues
  • • Email: [email protected]
Next Steps
  1. Set up your node
  2. Join Discord community
  3. Introduce yourself in #introductions
  4. Start pinning datasets
  5. Participate in governance
  6. Help onboard other volunteers