Weekly Edition for Thursday, Mar 4

Releases

project release date
eclair v0.5.1

This release includes many bug fixes and improvements, a new API and monitoring updates. It is fully compatible with 0.5.0 (and all previous versions of eclair).

Major changes

Improved startup performance

When eclair starts up and restores channels, it makes a lot of calls to bitcoind to check the status of each channel. We improved our calling pattern to greatly reduce the number of calls made when some channels are closing. This is particularly noticeable when the mempool is quite full and you have many channels.

See #1699 for details.

Gossip sync improvements

Most of the bandwidth consumed by lightning nodes is due to gossip (syncing the network graph). When your eclair node has a lot of peers and doesn't use a sync-whitelist, you may end up syncing with many different peers and obtaining redundant information, thus wasting bandwidth. Eclair now only syncs with peers you have a channel with to reduce bandwidth usage.

Anchor outputs

This release contains a lot of changes for the upcoming anchor outputs commitment format:

  • the feerate of the commitment transaction is kept low to improve off-chain channel usage
  • transactions with multiple inputs and outputs are now supported
  • CPFP and RBF utilities have been added to increase the feerate of commitment and htlc transactions

While you can start experimenting with this commitment format, it is still not safe to activate in production. Anchor outputs is a complex and subtle change that requires re-architecting most of our transaction broadcasting logic and utxo management. We are making steady progress towards that, but we're not there yet.

Monitoring changes

Kamon tracing has been removed in this release. It was too invasive in the codebase, generally unused and was costing some bandwidth. We've found that metrics and logs are enough to correctly monitor your eclair node.

Additional metrics to monitor transaction signing have been added. The rate of transaction signatures is a good indicator of how busy your node is.

API changes

This release adds a new path-finding API:

  • findroutebetweennodes lets you inspect the network graph by looking for routes between two nodes (whereas findroute only allowed finding routes between your node and a remote node)

Head over to our API documentation for more details.

Miscellaneous improvements and bug fixes

  • Correctly sort addresses in its node_announcement (#1693)
  • Allow 2016 blocks before unconfirmed channels are forgotten (#1692)
  • Re-emit private channel updates more frequently, improving payments to mobile wallets (#1671)
  • Correctly handle channel failures in private routing hints, fixing an edge case for payments to mobile wallets (#1675)
  • Drop support for initial_routing_sync: this was bandwidth-heavy and now unnecessary (#1683)
  • Fix an MPP-send edge-case (#1685)
  • Fix race condition between outgoing payment and peer disconnection (#1688)
  • Fix race condition between update_fee and shutdown, which could lead to channels stuck in shutdown (#1661)
  • Ensure transactions we publish always meet bitcoin's min_relay_fee (#1687)
  • Fix an edge case where an HTLC failure was not correctly relayed upstream if revoke_and_ack had not been received (#1706)

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

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.5.1-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 Eclair v0.5.0. You don't need to close your channels, just stop eclair, upgrade and restart.

Changelog

  • 923ca26f Set version to 0.5.1-SNAPSHOT (#1651)
  • b75f6c36 Fix duplicate commit id in awseb bundle (#1650)
  • 5f9d0d91 Relax cltv-expiry-delta requirement when selecting a channel to relay (#1655)
  • dd8975ae Make ChannelVersion methods public (#1656)
  • 7343283f Add test for duplicate temporary channel id (#1660)
  • 629c2e69 Fix rare race conditions in integration tests (#1653)
  • b477d179 Update build instructions for front (#1658)
  • e369ba9a More aggressively re-emit private channel updates (#1671)
  • d40b321d Blockchain watchdogs use unique actor name (#1667)
  • 9c4ab7d9 Fix HTLC fulfill race condition in integration spec (#1666)
  • 81f15aab Refactor and improve some channel tests (#1654)
  • 54ca2922 Remove kamon tracing (#1662)
  • 34e901db Clarify default relay fee change (#1673)
  • c75d9143 Fix failing reconnection tests (#1678)
  • 0127ace4 Remote failure updating routing hint (#1675)
  • ac054a2b Only sync with channel peers (#1587)
  • d0531883 Truncate hex strings in front logs (#1679)
  • 49023625 Refactor channel test helpers (#1682)
  • f241ef93 Remove support for initial_routing_sync (#1683)
  • 63d972bd Fix a few typos (#1684)
  • 5d3958dd Fix MPP path-finding edge case (#1685)
  • 15c1837d Add tx signing metrics (#1659)
  • 72179de0 PaymentLifecycle handle disconnected peers (#1688)
  • fdeb3ce7 Correctly set gossip sync_complete (#1668)
  • 36e8c056 Shutdown and UpdateFee should not be intertwined (#1661)
  • 2a359c6a Publish txs with min-relay-fee met (#1687)
  • 82e5b596 Sort addresses in node announcement (#1693)
  • 3a94a804 Reject unreasonable remote dust limit (#1694)
  • fdb57b43 Find route between nodes (#1695)
  • 9618a6a7 Add a maximum fee threshold for anchor outputs (#1672)
  • ab89851c Relax single tx input requirements (#1677)
  • 08351508 Update funding timeout fundee (#1692)
  • d9c0b862 Refactor bitcoin clients (#1697)
  • 5163749a [eclair-cli] Use multiplatform escape sequence
  • fa759f1e Fix PaymentLifecycle warning (#1703)
  • c1bf9bd1 Optimize watching for spending txs (#1699)
  • d02b900a Fix annoying compiler warning (#1704)
  • a3c477e3 Address all intellij warnings for Channel.scala (#1705)
  • bf2a35f7 Relay partially failed htlcs when closing (#1706)
  • 5d662fc3 Set anchor output feerates when force-closing (#1702)
  • 8065d0bb Add a serializer for DoSync (#1708)
  • 8d4da2fa Improve channel state tests (#1709)
  • 26468862 fixup! Improve channel state tests (#1709) (#1712)
  • 34796691 Disable jdbc instrumentation by default (#1713)
  • 98bb7be7 Set version to 0.5.1 (#1707)

Thanks to our new contributors, @tompro and @ariskk!

2021-03-03
ledger-live-common v18.6.0
  • https://github.com/LedgerHQ/ledgerjs/releases/tag/v5.45.0
  • LL-4621 No longer export dev mode setting (#1084)
  • disable XSN v3 experimental until BACK-1603
  • LL-4667 Stargate: check tx amount before getting gas estimate #1077
  • Remove the amount update from Cosmos rewards spec (#1066)
  • LL-4672 Allow new apps to pass the quitApp support test (#1080)
  • fix(Polkadot): fix election status threshold + add ENV to tweak it - COIN-1376
  • fix(Polkadot): ensure Polkadot prefix is also valid in address - COIN-1379
2021-03-02
ledger-live-common v18.5.7
  • [Cosmos] allow unranked validator to be display
  • Polkadot: fix bot specs
2021-03-02
ledger-live-common v18.5.6
  • Upgrade @polkadot/types package to v3.10.2
  • fix(Polkadot): handle errors from nano app
2021-03-02
ledger-live-desktop v2.23.0

🚀 Features

  • Polkadot is Live! Add your account to send and stake DOT.
  • Buy crypto without your Ledger device!
  • Cosmos migrated to Stargate update. Cosmos transactions made before the update are no longer displayed.

🐛 Fixes

  • Amounts are now rounded down to not be deceptive.
  • Fixed weekly chart that looked flat.
  • Dropped ETH transactions are not stuck as pending anymore.
  • Better error format for Swap.
2021-02-26
ledgerjs v5.45.0
2021-03-02

RFC

type rfc # title date status
bip bip-0125 BIP 125: Change 'Client support' to 'Backwards compatibility' 2021-03-03 Merged
bip bip-0047 Finalize BIP-47 2021-03-03 Update
bip X Sync BIP to match taproot code for SigMsg() 2021-03-02 Closed
bip X HD Multisig derivation standard 2021-03-01 Update
bip bip-0008 BIP 8: Elaborate and clarify parameter selection 2021-02-27 Merged
bip bip-0008 BIP 8: Make threshold configurable, and reduce recommendation to 90% 2021-02-27 Merged
bip bip-0008 bip8: tiny wording fixups 2021-02-26 Merged
bolt routing gossip BOLT 7: Onion message support (features 102/103) 2021-03-03 Update
bolt X RFC: Onion messages (previously "directed messages") 2021-03-03 Closed
bolt X Clarify nonce size for onion cipher 2021-03-02 Merged
bolt X Trampoline Routing (2021 edition) (Feature 24/25) 2021-03-02 Update
bolt payment encoding Bolt 11: add distinct HRP prefix for Bitcoin signet 2021-03-02 Merged
bolt X Add funding expiry to channel open 2021-03-02 Merged
bolt X Trampoline onion format (Feature 24/25) 2021-03-01 Update
bolt X feature: define option_zero_htlc_tx_fee (feature 22/23) 2021-03-01 Update
bolt onchain BOLT 5: fix up opposing MUST & MUST NOT statements. 2021-03-01 Update
bolt X Drop address descriptor ordering/count limits 2021-03-01 Closed
slip slip-0044 Update slip-0044.md 2021-03-03 Merged
slip X adding Topl coin type 2021-03-01 Merged
slip X Add MobileCoin 2021-03-01 Merged