Sign inSign up

0labs/besu

By 0labs

Updated over 3 years ago

Image
0

709

0labs/besu repository overview

O1 Containers Collection - besu

Containerized Web3 and Cloud-Native applications

Overview

Version
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
Options
run args
  • RUN_ARGS: specify arbitrary application command-line arguments on container startup within the runtime environment.
docker run --env RUN_ARGS="--help" <image>
dynamic application configuration mounts

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
custom entrypoints

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>
CLI args
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
             

Tag summary

Content type

Image

Digest

sha256:685185f56

Size

652.7 MB

Last updated

over 3 years ago

docker pull 0labs/besu:23.1.2