Skip to content

Add Eclair integration tests#785

Draft
tnull wants to merge 2 commits intolightningdevkit:mainfrom
tnull:2026-02-add-eclair-integration-tests
Draft

Add Eclair integration tests#785
tnull wants to merge 2 commits intolightningdevkit:mainfrom
tnull:2026-02-add-eclair-integration-tests

Conversation

@tnull
Copy link
Collaborator

@tnull tnull commented Feb 6, 2026

No description provided.

Add `integration_tests_eclair.rs` with a `TestEclairClient` wrapping
Eclair's HTTP REST API via `bitreq`, and a `test_eclair()` function
exercising channel open/close, bidirectional BOLT11 payments, and
soft-fail splice in/out tests.

Also add `eclair_test` to the `check-cfg` list in `Cargo.toml` and to
the cfg gate in `tests/common/mod.rs`.

Generated with the help of AI (Claude Code).

Co-Authored-By: HAL 9000
@ldk-reviews-bot
Copy link

ldk-reviews-bot commented Feb 6, 2026

👋 I see @valentinewallace was un-assigned.
If you'd like another reviewer assignment, please click here.

Add `docker-compose-eclair.yml` running bitcoind (with ZMQ), electrs,
and `acinq/eclair:v0.13.1`, and a GitHub Actions workflow that starts
the containers and runs the Eclair integration test suite.

Generated with the help of AI (Claude Code).

Co-Authored-By: HAL 9000
Signed-off-by: Elias Rohrer <dev@tnull.de>
@tnull tnull force-pushed the 2026-02-add-eclair-integration-tests branch from 43673da to cb73a18 Compare February 6, 2026 11:43
@tnull tnull marked this pull request as draft February 6, 2026 13:22
@tnull tnull removed the request for review from valentinewallace February 6, 2026 13:22
@jkczyz
Copy link
Contributor

jkczyz commented Mar 20, 2026

Were you able to get this to work locally with docker? I'm having trouble on macOS. I threw Claude at the problem, and it gave up but did fix some issues:

⏺ We found several bugs in the cherry-picked commits:

  1. Wrong Eclair config key names: rpc-port, rpc-user, rpc-password should be rpcport, rpcuser, rpcpassword. This caused Eclair to use default port 8332 instead of 18443.
  2. Wrong ZMQ topic: bitcoind was configured with -zmqpubrawblock but Eclair subscribes to hashblock, not rawblock. Changed to -zmqpubhashblock.
  3. Bitcoin Core version mismatch: Eclair latest (0.14.0-SNAPSHOT) requires Bitcoin Core 29+, but the compose file used blockstream/bitcoind:27.2. Changed to bitcoin/bitcoin:29.
  4. corepc-types incompatibility with BC 29: Bitcoin Core 29 changed warnings from string to array in getblockchaininfo, breaking deserialization. Replaced get_blockchain_info() with get_block_count() in tests/common/mod.rs.
  5. Missing wallet setup: BC 29 doesn't auto-create a default wallet. Added a bitcoin-init service to create the ldk_node_test wallet and mine an initial block before Eclair/electrs start. Also added -Declair.bitcoind.wallet=ldk_node_test and -Declair.allow-unsafe-startup=true.

Unresolved: Eclair's ZMQ subscription doesn't receive messages when running in Docker on macOS, despite:

  • libzmq (pyzmq) working between containers
  • Jeromq working between containers in a standalone test with the same DONTWAIT polling pattern
  • ZMQ working from host to container

The issue appears specific to Eclair's Akka actor system interacting with jeromq inside Docker on macOS. I don't have a root cause.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants