github.com/MetalBlockchain/metalgo@v1.11.9/config/config.md (about) 1 --- 2 tags: [Nodes] 3 description: This document lists all available configuration and flags for AvalancheGo. 4 sidebar_label: AvalancheGo Configs + Flags 5 pagination_label: AvalancheGo Configs and Flags 6 sidebar_position: 0 7 --- 8 9 # AvalancheGo Configs and Flags 10 11 <!-- markdownlint-disable MD001 --> 12 13 You can specify the configuration of a node with the arguments below. 14 15 ## Data Directory 16 17 #### `--data-dir` (string) 18 19 Sets the base data directory where default sub-directories will be placed unless otherwise specified. 20 Defaults to `$HOME/.avalanchego`. 21 22 ## Config File 23 24 #### `--config-file` (string) 25 26 Path to a JSON file that specifies this node's configuration. Command line 27 arguments will override arguments set in the config file. This flag is ignored 28 if `--config-file-content` is specified. 29 30 Example JSON config file: 31 32 ```json 33 { 34 "log-level": "debug" 35 } 36 ``` 37 38 :::tip 39 [Install Script](/nodes/run/with-installer/installing-avalanchego.md) creates the 40 node config file at `~/.avalanchego/configs/node.json`. No default file is 41 created if [AvalancheGo is built from source](/nodes/run/node-manually.md), you 42 would need to create it manually if needed. 43 ::: 44 45 #### `--config-file-content` (string) 46 47 As an alternative to `--config-file`, it allows specifying base64 encoded config 48 content. 49 50 #### `--config-file-content-type` (string) 51 52 Specifies the format of the base64 encoded config content. JSON, TOML, YAML are 53 among currently supported file format (see 54 [here](https://github.com/spf13/viper#reading-config-files) for full list). Defaults to `JSON`. 55 56 ## Avalanche Community Proposals 57 58 #### `--acp-support` (array of integers) 59 60 The `--acp-support` flag allows an AvalancheGo node to indicate support for a 61 set of [Avalanche Community Proposals](https://github.com/avalanche-foundation/ACPs). 62 63 #### `--acp-object` (array of integers) 64 65 The `--acp-object` flag allows an AvalancheGo node to indicate objection for a 66 set of [Avalanche Community Proposals](https://github.com/avalanche-foundation/ACPs). 67 68 ## APIs 69 70 #### `--api-admin-enabled` (boolean) 71 72 If set to `true`, this node will expose the Admin API. Defaults to `false`. 73 See [here](/reference/avalanchego/admin-api.md) for more information. 74 75 #### `--api-health-enabled` (boolean) 76 77 If set to `false`, this node will not expose the Health API. Defaults to `true`. See 78 [here](/reference/avalanchego/health-api.md) for more information. 79 80 #### `--index-enabled` (boolean) 81 82 If set to `true`, this node will enable the indexer and the Index API will be 83 available. Defaults to `false`. See 84 [here](/reference/avalanchego/index-api.md) for more information. 85 86 #### `--api-info-enabled` (boolean) 87 88 If set to `false`, this node will not expose the Info API. Defaults to `true`. See 89 [here](/reference/avalanchego/info-api.md) for more information. 90 91 #### `--api-keystore-enabled` (boolean) 92 93 If set to `true`, this node will expose the Keystore API. Defaults to `false`. 94 See [here](/reference/avalanchego/keystore-api.md) for more information. 95 96 #### `--api-metrics-enabled` (boolean) 97 98 If set to `false`, this node will not expose the Metrics API. Defaults to 99 `true`. See [here](/reference/avalanchego/metrics-api.md) for more information. 100 101 #### `--http-shutdown-wait` (duration) 102 103 Duration to wait after receiving SIGTERM or SIGINT before initiating shutdown. 104 The `/health` endpoint will return unhealthy during this duration (if the Health 105 API is enabled.) Defaults to `0s`. 106 107 #### `--http-shutdown-timeout` (duration) 108 109 Maximum duration to wait for existing connections to complete during node 110 shutdown. Defaults to `10s`. 111 112 ## Bootstrapping 113 114 #### `--bootstrap-beacon-connection-timeout` (duration) 115 116 Timeout when attempting to connect to bootstrapping beacons. Defaults to `1m`. 117 118 #### `--bootstrap-ids` (string) 119 120 Bootstrap IDs is a comma-separated list of validator IDs. These IDs will be used 121 to authenticate bootstrapping peers. An example setting of this field would be 122 `--bootstrap-ids="NodeID-7Xhw2mDxuDS44j42TCB6U5579esbSt3Lg,NodeID-MFrZFVCXPv5iCn6M9K6XduxGTYp891xXZ"`. 123 The number of given IDs here must be same with number of given 124 `--bootstrap-ips`. The default value depends on the network ID. 125 126 #### `--bootstrap-ips` (string) 127 128 Bootstrap IPs is a comma-separated list of IP:port pairs. These IP Addresses 129 will be used to bootstrap the current Avalanche state. An example setting of 130 this field would be `--bootstrap-ips="127.0.0.1:12345,1.2.3.4:5678"`. The number 131 of given IPs here must be same with number of given `--bootstrap-ids`. The 132 default value depends on the network ID. 133 134 #### `--bootstrap-retry-enabled` (boolean) 135 136 If set to `false`, will not retry bootstrapping if it fails. Defaults to `true`. 137 138 #### `--bootstrap-retry-warn-frequency` (uint) 139 140 Specifies how many times bootstrap should be retried before warning the operator. Defaults to `50`. 141 142 #### `--bootstrap-ancestors-max-containers-sent` (uint) 143 144 Max number of containers in an `Ancestors` message sent by this node. Defaults to `2000`. 145 146 #### `--bootstrap-ancestors-max-containers-received` (unit) 147 148 This node reads at most this many containers from an incoming `Ancestors` message. Defaults to `2000`. 149 150 #### `--bootstrap-max-time-get-ancestors` (duration) 151 152 Max Time to spend fetching a container and its ancestors when responding to a GetAncestors message. 153 Defaults to `50ms`. 154 155 ## State Syncing 156 157 #### `--state-sync-ids` (string) 158 159 State sync IDs is a comma-separated list of validator IDs. The specified 160 validators will be contacted to get and authenticate the starting point (state 161 summary) for state sync. An example setting of this field would be 162 `--state-sync-ids="NodeID-7Xhw2mDxuDS44j42TCB6U5579esbSt3Lg,NodeID-MFrZFVCXPv5iCn6M9K6XduxGTYp891xXZ"`. 163 The number of given IDs here must be same with number of given 164 `--state-sync-ips`. The default value is empty, which results in all validators 165 being sampled. 166 167 #### `--state-sync-ips` (string) 168 169 State sync IPs is a comma-separated list of IP:port pairs. These IP Addresses 170 will be contacted to get and authenticate the starting point (state summary) for 171 state sync. An example setting of this field would be 172 `--state-sync-ips="127.0.0.1:12345,1.2.3.4:5678"`. The number of given IPs here 173 must be the same with the number of given `--state-sync-ids`. 174 175 ## Partial Sync Primary Network 176 177 #### `--partial-sync-primary-network` (string) 178 179 Partial sync enables non-validators to optionally sync only the P-chain on the primary network. 180 181 ## Chain Configs 182 183 Some blockchains allow the node operator to provide custom configurations for 184 individual blockchains. These custom configurations are broken down into two 185 categories: network upgrades and optional chain configurations. AvalancheGo 186 reads in these configurations from the chain configuration directory and passes 187 them into the VM on initialization. 188 189 #### `--chain-config-dir` (string) 190 191 Specifies the directory that contains chain configs, as described 192 [here](/nodes/configure/chain-configs/chain-config-flags.md). Defaults to `$HOME/.avalanchego/configs/chains`. 193 If this flag is not provided and the default directory does not exist, 194 AvalancheGo will not exit since custom configs are optional. However, if the 195 flag is set, the specified folder must exist, or AvalancheGo will exit with an 196 error. This flag is ignored if `--chain-config-content` is specified. 197 198 :::note 199 Please replace `chain-config-dir` and `blockchainID` with their actual values. 200 ::: 201 202 Network upgrades are passed in from the location: 203 `chain-config-dir`/`blockchainID`/`upgrade.*`. 204 Upgrade files are typically json encoded and therefore named `upgrade.json`. 205 However, the format of the file is VM dependent. 206 After a blockchain has activated a network upgrade, the same upgrade 207 configuration must always be passed in to ensure that the network upgrades 208 activate at the correct time. 209 210 The chain configs are passed in from the location 211 `chain-config-dir`/`blockchainID`/`config.*`. 212 Upgrade files are typically json encoded and therefore named `upgrade.json`. 213 However, the format of the file is VM dependent. 214 This configuration is used by the VM to handle optional configuration flags such 215 as enabling/disabling APIs, updating log level, etc. 216 The chain configuration is intended to provide optional configuration parameters 217 and the VM will use default values if nothing is passed in. 218 219 Full reference for all configuration options for some standard chains can be 220 found in a separate [chain config flags](/nodes/configure/chain-configs/chain-config-flags.md) document. 221 222 Full reference for `subnet-evm` upgrade configuration can be found in a separate 223 [Customize a Subnet](/build/subnet/upgrade/customize-a-subnet.md) document. 224 225 #### `--chain-config-content` (string) 226 227 As an alternative to `--chain-config-dir`, chains custom configurations can be 228 loaded altogether from command line via `--chain-config-content` flag. Content 229 must be base64 encoded. 230 231 Example: 232 233 ```bash 234 cchainconfig="$(echo -n '{"log-level":"trace"}' | base64)" 235 chainconfig="$(echo -n "{\"C\":{\"Config\":\"${cchainconfig}\",\"Upgrade\":null}}" | base64)" 236 avalanchego --chain-config-content "${chainconfig}" 237 ``` 238 239 #### `--chain-aliases-file` (string) 240 241 Path to JSON file that defines aliases for Blockchain IDs. Defaults to 242 `~/.avalanchego/configs/chains/aliases.json`. This flag is ignored if 243 `--chain-aliases-file-content` is specified. Example content: 244 245 ```json 246 { 247 "q2aTwKuyzgs8pynF7UXBZCU7DejbZbZ6EUyHr3JQzYgwNPUPi": ["DFK"] 248 } 249 ``` 250 251 The above example aliases the Blockchain whose ID is 252 `"q2aTwKuyzgs8pynF7UXBZCU7DejbZbZ6EUyHr3JQzYgwNPUPi"` to `"DFK"`. Chain 253 aliases are added after adding primary network aliases and before any changes to 254 the aliases via the admin API. This means that the first alias included for a 255 Blockchain on a Subnet will be treated as the `"Primary Alias"` instead of the 256 full blockchainID. The Primary Alias is used in all metrics and logs. 257 258 #### `--chain-aliases-file-content` (string) 259 260 As an alternative to `--chain-aliases-file`, it allows specifying base64 encoded 261 aliases for Blockchains. 262 263 #### `--chain-data-dir` (string) 264 265 Chain specific data directory. Defaults to `$HOME/.avalanchego/chainData`. 266 267 ## Database 268 269 ##### `--db-dir` (string, file path) 270 271 Specifies the directory to which the database is persisted. Defaults to `"$HOME/.avalanchego/db"`. 272 273 ##### `--db-type` (string) 274 275 Specifies the type of database to use. Must be one of `leveldb`, `memdb`, or `pebbledb`. 276 `memdb` is an in-memory, non-persisted database. 277 278 :::note 279 280 `memdb` stores everything in memory. So if you have a 900 GiB LevelDB instance, then using `memdb` 281 you’d need 900 GiB of RAM. 282 `memdb` is useful for fast one-off testing, not for running an actual node (on Fuji or Mainnet). 283 Also note that `memdb` doesn’t persist after restart. So any time you restart the node it would 284 start syncing from scratch. 285 286 ::: 287 288 ### Database Config 289 290 #### `--db-config-file` (string) 291 292 Path to the database config file. Ignored if `--config-file-content` is specified. 293 294 #### `--db-config-file-content` (string) 295 296 As an alternative to `--db-config-file`, it allows specifying base64 encoded database config content. 297 298 #### LevelDB Config 299 300 A LevelDB config file must be JSON and may have these keys. 301 Any keys not given will receive the default value. 302 303 ```go 304 { 305 // BlockCacheCapacity defines the capacity of the 'sorted table' block caching. 306 // Use -1 for zero. 307 // 308 // The default value is 12MiB. 309 "blockCacheCapacity": int 310 311 // BlockSize is the minimum uncompressed size in bytes of each 'sorted table' 312 // block. 313 // 314 // The default value is 4KiB. 315 "blockSize": int 316 317 // CompactionExpandLimitFactor limits compaction size after expanded. 318 // This will be multiplied by table size limit at compaction target level. 319 // 320 // The default value is 25. 321 "compactionExpandLimitFactor": int 322 323 // CompactionGPOverlapsFactor limits overlaps in grandparent (Level + 2) 324 // that a single 'sorted table' generates. This will be multiplied by 325 // table size limit at grandparent level. 326 // 327 // The default value is 10. 328 "compactionGPOverlapsFactor": int 329 330 // CompactionL0Trigger defines number of 'sorted table' at level-0 that will 331 // trigger compaction. 332 // 333 // The default value is 4. 334 "compactionL0Trigger": int 335 336 // CompactionSourceLimitFactor limits compaction source size. This doesn't apply to 337 // level-0. 338 // This will be multiplied by table size limit at compaction target level. 339 // 340 // The default value is 1. 341 "compactionSourceLimitFactor": int 342 343 // CompactionTableSize limits size of 'sorted table' that compaction generates. 344 // The limits for each level will be calculated as: 345 // CompactionTableSize * (CompactionTableSizeMultiplier ^ Level) 346 // The multiplier for each level can also fine-tuned using CompactionTableSizeMultiplierPerLevel. 347 // 348 // The default value is 2MiB. 349 "compactionTableSize": int 350 351 // CompactionTableSizeMultiplier defines multiplier for CompactionTableSize. 352 // 353 // The default value is 1. 354 "compactionTableSizeMultiplier": float 355 356 // CompactionTableSizeMultiplierPerLevel defines per-level multiplier for 357 // CompactionTableSize. 358 // Use zero to skip a level. 359 // 360 // The default value is nil. 361 "compactionTableSizeMultiplierPerLevel": []float 362 363 // CompactionTotalSize limits total size of 'sorted table' for each level. 364 // The limits for each level will be calculated as: 365 // CompactionTotalSize * (CompactionTotalSizeMultiplier ^ Level) 366 // The multiplier for each level can also fine-tuned using 367 // CompactionTotalSizeMultiplierPerLevel. 368 // 369 // The default value is 10MiB. 370 "compactionTotalSize": int 371 372 // CompactionTotalSizeMultiplier defines multiplier for CompactionTotalSize. 373 // 374 // The default value is 10. 375 "compactionTotalSizeMultiplier": float 376 377 // DisableSeeksCompaction allows disabling 'seeks triggered compaction'. 378 // The purpose of 'seeks triggered compaction' is to optimize database so 379 // that 'level seeks' can be minimized, however this might generate many 380 // small compaction which may not preferable. 381 // 382 // The default is true. 383 "disableSeeksCompaction": bool 384 385 // OpenFilesCacheCapacity defines the capacity of the open files caching. 386 // Use -1 for zero, this has same effect as specifying NoCacher to OpenFilesCacher. 387 // 388 // The default value is 1024. 389 "openFilesCacheCapacity": int 390 391 // WriteBuffer defines maximum size of a 'memdb' before flushed to 392 // 'sorted table'. 'memdb' is an in-memory DB backed by an on-disk 393 // unsorted journal. 394 // 395 // LevelDB may held up to two 'memdb' at the same time. 396 // 397 // The default value is 6MiB. 398 "writeBuffer": int 399 400 // FilterBitsPerKey is the number of bits to add to the bloom filter per 401 // key. 402 // 403 // The default value is 10. 404 "filterBitsPerKey": int 405 406 // MaxManifestFileSize is the maximum size limit of the MANIFEST-****** file. 407 // When the MANIFEST-****** file grows beyond this size, LevelDB will create 408 // a new MANIFEST file. 409 // 410 // The default value is infinity. 411 "maxManifestFileSize": int 412 413 // MetricUpdateFrequency is the frequency to poll LevelDB metrics in 414 // nanoseconds. 415 // If <= 0, LevelDB metrics aren't polled. 416 // 417 // The default value is 10s. 418 "metricUpdateFrequency": int 419 } 420 ``` 421 422 ## Genesis 423 424 #### `--genesis-file` (string) 425 426 Path to a JSON file containing the genesis data to use. Ignored when running 427 standard networks (Mainnet, Fuji Testnet), or when `--genesis-content` is 428 specified. If not given, uses default genesis data. 429 430 These are the main properties in the JSON file: 431 432 - `networkID`: A unique identifier for the blockchain, must be a number in the range [0, 2^32). 433 - `allocations`: The list of initial addresses, their initial balances and the unlock schedule for each. 434 - `startTime`: The time of the beginning of the blockchain, it must be a Unix 435 timestamp and it can't be a time in the future. 436 - `initialStakeDuration`: The stake duration, in seconds, of the validators that exist at network genesis. 437 - `initialStakeDurationOffset`: The offset, in seconds, between the start times 438 of the validators that exist at genesis. 439 - `initialStakedFunds`: A list of addresses that own the funds staked at genesis 440 (each address must be present in `allocations` as well) 441 - `initialStakers`: The validators that exist at genesis. Each element contains 442 the `rewardAddress`, NodeID and the `delegationFee` of the validator. 443 - `cChainGenesis`: The genesis info to be passed to the C-Chain. 444 - `message`: A message to include in the genesis. Not required. 445 446 For an example of a JSON representation of genesis data, see [genesis_local.json](https://github.com/ava-labs/avalanchego/blob/master/genesis/genesis_local.json). 447 448 #### `--genesis-file-content` (string) 449 450 As an alternative to `--genesis-file`, it allows specifying base64 encoded genesis data to use. 451 452 ## HTTP Server 453 454 #### `--http-host` (string) 455 456 The address that HTTP APIs listen on. Defaults to `127.0.0.1`. This means that 457 by default, your node can only handle API calls made from the same machine. To 458 allow API calls from other machines, use `--http-host=`. You can also enter 459 domain names as parameter. 460 461 #### `--http-port` (int) 462 463 Each node runs an HTTP server that provides the APIs for interacting with the 464 node and the Avalanche network. This argument specifies the port that the HTTP 465 server will listen on. The default value is `9650`. 466 467 #### `--http-tls-cert-file` (string, file path) 468 469 This argument specifies the location of the TLS certificate used by the node for 470 the HTTPS server. This must be specified when `--http-tls-enabled=true`. There 471 is no default value. This flag is ignored if `--http-tls-cert-file-content` is 472 specified. 473 474 #### `--http-tls-cert-file-content` (string) 475 476 As an alternative to `--http-tls-cert-file`, it allows specifying base64 encoded 477 content of the TLS certificate used by the node for the HTTPS server. Note that 478 full certificate content, with the leading and trailing header, must be base64 479 encoded. This must be specified when `--http-tls-enabled=true`. 480 481 #### `--http-tls-enabled` (boolean) 482 483 If set to `true`, this flag will attempt to upgrade the server to use HTTPS. Defaults to `false`. 484 485 #### `--http-tls-key-file` (string, file path) 486 487 This argument specifies the location of the TLS private key used by the node for 488 the HTTPS server. This must be specified when `--http-tls-enabled=true`. There 489 is no default value. This flag is ignored if `--http-tls-key-file-content` is 490 specified. 491 492 #### `--http-tls-key-file-content` (string) 493 494 As an alternative to `--http-tls-key-file`, it allows specifying base64 encoded 495 content of the TLS private key used by the node for the HTTPS server. Note that 496 full private key content, with the leading and trailing header, must be base64 497 encoded. This must be specified when `--http-tls-enabled=true`. 498 499 #### `--http-read-timeout` (string) 500 501 Maximum duration for reading the entire request, including the body. A zero or 502 negative value means there will be no timeout. 503 504 #### `--http-read-header-timeout` (string) 505 506 Maximum duration to read request headers. The connection’s read deadline is 507 reset after reading the headers. If `--http-read-header-timeout` is zero, the 508 value of `--http-read-timeout` is used. If both are zero, there is no timeout. 509 510 #### `--http-write-timeout` (string) 511 512 Maximum duration before timing out writes of the response. It is reset whenever 513 a new request’s header is read. A zero or negative value means there will be no 514 timeout. 515 516 #### `--http-idle-timeout` (string) 517 518 Maximum duration to wait for the next request when keep-alives are enabled. If 519 `--http-idle-timeout` is zero, the value of `--http-read-timeout` is used. If both are zero, 520 there is no timeout. 521 522 #### `--http-allowed-origins` (string) 523 524 Origins to allow on the HTTP port. Defaults to `*` which allows all origins. Example: 525 `"https://*.avax.network https://*.avax-test.network"` 526 527 #### `--http-allowed-hosts` (string) 528 529 List of acceptable host names in API requests. Provide the wildcard (`'*'`) to accept 530 requests from all hosts. API requests where the `Host` field is empty or an IP address 531 will always be accepted. An API call whose HTTP `Host` field isn't acceptable will 532 receive a 403 error code. Defaults to `localhost`. 533 534 ## File Descriptor Limit 535 536 #### `--fd-limit` (int) 537 538 Attempts to raise the process file descriptor limit to at least this value and 539 error if the value is above the system max. Linux default `32768`. 540 541 ## Logging 542 543 #### `--log-level` (string, `{verbo, debug, trace, info, warn, error, fatal, off}`) 544 545 The log level determines which events to log. There are 8 different levels, in 546 order from highest priority to lowest. 547 548 - `off`: No logs have this level of logging. Turns off logging. 549 - `fatal`: Fatal errors that are not recoverable. 550 - `error`: Errors that the node encounters, these errors were able to be recovered. 551 - `warn`: A Warning that might be indicative of a spurious byzantine node, or potential future error. 552 - `info`: Useful descriptions of node status updates. 553 - `trace`: Traces container (block, vertex, transaction) job results. Useful for 554 tracing container IDs and their outcomes. 555 - `debug`: Debug logging is useful when attempting to understand possible bugs 556 in the code. More information that would be typically desired for normal usage 557 will be displayed. 558 - `verbo`: Tracks extensive amounts of information the node is processing. This 559 includes message contents and binary dumps of data for extremely low level 560 protocol analysis. 561 562 When specifying a log level note that all logs with the specified priority or 563 higher will be tracked. Defaults to `info`. 564 565 #### `--log-display-level` (string, `{verbo, debug, trace, info, warn, error, fatal, off}`) 566 567 The log level determines which events to display to stdout. If left blank, 568 will default to the value provided to `--log-level`. 569 570 #### `--log-format` (string, `{auto, plain, colors, json}`) 571 572 The structure of log format. Defaults to `auto` which formats terminal-like 573 logs, when the output is a terminal. Otherwise, should be one of `{auto, plain, colors, json}` 574 575 #### `--log-dir` (string, file path) 576 577 Specifies the directory in which system logs are kept. Defaults to `"$HOME/.avalanchego/logs"`. 578 If you are running the node as a system service (ex. using the installer script) logs will also be 579 stored in `$HOME/var/log/syslog`. 580 581 #### `--log-disable-display-plugin-logs` (boolean) 582 583 Disables displaying plugin logs in stdout. Defaults to `false`. 584 585 #### `--log-rotater-max-size` (uint) 586 587 The maximum file size in megabytes of the log file before it gets rotated. Defaults to `8`. 588 589 #### `--log-rotater-max-files` (uint) 590 591 The maximum number of old log files to retain. 0 means retain all old log files. Defaults to `7`. 592 593 #### `--log-rotater-max-age` (uint) 594 595 The maximum number of days to retain old log files based on the timestamp 596 encoded in their filename. 0 means retain all old log files. Defaults to `0`. 597 598 #### `--log-rotater-compress-enabled` (boolean) 599 600 Enables the compression of rotated log files through gzip. Defaults to `false`. 601 602 ## Network ID 603 604 #### `--network-id` (string) 605 606 The identity of the network the node should connect to. Can be one of: 607 608 - `--network-id=mainnet` -> Connect to Mainnet (default). 609 - `--network-id=fuji` -> Connect to the Fuji test-network. 610 - `--network-id=testnet` -> Connect to the current test-network. (Right now, this is Fuji.) 611 - `--network-id=local` -> Connect to a local test-network. 612 - `--network-id=network-{id}` -> Connect to the network with the given ID. 613 `id` must be in the range `[0, 2^32)`. 614 615 ## OpenTelemetry 616 617 AvalancheGo supports collecting and exporting [OpenTelemetry](https://opentelemetry.io/) traces. 618 This might be useful for debugging, performance analysis, or monitoring. 619 620 #### `--tracing-enabled` (boolean) 621 622 If true, enable OpenTelemetry tracing. Defaults to `false`. 623 624 #### `--tracing-endpoint` (string) 625 626 The endpoint to export trace data to. Defaults to `localhost:4317`. 627 628 #### `--tracing-insecure` (string) 629 630 If true, don't use TLS when exporting trace data. Defaults to `true`. 631 632 #### `--tracing-sample-rate` (float) 633 634 The fraction of traces to sample. If >= 1, always sample. If `<= 0`, never sample. 635 Defaults to `0.1`. 636 637 #### `--tracing-exporter-type`(string) 638 639 Type of exporter to use for tracing. Options are [`grpc`,`http`]. Defaults to `grpc`. 640 641 ## Public IP 642 643 Validators must know one of their public facing IP addresses so they can enable 644 other nodes to connect to them. 645 646 By default, the node will attempt to perform NAT traversal to get the node's IP 647 according to its router. 648 649 #### `--public-ip` (string) 650 651 If this argument is provided, the node assume this is its public IP. 652 653 :::tip 654 When running a local network it may be easiest to set this value to `127.0.0.1`. 655 ::: 656 657 #### `--public-ip-resolution-frequency` (duration) 658 659 Frequency at which this node resolves/updates its public IP and renew NAT 660 mappings, if applicable. Default to 5 minutes. 661 662 #### `--public-ip-resolution-service` (string) 663 664 When provided, the node will use that service to periodically resolve/update its 665 public IP. Only acceptable values are `ifconfigCo`, `opendns` or `ifconfigMe`. 666 667 ## Staking 668 669 #### `--staking-port` (int) 670 671 The port through which the network peers will connect to this node externally. 672 Having this port accessible from the internet is required for correct node 673 operation. Defaults to `9651`. 674 675 #### `--sybil-protection-enabled` (boolean) 676 677 Avalanche uses Proof of Stake (PoS) as sybil resistance to make it prohibitively 678 expensive to attack the network. If false, sybil resistance is disabled and all 679 peers will be sampled during consensus. Defaults to `true`. Note that this can 680 not be disabled on public networks (`Fuji` and `Mainnet`). 681 682 Setting this flag to `false` **does not** mean "this node is not a validator." 683 It means that this node will sample all nodes, not just validators. 684 **You should not set this flag to false unless you understand what you are doing.** 685 686 #### `--sybil-protection-disabled-weight` (uint) 687 688 Weight to provide to each peer when staking is disabled. Defaults to `100`. 689 690 #### `--staking-tls-cert-file` (string, file path) 691 692 Avalanche uses two-way authenticated TLS connections to securely connect nodes. 693 This argument specifies the location of the TLS certificate used by the node. By 694 default, the node expects the TLS certificate to be at 695 `$HOME/.avalanchego/staking/staker.crt`. This flag is ignored if 696 `--staking-tls-cert-file-content` is specified. 697 698 #### `--staking-tls-cert-file-content` (string) 699 700 As an alternative to `--staking-tls-cert-file`, it allows specifying base64 701 encoded content of the TLS certificate used by the node. Note that full 702 certificate content, with the leading and trailing header, must be base64 703 encoded. 704 705 #### `--staking-tls-key-file` (string, file path) 706 707 Avalanche uses two-way authenticated TLS connections to securely connect nodes. 708 This argument specifies the location of the TLS private key used by the node. By 709 default, the node expects the TLS private key to be at 710 `$HOME/.avalanchego/staking/staker.key`. This flag is ignored if 711 `--staking-tls-key-file-content` is specified. 712 713 #### `--staking-tls-key-file-content` (string) 714 715 As an alternative to `--staking-tls-key-file`, it allows specifying base64 716 encoded content of the TLS private key used by the node. Note that full private 717 key content, with the leading and trailing header, must be base64 encoded. 718 719 ## Subnets 720 721 ### Subnet Tracking 722 723 #### `--track-subnets` (string) 724 725 Comma separated list of Subnet IDs that this node would track if added to. 726 Defaults to empty (will only validate the Primary Network). 727 728 ### Subnet Configs 729 730 It is possible to provide parameters for Subnets. Parameters here apply to all 731 chains in the specified Subnets. Parameters must be specified with a 732 `{subnetID}.json` config file under `--subnet-config-dir`. AvalancheGo loads 733 configs for Subnets specified in 734 `--track-subnets` parameter. 735 736 Full reference for all configuration options for a Subnet can be found in a 737 separate [Subnet Configs](./subnet-configs) document. 738 739 #### `--subnet-config-dir` (`string`) 740 741 Specifies the directory that contains Subnet configs, as described above. 742 Defaults to `$HOME/.avalanchego/configs/subnets`. If the flag is set explicitly, 743 the specified folder must exist, or AvalancheGo will exit with an error. This 744 flag is ignored if `--subnet-config-content` is specified. 745 746 Example: Let's say we have a Subnet with ID 747 `p4jUwqZsA2LuSftroCd3zb4ytH8W99oXKuKVZdsty7eQ3rXD6`. We can create a config file 748 under the default `subnet-config-dir` at 749 `$HOME/.avalanchego/configs/subnets/p4jUwqZsA2LuSftroCd3zb4ytH8W99oXKuKVZdsty7eQ3rXD6.json`. 750 An example config file is: 751 752 ```json 753 { 754 "validatorOnly": false, 755 "consensusParameters": { 756 "k": 25, 757 "alpha": 18 758 } 759 } 760 ``` 761 762 :::tip 763 By default, none of these directories and/or files exist. You would need to create them manually if needed. 764 ::: 765 766 #### `--subnet-config-content` (string) 767 768 As an alternative to `--subnet-config-dir`, it allows specifying base64 encoded parameters for a Subnet. 769 770 ## Version 771 772 #### `--version` (boolean) 773 774 If this is `true`, print the version and quit. Defaults to `false`. 775 776 ## Advanced Options 777 778 The following options may affect the correctness of a node. Only power users should change these. 779 780 ### Gossiping 781 782 #### `--consensus-accepted-frontier-gossip-validator-size` (uint) 783 784 Number of validators to gossip to when gossiping accepted frontier. Defaults to `0`. 785 786 #### `--consensus-accepted-frontier-gossip-non-validator-size` (uint) 787 788 Number of non-validators to gossip to when gossiping accepted frontier. Defaults to `0`. 789 790 #### `--consensus-accepted-frontier-gossip-peer-size` (uint) 791 792 Number of peers to gossip to when gossiping accepted frontier. Defaults to `15`. 793 794 #### `--consensus-accepted-frontier-gossip-frequency` (duration) 795 796 Time between gossiping accepted frontiers. Defaults to `10s`. 797 798 #### `--consensus-on-accept-gossip-validator-size` (uint) 799 800 Number of validators to gossip to each accepted container to. Defaults to `0`. 801 802 #### `--consensus-on-accept-gossip-non-validator-size` (uint) 803 804 Number of non-validators to gossip to each accepted container to. Defaults to `0`. 805 806 #### `--consensus-on-accept-gossip-peer-size` (uint) 807 808 Number of peers to gossip to each accepted container to. Defaults to `10`. 809 810 ### Benchlist 811 812 #### `--benchlist-duration` (duration) 813 814 Maximum amount of time a peer is benchlisted after surpassing 815 `--benchlist-fail-threshold`. Defaults to `15m`. 816 817 #### `--benchlist-fail-threshold` (int) 818 819 Number of consecutive failed queries to a node before benching it (assuming all 820 queries to it will fail). Defaults to `10`. 821 822 #### `--benchlist-min-failing-duration` (duration) 823 824 Minimum amount of time queries to a peer must be failing before the peer is benched. Defaults to `150s`. 825 826 ### Consensus Parameters 827 828 :::note 829 Some of these parameters can only be set on a local or private network, not on Fuji Testnet or Mainnet 830 ::: 831 832 #### `--consensus-shutdown-timeout` (duration) 833 834 Timeout before killing an unresponsive chain. Defaults to `5s`. 835 836 #### `--create-asset-tx-fee` (int) 837 838 Transaction fee, in nAVAX, for transactions that create new assets. Defaults to 839 `10000000` nAVAX (.01 AVAX) per transaction. This can only be changed on a local 840 network. 841 842 #### `--create-subnet-tx-fee` (int) 843 844 Transaction fee, in nAVAX, for transactions that create new Subnets. Defaults to 845 `1000000000` nAVAX (1 AVAX) per transaction. This can only be changed on a local 846 network. 847 848 #### `--create-blockchain-tx-fee` (int) 849 850 Transaction fee, in nAVAX, for transactions that create new blockchains. 851 Defaults to `1000000000` nAVAX (1 AVAX) per transaction. This can only be 852 changed on a local network. 853 854 #### `--transform-subnet-tx-fee` (int) 855 856 Transaction fee, in nAVAX, for transactions that transform Subnets. Defaults to 857 `1000000000` nAVAX (1 AVAX) per transaction. This can only be changed on a local network. 858 859 #### `--add-primary-network-validator-fee` (int) 860 861 Transaction fee, in nAVAX, for transactions that add new primary network validators. Defaults to 0. 862 This can only be changed on a local network. 863 864 #### `--add-primary-network-delegator-fee` (int) 865 866 Transaction fee, in nAVAX, for transactions that add new primary network delegators. Defaults to 0. 867 This can only be changed on a local network. 868 869 #### `--add-subnet-validator-fee` (int) 870 871 Transaction fee, in nAVAX, for transactions that add new Subnet validators. 872 Defaults to `10000000` nAVAX (.01 AVAX). 873 874 #### `--add-subnet-delegator-fee` (int) 875 876 Transaction fee, in nAVAX, for transactions that add new Subnet delegators. 877 Defaults to `10000000` nAVAX (.01 AVAX). 878 879 #### `--min-delegator-stake` (int) 880 881 The minimum stake, in nAVAX, that can be delegated to a validator of the Primary Network. 882 883 Defaults to `25000000000` (25 AVAX) on Mainnet. Defaults to `5000000` (.005 884 AVAX) on Test Net. This can only be changed on a local network. 885 886 #### `--min-delegation-fee` (int) 887 888 The minimum delegation fee that can be charged for delegation on the Primary 889 Network, multiplied by `10,000` . Must be in the range `[0, 1000000]`. Defaults 890 to `20000` (2%) on Mainnet. This can only be changed on a local network. 891 892 #### `--min-stake-duration` (duration) 893 894 Minimum staking duration. The Default on Mainnet is `336h` (two weeks). This can only be changed on 895 a local network. This applies to both delegation and validation periods. 896 897 #### `--min-validator-stake` (int) 898 899 The minimum stake, in nAVAX, required to validate the Primary Network. This can 900 only be changed on a local network. 901 902 Defaults to `2000000000000` (2,000 AVAX) on Mainnet. Defaults to `5000000` (.005 AVAX) on Test Net. 903 904 #### `--max-stake-duration` (duration) 905 906 The maximum staking duration, in hours. Defaults to `8760h` (365 days) on 907 Mainnet. This can only be changed on a local network. 908 909 #### `--max-validator-stake` (int) 910 911 The maximum stake, in nAVAX, that can be placed on a validator on the primary 912 network. Defaults to `3000000000000000` (3,000,000 AVAX) on Mainnet. This 913 includes stake provided by both the validator and by delegators to the 914 validator. This can only be changed on a local network. 915 916 #### `--stake-minting-period` (duration) 917 918 Consumption period of the staking function, in hours. The Default on Mainnet is 919 `8760h` (365 days). This can only be changed on a local network. 920 921 #### `--stake-max-consumption-rate` (uint) 922 923 The maximum percentage of the consumption rate for the remaining token supply in 924 the minting period, which is 1 year on Mainnet. Defaults to `120,000` which is 925 12% per years. This can only be changed on a local network. 926 927 #### `--stake-min-consumption-rate` (uint) 928 929 The minimum percentage of the consumption rate for the remaining token supply in 930 the minting period, which is 1 year on Mainnet. Defaults to `100,000` which is 931 10% per years. This can only be changed on a local network. 932 933 #### `--stake-supply-cap` (uint) 934 935 The maximum stake supply, in nAVAX, that can be placed on a validator. Defaults 936 to `720,000,000,000,000,000` nAVAX. This can only be changed on a local network. 937 938 #### `--tx-fee` (int) 939 940 The required amount of nAVAX to be burned for a transaction to be valid on the 941 X-Chain, and for import/export transactions on the P-Chain. This parameter 942 requires network agreement in its current form. Changing this value from the 943 default should only be done on private networks or local network. Defaults to 944 `1,000,000` nAVAX per transaction. 945 946 #### `--uptime-requirement` (float) 947 948 Fraction of time a validator must be online to receive rewards. Defaults to 949 `0.8`. This can only be changed on a local network. 950 951 #### `--uptime-metric-freq` (duration) 952 953 Frequency of renewing this node's average uptime metric. Defaults to `30s`. 954 955 #### Snow Parameters 956 957 ##### `--snow-concurrent-repolls` (int) 958 959 Snow consensus requires repolling transactions that are issued during low time 960 of network usage. This parameter lets one define how aggressive the client will 961 be in finalizing these pending transactions. This should only be changed after 962 careful consideration of the tradeoffs of Snow consensus. The value must be at 963 least `1` and at most `--snow-commit-threshold`. Defaults to `4`. 964 965 ##### `--snow-sample-size` (int) 966 967 Snow consensus defines `k` as the number of validators that are sampled during 968 each network poll. This parameter lets one define the `k` value used for 969 consensus. This should only be changed after careful consideration of the 970 tradeoffs of Snow consensus. The value must be at least `1`. Defaults to `20`. 971 972 ##### `--snow-quorum-size` (int) 973 974 Snow consensus defines `alpha` as the number of validators that must prefer a 975 transaction during each network poll to increase the confidence in the 976 transaction. This parameter lets us define the `alpha` value used for consensus. 977 This should only be changed after careful consideration of the tradeoffs of Snow 978 consensus. The value must be at greater than `k/2`. Defaults to `15`. 979 980 ##### `--snow-commit-threshold` (int) 981 982 Snow consensus defines `beta` as the number of consecutive polls that a 983 container must increase its confidence for it to be accepted. This 984 parameter lets us define the `beta` value used for consensus. This should only 985 be changed after careful consideration of the tradeoffs of Snow consensus. The 986 value must be at least `1`. Defaults to `20`. 987 988 ##### `--snow-optimal-processing` (int) 989 990 Optimal number of processing items in consensus. The value must be at least `1`. Defaults to `50`. 991 992 ##### `--snow-max-processing` (int) 993 994 Maximum number of processing items to be considered healthy. Reports unhealthy 995 if more than this number of items are outstanding. The value must be at least 996 `1`. Defaults to `1024`. 997 998 ##### `--snow-max-time-processing` (duration) 999 1000 Maximum amount of time an item should be processing and still be healthy. 1001 Reports unhealthy if there is an item processing for longer than this duration. 1002 The value must be greater than `0`. Defaults to `2m`. 1003 1004 ### ProposerVM Parameters 1005 1006 #### `--proposervm-use-current-height` (bool) 1007 1008 Have the ProposerVM always report the last accepted P-chain block height. Defaults to `false`. 1009 1010 ### Continuous Profiling 1011 1012 You can configure your node to continuously run memory/CPU profiles and save the 1013 most recent ones. Continuous memory/CPU profiling is enabled if 1014 `--profile-continuous-enabled` is set. 1015 1016 #### `--profile-continuous-enabled` (boolean) 1017 1018 Whether the app should continuously produce performance profiles. Defaults to the false (not enabled). 1019 1020 #### `--profile-dir` (string) 1021 1022 If profiling enabled, node continuously runs memory/CPU profiles and puts them 1023 at this directory. Defaults to the `$HOME/.avalanchego/profiles/`. 1024 1025 #### `--profile-continuous-freq` (duration) 1026 1027 How often a new CPU/memory profile is created. Defaults to `15m`. 1028 1029 #### `--profile-continuous-max-files` (int) 1030 1031 Maximum number of CPU/memory profiles files to keep. Defaults to 5. 1032 1033 ### Health 1034 1035 #### `--health-check-frequency` (duration) 1036 1037 Health check runs with this frequency. Defaults to `30s`. 1038 1039 #### `--health-check-averager-halflife` (duration) 1040 1041 Half life of averagers used in health checks (to measure the rate of message 1042 failures, for example.) Larger value --> less volatile calculation of 1043 averages. Defaults to `10s`. 1044 1045 ### Network 1046 1047 #### `--network-allow-private-ips` (bool) 1048 1049 Allows the node to connect peers with private IPs. Defaults to `true`. 1050 1051 #### `--network-compression-type` (string) 1052 1053 The type of compression to use when sending messages to peers. Defaults to `gzip`. 1054 Must be one of [`gzip`, `zstd`, `none`]. 1055 1056 Nodes can handle inbound `gzip` compressed messages but by default send `zstd` compressed messages. 1057 1058 #### `--network-initial-timeout` (duration) 1059 1060 Initial timeout value of the adaptive timeout manager. Defaults to `5s`. 1061 1062 #### `--network-initial-reconnect-delay` (duration) 1063 1064 Initial delay duration must be waited before attempting to reconnect a peer. Defaults to `1s`. 1065 1066 #### `--network-max-reconnect-delay` (duration) 1067 1068 Maximum delay duration must be waited before attempting to reconnect a peer. Defaults to `1h`. 1069 1070 #### `--network-minimum-timeout` (duration) 1071 1072 Minimum timeout value of the adaptive timeout manager. Defaults to `2s`. 1073 1074 #### `--network-maximum-timeout` (duration) 1075 1076 Maximum timeout value of the adaptive timeout manager. Defaults to `10s`. 1077 1078 #### `--network-maximum-inbound-timeout` (duration) 1079 1080 Maximum timeout value of an inbound message. Defines duration within which an 1081 incoming message must be fulfilled. Incoming messages containing deadline higher 1082 than this value will be overridden with this value. Defaults to `10s`. 1083 1084 #### `--network-timeout-halflife` (duration) 1085 1086 Half life used when calculating average network latency. Larger value --> less 1087 volatile network latency calculation. Defaults to `5m`. 1088 1089 #### `--network-timeout-coefficient` (duration) 1090 1091 Requests to peers will time out after \[`network-timeout-coefficient`\] \* 1092 \[average request latency\]. Defaults to `2`. 1093 1094 #### `--network-read-handshake-timeout` (duration) 1095 1096 Timeout value for reading handshake messages. Defaults to `15s`. 1097 1098 #### `--network-ping-timeout` (duration) 1099 1100 Timeout value for Ping-Pong with a peer. Defaults to `30s`. 1101 1102 #### `--network-ping-frequency` (duration) 1103 1104 Frequency of pinging other peers. Defaults to `22.5s`. 1105 1106 #### `--network-health-min-conn-peers` (uint) 1107 1108 Node will report unhealthy if connected to less than this many peers. Defaults to `1`. 1109 1110 #### `--network-health-max-time-since-msg-received` (duration) 1111 1112 Node will report unhealthy if it hasn't received a message for this amount of time. Defaults to `1m`. 1113 1114 #### `--network-health-max-time-since-msg-sent` (duration) 1115 1116 Network layer returns unhealthy if haven't sent a message for at least this much time. Defaults to `1m`. 1117 1118 #### `--network-health-max-portion-send-queue-full` (float) 1119 1120 Node will report unhealthy if its send queue is more than this portion full. 1121 Must be in \[0,1\]. Defaults to `0.9`. 1122 1123 #### `--network-health-max-send-fail-rate` (float) 1124 1125 Node will report unhealthy if more than this portion of message sends fail. Must 1126 be in \[0,1\]. Defaults to `0.25`. 1127 1128 #### `--network-health-max-outstanding-request-duration` (duration) 1129 1130 Node reports unhealthy if there has been a request outstanding for this duration. Defaults to `5m`. 1131 1132 #### `--network-max-clock-difference` (duration) 1133 1134 Max allowed clock difference value between this node and peers. Defaults to `1m`. 1135 1136 #### `--network-require-validator-to-connect` (bool) 1137 1138 If true, this node will only maintain a connection with another node if this 1139 node is a validator, the other node is a validator, or the other node is a 1140 beacon. 1141 1142 #### `--network-tcp-proxy-enabled` (bool) 1143 1144 Require all P2P connections to be initiated with a TCP proxy header. Defaults to `false`. 1145 1146 #### `--network-tcp-proxy-read-timeout` (duration) 1147 1148 Maximum duration to wait for a TCP proxy header. Defaults to `3s`. 1149 1150 #### `--network-outbound-connection-timeout` (duration) 1151 1152 Timeout while dialing a peer. Defaults to `30s`. 1153 1154 ### Message Rate-Limiting 1155 1156 These flags govern rate-limiting of inbound and outbound messages. For more 1157 information on rate-limiting and the flags below, see package `throttling` in 1158 AvalancheGo. 1159 1160 #### CPU Based 1161 1162 Rate-limiting based on how much CPU usage a peer causes. 1163 1164 ##### `--throttler-inbound-cpu-validator-alloc` (float) 1165 1166 Number of CPU allocated for use by validators. Value should be in range (0, total core count]. 1167 Defaults to half of the number of CPUs on the machine. 1168 1169 ##### `--throttler-inbound-cpu-max-recheck-delay` (duration) 1170 1171 In the CPU rate-limiter, check at least this often whether the node's CPU usage 1172 has fallen to an acceptable level. Defaults to `5s`. 1173 1174 ##### `--throttler-inbound-disk-max-recheck-delay` (duration) 1175 1176 In the disk-based network throttler, check at least this often whether the node's disk usage has 1177 fallen to an acceptable level. Defaults to `5s`. 1178 1179 ##### `--throttler-inbound-cpu-max-non-validator-usage` (float) 1180 1181 Number of CPUs that if fully utilized, will rate limit all non-validators. Value should be in range 1182 [0, total core count]. 1183 Defaults to %80 of the number of CPUs on the machine. 1184 1185 ##### `--throttler-inbound-cpu-max-non-validator-node-usage` (float) 1186 1187 Maximum number of CPUs that a non-validator can utilize. Value should be in range [0, total core count]. 1188 Defaults to the number of CPUs / 8. 1189 1190 ##### `--throttler-inbound-disk-validator-alloc` (float) 1191 1192 Maximum number of disk reads/writes per second to allocate for use by validators. Must be > 0. 1193 Defaults to `1000 GiB/s`. 1194 1195 ##### `--throttler-inbound-disk-max-non-validator-usage` (float) 1196 1197 Number of disk reads/writes per second that, if fully utilized, will rate limit all non-validators. 1198 Must be >= 0. 1199 Defaults to `1000 GiB/s`. 1200 1201 ##### `--throttler-inbound-disk-max-non-validator-node-usage` (float) 1202 1203 Maximum number of disk reads/writes per second that a non-validator can utilize. Must be >= 0. 1204 Defaults to `1000 GiB/s`. 1205 1206 #### Bandwidth Based 1207 1208 Rate-limiting based on the bandwidth a peer uses. 1209 1210 ##### `--throttler-inbound-bandwidth-refill-rate` (uint) 1211 1212 Max average inbound bandwidth usage of a peer, in bytes per second. See 1213 interface `throttling.BandwidthThrottler`. Defaults to `512`. 1214 1215 ##### `--throttler-inbound-bandwidth-max-burst-size` (uint) 1216 1217 Max inbound bandwidth a node can use at once. See interface 1218 `throttling.BandwidthThrottler`. Defaults to `2 MiB`. 1219 1220 #### Message Size Based 1221 1222 Rate-limiting based on the total size, in bytes, of unprocessed messages. 1223 1224 ##### `--throttler-inbound-at-large-alloc-size` (uint) 1225 1226 Size, in bytes, of at-large allocation in the inbound message throttler. Defaults to `6291456` (6 MiB). 1227 1228 ##### `--throttler-inbound-validator-alloc-size` (uint) 1229 1230 Size, in bytes, of validator allocation in the inbound message throttler. 1231 Defaults to `33554432` (32 MiB). 1232 1233 ##### `--throttler-inbound-node-max-at-large-bytes` (uint) 1234 1235 Maximum number of bytes a node can take from the at-large allocation of the 1236 inbound message throttler. Defaults to `2097152` (2 MiB). 1237 1238 #### Message Based 1239 1240 Rate-limiting based on the number of unprocessed messages. 1241 1242 ##### `--throttler-inbound-node-max-processing-msgs` (uint) 1243 1244 Node will stop reading messages from a peer when it is processing this many messages from the peer. 1245 Will resume reading messages from the peer when it is processing less than this many messages. 1246 Defaults to `1024`. 1247 1248 #### Outbound 1249 1250 Rate-limiting for outbound messages. 1251 1252 ##### `--throttler-outbound-at-large-alloc-size` (uint) 1253 1254 Size, in bytes, of at-large allocation in the outbound message throttler. 1255 Defaults to `33554432` (32 MiB). 1256 1257 ##### `--throttler-outbound-validator-alloc-size` (uint) 1258 1259 Size, in bytes, of validator allocation in the outbound message throttler. 1260 Defaults to `33554432` (32 MiB). 1261 1262 ##### `--throttler-outbound-node-max-at-large-bytes` (uint) 1263 1264 Maximum number of bytes a node can take from the at-large allocation of the 1265 outbound message throttler. Defaults to `2097152` (2 MiB). 1266 1267 ### Connection Rate-Limiting 1268 1269 #### `--network-inbound-connection-throttling-cooldown` (duration) 1270 1271 Node will upgrade an inbound connection from a given IP at most once within this 1272 duration. Defaults to `10s`. If 0 or negative, will not consider recency of last 1273 upgrade when deciding whether to upgrade. 1274 1275 #### `--network-inbound-connection-throttling-max-conns-per-sec` (uint) 1276 1277 Node will accept at most this many inbound connections per second. Defaults to `512`. 1278 1279 #### `--network-outbound-connection-throttling-rps` (uint) 1280 1281 Node makes at most this many outgoing peer connection attempts per second. Defaults to `50`. 1282 1283 ### Peer List Gossiping 1284 1285 Nodes gossip peers to each other so that each node can have an up-to-date peer 1286 list. A node gossips `--network-peer-list-num-validator-ips` validator IPs to 1287 `--network-peer-list-validator-gossip-size` validators, 1288 `--network-peer-list-non-validator-gossip-size` non-validators and 1289 `--network-peer-list-peers-gossip-size` peers every 1290 `--network-peer-list-gossip-frequency`. 1291 1292 #### `--network-peer-list-num-validator-ips` (int) 1293 1294 Number of validator IPs to gossip to other nodes Defaults to `15`. 1295 1296 #### `--network-peer-list-validator-gossip-size` (int) 1297 1298 Number of validators that the node will gossip peer list to. Defaults to `20`. 1299 1300 #### `--network-peer-list-non-validator-gossip-size` (int) 1301 1302 Number of non-validators that the node will gossip peer list to. Defaults to `0`. 1303 1304 #### `--network-peer-list-peers-gossip-size` (int) 1305 1306 Number of total peers (including non-validator or validator) that the node will gossip peer list to 1307 Defaults to `0`. 1308 1309 #### `--network-peer-list-gossip-frequency` (duration) 1310 1311 Frequency to gossip peers to other nodes. Defaults to `1m`. 1312 1313 #### ` --network-peer-read-buffer-size` (int) 1314 1315 Size of the buffer that peer messages are read into (there is one buffer per 1316 peer), defaults to `8` KiB (8192 Bytes). 1317 1318 #### `--network-peer-write-buffer-size` (int) 1319 1320 Size of the buffer that peer messages are written into (there is one buffer per 1321 peer), defaults to `8` KiB (8192 Bytes). 1322 1323 ### Resource Usage Tracking 1324 1325 #### `--meter-vm-enabled` (bool) 1326 1327 Enable Meter VMs to track VM performance with more granularity. Defaults to `true`. 1328 1329 #### `--system-tracker-frequency` (duration) 1330 1331 Frequency to check the real system usage of tracked processes. More frequent 1332 checks --> usage metrics are more accurate, but more expensive to track. 1333 Defaults to `500ms`. 1334 1335 #### `--system-tracker-processing-halflife` (duration) 1336 1337 Half life to use for the processing requests tracker. Larger half life --> usage 1338 metrics change more slowly. Defaults to `15s`. 1339 1340 #### `--system-tracker-cpu-halflife` (duration) 1341 1342 Half life to use for the CPU tracker. Larger half life --> CPU usage metrics 1343 change more slowly. Defaults to `15s`. 1344 1345 #### `--system-tracker-disk-halflife` (duration) 1346 1347 Half life to use for the disk tracker. Larger half life --> disk usage metrics 1348 change more slowly. Defaults to `1m`. 1349 1350 #### `--system-tracker-disk-required-available-space` (uint) 1351 1352 "Minimum number of available bytes on disk, under which the node will shutdown. 1353 Defaults to `536870912` (512 MiB). 1354 1355 #### `--system-tracker-disk-warning-threshold-available-space` (uint) 1356 1357 Warning threshold for the number of available bytes on disk, under which the 1358 node will be considered unhealthy. Must be >= 1359 `--system-tracker-disk-required-available-space`. Defaults to `1073741824` (1 1360 GiB). 1361 1362 ### Plugins 1363 1364 #### `--plugin-dir` (string) 1365 1366 Sets the directory for [VM plugins](/build/vm/intro.md). The default value is `$HOME/.avalanchego/plugins`. 1367 1368 ### Virtual Machine (VM) Configs 1369 1370 #### `--vm-aliases-file (string)` 1371 1372 Path to JSON file that defines aliases for Virtual Machine IDs. Defaults to 1373 `~/.avalanchego/configs/vms/aliases.json`. This flag is ignored if 1374 `--vm-aliases-file-content` is specified. Example content: 1375 1376 ```json 1377 { 1378 "tGas3T58KzdjLHhBDMnH2TvrddhqTji5iZAMZ3RXs2NLpSnhH": [ 1379 "timestampvm", 1380 "timerpc" 1381 ] 1382 } 1383 ``` 1384 1385 The above example aliases the VM whose ID is 1386 `"tGas3T58KzdjLHhBDMnH2TvrddhqTji5iZAMZ3RXs2NLpSnhH"` to `"timestampvm"` and 1387 `"timerpc"`. 1388 1389 `--vm-aliases-file-content` (string) 1390 1391 As an alternative to `--vm-aliases-file`, it allows specifying base64 encoded 1392 aliases for Virtual Machine IDs. 1393 1394 ### Indexing 1395 1396 #### `--index-allow-incomplete` (boolean) 1397 1398 If true, allow running the node in such a way that could cause an index to miss transactions. 1399 Ignored if index is disabled. Defaults to `false`. 1400 1401 ### Router 1402 1403 #### `--router-health-max-drop-rate` (float) 1404 1405 Node reports unhealthy if the router drops more than this portion of messages. Defaults to `1`. 1406 1407 #### `--router-health-max-outstanding-requests` (uint) 1408 1409 Node reports unhealthy if there are more than this many outstanding consensus requests 1410 (Get, PullQuery, etc.) over all chains. Defaults to `1024`.