From eef51423a5697d15fe4ddcbfcf5e11467689be1a Mon Sep 17 00:00:00 2001 From: Yeji Han Date: Fri, 3 Apr 2026 00:13:40 +0900 Subject: [PATCH] chore: bump test dependencies and reorganize Docker files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test dependency updates: - bitcoind/corepc-node: 27.2 → 29.0 (corepc-node 0.10.0 → 0.10.1) - lnd_grpc_rust: 2.10.0 → 2.14.0 - Docker CLN: v23.08 → v25.12.1 (elementsproject/lightningd) - Docker LND: v0.18.5-beta → v0.20.1-beta - Docker bitcoind (CLN/LND compose): 27.2 → 29.1 - Download script: bitcoind 29.0 with updated SHA256 hashes CI fixes for bitcoind 29.0: - Cache key: add version to invalidate stale 27.2 cache - mkdir -p: needed when bitcoind cache misses but electrs cache hits CLN v25 compatibility: - Remove --experimental-anchors (deprecated in v25, causes BROKEN startup) - Add sleep before close_channel (monitor update timing with v25+) Organization: - Move docker-compose files to tests/docker/ (resolves #855) Closes #855 --- .github/workflows/benchmarks.yml | 4 ++-- .github/workflows/cln-integration.yml | 2 +- .github/workflows/lnd-integration.yml | 2 +- .github/workflows/rust.yml | 4 ++-- Cargo.toml | 6 +++--- scripts/download_bitcoind_electrs.sh | 6 +++--- .../docker/docker-compose-cln.yml | 5 ++--- .../docker/docker-compose-lnd.yml | 4 ++-- tests/integration_tests_cln.rs | 3 +++ 9 files changed, 19 insertions(+), 17 deletions(-) rename docker-compose-cln.yml => tests/docker/docker-compose-cln.yml (93%) rename docker-compose-lnd.yml => tests/docker/docker-compose-lnd.yml (96%) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index ef049ad85..f5cf79033 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -23,7 +23,7 @@ jobs: uses: actions/cache@v4 with: path: bin/bitcoind-${{ runner.os }}-${{ runner.arch }} - key: bitcoind-${{ runner.os }}-${{ runner.arch }} + key: bitcoind-29.0-${{ runner.os }}-${{ runner.arch }} - name: Enable caching for electrs id: cache-electrs uses: actions/cache@v4 @@ -34,7 +34,7 @@ jobs: if: "(steps.cache-bitcoind.outputs.cache-hit != 'true' || steps.cache-electrs.outputs.cache-hit != 'true')" run: | source ./scripts/download_bitcoind_electrs.sh - mkdir bin + mkdir -p bin mv "$BITCOIND_EXE" bin/bitcoind-${{ runner.os }}-${{ runner.arch }} mv "$ELECTRS_EXE" bin/electrs-${{ runner.os }}-${{ runner.arch }} - name: Set bitcoind/electrs environment variables diff --git a/.github/workflows/cln-integration.yml b/.github/workflows/cln-integration.yml index 32e7b74c0..2becf086a 100644 --- a/.github/workflows/cln-integration.yml +++ b/.github/workflows/cln-integration.yml @@ -19,7 +19,7 @@ jobs: sudo apt-get install -y socat - name: Start bitcoind, electrs, and lightningd - run: docker compose -f docker-compose-cln.yml up -d + run: docker compose -p ldk-node -f tests/docker/docker-compose-cln.yml up -d - name: Forward lightningd RPC socket run: | diff --git a/.github/workflows/lnd-integration.yml b/.github/workflows/lnd-integration.yml index f913e92ad..6f71f19d7 100644 --- a/.github/workflows/lnd-integration.yml +++ b/.github/workflows/lnd-integration.yml @@ -37,7 +37,7 @@ jobs: run: echo "LND_DATA_DIR=$(mktemp -d)" >> $GITHUB_ENV - name: Start bitcoind, electrs, and LND - run: docker compose -f docker-compose-lnd.yml up -d + run: docker compose -p ldk-node -f tests/docker/docker-compose-lnd.yml up -d env: LND_DATA_DIR: ${{ env.LND_DATA_DIR }} diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 188bee166..18589e612 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -53,7 +53,7 @@ jobs: uses: actions/cache@v4 with: path: bin/bitcoind-${{ runner.os }}-${{ runner.arch }} - key: bitcoind-${{ runner.os }}-${{ runner.arch }} + key: bitcoind-29.0-${{ runner.os }}-${{ runner.arch }} - name: Enable caching for electrs id: cache-electrs uses: actions/cache@v4 @@ -64,7 +64,7 @@ jobs: if: "matrix.platform != 'windows-latest' && (steps.cache-bitcoind.outputs.cache-hit != 'true' || steps.cache-electrs.outputs.cache-hit != 'true')" run: | source ./scripts/download_bitcoind_electrs.sh - mkdir bin + mkdir -p bin mv "$BITCOIND_EXE" bin/bitcoind-${{ runner.os }}-${{ runner.arch }} mv "$ELECTRS_EXE" bin/electrs-${{ runner.os }}-${{ runner.arch }} - name: Set bitcoind/electrs environment variables diff --git a/Cargo.toml b/Cargo.toml index 8a85c6574..a7daf5438 100755 --- a/Cargo.toml +++ b/Cargo.toml @@ -94,17 +94,17 @@ ldk-node-062 = { package = "ldk-node", version = "=0.6.2" } ldk-node-070 = { package = "ldk-node", version = "=0.7.0" } [target.'cfg(not(no_download))'.dev-dependencies] -electrsd = { version = "0.36.1", default-features = false, features = ["legacy", "esplora_a33e97e1", "corepc-node_27_2"] } +electrsd = { version = "0.36.1", default-features = false, features = ["legacy", "esplora_a33e97e1", "corepc-node_29_0"] } [target.'cfg(no_download)'.dev-dependencies] electrsd = { version = "0.36.1", default-features = false, features = ["legacy"] } -corepc-node = { version = "0.10.0", default-features = false, features = ["27_2"] } +corepc-node = { version = "0.10.1", default-features = false, features = ["29_0"] } [target.'cfg(cln_test)'.dev-dependencies] clightningrpc = { version = "0.3.0-beta.8", default-features = false } [target.'cfg(lnd_test)'.dev-dependencies] -lnd_grpc_rust = { version = "2.10.0", default-features = false } +lnd_grpc_rust = { version = "2.14.0", default-features = false } tokio = { version = "1.37", features = ["fs"] } [build-dependencies] diff --git a/scripts/download_bitcoind_electrs.sh b/scripts/download_bitcoind_electrs.sh index 47a95332e..f94e280e3 100755 --- a/scripts/download_bitcoind_electrs.sh +++ b/scripts/download_bitcoind_electrs.sh @@ -10,17 +10,17 @@ HOST_PLATFORM="$(rustc --version --verbose | grep "host:" | awk '{ print $2 }')" ELECTRS_DL_ENDPOINT="https://github.com/RCasatta/electrsd/releases/download/electrs_releases" ELECTRS_VERSION="esplora_a33e97e1a1fc63fa9c20a116bb92579bbf43b254" BITCOIND_DL_ENDPOINT="https://bitcoincore.org/bin/" -BITCOIND_VERSION="27.2" +BITCOIND_VERSION="29.0" if [[ "$HOST_PLATFORM" == *linux* ]]; then ELECTRS_DL_FILE_NAME=electrs_linux_"$ELECTRS_VERSION".zip ELECTRS_DL_HASH="865e26a96e8df77df01d96f2f569dcf9622fc87a8d99a9b8fe30861a4db9ddf1" BITCOIND_DL_FILE_NAME=bitcoin-"$BITCOIND_VERSION"-x86_64-linux-gnu.tar.gz - BITCOIND_DL_HASH="acc223af46c178064c132b235392476f66d486453ddbd6bca6f1f8411547da78" + BITCOIND_DL_HASH="a681e4f6ce524c338a105f214613605bac6c33d58c31dc5135bbc02bc458bb6c" elif [[ "$HOST_PLATFORM" == *darwin* ]]; then ELECTRS_DL_FILE_NAME=electrs_macos_"$ELECTRS_VERSION".zip ELECTRS_DL_HASH="2d5ff149e8a2482d3658e9b386830dfc40c8fbd7c175ca7cbac58240a9505bcd" BITCOIND_DL_FILE_NAME=bitcoin-"$BITCOIND_VERSION"-x86_64-apple-darwin.tar.gz - BITCOIND_DL_HASH="6ebc56ca1397615d5a6df2b5cf6727b768e3dcac320c2d5c2f321dcaabc7efa2" + BITCOIND_DL_HASH="5bb824fc86a15318d6a83a1b821ff4cd4b3d3d0e1ec3d162b805ccf7cae6fca8" else printf "\n\n" echo "Unsupported platform: $HOST_PLATFORM Exiting.." diff --git a/docker-compose-cln.yml b/tests/docker/docker-compose-cln.yml similarity index 93% rename from docker-compose-cln.yml rename to tests/docker/docker-compose-cln.yml index e1fb117e5..ef0efa8d8 100644 --- a/docker-compose-cln.yml +++ b/tests/docker/docker-compose-cln.yml @@ -1,6 +1,6 @@ services: bitcoin: - image: blockstream/bitcoind:27.2 + image: blockstream/bitcoind:29.1 platform: linux/amd64 command: [ @@ -48,7 +48,7 @@ services: - bitcoin-electrs cln: - image: blockstream/lightningd:v23.08 + image: elementsproject/lightningd:v25.12.1 platform: linux/amd64 depends_on: bitcoin: @@ -60,7 +60,6 @@ services: "--bitcoin-rpcuser=user", "--bitcoin-rpcpassword=pass", "--regtest", - "--experimental-anchors", ] ports: - "19846:19846" diff --git a/docker-compose-lnd.yml b/tests/docker/docker-compose-lnd.yml similarity index 96% rename from docker-compose-lnd.yml rename to tests/docker/docker-compose-lnd.yml index 8b44aba2d..304c4eb78 100755 --- a/docker-compose-lnd.yml +++ b/tests/docker/docker-compose-lnd.yml @@ -1,6 +1,6 @@ services: bitcoin: - image: blockstream/bitcoind:27.2 + image: blockstream/bitcoind:29.1 platform: linux/amd64 command: [ @@ -52,7 +52,7 @@ services: - bitcoin-electrs lnd: - image: lightninglabs/lnd:v0.18.5-beta + image: lightninglabs/lnd:v0.20.1-beta container_name: ldk-node-lnd depends_on: - bitcoin diff --git a/tests/integration_tests_cln.rs b/tests/integration_tests_cln.rs index 0245f1fdf..2b16793bd 100644 --- a/tests/integration_tests_cln.rs +++ b/tests/integration_tests_cln.rs @@ -121,6 +121,9 @@ async fn test_cln() { cln_client.pay(&ldk_invoice.to_string(), Default::default()).unwrap(); common::expect_event!(node, PaymentReceived); + // Allow monitor update to complete before closing (CLN v25+ timing) + std::thread::sleep(std::time::Duration::from_secs(2)); + node.close_channel(&user_channel_id, cln_node_id).unwrap(); common::expect_event!(node, ChannelClosed); node.stop().unwrap();