Skip to main content

Purpose and Scope

This document guides you through installing StableNet, configuring a node, and performing the initial startup. It covers the essential steps required to bring a node into an operational state, from system requirements to first execution. For more detailed information, refer to the following documents:

Prerequisites

StableNet is built with Go and requires the following:
RequirementMinimum VersionNotes
Go1.22.xRequired for source builds
Disk200+ GBBased on Full Sync; varies by network
RAM8 GB16 GB recommended for validator nodes
CPU2 cores4 cores or more recommended
Network25 Mbps+Required for P2P sync; 50 Mbps+ recommended for initial sync

Installation Overview

StableNet can be installed in multiple ways:

Build from Source

The primary build method uses the CI build script:
git clone https://github.com/stable-net/go-stablenet
cd go-stablenet

# Build the gstable binary
go run build/ci.go install ./cmd/gstable

# The binary will be located at build/bin/gstable
./build/bin/gstable version
The build system supports cross-compilation and static linking via the build/ci.go script, handling all build flags and dependencies.

Use Release Binaries

Prebuilt binaries can be downloaded from GitHub Releases:
# Download from the release page
tar -xzf gstable-linux-amd64-<version>.tar.gz

# Add the binary to PATH
sudo mv gstable /usr/local/bin/

# Verify installation
gstable version
For platform-specific installation instructions, see Installation and Build.

Network Selection

StableNet supports multiple network configurations:
NetworkFlagChainID
Mainnet--mainnet8282
Testnet--testnet8283
Custom--genesis /path/to/genesis.json --networkid <id>User-defined
For custom network setup, see Genesis Configuration and Network Initialization.

Basic Configuration

Nodes can be configured using command-line flags and TOML configuration files. For key options such as --datadir, --http, and --port, see Node Configuration.

Running Your First Node

  1. Data Initialization: On first launch, if no network flag is specified, the node initializes as Mainnet by default. For custom networks, see Genesis Configuration and Network Initialization.
  2. Start the Node: By default, the node starts as a non-consensus participant. To participate in consensus as a validator, specify the --mine option. For commands and flags, see Node Configuration.
  3. Verify Operation: Methods for checking RPC access, the JavaScript console, and peer connections are described in Node Configuration.
If issues occur, refer to Node Configuration and Node Monitoring and Maintenance.

Next Steps

After successfully running your first node: