Eclair v0.3.3 Release Notes

Release Date: 2019-07-26 // 8 months ago

Previous changes from v0.3.1

  • 🚀 This release includes many improvements, new API calls, as well as a few bug fixes. It is faster, memory usage is smoother, and we strongly recommend that users upgrade.

    ⬆️ It is is fully compatible with 0.3 (see the Upgrading section below).

    Major changes

    API Improvements

    📚 Our payment API has been extended (see API documentation website):

    • 👍 better fee control when computing routes
    • more comprehensive balance information
    • you can provide your own preimage when you create payment invoices
    • you can provide precomputed payment routes when you send payments

    🐎 Performance improvements

    Some internal structures and data models have been changed to make resource usage (CPU and memory) more efficient even under very heavy load.

    Smarter payment relay logic

    We have improved our heuristics used to select the "best" outgoing channel when relaying payments, in order to increase success rate even if several channels to the next node are unavailable (because they don't have enough balance for example).

    Automatic re-connection using published node addresses

    ✅ If an IP address it not provided, we will use the address specified in its latest published announcement to connect to a node.

    Miscellaneous improvements

    Handling of corner cases where funding transactions would never confirm has been improved, as well as re-connection logic when a node is connected to many different peers.

    ⬆️ We've also improved runtime checks to detect if your Bitcoin node is still syncing or re-indexing (you should not use eclair with a bitcoin node that is not ready, we detect it when the application start, but not always if you stop your bitcoin node while eclair is running, and upgrade/re-index it).

    And we will now properly fail incoming payments when the invoice has expired.

    👌 Verifying signatures

    🚀 You will need gpg and our release signing key 7A73FE77DE2C4027. Note that you can get it:

    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

    ⬆️ Upgrading

    🚀 This release is fully compatible with Eclair v0.3 (including supported JDK and Bitcoin Node versions). You don't need to close your channels, just stop eclair, upgrade and restart. The only significant difference with v0.3 is that support for our old v0.2 API, which was deprecated but could still be activated, has been completely dropped.

    🔄 Changelog

    • Reject payments for expired invoices (#1057)
    • Connect immediately on restart, then wait (#1040)
    • Close the channel if the funding tx never confirms (#1034)
    • Check 'initialblockdownload' from bitcoind during startup (#1058)
    • ➕ Add TLV and TLV stream codec support (#1045)
    • ➕ Add more data to usablebalances API method (#1053)
    • ✅ Make Bitcoin Core bind on localhost in tests (#1056)
    • ➕ Added more memory for scoverage (#1050)
    • ⚡️ Update link for recommended JDK (#1054)
    • ➕ Add balances API method (#962)
    • ✂ Remove old service and related docs (#1046)
    • Ack unhandled lightning messages (#1042)
    • 🛠 Minor fixes (#1043)
    • Electrum: add data to TxIdFromPosResponse. (#1038)
    • Correctly decode requests without multipliers (#1020)
    • ✂ Removed cached codec (#1036)
    • Electrum: add id_from_pos (#1035)
    • 👉 Use compact encoding for signatures (64 bytes) instead of DER (#1014)
    • Output txid and serialized tx in transaction json serializer (#1033)
    • Clean pending htlcs db (#1027)
    • ⏪ Smarter restore logic for closing channels (#1015)
    • Peer reconnection address from node announcements (#1009)
    • ➕ Add feeThresholdSat and maxFeePct parameters to payments API (#1023)
    • Close channel if funding tx times out (#1016)
    • Smarter relay logic (#1011)
    • ⚡️ Electrum: update server list (#1022)
    • 🎉 Initialize global feerate with default from conf (#1019)
    • ✂ Removed PaymentRequest.MAX_AMOUNT (#1018)
    • Set handleCommandError to WARN (#1012)
    • Electrum: consistently retrieve wallet transactions (#1010)
    • 👉 Make htlc-reaper a top-level actor (#1013)
    • Send to route (#952)
    • ✅ Increase Service and EclairImpl test coverage (#1004)
    • API: optionally use a user supplied preimage when creating invoices (#965)
    • 👌 Improved test coverage of io package (#996)

    Thank you @btcontract !