All Versions
Latest Version
Avg Release Cycle
12 days
Latest Release
246 days ago

Changelog History

  • v0.3.3

    July 26, 2019
  • v0.3.3-android

    July 26, 2019
  • v0.3.2

    July 10, 2019
  • v0.3.2-android

    July 10, 2019
  • v0.3.1

    July 03, 2019

    🚀 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 !

  • v0.3.1-android

    June 04, 2019
  • v0.3

    May 09, 2019

    🚀 This is a major release which includes many improvements and bug fixes, and we recommend that users upgrade.

    ⬆️ It is compatible with eclair v0.2-beta9 (i.e you don't have to close your channels) but upgrading may be not as seamless as for previous versions, please check the Upgrading section.

    Major changes

    0️⃣ Eclair runs on mainnet by default

    🔧 Default configuration now targets mainnet, but you can still easily run Eclair on testnet or regtest.

    🆕 New RPC API

    📚 Our RPC API has been upgraded and improved and now include calls to retrieve payment information, see our API documentation. You can still choose to use the old API with a configuration option that will be removed in a future release.

    Easy channels backup

    ⚡️ Making backups of your channels is now simpler: we create an update an eclair.sqlite.bak backup file that is always consistent and safe to use even when your node is running.

    ⏪ Please note that an old backup can be used as a "static" backup: if you restore an old backup, channels open to peers that support Data Loss Protect will be recovered.

    🔌 Simple Plugin Support

    🚀 You can now easily write and deploy your own plugins, written in any JVM-compatible language. See the readme for more details.

    Bitcoin Core v0.17 or newer is now required

    ⬆️ We now require Bitcoin Core v0.17 or newer, meaning that eclair now works with Bitcoin Core v0.18. Eclair will not work anymore with older versions, you will have to upgrade.

    👌 Support for Tor Services

    You can now run Eclair as a Tor hidden service for increased privacy.

    Note that Tor also offers out-of-the-box NAT traversal, which solve the issue of changing ips.

    Target JDK is now OpenJDK 11

    We switched our target JDK from Oracle JDK8 to OpenJDK 11, and we recommend that you use it to run eclair. You can still use Oracle JDK8 (but it's up to you to check your licensing options).

    🐎 Performance improvements

    🐧 Eclair now embeds native JNI bindings for libsecp256k1 for Linux 64 bits, Windows 64 bits and Osx 64 bits, which makes eclair much faster. You can still use your own version of libsecp256k1 if you use a different OS.

    Many internal structures and workflows have been optimised and eclair is now even faster (not that it was ever slow to begin with, eclair is used on some of the biggest nodes on LN).

    👌 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 compatible with Eclair v0.2-beta9. You don't need to close your channels, just stop eclair, upgrade and restart. However, there are 2 major runtime changes that you need to take into account:

    If you're using Bitcoin Core v0.16.3, you must upgrade to v0.17 (latest release is 0.17.1). Since we require indexing, you tx index database will be migrated the first time you start your Bitcoin Core, which may take up to a few hours. Please stop eclair, migrate your Bitcoin node, and wait until its index database has been migrated before you start eclair again !

    👀 Our target JDK is now OpenJDK 11, and we suggest that you use it to run Eclair. You can still use Oracle JDK8 (but it's up to you to check your licensing options). See #846 for more details.

    🏁 .exe Windows installer has been removed

    🚀 Starting with this version, we do not release a Windows installer. Windows users must instead run the eclair jar file manually. If you're not sure how to do that, follow the instructions below:

    • Download and install Java with OpenJDK
    • Download the eclair-node-gui-0.3-a5debcd.jar file from this page and put it somewhere on your disk
    • Create a run-eclair-0.3.bat file somewhere on your disk, with the following content:

      start /B javaw -Declair.datadir=C:\path\to\node\datadir -jar C:\path\to\eclair-node-gui-0.3-2a89cf7.jar

    0️⃣ Replace the C:\path\to\... section with the actual values on your system. Note if you use the default datadir (which is C:\Users\name\.eclair) you can omit the -Declair.datadir=... section.

    💻 You can now run eclair by executing this bat file. Alternatively, you can use command line.

    🔄 Changelog

    • 👉 Use bitcoind fee estimator first (#987)
    • Ignore subprojects eclair-node/eclair-node-gui in the codecov report (#991)
    • Accept commit_sig without changes (#988)
    • ➕ Add bot support for code coverage (codecov) (#982)
    • ⏱ Set tcp client timeout to 20s (#990)
    • 0️⃣ Set default chain to "mainnet" (#989)
    • Replace UnknownPaymentHash and IncorrectPaymentAmount with IncorrectOrUnknownPaymentDetails (#984)
    • ⚡️ Update bash autocompletion for eclair-cli (#983)
    • 👍 API: Support query by channelId or shortChannelId everywhere (#969)
    • 👍 Better handling of closed channels (#944)
    • 🔊 Electrum: make debug logs shorter (#964)
    • 🔀 ElectrumWallet should not send ready if syncing (#963)
    • 🖨 Print stack trace when crashing during boot sequence (#949)
    • Live channel database backup (#951)
    • ➕ Added simple plugin support (#927)
    • ➕ Add channel errors in audit db (#955)
    • ➕ Added a timeout for channel open request (#928)
    • Electrum: do not persist transaction locks (#953)
    • ➕ Add a proper payments database (#885)
    • 🔧 Set max payment attempts from configuration (#931)
    • 🔦 Expose the websocket over HTTP GET to work properly with basic auth (#934)
    • Send events when HTLCs settle on-chain (#884)
    • ⚡️ Electrum: update client name (#930)
    • ➕ Add random delay to rebroadcast (#925)
    • Rollback tx if disconnected in WAIT_FOR_FUNDING_SIGNED (#923)
    • ✅ Separate cases for bech32 testnet and regtest for BOLT11 fallback address
    • API: use form data instead of JSON-RPC (#894)
    • Deal with channels with fees=0 when computing a route (#905)
    • Check WatchSpent in constant time (#916)
    • Rework database initialization (#911)
    • 👉 Use bitcoin-lib 0.11 which embeds libsecp256k1 (#907)
    • ⚡️ Don't send updates if no filter has been set (#912)
    • ⬆️ Upgrade to bitcoin 0.17.1 (#826)
    • 👍 Better logic for sending channel_updates (#888)
    • Replace BinaryData by scodec.bits.ByteVector (#896)
    • 👍 Better error logs for socks5 proxy (#893)
    • 🚚 NetworkDb: remove stale channels in batch (#886)
    • Clean channels with unexisting funding tx (#714)
    • 0️⃣ Set default to-remote-delay-blocks to 720 (#879)
    • Routing heuristics (#821)
    • 👉 Use ypub prefix for Electrum xpub (#875)
    • ⚡️ Update jeromq dependency (#852)
    • 0️⃣ Use OpenJDK 11 as default JDK (#846)
    • 🛠 Electrum fixes and improvements (#873)
    • 🛠 Fixed computation of available balance (#868)
    • Faster gui startup (#863)
    • 👌 Support all-uppercase payment requests (#862)
    • Reimplemented BOLT 11 with scodec (#856)
    • Parametric route search (#844)
    • Increased max-to-local-delay-blocks to 2016 (#853)
    • Stop disconnected peer when it has no channels (#840)
    • 👌 Improve Electrum start-up time (#848)
    • ➕ Add balance and channel lifecycle events to the audit db (#827)
    • 👌 Support for Tor onion services (#736)
    • (Router) Always select direct channel if there is one to the target (#850)
    • Proper handling of gossiped channels being spent (#838)
    • Ignore reconnections requests to the same peer with the same address (#835)
    • Replace initialization futures Future[Boolean] by Future[Done] (#836)
    • Set timestamp filter lower bound to current time (#837)
    • ChannelSelectionSpec: use akka.event.NoLogging (#834)
    • Relay to channel with lowest possible balance (#784)
    • 🔊 Complete commit logs

    Thank you @btcontract @rorp @n1bor @Kukks !

  • v0.2

    April 19, 2019


  • v0.2-android

    April 19, 2019