mirror of
https://github.com/ACINQ/eclair.git
synced 2025-03-13 11:35:47 +01:00
Update Bitcoin Core to v28.x. This releases contains the following interesting features: - automatic utxo unlocking on wallet conflicts - support for testnet4 - 1-parent 1-child package relay (channel force-close) - `max_tx_weight` parameter to `fundrawtransaction`
91 lines
3.4 KiB
Markdown
91 lines
3.4 KiB
Markdown
# Eclair vnext
|
|
|
|
<insert here a high-level description of the release>
|
|
|
|
## Major changes
|
|
|
|
### Update minimal version of Bitcoin Core
|
|
|
|
With this release, eclair requires using Bitcoin Core 28.1.
|
|
Newer versions of Bitcoin Core may be used, but have not been extensively tested.
|
|
|
|
### Simplified mutual close
|
|
|
|
This release includes support for the latest [mutual close protocol](https://github.com/lightning/bolts/pull/1205).
|
|
This protocol allows both channel participants to decide exactly how much fees they're willing to pay to close the channel.
|
|
Each participant obtains a channel closing transaction where they are paying the fees.
|
|
|
|
Once closing transactions are broadcast, they can be RBF-ed by calling the `close` RPC again with a higher feerate:
|
|
|
|
```sh
|
|
./eclair-cli close --channelId=<channel_id> --preferredFeerateSatByte=<rbf_feerate>
|
|
```
|
|
|
|
### Peer storage
|
|
|
|
With this release, eclair supports the `option_provide_storage` feature introduced in <https://github.com/lightning/bolts/pull/1110>.
|
|
When `option_provide_storage` is enabled, eclair will store a small encrypted backup for peers that request it.
|
|
This backup is limited to 65kB and node operators should customize the `eclair.peer-storage` configuration section to match their desired SLAs.
|
|
This is mostly intended for LSPs that serve mobile wallets to allow users to restore their channels when they switch phones.
|
|
|
|
### Eclair requires a Java 21 runtime
|
|
|
|
Eclair now targets Java 21 and requires a compatible Java Runtime Environment. It will no longer work on JRE 11 or JRE 17.
|
|
There are many organisations that package Java runtimes and development kits, for example [OpenJDK 21](https://adoptium.net/temurin/releases/?package=jdk&version=21).
|
|
|
|
### API changes
|
|
|
|
<insert changes>
|
|
|
|
### Miscellaneous improvements and bug fixes
|
|
|
|
#### Gossip sync limits
|
|
|
|
On reconnection, eclair now only synchronizes its routing table with a small number of top peers instead of synchronizing with every peer.
|
|
If you already use `sync-whitelist`, the default behavior has been modified and you must set `router.sync.peer-limit = 0` to keep preventing any synchronization with other nodes.
|
|
You must also use `router.sync.whitelist` instead of `sync-whitelist`.
|
|
|
|
## Verifying signatures
|
|
|
|
You will need `gpg` and our release signing key 7A73FE77DE2C4027. Note that you can get it:
|
|
|
|
- from our website: https://acinq.co/pgp/drouinf.asc
|
|
- from github user @sstone, a committer on eclair: https://api.github.com/users/sstone/gpg_keys
|
|
|
|
To import our signing key:
|
|
|
|
```sh
|
|
$ gpg --import drouinf.asc
|
|
```
|
|
|
|
To verify the release file checksums and signatures:
|
|
|
|
```sh
|
|
$ gpg -d SHA256SUMS.asc > SHA256SUMS.stripped
|
|
$ sha256sum -c SHA256SUMS.stripped
|
|
```
|
|
|
|
## Building
|
|
|
|
Eclair builds are deterministic. To reproduce our builds, please use the following environment (*):
|
|
|
|
- Ubuntu 24.04.1
|
|
- Adoptium OpenJDK 21.0.4
|
|
|
|
Use the following command to generate the eclair-node package:
|
|
|
|
```sh
|
|
./mvnw clean install -DskipTests
|
|
```
|
|
|
|
That should generate `eclair-node/target/eclair-node-<version>-XXXXXXX-bin.zip` with sha256 checksums that match the one we provide and sign in `SHA256SUMS.asc`
|
|
|
|
(*) You may be able to build the exact same artefacts with other operating systems or versions of JDK 11, we have not tried everything.
|
|
|
|
## Upgrading
|
|
|
|
This release is fully compatible with previous eclair versions. You don't need to close your channels, just stop eclair, upgrade and restart.
|
|
|
|
## Changelog
|
|
|
|
<fill this section when publishing the release with `git log v0.11.0... --format=oneline --reverse`>
|