From 532f1da6fff5d67631a3902d5531490514c00b1d Mon Sep 17 00:00:00 2001 From: t-bast Date: Thu, 9 Jul 2026 18:06:25 +0200 Subject: [PATCH] Update Bitcoin Core to v31.1 This release contains a new index which we need for #3279. --- README.md | 2 +- docs/release-notes/eclair-vnext.md | 5 ++++- eclair-core/pom.xml | 12 ++++++------ .../src/main/scala/fr/acinq/eclair/Setup.scala | 2 +- .../eclair/blockchain/bitcoind/BitcoindService.scala | 2 +- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index fbe2255070..495867f60c 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ This means that instead of re-implementing them, Eclair benefits from the verifi * Eclair needs a _synchronized_, _segwit-ready_, **_zeromq-enabled_**, _wallet-enabled_, _non-pruning_, _tx-indexing_ [Bitcoin Core](https://github.com/bitcoin/bitcoin) node. * You must configure your Bitcoin node to use `bech32` or `bech32m` (segwit) addresses. If your wallet has "non-segwit UTXOs" (outputs that are neither `p2sh-segwit`, `bech32` or `bech32m`), you must send them to a `bech32` or `bech32m` address before running Eclair. -* Eclair requires Bitcoin Core 30 or higher. If you are upgrading an existing wallet, you may need to create a new address and send all your funds to that address. +* Eclair requires Bitcoin Core 31 or higher. If you are upgrading an existing wallet, you may need to create a new address and send all your funds to that address. Run bitcoind with the following minimal `bitcoin.conf`: diff --git a/docs/release-notes/eclair-vnext.md b/docs/release-notes/eclair-vnext.md index a5a9998de2..bc1f4349b7 100644 --- a/docs/release-notes/eclair-vnext.md +++ b/docs/release-notes/eclair-vnext.md @@ -4,7 +4,10 @@ ## Major changes - +### Update minimal version of Bitcoin Core + +With this release, eclair requires using Bitcoin Core 31.x. +Newer versions of Bitcoin Core may be used, but have not been extensively tested. ### Configuration changes diff --git a/eclair-core/pom.xml b/eclair-core/pom.xml index 849d6cb84b..8108813016 100644 --- a/eclair-core/pom.xml +++ b/eclair-core/pom.xml @@ -87,8 +87,8 @@ true - https://bitcoincore.org/bin/bitcoin-core-30.2/bitcoin-30.2-x86_64-linux-gnu.tar.gz - 6aa7bb4feb699c4c6262dd23e4004191f6df7f373b5d5978b5bcdd4bb72f75d8 + https://bitcoincore.org/bin/bitcoin-core-31.1/bitcoin-31.1-x86_64-linux-gnu.tar.gz + b80d9c3e04da78fb6f0569685673418cf686fadba9042d926d13fb87ff503f9e @@ -99,8 +99,8 @@ - https://bitcoincore.org/bin/bitcoin-core-30.2/bitcoin-30.2-x86_64-apple-darwin.tar.gz - 99d5cee9b9c37be506396c30837a4b98e320bfea71c474d6120a7e8eb6075c7b + https://bitcoincore.org/bin/bitcoin-core-31.1/bitcoin-31.1-x86_64-apple-darwin.tar.gz + bc506958d0f387c1ea770bdc7c7192a505fa645ff62cabcc7761fa7eb89e867e @@ -111,8 +111,8 @@ - https://bitcoincore.org/bin/bitcoin-core-30.2/bitcoin-30.2-win64.zip - 0d7e1f16f8823aa26d29b44855ff6dbac11c03d75631a6c1d2ea5fab3a84fdf8 + https://bitcoincore.org/bin/bitcoin-core-31.1/bitcoin-31.1-win64.zip + c99ef173471c58e6766d9eebd12e6c35349082eeed3939bc99eed58ef57db587 diff --git a/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala b/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala index b5440fc7ba..c68f2ff6ca 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala @@ -195,7 +195,7 @@ class Setup(val datadir: File, await(getBitcoinStatus(bitcoinClient), 30 seconds, "bitcoind did not respond after 30 seconds") } logger.info(s"bitcoind version=${bitcoinStatus.version}") - assert(bitcoinStatus.version >= 300000, "Eclair requires Bitcoin Core 30 or higher") + assert(bitcoinStatus.version >= 310000, "Eclair requires Bitcoin Core 31 or higher") bitcoinStatus.unspentAddresses.foreach { address => val isSegwit = addressToPublicKeyScript(bitcoinStatus.chainHash, address).map(script => Script.isNativeWitnessScript(script)).getOrElse(false) assert(isSegwit, s"Your wallet contains non-segwit UTXOs (e.g. address=$address). You must send those UTXOs to a segwit address to use Eclair (check out our README for more details).") diff --git a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoindService.scala b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoindService.scala index 6ca2a7a030..d81eb6fb0f 100644 --- a/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoindService.scala +++ b/eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoindService.scala @@ -62,7 +62,7 @@ trait BitcoindService extends Logging { val PATH_BITCOIND = sys.env.get("BITCOIND_DIR") match { case Some(customBitcoinDir) => new File(customBitcoinDir, "bitcoind") - case None => new File(TestUtils.BUILD_DIRECTORY, "bitcoin-30.2/bin/bitcoind") + case None => new File(TestUtils.BUILD_DIRECTORY, "bitcoin-31.1/bin/bitcoind") } logger.info(s"using bitcoind: $PATH_BITCOIND") val PATH_BITCOIND_DATADIR = new File(INTEGRATION_TMP_DIR, "datadir-bitcoin")