Skip to content

thebuidl-grid/starknode-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

468 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

starknode-kit CLI Documentation

starknode-kit is a command-line tool to help developers and node operators easily set up, manage, and maintain Ethereum, Starknet, and Stellar nodes.


πŸš€ Installation

Option 1: Install using the install script (Recommended)

  1. Download and run the installation script:

    /bin/bash -c "$(curl -sSL https://raw.githubusercontent.com/thebuidl-grid/starknode-kit/main/install.sh)"
  2. Or download the script first and then run it:

    wget https://raw.githubusercontent.com/thebuidl-grid/starknode-kit/main/install.sh
    chmod +x install.sh
    ./install.sh

Option 2: Install using Go

Make sure you have Go installed (version 1.24 or later). This method installs the latest version from the main branch.

go install -ldflags="-X 'github.com/thebuidl-grid/starknode-kit/pkg/versions.StarkNodeVersion=main'" github.com/thebuidl-grid/starknode-kit@latest

Option 3: Manual Installation from Source

  1. Clone the repository:

    git clone https://github.com/thebuidl-grid/starknode-kit.git
    cd starknode-kit
  2. Build and install:

    make build
    sudo mv bin/starknode /usr/local/bin/

Verify Installation

After installation, verify that starknode-kit is working:

starknode-kit --help

Generate Config file

starknode-kit config new

🧹 Uninstallation

To uninstall starknode-kit, remove the binary and the configuration directory:

sudo rm /usr/local/bin/starknode-kit
rm -rf ~/.config/starknode-kit

Note: This will not remove any of the client data (e.g., blockchain data). The data is stored in the locations specified in your ~/.starknode-kit/starknode.yml file.


πŸ“˜ Available Commands

Command Description
add Add an Ethereum or Starknet client to the config
completion Generate the autocompletion script for the specified shell
config Create, show, and update your Starknet node configuration
help Display help about any command
monitor Launch real-time monitoring dashboard
remove Remove a specified resource
run Run a specific local infrastructure service
status Display status of running clients
start Run the configured Ethereum clients
stop Stop the configured Ethereum clients
update Check for and install client updates
validator Manage the Starknet validator client
version Show version of starknode-kit or a specific client
stellar Manage a Stellar Core validator node

πŸ§ͺ Example Usage

Add a client pair (consensus + execution)

starknode-kit add --consensus-client lighthouse --execution-client geth

Add a Starknet client

starknode-kit add --starknet-client juno

Remove a configured client

starknode-kit remove --consensus-client lighthouse
starknode-kit remove --starknet-client juno

Change network

starknode-kit config set network sepolia

Set an execution client

starknode-kit config set el client=reth port=9000,9001

Show configuration

starknode-kit config show --all
starknode-kit config show --el

Check version

starknode-kit version
starknode-kit version geth

Start Ethereum clients

starknode-kit start

⚠️ Note: The start command only launches the configured execution (EL) and consensus (CL) clients. It does not start any Starknet clients.

Run a specific client

To run a specific client using its configured settings:

starknode-kit run juno
starknode-kit run geth
starknode-kit run lighthouse

Validator Commands

Manage the Starknet validator client.

  • Get validator status:

    starknode-kit validator status
  • Get validator version:

    starknode-kit validator --version
  • Set Juno RPC endpoint:

    starknode-kit validator --rpc <YOUR_RPC_URL>

Generate bash completion script

starknode-kit completion bash > /etc/bash_completion.d/starknode-kit

Show help for a subcommand

starknode-kit help add

⭐ Stellar Node

starknode-kit includes a dedicated CLI runner for Stellar Core (stellar-core) validator nodes. All Stellar commands live under the stellar sub-command.

Stellar Sub-commands

Sub-command Description
stellar install Install stellar-core via apt (Ubuntu/Debian) or Homebrew (macOS)
stellar init-db Initialise the stellar-core database (run once before first start)
stellar start Start stellar-core in the background
stellar status Show live node status via the info HTTP command
stellar http-command <cmd> Send any admin HTTP command to the running node
stellar version Print the installed stellar-core version
stellar remove Remove the managed stellar-core installation

Stellar Flags

Flag Default Description
--network pubnet Network to join: pubnet (mainnet) or testnet
--conf managed Path to a custom stellar-core.cfg
--http-port 11626 stellar-core local HTTP admin port

Stellar Quick Start

1. Install stellar-core

starknode-kit stellar install

2. Place your stellar-core.cfg

Put a valid configuration file at the managed path (printed during install), or pass --conf /path/to/your/stellar-core.cfg to each command.

Reference: https://developers.stellar.org/docs/validators/admin-guide/configuring

3. Initialise the database

starknode-kit stellar init-db

4. Start the node

# Mainnet (pubnet)
starknode-kit stellar start --network pubnet

# Testnet
starknode-kit stellar start --network testnet

5. Check node status

starknode-kit stellar status

6. Send admin HTTP commands

# Node info
starknode-kit stellar http-command info

# Connected peers
starknode-kit stellar http-command peers

# Quorum health
starknode-kit stellar http-command quorum

# SCP state
starknode-kit stellar http-command scp

Stellar Data Directories

All managed Stellar data lives under:

~/.config/starknode-kit/stellar_clients/stellar-core/
β”œβ”€β”€ stellar-core        ← symlink to the installed binary
β”œβ”€β”€ stellar-core.cfg    ← default config location
β”œβ”€β”€ logs/               ← timestamped log files
└── database/           ← ledger database

πŸ“‹ Requirements

πŸ› οΈ Software Dependencies

Make sure the following are installed on your system before using or building starknode-kit:

  • Go: Version 1.24 or later Install from: https://go.dev/dl/

  • Rust: Recommended for building Starknet clients (e.g., Juno) Install with:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • Make: Required to build certain clients and scripts Install via package manager:

    • Ubuntu/Debian: sudo apt install make
    • macOS (with Homebrew): brew install make
    • Windows (WSL): included or sudo apt install make

πŸ–₯️ Hardware Requirements

See this Rocket Pool Hardware Guide for a detailed breakdown of node hardware requirements.

  • CPU: Node operation doesn't require heavy CPU power. The BG Client has run well on both i3 and i5 models of the ASUS NUC 13 PRO. Be cautious if using Celeron processors, as they may have limitations.

  • RAM: At least 32 GB is recommended for good performance with overhead.

  • Storage (SSD): The most critical component. Use a 2 TB+ NVMe SSD with:

    • A DRAM cache
    • No Quad-Level Cell (QLC) NAND architecture See this SSD List Gist for tested options.

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

🌐 Join the Community

Join the community to stay updated, ask questions, or contribute:

Whether you're a seasoned validator, hobbyist, or first-time node runner, you're welcome!


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Starknode-Kit is an open-source, Go-based CLI tool designed to enable anyone to seamlessly spin up an L1 + L2 node with a single command

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors