Using Environment Variables

A comprehensive reference of all environment variables supported by Solo, including their purposes, default values, and expected formats. Configure Solo deployments through environment variable tuning.

Overview

Solo supports a set of environment variables that let you customize its behaviour without modifying command-line flags on every run. Variables set in your shell environment take effect automatically for all subsequent Solo commands.

Tip: Add frequently used variables to your shell profile (e.g. ~/.zshrc or ~/.bashrc) to persist them across sessions.

General

Environment VariableDescriptionDefault Value
SOLO_HOMEPath to the Solo cache and log files~/.solo
SOLO_CACHE_DIRPath to the Solo cache directory~/.solo/cache
SOLO_LOG_LEVELLogging level for Solo operations. Accepted values: trace, debug, info, warn, errorinfo
SOLO_DEV_OUTPUTTreat all commands as if the --dev flag were specifiedfalse
SOLO_CHAIN_IDChain ID of the Solo network298
FORCE_PODMANForce the use of Podman as the container engine when creating a new local cluster. Accepted values: true, falsefalse

Network and Node Identity

Environment VariableDescriptionDefault Value
DEFAULT_START_ID_NUMBERFirst node account ID of the Solo test network0.0.3
SOLO_NODE_INTERNAL_GOSSIP_PORTInternal gossip port used by the Hiero network50111
SOLO_NODE_EXTERNAL_GOSSIP_PORTExternal gossip port used by the Hiero network50111
SOLO_NODE_DEFAULT_STAKE_AMOUNTDefault stake amount for a node500
GRPC_PORTgRPC port used for local node communication50211
LOCAL_NODE_START_PORTLocal node start port for the Solo network30212
SOLO_CHAIN_IDChain ID of the Solo network298

Operator and Key Configuration

Environment VariableDescriptionDefault Value
SOLO_OPERATOR_IDOperator account ID for the Solo network0.0.2
SOLO_OPERATOR_KEYOperator private key for the Solo network302e020100...
SOLO_OPERATOR_PUBLIC_KEYOperator public key for the Solo network302a300506...
FREEZE_ADMIN_ACCOUNTFreeze admin account ID for the Solo network0.0.58
GENESIS_KEYGenesis private key for the Solo network302e020100...

Note: Full key values are omitted above for readability. Refer to the source defaults for complete key strings.


Node Client Behaviour

Environment VariableDescriptionDefault Value
NODE_CLIENT_MIN_BACKOFFMinimum wait time between retries, in milliseconds1000
NODE_CLIENT_MAX_BACKOFFMaximum wait time between retries, in milliseconds1000
NODE_CLIENT_REQUEST_TIMEOUTTime a transaction or query retries on a “busy” network response, in milliseconds600000
NODE_CLIENT_MAX_ATTEMPTSMaximum number of attempts for node client operations600
NODE_CLIENT_PING_INTERVALInterval between node health pings, in milliseconds30000
NODE_CLIENT_SDK_PING_MAX_RETRIESMaximum number of retries for node health pings5
NODE_CLIENT_SDK_PING_RETRY_INTERVALInterval between node health ping retries, in milliseconds10000
NODE_COPY_CONCURRENTNumber of concurrent threads used when copying files to a node4
LOCAL_BUILD_COPY_RETRYNumber of retries for local build copy operations3
ACCOUNT_UPDATE_BATCH_SIZENumber of accounts to update in a single batch operation10

Pod and Network Readiness

Environment VariableDescriptionDefault Value
PODS_RUNNING_MAX_ATTEMPTSMaximum number of attempts to check if pods are running900
PODS_RUNNING_DELAYInterval between pod running checks, in milliseconds1000
PODS_READY_MAX_ATTEMPTSMaximum number of attempts to check if pods are ready300
PODS_READY_DELAYInterval between pod ready checks, in milliseconds2000
NETWORK_NODE_ACTIVE_MAX_ATTEMPTSMaximum number of attempts to check if network nodes are active300
NETWORK_NODE_ACTIVE_DELAYInterval between network node active checks, in milliseconds1000
NETWORK_NODE_ACTIVE_TIMEOUTMaximum wait time for network nodes to become active, in milliseconds1000
NETWORK_PROXY_MAX_ATTEMPTSMaximum number of attempts to check if the network proxy is running300
NETWORK_PROXY_DELAYInterval between network proxy checks, in milliseconds2000
NETWORK_DESTROY_WAIT_TIMEOUTMaximum wait time for network teardown to complete, in milliseconds120

Block Node

Environment VariableDescriptionDefault Value
BLOCK_NODE_ACTIVE_MAX_ATTEMPTSMaximum number of attempts to check if block nodes are active100
BLOCK_NODE_ACTIVE_DELAYInterval between block node active checks, in milliseconds60
BLOCK_NODE_ACTIVE_TIMEOUTMaximum wait time for block nodes to become active, in milliseconds60
BLOCK_STREAM_STREAM_MODEThe blockStream.streamMode value in consensus node application properties. Only applies when a Block Node is deployedBOTH
BLOCK_STREAM_WRITER_MODEThe blockStream.writerMode value in consensus node application properties. Only applies when a Block Node is deployedFILE_AND_GRPC

Relay Node

Environment VariableDescriptionDefault Value
RELAY_PODS_RUNNING_MAX_ATTEMPTSMaximum number of attempts to check if relay pods are running900
RELAY_PODS_RUNNING_DELAYInterval between relay pod running checks, in milliseconds1000
RELAY_PODS_READY_MAX_ATTEMPTSMaximum number of attempts to check if relay pods are ready100
RELAY_PODS_READY_DELAYInterval between relay pod ready checks, in milliseconds1000

Load Balancer

Environment VariableDescriptionDefault Value
LOAD_BALANCER_CHECK_DELAY_SECSDelay between load balancer status checks, in seconds5
LOAD_BALANCER_CHECK_MAX_ATTEMPTSMaximum number of attempts to check load balancer status60

Lease Management

Environment VariableDescriptionDefault Value
SOLO_LEASE_ACQUIRE_ATTEMPTSNumber of attempts to acquire a lock before failing10
SOLO_LEASE_DURATIONDuration in seconds for which a lock is held before expiration20

Component Versions

Environment VariableDescriptionDefault Value
CONSENSUS_NODE_VERSIONRelease version of the Consensus Node to usev0.65.1
BLOCK_NODE_VERSIONRelease version of the Block Node to usev0.18.0
MIRROR_NODE_VERSIONRelease version of the Mirror Node to usev0.138.0
EXPLORER_VERSIONRelease version of the Explorer to usev25.1.1
RELAY_VERSIONRelease version of the JSON-RPC Relay to usev0.70.0
INGRESS_CONTROLLER_VERSIONRelease version of the HAProxy Ingress Controller to usev0.14.5
SOLO_CHART_VERSIONRelease version of the Solo Helm charts to usev0.56.0
MINIO_OPERATOR_VERSIONRelease version of the MinIO Operator to use7.1.1
PROMETHEUS_STACK_VERSIONRelease version of the Prometheus Stack to use52.0.1
GRAFANA_AGENT_VERSIONRelease version of the Grafana Agent to use0.27.1

Helm Chart URLs

Environment VariableDescriptionDefault Value
JSON_RPC_RELAY_CHART_URLHelm chart repository URL for the JSON-RPC Relayhttps://hiero-ledger.github.io/hiero-json-rpc-relay/charts
MIRROR_NODE_CHART_URLHelm chart repository URL for the Mirror Nodehttps://hashgraph.github.io/hedera-mirror-node/charts
EXPLORER_CHART_URLHelm chart repository URL for the Exploreroci://ghcr.io/hiero-ledger/hiero-mirror-node-explorer/hiero-explorer-chart
INGRESS_CONTROLLER_CHART_URLHelm chart repository URL for the ingress controllerhttps://haproxy-ingress.github.io/charts
PROMETHEUS_OPERATOR_CRDS_CHART_URLHelm chart repository URL for the Prometheus Operator CRDshttps://prometheus-community.github.io/helm-charts
NETWORK_LOAD_GENERATOR_CHART_URLHelm chart repository URL for the Network Load Generatoroci://swirldslabs.jfrog.io/load-generator-helm-release-local

Network Load Generator

Environment VariableDescriptionDefault Value
NETWORK_LOAD_GENERATOR_CHART_VERSIONRelease version of the Network Load Generator Helm chart to usev0.7.0
NETWORK_LOAD_GENERATOR_PODS_RUNNING_MAX_ATTEMPTSMaximum number of attempts to check if Network Load Generator pods are running900
NETWORK_LOAD_GENERATOR_POD_RUNNING_DELAYInterval between Network Load Generator pod running checks, in milliseconds1000

One-Shot Deployment

Environment VariableDescriptionDefault Value
ONE_SHOT_WITH_BLOCK_NODEDeploy Block Node as part of a one-shot deploymentfalse
MIRROR_NODE_PINGER_TPSTransactions per second for the Mirror Node monitor pinger. Set to 0 to disable5