105 Commits
Author SHA1 Message Date
Jonas Nick 34a18f92ee netns-isolation: fix netns-exec being executable by all normal users
The `netns-exec` wrapper was created with `group = ""`, which makes the
`security.wrappers` activation run `chown ${allowedUser}:`. GNU chown
resolves the trailing colon to the owner's login group, and because the
operator is defined with `isNormalUser = true`, that group is the shared
group `users`. Together with mode 550, this made the wrapper executable
by every normal user on the host instead of only by `allowedUser`.

The wrapper carries `cap_sys_admin=ep` and the NixOS security wrapper
performs no owner check, so any normal user could enter `nb-joinmarket`,
the only netns that `netns-exec` permits. This exposes joinmarketd's
unauthenticated control port on 127.0.0.1 inside that netns and allows
sending packets from the joinmarket netns address. This can only ever become a
problem if there's a second, normal user on the host.

Use mode 500 so that only `allowedUser` can execute the wrapper. Also
set the group to `root`, so that `users` doesn't silently become an
authorized group again if the mode is ever loosened.

The netns-isolation test asserted this property with
`runuser -u clightning -- netns-exec nb-bitcoind ip a`, which fails
regardless of the file mode, because `clightning` is a system user with
its own group and `nb-bitcoind` is not in netns-exec's allowlist.
Replace it with a check that a normal user is denied by the exec
permissions, and assert the reason for each failure instead of only the
exit status.
2026-08-09 19:40:39 +00:00
Erik Arvstedt bba75b0a7f support running joinmarket with bitcoind 29 2025-10-23 08:15:34 +02:00
Erik Arvstedt 7d33e9d5e9 tests: extract fn instantiateTestsFromStr
Fn `instantiateTests` now takes an array of strings.
It is used in the following commit.
2025-06-26 23:23:51 +02:00
Erik Arvstedt 81112a0553 mempool: 2.5.0 -> 3.2.1 2025-06-02 10:46:54 +02:00
Erik Arvstedt 411b131c3a test: remove clightning plugin start timeout patch
Unneded because the timeout has been increased upstream:
https://github.com/ElementsProject/lightning/commit/ee3133f19885269985180bd20e0b9737c70cf86c
2025-05-09 13:56:33 +02:00
Jonas Nick b9019d170d test: remove clightning TODO-EXTERNAL requiring to disable offers 2024-12-01 13:40:02 +00:00
Erik Arvstedt daa3bfbae3 lndconnect: add clnrest 2024-11-27 21:35:46 +01:00
Erik Arvstedt e74ddd9464 clightning.plugins.clnrest: init 2024-11-27 18:48:24 +01:00
Erik Arvstedt 5694408d3a joinmarket: remove deleted option txfee 2024-07-27 19:55:29 +02:00
Jonas NickandErik Arvstedt b26cea03b3 update nixpkgs
bitcoin: 27.0 -> 27.1
bitcoind: 27.0 -> 27.1
clightning: 24.02.2 -> 24.05
fulcrum: 1.10.0 -> 1.11.0
lnd: 0.17.5-beta -> 0.18.0-beta

Co-authored-by: Erik Arvstedt <erik.arvstedt@gmail.com>
2024-07-03 06:12:24 +00:00
Erik Arvstedt 44addcb5aa treewide: use substituteInPlace --replace-fail
Now substitution failures result in a script error.
This has recently been backported to nixpkgs 23.11.
2024-05-24 14:55:00 +02:00
Erik Arvstedt 5730afe48e obsolete-options: add removed clightning plugins 2024-04-09 05:30:23 +00:00
Jonas Nick b27078efa5 clightning-plugins: remove unmaintained summary plugin 2024-04-08 06:19:38 +00:00
Jonas Nick 24bc983363 clightning-plugins: remove unmaintained plugins prometheus & helpme 2024-04-08 06:01:47 +00:00
Jonas Nick 6f72575932 Merge fort-nix/nix-bitcoin#675: test: use nixpkgs-unstable flake input for nix-bitcoin pkgs
afbd8a3cad test: use `nixpkgs-unstable` flake input for nix-bitcoin pkgs (Erik Arvstedt)

Pull request description:

ACKs for top commit:
  jonasnick:
    utACK afbd8a3cad

Tree-SHA512: ad5fba6cafff4acab4b63841b5376c0bc014eee9c40997b89ffbc52b1703453f7b064a7e61835b66f59136f6d5ea08670509d4e01085a972a46db3a7ec007648
2024-01-16 12:01:24 +00:00
Erik Arvstedt afbd8a3cad test: use nixpkgs-unstable flake input for nix-bitcoin pkgs
By using the `default` flake module for tests, `pkgsUnstable` in
`pkgs/default.nix` gets passed the `nixpkgs-unstable` flake input
instead of falling back to importing `nixpkgsPinned.nixpkgs-unstable`.

For some use cases this prevents importing `nixpkgs-unstable` twice
(once via the `nixpkgs-unstable` flake input, once via
`import nixpkgsPinned.nixpkgs-unstable`).
2024-01-15 23:15:36 +01:00
Erik Arvstedt 98b16a1f6c tests/hardened: fix test for slower hardware 2024-01-15 23:12:06 +01:00
Erik Arvstedt 1de259485b mempool: add module 2023-10-31 13:44:04 +01:00
Erik Arvstedt b6df5cb130 clboss: 0.13A -> 0.13 2023-09-09 14:35:35 +02:00
Erik Arvstedt ac59f93e63 trustedcoin: add regtest support, reenable test 2023-08-03 18:40:13 +02:00
Erik Arvstedt 6de5029c49 tests/trustedcoin: refactor
- No need to wait for bitcoind:
  clightning being active implies that bitcoind is active.

- Remove redundant log checks
2023-08-03 18:40:12 +02:00
Erik Arvstedt 7640c69d79 tests/clightning-plugins: enable active plugin test for trustedcoin 2023-08-03 01:20:05 +02:00
Erik Arvstedt 57455eb897 tests/clightning-plugins: set actual clboss pkg path 2023-08-03 01:20:04 +02:00
Erik Arvstedt dca6813d6b tests/clightning-plugins: extract variable 2023-08-03 01:20:04 +02:00
Erik Arvstedt 14ca8b461b rtl: fix lnd, lightning-loop connection errors
lnd and lightning-loop resolve `localhost` to an IPv4 address when
creating RPC sockets.

Since NixOS 23.05, RTL (nodejs) resolves `localhost` to an IPv6
address when connecting to lnd and lightning-loop, which leads to
connection errors.

To fix these and other potential errors, replace all instances
of `localhost` with `127.0.0.1`.
2023-07-29 19:07:10 +02:00
Erik Arvstedt e2cce7daa8 update to nixos 23.05 2023-07-19 17:22:01 +02:00
Jonas Nick 75e54bbb90 spark-wallet: remove package and module 2023-06-02 10:50:11 +00:00
Erik Arvstedt 2166bfd1ee clboss: deprecate, add clighting 23.05 compatibility 2023-05-29 06:41:38 +00:00
Otto Sabart 4942130abe tests: add tests for trustedcoin clightning plugin 2023-04-11 21:00:00 +02:00
Erik Arvstedt a4bfefd562 add presets/wireguard.nix
This allows using `lndconnect` via a direct WireGuard connection.
2023-03-11 20:10:54 +01:00
Erik Arvstedt f996ef37d9 lnd, clightning-rest: remove lndconnectOnion, add generic option lndconnect
For both lnd and clightning-rest, `lndconnectOnion` is replaced by
options `lndconnect.enable` and `lndconnect.onion`.

This allows using lndconnect without Tor.
2023-02-27 14:39:29 +01:00
Erik Arvstedt 6cbd0d93ae tests: rename clightningReplication -> clightning-replication
The test name now matches the file name.
2023-02-02 10:51:41 +01:00
Erik Arvstedt b4d7e1aa8f add dev helper and docs 2023-01-15 20:28:49 +01:00
Erik Arvstedt dc0710f3f4 tests: add example scenario customTest 2023-01-15 20:28:48 +01:00
Erik Arvstedt 9e30d2728b tests: formatting
Move line next to `services.lnd` config for clarity.
2023-01-06 23:46:43 +01:00
Erik Arvstedt c6d85c6fe3 tests: fix broken unit file when clightning is disabled
Previously, an incomplete clightning unit was always created because
attr `clightning` was always defined in option attrset `systemd.services`.
2023-01-06 23:46:43 +01:00
Erik Arvstedt edbaeb9813 tests: define tests via flake
Advantages:
- Pure test evaluations
- The test framework can now be used by flakes that extend nix-bitcoin
- Most features of `run-tests.sh` are now accessible via `nix build`/`nix run`.
  We keep `run-tests.sh` for advanced features like `scenarioOverridesFile` and adhoc scenarios.

Other changes:
- `run-tests.sh` now builds aggregate VM tests like `basic` or
  `buildable` by creating all VMs in a single evaluation.
  This speeds up the tests and eases debugging by separating the eval and build steps.
- Use the new `nix` CLI which has improved build output logging
  by prefixing output lines with the origin drv name.
2022-11-03 23:08:06 +01:00
Erik Arvstedt 8eaa4cce30 tests: move mkIfTest to nix-bitcoin.lib 2022-11-03 23:08:06 +01:00
Erik Arvstedt 67949a002a lnd: fix missing RPC permissions when bitcoind is pruned 2022-10-25 22:56:51 +02:00
Otto Sabart ee15837244 shellcheck: prevent globbing and word splitting in unit shell scripts 2022-09-12 21:00:00 +02:00
Jonas Nick 623c238b16 clightning-plugins: remove commando pkg and module
clightning 0.12.0 ships with a reimplementation of the commando plugin that is
incompatible with the commando module that existed in nix-bitcoin.
2022-09-07 08:44:52 +00:00
Erik Arvstedt 5eb01498d5 tests: add comment 2022-08-05 13:48:53 +00:00
nixbitcoin 17507835fc clightning: native database replication
Don't put `clightning.replication` options in
`examples/configuration.nix` until it is more "battle-tested."
2022-08-05 13:48:24 +00:00
Jonas Nick 34c4b61402 Merge fort-nix/nix-bitcoin#504: Add fulcrum module
7d7f2df006 fulcrum: add module (Erik Arvstedt)
edd8bd311c bitcoind-rpc-public-whitelist: add `ping`, `help` (Erik Arvstedt)
f946a7cd9b examples: use `mkDefault` for setting `system.stateVersion` (Erik Arvstedt)
79994d0bd2 tests: increase postgresql startup timeout (Erik Arvstedt)

Pull request description:

ACKs for top commit:
  nixbitcoin:
    ACK 7d7f2df006

Tree-SHA512: 866f0a40bb81ceb2008e6efbd415eeee201b9e56aa5ebc60fd1bb4b6eda300155faaa2e6492d8145b3c6084b1e8ef5ec7d4e0ff694beb328d2e5ed755c9d04b4
2022-07-22 13:11:40 +00:00
Erik Arvstedt 8dc4858872 bitcoind: remove banlist loader
Gmaxwell's banlist (https://people.xiph.org/~greg/banlist.cli.txt) is
no longer maintained and hasn't been updated since 2 years.
2022-07-15 14:45:37 +02:00
Erik Arvstedt 7d7f2df006 fulcrum: add module 2022-07-09 11:07:09 +02:00
Erik Arvstedt c853f380d4 lightning-loop: add certificate options extraIPs and extraDomains
This is useful for non-local access to the lightning-loop REST server.
2022-07-07 16:09:26 +02:00
Erik Arvstedt edfbe700e7 lnd: add certificate options extraIPs and extraDomains
This is useful for non-local access to the lnd REST server.
2022-07-07 16:09:26 +02:00
Erik Arvstedt 79994d0bd2 tests: increase postgresql startup timeout
Required for Cirrus CI.
2022-07-07 11:43:21 +02:00
Erik Arvstedt f9315db52c clightning/feeadjuster: add test 2022-05-27 11:22:00 +02:00