Join the VitoCoin Network
Run a full node to validate transactions independently, strengthen decentralization, and optionally mine VITO. Your node becomes part of the P2P network the moment it connects to a seed node.
Requirements
Installation
Paste this into your server as root. It installs all dependencies, downloads the node, and configures systemd:
bash <(curl -fsSL https://vitocoin.com/install.sh)copy
/install.sh before running on production systems.Step-by-step
# 1. Install Python and dependencies apt update && apt install -y python3 python3-pip git sqlite3 sshpass # 2. Clone the node software git clone https://github.com/united-vito-com/VitoCoin-v2.git /opt/vitocoin cd /opt/vitocoin # 3. Install Python requirements pip3 install -r requirements.txt # 4. Create data directory mkdir -p /opt/vitocoin/data/chaindatacopy
Configuration
Edit /opt/vitocoin/vitocoin/config.py (or pass command-line flags to main.py):
# /opt/vitocoin/vitocoin/config.py (or CLI flags)
DATA_DIR = "/opt/vitocoin/data" # where chainstore.db lives
NETWORK = "mainnet" # mainnet or testnet
API_HOST = "0.0.0.0" # bind address for REST API
API_PORT = 6333 # REST + SSE port
P2P_PORT = 6334 # P2P TCP port
MINE = True # set False to disable mining
MINE_WALLET = "V..." # YOUR VITO wallet address ← required!
THREADS = 2 # CPU mining threads
# Seed nodes (hardcoded in network.py — no need to change)
SEED_NODES = [
"195.114.193.73:6334", # Node 1 — Frankfurt
"213.139.77.18:6334", # Node 2 — Moscow
"84.201.20.90:6334", # Node 3 — Moscow
]copy
MINE_WALLET to your own VITO address. Block rewards are sent directly to this address — you cannot change it after a block is mined.Start the Node
# Start manually (foreground — good for initial testing) cd /opt/vitocoin python3 vitocoin/main.py \ --data /opt/vitocoin/data \ --api-port 6333 \ --p2p-port 6334 \ --mine \ --wallet YOUR_VITO_ADDRESS \ --threads 2 # Expected startup output: # [INFO] VitoCoin/2.0.0 starting up — mainnet # [INFO] Loaded chain: height=0, work=0 # [INFO] API server: http://0.0.0.0:6333 # [INFO] P2P listening on port 6334 # [INFO] Connecting to seed nodes… # [INFO] Peer connected: 195.114.193.73:6334 (1 total) # [INFO] Syncing headers from height=0 to height=10… # [INFO] Chain synced: height=10 ✓copy
Verify Sync
After startup, check that your node is synced to the same height as the network:
# Check your local node
curl http://localhost:6333/status | python3 -m json.tool
# Check network tip (from Node 1)
curl https://vitocoin.com/api/node/status | python3 -c \
"import json,sys; d=json.load(sys.stdin); print('Network height:', d['height'])"
# They should match:
# "height": 10 ← same on your node and the network
# Verify best_hash matches exactly:
# "best_hash": "00000000e060cafcd66eb2a4425a5e52a1490fbf6eec4af8ebf1fd94a77528de"copy
height and best_hash match the network, you're fully synced and participating in consensus.Enable Mining
Mining starts automatically if --mine is passed and a wallet address is set. To confirm:
curl http://localhost:6333/mining/status
Expected response:
{"mining": true, "threads": 2, "hashrate_hps": 15000.0, "hashrate_str": "15.0 KH/s",
"wallet": "VWALLET...", "blocks_found": 0}
Run as a Service (systemd)
To keep your node running across reboots:
cat > /etc/systemd/system/vitocoin.service << EOF [Unit] Description=VitoCoin Full Node After=network.target [Service] Type=simple User=root WorkingDirectory=/opt/vitocoin ExecStart=/usr/bin/python3 vitocoin/main.py \ --data /opt/vitocoin/data \ --api-port 6333 \ --p2p-port 6334 \ --mine \ --wallet YOUR_VITO_ADDRESS \ --threads 2 Restart=always RestartSec=5 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable vitocoin systemctl start vitocoin # Check status: systemctl status vitocoin journalctl -u vitocoin -fcopy
Firewall Rules
# Allow P2P port (required for sync and block propagation) ufw allow 6334/tcp # Allow API port (optional — only if exposing API publicly) ufw allow 6333/tcp # Or with iptables: iptables -A INPUT -p tcp --dport 6334 -j ACCEPT iptables -A INPUT -p tcp --dport 6333 -j ACCEPTcopy
Keeping Your Node Updated
cd /opt/vitocoin git pull origin main systemctl restart vitocoincopy
Subscribe to GitHub releases at https://github.com/united-vito-com/VitoCoin-v2 for update notifications. Critical consensus-rule changes require a coordinated upgrade.
FAQ
My node stays at height 0
Check that port 6334 is open and reachable from the internet. The seed nodes must be able to connect back to you (inbound). Use curl -s https://vitocoin.com/api/node/peers to see if your IP appears in the network's peer list.
Block time is very long (~79 minutes instead of 10 minutes)
The network hashrate is currently ~900 KH/s combined (3 nodes, Python CPU mining). Difficulty is at the genesis minimum (1.0). More miners joining will push actual block time toward the 10-minute target. The difficulty algorithm automatically adjusts every 2,016 blocks.
Can I run a node without mining?
Yes. Omit --mine from the start command. Your node will validate and relay blocks without performing hashing work.
How many peers should I have?
The node aims for 8 peers (4 outbound + 4 inbound). At current network size (3 seed nodes), you'll typically connect to all 3 seed nodes plus any other external nodes. peer_count: 4+ is healthy.
Where is chainstore.db?
In DATA_DIR/chaindata/chainstore.db. Do not delete this while the node is running. To backup: stop the service, run sqlite3 chainstore.db "PRAGMA wal_checkpoint(TRUNCATE)", then copy the file.
Can Windows or macOS run a node?
The Python code is platform-independent. However, the systemd integration and shell scripts are Linux-specific. Windows/macOS nodes work manually but require custom service setup.