# Bitcoin Knots Configuration Variables # Version - REQUIRED: Specify exact version/tag to build # The only version string. There used to be a second, v-prefixed copy # (bitcoin_knots_version) that nothing read - two hand-maintained copies of one # fact, with nothing keeping them in step. bitcoin_knots_version_short: "29.2.knots20251110" # Directories bitcoin_knots_dir: /opt/bitcoin-knots bitcoin_knots_source_dir: "{{ bitcoin_knots_dir }}/source" bitcoin_data_dir: /var/lib/bitcoin # Standard location for config, logs, wallets bitcoin_large_data_dir: /mnt/knots_data # Custom location for blockchain data (blocks, chainstate) bitcoin_conf_dir: /etc/bitcoin # Network bitcoin_rpc_port: 8332 # Shared with the socket-proxy play on the edge host, so it lives in # services_config.yml rather than only here. bitcoin_p2p_port: "{{ service_settings.bitcoin.p2p_port }}" bitcoin_rpc_bind: "0.0.0.0" # Build options bitcoin_build_jobs: 4 # Parallel build jobs (-j flag), adjust based on CPU cores bitcoin_build_prefix: /usr/local # Configuration options bitcoin_enable_txindex: true # Set to true if transaction index needed (REQUIRED for Electrum servers like Electrs/ElectrumX) bitcoin_max_connections: 125 # dbcache will be calculated as 90% of host RAM automatically in playbook # ZMQ Configuration bitcoin_zmq_enabled: true bitcoin_zmq_bind: "tcp://0.0.0.0" bitcoin_zmq_port_rawblock: 28332 bitcoin_zmq_port_rawtx: 28333 bitcoin_zmq_port_hashblock: 28334 bitcoin_zmq_port_hashtx: 28335 # Service user bitcoin_user: bitcoin bitcoin_group: bitcoin # --- Health check ---------------------------------------------------------- # Checks bitcoind RPC and records the answer in its exit code, which systemd # keeps: `systemctl is-failed bitcoin-knots-healthcheck.service`. # # WHERE TO REPORT HEALTH — the one place to plug in monitoring. Empty means # check, exit honestly, report nowhere. Any endpoint accepting an HTTP ping # works; nothing here is specific to a monitoring product. healthcheck_push_url: "" # --- Logging ---------------------------------------------------------------- # The live node logs to a file. Set to "" to use printtoconsole=1 (journald). bitcoin_logfile: "{{ bitcoin_data_dir }}/debug.log" # --- dbcache ---------------------------------------------------------------- # Computed as 90% of RAM unless this is set. The live node was hand-tuned to # 200 MB; the calculation would have produced 3528. As with fulcrum, note that # set_fact outranks role defaults, so the CALCULATION has to honour this - a # value pinned only in defaults/ is silently ignored. bitcoin_dbcache_mb_override: 200 # --- DATUM Gateway ---------------------------------------------------------- # This node feeds block templates to datum_gateway on knots-box. These settings # were hand-added to bitcoin.conf and were missing from the template, so a # playbook run would have removed them and broken the mining setup. bitcoin_datum_gateway_enabled: true bitcoin_blockmaxsize: 3985000 bitcoin_blockmaxweight: 3985000 bitcoin_blocknotify: "killall -USR1 datum_gateway" bitcoin_maxmempool: 1000 bitcoin_blockreconstructionextratxn: 1000000