Skip to main content

Quick Start Guide

This guide will help you quickly set up and run a Viction full node. For detailed installation instructions, see the Installation guide.

Prerequisites

A Viction node requires an account even when running as a full node (non-masternode). Make sure you have your account ready before starting.
Before you begin, ensure you have:
  • Go 1.18 or higher installed
  • A C compiler (gcc or equivalent)
  • At least 4GB RAM
  • 100GB+ disk space for blockchain data

Installation

1

Clone the Repository

git clone https://github.com/BuildOnViction/victionchain
cd victionchain
2

Build the Binary

Build the tomo client using the build script:
go run build/ci.go install
This will create the tomo binary in build/bin/tomo.
Alternatively, download pre-built binaries from the GitHub releases page.
3

Create or Import an Account

Every node needs an account. Choose one of the following:Create a new account:
tomo account new --password /path/to/password_file --keystore /path/to/keystore_dir
Import an existing private key:
tomo account import /path/to/privatekey_file --password /path/to/password_file --keystore /path/to/keystore_dir
Store your password file securely! Without it, you cannot unlock your account.
4

Start Your Node

Run a basic full node with minimal configuration:
tomo --datadir /path/to/data_dir \
  --keystore /path/to/keystore_dir \
  --password /path/to/password_file \
  --unlock 0
Your node will:
  • Connect to Viction mainnet (Chain ID: 88)
  • Start syncing the blockchain
  • Unlock your account for transactions

Verify Your Node

Once your node is running, verify it’s working correctly:
# Attach to running node
tomo attach /path/to/data_dir/tomo.ipc

# Check sync status
> eth.syncing

# Check peer count
> net.peerCount

# Get latest block
> eth.blockNumber

Enhanced Configuration

For a production node with RPC/WebSocket access, use additional flags:
tomo --datadir /path/to/data_dir \
  --keystore /path/to/keystore_dir \
  --password /path/to/password_file --unlock 0 \
  --identity my-full-node \
  --networkid 88 \
  --gasprice 250000000 \
  --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcvhosts "*" --rpccorsdomain "*" \
  --rpcapi "eth,debug,net,db,personal,web3" \
  --ws --wsaddr 0.0.0.0 --wsport 8546 --wsorigins "*" \
  --port 30303 \
  --syncmode "full" --gcmode "full" \
  --verbosity 3

Key Configuration Flags

  • --identity: Your node’s name
  • --networkid: Network ID (88 for mainnet, 89 for testnet)
  • --tomo-testnet: Connect to testnet instead of mainnet
  • --port: P2P listening port (default: 30303)
  • --rpc: Enable HTTP-RPC server
  • --rpcaddr: HTTP-RPC server listening interface (0.0.0.0 for all)
  • --rpcport: HTTP-RPC server port (default: 8545)
  • --rpcapi: APIs offered over HTTP-RPC
  • --rpccorsdomain: CORS domain for HTTP-RPC
  • --rpcvhosts: Virtual hostnames accepted by HTTP-RPC
  • --ws: Enable WebSocket server
  • --wsaddr: WebSocket server listening interface
  • --wsport: WebSocket server port (default: 8546)
  • --wsorigins: Origins accepted by WebSocket server
  • --syncmode: Blockchain sync mode ("fast", "full", or "light")
  • --gcmode: Garbage collection mode ("full" or "archive")
  • --datadir: Data directory for databases and keystore
  • --gasprice: Minimal gas price to accept for mining (250000000 recommended)
  • --verbosity: Logging verbosity (0-5, recommended: 3)

Running with Docker

Prefer containers? Run Viction with Docker:
1

Pull or Build Image

Option 1: Build locally
docker build --file Dockerfile.node -t "buildonviction/node:v2.5.1" .
Option 2: Pull from registry
docker pull buildonviction/node:v2.5.1
2

Run Container

docker run --name viction \
  -v "/path/to/data_dir:/tomochain/data" \
  -v "/path/to/keystore_dir:/tomochain/keystore" \
  -v "/path/to/password_file:/tomochain/password" \
  -p 8545:8545 \
  -p 8546:8546 \
  -p 30303:30303 \
  -e IDENTITY=my-full-node \
  -e NETWORK_ID=88 \
  -e NETSTATS_HOST=stats.viction.xyz \
  -e NETSTATS_PORT=443 \
  -e WS_SECRET=getty-site-pablo-auger-room-sos-blair-shin-whiz-delhi \
  -e VERBOSITY=3 \
  buildonviction/node:v2.5.1

Docker Environment Variables

VariableDescriptionDefault
IDENTITYYour node’s name-
NETWORK_IDNetwork ID (88=mainnet, 89=testnet)88
SYNC_MODESync mode (full/fast/light)full
BOOTNODESComma-separated list of bootnode enodes-
EXTIPExternal IP for P2P connections-
P2P_PORTP2P listening port30303
MAX_PEERSMaximum number of peers (0=disable P2P)25
NETSTATS_HOSTEthstats hostnamenetstats-server
NETSTATS_PORTEthstats port3000
WS_SECRETEthstats secret-
PRIVATE_KEYNode account private key (plaintext)-
PASSWORDAccount password (plaintext)-
DEBUG_MODEEnable archive mode and debug APIs-
STORE_REWARDEnable masternode reward snapshots-
VERBOSITYLogging verbosity (1-5)3

Monitoring Your Node

Report to Network Stats

Connect your node to the network statistics dashboard:
tomo --datadir /path/to/data_dir \
  --ethstats my-node-name:getty-site-pablo-auger-room-sos-blair-shin-whiz-delhi@stats.viction.xyz \
  # ... other flags
View your node on the stats page: https://stats.viction.xyz

Check Sync Progress

Attach to the console and check sync status:
// Returns false when fully synced
eth.syncing

// Shows current block vs highest known block when syncing
{
  currentBlock: 1000000,
  highestBlock: 5000000,
  knownStates: 2000000,
  pulledStates: 1500000,
  startingBlock: 0
}

Next Steps

Installation Guide

Detailed installation instructions for all platforms

Account Management

Learn about managing accounts, creating, importing, and updating

Become a Masternode

Run a masternode and earn rewards

Network Information

Detailed network parameters and endpoints
Need help? Check out the full documentation or visit the GitHub repository for issues and discussions.

Build docs developers (and LLMs) love