Eclair v0.4.2
This release includes many exciting new features, API changes as well as several bug fixes and improvements.
Its is fully compatible with 0.4.1 (and all previous versions of eclair).
Major changes
Plugins
Third-party plugins are now able to add new feature bits to eclair and handle unknown custom messages.
This lets plugin developers offer services to their customers that are not available in the Lightning specification (e.g. swap-in/swap-out), while staying fully compatible with the network.
See #1528 for more details.
Anchor Outputs
This release adds experimental support for anchor outputs channels.
The main benefit of this type of channels is that it is possible to bump the on-chain fees of commitment transactions and htlc transactions once they are in the mempool to speed up their confirmation.
Eclair is fully compatible with the anchor output specification, but automatic fee bumping has not been implemented yet, hence we do not recommend activating the feature.
Some attacks that are specific to anchor outputs have also been discovered recently and haven't been fully addressed yet, but will be fixed in future releases.
Keysend
This release adds support for spontaneous payments using keysend.
It is fully compatible with lnd and c-lightning and makes it easy for public LN nodes to receive donations.
API changes
This release contains many new APIs and improvements to existing ones:
- Add
signmessage
/verifymessage
APIs: this allows signing arbitrary messages with the node's key and is compatible with lnd and c-lightning - We publish new channel events to the websocket (
channel-opened
,channel-state-changed
andchannel-closed
) - The
sendtoroute
API now lets you choose the channels that must be used, making it easy to rebalance your local channels
Head over to our API documentation for more details.
Miscellaneous improvements and bug fixes
- Many actors have been refactored to use Akka Typed instead of classic actors.
This leads to a cleaner design, better types and more help from the compiler to detect unhandled messages. - We added support for Bitcoin Core 0.20.1.
- We added support for non-default Bitcoin Core wallets (see #1540 for details)
- We fixed the
override-features
configuration parameter, which wasn't overriding features everywhere. This parameter can be very useful for example to sync only from specific nodes, or advertize wumbo support only to nodes that you trust.
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:
$ gpg --import drouinf.asc
To verify the release file checksums and signatures:
$ 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 19.10
- AdoptOpenJDK 11.0.6
- Maven 3.6.3
Use the following command to generate the eclair-node package:
mvn clean install -DskipTests
That should generate eclair-node/target/eclair-node-0.4.2-XXXXXXX-bin.zip
with sha256 checksums that matches 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 Eclair v0.4.1. You don't need to close your channels, just stop eclair, upgrade and restart.
Changelog
- ebfca8c Bitcoin Core Wallet small refactoring (#1482)
- e06325e fixup! Split the
Peer
in two (#1347) (#1487) - 65facab Add debug logs to transport handler (#1488)
- ea57bb2 Release 0.4.1 (#1481)
- 92a094c Anchor output transaction format (#1484)
- aca7499 Use github action for scoverage (#1490)
- 625e996 Update MinFinalCltvExpiryDelta default value and activate wumbo (#1483)
- ab4831f Use file filter for scoverage upload (#1492)
- e6909cf Implement the KeySend feature, spontaneous payments (#1485)
- a3dd365 Revive codecov.yml (#1493)
- bc81cd5 Add delay before setting watches at startup (#1489)
- 8cd2644 Do not merge user provided features with defaults (#1435)
- 3d4e00f Activate anchor output in channels (#1491)
- 6f9edec Relax relaying requirement on expiry (#1497)
- 5a5a0b9 Verify feature graph in Init (#1495)
- 01f924a Add API commands to sign & verify arbitrary messages (#1499)
- 1b21e14 Fix typo related to pico-bitcoin conversion (#1503)
- daddfc0 Type fee rates info (#1504)
- 3d168a5 Remove semaphore build (#1517)
- 2c43742 Show reminder of failed tests at the end (#1521)
- 153f82c Refactor integration tests (#1494)
- ef1bf0b Use the
replyTo
pattern for Register messages (#1514) - e54066b Remove
Status.Failure
in register responses (#1516) - 14a69b8 Trampoline relay exhausted liquidity (#1523)
- 77e972b Improve blockchain watchers (#1500)
- ea72023 Set the channel version in the init msg for the fundee (#1518)
- e34b74f Fix flaky integration test (#1524)
- 6b05099 Use the
replyTo
pattern for Channel messages (#1520) - b954def Update to Bitcoin Core 0.20.1 (#1526)
- d001100 Migrate relayers to akka typed (#1525)
- 2fc118c Do not reply to htlc settlement commands (#1527)
- f264235 Improve relayer logs (#1529)
- 3158c26 More leeway in tests (#1530)
- eed82e2 Update to scala 2.13.3 and akka 2.6.9 (#1532)
- 750b372 Minor improvements to the watcher (#1531)
- 662e0c4 Anchor output: handle unilateral close (#1501)
- 6ef72a0 Set a timefactor for typed actors tests (#1541)
- 3a773c1 Allow plugins to handle custom messages and features (#1528)
- 483cce4 Split IntegrationSpec (#1535)
- 42481c6 Add some channel events to websocket (#1536)
- 36c9b9b Configure bitcoin wallet (#1540)
- 8a27b4c Fixup funder fee buffer (#1364)
- 0ab7ec6 Add DB entry for payment router error (#1513)
- 1274168 Make all commands extend
Has*ReplyToCommand
(#1543) - 382868d [ChannelRelay] Prioritize lowest capacity channels (#1539)
- 56d216b Separate configuration for peer-connection (#1548)
- 8885ed7 (minor) Improve logs in channel relayer (#1550)
- 428349a Send to channel route (#1537)
- 20e0b4b Fix override-features implementation (#1549)
- ed61750 Nits (#1553)
- b728520 Prevent disabling
var_onion_optin
(#1552) - eea1ba9 Add backward-compatibility tests on some database codecs (#1554)
- 5036356 Fix forceclose API (#1555)
- 135ce6c Use maven plugin to include tests (#1557)
- a76db1c Fix channel CMD_SIGN (#1556)
- 3da76c0 Allow mandatory static-remotekey (#1558)
- 4b55d3e Fix typo in startup script (#1559)
- 3e3397c Fix Docker JAVA_OPTS expansion (#1561)