## This is the darkirc configuration file.
## Review it carefully.

## IRC listen URL
#irc_listen = "tcp://127.0.0.1:6667"

## TLS certificate path if IRC acceptor uses TLS (optional)
#irc_tls_cert = "/etc/letsencrypt/darkirc/fullchain.pem"

## TLS secret key path if IRC acceptor uses TLS (optional)
#irc_tls_secret = "/etc/letsencrypt/darkirc/privkey.pem"

## How many DAGs to be synced (each DAG represents a 1hr msg history),
## increasing this number means you get/sync previous hours msg history 
## as well (max. 24)
#dags_count = 8

## Sets Datastore Path
#datastore = "~/.local/share/darkfi/darkirc/darkirc_db"

## Sets DB logs replay datastore path
#replay_datastore = "~/.local/share/darkfi/darkirc/replayed_darkirc_db"

## Run in replay mode to store Sled DB instructions
## (for eventgraph debugging tool)
#replay_mode = false

## List of channels to autojoin for new client connections
autojoin = [
    "#dev",
    "#media",
    "#hackers",
    "#memes",
    "#philosophy",
    "#markets",
    "#math",
    "#random",
    "#lunardao",
]

## IRC server specific password
## (optional, but once configured, it is required from the IRC client side)
#password = "CHANGE_ME"

# Log to file. Off by default.
#log = "/tmp/darkirc.log"
# Set log level. 1 is info (default), 2 is debug, 3 is trace
#verbose = 2

## Running darkirc in header-only mode
## history won't be fetched but DAG sync fast
#fast_mod = false

## JSON-RPC settings
[rpc]
## JSON-RPC listen URL
rpc_listen = "tcp://127.0.0.1:26660"

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

# P2P network settings
[net]
# Magic Bytes to distinguish the p2p network
magic_bytes = [251, 229, 199, 181]

# Path to the P2P datastore
p2p_datastore = "~/.local/share/darkfi/darkirc"

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

## Outbound connection slots
# outbound_connections = 8

## Inbound connection slots
#inbound_connections = 8

## White connection percent
# gold_connect_count = 2

## White connection percent
# white_connect_percent = 70

# 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]]]

# Whitelisted transports for outbound connections
active_profiles = ["tor"]
#active_profiles = ["tcp+tls"]
#active_profiles = ["tor", "tor+tls"]

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

# 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"

[net.profiles."tcp+tls"]
## Seed nodes to connect to
seeds = ["tcp+tls://lilith0.dark.fi:25551", "tcp+tls://lilith1.dark.fi:25551"]

## Manual peers to connect to
#peers = []

## P2P accept addresses
#inbound = ["tcp+tls://0.0.0.0:26661", "tcp+tls://[::]:26661"]

## Addresses we want to advertise to peers (optional)
## These should be reachable externally
#external_addrs = ["tcp+tls://my.resolveable.address:26661"]

[net.profiles."tor"]
## Seed nodes to connect to
seeds = [
    "tor://g7fxelebievvpr27w7gt24lflptpw3jeeuvafovgliq5utdst6xyruyd.onion:25552",
    "tor://yvklzjnfmwxhyodhrkpomawjcdvcaushsj6torjz2gyd7e25f3gfunyd.onion:25552",
]

## Manual peers to connect to
#peers = []

## P2P accept addresses
#inbound = ["tor://127.0.0.1:26661"]

[net.profiles."i2p"]
## Seed nodes to connect to
seeds = [
    ##TODO: replace with an official seed address
    "i2p://6l2rdfriixo2nh5pr5bt555lyz56qox2ikzia4kuzm4okje7gtmq.b32.i2p:5262"
]

## Manual peers to connect to
#peers = []

## P2P accept addresses
#inbound = ["tcp://127.0.0.1:25551"]

## Addresses we want to advertise to peers (optional)
## These should be reachable externally
#external_addrs = ["i2p://youraddress.b32.i2p:25551"]

[net.profiles."socks5"]
## Seed nodes to connect to
seeds = [
    "socks5://127.0.0.1:9050/g7fxelebievvpr27w7gt24lflptpw3jeeuvafovgliq5utdst6xyruyd.onion:25552",
    "socks5://127.0.0.1:9050/yvklzjnfmwxhyodhrkpomawjcdvcaushsj6torjz2gyd7e25f3gfunyd.onion:25552",
]

## Manual peers to connect to
#peers = []

[net.profiles."socks5+tls"]
## Seed nodes to connect to
seeds = [
    #"socks5+tls://127.0.0.1:9050/lilith0.dark.fi:25551",
    #"socks5+tls://127.0.0.1:1080/lilith1.dark.fi:25551"
]

## Manual peers to connect to
#peers = []

[net.profiles."tor+tls"]
## Seed nodes to connect to
seeds = [
    "tor+tls://lilith0.dark.fi:25551",
    "tor+tls://lilith1.dark.fi:25551"
]

## Manual peers to connect to
#peers = []

[net.profiles."tcp"]
## Seed nodes to connect to
#seeds = ["tcp://127.0.0.1:25551"]

## Manual peers to connect to
#peers = []

## P2P accept addresses
#inbound = ["tcp://127.0.0.1:26661"]

## Addresses we want to advertise to peers
#external_addrs = ["tcp://127.0.0.1:26661"]

## ====================
## IRC channel settings
## ====================
##
## You can create a shared secret with `darkirc --gen-secret`.
## Never share this secret over unencrypted channels or with someone
## who you do not want to be able to read all the channel messages.
## Use it like this example:
#[channel."#foo"]
#secret = "7CkVuFgwTUpJn5Sv67Q3fyEDpa28yrSeL5Hg2GqQ4jfM"
#topic = "My secret channel"

[channel."#dev"]
topic = "DarkFi Development HQ"

[channel."#media"]
topic = "DarkFi Art, Fashion, Video, Memetics"

[channel."#markets"]
topic = "Crypto Market Talk"

[channel."#math"]
topic = "Math Talk"

[channel."#memes"]
topic = "DarkFi Meme Reality"

[channel."#philosophy"]
topic = "Philosophy Discussions"

[channel."#random"]
topic = "/b/"

[channel."#lunardao"]
topic = "LunarDAO talk"

## ================
## Contact settings
## ================
##
## In this section we configure our contacts and people we want to
## have encrypted DMs with. Whenever something in the configuration
## is changed, you can send a SIGHUP signal to the running darkirc
## instance to reload these.
##
## The format is:
## [contact."nickname"]
## dm_chacha_public = "{the_contact_public_key}"
## my_dm_chacha_secret = "{your_secret_key_for_this_contact}"
##
## "nickname" can be anything you want. This is how they will appear
## in your IRC client when they send you a DM.
##
## "dm_chacha_public" is the contacts' public key, which should be
## retrieved manually.
##
## "my_dm_chacha_secret" is the secret key used to decrypt direct
## messages sent to the public key (the counterpart to this secret key)
## you set for this contact. It is recommended to paste the public key
## here as a comment in order to be able to easily reference it for
## sharing. You can generate a keypair to use for a contact with:
## ./darkirc --gen-chacha-keypair
## Replace the secret key in the contact configuration with the
## generated one. You can generate and set a separate secret key for
## each contact, or reuse the same one in multiple contacts.
## **You should never share secret keys with anyone**
##
## Examples (set as many as you want):
#[contact."satoshi"]
#dm_chacha_public = "C9vC6HNDfGQofWCapZfQK5MkV1JR8Cct839RDUCqbDGK"
#my_dm_chacha_secret = "A3mLrq4aW9UkFVY4zCfR2aLdEEWVUdH4u8v4o2dgi4kC"
#
#[contact."anon"]
#dm_chacha_public = "7iTddcopP2pkvszFjbFUr7MwTcMSKZkYP6zUan22pxfX"
#my_dm_chacha_secret = "E229CzXev335cxhHiJyuzSapz7HMfNzf6ipbginFTvtr"
