Skip to main content
A full node is a node that fully validates transactions and blocks. Running a full node helps secure the network and allows you to interact with the blockchain without relying on third parties.

Prerequisites

Before running a full node, ensure you have:
  • A server with at least 4GB RAM and 200GB disk space
  • Go 1.18 or higher installed (for binary build)
  • Docker installed (for Docker deployment)
  • Stable internet connection

Account Setup

Viction requires an account when running the node, even for full nodes. You need to either create a new account or import an existing one.
1

Create a new account

If you don’t have an existing account, create a new one:
tomo account new --password /path/to/password_file --keystore /path/to/keystore_dir
This will generate a new account and store it in the specified keystore directory.
2

Import an existing account

If you already have a private key, import it:
tomo account import /path/to/privatekey_file --password /path/to/password_file --keystore /path/to/keystore_dir
The private key file should contain your private key in plain text.

Running the Node

To run a full node with default settings:
tomo --datadir /path/to/data_dir --keystore /path/to/keystore_dir --password /path/to/password_file --unlock 0
This command will:
  • Connect to the Viction mainnet (network ID 88)
  • Sync in full mode
  • Use the first account in your keystore

Key Parameters Explained

datadir
string
required
Path to your data directory where blockchain data will be stored
keystore
string
required
Path to your account’s keystore directory
password
string
required
Path to file containing your account’s password
unlock
string
required
Account index or address to unlock (use “0” for the first account)
identity
string
Custom name for your node (appears in network stats)
networkid
number
Network identifier (88 for mainnet, 89 for testnet)
syncmode
string
Blockchain sync mode: “fast”, “full”, or “light”. Default is “full”
gcmode
string
Blockchain garbage collection mode: “full” or “archive”
mine
boolean
Enable staking (required if you want to register as a masternode candidate)
port
number
P2P network listening port (default: 30303)
rpc
boolean
Enable the HTTP-RPC server
rpcaddr
string
HTTP-RPC server listening address (use “0.0.0.0” to allow external connections)
rpcport
number
HTTP-RPC server listening port (default: 8545)
ws
boolean
Enable the WebSocket-RPC server
wsaddr
string
WebSocket-RPC server listening address
wsport
number
WebSocket-RPC server listening port (default: 8546)
verbosity
number
Logging verbosity level (1-5, where 5 is most verbose)

Network Stats Reporting

To report your node statistics to the Viction network stats dashboard:
--ethstats "your-node-name:[email protected]"
Replace your-node-name with your desired node name. The secret is:
getty-site-pablo-auger-room-sos-blair-shin-whiz-delhi

Sync Modes

Fast Sync

Downloads blocks and verifies only the most recent state. Faster initial sync but less secure validation.

Full Sync

Downloads and validates all blocks from genesis. Slower but fully validates the entire chain.

Light Sync

Downloads only block headers. Requires trust in full nodes. Not recommended for production.

Garbage Collection Modes

Full Mode

Prunes old state data to save disk space. Suitable for most full nodes.

Archive Mode

Keeps all historical state data. Required for:
  • Running an archive node
  • Using --store-reward flag
  • Providing historical state queries

Monitoring Your Node

Once your node is running, you can:
  1. Check sync status via RPC:
    curl -X POST --data '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' -H "Content-Type: application/json" http://localhost:8545
    
  2. View logs to monitor node activity (verbosity level affects log detail)
  3. Check peer count:
    curl -X POST --data '{"jsonrpc":"2.0","method":"net_peerCount","params":[],"id":1}' -H "Content-Type: application/json" http://localhost:8545
    
  4. View network stats at https://stats.viction.xyz if you configured --ethstats
Initial sync can take several hours depending on your hardware and network connection. The node must download and verify the entire blockchain.

Troubleshooting

  • Check your internet connection
  • Verify that port 30303 is not blocked by firewall
  • Try adding bootnodes manually with --bootnodes flag
  • Ensure you have enough disk space
  • Verify RPC is enabled with --rpc flag
  • Check that --rpcaddr is set to 0.0.0.0 for external access
  • Ensure firewall allows connections to RPC port
  • Verify password file is correct
  • Check keystore path is valid
  • Ensure account exists in keystore directory
  • Increase system RAM
  • Use --cache flag to adjust memory allocation
  • Consider using fast sync instead of full sync

Next Steps

Configuration

Learn about all available configuration options

Run a Masternode

Upgrade your full node to a masternode

Build docs developers (and LLMs) love