Containerized Web3 and Cloud-Native applications
Overview
Starting besu - run arguments: --version
besu/v22.10.3/linux-x86_64/oracle_openjdk-java-18
2023-02-13 17:43:48.491+00:00 | main | INFO | Besu | jemalloc library not found, memory usage may be reduced by installing it
RUN_ARGS: specify arbitrary application command-line arguments on container startup within the runtime environment.docker run --env RUN_ARGS="--help" <image>
Mount customized application configuration files to locations of your choosing - can be used in tandem with RUN_ARGS to specify where configuration files are loaded from.
docker run --volume ./config/mainnet:/config <image> --env RUN_ARGS=--config-dir=/config
Execute customized scripts and operations within each container on startup. All executables mounted to /docker-entrypoint.d will be ran in lexical sort order according to the C/POSIX locale character collation rules. (example)
docker run --volume ./custom-app-entrypoints:/docker-entrypoint.d <image>
Starting besu - run arguments: --help
Usage:
besu [OPTIONS] [COMMAND]
Description:
This command runs the Besu Ethereum client full node.
Options:
--api-gas-price-blocks=<apiGasPriceBlocks>
Number of blocks to consider for eth_gasPrice
(default: 100)
--api-gas-price-max=<apiGasPriceMax>
Maximum gas price for eth_gasPrice (default:
500000000000)
--api-gas-price-percentile=<apiGasPricePercentile>
Percentile value to measure for eth_gasPrice
(default: 50.0)
--auto-log-bloom-caching-enabled=<autoLogBloomCachingEnabled>
Enable automatic log bloom caching (default: true)
--bonsai-maximum-back-layers-to-load=<LONG>
Limit of back layers that can be loaded with
BONSAI (default: 512).
--color-enabled Force color output to be enabled/disabled
(default: colorized only if printing to console)
--compatibility-eth64-forkid-enabled
Enable the legacy Eth/64 fork id. (default: false)
--config-file=<FILE> TOML config file (default: none)
--data-path=<PATH> The path to Besu data directory (default:
/besu/besu-22.10.3)
--data-storage-format=<dataStorageFormat>
Format to store trie data in. Either FOREST or
BONSAI (default: FOREST).
--ethstats=<nodename:secret@host:port>
Reporting URL of a ethstats server
--ethstats-contact=<ethstatsContact>
Contact address to send to ethstats server
--fast-sync-min-peers=<INTEGER>
Minimum number of peers required before starting
fast sync. Has only effect on PoW networks.
(default: 5)
--genesis-file=<FILE> Genesis file. Setting this option makes --network
option ignored and requires --network-id to be
set.
-h, --help Show this help message and exit.
--host-allowlist=<hostname>[,<hostname>...]... or * or all
Comma separated list of hostnames to allow for RPC
access, or * to accept any host (default:
localhost,127.0.0.1)
--identity=<String> Identification for this node in the Client ID
--key-value-storage=<keyValueStorageName>
Identity for the key-value storage to be used.
-l, --logging=<LOG VERBOSITY LEVEL>
Logging verbosity levels: OFF, ERROR, WARN, INFO,
DEBUG, TRACE, ALL
--min-block-occupancy-ratio=<minBlockOccupancyRatio>
Minimum occupancy ratio for a mined block
(default: 0.8)
--min-gas-price=<minTransactionGasPrice>
Minimum price (in Wei) offered by a transaction
for it to be included in a mined block (default:
0x00000000000000000000000000000000000000000000000
000000000000003e8)
--nat-method=<natMethod>
Specify the NAT circumvention method to be used,
possible values are UPNP, UPNPP2PONLY, DOCKER,
KUBERNETES, AUTO, NONE. NONE disables NAT
functionality. (default: AUTO)
--network=<NETWORK> Synchronize against the indicated network,
possible values are MAINNET, RINKEBY, ROPSTEN,
SEPOLIA, GOERLI, SHANDONG, KILN, DEV, CLASSIC,
KOTTI, MORDOR, ECIP1049_DEV, ASTOR. (default:
MAINNET)
--network-id=<BIG INTEGER>
P2P network identifier. (default: the selected
network chain ID or custom genesis chain ID)
--node-private-key-file=<PATH>
The node's private key file (default: a file named
"key" in the Besu data directory)
--pid-path=<PATH> Path to PID file (optional)
--pruning-block-confirmations=<INTEGER>
Minimum number of confirmations on a block before
marking begins (default: 10)
--pruning-blocks-retained=<INTEGER>
Minimum number of recent blocks for which to keep
entire world state (default: 1024)
--pruning-enabled Enable disk-space saving optimization that removes
old state that is unlikely to be required
(default: false)
--reorg-logging-threshold=<reorgLoggingThreshold>
How deep a chain reorganization must be in order
for it to be logged (default: 6)
--required-block, --required-blocks[=BLOCK=HASH[,BLOCK=HASH...]...]
Block number and hash peers are required to have.
--revert-reason-enabled
Enable passing the revert reason back through
TransactionReceipts (default: false)
--rpc-max-logs-range=<rpcMaxLogsRange>
Specifies the maximum number of blocks to retrieve
logs from via RPC. Must be >=0. 0 specifies no
limit (default: 1000)
--rpc-tx-feecap=<txFeeCap>
Maximum transaction fees (in Wei) accepted for
transaction submitted through RPC (default:
0x00000000000000000000000000000000000000000000000
00de0b6b3a7640000)
--security-module=<NAME>
Identity for the Security Module to be used.
--static-nodes-file=<FILE>
Specifies the static node file containing the
static nodes for this node to connect to
--strict-tx-replay-protection-enabled[=<Boolean>]
Require transactions submitted via JSON-RPC to use
replay protection in accordance with EIP-155
(default: false)
--sync-mode=<MODE> Synchronization mode, possible values are FULL,
FAST, X_SNAP, X_CHECKPOINT (default: FAST if a
--network is supplied and privacy isn't enabled.
FULL otherwise.)
--target-gas-limit=<targetGasLimit>
Sets target gas limit per block. If set, each
block's gas limit will approach this setting
over time if the current gas limit is different.
--tx-pool-limit-by-account-percentage=<DOUBLE>
Maximum portion of the transaction pool which a
single account may occupy with future
transactions (default: 0.001)
-V, --version Print version information and exit.
P2P Discovery Options
--banned-node-id, --banned-node-ids=<NODEID>[,<NODEID>...]...
A list of node IDs to ban from the P2P network.
--bootnodes[=<enode://id@host:port>[,<enode://id@host:port>...]...]
Comma separated enode URLs for P2P discovery
bootstrap. Default is a predefined list.
--discovery-dns-url=<discoveryDnsUrl>
Specifies the URL to use for DNS discovery
--discovery-enabled=<peerDiscoveryEnabled>
Enable P2P discovery (default: true)
--max-peers, --p2p-peer-upper-bound=<INTEGER>
Maximum P2P connections that can be established
(default: 25)
--p2p-enabled=<p2pEnabled>
Enable P2P functionality (default: true)
--p2p-host=<HOST> IP address this node advertises to its peers
(default: 127.0.0.1)
--p2p-interface=<HOST> The network interface address on which this node
listens for P2P communication (default: 0.0.0.0)
--p2p-port=<PORT> Port on which to listen for P2P communication
(default: 30303)
--random-peer-priority-enabled
Allow for incoming connections to be prioritized
randomly. This will prevent (typically small,
stable) networks from forming impenetrable peer
cliques. (default: false)
--remote-connections-limit-enabled
Whether to limit the number of P2P connections
initiated remotely. (default: true)
--remote-connections-max-percentage=<DOUBLE>
The maximum percentage of P2P connections that can
be initiated remotely. Must be between 0 and 100
inclusive. (default: 60)
GraphQL Options
--graphql-http-cors-origins=<graphQLHttpCorsAllowedOrigins>
Comma separated origin domain URLs for CORS
validation (default: none)
--graphql-http-enabled Set to start the GraphQL HTTP service (default:
false)
--graphql-http-host=<HOST>
Host for GraphQL HTTP to listen on (default: null)
--graphql-http-port=<PORT>
Port for GraphQL HTTP to listen on (default: 8547)
Engine JSON-RPC Options
--engine-host-allowlist=<hostname>[,<hostname>...]... or * or all
Comma separated list of hostnames to allow for
ENGINE API access (applies to both HTTP and
websockets), or * to accept any host (default:
localhost,127.0.0.1)
--engine-jwt-disabled Disable authentication for Engine APIs (default:
false)
--engine-jwt-secret=<FILE>
Path to file containing shared secret key for JWT
signature verification
--engine-rpc-enabled enable the engine api, even in the absence of
merge-specific configurations.
--engine-rpc-port, --engine-rpc-http-port=<PORT>
Port to provide consensus client APIS on (default:
8551)
JSON-RPC HTTP Options
--rpc-http-api, --rpc-http-apis=<api name>[ {0,1}, {0,1}<api name>...]...
Comma separated list of APIs to enable on JSON-RPC
HTTP service (default: [ETH, NET, WEB3])
--rpc-http-api-method-no-auth, --rpc-http-api-methods-no-auth=<api name>[
{0,1}, {0,1}<api name>...]...
Comma separated list of API methods to exclude
from RPC authentication services, RPC HTTP
authentication must be enabled
--rpc-http-authentication-credentials-file=<FILE>
Storage file for JSON-RPC HTTP authentication
credentials (default: null)
--rpc-http-authentication-enabled
Require authentication for the JSON-RPC HTTP
service (default: false)
--rpc-http-authentication-jwt-algorithm=<rpcHttpAuthenticationAlgorithm>
Encryption algorithm used for HTTP JWT public key.
Possible values are RS256, RS384, RS512, ES256,
ES384, HS256, ES512 (default: RS256)
--rpc-http-authentication-jwt-public-key-file=<FILE>
JWT public key file for JSON-RPC HTTP
authentication
--rpc-http-cors-origins=<rpcHttpCorsAllowedOrigins>
Comma separated origin domain URLs for CORS
validation (default: none)
--rpc-http-enabled Set to start the JSON-RPC HTTP service (default:
false)
--rpc-http-host=<HOST> Host for JSON-RPC HTTP to listen on (default: null)
--rpc-http-max-active-connections=<rpcHttpMaxConnections>
Maximum number of HTTP connections allowed for
JSON-RPC (default: 80). Once this limit is
reached, incoming connections will be rejected.
--rpc-http-port=<PORT> Port for JSON-RPC HTTP to listen on (default: 8545)
--rpc-http-tls-ca-clients-enabled
Enable to accept clients certificate signed by a
valid CA for client authentication (default:
false)
--rpc-http-tls-cipher-suite,
--rpc-http-tls-cipher-suites=<rpcHttpTlsCipherSuites>[,
<rpcHttpTlsCipherSuites>...]...
Comma separated list of TLS cipher suites to
support
--rpc-http-tls-client-auth-enabled
Enable TLS client authentication for the JSON-RPC
HTTP service (default: false)
--rpc-http-tls-enabled Enable TLS for the JSON-RPC HTTP service (default:
false)
--rpc-http-tls-keystore-file=<FILE>
Keystore (PKCS#12) containing key/certificate for
the JSON-RPC HTTP service. Required if TLS is
enabled.
--rpc-http-tls-keystore-password-file=<FILE>
File containing password to unlock keystore for
the JSON-RPC HTTP service. Required if TLS is
enabled.
--rpc-http-tls-known-clients-file=<FILE>
Path to file containing clients certificate common
name and fingerprint for client authentication
--rpc-http-tls-protocol, --rpc-http-tls-protocols=<rpcHttpTlsProtocols>[,
<rpcHttpTlsProtocols>...]...
Comma separated list of TLS protocols to support
(default: [TLSv1.3, TLSv1.2])
JSON-RPC Websocket Options
--rpc-ws-api, --rpc-ws-apis=<api name>[ {0,1}, {0,1}<api name>...]...
Comma separated list of APIs to enable on JSON-RPC
WebSocket service (default: [ETH, NET, WEB3])
--rpc-ws-api-method-no-auth, --rpc-ws-api-methods-no-auth=<api name>[
{0,1}, {0,1}<api name>...]...
Comma separated list of RPC methods to exclude
from RPC authentication services, RPC WebSocket
authentication must be enabled
--rpc-ws-authentication-credentials-file=<FILE>
Storage file for JSON-RPC WebSocket authentication
credentials (default: null)
--rpc-ws-authentication-enabled
Require authentication for the JSON-RPC WebSocket
service (default: false)
--rpc-ws-authentication-jwt-algorithm=<rpcWebsocketsAuthenticationAlgorith
m>
Encryption algorithm used for Websockets JWT
public key. Possible values are RS256, RS384,
RS512, ES256, ES384, HS256, ES512 (default:
RS256)
--rpc-ws-authentication-jwt-public-key-file=<FILE>
JWT public key file for JSON-RPC WebSocket
authentication
--rpc-ws-enabled Set to start the JSON-RPC WebSocket service
(default: false)
--rpc-ws-host=<HOST> Host for JSON-RPC WebSocket service to listen on
(default: null)
--rpc-ws-max-active-connections=<rpcWsMaxConnections>
Maximum number of WebSocket connections allowed
for JSON-RPC (default: 80). Once this limit is
reached, incoming connections will be rejected.
--rpc-ws-max-frame-size=<rpcWsMaxFrameSize>
Maximum size in bytes for JSON-RPC WebSocket
frames (default: 1048576). If this limit is
exceeded, the websocket will be disconnected.
--rpc-ws-port=<PORT> Port for JSON-RPC WebSocket service to listen on
(default: 8546)
Privacy Options
--privacy-enable-database-migration
Enable private database metadata migration
(default: false)
--privacy-enabled Enable private transactions (default: false)
--privacy-flexible-groups-enabled
Enable flexible privacy groups (default: false)
--privacy-marker-transaction-signing-key-file=<privateMarkerTransactionSig
ningKeyPath>
The name of a file containing the private key used
to sign privacy marker transactions. If unset,
each will be signed with a random key.
--privacy-multi-tenancy-enabled
Enable multi-tenant private transactions (default:
false)
--privacy-public-key-file=<privacyPublicKeyFile>
The enclave's public key file
--privacy-tls-enabled Enable TLS for connecting to privacy enclave
(default: false)
--privacy-tls-keystore-file=<FILE>
Path to a PKCS#12 formatted keystore; used to
enable TLS on inbound connections.
--privacy-tls-keystore-password-file=<FILE>
Path to a file containing the password used to
decrypt the keystore.
--privacy-tls-known-enclave-file=<FILE>
Path to a file containing the fingerprints of the
authorized privacy enclave.
--privacy-url=<privacyUrl>
The URL on which the enclave is running
Metrics Options
--metrics-category, --metrics-categories=<category name>[,<category
name>...]...
Comma separated list of categories to track
metrics for (default: [BLOCKCHAIN, ETHEREUM,
EXECUTORS, NETWORK, PEERS, PERMISSIONING,
PRUNER, RPC, SYNCHRONIZER, TRANSACTION_POOL,
STRATUM, JVM, PROCESS])
--metrics-enabled Set to start the metrics exporter (default: false)
--metrics-host=<HOST> Host for the metrics exporter to listen on
(default: null)
--metrics-port=<PORT> Port for the metrics exporter to listen on
(default: 9545)
--metrics-protocol=<metricsProtocol>
Metrics protocol, one of PROMETHEUS, OPENTELEMETRY
or NONE. (default: PROMETHEUS)
--metrics-push-enabled Enable the metrics push gateway integration
(default: false)
--metrics-push-host=<HOST>
Host of the Prometheus Push Gateway for push mode
(default: null)
--metrics-push-interval=<INTEGER>
Interval in seconds to push metrics when in push
mode (default: 15)
--metrics-push-port=<PORT>
Port of the Prometheus Push Gateway for push mode
(default: 9001)
--metrics-push-prometheus-job=<metricsPrometheusJob>
Job name to use when in push mode (default:
besu-client)
Miner Options
--miner-coinbase=<coinbase>
Account to which mining rewards are paid. You must
specify a valid coinbase if mining is enabled
using --miner-enabled option
--miner-enabled Set if node will perform mining (default: false)
--miner-extra-data=<extraData>
A hex string representing the (32) bytes to be
included in the extra data field of a mined
block (default: 0x)
--miner-stratum-enabled
Set if node will perform Stratum mining (default:
false)
--miner-stratum-host=<stratumNetworkInterface>
Host for Stratum network mining service (default:
0.0.0.0)
--miner-stratum-port=<stratumPort>
Stratum port binding (default: 8008)
Permissions Options
--permissions-accounts-config-file=<accountPermissionsConfigFile>
Account permissioning config TOML file (default: a
file named "permissions_config.toml" in the Besu
data folder)
--permissions-accounts-config-file-enabled
Enable account level permissions (default: false)
--permissions-accounts-contract-address=<permissionsAccountsContractAddres
s>
Address of the account permissioning smart contract
--permissions-accounts-contract-enabled
Enable account level permissions via smart
contract (default: false)
--permissions-nodes-config-file=<nodePermissionsConfigFile>
Node permissioning config TOML file (default: a
file named "permissions_config.toml" in the Besu
data folder)
--permissions-nodes-config-file-enabled
Enable node level permissions (default: false)
--permissions-nodes-contract-address=<permissionsNodesContractAddress>
Address of the node permissioning smart contract
--permissions-nodes-contract-enabled
Enable node level permissions via smart contract
Content type
Image
Digest
sha256:685185f56…
Size
652.7 MB
Last updated
over 3 years ago
docker pull 0labs/besu:23.1.2