Skip to content

Commit f029584

Browse files
authored
Update Bitcoin Core to v29.1 (#3153)
Update Bitcoin Core to v29.1. This release doesn't contain any breaking change. It contains the following interesting features that we want to leverage in future eclair versions: - orphan handling improvements which lead to better propagation of force-close transactions - support for ephemeral dust, which we'll need for 0-fee commitments (v3 transactions) See release notes here: https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-29.0.md
1 parent 3abc17f commit f029584

File tree

7 files changed

+16
-10
lines changed

7 files changed

+16
-10
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ This means that instead of re-implementing them, Eclair benefits from the verifi
6262

6363
* Eclair needs a _synchronized_, _segwit-ready_, **_zeromq-enabled_**, _wallet-enabled_, _non-pruning_, _tx-indexing_ [Bitcoin Core](https://github.com/bitcoin/bitcoin) node.
6464
* 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.
65-
* Eclair requires Bitcoin Core 28.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.
65+
* Eclair requires Bitcoin Core 29.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.
6666

6767
Run bitcoind with the following minimal `bitcoin.conf`:
6868

docs/release-notes/eclair-vnext.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66

77
<insert changes>
88

9+
### Update minimal version of Bitcoin Core
10+
11+
With this release, eclair requires using Bitcoin Core 29.1.
12+
Newer versions of Bitcoin Core may be used, but have not been extensively tested.
13+
914
### Configuration changes
1015

1116
<insert changes>

eclair-core/pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,8 @@
8787
<activeByDefault>true</activeByDefault>
8888
</activation>
8989
<properties>
90-
<bitcoind.url>https://bitcoincore.org/bin/bitcoin-core-28.1/bitcoin-28.1-x86_64-linux-gnu.tar.gz</bitcoind.url>
91-
<bitcoind.sha256>07f77afd326639145b9ba9562912b2ad2ccec47b8a305bd075b4f4cb127b7ed7</bitcoind.sha256>
90+
<bitcoind.url>https://bitcoincore.org/bin/bitcoin-core-29.1/bitcoin-29.1-x86_64-linux-gnu.tar.gz</bitcoind.url>
91+
<bitcoind.sha256>2dddeaa8c0626ec446b6f21b64c0f3565a1e7e67ff0b586d25043cbd686c9455</bitcoind.sha256>
9292
</properties>
9393
</profile>
9494
<profile>
@@ -99,8 +99,8 @@
9999
</os>
100100
</activation>
101101
<properties>
102-
<bitcoind.url>https://bitcoincore.org/bin/bitcoin-core-28.1/bitcoin-28.1-x86_64-apple-darwin.tar.gz</bitcoind.url>
103-
<bitcoind.sha256>c85d1a0ebedeff43b99db2c906b50f14547b84175a4d0ebb039a9809789af280</bitcoind.sha256>
102+
<bitcoind.url>https://bitcoincore.org/bin/bitcoin-core-29.1/bitcoin-29.1-x86_64-apple-darwin.tar.gz</bitcoind.url>
103+
<bitcoind.sha256>eed72e5ccbee0148bde65a00081f6dc3491bc60c0da641e698a9b8e0f1340b4a</bitcoind.sha256>
104104
</properties>
105105
</profile>
106106
<profile>
@@ -111,8 +111,8 @@
111111
</os>
112112
</activation>
113113
<properties>
114-
<bitcoind.url>https://bitcoincore.org/bin/bitcoin-core-28.1/bitcoin-28.1-win64.zip</bitcoind.url>
115-
<bitcoind.sha256>2d636ad562b347c96d36870d6ed810f4a364f446ca208258299f41048b35eab0</bitcoind.sha256>
114+
<bitcoind.url>https://bitcoincore.org/bin/bitcoin-core-29.1/bitcoin-29.1-win64.zip</bitcoind.url>
115+
<bitcoind.sha256>0cdabb828273319976de9a3c1aa34efe463c4d1c64d89b0b7e61634d6bbd39b7</bitcoind.sha256>
116116
</properties>
117117
</profile>
118118
</profiles>

eclair-core/src/main/scala/fr/acinq/eclair/Setup.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ class Setup(val datadir: File,
195195
await(getBitcoinStatus(bitcoinClient), 30 seconds, "bitcoind did not respond after 30 seconds")
196196
}
197197
logger.info(s"bitcoind version=${bitcoinStatus.version}")
198-
assert(bitcoinStatus.version >= 280100, "Eclair requires Bitcoin Core 28.1 or higher")
198+
assert(bitcoinStatus.version >= 290100, "Eclair requires Bitcoin Core 29.1 or higher")
199199
bitcoinStatus.unspentAddresses.foreach { address =>
200200
val isSegwit = addressToPublicKeyScript(bitcoinStatus.chainHash, address).map(script => Script.isNativeWitnessScript(script)).getOrElse(false)
201201
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).")

eclair-core/src/test/scala/fr/acinq/eclair/blockchain/bitcoind/BitcoindService.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ trait BitcoindService extends Logging {
6262

6363
val PATH_BITCOIND = sys.env.get("BITCOIND_DIR") match {
6464
case Some(customBitcoinDir) => new File(customBitcoinDir, "bitcoind")
65-
case None => new File(TestUtils.BUILD_DIRECTORY, "bitcoin-28.1/bin/bitcoind")
65+
case None => new File(TestUtils.BUILD_DIRECTORY, "bitcoin-29.1/bin/bitcoind")
6666
}
6767
logger.info(s"using bitcoind: $PATH_BITCOIND")
6868
val PATH_BITCOIND_DATADIR = new File(INTEGRATION_TMP_DIR, "datadir-bitcoin")

eclair-core/src/test/scala/fr/acinq/eclair/blockchain/fee/BitcoinCoreFeeProviderSpec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ class BitcoinCoreFeeProviderSpec extends TestKitBaseClass with BitcoindService w
9595
regtestProvider.mempoolMinFee().pipeTo(sender.ref)
9696
val mempoolMinFee = sender.expectMsgType[FeeratePerKB]
9797
// The regtest provider doesn't have any transaction in its mempool, so it defaults to the min_relay_fee.
98-
assert(mempoolMinFee.feerate.toLong == FeeratePerKw.MinimumRelayFeeRate)
98+
assert(mempoolMinFee.feerate.toLong == 100) // 0.1 sat/byte
9999
}
100100

101101
private def createMockBitcoinClient(fees: Map[Int, FeeratePerKB], mempoolMinFee: FeeratePerKB): BasicBitcoinJsonRPCClient = {

eclair-core/src/test/scala/fr/acinq/eclair/channel/publish/ReplaceableTxPublisherSpec.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1474,6 +1474,7 @@ class ReplaceableTxPublisherSpec extends TestKitBaseClass with AnyFunSuiteLike w
14741474

14751475
// we try to publish the htlc-success again (can be caused by a node restart): it will fail to replace the existing
14761476
// one in the mempool but we must ensure we don't leave some utxos locked.
1477+
setFeerate(targetFeerate * 0.9)
14771478
val publisher2 = createPublisher()
14781479
publisher2 ! Publish(probe.ref, htlcSuccess)
14791480
val result = probe.expectMsgType[TxRejected]

0 commit comments

Comments
 (0)