Skip to main content

Installation Guide

This guide covers all methods for installing and running a Viction node, including building from source, using pre-built binaries, and Docker deployment.

System Requirements

Minimum Requirements

  • CPU: 2+ cores
  • RAM: 4GB minimum, 8GB recommended
  • Storage: 100GB+ SSD (blockchain grows over time)
  • Network: Stable internet connection
  • OS: Linux, macOS, or Windows

Software Prerequisites

  • Go 1.18 or higher
  • GCC compiler
  • Git
Ubuntu/Debian
CentOS/RHEL

Installation Methods

Method 1: Build from Source

Building from source gives you the latest code and full control over the build process.
1

Install Go

Download and install Go from https://go.dev/dl/Verify installation:
2

Clone Repository

3

Build Binary

Use the build script to compile the tomo client:
This compiles and installs the binary to build/bin/tomo.
The build process may take several minutes depending on your system.
4

Add to PATH (Optional)

Make tomo available system-wide:
Linux/macOS
Add to PATH manually
5

Verify Installation

Method 2: Pre-built Binaries

The fastest way to get started is using pre-compiled binaries.
1

Download Binary

Visit the GitHub releases page and download the latest release for your platform:
Linux
macOS
2

Verify Installation

Method 3: Docker Installation

Docker provides isolated, reproducible deployments.
1

Install Docker

Install Docker Engine from https://docs.docker.com/engine/install/Verify installation:
2

Build Docker Image

Option A: Build from source
Option B: Pull pre-built image
3

Prepare Directories

Create directories for persistent data:

Account Management

Before running a node, you need an account to unlock. Viction uses the tomo account command for keystore management.

Create a New Account

Important: Store your password securely! Without it, you cannot unlock your account or access your funds.

Import Existing Account

If you have a private key, import it:
The private key file should contain your unencrypted private key in hexadecimal format.

List Accounts

Update Account Password

Network Configuration

Mainnet Configuration

Connect to Viction mainnet (Chain ID: 88):
Mainnet Parameters:
  • Chain ID: 88
  • Network ID: 88
  • Block time: 2 seconds
  • Epoch: 900 blocks
  • Consensus: Proof of Stake Voting (PoSV)

Testnet Configuration

Connect to Viction testnet (Chain ID: 89):
Testnet Parameters:
  • Chain ID: 89
  • Network ID: 89
  • Use --tomo-testnet flag
  • Same consensus parameters as mainnet

Full Node Configuration

A complete full node configuration with all features enabled:

Configuration Breakdown

Available API modules:
  • eth: Ethereum JSON-RPC
  • net: Network information
  • web3: Web3 utilities
  • personal: Account management
  • db: Database access
  • debug: Debug and tracing
Sync Modes:
  • fast: Fast sync (downloads state snapshots)
  • full: Full verification of all blocks
  • light: Light client mode (minimal storage)
GC Modes:
  • full: Regular node (pruned state)
  • archive: Archive node (full historical state)

Archive Node Configuration

An archive node stores complete historical state:
Archive nodes require significantly more disk space (1TB+) and are needed for:
  • Historical state queries
  • Reward tracking
  • Block explorers
  • Analytics services

Docker Compose Setup

For production deployments, use Docker Compose:
docker-compose.yml
Run with:

Systemd Service (Linux)

Create a systemd service for automatic startup:
/etc/systemd/system/viction.service
Enable and start:
View logs:

Firewall Configuration

Open required ports:
UFW (Ubuntu)
Firewalld (CentOS/RHEL)
Security: Never expose RPC/WebSocket ports (8545, 8546) directly to the internet. Use a reverse proxy with authentication or VPN access.

Troubleshooting

Node Won’t Start

Error: Failed to unlock accountSolution:
  • Verify password file exists and is readable
  • Check password is correct
  • Ensure keystore path is correct
  • Try --unlock 0 or --unlock <address>
Error: bind: address already in useSolution:
  • Check if another instance is running: ps aux | grep tomo
  • Change ports with --port, --rpcport, or --wsport
  • Kill existing process: pkill tomo
Error: write: no space left on deviceSolution:
  • Check disk usage: df -h
  • Clean old logs
  • Move datadir to larger partition
  • For full nodes, consider pruning with --gcmode full

Sync Issues

Solution:
  • Check if your version is up to date
  • Verify network connectivity
  • Try different bootnodes
  • Increase peer count: --maxpeers 50
Solution:
  • Check firewall allows port 30303
  • Enable NAT traversal: --nat upnp
  • Add explicit bootnodes: --bootnodes <enode-urls>
  • Set external IP: --nat extip:<your-public-ip>

Next Steps

Quick Start

Get your node running quickly

Run a Masternode

Become a validator and earn rewards

Network Info

Network parameters and endpoints

GitHub Repository

Source code and issues
For advanced configuration, custom genesis blocks, or private networks, refer to the full documentation.