Merge fort-nix/nix-bitcoin#722: joinmarket: Add option settings
cf3f0dbb2djoinmarket: add option `settings` (Erik Arvstedt)da2e473158joinmarket: don't set default config options (Erik Arvstedt)74eb9a17b6joinmarket/yieldgenerator: add docs link to description (Erik Arvstedt)5694408d3ajoinmarket: remove deleted option `txfee` (Erik Arvstedt) Pull request description: ACKs for top commit: jonasnick: utACKcf3f0dbb2dTree-SHA512: 36754539670dedcc494b28fa8383b189bd8fcf4044e0be624f47db953b189d706ed76df305e10fbea69f4e0dd9c419eb1eaf35de75e860883ea3305456fc31ed
This commit is contained in:
commit
6e208d6a7b
6 changed files with 150 additions and 152 deletions
|
|
@ -543,8 +543,8 @@ See [here](https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master
|
||||||
services.joinmarket.yieldgenerator = {
|
services.joinmarket.yieldgenerator = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# Optional: Add custom parameters
|
# Optional: Add custom parameters
|
||||||
txfee = 200;
|
|
||||||
cjfee_a = 300;
|
cjfee_a = 300;
|
||||||
|
cjfee_r = 0.00003;
|
||||||
};
|
};
|
||||||
'';
|
'';
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,19 @@ let
|
||||||
default = "/var/lib/joinmarket-ob-watcher";
|
default = "/var/lib/joinmarket-ob-watcher";
|
||||||
description = "The data directory for JoinMarket orderbook watcher.";
|
description = "The data directory for JoinMarket orderbook watcher.";
|
||||||
};
|
};
|
||||||
|
settings = mkOption {
|
||||||
|
type = with types; attrsOf anything;
|
||||||
|
example = {
|
||||||
|
LOGGING = {
|
||||||
|
console_log_level = "DEBUG";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
Joinmarket settings.
|
||||||
|
See here for possible options:
|
||||||
|
https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/v0.9.11/src/jmclient/configure.py#L98
|
||||||
|
'';
|
||||||
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "joinmarket-ob-watcher";
|
default = "joinmarket-ob-watcher";
|
||||||
|
|
@ -40,17 +53,6 @@ let
|
||||||
secretsDir = config.nix-bitcoin.secretsDir;
|
secretsDir = config.nix-bitcoin.secretsDir;
|
||||||
|
|
||||||
inherit (config.services) bitcoind joinmarket;
|
inherit (config.services) bitcoind joinmarket;
|
||||||
|
|
||||||
configFile = builtins.toFile "config" ''
|
|
||||||
[BLOCKCHAIN]
|
|
||||||
blockchain_source = bitcoin-rpc
|
|
||||||
network = ${bitcoind.network}
|
|
||||||
rpc_host = ${bitcoind.rpc.address}
|
|
||||||
rpc_port = ${toString bitcoind.rpc.port}
|
|
||||||
rpc_user = ${bitcoind.rpc.users.joinmarket-ob-watcher.name}
|
|
||||||
|
|
||||||
${joinmarket.messagingConfig}
|
|
||||||
'';
|
|
||||||
in {
|
in {
|
||||||
inherit options;
|
inherit options;
|
||||||
|
|
||||||
|
|
@ -72,6 +74,18 @@ in {
|
||||||
"d '${cfg.dataDir}' 0770 ${cfg.user} ${cfg.group} - -"
|
"d '${cfg.dataDir}' 0770 ${cfg.user} ${cfg.group} - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
services.joinmarket-ob-watcher.settings = {
|
||||||
|
BLOCKCHAIN = config.services.joinmarket.settings.BLOCKCHAIN // {
|
||||||
|
rpc_user = bitcoind.rpc.users.joinmarket-ob-watcher.name;
|
||||||
|
rpc_wallet_file = "";
|
||||||
|
};
|
||||||
|
inherit (config.services.joinmarket.settings)
|
||||||
|
"MESSAGING:onion"
|
||||||
|
"MESSAGING:server1"
|
||||||
|
"MESSAGING:server2"
|
||||||
|
"MESSAGING:server3";
|
||||||
|
};
|
||||||
|
|
||||||
systemd.services.joinmarket-ob-watcher = rec {
|
systemd.services.joinmarket-ob-watcher = rec {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
requires = [ "tor.service" "bitcoind.service" ];
|
requires = [ "tor.service" "bitcoind.service" ];
|
||||||
|
|
@ -80,7 +94,7 @@ in {
|
||||||
environment.HOME = cfg.dataDir;
|
environment.HOME = cfg.dataDir;
|
||||||
preStart = ''
|
preStart = ''
|
||||||
{
|
{
|
||||||
cat ${configFile}
|
cat ${builtins.toFile "joinmarket-ob-watcher.cfg" ((generators.toINI {}) cfg.settings)}
|
||||||
echo
|
echo
|
||||||
echo '[BLOCKCHAIN]'
|
echo '[BLOCKCHAIN]'
|
||||||
echo "rpc_password = $(cat ${secretsDir}/bitcoin-rpcpassword-joinmarket-ob-watcher)"
|
echo "rpc_password = $(cat ${secretsDir}/bitcoin-rpcpassword-joinmarket-ob-watcher)"
|
||||||
|
|
|
||||||
|
|
@ -41,12 +41,31 @@ let
|
||||||
description = "The data directory for JoinMarket.";
|
description = "The data directory for JoinMarket.";
|
||||||
};
|
};
|
||||||
rpcWalletFile = mkOption {
|
rpcWalletFile = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.nonEmptyStr;
|
||||||
default = "jm_wallet";
|
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.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
settings = mkOption {
|
||||||
|
type = with types; attrsOf anything;
|
||||||
|
example = {
|
||||||
|
POLICY = {
|
||||||
|
merge_algorithm = "gradual";
|
||||||
|
tx_fees = 5;
|
||||||
|
};
|
||||||
|
LOGGING = {
|
||||||
|
console_log_level = "DEBUG";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
description = ''
|
||||||
|
Joinmarket settings.
|
||||||
|
See here for possible options:
|
||||||
|
https://raw.githubusercontent.com/JoinMarket-Org/joinmarket-clientserver/master/src/jmclient/configure.py#:~:text=defaultconfig%20=
|
||||||
|
If your web browser does not support text fragment URLs, you can can manually
|
||||||
|
search for string `defaultconfig =` to jump to the correct location.
|
||||||
|
'';
|
||||||
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "joinmarket";
|
default = "joinmarket";
|
||||||
|
|
@ -61,19 +80,20 @@ let
|
||||||
default = cli;
|
default = cli;
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
};
|
};
|
||||||
# Used by ./joinmarket-ob-watcher.nix
|
|
||||||
messagingConfig = mkOption {
|
|
||||||
readOnly = true;
|
|
||||||
default = messagingConfig;
|
|
||||||
defaultText = "(See source)";
|
|
||||||
};
|
|
||||||
# This option is only used by netns-isolation.
|
# This option is only used by netns-isolation.
|
||||||
# Tor is always enabled.
|
# Tor is always enabled.
|
||||||
tor.enforce = nbLib.tor.enforce;
|
tor.enforce = nbLib.tor.enforce;
|
||||||
inherit (nbLib) cliExec;
|
inherit (nbLib) cliExec;
|
||||||
|
|
||||||
yieldgenerator = {
|
yieldgenerator = {
|
||||||
enable = mkEnableOption "JoinMarket yield generator bot";
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Enable the JoinMarket yield generator bot.
|
||||||
|
Documentation: https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/docs/YIELDGENERATOR.md
|
||||||
|
'';
|
||||||
|
};
|
||||||
ordertype = mkOption {
|
ordertype = mkOption {
|
||||||
type = types.enum [ "reloffer" "absoffer" ];
|
type = types.enum [ "reloffer" "absoffer" ];
|
||||||
default = "reloffer";
|
default = "reloffer";
|
||||||
|
|
@ -102,13 +122,6 @@ let
|
||||||
Variance around the average cj fee.
|
Variance around the average cj fee.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
txfee = mkOption {
|
|
||||||
type = types.ints.unsigned;
|
|
||||||
default = 100;
|
|
||||||
description = ''
|
|
||||||
The average transaction fee you're adding to coinjoin transactions.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
txfee_contribution_factor = mkOption {
|
txfee_contribution_factor = mkOption {
|
||||||
type = types.float;
|
type = types.float;
|
||||||
default = 0.3;
|
default = 0.3;
|
||||||
|
|
@ -142,124 +155,12 @@ let
|
||||||
inherit (config.services) bitcoind;
|
inherit (config.services) bitcoind;
|
||||||
|
|
||||||
torAddress = config.services.tor.client.socksListenAddress;
|
torAddress = config.services.tor.client.socksListenAddress;
|
||||||
socks5Settings = ''
|
|
||||||
socks5 = true
|
|
||||||
socks5_host = ${torAddress.addr}
|
|
||||||
socks5_port = ${toString torAddress.port}
|
|
||||||
'';
|
|
||||||
|
|
||||||
messagingConfig = ''
|
socks5Settings = {
|
||||||
[MESSAGING:onion]
|
socks5 = true;
|
||||||
type = onion
|
socks5_host = torAddress.addr;
|
||||||
${socks5Settings}
|
socks5_port = torAddress.port;
|
||||||
tor_control_host = unix:/run/tor/control
|
};
|
||||||
# required option, but ignored for unix socket host
|
|
||||||
tor_control_port = 9051
|
|
||||||
onion_serving_host = ${cfg.messagingAddress}
|
|
||||||
onion_serving_port = ${toString cfg.messagingPort}
|
|
||||||
hidden_service_dir =
|
|
||||||
directory_nodes = g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion:5222,3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion:5222,bqlpq6ak24mwvuixixitift4yu42nxchlilrcqwk2ugn45tdclg42qid.onion:5222
|
|
||||||
|
|
||||||
# irc.darkscience.net
|
|
||||||
[MESSAGING:server1]
|
|
||||||
host = darkirc6tqgpnwd3blln3yfv5ckl47eg7llfxkmtovrv7c7iwohhb6ad.onion
|
|
||||||
channel = joinmarket-pit
|
|
||||||
port = 6697
|
|
||||||
usessl = true
|
|
||||||
${socks5Settings}
|
|
||||||
|
|
||||||
# ilita
|
|
||||||
[MESSAGING:server2]
|
|
||||||
host = ilitafrzzgxymv6umx2ux7kbz3imyeko6cnqkvy4nisjjj4qpqkrptid.onion
|
|
||||||
channel = joinmarket-pit
|
|
||||||
port = 6667
|
|
||||||
usessl = false
|
|
||||||
${socks5Settings}
|
|
||||||
|
|
||||||
# irc.hackint.org
|
|
||||||
[MESSAGING:server3]
|
|
||||||
host = ncwkrwxpq2ikcngxq3dy2xctuheniggtqeibvgofixpzvrwpa77tozqd.onion
|
|
||||||
channel = joinmarket-pit
|
|
||||||
port = 6667
|
|
||||||
usessl = false
|
|
||||||
${socks5Settings}
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Based on https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/master/jmclient/jmclient/configure.py
|
|
||||||
yg = cfg.yieldgenerator;
|
|
||||||
configFile = builtins.toFile "config" ''
|
|
||||||
[DAEMON]
|
|
||||||
no_daemon = 0
|
|
||||||
daemon_port = 27183
|
|
||||||
daemon_host = 127.0.0.1
|
|
||||||
use_ssl = false
|
|
||||||
|
|
||||||
[BLOCKCHAIN]
|
|
||||||
blockchain_source = ${bitcoind.makeNetworkName "bitcoin-rpc" "regtest"}
|
|
||||||
network = ${bitcoind.makeNetworkName "mainnet" "testnet"}
|
|
||||||
rpc_host = ${nbLib.address bitcoind.rpc.address}
|
|
||||||
rpc_port = ${toString bitcoind.rpc.port}
|
|
||||||
rpc_user = ${bitcoind.rpc.users.privileged.name}
|
|
||||||
${optionalString (cfg.rpcWalletFile != null) "rpc_wallet_file = ${cfg.rpcWalletFile}"}
|
|
||||||
|
|
||||||
${messagingConfig}
|
|
||||||
|
|
||||||
[LOGGING]
|
|
||||||
console_log_level = INFO
|
|
||||||
color = false
|
|
||||||
|
|
||||||
[POLICY]
|
|
||||||
segwit = true
|
|
||||||
native = true
|
|
||||||
merge_algorithm = default
|
|
||||||
gaplimit = 6
|
|
||||||
tx_fees = 3
|
|
||||||
tx_fees_factor = 0.2
|
|
||||||
absurd_fee_per_kb = 350000
|
|
||||||
max_sweep_fee_change = 0.8
|
|
||||||
tx_broadcast = self
|
|
||||||
minimum_makers = 4
|
|
||||||
max_sats_freeze_reuse = -1
|
|
||||||
interest_rate = 0.015
|
|
||||||
bondless_makers_allowance = 0.125
|
|
||||||
bond_value_exponent = 1.3
|
|
||||||
taker_utxo_retries = 3
|
|
||||||
taker_utxo_age = 5
|
|
||||||
taker_utxo_amtpercent = 20
|
|
||||||
accept_commitment_broadcasts = 1
|
|
||||||
commit_file_location = cmtdata/commitments.json
|
|
||||||
commitment_list_location = cmtdata/commitmentlist
|
|
||||||
|
|
||||||
[PAYJOIN]
|
|
||||||
payjoin_version = 1
|
|
||||||
disable_output_substitution = 0
|
|
||||||
max_additional_fee_contribution = default
|
|
||||||
min_fee_rate = 1.1
|
|
||||||
onion_socks5_host = ${torAddress.addr}
|
|
||||||
onion_socks5_port = ${toString torAddress.port}
|
|
||||||
tor_control_host = unix:/run/tor/control
|
|
||||||
# Required option, but unused because `tor_control_host` is a Unix socket
|
|
||||||
tor_control_port = 9051
|
|
||||||
onion_serving_host = ${cfg.payjoinAddress}
|
|
||||||
onion_serving_port = ${toString cfg.payjoinPort}
|
|
||||||
hidden_service_ssl = false
|
|
||||||
|
|
||||||
[YIELDGENERATOR]
|
|
||||||
ordertype = ${yg.ordertype}
|
|
||||||
cjfee_a = ${toString yg.cjfee_a}
|
|
||||||
cjfee_r = ${toString yg.cjfee_r}
|
|
||||||
cjfee_factor = ${toString yg.cjfee_factor}
|
|
||||||
txfee_contribution = 0
|
|
||||||
txfee_contribution_factor = ${toString yg.txfee_contribution_factor}
|
|
||||||
minsize = ${toString yg.minsize}
|
|
||||||
size_factor = ${toString yg.size_factor}
|
|
||||||
|
|
||||||
[SNICKER]
|
|
||||||
enabled = false
|
|
||||||
lowest_net_gain = 0
|
|
||||||
servers = cn5lfwvrswicuxn3gjsxoved6l2gu5hdvwy5l3ev7kg6j7lbji2k7hqd.onion,
|
|
||||||
polling_interval_minutes = 60
|
|
||||||
'';
|
|
||||||
|
|
||||||
# The jm scripts create a 'logs' dir in the working dir,
|
# The jm scripts create a 'logs' dir in the working dir,
|
||||||
# so run them inside dataDir.
|
# so run them inside dataDir.
|
||||||
|
|
@ -278,7 +179,78 @@ let
|
||||||
in {
|
in {
|
||||||
inherit options;
|
inherit options;
|
||||||
|
|
||||||
config = mkIf cfg.enable (mkMerge [{
|
config = mkMerge [
|
||||||
|
{
|
||||||
|
services.joinmarket.settings = {
|
||||||
|
DAEMON = {
|
||||||
|
no_daemon = 0;
|
||||||
|
daemon_port = 27183;
|
||||||
|
daemon_host = "127.0.0.1";
|
||||||
|
};
|
||||||
|
BLOCKCHAIN = {
|
||||||
|
blockchain_source = bitcoind.makeNetworkName "bitcoin-rpc" "regtest";
|
||||||
|
network = bitcoind.makeNetworkName "mainnet" "testnet";
|
||||||
|
rpc_host = nbLib.address bitcoind.rpc.address;
|
||||||
|
rpc_port = bitcoind.rpc.port;
|
||||||
|
rpc_user = bitcoind.rpc.users.privileged.name;
|
||||||
|
rpc_wallet_file = if cfg.rpcWalletFile == null then "" else cfg.rpcWalletFile;
|
||||||
|
};
|
||||||
|
LOGGING = {
|
||||||
|
color = false;
|
||||||
|
};
|
||||||
|
PAYJOIN = {
|
||||||
|
onion_socks5_host = torAddress.addr;
|
||||||
|
onion_socks5_port = torAddress.port;
|
||||||
|
tor_control_host = "unix:/run/tor/control";
|
||||||
|
onion_serving_host = cfg.payjoinAddress;
|
||||||
|
onion_serving_port = cfg.payjoinPort;
|
||||||
|
hidden_service_ssl = false;
|
||||||
|
};
|
||||||
|
YIELDGENERATOR = removeAttrs cfg.yieldgenerator [
|
||||||
|
"enable"
|
||||||
|
# TODO: This is only needed when ./obsolete-options.nix is imported
|
||||||
|
"txfee"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Messaging settings have to be fully specified because joinmarket doesn't
|
||||||
|
# provide default messaging settings.
|
||||||
|
# (`jmclient/configure.py` actually does contain default messaging settings, but
|
||||||
|
# they are removed via fn `_remove_unwanted_default_settings`)
|
||||||
|
"MESSAGING:onion" = socks5Settings // {
|
||||||
|
type = "onion";
|
||||||
|
tor_control_host = "unix:/run/tor/control";
|
||||||
|
# Required option, but ignored because `tor_control_host` is a unix socket
|
||||||
|
tor_control_port = 9051;
|
||||||
|
onion_serving_host = cfg.messagingAddress;
|
||||||
|
onion_serving_port = cfg.messagingPort;
|
||||||
|
hidden_service_dir = "";
|
||||||
|
directory_nodes = "g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion:5222,3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion:5222,bqlpq6ak24mwvuixixitift4yu42nxchlilrcqwk2ugn45tdclg42qid.onion:5222";
|
||||||
|
};
|
||||||
|
# irc.darkscience.net
|
||||||
|
"MESSAGING:server1" = socks5Settings // {
|
||||||
|
host = "darkirc6tqgpnwd3blln3yfv5ckl47eg7llfxkmtovrv7c7iwohhb6ad.onion";
|
||||||
|
channel = "joinmarket-pit";
|
||||||
|
port = 6697;
|
||||||
|
usessl = true;
|
||||||
|
};
|
||||||
|
# ilita
|
||||||
|
"MESSAGING:server2" = socks5Settings // {
|
||||||
|
host = "ilitafrzzgxymv6umx2ux7kbz3imyeko6cnqkvy4nisjjj4qpqkrptid.onion";
|
||||||
|
channel = "joinmarket-pit";
|
||||||
|
port = 6667;
|
||||||
|
usessl = false;
|
||||||
|
};
|
||||||
|
# irc.hackint.org
|
||||||
|
"MESSAGING:server3" = socks5Settings // {
|
||||||
|
host = "ncwkrwxpq2ikcngxq3dy2xctuheniggtqeibvgofixpzvrwpa77tozqd.onion";
|
||||||
|
channel = "joinmarket-pit";
|
||||||
|
port = 6667;
|
||||||
|
usessl = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
(mkIf cfg.enable {
|
||||||
services.bitcoind = {
|
services.bitcoind = {
|
||||||
enable = true;
|
enable = true;
|
||||||
disablewallet = false;
|
disablewallet = false;
|
||||||
|
|
@ -311,7 +283,7 @@ in {
|
||||||
after = [ "bitcoind.service" "nix-bitcoin-secrets.target" ];
|
after = [ "bitcoind.service" "nix-bitcoin-secrets.target" ];
|
||||||
preStart = ''
|
preStart = ''
|
||||||
{
|
{
|
||||||
cat ${configFile}
|
cat ${builtins.toFile "joinmarket.cfg" ((generators.toINI {}) cfg.settings)}
|
||||||
echo
|
echo
|
||||||
echo '[BLOCKCHAIN]'
|
echo '[BLOCKCHAIN]'
|
||||||
echo "rpc_password = $(cat ${secretsDir}/bitcoin-rpcpassword-privileged)"
|
echo "rpc_password = $(cat ${secretsDir}/bitcoin-rpcpassword-privileged)"
|
||||||
|
|
@ -386,9 +358,9 @@ in {
|
||||||
nix-bitcoin.generateSecretsCmds.joinmarket = ''
|
nix-bitcoin.generateSecretsCmds.joinmarket = ''
|
||||||
makePasswordSecret jm-wallet-password
|
makePasswordSecret jm-wallet-password
|
||||||
'';
|
'';
|
||||||
}
|
})
|
||||||
|
|
||||||
(mkIf cfg.yieldgenerator.enable {
|
(mkIf (cfg.enable && cfg.yieldgenerator.enable) {
|
||||||
systemd.services.joinmarket-yieldgenerator = {
|
systemd.services.joinmarket-yieldgenerator = {
|
||||||
wantedBy = [ "joinmarket.service" ];
|
wantedBy = [ "joinmarket.service" ];
|
||||||
requires = [ "joinmarket.service" ];
|
requires = [ "joinmarket.service" ];
|
||||||
|
|
@ -409,5 +381,5 @@ in {
|
||||||
} // nbLib.allowTor;
|
} // nbLib.allowTor;
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
]);
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,16 @@ in {
|
||||||
This plugin is no longer maintained.
|
This plugin is no longer maintained.
|
||||||
'')
|
'')
|
||||||
[ "summary" "helpme" "prometheus" ]
|
[ "summary" "helpme" "prometheus" ]
|
||||||
);
|
)
|
||||||
|
++
|
||||||
|
# 0.0.110
|
||||||
|
[
|
||||||
|
(mkRemovedOptionModule [ "services" "joinmarket" "yieldgenerator" "txfee" ] ''
|
||||||
|
Option `txfee` has been removed in joinmarket 0.9.3:
|
||||||
|
https://github.com/JoinMarket-Org/joinmarket-clientserver/blob/v0.9.3/docs/release-notes/release-notes-0.9.3.md
|
||||||
|
'')
|
||||||
|
];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
# Migrate old clightning-rest datadir from nix-bitcoin versions < 0.0.70
|
# Migrate old clightning-rest datadir from nix-bitcoin versions < 0.0.70
|
||||||
systemd.services.clightning-rest-migrate-datadir = let
|
systemd.services.clightning-rest-migrate-datadir = let
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,10 @@
|
||||||
{ stdenv, lib, fetchFromGitHub, python3, nbPython3PackagesJoinmarket }:
|
{ stdenv, lib, fetchFromGitHub, python3, nbPython3PackagesJoinmarket }:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
# Note:
|
||||||
|
# After updating this pkg, also update the following items in ../../modules/joinmarket.nix:
|
||||||
|
# - The `MESSAGING:*` sections in the config value of option `settings`.
|
||||||
|
# Copy the values from `jmclient/configure.py`.
|
||||||
version = "0.9.11";
|
version = "0.9.11";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "joinmarket-org";
|
owner = "joinmarket-org";
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,6 @@ let
|
||||||
ordertype = "absoffer";
|
ordertype = "absoffer";
|
||||||
cjfee_a = 300;
|
cjfee_a = 300;
|
||||||
cjfee_r = 0.00003;
|
cjfee_r = 0.00003;
|
||||||
txfee = 200;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
tests.nodeinfo = config.nix-bitcoin.nodeinfo.enable;
|
tests.nodeinfo = config.nix-bitcoin.nodeinfo.enable;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue