Add cln feeadjuster plugin
This commit is contained in:
parent
ebaa9a3f2e
commit
1054e9a3b1
@ -14,6 +14,7 @@ in {
|
||||
imports = [
|
||||
./clboss.nix
|
||||
./commando.nix
|
||||
./feeadjuster.nix
|
||||
./prometheus.nix
|
||||
./summary.nix
|
||||
./zmq.nix
|
||||
|
78
modules/clightning-plugins/feeadjuster.nix
Normal file
78
modules/clightning-plugins/feeadjuster.nix
Normal file
@ -0,0 +1,78 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
options.services.clightning.plugins.feeadjuster = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable feeaduster (clightning plugin).
|
||||
This plugin auto-updates channel fees to keep channels balanced.
|
||||
|
||||
See here for for all available options:
|
||||
https://github.com/lightningd/plugins/blob/master/feeadjuster/feeadjuster.py
|
||||
Extra options can be set via `services.clightning.extraConfig`.
|
||||
'';
|
||||
};
|
||||
fuzz = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Enable update threshold randomization and hysteresis.";
|
||||
};
|
||||
adjustOnForward = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Automatically update fees on forward events.";
|
||||
};
|
||||
method = mkOption {
|
||||
type = types.enum [ "soft" "default" "hard" ];
|
||||
default = "default";
|
||||
description = ''
|
||||
Adjustment method to calculate channel fees.
|
||||
`soft`: less difference when adjusting fees.
|
||||
`hard`: greater difference when adjusting fees.
|
||||
'';
|
||||
};
|
||||
adjustDaily = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Automatically update fees daily.";
|
||||
};
|
||||
};
|
||||
|
||||
cfg = config.services.clightning.plugins.feeadjuster;
|
||||
inherit (config.services) clightning;
|
||||
in
|
||||
{
|
||||
inherit options;
|
||||
|
||||
config = mkIf (cfg.enable && clightning.enable) {
|
||||
services.clightning.extraConfig = ''
|
||||
plugin=${config.nix-bitcoin.pkgs.clightning-plugins.feeadjuster.path}
|
||||
feeadjuster-adjustment-method="${cfg.method}"
|
||||
'' + optionalString (!cfg.fuzz) ''
|
||||
feeadjuster-deactivate-fuzz
|
||||
'' + optionalString (!cfg.adjustOnForward) ''
|
||||
feeadjuster-deactivate-fee-update
|
||||
'';
|
||||
|
||||
systemd = mkIf cfg.adjustDaily {
|
||||
services.clightning-feeadjuster = {
|
||||
# Only run when clightning is running
|
||||
requisite = [ "clightning.service" ];
|
||||
after = [ "clightning.service" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "clightning";
|
||||
ExecStart = "${clightning.package}/bin/lightning-cli --lightning-dir ${clightning.dataDir} feeadjust";
|
||||
};
|
||||
unitConfig.JoinsNamespaceOf = [ "clightning.service" ];
|
||||
startAt = [ "daily" ];
|
||||
};
|
||||
timers.clightning-feeadjuster.timerConfig = {
|
||||
RandomizedDelaySec = "6h";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
@ -39,6 +39,9 @@ let
|
||||
scriptName = "cl-zmq";
|
||||
extraPkgs = [ twisted txzmq ];
|
||||
};
|
||||
feeadjuster = {
|
||||
description = "Dynamically changes channel fees to keep your channels more balanced";
|
||||
};
|
||||
};
|
||||
|
||||
basePkgs = [ nbPython3Packages.pyln-client ];
|
||||
|
Loading…
Reference in New Issue
Block a user