Solo CLI
Solo has a series of commands to use, and some commands have subcommands. User can get help information by running with the following methods:
solo --help
will return the help information for the solo
command to show which commands
are available.
solo command --help
will return the help information for the specific command to show which options
solo account --help
Manage Hedera accounts in solo network
Commands:
account init Initialize system accounts with new keys
account create Creates a new account with a new key and stores the key in the Kubernetes secrets, if you supply no k
ey one will be generated for you, otherwise you may supply either a ECDSA or ED25519 private key
account update Updates an existing account with the provided info, if you want to update the private key, you can su
pply either ECDSA or ED25519 but not both
account get Gets the account info including the current amount of HBAR
Options:
--dev Enable developer mode [boolean]
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
solo command subcommand --help
will return the help information for the specific subcommand to show which options
solo account create --help
Creates a new account with a new key and stores the key in the Kubernetes secrets, if you supply no key one will be gene
rated for you, otherwise you may supply either a ECDSA or ED25519 private key
Options:
--dev Enable developer mode [boolean]
--hbar-amount Amount of HBAR to add [number]
--create-amount Amount of new account to create [number]
--ecdsa-private-key ECDSA private key for the Hedera account [string]
-n, --namespace Namespace [string]
--ed25519-private-key ED25519 private key for the Hedera account [string]
--generate-ecdsa-key Generate ECDSA private key for the Hedera account [boolean]
--set-alias Sets the alias for the Hedera account when it is created, requires --ecdsa-private-key
[boolean]
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
init
command is used to initialize system accounts with new keys, it accepts the following options:
--cache-dir Local cache directory [string]
account
command is used to create a crypto account, get account information, or update account information.
It has the following subcommands:
- init
- create
- get
- update
account init
subcommand is used to initialize system accounts with new keys, it accepts the following options:
-n, --namespace Namespace [string]
Get an account balance and retrieve account information such as account ID, public key, and private key.
account get
subcommand accepts the following options:
--account-id The Hedera account id, e.g.: 0.0.1001 [string]
--private-key Show private key information [boolean]
-n, --namespace Namespace [string]
Some examples of getting an account are as follows:
# get account info of 0.0.1007 and also show the private key
solo account get --account-id 0.0.1007 -n solo-e2e --private-key
The output would be similar to the following:
{
"accountId": "0.0.1007",
"privateKey": "302e020100300506032b657004220420cfea706dd9ed2d3c1660ba98acf4fdb74d247cce289ef6ef47486e055e0b9508",
"publicKey": "302a300506032b65700321001d8978e647aca1195c54a4d3d5dc469b95666de14e9b6edde8ed337917b96013",
"balance": 100
}
accoutn create
subcommand accepts the following options:
--hbar-amount Amount of HBAR to add, default is 100 [number]
--ecdsa-private-key ECDSA private key for the Hedera account [string]
-n, --namespace Namespace [string]
--ed25519-private-key ED25519 private key for the Hedera account [string]
--generate-ecdsa-key Generate ECDSA private key for the Hedera account [boolean]
--set-alias Sets the alias for the Hedera account when it is created, requires --ecdsa-private-key
If no private key is provided, the command will generate a new ED25519 key for the account.
unless --generate-ecdsa-key
is provided, in which case an ECDSA key will be generated.
Some examples of creating an account are as follows:
# create a new account with 100 hbar as initial balance with ED25519 key
solo account create -n solo-e2e
# create a new account with 500 hbar as initial balance with ECDSA key
solo account create -n solo-e2e --hbar-amount 500 --generate-ecdsa-key
# create a new account providing ecdsk key
solo account create -n solo-e2e --ecdsa-private-key 302a300506032b65700321001d8978e647aca1195c54a4d3d5dc469b95666de14e9b6edde8ed337917b96013
# create a new account with alias
solo account create -n solo-e2e --set-alias --generate-ecdsa-key
account update
subcommand is used to update an existing account with the provided info,
if you want to update the private key, you can supply either ECDSA or ED25519 but not both.
--account-id The Hedera account id, e.g.: 0.0.1001 [string]
--hbar-amount Amount of HBAR to add [number]
-n, --namespace Namespace [string]
--ecdsa-private-key ECDSA private key for the Hedera account [string]
--ed25519-private-key ED25519 private key for the Hedera account [string]
Some examples of updating an account are as follows:
# add hbar to an account
solo account update --account-id 0.0.1007 --hbar-amount 100 -n solo-e2e
# update an account with a new ECDSA key
solo account update --account-id 0.0.1007 --ecdsa-private-key 302a300506032b65700321001d8978e647aca1195c54a4d3d5dc469b95666de14e9b6edde8ed337917b96013 -n solo-e2e
cluster
command is used to manage the solo network cluster, it has the following subcommands:
- list
- info
- setup
- reset
cluster list
subcommand is used to list the solo network clusters
solo cluster list
******************************* Solo *********************************************
Version : 0.99.0
Kubernetes Context : kind-solo-e2e
Kubernetes Cluster : kind-solo-e2e
**********************************************************************************
*** Clusters ***
-------------------------------------------------------------------------------
- kind-fst
- kind-solo
- teleport.eng.hashgraph.io
- kind-solo-e2e
cluster info
subcommand is used to get the information of current solo network cluster
cluster setup
subcommand is used to setup the solo network cluster, it accepts the following options:
-d, --chart-dir Local chart directory path (e.g. ~/solo-charts/charts [string]
-c, --cluster-name Cluster name [string]
-s, --cluster-setup-namespace Cluster Setup Namespace [string]
--cert-manager Deploy cert manager, also deploys acme-cluster-issuer [boolean]
--cert-manager-crds Deploy cert manager CRDs [boolean]
--minio Deploy minio operator [boolean]
--prometheus-stack Deploy prometheus stack [boolean]
--solo-chart-version Solo testing chart version [string]
-n, --namespace Namespace [string]
cluster reset
subcommand is used to reset the solo network cluster, it accepts the following options:
-c, --cluster-name Cluster name [string]
-s, --cluster-setup-namespace Cluster Setup Namespace [string]
-f, --force Force actions even if those can be skipped [boolean]
solo network
command is used to manage the solo network, it has the following subcommands:
- deploy
- destroy
- refresh
network deploy
subcommand is used to deploy the solo network, it accepts the following options:
--api-permission-properties api-permission.properties file for node [string]
--app Testing app name [string]
--application-env application.env file for node [string]
--application-properties application.properties file for node [string]
--bootstrap-properties bootstrap.properties file for node [string]
--cache-dir Local cache directory [string]
-l, --ledger-id Ledger ID (a.k.a. Chain ID) [string]
-d, --chart-dir Local chart directory path (e.g. ~/solo-charts/charts [string]
--prometheus-svc-monitor Enable prometheus service monitor for the network nodes [boolean]
--solo-chart-version Solo testing chart version [string]
--debug-node-alias Enable default jvm debug port (5005) for the given node id [string]
--log4j2-xml log4j2.xml file for node [string]
-n, --namespace Namespace [string]
-i, --node-aliases-unparsed Comma separated node aliases (empty means all nodes) [string]
--pvcs Enable persistent volume claims to store data outside the pod, required for node add
[boolean]
--profile-file Resource profile definition (e.g. custom-spec.yaml) [string]
--profile Resource profile (local | tiny | small | medium | large) [string]
-q, --quiet-mode Quiet mode, do not prompt for confirmation [boolean]
-t, --release-tag Release tag to be used (e.g. v0.56.5) [string]
--settings-txt settings.txt file for node [string]
-f, --values-file Comma separated chart values files [string]
--grpc-tls-cert TLS Certificate path for the gRPC (e.g. "node1=/Users/username/node1-grpc.cert" with
multiple nodes comma seperated) [string]
--grpc-web-tls-cert TLS Certificate path for gRPC Web (e.g. "node1=/Users/username/node1-grpc-web.cert" w
ith multiple nodes comma seperated) [string]
--grpc-tls-key TLS Certificate key path for the gRPC (e.g. "node1=/Users/username/node1-grpc.key" wi
th multiple nodes comma seperated) [string]
--grpc-web-tls-key TLC Certificate key path for gRPC Web (e.g. "node1=/Users/username/node1-grpc-web.key
" with multiple nodes comma seperated) [string] [string]
network destroy
subcommand is used to destroy the solo network, it accepts the following options:
--delete-pvcs Delete the persistent volume claims [boolean]
--delete-secrets Delete the network secrets [boolean]
-f, --force Force actions even if those can be skipped [boolean]
-n, --namespace Namespace [string]
--enable-timeout enable time out for running a command [boolean]
network refresh
subcommand is used to refresh or update the solo network, it accepts the following options:
--api-permission-properties api-permission.properties file for node [string]
--app Testing app name [string]
--application-env application.env file for node [string]
--application-properties application.properties file for node [string]
--bootstrap-properties bootstrap.properties file for node [string]
--cache-dir Local cache directory [string]
-l, --ledger-id Ledger ID (a.k.a. Chain ID) [string]
-d, --chart-dir Local chart directory path (e.g. ~/solo-charts/charts [string]
--prometheus-svc-monitor Enable prometheus service monitor for the network nodes [boolean]
--solo-chart-version Solo testing chart version [string]
--debug-node-alias Enable default jvm debug port (5005) for the given node id [string]
--log4j2-xml log4j2.xml file for node [string]
-n, --namespace Namespace [string]
-i, --node-aliases-unparsed Comma separated node aliases (empty means all nodes) [string]
--pvcs Enable persistent volume claims to store data outside the pod, required for node add
[boolean]
--profile-file Resource profile definition (e.g. custom-spec.yaml) [string]
--profile Resource profile (local | tiny | small | medium | large) [string]
-q, --quiet-mode Quiet mode, do not prompt for confirmation [boolean]
-t, --release-tag Release tag to be used (e.g. v0.56.5) [string]
--settings-txt settings.txt file for node [string]
-f, --values-file Comma separated chart values files [string]
--grpc-tls-cert TLS Certificate path for the gRPC (e.g. "node1=/Users/username/node1-grpc.cert" with
multiple nodes comma seperated) [string]
--grpc-web-tls-cert TLS Certificate path for gRPC Web (e.g. "node1=/Users/username/node1-grpc-web.cert" w
ith multiple nodes comma seperated) [string]
--grpc-tls-key TLS Certificate key path for the gRPC (e.g. "node1=/Users/username/node1-grpc.key" wi
th multiple nodes comma seperated) [string]
--grpc-web-tls-key TLC Certificate key path for gRPC Web (e.g. "node1=/Users/username/node1-grpc-web.key
" with multiple nodes comma seperated) [string] [string]
solo node command is used to manage hedera network nodes, it has the following subcommands:
node setup Setup node with a specific version of Hedera platform
node start Start a node
node stop Stop a node
node keys Generate node keys
node refresh Reset and restart a node
node logs Download application logs from the network nodes and stores them in <SOLO_LOGS_DIR>/
<namespace>/<podName>/ directory
node states Download hedera states from the network nodes and stores them in <SOLO_LOGS_DIR>/<na
mespace>/<podName>/ directory
node add Adds a node with a specific version of Hedera platform
node update Update a node with a specific version of Hedera platform
node delete Delete a node with a specific version of Hedera platform
node download-generated-files Downloads the generated files from an existing node
solo mirror-node
command is used to manage mirror node deplooyment and destruction, it has the following subcommands:
mirror-node deploy Deploy a mirror node
mirror-node destroy Destroy a mirror node
mirror-node deploy
subcommand accepts the following options:
-d, --chart-dir Local chart directory path (e.g. ~/solo-charts/charts [string]
-x, --hedera-explorer Deploy hedera explorer [boolean]
--enable-hedera-explorer-tls Enable the Hedera Explorer TLS, defaults to false, requires certManager an
d certManagerCrds, which can be deployed through solo-cluster-setup chart
or standalone [boolean]
--hedera-explorer-tls-host-name The host name to use for the Hedera Explorer TLS, defaults to "explorer.so
lo.local" [string]
--hedera-explorer-tls-load-balancer-ip The static IP address to use for the Hedera Explorer TLS load balancer, de
faults to "" [string]
--hedera-explorer-version Hedera explorer chart version [string]
-n, --namespace Namespace [string]
--profile-file Resource profile definition (e.g. custom-spec.yaml) [string]
--profile Resource profile (local | tiny | small | medium | large) [string]
-q, --quiet-mode Quiet mode, do not prompt for confirmation [boolean]
--tls-cluster-issuer-type The TLS cluster issuer type to use for hedera explorer, defaults to "self-
signed", the available options are: "acme-staging", "acme-prod", or "self-
signed" [string]
-f, --values-file Comma separated chart values files [string]
--mirror-node-version Mirror node chart version [string]
--pinger Enable Pinger service in the Mirror node monitor [boolean] [string] [string]
mirror-node destroy
subcommand accepts the following options:
-d, --chart-dir Local chart directory path (e.g. ~/solo-charts/charts [string]
-f, --force Force actions even if those can be skipped [boolean]
-n, --namespace Namespace [string]
solo relay
command is used to manage relay nodes, it has the following subcommands:
relay deploy Deploy a JSON RPC relay
relay destroy Destroy JSON RPC relay
relay deploy
subcommand accepts the following options:
-l, --ledger-id Ledger ID (a.k.a. Chain ID) [string]
-d, --chart-dir Local chart directory path (e.g. ~/solo-charts/charts [string]
-n, --namespace Namespace [string]
-i, --node-aliases-unparsed Comma separated node aliases (empty means all nodes) [string]
--operator-id Operator ID [string]
--operator-key Operator Key [string]
--profile-file Resource profile definition (e.g. custom-spec.yaml) [string]
--profile Resource profile (local | tiny | small | medium | large) [string]
-q, --quiet-mode Quiet mode, do not prompt for confirmation [boolean]
--relay-release Relay release tag to be used (e.g. v0.48.0) [string]
--replica-count Replica count [number]
-f, --values-file Comma separated chart values files [string] [boolean]
relay destroy
subcommand accepts the following options:
-d, --chart-dir Local chart directory path (e.g. ~/solo-charts/charts [string]
-n, --namespace Namespace [string]
-i, --node-aliases-unparsed Comma separated node aliases (empty means all nodes) [string] [string]