## darkfid configuration file
##
## Please make sure you go through all the settings so you can configure
## your daemon properly.
##
## The default values are left commented. They can be overridden either by
## uncommenting, or by using the command-line.

# Blockchain network to use
network = "testnet"

# Testnet blockchain network configuration
[network_config."testnet"]
# Path to the blockchain database directory
database = "~/.local/share/darkfi/darkfid/testnet"

# Confirmation threshold, denominated by number of blocks
threshold = 6

# PoW block production target, in seconds
pow_target = 120

# Skip syncing process and start node right away
skip_sync = false

# Disable transaction's fee verification, used for testing
skip_fees = false

# Optional sync checkpoint height
#checkpoint_height = 0

# Optional sync checkpoint hash
#checkpoint = ""

# Garbage collection task transactions batch size
txs_batch_size = 50

## Testnet JSON-RPC settings
[network_config."testnet".rpc]
# JSON-RPC listen URL
rpc_listen = "tcp://127.0.0.1:8340"

# Disabled RPC methods
rpc_disabled_methods = ["p2p.get_info"]

## Testnet JSON-RPC settings for stratum mining requests (optional)
#[network_config."testnet".stratum_rpc]
# JSON-RPC listen URL (stratum mining)
#rpc_listen = "tcp://127.0.0.1:8341"

# Disabled RPC methods (stratum mining)
#rpc_disabled_methods = []

## Testnet JSON-RPC settings for p2pool merge mining requests (optional)
#[network_config."testnet".mm_rpc]
# JSON-RPC listen URL (merge mining)
#rpc_listen = "http+tcp://127.0.0.1:8341"

# Disabled RPC methods (merge mining)
#rpc_disabled_methods = []

## Testnet P2P network settings
[network_config."testnet".net]
# Path to the P2P datastore
p2p_datastore = "~/.local/share/darkfi/darkfid/testnet"

# Path to a configured hostlist for saving known peers
hostlist = "~/.local/share/darkfi/darkfid/testnet/p2p_hostlist.tsv"

# P2P accept addresses the instance listens on for inbound connections
# You can also use an IPv6 address
#inbound = ["tcp+tls://0.0.0.0:8342"]
# IPv6 version:
#inbound = ["tcp+tls://[::]:8342"]
# Combined:
#inbound = ["tcp+tls://0.0.0.0:8342", "tcp+tls://[::]:8342"]

# P2P external addresses the instance advertises so other peers can
# reach us and connect to us, as long as inbound addrs are configured.
# You can also use an IPv6 address
#external_addrs = ["tcp+tls://XXX.XXX.XXX.XXX:8342"]
# IPv6 version:
#external_addrs = ["tcp+tls://[ipv6 address here]:8342"]
# Combined:
#external_addrs = ["tcp+tls://XXX.XXX.XXX.XXX:8342", "tcp+tls://[ipv6 address here]:8342"]

# Peer nodes to manually connect to
#peers = []

# Seed nodes to connect to for peer discovery and/or adversising our
# own external addresses
seeds = ["tcp+tls://lilith0.dark.fi:8342", "tcp+tls://lilith1.dark.fi:8342"]
#seeds = [
#    "tor://g7fxelebievvpr27w7gt24lflptpw3jeeuvafovgliq5utdst6xyruyd.onion:8343",
#    "tor://yvklzjnfmwxhyodhrkpomawjcdvcaushsj6torjz2gyd7e25f3gfunyd.onion:8343",
#]

# Whitelisted network transports for outbound connections
allowed_transports = ["tcp+tls"]

# Transports you want to be mixed (e.g. Tor would be allowed to connect to `tcp://`
# if tcp is added to mixed_transports and tor is added to allowed_transports)
#mixed_transports = []

# Tor Socks5 proxy
#tor_socks5_proxy = "socks5://127.0.0.1:9050"

# Nym Socks5 proxy
#nym_socks5_proxy = "socks5://127.0.0.1:1080"

# I2p Socks5 proxy
#i2p_socks5_proxy = "socks5://127.0.0.1:4447"

# Outbound connection slots number, this many connections will be
# attempted. (This does not include manual connections)
outbound_connections = 8

# Inbound connections slots number, this many active inbound connections
# will be allowed. (This does not include manual or outbound connections)
#inbound_connections = 0

# Manual connections retry limit, 0 for forever looping
#manual_attempt_limit = 0

# Outbound connection timeout (in seconds)
#outbound_connect_timeout = 10

# Exchange versions (handshake) timeout (in seconds)
#channel_handshake_timeout = 4

# Ping-pong exchange execution interval (in seconds)
#channel_heartbeat_interval = 10

# Allow localnet hosts
localnet = false

# Cooling off time for peer discovery when unsuccessful
#outbound_peer_discovery_cooloff_time = 30

# Time between peer discovery attempts
#outbound_peer_discovery_attempt_time = 5

# Mainnet blockchain network configuration
[network_config."mainnet"]
# Path to the blockchain database directory
database = "~/.local/share/darkfi/darkfid/mainnet"

# Confirmation threshold, denominated by number of blocks
threshold = 11

# PoW block production target, in seconds
pow_target = 120

# Skip syncing process and start node right away
skip_sync = false

# Disable transaction's fee verification, used for testing
skip_fees = false

# Optional sync checkpoint height
#checkpoint_height = 0

# Optional sync checkpoint hash
#checkpoint = ""

# Garbage collection task transactions batch size
txs_batch_size = 50

## Mainnet JSON-RPC settings
[network_config."mainnet".rpc]
# JSON-RPC listen URL
rpc_listen = "tcp://127.0.0.1:8440"

# Disabled RPC methods
rpc_disabled_methods = ["p2p.get_info"]

## Mainnet JSON-RPC settings for stratum mining requests (optional)
#[network_config."mainnet".stratum_rpc]
# JSON-RPC listen URL (stratum mining)
#rpc_listen = "tcp://127.0.0.1:8441"

# Disabled RPC methods (stratum mining)
#rpc_disabled_methods = []

## Mainnet JSON-RPC settings for p2pool merge mining requests (optional)
#[network_config."mainnet".mm_rpc]
# JSON-RPC listen URL (merge mining)
#rpc_listen = "http+tcp://127.0.0.1:8441"

# Disabled RPC methods (merge mining)
#rpc_disabled_methods = []

## Mainnet P2P network settings
[network_config."mainnet".net]
# Path to the P2P datastore
p2p_datastore = "~/.local/share/darkfi/darkfid/mainnet"

# Path to a configured hostlist for saving known peers
hostlist = "~/.local/share/darkfi/darkfid/mainnet/p2p_hostlist.tsv"

# P2P accept addresses the instance listens on for inbound connections
# You can also use an IPv6 address
#inbound = ["tcp+tls://0.0.0.0:8442"]
# IPv6 version:
#inbound = ["tcp+tls://[::]:8442"]
# Combined:
#inbound = ["tcp+tls://0.0.0.0:8442", "tcp+tls://[::]:8442"]

# P2P external addresses the instance advertises so other peers can
# reach us and connect to us, as long as inbound addrs are configured.
# You can also use an IPv6 address
#external_addrs = ["tcp+tls://XXX.XXX.XXX.XXX:8442"]
# IPv6 version:
#external_addrs = ["tcp+tls://[ipv6 address here]:8442"]
# Combined:
#external_addrs = ["tcp+tls://XXX.XXX.XXX.XXX:8442", "tcp+tls://[ipv6 address here]:8442"]

# Peer nodes to manually connect to
#peers = []

# Seed nodes to connect to for peer discovery and/or adversising our
# own external addresses
seeds = ["tcp+tls://lilith0.dark.fi:8442", "tcp+tls://lilith1.dark.fi:8442"]

# Whitelisted network transports for outbound connections
allowed_transports = ["tcp+tls"]

# Transports you want to be mixed (e.g. Tor would be allowed to connect to `tcp://`
# if tcp is added to mixed_transports and tor is added to allowed_transports)
#mixed_transports = []

# Tor Socks5 proxy
#tor_socks5_proxy = "socks5://127.0.0.1:9050"

# Nym Socks5 proxy
#nym_socks5_proxy = "socks5://127.0.0.1:1080"

# I2p Socks5 proxy
#i2p_socks5_proxy = "socks5://127.0.0.1:4447"

# Outbound connection slots number, this many connections will be
# attempted. (This does not include manual connections)
outbound_connections = 8

# Inbound connections slots number, this many active inbound connections
# will be allowed. (This does not include manual or outbound connections)
#inbound_connections = 0

# Manual connections retry limit, 0 for forever looping
#manual_attempt_limit = 0

# Outbound connection timeout (in seconds)
#outbound_connect_timeout = 10

# Exchange versions (handshake) timeout (in seconds)
#channel_handshake_timeout = 4

# Ping-pong exchange execution interval (in seconds)
#channel_heartbeat_interval = 10

# Allow localnet hosts
localnet = false

# Cooling off time for peer discovery when unsuccessful
#outbound_peer_discovery_cooloff_time = 30

# Time between peer discovery attempts
#outbound_peer_discovery_attempt_time = 5

# Nodes to avoid interacting with for the duration of the program, in the
# format ["host", ["scheme", "scheme"], [port, port]].
# If scheme is left empty it will default to "tcp+tls".
# If ports are left empty all ports from this peer will be blocked.
#blacklist = [["example.com", ["tcp"], [8551, 23331]]]

# Localnet blockchain network configuration
[network_config."localnet"]
# Path to the blockchain database directory
database = "~/.local/share/darkfi/darkfid/localnet"

# Confirmation threshold, denominated by number of blocks
threshold = 3

# PoW block production target, in seconds
pow_target = 10

# Optional fixed PoW difficulty, used for testing
pow_fixed_difficulty = 1

# Skip syncing process and start node right away
skip_sync = true

# Disable transaction's fee verification, used for testing
skip_fees = false

# Optional sync checkpoint height
#checkpoint_height = 0

# Optional sync checkpoint hash
#checkpoint = ""

# Garbage collection task transactions batch size
txs_batch_size = 50

## Localnet JSON-RPC settings
[network_config."localnet".rpc]
# JSON-RPC listen URL
rpc_listen = "tcp://127.0.0.1:8240"

# Disabled RPC methods
rpc_disabled_methods = ["p2p.get_info"]

## Localnet JSON-RPC settings for stratum mining requests (optional)
#[network_config."localnet".stratum_rpc]
# JSON-RPC listen URL (stratum mining)
#rpc_listen = "tcp://127.0.0.1:8241"

# Disabled RPC methods (stratum mining)
#rpc_disabled_methods = []

## Localnet JSON-RPC settings for p2pool merge mining requests (optional)
#[network_config."localnet".mm_rpc]
# JSON-RPC listen URL (merge mining)
#rpc_listen = "http+tcp://127.0.0.1:8241"

# Disabled RPC methods (merge mining)
#rpc_disabled_methods = []

## Localnet P2P network settings
[network_config."localnet".net]
# Path to the P2P datastore
p2p_datastore = "~/.local/share/darkfi/darkfid/localnet"

# Path to a configured hostlist for saving known peers
hostlist = "~/.local/share/darkfi/darkfid/localnet/p2p_hostlist.tsv"

# P2P accept addresses the instance listens on for inbound connections
#inbound = ["tcp+tls://0.0.0.0:8242"]

# P2P external addresses the instance advertises so other peers can
# reach us and connect to us, as long as inbound addrs are configured.
#external_addrs = []

# Peer nodes to manually connect to
#peers = []

# Seed nodes to connect to for peer discovery and/or adversising our
# own external addresses
#seeds = []

# Whitelisted network transports for outbound connections
#allowed_transports = ["tcp+tls"]

# Transports you want to be mixed (e.g. Tor would be allowed to connect to `tcp://`
# if tcp is added to mixed_transports and tor is added to allowed_transports)
#mixed_transports = []

# Tor Socks5 proxy
#tor_socks5_proxy = "socks5://127.0.0.1:9050"

# Nym Socks5 proxy
#nym_socks5_proxy = "socks5://127.0.0.1:1080"

# I2p Socks5 proxy
#i2p_socks5_proxy = "socks5://127.0.0.1:4447"

# Outbound connection slots number, this many connections will be
# attempted. (This does not include manual connections)
#outbound_connections = 8

# Inbound connections slots number, this many active inbound connections
# will be allowed. (This does not include manual or outbound connections)
#inbound_connections = 8

## White connection percent
# gold_connect_count = 2

## White connection percent
# white_connect_percent = 70

# Manual connections retry limit, 0 for forever looping
#manual_attempt_limit = 0

# Outbound connection timeout (in seconds)
#outbound_connect_timeout = 10

# Exchange versions (handshake) timeout (in seconds)
#channel_handshake_timeout = 4

# Ping-pong exchange execution interval (in seconds)
#channel_heartbeat_interval = 10

# Allow localnet hosts
localnet = true

# Cooling off time for peer discovery when unsuccessful
#outbound_peer_discovery_cooloff_time = 30

# Time between peer discovery attempts
#outbound_peer_discovery_attempt_time = 5
