joinmarket: create bitcoind wallet
Starting with 0.21.0, bitcoin no longer automatically creates and loads a default wallet. This was being ignored because of a JoinMarket issue [1] in CI builds prior to this version. Now a watch-only Bitcoin Core wallet is created in ExecStartPost. [1] https://github.com/JoinMarket-Org/joinmarket-clientserver/issues/812
This commit is contained in:
parent
6258d64cb6
commit
e2c6eb6681
@ -245,6 +245,6 @@
|
|||||||
# The nix-bitcoin release version that your config is compatible with.
|
# The nix-bitcoin release version that your config is compatible with.
|
||||||
# When upgrading to a backwards-incompatible release, nix-bitcoin will display an
|
# When upgrading to a backwards-incompatible release, nix-bitcoin will display an
|
||||||
# an error and provide hints for migrating your config to the new release.
|
# an error and provide hints for migrating your config to the new release.
|
||||||
nix-bitcoin.configVersion = "0.0.41";
|
nix-bitcoin.configVersion = "0.0.49";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ let
|
|||||||
rpc_port = ${toString bitcoind.rpc.port}
|
rpc_port = ${toString bitcoind.rpc.port}
|
||||||
rpc_user = ${bitcoind.rpc.users.privileged.name}
|
rpc_user = ${bitcoind.rpc.users.privileged.name}
|
||||||
@@RPC_PASSWORD@@
|
@@RPC_PASSWORD@@
|
||||||
${optionalString (cfg.rpcWalletFile != null) "rpc_wallet_file=${cfg.rpcWalletFile}"}
|
${optionalString (cfg.rpcWalletFile != null) "rpc_wallet_file = ${cfg.rpcWalletFile}"}
|
||||||
|
|
||||||
[MESSAGING:server1]
|
[MESSAGING:server1]
|
||||||
host = darkirc6tqgpnwd3blln3yfv5ckl47eg7llfxkmtovrv7c7iwohhb6ad.onion
|
host = darkirc6tqgpnwd3blln3yfv5ckl47eg7llfxkmtovrv7c7iwohhb6ad.onion
|
||||||
@ -129,7 +129,7 @@ in {
|
|||||||
};
|
};
|
||||||
rpcWalletFile = mkOption {
|
rpcWalletFile = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = "jm_wallet";
|
||||||
description = ''
|
description = ''
|
||||||
Name of the watch-only bitcoind wallet the JoinMarket addresses are imported to.
|
Name of the watch-only bitcoind wallet the JoinMarket addresses are imported to.
|
||||||
'';
|
'';
|
||||||
@ -244,7 +244,12 @@ in {
|
|||||||
walletname=wallet.jmdat
|
walletname=wallet.jmdat
|
||||||
wallet=${cfg.dataDir}/wallets/$walletname
|
wallet=${cfg.dataDir}/wallets/$walletname
|
||||||
if [[ ! -f $wallet ]]; then
|
if [[ ! -f $wallet ]]; then
|
||||||
echo "Create wallet"
|
${optionalString (cfg.rpcWalletFile != null) ''
|
||||||
|
echo "Create watch-only wallet ${cfg.rpcWalletFile}"
|
||||||
|
${bitcoind.cli}/bin/bitcoin-cli -named createwallet \
|
||||||
|
wallet_name="${cfg.rpcWalletFile}" \
|
||||||
|
disable_private_keys=true
|
||||||
|
''}
|
||||||
pw=$(cat "${secretsDir}"/jm-wallet-password)
|
pw=$(cat "${secretsDir}"/jm-wallet-password)
|
||||||
cd ${cfg.dataDir}
|
cd ${cfg.dataDir}
|
||||||
if ! ${nbPkgs.joinmarket}/bin/jm-genwallet --datadir=${cfg.dataDir} $walletname $pw \
|
if ! ${nbPkgs.joinmarket}/bin/jm-genwallet --datadir=${cfg.dataDir} $walletname $pw \
|
||||||
|
@ -91,6 +91,22 @@ let
|
|||||||
rm -f "${secretsDir}"/{lnd-seed-mnemonic,jm-wallet-seed}
|
rm -f "${secretsDir}"/{lnd-seed-mnemonic,jm-wallet-seed}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
version = "0.0.49";
|
||||||
|
condition = config.services.joinmarket.enable;
|
||||||
|
message = ''
|
||||||
|
Starting with 0.21.0, bitcoind no longer automatically creates and loads a
|
||||||
|
default wallet named `wallet.dat` [1].
|
||||||
|
The joinmarket service now automatically creates a watch-only bitcoind wallet
|
||||||
|
(named by option `services.joinmarket.rpcWalletFile`) when creating a joinmarket wallet.
|
||||||
|
|
||||||
|
If you've used JoinMarket before, add the following to your configuration to
|
||||||
|
continue using the default `wallet.dat` wallet:
|
||||||
|
services.joinmarket.rpcWalletFile = null;
|
||||||
|
|
||||||
|
[1] https://github.com/bitcoin/bitcoin/pull/15454
|
||||||
|
'';
|
||||||
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
incompatibleChanges = optionals
|
incompatibleChanges = optionals
|
||||||
|
Loading…
Reference in New Issue
Block a user