Weekly Edition for Thursday, May 20

Releases

project release date
eclair v0.6.0

This release makes some core features mandatory, includes a few important bug fixes and several performance improvements. It is fully compatible with 0.5.1 (and all previous versions of eclair).

Major changes

Mandatory payment secrets

This release makes two important features mandatory:

These features have been widely deployed and protect against privacy attacks and stealing payments to 0-value invoices (as described here). You won't be able to connect to nodes that don't support these features nor pay invoices that don't include a payment_secret.

Improved detection of stale blocks

Eclair uses ZMQ to receive blocks and transactions from your bitcoin node. While ZMQ is usually very reliable, we discovered that its pub/sub model has some limitations. If a subscriber encounters network failures, it will silently disconnect without notifying the publisher. This never happens when your bitcoin node is on the same machine as eclair, but may happen when bitcoin is running on a remote machine and a VPN is used between the two machines. Eclair now sets a TCP keep-alive on the ZMQ socket to work around this limitation and quickly reconnect.

The blockchain watchdogs have also been improved to run at fixed intervals if no blocks are received. They will poll secondary blockchain sources (bitcoinheaders.net, blockstream.info, mempool.space and blockcypher.com) to detect that your eclair node is missing blocks.

Electrum support removed

This release removes support for using Electrum instead of Bitcoin Core for your bitcoin wallet. Electrum support was necessary for mobile wallets, but wasn't recommended for server deployments. Wallets are migrating to our Kotlin lightning stack, so eclair can now target exclusively server deployments.

Eclair depends on many low-level bitcoind RPCs for fee bumping which aren't available yet in Electrum.

Improved Postgres support

We previously introduced beta support for using PostgreSQL as database backend in eclair v0.4.1. We've fixed some bugs since then and improved the integration, but please note that PostgreSQL support is still in beta. We're actively working on finalizing this integration and making PostgreSQL production-ready in a future release.

Support for future segwit versions

This release adds support for option_shutdown_anysegwit (spec PR available here). Current segwit bitcoin addresses (P2WPKH and P2WSH) only use segwit version 0, but this change lets nodes use bitcoin addresses with other version numbers (taproot will use version 1).

API changes

This release updates a few APIs:

  • Features are now displayed as a map (feature name -> support) in API responses (#1715)
  • Channel internal state tracking force-close scenarios has been enriched (#1728)
  • A --blocking=<bool> option has been added to the payinvoice API (#1751)

We've also updated our internal API DSL, which paves the way for more plugin integration in a future release. Head over to our API documentation for more details.

Miscellaneous improvements and bug fixes

  • Eclair now defaults to Bech32 addresses (#1717)
  • Anchor output commitment feerate is now configurable (#1718)
  • All outputs of revoked anchor output commitments are claimed (there is a subtle edge case, see #1738)
  • Internal codec packages and database versions have been reworked to improve future backwards-compatibility
  • Several improvements have been made to our path-finding algorithms, improving tail latency
  • A bug affecting reconnections to peers has been fixed (#1760)
  • A bug affecting transaction outputs ordering (which can lead to channel force-close) has been fixed (#1806)

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 &gt; SHA256SUMS.stripped
$ sha256sum -c SHA256SUMS.stripped

Building

Eclair builds are deterministic. To reproduce our builds, please use the following environment (*):

  • Ubuntu 20.04
  • AdoptOpenJDK 11.0.6
  • Maven 3.8.1

Use the following command to generate the eclair-node package:

mvn clean install -DskipTests

That should generate eclair-node/target/eclair-node-0.6.0-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.1. You don't need to close your channels, just stop eclair, upgrade and restart.

Changelog

  • 163700a23 Set version to 0.5.2-SNAPSHOT (#1714)
  • 844829a9b Features should be a Map (#1715)
  • afa378fbb Fix Bolt 3 spec change that broke our test suite (#1719)
  • c4c0248ee Use bech32 addresses by default (#1717)
  • 92e53dc9a Configurable anchor output max commitment feerate (#1718)
  • ea8f94022 Fix potential race condition in node-relay (#1716)
  • 9ff2f833e Refactor and simplify API dsl (#1690)
  • 6364ae335 Reject trampoline payments with expired outgoing cltv (#1727)
  • 277213875 Better handling of TemporaryChannelFailure (#1726)
  • ded5ce0e1 Add metadata to local_channels table (#1724)
  • 8dc64dbaa Fix API regression (#1729)
  • 4bc2dec66 Reorganize internal codecs (master) (#1732)
  • 6d28cbc8e Rework XxxCommitPublished types (#1728)
  • 6e72785d6 fixup! Rework XxxCommitPublished types (#1728) (#1735)
  • 7819faec3 Move protocol codecs to their own package (#1736)
  • 3d3766ef5 Clarify some comments and add tests (#1734)
  • f39718a38 Add high-level architecture diagrams (#1733)
  • f202587e9 Clarify commit tx fee anchor cost (#1721)
  • c37eb1ad5 Handle aggregated anchor outputs htlc txs (#1738)
  • e5429ebdf Avoid visiting vertices multiple times in Dijkstra's algorithm (#1745)
  • c6a76af9d Introduce actor factories (#1744)
  • 75cb777c6 Prevent loops and improve shortest paths perf (#1747)
  • 936f36b9f Refactor Postgres code (#1743)
  • ac2b78437 Fix flaky relay-htlc-add test (#1752)
  • 5729b2891 Add blocking option to payinvoice API (#1751)
  • 89d248929 Remove Electrum support (#1750)
  • b25e5523e Remove Docker test dependency (#1753)
  • 13217610a Make signing payment requests faster (#1754)
  • 5f68bf922 Database nits (#1755)
  • 1e2abaed0 Index database metrics by backend (#1758)
  • 6518bb47a Posgres: fix concurrency in channels db (#1762)
  • 3da0b80cb Add a list of community plugins (#1763)
  • 48c0c4c98 Extract tx publishing from watchers (#1749)
  • 357f7f994 Catch all connection failures and reconnect (#1760)
  • 205653d09 Make db errors fatal in channels (#1764)
  • ccae92d7d (Minor) Minimize conflicts with feature branches (#1765)
  • eb834e252 Do not explicitly provide address for ServerSocket in tests (#1766)
  • d0e79fa31 Add shorter CI timeout (#1769)
  • 15ddc1718 Add trampoline info to auditDB (#1767)
  • 32a86a476 Ignore tests with ServerSocket (#1776)
  • 33d52b653 More database nits (#1773)
  • e092677b9 Rework the db version management (#1775)
  • 4a1dfd2a2 Reenable ServerSocket tests (#1777)
  • e14c40d7c Use proper data type for timestamps in Postgres (#1778)
  • 62dd3932f Use bouncycastle instead of spongycastle (#1772)
  • 3669428b5 Don't log ClosingType object (#1781)
  • 223a14cb5 Remove bintray (#1785)
  • 9e4042fd4 Migrate ZmqWatcher to akka-typed (#1759)
  • 90fbcd32f Index trampoline payments by hash and secret (#1770)
  • 3079cb4fc Remove unused class (#1792)
  • a8d4e07bd Use less strict isolation level for channel meta (#1790)
  • 55b50ecf4 ZMQ actors should subscribe to a single topic (#1793)
  • c64154938 Fix computation of path weight (#1794)
  • 340fd299b Update default path-finding weight ratios (#1796)
  • 55a629f11 Update instructions for downloading Tor Bundle (#1784)
  • 898c17bc7 Remove ConnectionControlPlugin trait (#1797)
  • 0805d51af Do not retry sending if payment gets confirmed on chain (#1799)
  • ec276f8e7 Use satoshi for htlc ordering (#1806)
  • 9c3ee59cf Check blockchain watchdogs regularly (#1808)
  • 91419980b Make payment_secret mandatory (#1810)
  • 1fbede761 Add TCP keep-alive on ZMQ socket (#1807)
  • 5a92f8474 Add support for option_shutdown_anysegwit (#1801)
  • e2b3b4735 Update Tor doc for Windows (#1811)
  • f746ade34 Set version to 0.6.0 (#1812)

Special thanks to @tompro who reworked our internal API DSL.

2021-05-19
ledger-live-common v19.9.1
  • Bugfixes on apps & deps
    • Update dependent apps if updating an app (#1182)
    • Fixes dep bug when inline install not enabled (#1184)
  • added LL platform types and logic (#1166)
2021-05-17
ledgerjs v5.52.0

@ledgerhq/hw-app-eth automatized provide ERC20 and "plugin"

had an important rework that will make it automatically do provideERC20Information for you so you no longer need to do provideERC20Information yourself for simple ERC20 transfers (for instance).

We also are preparing an important future release of our Ethereum nano app and this version makes it future proof.

The important changes of this also have this library dependency changes:

-    &#34;rlp&#34;: &#34;^2.2.6&#34;
+    &#34;ethers&#34;: &#34;^5.1.4&#34;

which allows us to parse the transaction sent to signTransaction to extract information we need to automate the providing of ERC20 and more. We will share more information about this along with the future version of Ethereum.

ERC20 list update

was also updated. see diff of commit https://github.com/LedgerHQ/ledgerjs/commit/1e6190ff89b7b3f0ae852719410eb3a33e08c43f

2021-05-20
BTC Pay Server v1.1.2
  • Fix: Unable to activate shopify integration @Kukks
2021-05-19
BTC Pay Server v1.1.1
Minor release minor bug fixes.

Improvements:

  • Update BC-UR bundle and support decoding hex format of wallet (#2505 #2499) @Kukks

Bug fixes:

  • During refund or payout, some payments issued from BTCPay were not properly detected. (#2513 #2518) @Kukks @NicolasDorier
  • Fix payment button steps and validation range (#2506 #2503) @Kukks
  • The local culture of the server could break some feature on BTCPay Server (#2512) @NicolasDorier
  • Make sure unaccounted payments (double spent payments, or payjoin original transaction), are not accounted by the payment requests and crowdfund app @NicolasDorier
  • Coinswitch page was not reflecting correctly in the side navigation @kukks
  • Coinswitch showed as enabled when it was configured but disabled @kukks
  • Lightning payment were not detected if Only enable the payment method after user explicitly chooses it was checked for the store @kukks
2021-05-14
lnd v0.13.0-beta.rc2 2021-05-15
lnd v0.13.0-beta.rc3 2021-05-20
pycoin 0.91.20210515 2021-05-16

RFC

type rfc # title date status
bip bip-0088 BIP 88: Templates for Hierarchical Deterministic derivation paths 2021-05-18 Merged
bip bip-0087 BIP 87: Hierarchy for Deterministic Multisig Wallets 2021-05-18 Merged
bip bip-0032 added 'btc_hd_wallet' amongst implementations in bip32, bip39, bip85 2021-05-18 Merged
bip X Define BIP Steward Process and set Temporary Editor 2021-05-17 Closed
bip bip-0340 BIP340: remove batch speedup graph and link to it instead 2021-05-17 Update
bip bip-0340 bip-340: recreate batch verify speedup graph w/ latest libsecp256k1 2021-05-17 Closed
bip bip-0343 BIP 343: Mandatory activation of taproot deployment 2021-05-17 Update
bip bip-0129 BIP 129: Bitcoin Secure Multisig Setup (BSMS) 2021-05-16 Merged
bip X Great mining info 2021-05-14 Closed
bip X Reject 136 (expired) 2021-05-14 Closed
bolt X Lightning Specification Meeting 2021/04/26 2021-05-19 Closed
bolt X Terminology: commitment vs HTLC 2021-05-14 Closed
bolt X Allow peers to announce "my side is empty, don't use" (voluntary, by tweaking channel policy) 2021-05-14 Closed
slip slip-0044 Update slip-0044.md 2021-05-18 Closed
slip slip-0044 Update slip-0044.md 2021-05-18 Merged