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

arkz-core_2.12.2.4.0.source-code.reference.conf Maven / Gradle / Ivy

The newest version!
sparkz {

  # Execution context for all tasks, except of akka actors.
  executionContext {
    type = Dispatcher
    executor = "thread-pool-executor"
    thread-pool-executor {
      fixed-pool-size = 16
    }
    throughput = 1
  }

  # Node data directory
  dataDir = ${user.home}"/sparkz"
  # Node logs directory
  logDir = ${sparkz.dataDir}"/log"

  # Node's REST API settings
  restApi {
    # Network address to bind to
    bindAddress = "127.0.0.1:6886"

    # Hash of API key string
    #apiKeyHash = ""

    # Enable/disable CORS support.
    # This is an optional param. It would allow cors in case if this setting is set.
    # If this setting will be omitted cors will be prohibited.
    corsAllowedOrigin = "*"

    # request processing timeout
    timeout = 5s
  }

  # P2P Network settings
  network {

    #####################################################
    # Node information to be declared during handshake  #
    #####################################################

    # Node name to send during handshake
    nodeName = "My node"

    # Network version send in handshake
    appVersion = 0.0.1

    # Network agent name. May contain information about client code
    # stack, starting from core code-base up to the end graphical interface.
    # Basic format is `/Name:Version(comments)/Name:Version/.../`,
    # e.g. `/Ergo-Scala-client:2.0.0(iPad; U; CPU OS 3_2_1)/AndroidBuild:0.8/`
    agentName = "/scala-client:0.0.1/"

    # Network address
    bindAddress = "0.0.0.0:9068"

    ########################
    # Connection settings  #
    ########################

    # Magic bytes, that will be added to every p2p message to allow
    # distinguish different networks (e.g. testnet/mainnet).
    magicBytes = [12, 34, 56, 78]

    # max message size = 16 * 1024 * 1024
    messageLengthBytesLimit = 16777216

    # String with IP address and port to send as external address during handshake. 
    #
    # 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 `bindAddress:port` and 
    # broadcast its `declaredAddress` to its peers. 
    #
    # If declared address is not set, the node will not listen to incoming connections at all.
    # declaredAddress = ""

    # Accept only local connections
    localOnly = false

    # Add delay for sending message
    # addedMaxDelay = 0ms

    ##################
    # Peers settings #
    ##################

    # Network handshake timeout
    handshakeTimeout = 30s

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

    # Force node to only try connecting to known peers
    onlyConnectToKnownPeers = false

    # Interval between GetPeers messages to be send by our node to a random one
    getPeersInterval = 2m

    # Number of incoming network connections
    maxIncomingConnections = 10

    # Number of outgoing network connections
    maxOutgoingConnections = 10

    # Number of dedicated connections to forgers. This works in addition to the maxOutgoingConnections ones
    maxForgerConnections = 100

    # Network connection timeout
    connectionTimeout = 1s

    ############################
    # Peers' storages settings #
    ############################

    # Interval to backup peers' storages
    storageBackupInterval = 15m

    # Delay to start peers' backup
    storageBackupDelay = 5m

    ############################
    # Delivery settings limits #
    ############################

    # Network delivery timeout
    deliveryTimeout = 2s

    # Max number of delivery checks for a persistent modifier.
    # Stop expecting modifier (and penalize peer) if it was not delivered on time.
    maxDeliveryChecks = 2

    # Penalize remote peers not answering to our requests during in the RequestTracker
    penalizeNonDelivery = true

    ############
    # Timeouts #
    ############

    # Interval between `SyncInfo` messages when our node is not synchronized yet
    syncInterval = 5s

    # Interval between `SyncInfo` messages when our node is already synchronized
    syncIntervalStable = 20s

    # Synchronization timeout
    syncTimeout = 5s

    # Synchronization status update interval
    syncStatusRefresh = 2m

    # Synchronization status update interval for stable regime
    syncStatusRefreshStable = 4m

    # Timeout for dropping dead connections
    inactiveConnectionDeadline = 12m

    # Network controller timeout
    controllerTimeout = 5s

    ###############
    # Size limits #
    ###############

    # Maximum modifier spec message size
    maxModifiersSpecMessageSize = 1048576

    # Maximum size of a handshaking message
    maxHandshakeSize = 8096

    # Accept maximum inv objects
    maxInvObjects = 512

    # Limit for number of modifiers to request and process at once
    maxRequestedPerPeer = 1024

    # Enables or disables slow mode - ignoring requesting or broadcasting new transaction when node is overloaded.
    slowModeFeatureFlag = false

    # Threshold of average time it takes node to apply a new modifier(block or transaction),
    # after which we consider it overloaded and start throttling.
    slowModeThresholdMs = 2000

    # Maximum number of modifiers that can be requested from remote peers,
    # when the node is considered overloaded. Only affects transactions.
    slowModeMaxRequested = 150

    # The impact is single measurement has on a an average processing value.
    slowModeMeasurementImpact = 0.1

    # Enabled or disables rebroadcasting of modifiers after the slow mode is over.
    rebroadcastEnabled = false

    # Delay between rebroadcasting batches of modifiers.
    rebroadcastDelay = 30s

    # Maximum number of modifiers to keep in the rebroadcast queue.
    rebroadcastQueueSize = 1024

    # number of modifiers to re-broadcast every rebroadcastDelay
    rebroadcastBatchSize = 75

    # Desired number of inv objects. Our requests will have this size.
    desiredInvObjects = 512

    # How many persistent modifiers to store in the cache.
    # The cache stores modifiers that are waiting to be applied.
    maxModifiersCacheSize = 1024

    # Maximum number of PeerSpec objects in one Peers message
    maxPeerSpecObjects = 64

    # Default ban duration, unless permanent penalty is applied
    temporalBanDuration = 60m

    # Misbehaving peer penalty score will not be increased withing this time interval,
    # unless permanent penalty is applied
    penaltySafeInterval = 1m

    # Max penalty score peer can accumulate before being banned
    penaltyScoreThreshold = 100

    #########################
    # Other settings        #
    #########################

    # Enables transactions in the mempool
    handlingTransactionsEnabled = true

    # Is this node a forger
    isForgerNode = false
  }

  ntp {
    # NTP server address
    server = "pool.ntp.org"

    # update time rate
    updateEvery = 30m

    # server answer timeout
    timeout = 30s
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy