cardano course
  • Welcome!
  • Video lessons
  • Handbook
    • Module 1. Building and running the node
      • Building the node
      • Running the node and connecting to a network
    • Module 2. Basic operations
      • Creating keys and addresses
      • Creating a simple transaction
      • Registering the stake address and delegating
    • Module 3. Protocol parameters and configuration files
      • Protocol parameters
      • Byron genesis file
      • Shelley genesis file
      • Alonzo genesis file
      • Conway genesis file
      • Node configuration file
      • Topology file
    • Module 4. Peer-to-peer (P2P) networking
    • Module 5. Creating a stake pool
      • The setup
      • Generating keys
      • Registering a stake pool
      • Runtime system options
      • Running the nodes
      • Stake snapshots
      • Upgrading cardano-node and cardano-cli
      • Pool operations and maintenance
      • Retiring a stake pool
    • Module 6. Monitoring the nodes
    • Module 7. Cardano governance
      • Update proposals
      • Polls
    • Module 8. Setting up a local cluster
      • Creating a local cluster
      • Spending the genesis UTXO
      • From Byron to Shelley
      • Moving funds to a Shelley address
      • Creating a first stake pool
      • Bringing decentralization parameter down to .80
      • From Shelley to Alonzo
      • Creating a second stake pool before moving to the Babbage era
      • Redelegating genesis keys
      • Vasil hard fork
      • Creating a local cluster with the mkfiles script
    • Module 9. Simple scripts and Plutus scripts
    • Module 10. New tracing system
    • Module 11. Running the SMASH server
    • Module 12. Running the token metadata server
  • Curated playlist
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Handbook
  2. Module 3. Protocol parameters and configuration files

Node configuration file

PreviousConway genesis fileNextTopology file

Last updated 1 year ago

Was this helpful?

Cardano mainnet node configuration file:

You can also use YAML:

################################################################################
# Mainnet Cardano node configuration

##### Locations #####

AlonzoGenesisFile: mainnet-alonzo-genesis.json
AlonzoGenesisHash: 7e94a15f55d1e82d10f09203fa1d40f8eede58fd8066542cf6566008068ed874
ByronGenesisFile: mainnet-byron-genesis.json
ByronGenesisHash: 5f20df933584822601f9e3f8c024eb5eb252fe8cefb24d1317dc3d432e940ebb
ShelleyGenesisFile: mainnet-shelley-genesis.json
ShelleyGenesisHash: 1a3be38bcbb7911969283716ad7aa550250226b76a61fc51cc9a9a35d9276d81

##### Core protocol parameters #####

Protocol: Cardano

# The mainnet does not include the network magic into addresses. Testnets do.
RequiresNetworkMagic: RequiresNoMagic

##### Update system parameters #####

# This protocol version number gets used by block-producing nodes as part
# of the system for agreeing on and synchronizing protocol updates.
#
# See https://github.com/input-output-hk/cardano-node/blob/master/cardano-node/src/Cardano/Node/Protocol/Cardano.hs#L199
LastKnownBlockVersion-Major: 3
LastKnownBlockVersion-Minor: 0
LastKnownBlockVersion-Alt: 0
MaxKnownMajorProtocolVersion: 2

# In the Byron era, some software versions are also published on the chain.
# We do this only for Byron compatibility now.
ApplicationName: cardano-sl
ApplicationVersion: 1

##### Logging configuration #####

# Enable or disable logging overall
TurnOnLogging: True

# Enable the collection of various OS metrics such as memory and CPU use.
# These metrics are traced in the context name: 'cardano.node.metrics' and can
# be directed to the logs or monitoring backends.
TurnOnLogMetrics: True

# Global logging severity filter. Messages must have at least this severity to
# pass. Typical values would be Warning, Notice, Info, or Debug.
minSeverity: Info

# Log items can be rendered with more or less verbose detail.
# Verbosity ranges from MinimalVerbosity, NormalVerbosity to MaximalVerbosity
TracingVerbosity: NormalVerbosity

# The system supports a number of backends for logging and monitoring.
# This setting lists the backends that will be available to use in the
# configuration below. The logging backend is called Katip.
setupBackends:
  - KatipBK

# This specifies the default backends that trace output is sent to if it
# is not specifically configured to be sent to other backends.
defaultBackends:
  - KatipBK

# EKG is a simple metrics monitoring system. Uncomment the following to enable
# this backend and listen on the given local port and point your web browser to
# http://localhost:12788/
hasEKG: 12788

# The Prometheus monitoring system exports EKG metrics. Uncomment the following
# to listen on the given port. Output is provided on
# http://localhost:12789/metrics
# hasPrometheus:
#   - "127.0.0.1"
#   - 12789

# To enable the legacy 'TraceForwarder' backend, uncomment the following setting. Log
# items are then forwarded based on an entry in 'mapBackends' to a separate
# process running a 'TraceAcceptor'.
# Example using UNIX pipes:
# traceForwardTo:
#   tag: RemotePipe
#   contents: "logs/pipe"
#
# Example using Windows named pipes:
# traceForwardTo:
#   tag: RemotePipe
#   contents: "\\\\.\\pipe\\acceptor"
#
# Example using network socket:
# traceForwardTo:
#   tag: RemoteSocket
#   contents:
#     - "127.0.0.1"
#     - "2997"

# For the Katip logging backend we must set up outputs (called scribes)
# The available types of scribe are:
#   FileSK for files
#   StdoutSK/StderrSK for stdout/stderr
#   JournalSK for systemd's journal system
#   DevNullSK ignores all output
# The scribe output format can be ScText or ScJson. Log rotation settings can
# be specified in the defaults below or overridden on a per-scribe basis here.
setupScribes:
  - scKind: StdoutSK
    scName: stdout
    scFormat: ScText
    scRotation: null

# For the Katip logging backend this specifies the default scribes that trace
# output is sent to if it is not configured to be sent to other scribes.
defaultScribes:
  - - StdoutSK
    - stdout

# The default file rotation settings for katip scribes, unless overridden
# in the setupScribes above for specific scribes.
rotation:
  rpLogLimitBytes: 5000000
  rpKeepFilesNum:  10
  rpMaxAgeHours:   24


##### Coarse grained logging control #####

# Trace output from whole subsystems can be enabled/disabled using the following
# settings. This provides fairly coarse grained control, but it is relatively
# efficient at filtering out unwanted trace output.

TraceAcceptPolicy: True

# Trace BlockFetch client.
TraceBlockFetchClient: False

# Trace BlockFetch decisions made by the BlockFetch client.
TraceBlockFetchDecisions: False

# Trace BlockFetch protocol messages.
TraceBlockFetchProtocol: False

# Serialised Trace BlockFetch protocol messages.
TraceBlockFetchProtocolSerialised: False

# Trace BlockFetch server.
TraceBlockFetchServer: False

# Trace BlockchainTime.
# TraceBlockchainTime: False

# Verbose tracer of ChainDB
TraceChainDb: True

# Trace ChainSync client.
TraceChainSyncClient: False

# Trace ChainSync server (blocks).
TraceChainSyncBlockServer: False

# Trace ChainSync server (headers).
TraceChainSyncHeaderServer: False

# Trace ChainSync protocol messages.
TraceChainSyncProtocol: False

TraceConnectionManager: True

# Trace DNS Resolver messages.
TraceDNSResolver: True

# Trace DNS Subscription messages.
TraceDNSSubscription: True

TraceDiffusionInitialization: True

# Trace error policy resolution.
TraceErrorPolicy: True

# Trace local error policy resolution.
TraceLocalErrorPolicy: True

# Trace block forging.
TraceForge: True

# Trace Handshake protocol messages.
TraceHandshake: False

# Trace IP Subscription messages.
TraceIpSubscription: True

TraceLedgerPeers: True

TraceLocalRootPeers: True

TraceInboundGovernor: True

TracePeerSelection: True

TracePeerSelectionActions: True

TracePublicRootPeers: True

TraceServer: True


# Trace local ChainSync protocol messages.
TraceLocalChainSyncProtocol: False

# Trace local Handshake protocol messages.
TraceLocalHandshake: False

# Trace local TxSubmission protocol messages.
TraceLocalTxSubmissionProtocol: False

# Trace local TxSubmission server.
TraceLocalTxSubmissionServer: False

# Trace mempool.
TraceMempool: True

# Trace Mux Events.
TraceMux: False

# Trace TxSubmission server (inbound transactions).
TraceTxInbound: False

# Trace TxSubmission client (outbound transactions).
TraceTxOutbound: False

# Trace TxSubmission protocol messages.
TraceTxSubmissionProtocol: False


##### Fine grained logging control #####

# It is also possible to have more fine grained control over filtering of
# trace output and to match and route trace output to particular backends.
# This is less efficient than the coarse trace filters above but provides
# much more precise control.

options:

  # This routes metrics matching specific names to particular backends.
  # This overrides the 'defaultBackends' listed above. And note that it is
  # an override and not an extension so anything matched here will not
  # go to the default backend, only to the explicitly listed backends.
  mapBackends:
    cardano.node.metrics:
      - EKGViewBK

    cardano.node.resources:
      - EKGViewBK

  # # redirects traced values to a specific scribe which is identified by its
  # # type and its name, separated by "::":
  # mapScribes:
  #   cardano.node.metrics:
  #     - "FileSK::logs/mainnet.log"
  mapSubtrace:
    cardano.node.metrics:
      subtrace: Neutral

hasPrometheus:
  - 127.0.0.1
  - 12798

# Set or unset the mempool capacity override in number of bytes.
#
# This is intended for testing, and for low-resource machines to run with a smaller mempool.
# Please note that running with a large mempool is NOT recommended. The mempool is a
# just a network communication buffer and all the advice on "buffer bloat" applies, see:
# https://en.wikipedia.org/wiki/Bufferbloat
# The default size is two blocks, which is generally enough to ensure full blocks.
#
# MempoolCapacityBytesOverride: Integer | NoOverride
#
# Examples:
#   MempoolCapacityBytesOverride: 1000000 (1MB)
#   MempoolCapacityBytesOverride: NoOverride (default)
https://book.world.dev.cardano.org/environments/mainnet/config.jsonbook.world.dev.cardano.org
https://raw.githubusercontent.com/input-output-hk/cardano-node/master/configuration/cardano/mainnet-config.yaml
Page cover image