Commit Graph
100 Commits
Author SHA1 Message Date
Erik Arvstedt e658209d56 run-tests.sh: fix building tests for Nix ≥ 2.15 2023-07-19 17:22:01 +02:00
Erik Arvstedt bb2e88cec2 fix python packages for nixos 23.05 2023-07-19 17:22:01 +02:00
Erik Arvstedt e31cc686f2 run-tests: make compatible with new shellcheck version 2023-07-19 17:22:01 +02:00
Erik Arvstedt 76dc7b92e1 examples/deploy-container.sh: add extra-container version check
It now uses the same version check as
make-container.sh (which is called by run-tests.sh)
2023-07-19 17:22:01 +02:00
Erik Arvstedt 6c2d1108a4 update the required extra-container version for nixos 23.05 2023-07-19 17:22:01 +02:00
Erik Arvstedt e2cce7daa8 update to nixos 23.05 2023-07-19 17:22:01 +02:00
Erik Arvstedt 55c64d8dff update nixpkgs
clightning: 23.05.1 -> 23.05.2
lightning-pool: 0.5.3-alpha -> 0.6.4-beta
2023-07-19 17:22:01 +02:00
Erik Arvstedt bd77b89fea rtl, clightning-rest: update to nodejs 18
16 is no longer supported by NixOS 23.05.
18 is the latest LTS version.
2023-07-19 17:22:01 +02:00
Erik Arvstedt 50aa13c3b4 clightning-rest: 0.10.4 -> 0.10.5 2023-06-29 12:48:25 +02:00
Erik Arvstedt 26b35120ad tests/trustedcoin: remove from CI, disable temporarily
- Don't spin up a CI node for the minor `trustedcoin` test.
- Add the test to `run-tests.sh`, but disable it because it
  occasionally fails.
2023-06-26 00:10:31 +02:00
Erik Arvstedt edcf39daf5 clightning-rest: 0.10.3 -> 0.10.4 2023-06-21 23:09:39 +02:00
Erik Arvstedt bed10d1fca versioning: improve configVersion description 2023-06-09 21:51:20 +02:00
Erik Arvstedt 1b741c7cc1 clightning-plugins/prometheus: fix patch not being applied
`patchPhase` can't be used with `buildCommand`.
2023-06-09 14:40:32 +02:00
Erik Arvstedt af87d5958a obsolete-options: simplify removal of clightning plugin commando 2023-06-02 10:50:11 +00:00
Erik Arvstedt 9b575e4f3f test/backups: check that bitcoind stops without errors 2023-06-02 10:50:11 +00:00
Erik Arvstedt 8a791b754e rtl: 0.13.6 -> 0.14.0 2023-06-02 10:50:11 +00:00
Erik Arvstedt 29a95ea311 clightning-rest: update module to v0.10.3 2023-06-02 10:49:35 +00:00
Erik Arvstedt 67475f768e clightning-rest: 0.9.0 -> 0.10.3 2023-06-02 10:49:35 +00:00
Erik Arvstedt fe76516790 bitcoind: update module to v25.0 2023-06-02 10:49:25 +00:00
Erik Arvstedt 2166bfd1ee clboss: deprecate, add clighting 23.05 compatibility 2023-05-29 06:41:38 +00:00
Erik Arvstedt 1d69c9c824 lnd: fix non-static patch URL 2023-05-07 22:30:31 +02:00
Erik Arvstedt 9f3daab64f lnd: fix cert key format bug 2023-05-07 21:11:00 +02:00
Erik Arvstedt 744d8fe379 update nixpkgs
fulcrum: 1.9.0 -> 1.9.1
lightning-loop: 0.20.0-beta -> 0.23.0-beta
lnd: 0.15.5-beta -> 0.16.2-beta
2023-05-06 23:14:46 +02:00
Erik Arvstedt cea69b73d2 nodeinfo: enable required option nix-bitcoin.operator 2023-03-11 20:15:14 +01:00
Erik Arvstedt 27d95fda85 nodeinfo/lnd: add onion_rest_address 2023-03-11 20:10:55 +01:00
Erik Arvstedt 54a21874ae nodeinfo/lnd: add rest_address 2023-03-11 20:10:55 +01: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 477e1709fb lndconnect: update to Zeus 0.7.1
- Generate lndconnect URLs with protocol `c-lightning-rest` for clightning.
  (Zeus now auto-detects the lightning implementation by the URL protocol.)
- Use improved QR code format (via qrencode)  .
2023-02-27 14:39:29 +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 b4bc621b8c rename lndconnect-onion.nix -> lndconnect.nix 2023-02-27 14:39:29 +01:00
Erik Arvstedt 907cfe4f4c docs/services: improve title, fix numbering 2023-02-27 14:39:29 +01:00
Erik Arvstedt 3a2730d287 btcpayserver: support restarting from the web interface
This is required since version 1.7.4.
See: https://github.com/btcpayserver/btcpayserver/releases/tag/v1.7.4
2023-02-27 12:44:08 +00:00
Erik Arvstedt bf8de6744e README: add mempool extension module 2023-02-19 22:02:23 +01:00
Erik Arvstedt c12ff6251d README: add some module descriptions 2023-02-04 13:22:41 +01:00
Erik Arvstedt 2c3fa63baa dev/features: improve enter_service
Read uid/gid directly from the service pid.

This makes this fn work with arbitrary services, and with `bitcoind`,
where, for historical reasons, the service user name (`bitcoin`) doesn't
equal the service name.
2023-02-04 13:22:41 +01:00
Erik Arvstedt addfa8ec6b test: support run, debug commands in basic NixOS tests
Currently, this only affects the basic NixOS test `clightning-replication`.
2023-02-02 10:51:41 +01:00
Erik Arvstedt ae733d887e tests/clightning-replication: reuse pkgs instance
This reduces eval time by 30%.
2023-02-02 10:51:41 +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 85310b533a secrets: use type lines for generateSecretsCmds
This allows users to amend secrets cmds.
2023-02-02 10:51:41 +01:00
Erik Arvstedt bc2f66d4f1 bitcoind, liquid: increase start/stop timeouts 2023-02-02 10:51:41 +01:00
Erik Arvstedt 519ae31202 netns-isolation: improve formatting 2023-02-02 10:51:41 +01:00
Erik Arvstedt a1023696e6 netns-isolation: reserve netns id for mempool
This allows using the old id in the extension flake, so that
existing configs are not changed.
2023-02-02 10:51:41 +01:00
Erik Arvstedt 34fe8675bd add option nix-bitcoin.pkgOverlays
This simplifies extending `nix-bitcoin.pkgs` and is required for
extension flakes.
For now, mark this as `internal`.
2023-02-02 10:51:40 +01:00
Erik Arvstedt a3bdecb10b helper: add start-bash-session.sh 2023-02-02 10:51:40 +01:00
Erik Arvstedt 6291d4fbea rtl: 0.13.2 -> 0.13.4 2023-01-26 23:08:05 +01:00
Erik Arvstedt 690a8f6256 nodeinfo: extract fn mkInfoLong
This is required by the mempool extension flake.
2023-01-26 11:17:03 +01:00
Erik Arvstedt 2af642f56a improve comments
The comment in python-packackges was obsolete.
2023-01-26 11:17:02 +01:00
Erik Arvstedt 56c2abd91a update nixpkgs
btcpayserver: 1.7.2 -> 1.7.3
electrs: 0.9.10 -> 0.9.11
hwi: 2.1.1 -> 2.2.0
2023-01-25 23:57:29 +01:00
Erik Arvstedt 86dc7e2669 fulcrum: allow access to /proc/meminfo
This still hides the proc subdirectories for other processes.

Without this setting, fulcrum fails when the config value of
`fast-sync` is greater than 2^31 bytes.
2023-01-21 13:28:32 +01:00
Erik Arvstedt c948af2e18 dev/dev-features: add enter_service helper 2023-01-21 13:20:49 +01:00
Erik Arvstedt 5634f08873 rtl: make extraConfig recursively mergeable
Previously, when merging different definitions of `extraConfig`,
only the top-level attrset was merged.

Example:
The two separate settings
  nodes.lnd.extraConfig.Settings.userPersona = "MERCHANT";
  nodes.lnd.extraConfig.Settings.logLevel = "DEBUG";
were previously merged into
  nodes.lnd.extraConfig.Settings = { logLevel = "DEBUG" };
(The last definition has precedence.)
2023-01-20 13:46:08 +01:00
Erik Arvstedt b76728a1ec treewide: use bool literals for systemd
Run this from the repo root to check that there are no more remaining
bool strings:
grep -P '"true"|"false"' -r --exclude-dir=.git
2023-01-20 13:46:08 +01:00
Erik Arvstedt b4d7e1aa8f add dev helper and docs 2023-01-15 20:28:49 +01:00
Erik Arvstedt b35d08d3f2 docs: move test docs from examples/README to test/README 2023-01-15 20:28:48 +01:00
Erik Arvstedt 4d76eb9183 docs/configuration: fix typo 2023-01-15 20:28:48 +01:00
Erik Arvstedt dc0710f3f4 tests: add example scenario customTest 2023-01-15 20:28:48 +01:00
Erik Arvstedt 9019a17bfc versioning: add fulcrum db change info 2023-01-07 19:32:54 +00: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 a51f7b419e run-tests: use arg instead of env var for scenario overrides
This removes a source of implicit state and guarantees that regular
calls to `run-tests.sh` always run the builtin tests.
2023-01-06 23:46:43 +01:00
Erik Arvstedt 4b5b4eac58 examples/deploy-container: fix sudo env propagation
Env vars can't be reliably passed through `sudo`, so always
call nix-shell to setup the env after running sudo.
2023-01-06 23:23:54 +01:00
Erik Arvstedt 8d476cfeaf nix-bitcoin/runAsUserCmd: remove workaround 2023-01-03 16:18:27 +01:00
Erik Arvstedt 314020b246 rtl: 0.13.1 -> 0.13.2 2022-12-20 23:24:24 +01:00
Erik Arvstedt 00cceca861 joinmarket: fix Python packages 2022-12-18 20:01:53 +01:00
Erik Arvstedt e4b8e14d3a clightning: fix Python packages
Patching `pyln-proto` to use cryptography 38 lets
us avoid adding many older Python pkg versions.

The backwards incompatible changes from cryptography 36 to 38
only include the removal of deprecated fns that pyln-proto
doesn't use.
See string "BACKWARDS INCOMPATIBLE" in
https://cryptography.io/en/latest/changelog/
2022-12-18 20:01:53 +01:00
Erik Arvstedt d1ef2a6e1e pythonPackages: improve layout
- Move the creation of the joinmarket Python pkgs from
  `joinmarket/default.nix` to `pkgs/python-packages/default.nix`.

- Move definitions of old pkg versions from the main Python pkgs
  to the joinmarket Python pkgs.
  These old versions are only required by joinmarket.
2022-12-18 20:01:52 +01:00
Erik Arvstedt 74c8593407 pythonPackages: add indentation
This makes the following commit more readable.
2022-12-18 20:01:52 +01:00
Erik Arvstedt 109dccca27 treewide: use mdDoc for descriptions
Enable markdown syntax (instead of docbook) for descriptions.
This only affects external doc tooling that renders the descriptions.
2022-12-18 20:01:52 +01:00
Erik Arvstedt a9c1995ed9 treewide: rename maintainer earvstedt -> erikarvstedt 2022-12-18 20:01:52 +01:00
Erik Arvstedt 9e456ea3a9 shellcheck-services.nix: update to NixOS 22.11 2022-12-18 20:01:52 +01:00
Erik Arvstedt 77d58162e7 test: update to NixOS 22.11 2022-12-18 20:01:52 +01:00
Erik Arvstedt 142cbcfb37 flake: remove 32-bit systems 2022-12-18 20:01:52 +01:00
Erik Arvstedt c9b1e59f20 update to NixOS 22.11
This includes no pkg version updates.
2022-12-18 20:01:52 +01:00
Erik Arvstedt 62515a5696 helper/update-flake: support updating NixOS versions 2022-12-18 20:01:48 +01:00
Erik Arvstedt c5493717b7 lnd: support INADDR_ANY addresses for bitcoind.zmqpubraw*
Also use `mkDefault` when defining `bitcoind.zmqpubraw*` to simplify
overriding for users.
2022-11-11 12:10:00 +01:00
Erik Arvstedt 0447c5bacb treewide: set shebang for bash scripts
These scripts previously failed when called with syscalls like
`execve` (used by, e.g., Python's `subprocess.run`) that use no default
interpreter for scripts without a shebang.
2022-11-08 23:04:56 +01:00
Erik Arvstedt 0de16095e1 clightning-replication: switch system before waiting for server sshd
This is primarily a cosmetic change.
- Increases code clarity because all system test blocks now start with `switch_to_system`
- Optimizes dependency ordering because `switch_to_system` has no
  dependency on the server sshd
2022-11-04 11:51:44 +01:00
Erik Arvstedt d332177d3e clightning: extract var bitcoind
Follow the default module formatting style.
2022-11-04 11:07:36 +01:00
Erik Arvstedt 1b5e51b7fe examples/vm-config: fix syntax error 2022-11-04 00:33:53 +01:00
Erik Arvstedt 565deb770a examples/minimal-vm: add lightning-cli demo command 2022-11-04 00:33:31 +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 90e942e5ae nodeinfo: rename nodeinfoLib -> lib 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 47a09ec214 flake: expose supportedSystems 2022-11-03 23:08:05 +01:00
Erik Arvstedt b0dfa69e84 nixos-search/flake: formatting 2022-11-03 23:08:05 +01:00
Erik Arvstedt d428755399 flake: rename input nixpkgsUnstable -> nixpkgs-unstable
This follows common flake naming conventions.
2022-11-03 23:08:05 +01:00
Erik Arvstedt a12b701e75 tests/container: don't require services.clightning to be defined 2022-11-03 23:08:05 +01:00
Erik Arvstedt 450de19803 tests/run-tests.sh: print examples before running
This eases debugging example failures.
2022-11-03 23:08:05 +01:00
Erik Arvstedt 5f1bb2a8fc tests/copy-src: always copy .git dir
This is required by a later commit that introduces flakes-based test
evaluation. Evaluating local flakes needs a repo dir.
2022-11-03 23:08:05 +01:00
Erik Arvstedt a87a59a86b make-container.sh: improve root handling
Don't auto-switch to root when executing make-container.sh, because
auto root switching is also implemented in extra-container.

Besides simplifying the code, this is useful for a later commit that
introduces flakes-based container building.
With this change, the container is built under the regular user
instead of root, thereby utilizing the user's regular fetcher and
evaluation caches.
2022-11-03 23:08:05 +01:00
Erik Arvstedt b616d7ac1b profiles/hardened: support pure eval mode 2022-11-03 23:08:05 +01:00
Erik Arvstedt 73d2fbb448 add compatibility with Nix PR #6530 (Source tree abstraction)
Avoid adding flake resource paths to the store (via string
interpolation).
This reduces performance and can lead to modules getting imported
twice, once through a local path and once through a store path.

This might not be needed in a future Nix release, in which case we can
revert this.
2022-11-03 23:08:05 +01:00
Erik Arvstedt 3c816b862c tests/vmWithoutTests: poweroff on shell exit
This allows quitting the VM with Ctrl-D like in the minimal example VM.
2022-11-03 23:08:04 +01:00
Erik Arvstedt 1d3f49f8da tests, example: avoid lengthy documentation build
This options manual rebuild takes 30-60s and is triggered by the extra
NixOS options defined by nix-bitcoin.
2022-11-03 23:08:04 +01:00
Erik Arvstedt b840548d40 test/shellcheck-services: add configurable source prefix
This allows using this module for services defined outside of nix-bitcoin.
2022-11-03 23:08:04 +01:00
Erik Arvstedt b412de3ad7 bitcoind: fix rare startup error
Previously, dhcpcd and bitcoind starting up in parallel could lead to
the following error in bitcoind:
```
bitcoind: libevent: getaddrinfo: address family for nodename not supported
bitcoind: Binding RPC on address 127.0.0.1 port 8332 failed.
bitcoind: Unable to bind any endpoint for
```
After the initial failure, the bitcoind service would always restart successfully.

This race condition, where both applications were simultaneously
manipulating network resources, was only triggered under specific
hardware conditions.

Fix it by running bitcoind after dhcp has started (by running after
`network-online.target`).
This bug and the fix only affect the default NixOS scripted
networking backend.
2022-11-02 12:02:03 +01:00
Erik Arvstedt 57b76d4461 pkgs: add lnd 0.15.4 (hotfix)
Includes an emergency hotfix:
https://github.com/lightningnetwork/lnd/releases/tag/v0.15.4-beta
2022-11-01 14:12:56 +01:00
Erik Arvstedt 67949a002a lnd: fix missing RPC permissions when bitcoind is pruned 2022-10-25 22:56:51 +02:00
Erik Arvstedt 49303be2e0 test/shellcheck-services: fix error by excluding unavailable services 2022-10-25 22:36:30 +02:00
Erik Arvstedt 46f17fe313 test/shellcheck-services: simplify accessing service definitions
This also improves performance by removing the extra module evaluation.
2022-10-25 22:36:30 +02:00