Private network command line options
This reference describes the syntax of the Hyperledger Besu private network command line interface (CLI) options.
This reference contains options that apply to only private networks. For options that apply to both private and public networks, see the public network options reference.
Specify options
You can specify Besu options:
-
On the command line.
besu [OPTIONS] [SUBCOMMAND]
-
As an environment variable. For each command line option, the equivalent environment variable is:
- Uppercase.
_
replaces-
.- Has a
BESU_
prefix.
For example, set
--miner-coinbase
using theBESU_MINER_COINBASE
environment variable. -
In a configuration file.
If you specify an option in more than one place, the order of priority is command line, environment variable, configuration file.
If using Bash or Z shell, you can view option suggestions by entering --
and pressing the Tab key twice.
besu --Tab+Tab
Characters such as smart quotes and long (em) hyphens don't work in Besu command line options. Ensure quotes aren't automatically converted to smart quotes, or double hyphens combined into em hyphens.
Options
permissions-accounts-config-file
Syntax
--permissions-accounts-config-file=<FILE>
Example
--permissions-accounts-config-file=/home/me/me_configFiles/myPermissionsFile
Environment variable
BESU_PERMISSIONS_ACCOUNTS_CONFIG_FILE=/home/me/me_configFiles/myPermissionsFile
Configuration file
permissions-accounts-config-file="/home/me/me_configFiles/myPermissionsFile"
The accounts permissions configuration file. The default is the permissions_config.toml
file in the data directory.
--permissions-accounts-config-file
and --permissions-nodes-config-file
can use the same file.
permissions-accounts-config-file-enabled
Syntax
--permissions-accounts-config-file-enabled[=<true|false>]
Example
--permissions-accounts-config-file-enabled=true
Environment variable
BESU_PERMISSIONS_ACCOUNTS_CONFIG_FILE_ENABLED=true
Configuration file
permissions-accounts-config-file-enabled=true
Enables or disables file-based account level permissions. The default is false
.
permissions-accounts-contract-address
Syntax
--permissions-accounts-contract-address=<ContractAddress>
Example
--permissions-accounts-contract-address=xyz
Environment variable
BESU_PERMISSIONS_ACCOUNTS_CONTRACT_ADDRESS=xyz
Configuration file
permissions-accounts-contract-address="xyz"
The contract address for onchain account permissioning.
permissions-accounts-contract-enabled
Syntax
--permissions-accounts-contract-enabled[=<true|false>]
Example
--permissions-accounts-contract-enabled=true
Environment variable
BESU_PERMISSIONS_ACCOUNTS_CONTRACT_ENABLED=true
Configuration file
permissions-accounts-contract-enabled=true
Enables or disables contract-based onchain account permissioning. The default is false
.
permissions-nodes-config-file
Syntax
--permissions-nodes-config-file=<FILE>
Example
--permissions-nodes-config-file=/home/me/me_configFiles/myPermissionsFile
Environment variable
BESU_PERMISSIONS_NODES_CONFIG_FILE=/home/me/me_configFiles/myPermissionsFile
Configuration file
permissions-nodes-config-file="/home/me/me_configFiles/myPermissionsFile"
The nodes permissions configuration file. The default is the permissions_config.toml
file in the data directory.
--permissions-nodes-config-file
and --permissions-accounts-config-file
can use the same file.
permissions-nodes-config-file-enabled
Syntax
--permissions-nodes-config-file-enabled[=<true|false>]
Example
--permissions-nodes-config-file-enabled=true
Environment variable
BESU_PERMISSIONS_NODES_CONFIG_FILE_ENABLED=true
Configuration file
permissions-nodes-config-file-enabled=true
Enables or disables file-based node level permissions. The default is false
.
permissions-nodes-contract-address
Syntax
--permissions-nodes-contract-address=<ContractAddress>
Example
--permissions-nodes-contract-address=xyz
Environment variable
BESU_PERMISSIONS_NODES_CONTRACT_ADDRESS=xyz
Configuration file
permissions-nodes-contract-address="xyz"
The contract address for onchain node permissioning.
permissions-nodes-contract-enabled
Syntax
--permissions-nodes-contract-enabled[=<true|false>]
Example
--permissions-nodes-contract-enabled=true
Environment variable
BESU_PERMISSIONS_NODES_CONTRACT_ENABLED=true
Configuration file
permissions-nodes-contract-enabled=true
Enables or disables contract-based onchain node permissioning. The default is false
.
permissions-nodes-contract-version
Syntax
--permissions-nodes-contract-version=<ContractVersion>
Example
--permissions-nodes-contract-version=2
Environment variable
BESU_PERMISSIONS_NODES_CONTRACT_VERSION=2
Configuration file
permissions-nodes-contract-version=2
Version of the EEA node permissioning interface. The default is 1.
privacy-enabled
Syntax
--privacy-enabled[=<true|false>]
Example
--privacy-enabled=false
Environment variable
BESU_PRIVACY_ENABLED=false
Configuration file
privacy-enabled=false
Enables or disables private transactions. The default is false
.
privacy-marker-transaction-signing-key-file
Syntax
--privacy-marker-transaction-signing-key-file=<FILE>
Example
--privacy-marker-transaction-signing-key-file=/home/me/me_node/myPrivateKey
Environment variable
BESU_PRIVACY_MARKER_TRANSACTION_SIGNING_KEY_FILE=/home/me/me_node/myPrivateKey
Configuration file
privacy-marker-transaction-signing-key-file="/home/me/me_node/myPrivateKey"
<FILE>
is the name of the private key file used to sign privacy marker transactions.
This can be the same file used by --node-private-key-file
, or a different key file to identify who signed the privacy marker transaction.
You must specify this option if you're using:
- a privacy network where you pay gas. Also, the associated account must contain adequate funds.
- account permissioning and privacy. You must include the corresponding public key in the accounts allowlist.
If you do not specify this option (for example, in a free gas network), Besu signs each transaction with a different randomly generated key.
privacy-multi-tenancy-enabled
Syntax
--privacy-multi-tenancy-enabled[=<true|false>]
Example
--privacy-multi-tenancy-enabled=false
Environment variable
BESU_PRIVACY_MULTI_TENANCY_ENABLED=false
Configuration file
privacy-multi-tenancy-enabled=false
Enables or disables multi-tenancy for private transactions. The default is false
.
privacy-flexible-groups-enabled
Syntax
--privacy-flexible-groups-enabled[=<true|false>]
Example
--privacy-flexible-groups-enabled=true
Environment variable
BESU_PRIVACY_FLEXIBLE_GROUPS_ENABLED=true
Configuration file
privacy-flexible-groups-enabled=true
Enables or disables flexible privacy groups. The default is false
.
Deprecated syntax for this option is --privacy-onchain-groups-enabled
.
privacy-public-key-file
Syntax
--privacy-public-key-file=<privacyPublicKeyFile>
Example
--privacy-public-key-file=Tessera/nodeKey.pub
Environment variable
BESU_PRIVACY_PUBLIC_KEY_FILE=Tessera/nodeKey.pub
Configuration file
privacy-public-key-file="Tessera/nodeKey.pub"
The public key of the Tessera node.
You cannot specify privacy-public-key-file
when --privacy-multi-tenancy-enabled
is true
privacy-tls-enabled
Syntax
--privacy-tls-enabled[=<true|false>]
Example
--privacy-tls-enabled=false
Environment variable
BESU_PRIVACY_TLS_ENABLED=false
Configuration file
privacy-tls-enabled=false
Enables or disables TLS on communication with the private transaction manager. The default is false.
privacy-tls-keystore-file
Syntax
--privacy-tls-keystore-file=<FILE>
Example
--privacy--keystore-file=/home/me/me_node/key
Environment variable
BESU_PRIVACY_TLS_KEYSTORE_FILE=/home/me/me_node/key
Configuration file
privacy-tls-keystore-file="/home/me/me_node/key"
The keystore file (in PKCS #12 format) containing the private key and the certificate presented during authentication.
You must specify privacy-tls-keystore-file
if --privacy-tls-enabled
is true
.
privacy-tls-keystore-password-file
Syntax
--privacy-tls-keystore-password-file=<FILE>
Example
--privacy-tls-keystore-password-file=/home/me/me_node/password
Environment variable
BESU_PRIVACY_TLS_KEYSTORE_PASSWORD_FILE=/home/me/me_node/password
Configuration file
privacy-tls-keystore-password-file="/home/me/me_node/password"
The path to the file containing the password to decrypt the keystore.
privacy-tls-known-enclave-file
Syntax
--privacy-tls-known-enclave-file=<FILE>
Example
--privacy-tls-known-enclave-file=/home/me/me_node/knownEnclave
Environment variable
BESU_PRIVACY_TLS_KNOWN_ENCLAVE_FILE=/home/me/me_node/knownEnclave
Configuration file
privacy-tls-known-enclave-file="/home/me/me_node/knownEnclave"
The path to the file containing the hostnames, ports, and SHA256 certificate fingerprints of the authorized privacy enclave.
privacy-url
Syntax
--privacy-url=<privacyUrl>
Example
--privacy-url=http://127.0.0.1:8888
Environment variable
BESU_PRIVACY_URL=http://127.0.0.1:8888
Configuration file
privacy-url="http://127.0.0.1:8888"
The URL on which the Tessera node is running.