Configuration
Learn how to configure starknode-kit for your Ethereum and Starknet nodes.
Configuration File
starknode-kit stores its configuration in a YAML file located at:
~/.starknode-kit/starknode.yml
Creating a Configuration
Generate a new configuration file with default settings:
starknode-kit config new
Viewing Configuration
View your entire configuration:
starknode-kit config show --all
View specific sections:
# View execution client config starknode-kit config show --el # View consensus client config starknode-kit config show --cl # View Juno (Starknet) config starknode-kit config show --juno
Configuration Structure
The configuration file has the following structure:
network: mainnet execution_client: name: geth ports: - 8545 # HTTP RPC - 8546 # WebSocket RPC - 30303 # P2P consensus_client: name: lighthouse ports: - 5052 # HTTP API - 9000 # P2P consensus_checkpoint: "" juno_client: port: 6060 eth_node: "http://localhost:8545" environment: [] is_validator_node: false wallet: name: "" reward_address: "" commision: "" validator_config: provider_config: juno_rpc_http: "http://localhost:6060" juno_rpc_ws: "ws://localhost:6060" signer: operational_address: "" privateKey: ""
Modifying Configuration
Change Network
Switch between mainnet, sepolia, or custom networks:
# Switch to sepolia testnet starknode-kit config set network sepolia # Switch to mainnet starknode-kit config set network mainnet
Configure Execution Client
Set execution client and ports:
# Set client type starknode-kit config set el client=reth # Set ports starknode-kit config set el port=9000,9001 # Set both starknode-kit config set el client=geth port=8545,8546,30303
Configure Consensus Client
Set consensus client and checkpoint:
# Set client type starknode-kit config set cl client=prysm # Set checkpoint URL starknode-kit config set cl checkpoint=https://checkpoint.example.com
Configure Juno (Starknet)
Configure your Juno Starknet client:
# Set Juno port starknode-kit config set juno port=6060 # Set Ethereum node connection starknode-kit config set juno eth_node=http://localhost:8545
Network Settings
starknode-kit supports multiple networks:
- mainnet - Ethereum and Starknet mainnet
- sepolia - Ethereum Sepolia and Starknet Sepolia testnet
⚠️ Important
Changing the network will affect all clients. Make sure to stop your nodes before changing networks.
Port Configuration
Default Ports
Default ports for each client:
Client | Ports | Purpose |
---|---|---|
Geth | 8545, 8546, 30303 | HTTP RPC, WS RPC, P2P |
Reth | 8545, 8546, 30303 | HTTP RPC, WS RPC, P2P |
Lighthouse | 5052, 9000 | HTTP API, P2P |
Prysm | 4000, 13000 | HTTP API, P2P |
Juno | 6060 | RPC |
Validator Configuration
For validator nodes, additional configuration is required. See the Validator Setup page for details.
Environment Variables
Some sensitive data can be stored as environment variables:
STARKNET_WALLET
- Wallet addressSTARKNET_PRIVATE_KEY
- Private keySTARKNET_PUBLIC_KEY
- Public keySTARKNET_CLASS_HASH
- Class hashSTARKNET_SALT
- Salt value
Configuration Best Practices
- Backup your config - Keep a backup of your configuration file
- Use environment variables - Store sensitive data in environment variables
- Document changes - Keep notes of any custom configurations
- Test on testnet - Always test configuration changes on a testnet first
Troubleshooting
Configuration not loading
If your configuration isn't loading, check:
- File exists at
~/.starknode-kit/starknode.yml
- File has correct YAML syntax
- File has correct permissions (readable by your user)
Port conflicts
If you get port conflicts:
- Check if ports are already in use:
lsof -i :[port]
- Configure different ports in your config
- Stop conflicting services