Running Node

Node Operator Overview

The Node Operator section of the Staco Docs is a collection of guides and tutorials to help you run your own Staco Mainnet nodes. If you'd like to learn more about how Staco Mainnet works under the hood, refer to the Staco Mainnet Getting Started Guide. If you want to get right into running a node, you can skip ahead to the Node Operator Tutorials section.

Execution Client

The Execution Client is responsible for processing and validating block payloads within the Staco Mainnet. It exposes the standard Ethereum-compatible JSON-RPC API, which developers can use to query blockchain data and submit transactions to the network. In essence, the Execution Client serves the same purpose as an execution client in Ethereum, but within the context of Staco’s Layer 1 PoA consensus model.

Software Releases

It is essential to keep your node software up to date to remain in sync with the rest of the Staco Mainnet. Updates may include critical consensus improvements, security patches, and performance optimizations to ensure that your node stays reliable and secure.

Prerequisites

CodeMessage Meaning Category
Golang1.20++
Java 17+Latest
GethLatest
500 GBHDD / NVMe
OSUbuntu 20.04

Tip before running in Linux: If synchronizing to Mainnet on Linux or other chains with large data requirements, increase the maximum number of open files allowed using ulimit. If the open files limit is not high enough, a Too many open files RocksDB exception occurs.

Get Started

Staco Mainnet Genesis File:
TBA (opens in a new tab)
TBA (opens in a new tab)

Create Directory

shell
mkdir staco_node
cd staco_node
wget https://stacochain.com/mainnetgenesis.json

Create a staco_config.toml with the following options:

shell
# Enode Pointing
bootnodes=["<Mainnet_Gateway_Bootnodes>"]
 
# Staco Genesis File
genesis-file="[PATH]/mainnetgenesis.json"
 
# Data directory
data-path="[PATH]/staco_node
 
# Chain Configuration 
rpc-http-enabled=true
rpc-ws-enabled=true
host-allowlist=["*"]
sync-mode=["FULL"]
rpc-http-host=[IPHOST]
rpc-ws-host=[IPHOST]
rpc-http-cors-origins=["all"]
 
# API Method
rpc-http-api=["ETH","NET","WEB3"]
rpc-ws-api=["ETH","NET","WEB3"]

List Bootnodes :

shell
Enode Will Be Updated Soon
Enode Will Be Updated Soon
Enode Will Be Updated Soon

Start Node

shell
geth --config-file=chain_config.toml

Run in a Service System

shell
nano /etc/systemd/system/stacochain.service
shell
[Unit]
Description=Staco Node
 
[Service]
Type=simple
User=root
Restart=always
ExecStart=[PATH]/besu --config-file=[PATH]/chain_config.toml 
 
[Install]
WantedBy=default.target

Confirm Staco Node is Running

curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":53}' http://127.0.0.1:8545

Response:

shell
{
  "jsonrpc" : "2.0",
  "id" : 53,
  "result" : "0x3e8"
}