Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Run an Archive DarkIRC Node

An archive node keeps every rotating DAG in its datastore instead of deleting old history. Run it continuously if you want to preserve and serve DarkIRC message history. Disk use and startup work grow over time, so use persistent storage, monitor its free space, and back it up.

Build and create a dedicated configuration

From the repository root, build and run DarkIRC once:

% make darkirc
% ./darkirc

The first run creates ~/.config/darkfi/darkirc_config.toml and continues starting the node. Stop it with Ctrl-C before editing the file.

An archive should use a dedicated DarkIRC datastore. Do not point two running processes at the same datastore:

# Keep message bodies; header-only mode is not suitable for a complete archive.
fast_mode = false

# Sync the latest full day when starting or reconnecting.
dags_count = 24

# Never prune rotating DAGs. history_retention_dags is ignored in this mode.
archive_mode = true

datastore = "~/.local/share/darkfi/darkirc/archive/darkirc_db"

[net]
p2p_datastore = "~/.local/share/darkfi/darkirc/archive/p2p"
hostlist = "~/.local/share/darkfi/darkirc/archive/p2p_hostlist.tsv"

Keep the remaining [net] and [net.profiles.*] tables from the generated configuration. Configure at least one working outbound profile so the node can sync. A reachable inbound address and matching external_addrs entry let more peers discover the archive and request its history; follow the public node guide for that transport setup.

Understand archive bootstrap

archive_mode prevents future pruning and reloads all DAG trees already in the datastore. It does not recreate history that was pruned before archive mode was enabled. A fresh archive initially syncs the dags_count recent DAGs—24 hours with the configuration above—and then retains every new hourly DAG.

To operate an archive containing history from before it was started, bootstrap it from a known-good archive datastore while both nodes are stopped. Copy the entire DarkIRC datastore, not individual sled trees. Be aware that this datastore can also contain local NickServ account secrets; a purpose-built archive should not be used for personal IRC accounts. See the operations and recovery notes before copying or restoring it.

Start and verify

Start the archive with its configuration:

% ./darkirc --config ~/.config/darkfi/darkirc_config.toml

At startup, the logs should state that archive mode is enabled and then report the recent full sync:

Archive mode enabled; retaining all local DAGs and syncing 24 recent DAG(s) at startup
Event DAG synced successfully (full mode, 24 dag(s))

Keep the process running across hourly rotations. Stop it with Ctrl-C for a clean datastore flush before backups, upgrades, or datastore transfers. archive_mode, sync, datastore, and network changes require a restart; they cannot be applied with IRC /rehash.