diff --git a/README.md b/README.md index 65133587d..d7cd93256 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 26.1 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 27.1 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 571b42b7b..9dec4af57 100644 --- a/docs/release-notes/eclair-vnext.md +++ b/docs/release-notes/eclair-vnext.md @@ -6,8 +6,16 @@ ### Update minimal version of Bitcoin Core -With this release, eclair requires using Bitcoin Core 26.1. -Newer versions of Bitcoin Core may be used, but haven't been extensively tested. +With this release, eclair requires using Bitcoin Core 27.1. +Newer versions of Bitcoin Core may be used, but have not been extensively tested. + +This version introduces a new coin selection algorithm called [CoinGrinder](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-27.0.md#wallet) that will reduce on-chain transaction costs when feerates are high. + +To enable CoinGrinder at all fee rates and prevent the automatic consolidation of UTXOs, add the following line to your `bitcoin.conf` file: + +```conf +consolidatefeerate=0 +``` ### API changes diff --git a/eclair-core/pom.xml b/eclair-core/pom.xml index c0331b2b7..20f3814e3 100644 --- a/eclair-core/pom.xml +++ b/eclair-core/pom.xml @@ -88,9 +88,9 @@ true - https://bitcoincore.org/bin/bitcoin-core-26.1/bitcoin-26.1-x86_64-linux-gnu.tar.gz - 260a8942ca91b3b2da5a3a68e23d9f55 - 4862009248449fdf41a9a6dcc8b4833c43527c10 + https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-x86_64-linux-gnu.tar.gz + 3253eaa3b0b9b612d39db667699712ac + 8e37ee39b60d02cdb2934913e5bed756eb0b7107 @@ -101,9 +101,9 @@ - https://bitcoincore.org/bin/bitcoin-core-26.1/bitcoin-26.1-x86_64-apple-darwin.tar.gz - 61e272c43dcc8dcb0296d9bfec16acb6 - 4aa320f6128e378c88462d7bfecb5fe412208b2e + https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-x86_64-apple-darwin.tar.gz + a741eb0bb55877b8bc05bf1928ed1f10 + 4d67a36c11d0ff3e6b5148d808c439f99a53c7c5 @@ -114,9 +114,9 @@ - https://bitcoincore.org/bin/bitcoin-core-26.1/bitcoin-26.1-win64.zip - 5bdbc41e2ce04b30739e480e17c6e022 - 5f797638eca9af85edb135723f6a10941c171478 + https://bitcoincore.org/bin/bitcoin-core-27.1/bitcoin-27.1-win64.zip + 8102305fed89d99291a65b3ee2e649f2 + 0ead7bd39f7ba72717ad3721f617beb84c8d5382 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 7ce1343ee..b6ca12c5e 100644 --- a/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala +++ b/eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala @@ -187,7 +187,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 >= 260100, "Eclair requires Bitcoin Core 26.1 or higher") + assert(bitcoinStatus.version >= 270100, "Eclair requires Bitcoin Core 27.1 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 4ff7c40f7..032082226 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-26.1/bin/bitcoind") + case None => new File(TestUtils.BUILD_DIRECTORY, "bitcoin-27.1/bin/bitcoind") } logger.info(s"using bitcoind: $PATH_BITCOIND") val PATH_BITCOIND_DATADIR = new File(INTEGRATION_TMP_DIR, "datadir-bitcoin")