All Downloads are FREE. Search and download functionalities are using the official Maven repository.

form.node.1.5.8.source-code.application.conf Maven / Gradle / Ivy

The newest version!
# Waves node settings in HOCON
# HOCON specification: https://github.com/lightbend/config/blob/master/HOCON.md
# Unless you know what you're doing, DO NOT use this file as your node's config.
# Use waves-sample.conf in the root of this repository instead.

include "network-defaults.conf"
include "node-kamon.conf"

waves {
  # Node base directory
  directory = ""

  enable-light-mode = false

  db {
    directory = ${waves.directory}"/data"
    store-transactions-by-address = true
    store-lease-states-by-address = true
    store-invoke-script-results = true
    store-state-hashes = false
    # Limits the size of caches which are used during block validation. Lower values slightly decrease memory consumption,
    # while higher values might increase node performance. Setting this value to 0 disables caching altogether.
    max-cache-size = 100000

    max-rollback-depth = 2000

    # Delete old history entries (Data, WAVES and Asset balances) in this interval before a safe rollback height.
    # Comment to disable.
    # Affects:
    #   REST API:
    #     GET  /addresses/balance/$addr/$confirmations - confirmations should be <= 1000 to get a guaranteed result.
    #     GET  /addresses/balance
    #     POST /addresses/balance
    #     GET  /assets/$asset/distribution/$height/limit/$limit
    #     GET  /debug/balances/history/$addr
    #     GET  /debug/stateWaves/$height
    #   Explorer tool:
    #     A    WAVES balance history for address.
    #     AA   Asset balance history for address.
    # cleanup-interval = 500 # Optimal for Xmx2G

    rocksdb {
      main-cache-size = 512M
      tx-cache-size = 16M
      tx-meta-cache-size = 16M
      tx-snapshot-cache-size = 16M
      api-cache-size=16M
      write-buffer-size = 128M
      enable-statistics = false
      allow-mmap-reads = off
      parallelism = 2
      max-open-files = 100
    }
  }

  # NTP server
  ntp-server = "pool.ntp.org"

  # P2P Network settings
  network {
    # Peers and blacklist storage file
    file = ${waves.directory}"/peers.dat"

    # If defined, the node will bind to this address and accept the incoming connections. When commented out, the node
    # will not accept any incoming connections and will only establish outgoing ones. If you're using UPnP for port
    # mapping, make sure to specify the correct address here.
    bind-address = "0.0.0.0"

    # String with IP address and port to send as external address during handshake. Could be set automatically if UPnP
    # is enabled.
    #
    # If `declared-address` is set, which is the common scenario for nodes running in the cloud, the node will just
    # listen to incoming connections on `bind-address:port` and broadcast its `declared-address` to its peers. UPnP
    # is supposed to be disabled in this scenario.
    #
    # If declared address is not set and UPnP is enabled, the node will attempt to connect to an IGD, retrieve its
    # external IP address and configure the gateway to allow traffic through. If the node succeeds, the IGD's external
    # IP address becomes the node's declared address.
    #
    # In some cases, you may both set `declared-address` and enable UPnP (e.g. when IGD can't reliably determine its
    # external IP address). In such cases the node will attempt to configure an IGD to pass traffic from external port
    # to `bind-address:port`. Please note, however, that this setup is not recommended.
    # declared-address = "1.2.3.4:6863"

    # Port number
    port = 6863

    # Node name to send during handshake. Comment this string out to set random node name.
    # node-name = "default-node-name"

    # Node nonce to send during handshake. Should be different if few nodes runs on the same external IP address. Comment this out to set random nonce.
    # nonce = 0

    # List of IP addresses of well known nodes.
    known-peers = []

    # How long the information about peer stays in database after the last communication with it
    peers-data-residence-time = 1d

    # How long peer stays in blacklist after getting in it
    black-list-residence-time = 15m

    # Breaks a connection if there is no message from the peer during this timeout
    break-idle-connections-timeout = 5m

    # How many network inbound network connections can be made
    max-inbound-connections = 100

    # Number of outbound network connections
    max-outbound-connections = 100

    # Number of connections from single host
    max-single-host-connections = 3

    # Timeout on network communication with other peers
    connection-timeout = 30s

    # Size of circular buffer to store unverified (not properly handshaked) peers
    max-unverified-peers = 100

    # If yes the node requests peers and sends known peers
    enable-peers-exchange = yes

    # If yes the node can blacklist others
    enable-blacklisting = yes

    # How often connected peers list should be broadcast
    peers-broadcast-interval = 2m

    # When accepting connection from remote peer, this node will wait for handshake for no longer than this value. If
    # remote peer fails to send handshake within this interval, it gets blacklisted. Likewise, when connecting to a
    # remote peer, this node will wait for handshake response for no longer than this value. If remote peer does not
    # respond in a timely manner, it gets blacklisted.
    handshake-timeout = 30s

    suspension-residence-time = 1m

    # When a new transaction comes from the network, we cache it and doesn't push this transaction again when it comes
    # from another peer.
    # This setting setups a timeout to remove an expired transaction in the elimination cache.
    received-txs-cache-timeout = 3m

    upnp {
      # Enable UPnP tunnel creation only if you router/gateway supports it. Useful if your node is running in home
      # network. Completely useless if you node is in cloud.
      enable = no

      # UPnP timeouts
      gateway-timeout = 7s
      discover-timeout = 3s
    }

    # Logs incoming and outgoing messages
    traffic-logger {
      # Codes of transmitted messages to ignore. See MessageSpec.messageCode
      ignore-tx-messages = [1, 2, 23, 25, 26, 29, 30]

      # Codes of received messages to ignore. See MessageSpec.messageCode
      ignore-rx-messages = [1, 2, 25]
    }
  }

  # Wallet settings
  wallet {
    # Path to wallet file
    file = ${waves.directory}"/wallet/wallet.dat"

    # Password to protect wallet file
    # password = "some string as password"

    # The base seed, not an account one!
    # By default, the node will attempt to generate a new seed. To use a specific seed, uncomment the following line and
    # specify your base58-encoded seed.
    # seed = "BASE58SEED"
  }

  # Blockchain settings
  blockchain {
    # Blockchain type. Could be TESTNET | MAINNET | CUSTOM. Default value is TESTNET.
    type = TESTNET

    # 'custom' section present only if CUSTOM blockchain type is set. It's impossible to overwrite predefined 'testnet' and 'mainnet' configurations.
    custom {
      include "custom-defaults.conf"
    }
  }

  # New blocks generator settings
  miner {
    # Enable/disable block generation
    enable = yes

    # Required number of connections (both incoming and outgoing) to attempt block generation. Setting this value to 0
    # enables "off-line generation".
    quorum = 3

    # Enable block generation only in the last block is not older the given period of time
    interval-after-last-block-then-generation-is-allowed = 1d

    # Mining attempts delay, if no quorum available
    no-quorum-mining-delay = 5s

    # Interval between microblocks
    micro-block-interval = 2s

    # Max amount of transactions in micro block
    max-transactions-in-micro-block = 255

    # Miner references the best microblock which is at least this age
    min-micro-block-age = 500ms

    # Minimal block generation offset
    minimal-block-generation-offset = 0

    # Private keys used for mining
    private-keys = []
  }

  # Node's REST API settings
  rest-api {
    # Enable/disable REST API
    enable = yes

    # Network address to bind to
    bind-address = "127.0.0.1"

    # Port to listen to REST API requests
    port = 6869

    # Hash of API key string
    api-key-hash = ""

    # CORS headers returned with responses
    cors-headers {
      # HTTP headers that can be used during the external request
      access-control-allow-headers = [ "Authorization", "Content-Type", "X-Requested-With", "Timestamp", "Signature" ]

      # Origin that can access the response from requesting code.
      # By default any websites are able to use HTTP API.
      access-control-allow-origin = "origin-from-request"

      # Allowed methods when accessing a resource
      access-control-allow-methods = ["OPTIONS", "POST", "PUT", "GET", "DELETE"]

      # Enable/disable exposing the response to the frontend JS code when the request's credentials mode is include
      access-control-allow-credentials = yes
    }

    # Max number of transactions
    # returned by /transactions/address/{address}/limit/{limit}
    transactions-by-address-limit = 1000
    transaction-snapshots-limit = 100
    distribution-address-limit = 1000
    data-keys-request-limit = 1000
    asset-details-limit = 100
    blocks-request-limit = 100

    # The limit of complexity of a function that is not Callable (/utils/script/evaluate)
    evaluate-script-complexity-limit = 52000

    # Max number of time-limited pool threads (script compile/decompile/estimate)
    limited-pool-threads = 2

    # Max number of heavy-request-processor pool threads (/transactions/address/{address}/limit/{limit} and others)
    # When not configured explicitly, min(4, Runtime.getRuntime.availableProcessors() * 2) threads are used.
    # heavy-request-processor-pool-threads = 8

    # Minimum number of peers to accept transactions
    minimum-peers = 1
  }

  # Nodes synchronization settings
  synchronization {

    # How many blocks could be rolled back if fork is detected. If fork is longer than this rollback is impossible.
    max-rollback = 100

    # Timeout to receive all requested blocks
    synchronization-timeout = 60s

    # How much time to remember processed block signatures
    processed-blocks-cache-timeout = 3m

    # Time to live for broadcast score
    score-ttl = 90s

    # Max baseTarget value. Stop node when baseTarget greater than this param. No limit if it is not defined.
    # max-base-target = 200

    # Settings for invalid blocks cache
    invalid-blocks-storage {
      # Maximum elements in cache
      max-size = 30000

      # Time to store invalid blocks and blacklist their owners in advance
      timeout = 5m
    }

    # History replier caching settings
    history-replier {
      # Max microblocks to cache
      max-micro-block-cache-size = 50

      # Max blocks to cache
      max-block-cache-size = 20
    }

    # Utx synchronizer caching settings
    utx-synchronizer {
      # Max microblocks to cache
      network-tx-cache-size = 1000000

      # Max scheduler threads
      max-threads = 8

      # Max pending queue size
      max-queue-size = 5000

      # Send transaction to peers on broadcast request even if it's already in utx-pool
      allow-tx-rebroadcasting = yes
    }

    # MicroBlock synchronizer settings
    micro-block-synchronizer {
      # How much time to wait before a new request of a microblock will be done
      wait-response-timeout = 2s

      # How much time to remember processed microblock signatures
      processed-micro-blocks-cache-timeout = 3m

      # How much time to remember microblocks and their nodes to prevent same processing
      inv-cache-timeout = 45s
    }
  }

  # Unconfirmed transactions pool settings
  utx {
    # Pool size
    max-size = 100000
    # Pool size in bytes
    max-bytes-size = 52428800 // 50 MB
    # Pool size for scripted transactions
    max-scripted-size = 5000
    # Blacklist transactions from these addresses (Base58 strings)
    blacklist-sender-addresses = []
    # Allow transfer transactions from the blacklisted addresses to these recipients (Base58 strings)
    allow-blacklisted-transfer-to = []
    # Prioritize transactions from these addresses (Base58 strings)
    fast-lane-addresses = []
    # Allow transactions from smart accounts
    allow-transactions-from-smart-accounts = true
    # Allow skipping checks with highest fee
    allow-skip-checks = true
    # Allow full transaction validation while utx cleanup
    force-validate-in-cleanup = true
    # Full execution instead of limited
    always-unlimited-execution = false
  }

  features {
    auto-shutdown-on-unsupported-feature = yes
    supported = []
  }

  rewards {
    # desired = 0
  }

  extensions = [
    # com.wavesplatform.api.grpc.GRPCServerExtension
  ]

  # How much time to wait for extensions' shutdown
  extensions-shutdown-timeout = 5 minutes

  # Maximum size of transaction validation error log
  max-tx-error-log-size = 1048576 // 1MB
}

# WARNING: No user-configurable settings below this line.

akka {
  daemonic = on
  loglevel = "INFO"
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
  log-dead-letters-during-shutdown = false

  http.server {
    max-connections = 128
    request-timeout = 20s
    parsing {
      max-method-length = 64
      max-content-length = 1m
    }
  }

  io.tcp {
    direct-buffer-size = 1536 KiB
    trace-logging = off
  }
}

include "deprecated-settings.conf"




© 2015 - 2025 Weber Informatics LLC | Privacy Policy