Weekly Edition for Thursday, Jul 16

bulletin

Newsletters

Releases

project release date
eclair v0.4.1

This release includes many exciting new features, API changes as well as several bug fixes and improvements. Its is fully compatible with 0.4 (and all previous versions of eclair).

Major changes

Static Remote Key

This release adds support for option_static_remotekey. This removes the key rotation at each update of the commitment, and allows simpler funds recovery in case of backup loss: channel outputs will directly pay to one of your bitcoin wallet addresses.

This option is disabled by default, and will only be available for new channels when both peers activate the feature. To enable it, add the following lines to your eclair.conf:

eclair.features {
    option_static_remotekey = optional
}

You can verify that this is activated with the getinfo API, which now returns the list of features:

"features": {
  "activated": [
    {
      "name": "basic_mpp",
      "support": "optional"
    },
    {
      "name": "initial_routing_sync",
      "support": "optional"
    },
    {
      "name": "option_data_loss_protect",
      "support": "optional"
    },
    {
      "name": "gossip_queries_ex",
      "support": "optional"
    },
    {
      "name": "payment_secret",
      "support": "optional"
    },
    {
      "name": "var_onion_optin",
      "support": "optional"
    },
    {
      "name": "gossip_queries",
      "support": "optional"
    }
  ],
  "unknown": []
}

Improvements to path-finding and MPP

We've made several improvements to the path-finding algorithm. It now takes into account your channel's current balance more accurately when selecting a route.

The MPP split algorithm has been rewritten from the ground up, inspired by flow algorithms (see #1427 for details). MPP is now enabled by default (it was introduced in eclair v0.3.3 but was opt-in) for all eclair nodes and will soon be available on eclair-mobile (note that Phoenix has had MPP support since its first release).

MPP synergizes well with trampoline: trampoline nodes aggregate incoming MPP and re-split them more efficiently on outgoing channels.

PostgreSQL beta support

Thanks to @rorp, eclair now supports PostgreSQL as a database backend!

By default eclair still uses SQLite, but you can follow the instructions here to use PostgreSQL instead.

We're looking for feedback on how well this is working for you, so don't hesitate to try it out and let us know!

Human-readable features

Say goodbye to hex-encoded features: we've changed the format to be human-readable.

Here is how they are configured by default:

eclair.features {
  initial_routing_sync = optional
  option_data_loss_protect = optional
  gossip_queries = optional
  gossip_queries_ex = optional
  var_onion_optin = optional
  payment_secret = optional
  basic_mpp = optional
}

Note that if you want to disable features, there is a trick. You need to first set the features to null and then provide your set of chosen features, for example (in your eclair.conf):

eclair.features : null
eclair.features {
  option_data_loss_protect = optional
  var_onion_optin = optional
  payment_secret = optional
  basic_mpp = optional
  option_static_remotekey = optional
}

You can verify what features have been set with the getinfo API:

eclair-cli getinfo
{
  "version": "0.4.1-SNAPSHOT-xxxxxxx",
  "nodeId": "...",
  "alias": "...",
  "color": "...",
  "features": {
    "activated": [
      {
        "name": "basic_mpp",
        "support": "optional"
      },
      {
        "name": "initial_routing_sync",
        "support": "optional"
      },
      {
        "name": "option_data_loss_protect",
        "support": "optional"
      },
      {
        "name": "gossip_queries_ex",
        "support": "optional"
      },
      {
        "name": "payment_secret",
        "support": "optional"
      },
      {
        "name": "var_onion_optin",
        "support": "optional"
      },
      {
        "name": "gossip_queries",
        "support": "optional"
      }
    ],
    "unknown": []
  },
  "chainHash": "...",
  "network": "...",
  "blockHeight": 1,
  "publicAddresses": [],
  "instanceId": "..."
}

Feerate mismatch

When you disagree with your peer about on-chain fee rates, your funds may be at risk if your peer is malicious. For this reason, eclair has always been closing channels on your behalf before the situation gets too dangerous.

Your tolerance to fee rate mismatch was previously configured via eclair.on-chain-fees.max-feerate-mismatch. You can now independently configure your tolerance to either lower or higher fee rates:

eclair.on-chain-fees.feerate-tolerance {
  ratio-low = 0.5 // will allow remote fee rates as low as half our local feerate
  ratio-high = 10.0 // will allow remote fee rates as high as 10 times our local feerate
}

It's less dangerous if your peer overestimates the fees than if she underestimates it, hence the different default values.

We've also made changes to reduce the number of unnecessary close, by only closing channels when there are funds at risk in pending HTLCs. If your channel doesn't have pending HTLCs, eclair will safely ignore the remote fee rate and won't close the channel.

API changes

This release is packed with new APIs and improvements to existing ones:

  • batch channel updates (updaterelayfee, close, forceclose)
  • nodes to lookup node announcements
  • better channelstats
  • onchainbalance, sendonchain and onchaintransactions to interact with layer-1
  • more data returned in most API responses

Head over to our API documentation for more details.

Miscellaneous improvements and bug fixes

  • More metrics for an even better monitoring experience with Kamon.
  • Various improvements to connection handling and reconnection logic.
  • Updates to security parameters default values.
  • Various improvements on fee estimation.
  • Better errors for trampoline payments.
  • Logging improvements.

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

Changelog

  • 3f127fbf Update kamon (#1411)
  • 430f04a2 BUILD: document mvn clean command (#1413)
  • ba4cca29 Use channel balance in path-finding (#1395)
  • c4d0604b Payment lifecycle refactor (#1414)
  • f22ec213 Feerate provider improvements (#1415)
  • 8629d201 Skip executing some plugins when skipping tests (#1418)
  • ff5362e4 Fix eclair-node.sh for OSX (#1424)
  • bfd25fa0 Atomically switch to new connection (#1419)
  • 4e4c7c93 Put shebang in first line of launcher scripts (#1423)
  • 24b43e9a Use actor system as conf container (#1420)
  • 9faaf249 Reduce log level of backup handler (#1429)
  • c0103170 Fix race condition on early connection failure (#1430)
  • 029cafe2 Use human readable features in configuration (#1385)
  • ad44ab36 Path finding standard collections (#1428)
  • ce3629c9 Compute max fee before route calculation (#1417)
  • e0320da3 Electrum: stop spamming logs (#1433)
  • 2e79ccaf Correctly set new channel balance (#1431)
  • c04a4cef Accept multiple channels for some API (#1440)
  • dc364a19 Implement option_static_remotekey (#1141)
  • 4cfb7d94 Fix edges with empty capacity in the routing graph (#1446)
  • 2461e3a3 Fix channelstats API (#1451)
  • 50290d94 Monitor on-chain feerate mismatch (#1453)
  • 59ea4cd6 Put back DATA_CLOSING constraints (#1462)
  • 570fe57b Add friendly network name to GetInfo response (#1456)
  • 676a45c1 Add on-chain APIs (#1461)
  • c52508d2 Find multi part route (#1427)
  • e07a8ecf Static key refactoring (#1463)
  • d5ec6a56 Increase fulfill safety window (#1466)
  • 6c81f956 Use length-delimited byte-aligned codecs (#1442)
  • 928d47cd Add a fee provider saving feerates to database (#1450)
  • d9f257ad Multipart FSM v2 (#1439)
  • 41991289 MPP preimage received event (#1445)
  • 365d0916 More aggressive channel exclusion (#1441)
  • 88cb24dc Routing hints balance (#1443)
  • 0563d6d6 Update allnodes API (#1468)
  • 0619b202 Clarify trampoline route not found error (#1455)
  • 6d9dbb86 Onion payload and HTLC in-flight metrics (#1464)
  • 85163cb3 Add context logging to route request (#1469)
  • 5a83d2f8 Fix transaction fee test (#1454)
  • 7ec3ba82 Fix channelstats (for real?) (#1470)
  • 68dfc6cb Rework feerate mismatch (#1473)
  • b63c4aa5 Postgresql support (#1249)
  • ae3d3964 Remove the command buffer (#1476)
  • 26fdc62d Update backup handler and add DB metrics (#1475)
  • 23b5fb94 Fix commitments fuzz test (#1479)
  • d22f840e Replace Travis by Github Action (#1477)
  • adf4da62 Handle invoices with 0 amount (#1480)
2020-07-15
eclair v0.4

This release includes major upgrades to our core libraries (Scala and Akka), as well as several bug fixes and improvements. Its is fully compatible with 0.3.4 (and all previous versions of eclair).

Major changes

Scala 2.13, Akka 2.6

Update from Scala 2.11 and Akka 2.4 to Scala 2.13 and Akka 2.6.

Scala 2.13 brings a lot of improvements, among which:

  • better performance
  • tons of improvements for standard collections
  • faster compile times
  • better support for deterministic builds

Akka 2.6 contains a couple years of steady improvements over Akka 2.4:

  • better performance
  • better APIs and the introduction of typed actors
  • production-ready akka-cluster

Eclair will incrementally take advantage of the new features these updates have to offer.

Bitcoin 0.19.1

Add support for Bitcoin Core 0.19.1.

The most notable change impacting eclair is that fundrawtransaction does not fail when providing a too low feerate, but instead bitcoin will fail when broadcasting the transaction with sendrawtransaction. This is correctly handled by eclair v0.4.

GUI deprecation

eclair-node-gui is being deprecated and will is not published with this release. Source code will still remain available for some time, and building the GUI is very easy (check BUILD.md for more details, but basically mvn install -DskipTests is enough to build eclair-node and eclair-node-gui).

We strongly encourage people to use the API instead, see here for more information (it works on Windows too). We also added instructions on how to setup a monitoring endpoint, where you can create your own graphs and alerts.

Our GUI was built for demonstration and testing purposes, typically with a few nodes on single machine and in regtest mode. Using it as a Lightning wallet or to run routing nodes on mainnet is a very bad fit:

  • if you're looking for a Lightning wallet, consider using Phoenix or Eclair Mobile instead.
  • if you want to run a routing node, then it should be running on a machine that is reliable, secure, maintained, reachable from the internet and online most of the time, i.e probably not your desktop PC.
  • having a "bitcoin-like" GUI is misleading: if your Bitcoin node is offline it has a minimal impact on the Bitcoin network and you can still "receive" funds. When you start it again it catches up on the blocks and transactions that it has missed, so having a Bitcoin wallet or node that is often offline is fine. But when your Lightning node is offline it cannot send, receive or relay transactions. Your channels will be tagged as disabled and other nodes will have to route around you and will likely avoid you in the future because of your unreliability.

Miscellaneous improvements and bug fixes

  • More metrics for an even better monitoring experience with Kamon.
  • Improvements to our p2p handling of incoming and outgoing connections.
  • Fixed some race conditions in tests that were leading to random build failures.
  • Added more tests around mempool introspection to extract preimages early.
  • UTXOs weren't always correctly unlocked in the Bitcoin Core wallet in case funding failed (fixed in #1404)

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

Changelog

  • Use correct type for parameters in ExtendedBitcoinClient (#1248)
  • Support additional TLV records in SendPayentRequest (#1367)
  • Move router handlers to separate files (#1352)
  • Do not reconnect immediately if we keep getting disconnected (#1371)
  • Better tracking of channels count metric (#1369)
  • Revert Electrum Tor disabling SSL check (#1376)
  • Add logback config for eclair-node tests (#1377)
  • Gossip metrics (#1372)
  • Add a rejection for update when channel is pruned (#1378)
  • Use sender instead of providing actor refs (#1379)
  • Send update_fee on reconnection (#1383)
  • Refactor transaction generation errors (#1366)
  • fixup! Use sender instead of providing actor refs (#1379) (#1386)
  • Router channel balance (#1382)
  • Prepare upgrade to scala 2.13 and akka 2.6 (#1389)
  • Revert "Use sender instead of providing actor refs (#1379)" (#1391)
  • Fix race condition in router tests (#1392)
  • Update to scala 2.13 and akka 2.6 (incremental) (#1390)
  • Downgrade to scala 2.13.1 (#1394)
  • Support bitcoin-0.19.1 (#1380)
  • Test preimage extraction from mempool (#1387)
  • Remove unused attribute in Peer (#1397)
  • Disable backup handler in tests (#1399)
  • Fix BitcoinCoreWalletSpec (#1401)
  • Platform.currentTime->System.currentTimeMillis (#1403)
  • Delegate client creation to a specialized actor (#1400)
  • Monitoring documentation (#1402)
  • Validate channel_announcement sigs early (#1406)
  • Unlock transaction inputs if tx cannot be published (#1404)
  • Update README (#1405)
  • Minor: catch harmless unhandled events (#1407)
2020-07-15
c-lightning v0.9.0rc1 2020-07-15
zap-desktop v0.7.2-beta

Release notes

This is a general bug fix and maintenance release.

Bug Fixes

Changelog

The full list of changes since 0.7.1-beta can be found here:

https://github.com/LN-Zap/zap-desktop/compare/v0.7.1-beta...v0.7.2-beta

Verifying the Release

Please refer to our documentation for instructions on how to verify the release.

2020-07-15
zap-desktop v0.7.1-beta

Release notes

This is a general bug fix and maintenance release.

Bug Fixes

  • ui: only use node uris if there are some (937a200)
  • wallet: correctly set maxParts from config (edda5a9)
  • wallet: ensure password lock/unlock works (5de24e6)
  • wallet: increase activity page size to 250 (aa190a4)
  • wallet: prevent crash if node pubkey and uri is unknown (7f03cd0)
  • wallet: reduce default lee limit to 100 sats (f9bf11a)
  • wallet: refer to correct identityPubkey node data key (55e1582)

Changelog

The full list of changes since 0.7.0-beta can be found here:

https://github.com/LN-Zap/zap-desktop/compare/v0.7.0-beta...v0.7.1-beta

Verifying the Release

Please refer to our documentation for instructions on how to verify the release.

2020-07-13
zap-desktop v0.7.0-beta

Release notes

This release contains several new features including support for lnd v0.10, keysend, multi part payment, payment probes, Tor and more. As usual, this release also contains a number of optimisations and bug fixes.

LND 0.10

We now ship with LND 0.10.2-beta which delivers many improvements and enhancements. We continue to support connecting to external LND nodes that are running prior versions of LND, though we encourage all users to update their nodes.

Payment Probes

We now use payment probes to get an accurate fee estimate prior to making a lightning payment.

This is done by sending a payment with an unknown payment hash and inspecting the returned failure. If it originates from the final destination, the route is deemed to be valid.

Following through with the real payment after a successful probe is very likely to succeed and by using the route returned from the probe we can be sure of the exact route and associated fees that will be used.

Multi Part Payments (MPP)

If we are unable to send your payment using a single route we will try to leverage MPP - splitting the payment over multiple parts - in order to improve chances of delivery.

Spontaneous Payments (keysend)

We now support keysend payments. This lets you send Lightning payments without the need for the recipient to provide you with a bolt11 invoice first. All you need is the pubkey of the node you want to send to.

Using keysend you can send any amount of sats, any number of times to the same address (within your channel limits). The node pubkey acts like like a static reusable receive address.

gRPC over Tor

In this release, we have added support for connecting to your LND node's gRPC interface over Tor (via a .onion address) which enables you to connect to and control your node without exposing it to the internet.

LNURL Channel

As part of our continued rollout of the LNURL protocol we've added support for lnurl-channel which makes it possible to use services like LNBIG or Bitrefill's Thor to request inbound liquidity without worrying about manually opening channels.

This adds to our existing support for lnurl-withdraw which enables you to quickly and easily withdraw funds to your wallet without needing to create an invoice.

Hold Invoices

Hodl Invoices allow you to have manual control over the invoice settlement process - once payment has been received you can choose to accept or cancel back the payment.

Bug Fixes

  • app: ensure app restarts during autoupdate (8346450), closes #3198
  • app: whitelist docs.zaphq.io domain (0de7709)
  • backup: set user-agent to Chrome for google oauth (d9945a5), closes #3342
  • grpc: use grpc error details if available (c278f3a)
  • lnd: correctly set initWallet props on restore (22b92e9)
  • lnd: do not pass paymentHash when sending via paymentRequest (5fcc25c)
  • lnd: ensure fee limit is correctly set (762c137)
  • lnd: fetch dest pubkey from payment htlcs list (dc41030)
  • lnd: handle early walletunlocker disconnect (245c28b)
  • lnd: increasing default fee limit to 5000 sats (49cea65)
  • lnd: properly handle node updates from chan graph sub (b7a84ff)
  • lnd: support probing in lnd v0.10.0 (32bd2be)
  • lnd: use default cltv expired if not set in invoice (ecc22a8)
  • lnd: use route hints from invoice when probing (f46938b)
  • lnurl: show notification on success / error (e68c8f5)
  • ui: add zero amount payment request error (#3385) (6759be0), closes #1510
  • ui: always display crypto amounts as positive numbers (a203b15)
  • ui: correct wording for channel open/close error (626ba70)
  • ui: correctly calculate chan activity (1330a4b)
  • ui: disable address field overflow on amount form (bfafa3c)
  • ui: display correct fee from probing (64a006a)
  • ui: display destination when sending keysend payments (5572048)
  • ui: display total amount as unknown when no route found (7422b56)
  • ui: do not show qr code for keysend payments (2e11bc5)
  • ui: ensure destination is displayed during sending payments (e2d5e7e)
  • ui: ensure loading messages display correctly (ad6e5f5)
  • ui: ensure skip backup checkbox is clickable (f25cc02)
  • ui: ensure wallet settings initial values correct (53389d0)
  • ui: improve keysend receive message (2130610)
  • ui: improve lnurl success/error handling (5debf94)
  • ui: map send payment error codes to messages (1974463)
  • ui: only show crypto selector when total is known (0e30609)
  • ui: pay form next button disabled state (aa6eb53), closes #3176
  • ui: reload existing activity history on refresh (7029ba1), closes #3174
  • ui: remove channel from closing list on error (9cc1999)
  • ui: show liquidity warning on all but address step (ec6fa2a)
  • ui: trim host from keysend pubkey (010661c)
  • ui: update default window width to 950px (8ca422b)
  • ui: update transaction on stream update (4a10e8e)
  • ui: show correct heading for received payment in modal (df0b4bb), closes #539
  • ui: update pay form fiat value on initial set (26dc40c)
  • wallet: convert bip21 amount to active crypto unit (1bc4d68)
  • wallet: correct system notification for received transaction (70430ef)
  • wallet: correctly sort channels by activity (7c35b2a)
  • wallet: ensure activity items get date header rows (be47b82)
  • wallet: ensure fee displayed for slow confirmations (dc69302)
  • wallet: ensure received transactions show in filter (09860e2)
  • wallet: ensure transactions update on confirm (fbe93c6)
  • wallet: handle fee as string in TransactionFeeInput (a188b94)
  • wallet: log error if an activity paginator fails to load (75c928d)
  • wallet: no desktop notification for channel open or close (1e6165f)
  • wallet: only generate new address after use (4fd938d)
  • wallet: prevent double count of unconfirmed force close balance (d06657a)
  • wallet: properly decode invoice in getTag (2f49899)
  • wallet: store payment hash of sending payment (d3d5e23)
  • wallet: use uppercase for bolt11 qrcodes (9a9ab14)
  • wallet: ensure activity items correctly sorted (e96a8d5)
  • wallet: shorten timeout for lnurl processing notifications (340d170)
  • wallet: handle amounts as bignumber (fa894ba)
  • wallet: send correct payment request (a5d7d5c)
  • wallet: set payment probe fee limit to 100000 sats (ed23de0)
  • wallet: display transaction as unconfirmed if confs less than min finality (ffffd88)
  • wallet: error handling for failed invoice payments (8685ea6)
  • wallet: strip unsupported props from db wallet entries (d058956)
  • wallet: update help page link (1f480b6)

Features

  • lnd: enable keysend for neutrino clients (954b77c)
  • lnd: increase one time send/receive limits for mpp (3ee7c73)
  • lnd: support multi part payments (88b4bcc)
  • lnd: support route probing for keysend payments (e4d9438)
  • lnd: update lnd to 0.10.2-beta (42eff0c)
  • lnd: use new Router api for sending payments (13a2ed7)
  • lnd: use payment probing to get fee estimate (5c3aabd)
  • lnd: attempt sendToRoute for first payment attempt (1bce811)
  • ui: ability to edit fee limit from pay summary (62c4e3d)
  • ui: add node pubkey into send address field label (8d356c5)
  • ui: add note to request summary for keysend payments (1690f91)
  • ui: display destination address in payment modal (9a1d93a)
  • ui: display fee limit when fee is unknown (88a9bf2)
  • ui: display htlc summary in payment modal (5a4a02e)
  • ui: display loading message when starting tor proxy (cd490d6)
  • ui: show multiple node uris if there are more than one (8a418d9), closes #3150
  • ui: show tooltip when fee limit is unknown (8410149), closes #2676
  • ui: show total as spinner whilst probing (002c676)
  • ui: show transactions paid to self as sent to self (e498612)
  • ui: add tooltip to the Home.Autopilot section describing its function (7342a60)
  • ui: display paylock icon for private channels (ef16141)
  • walet: expose payment config via preferences page (9e4d1e4)
  • wallet: add ability to cancel invoices (669e716)
  • wallet: add ability to create hold invoices (248d86c)
  • wallet: add ability to settle invoices (fe2cbad)
  • wallet: add support for lnurl-channel (bad6762)
  • wallet: basic keysend support (8621eb6), closes #3333 #3338
  • wallet: lnurl-auth support (d9e281a)
  • wallet: handle fees using msats (01ac7fc)
  • wallet: show exact fee when possible (d202202)
  • wallet: support connecting to .onion domains (a99482b)
  • wallet: use pagination when fetching payments (d8106ec)
  • wallet: parse bip21 uris in pay address form (8e56936)

Changelog

The full list of changes since 0.6.2-beta can be found here:

https://github.com/LN-Zap/zap-desktop/compare/v0.6.2-beta...v0.7.0-beta

Verifying the Release

Please refer to our documentation for instructions on how to verify the release.

2020-07-11
ledger-live-common v13.3.0

Major improvements on this version.

Cosmos

https://github.com/LedgerHQ/ledger-live-common/pull/774 have unified cosmos operations (each transaction produces only one operation). What this means, on Ledger Live, is that each single action produces an "optimistic operation" that turns into the same "operation". For special operations like Delegate you will see the fees as a "delta" removed on the account in the operation list, but you get the full detail of delegations in the Operation Detail.

WIP exchange

we are working on new features and the work as landed in master.

> QA impact: Nothing to test yet.

device flow: reworking actions/app to allow polling and reach a stable state

https://github.com/LedgerHQ/ledger-live-common/pull/780 prepare some mobile integration and in light of the WIP exchange feature, we have fundamentally reworked the device actions "app".

> QA impact: this impact all flows where a device is required except Manager. This prepare mobile BUT DOES NOT impact it today, so you do not need to test anything on mobile. To be tested that the device context switch are still working the same (+ all error cases like being in wrong app, wrong account, etc..).

Bugfix Stellar memo reset

https://github.com/LedgerHQ/ledger-live-common/pull/782 fixes an UX problem where the memo was reseting after changing the recipient.

> QA impact: this just affects the Step 1 of Send flow for XLM.

Bugfixes on useTrustedInput

Technical notes https://github.com/LedgerHQ/ledgerjs/releases/tag/v5.19.1

> QA impact: you can test bitcoin likes. > - you can test Decred DO NOT produces a warning (this was a regression in our app) > - you can test that a Bitcoin app on a Nano S 1.3.1 can still do a transaction on a segwit OR native segwit account.

Protect getDeviceInfo with a check to ensure device is on dashboard

https://github.com/LedgerHQ/ledger-live-common/pull/784 makes sure that we check the device is on Dashboard with getAppAndVersion (B0 01 00 00) before asking getVersion (E0 01 00 00).

> QA impact: this will be on device flows and especially on Manager one. At least one firmware update should be tested on this work, maybe you can do a win-win by testing incoming firmware updates.

2020-07-13
ledger-live-common v13.2.0

LNS 1.2 support fix

  • Fixes a regressing for Nano S 1.2 on manager feature due to 1.2 not being semver compatible.

CLI

  • avoid a nesting of { data } in logs. example: silly: WalletPool#getCurrency { "data": ["stellar"] } is now silly: WalletPool#getCurrency ["stellar"]
  • Ctrl+C to kill process if done after 3s again.

Bot

  • introduces TRON. not yet functional.
  • inject a parameter "preloadedData" in specs transaction to access it in sync.
2020-07-11
ledgerjs v5.19.1

hw-app-btc: refinement of "trusted input for segwit" logic

2020-07-13
BTC Pay Server v1.0.5.3

Bug fixes

  • Payouts list incorrectly filtered if more than two pull payments (@arc3x)
  • Make it possible to refund invoice in the invalid state (@NicolasDorier)
  • Sane error message from the server if Basic authentication is not properly encoded in base64 (@Kukks)
  • Fix typos in pull payments (@Zaxounette)

New features and improvements

  • Add download PSBT button in the PSBT's screen of the wallet (@Kukks)
  • Upload PSBT button now support both, a file with base64 PSBT in it, or the raw bytes (@Kukks)
  • Make payjoin works with hardware wallets, need latest release of BTCPayServer Vault (@Kukks)
  • Better design for 2FA config screens (@Kukks #1735)
  • Enable CORS on greenfield API (@Kukks)
  • UI cleanup in the account section (@dennisreimann see #1721)
  • Improve information structure in the store's lightning page (@dennisreimann see #1706)
  • Various code cleanup (@rockstardev)
  • Set noindex, nofollow on the payment request page and pull payment page (@RiccardoMasutti)
  • Improve "Send" screen address field UX (@bolatovumar #1723)
  • Fix appearance of table in pull payments page (@bolatovumar #1732 and #1733)
  • Improve service settings, email settings, improve users list, U2F, 2FA, login view and maintenance page (@dennisreimann #1727)
  • Update translation for Deutsch and አማርኛ (Peter Battermann and @lbtil)
2020-07-14
lnd v0.10.4-beta

This is the 4th minor release in the v0.10.0-beta-series. This release is only relevant for Windows users. This release includes a bug fix to the recently modified SCB logic to ensure the SCB file is closed before we attempt to rename it.

Verifying the Release

In order to verify the release, you'll need to have gpg or gpg2 installed on your system. Once you've obtained a copy (and hopefully verified that as well), you'll first need to import the keys that have signed this release if you haven't done so already:

curl https://keybase.io/roasbeef/pgp_keys.asc | gpg --import

Once you have the required PGP keys, you can verify the release (assuming manifest-v0.10.4-beta.txt and manifest-v0.10.4-beta.txt.sig are in the current directory) with:

gpg --verify manifest-v0.10.4-beta.txt.sig

You should see the following if the verification was successful:

gpg: assuming signed data in 'manifest-v0.10.4-beta.txt'
gpg: Signature made Tue Jul 14 18:05:39 2020 PDT
gpg:                using RSA key 4AB7F8DA6FAEBB3B70B1F903BC13F65E2DC84465
gpg: Good signature from &#34;Olaoluwa Osuntokun <laolu32@gmail.com>&#34; [ultimate]

That will verify the signature of the manifest file, which ensures integrity and authenticity of the archive you've downloaded locally containing the binaries. Next, depending on your operating system, you should then re-compute the sha256 hash of the archive with shasum -a 256 <filename>, compare it with the corresponding one in the manifest file, and ensure they match exactly.

Verifying the Release Binaries

Our release binaries are fully reproducible. Third parties are able to verify that the release binaries were produced properly without having to trust the release manager(s). See our reproducible builds guide for how this can be achieved. The release binaries are compiled with go1.13.12, which is required by verifiers to arrive at the same ones. They include the following build tags: autopilotrpc, signrpc, walletrpc, chainrpc, invoicesrpc, routerrpc, and watchtowerrpc. Note that these are already included in the release script, so they do not need to be provided.

The make release command can be used to ensure one rebuilds with all the same flags used for the release. If one wishes to build for only a single platform, then make release sys=<os-arch> tag=<tag> can be used.

Finally, you can also verify the tag itself with the following command:

git verify-tag v0.10.4-beta

Building the Contained Release

Users are able to rebuild the target release themselves without having to fetch any of the dependencies. In order to do so, assuming that vendor.tar.gz and lnd-source-v0.10.4-beta.tar.gz are in the current directory, follow these steps:

tar -xvzf vendor.tar.gz
tar -xvzf lnd-source-v0.10.4-beta.tar.gz
GO111MODULE=on go install -v -mod=vendor -ldflags &#34;-X github.com/lightningnetwork/lnd/build.Commit=v0.10.4-beta&#34; ./cmd/lnd
GO111MODULE=on go install -v -mod=vendor -ldflags &#34;-X github.com/lightningnetwork/lnd/build.Commit=v0.10.4-beta&#34; ./cmd/lncli

The -mod=vendor flag tells the go build command that it doesn't need to fetch the dependencies, and instead, they're all enclosed in the local vendor directory.

Additionally, it's now possible to use the enclosed release.sh script to bundle a release for a specific system like so:

make release sys=&#34;linux-arm64 darwin-amd64&#34;

⚡️⚡️⚡️ OK, now to the rest of the release notes! ⚡️⚡️⚡️

Release Notes

This release includes a single commit, which is a bug fix for Windows related to the modified SCB logic included in v0.10.4. On the Windows platform, before a file can be renamed, if it's open, then all handles of the file need to be closed. This latest version now ensures the SCB file is closed before we attempt to rename it.

The full list of changes since v0.10.3-beta can be found here:

Contributors (Alphabetical Order)

Olaoluwa Osuntokun /laolu32@gmail.com

2020-07-15

RFC

type rfc # title date status
bip bip-0083 Reject BIP-0083 (three years inactivity) 2020-07-13 Merged
bip X Reject 115 (expired) 2020-07-13 Merged
bolt transactions Update BOLT 3 transaction test vectors to use static_remotekey 2020-07-15 Closed
bolt BOLT 12: A method for advertising nodes operated by specific domains 2020-07-13 Closed
bolt X Initial draft of the Atlas Name Mapping System 2020-07-13 Closed