support running joinmarket with bitcoind 29

This commit is contained in:
Erik Arvstedt 2025-10-21 07:11:16 +02:00
parent 1c786d67c6
commit bba75b0a7f
No known key found for this signature in database
GPG key ID: 33312B944DD97846
6 changed files with 26 additions and 3 deletions

View file

@ -35,6 +35,7 @@ jobs:
- default
- netns
- netnsRegtest
- joinmarket-bitcoind-29
needs: build_test_drivers
if: needs.build_test_drivers.outputs.run_scenario_tests == 'true'
steps:

View file

@ -251,6 +251,19 @@ in {
}
(mkIf cfg.enable {
assertions = [
{
assertion = lib.versionOlder bitcoind.package.version "30";
message = ''
Joinmarket is not compatible with bitcoind >= 30.
(https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/1775)
To fix this, add the following to your config:
services.bitcoind.package = config.nix-bitcoin.pkgs.bitcoind_29;
'';
}
];
services.bitcoind = {
enable = true;
disablewallet = false;

View file

@ -341,7 +341,7 @@ in {
services.nbxplorer.address = netns.nbxplorer.address;
services.btcpayserver.address = netns.btcpayserver.address;
services.joinmarket = {
services.joinmarket = mkIf config.services.joinmarket.enable {
payjoinAddress = netns.joinmarket.address;
messagingAddress = netns.joinmarket.address;
cliExec = mkCliExec "joinmarket";

View file

@ -25,6 +25,8 @@ let self = {
mempool-nginx-conf;
trustedcoin = pkgs.callPackage ./trustedcoin { };
bitcoind_29 = pkgs.bitcoind;
pyPkgs = import ./python-packages self pkgs.python3;
inherit (self.pyPkgs)
nbPython3Packages

View file

@ -302,6 +302,7 @@ buildable=(
lndPruned
wireguard-lndconnect
trustedcoin
joinmarket-bitcoind-29
)
buildable() { buildTests buildable "$@"; }

View file

@ -213,7 +213,6 @@ let
services.fulcrum.enable = true;
services.liquidd.enable = true;
services.btcpayserver.enable = true;
services.joinmarket.enable = true;
services.joinmarket-ob-watcher.enable = true;
services.backups.enable = true;
@ -261,7 +260,6 @@ let
services.electrs.enable = true;
services.fulcrum.enable = true;
services.btcpayserver.enable = true;
services.joinmarket.enable = true;
};
# netns and regtest, without secure-node.nix
@ -342,6 +340,14 @@ let
plugins.trustedcoin.enable = true;
};
};
# The full regtest test with bitcoind 29 and joinmarket enabled.
# Joinmarket only supports bitcoind 29.
joinmarket-bitcoind-29 = { config, ... }: {
imports = [ scenarios.regtest ];
services.joinmarket.enable = true;
services.bitcoind.package = config.nix-bitcoin.pkgs.bitcoind_29;
};
} // (import ../dev/dev-scenarios.nix {
inherit lib scenarios;
});