## 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 recent DAGs to sync at startup. Each DAG is 1 hour of ## message history. This can be larger than 24 if history_retention_dags ## is also larger. #dags_count = 24 ## Archive mode never prunes rotating DAGs. Storage use grows for as long as ## the node runs. history_retention_dags is ignored when this is enabled. #archive_mode = false ## How many rotating DAGs a normal node retains locally. This controls how ## much history the node can serve or lazily sync before old DAGs are pruned. #history_retention_dags = 24 ## Sets Datastore Path #datastore = "~/.local/share/darkfi/darkirc/darkirc_db" ## Sled cache capacity for the DarkIRC/EventGraph datastore, in MiB #sled_cache_mb = 64 ## Enable RLN proof generation and verification. Disabled by default to skip ## RLN key loading, identity SMT state, proof generation, and proof verification. #rln_enabled = false ## Datastore path for RLN proving and verifying keys #zk_key_datastore = "~/.local/share/darkfi/darkirc/zk_keys" ## Sled cache capacity for the RLN key datastore, in MiB #zk_key_sled_cache_mb = 16 ## 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_mode = false ## JSON-RPC settings [rpc] ## JSON-RPC listen URL rpc_listen = "tcp://127.0.0.1:9605" ## 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/p2p" # 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:9600", "tcp+tls://lilith1.dark.fi:9600"] ## Manual peers to connect to #peers = [] ## P2P accept addresses #inbound = ["tcp+tls://0.0.0.0:9600", "tcp+tls://[::]:9600"] ## Addresses we want to advertise to peers (optional) ## These should be reachable externally #external_addrs = ["tcp+tls://my.resolveable.address:9600"] [net.profiles."tor"] ## Seed nodes to connect to seeds = [ "tor://g7fxelebievvpr27w7gt24lflptpw3jeeuvafovgliq5utdst6xyruyd.onion:9600", "tor://yvklzjnfmwxhyodhrkpomawjcdvcaushsj6torjz2gyd7e25f3gfunyd.onion:9600", ] ## Manual peers to connect to #peers = [] ## P2P accept addresses #inbound = ["tor://127.0.0.1:9601"] [net.profiles."i2p"] ## Seed nodes to connect to seeds = [ ##TODO: replace with an official seed address "i2p://6l2rdfriixo2nh5pr5bt555lyz56qox2ikzia4kuzm4okje7gtmq.b32.i2p:9600" ] ## Manual peers to connect to #peers = [] ## P2P accept addresses #inbound = ["tcp://127.0.0.1:9601"] ## Addresses we want to advertise to peers (optional) ## These should be reachable externally #external_addrs = ["i2p://youraddress.b32.i2p:9601"] [net.profiles."socks5"] ## Seed nodes to connect to seeds = [ "socks5://127.0.0.1:9050/g7fxelebievvpr27w7gt24lflptpw3jeeuvafovgliq5utdst6xyruyd.onion:9600", "socks5://127.0.0.1:9050/yvklzjnfmwxhyodhrkpomawjcdvcaushsj6torjz2gyd7e25f3gfunyd.onion:9600", ] ## 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:9600", #"socks5+tls://127.0.0.1:1080/lilith1.dark.fi:9600" ] ## Manual peers to connect to #peers = [] [net.profiles."tor+tls"] ## Seed nodes to connect to seeds = [ "tor+tls://lilith0.dark.fi:9600", "tor+tls://lilith1.dark.fi:9600" ] ## Manual peers to connect to #peers = [] [net.profiles."tcp"] ## Seed nodes to connect to #seeds = ["tcp://127.0.0.1:9600"] ## Manual peers to connect to #peers = [] ## P2P accept addresses #inbound = ["tcp://127.0.0.1:9600"] ## Addresses we want to advertise to peers #external_addrs = ["tcp://127.0.0.1:9600"] ## ==================== ## IRC channel settings ## ==================== ## ## You can create a shared secret with `darkirc --gen-channel-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. After changing contacts, send /rehash from ## an IRC client (or restart darkirc) to reload them. ## ## 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"