Sign inSign up

0labs/avalanchego

By 0labs

Updated over 3 years ago

Go implementation of an Avalanche node

Image
0

1.9K

0labs/avalanchego repository overview

O1 Containers Collection - avalanchego

Containerized Web3 and Cloud-Native applications

Overview

Version
Starting avalanchego - run arguments: --version
avalanche/1.9.8 [database=v1.4.5, rpcchainvm=22, commit=1be25f1c37a148e291f92dc28d9b7541532a817c]
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 avalanchego - run arguments: --help
Usage of avalanchego:
      --add-primary-network-delegator-fee uint                       Transaction fee, in nAVAX, for transactions that add new primary network delegators
      --add-primary-network-validator-fee uint                       Transaction fee, in nAVAX, for transactions that add new primary network validators
      --add-subnet-delegator-fee uint                                Transaction fee, in nAVAX, for transactions that add new subnet delegators (default 1000000)
      --add-subnet-validator-fee uint                                Transaction fee, in nAVAX, for transactions that add new subnet validators (default 1000000)
      --api-admin-enabled                                            If true, this node exposes the Admin API
      --api-auth-password string                                     Specifies password for API authorization tokens
      --api-auth-password-file string                                Password file used to initially create/validate API authorization tokens. Ignored if api-auth-password is specified. Leading and trailing whitespace is removed from the password. Can be changed via API call
      --api-auth-required                                            Require authorization token to call HTTP APIs
      --api-health-enabled                                           If true, this node exposes the Health API (default true)
      --api-info-enabled                                             If true, this node exposes the Info API (default true)
      --api-ipcs-enabled                                             If true, IPCs can be opened
      --api-keystore-enabled                                         If true, this node exposes the Keystore API
      --api-metrics-enabled                                          If true, this node exposes the Metrics API (default true)
      --benchlist-duration duration                                  Max amount of time a peer is benchlisted after surpassing the threshold (default 15m0s)
      --benchlist-fail-threshold int                                 Number of consecutive failed queries before benchlisting a node (default 10)
      --benchlist-min-failing-duration duration                      Minimum amount of time messages to a peer must be failing before the peer is benched (default 2m30s)
      --bootstrap-ancestors-max-containers-received uint             This node reads at most this many containers from an incoming Ancestors message (default 2000)
      --bootstrap-ancestors-max-containers-sent uint                 Max number of containers in an Ancestors message sent by this node (default 2000)
      --bootstrap-beacon-connection-timeout duration                 Timeout before emitting a warn log when connecting to bootstrapping beacons (default 1m0s)
      --bootstrap-ids string                                         Comma separated list of bootstrap peer ids to connect to. Example: NodeID-JR4dVmy6ffUGAKCBDkyCbeZbyHQBeDsET,NodeID-8CrVPQZ4VSqgL8zTdvL14G8HqAfrBr4z
      --bootstrap-ips string                                         Comma separated list of bootstrap peer ips to connect to. Example: 127.0.0.1:9630,127.0.0.1:9631
      --bootstrap-max-time-get-ancestors duration                    Max Time to spend fetching a container and its ancestors when responding to a GetAncestors (default 50ms)
      --bootstrap-retry-enabled                                      Specifies whether bootstrap should be retried (default true)
      --bootstrap-retry-warn-frequency int                           Specifies how many times bootstrap should be retried before warning the operator (default 50)
      --chain-aliases-file string                                    Specifies a JSON file that maps blockchainIDs with custom aliases. Ignored if chain-config-content is specified (default "$AVALANCHEGO_DATA_DIR/configs/chains/aliases.json")
      --chain-aliases-file-content string                            Specifies base64 encoded map from blockchainID to custom aliases
      --chain-config-content string                                  Specifies base64 encoded chains configurations
      --chain-config-dir string                                      Chain specific configurations parent directory. Ignored if chain-config-content is specified (default "$AVALANCHEGO_DATA_DIR/configs/chains")
      --chain-data-dir string                                        Chain specific data directory (default "$AVALANCHEGO_DATA_DIR/chainData")
      --config-file string                                           Specifies a config file. Ignored if config-file-content is specified
      --config-file-content string                                   Specifies base64 encoded config content
      --config-file-content-type string                              Specifies the format of the base64 encoded config content. Available values: 'json', 'yaml', 'toml' (default "json")
      --consensus-accepted-frontier-gossip-non-validator-size uint   Number of non-validators to gossip to when gossiping accepted frontier
      --consensus-accepted-frontier-gossip-peer-size uint            Number of peers to gossip to when gossiping accepted frontier (default 15)
      --consensus-accepted-frontier-gossip-validator-size uint       Number of validators to gossip to when gossiping accepted frontier
      --consensus-app-gossip-non-validator-size uint                 Number of non-validators to gossip an AppGossip message to
      --consensus-app-gossip-peer-size uint                          Number of peers (which may be validators or non-validators) to gossip an AppGossip message to
      --consensus-app-gossip-validator-size uint                     Number of validators to gossip an AppGossip message to (default 10)
      --consensus-gossip-frequency duration                          Frequency of gossiping accepted frontiers (default 10s)
      --consensus-on-accept-gossip-non-validator-size uint           Number of non-validators to gossip to each accepted container to
      --consensus-on-accept-gossip-peer-size uint                    Number of peers to gossip to each accepted container to (default 10)
      --consensus-on-accept-gossip-validator-size uint               Number of validators to gossip to each accepted container to
      --consensus-shutdown-timeout duration                          Timeout before killing an unresponsive chain (default 30s)
      --create-asset-tx-fee uint                                     Transaction fee, in nAVAX, for transactions that create new assets (default 1000000)
      --create-blockchain-tx-fee uint                                Transaction fee, in nAVAX, for transactions that create new blockchains (default 100000000)
      --create-subnet-tx-fee uint                                    Transaction fee, in nAVAX, for transactions that create new subnets (default 100000000)
      --data-dir string                                              Sets the base data directory where default sub-directories will be placed unless otherwise specified. (default "$HOME/.avalanchego")
      --db-config-file string                                        Path to database config file. Ignored if db-config-file-content is specified
      --db-config-file-content string                                Specifies base64 encoded database config content
      --db-dir string                                                Path to database directory (default "$AVALANCHEGO_DATA_DIR/db")
      --db-type string                                               Database type to use. Should be one of {leveldb, memdb} (default "leveldb")
      --fd-limit uint                                                Attempts to raise the process file descriptor limit to at least this value and error if the value is above the system max (default 32768)
      --genesis string                                               Specifies a genesis config file (ignored when running standard networks or if genesis-content is specified)
      --genesis-content string                                       Specifies base64 encoded genesis content
      --health-check-averager-halflife duration                      Halflife of averager when calculating a running average in a health check (default 10s)
      --health-check-frequency duration                              Time between health checks (default 30s)
      --http-allowed-origins string                                  Origins to allow on the HTTP port. Defaults to * which allows all origins. Example: https://*.avax.network https://*.avax-test.network (default "*")
      --http-host string                                             Address of the HTTP server (default "127.0.0.1")
      --http-port uint                                               Port of the HTTP server (default 9650)
      --http-shutdown-timeout duration                               Maximum duration to wait for existing connections to complete during node shutdown (default 10s)
      --http-shutdown-wait duration                                  Duration to wait after receiving SIGTERM or SIGINT before initiating shutdown. The /health endpoint will return unhealthy during this duration (default 0s)
      --http-tls-cert-file string                                    TLS certificate file for the HTTPs server. Ignored if http-tls-cert-file-content is specified
      --http-tls-cert-file-content string                            Specifies base64 encoded TLS certificate for the HTTPs server
      --http-tls-enabled                                             Upgrade the HTTP server to HTTPs
      --http-tls-key-file string                                     TLS private key file for the HTTPs server. Ignored if http-tls-key-file-content is specified
      --http-tls-key-file-content string                             Specifies base64 encoded TLS private key for the HTTPs server
      --inbound-connection-throttling-cooldown duration              Upgrade an inbound connection from a given IP at most once per this duration. If 0, don't rate-limit inbound connection upgrades (default 10s)
      --inbound-connection-throttling-max-conns-per-sec float        Max number of inbound connections to accept (from all peers) per second (default 256)
      --index-allow-incomplete                                       If true, allow running the node in such a way that could cause an index to miss transactions. Ignored if index is disabled
      --index-enabled                                                If true, index all accepted containers and transactions and expose them via an API
      --ipcs-chain-ids string                                        Comma separated list of chain ids to add to the IPC engine. Example: 11111111111111111111111111111111LpoYY,4R5p2RXDGLqaifZE4hHWH9owe34pfoBULn1DrQTWivjg8o4aH
      --ipcs-path string                                             The directory (Unix) or named pipe name prefix (Windows) for IPC sockets
      --log-dir string                                               Logging directory for Avalanche (default "$AVALANCHEGO_DATA_DIR/logs")
      --log-disable-display-plugin-logs                              Disables displaying plugin logs in stdout.
      --log-display-level string                                     The log display level. If left blank, will inherit the value of log-level. Otherwise, should be one of {verbo, debug, trace, info, warn, error, fatal, off}
      --log-format string                                            The structure of log format. Defaults to 'auto' which formats terminal-like logs, when the output is a terminal. Otherwise, should be one of {auto, plain, colors, json} (default "auto")
      --log-level string                                             The log level. Should be one of {verbo, debug, trace, info, warn, error, fatal, off} (default "info")
      --log-rotater-compress-enabled                                 Enables the compression of rotated log files through gzip.
      --log-rotater-max-age uint                                     The maximum number of days to retain old log files based on the timestamp encoded in their filename. 0 means retain all old log files.
      --log-rotater-max-files uint                                   The maximum number of old log files to retain. 0 means retain all old log files. (default 7)
      --log-rotater-max-size uint                                    The maximum file size in megabytes of the log file before it gets rotated. (default 8)
      --max-stake-duration duration                                  Maximum staking duration (default 8760h0m0s)
      --max-validator-stake uint                                     Maximum stake, in nAVAX, that can be placed on a validator on the primary network (default 3000000000000000)
      --meter-vms-enabled                                            Enable Meter VMs to track VM performance with more granularity (default true)
      --min-delegation-fee uint                                      Minimum delegation fee, in the range [0, 1000000], that can be charged for delegation on the primary network (default 20000)
      --min-delegator-stake uint                                     Minimum stake, in nAVAX, that can be delegated on the primary network (default 25000000000)
      --min-stake-duration duration                                  Minimum staking duration (default 24h0m0s)
      --min-validator-stake uint                                     Minimum stake, in nAVAX, required to validate the primary network (default 2000000000000)
      --network-allow-private-ips                                    Allows the node to initiate outbound connection attempts to peers with private IPs (default true)
      --network-compression-enabled                                  If true, compress certain outbound messages. This node will be able to parse compressed inbound messages regardless of this flag's value (default true)
      --network-health-max-outstanding-request-duration duration     Node reports unhealthy if there has been a request outstanding for this duration (default 5m0s)
      --network-health-max-portion-send-queue-full float             Network layer returns unhealthy if more than this portion of the pending send queue is full (default 0.9)
      --network-health-max-send-fail-rate float                      Network layer reports unhealthy if more than this portion of attempted message sends fail (default 0.9)
      --network-health-max-time-since-msg-received duration          Network layer returns unhealthy if haven't received a message for at least this much time (default 1m0s)
      --network-health-max-time-since-msg-sent duration              Network layer returns unhealthy if haven't sent a message for at least this much time (default 1m0s)
      --network-health-min-conn-peers uint                           Network layer returns unhealthy if connected to less than this many peers (default 1)
      --network-id string                                            Network ID this node will connect to (default "mainnet")
      --network-initial-reconnect-delay duration                     Initial delay duration must be waited before attempting to reconnect a peer (default 1s)
      --network-initial-timeout duration                             Initial timeout value of the adaptive timeout manager (default 5s)
      --network-max-clock-difference duration                        Max allowed clock difference value between this node and peers (default 1m0s)
      --network-max-reconnect-delay duration                         Maximum delay duration must be waited before attempting to reconnect a peer (default 1h0m0s)
      --network-maximum-inbound-timeout duration                     Maximum timeout value of an inbound message. Defines duration within which an incoming message must be fulfilled. Incoming messages containing deadline higher than this value will be overridden with this value. (default 10s)
      --network-maximum-timeout duration                             Maximum timeout value of the adaptive timeout manager (default 10s)
      --network-minimum-timeout duration                             Minimum timeout value of the adaptive timeout manager (default 2s)
      --network-peer-list-gossip-frequency duration                  Gossip [network-peer-list-num-validator-ips] validator IPs to [network-peer-list-validator-gossip-size] validators, [network-peer-list-non-validator-gossip-size] non-validators, and [network-peer-list-peers-gossip-size] validating or non-validating peers every [network-peer-list-gossip-frequency] (default 1m0s)
      --network-peer-list-non-validator-gossip-size uint             Gossip [network-peer-list-num-validator-ips] validator IPs to [network-peer-list-validator-gossip-size] validators, [network-peer-list-non-validator-gossip-size] non-validators, and [network-peer-list-peers-gossip-size] validating or non-validating peers every [network-peer-list-gossip-frequency]
      --network-peer-list-num-validator-ips uint                     Gossip [network-peer-list-num-validator-ips] validator IPs to [network-peer-list-validator-gossip-size] validators, [network-peer-list-non-validator-gossip-size] non-validators, and [network-peer-list-peers-gossip-size] validating or non-validating peers every [network-peer-list-gossip-frequency] (default 15)
      --network-peer-list-peers-gossip-size uint                     Gossip [network-peer-list-num-validator-ips] validator IPs to [network-peer-list-validator-gossip-size] validators, [network-peer-list-non-validator-gossip-size] non-validators, and [network-peer-list-peers-gossip-size] validating or non-validating peers every [network-peer-list-gossip-frequency] (default 10)
      --network-peer-list-validator-gossip-size uint                 Gossip [network-peer-list-num-validator-ips] validator IPs to [network-peer-list-validator-gossip-size] validators, [network-peer-list-non-validator-gossip-size] non-validators, and [network-peer-list-peers-gossip-size] validating or non-validating peers every [network-peer-list-gossip-frequency] (default 20)
      --network-peer-read-buffer-size uint                           Size, in bytes, of the buffer that we read peer messages into (there is one buffer per peer) (default 8192)
      --network-peer-write-buffer-size uint                          Size, in bytes, of the buffer that we write peer messages into (there is one buffer per peer) (default 8192)
      --network-ping-frequency duration                              Frequency of pinging other peers (default 22.5s)
      --network-ping-timeout duration                                Timeout value for Ping-Pong with a peer (default 30s)
      --network-read-handshake-timeout duration                      Timeout value for reading handshake messages (default 15s)
      --network-require-validator-to-connect                         If true, this node will only maintain a connection with another node if this node is a validator, the other node is a validator, or the other node is a beacon
      --network-tcp-proxy-enabled                                    Require all P2P connections to be initiated with a TCP proxy header
      --network-tcp-proxy-read-timeout duration                      Maximum duration to wait for a TCP proxy header (default 3s)
      --network-timeout-coefficient float                            Multiplied by average network response time to get the network timeout. Must be >= 1 (default 2)
      --network-timeout-halflife duration                            Halflife of average network response time. Higher value --> network timeout is less volatile. Can't be 0 (default 5m0s)
      --network-tls-key-log-file-unsafe string                       TLS key log file path. Should only be specified for debugging
      --outbound-connection-throttling-rps uint                      Make at most this number of outgoing peer connection attempts per second (default 50)
      --outbound-connection-timeout duration                         Timeout when dialing a peer (default 30s)
      --plugin-dir string                                            Path to the plugin directory (default "$AVALANCHEGO_DATA_DIR/plugins")
      --plugin-mode-enabled                                          Whether the app should run as a plugin
      --profile-continuous-enabled                                   Whether the app should continuously produce performance profiles
      --profile-continuous-freq duration                             How frequently to rotate performance profiles (default 15m0s)
      --profile-continuous-max-files int                             Maximum number of historical profiles to keep (default 5)
      --profile-dir string                                           Path to the profile directory (default "$AVALANCHEGO_DATA_DIR/profiles")
      --proposervm-use-current-height                                Have the ProposerVM always report the last accepted P-chain block height
      --public-ip string                                             Public IP of this node for P2P communication. If empty, try to discover with NAT. Ignored if dynamic-public-ip is non-empty
      --public-ip-resolution-frequency duration                      Frequency at which this node resolves/updates its public IP and renew NAT mappings, if applicable (default 5m0s)
      --public-ip-resolution-service string                          Only acceptable values are 'ifconfigco', 'opendns' or 'ifconfigme'. When provided, the node will use that service to periodically resolve/update its public IP
      --router-health-max-drop-rate float                            Node reports unhealthy if the router drops more than this portion of messages (default 1)
      --router-health-max-outstanding-requests uint                  Node reports unhealthy if there are more than this many outstanding consensus requests (Get, PullQuery, etc.) over all chains (default 1024)
      --snow-avalanche-batch-size int                                Number of operations to batch in each new vertex (default 30)
      --snow-avalanche-num-parents int                               Number of vertexes for reference from each new vertex (default 5)
      --snow-concurrent-repolls int                                  Minimum number of concurrent polls for finalizing consensus (default 4)
      --snow-max-processing int                                      Maximum number of processing items to be considered healthy (default 1024)
      --snow-max-time-processing duration                            Maximum amount of time an item should be processing and still be healthy (default 2m0s)
      --snow-mixed-query-num-push-non-vdr uint                       If this node is not a validator, when a container is inserted into consensus, send a Push Query to snow-mixed-query-num-push-non-vdr validators and a Pull Query to the others. Must be <= k.
      --snow-mixed-query-num-push-vdr uint                           If this node is a validator, when a container is inserted into consensus, send a Push Query to snow-mixed-query-num-push-vdr validators and a Pull Query to the others. Must be <= k. (default 10)
      --snow-optimal-processing int                                  Optimal number of processing containers in consensus (default 50)
      --snow-quorum-size int                                         Alpha value to use for required number positive results

Tag summary

Content type

Image

Digest

sha256:4002cdfd1

Size

94.4 MB

Last updated

over 3 years ago

docker pull 0labs/avalanchego:1.9.16