Welcome to Lightning This Week — 5 minutes of quick updates on the Lightning ecosystem from the past week(ish). Let’s get right to it.
LND Circular Payments
Liquidity management is a top concern for any Lightning node operator. Maintaining good channel health and capacity/liquidity balances can at times be a very time-consuming task. It is technically possible to create a circular payment to yourself in LND in order to rebalance your channels, but up to this point the task was quite involved and required the operator to construct their own route each time. And while there are tools to facilitate the rebalancing of channels for LND, these have been external to the LND node itself, and are usually built by other members of the open source developer community.
Two PRs addressing this concern were merged to the LND codebase this week. Specifically 3739 and 3736. These PRs enable node operators to specify which node should be the last hop on a payment route before the payment is delivered to the intended recipient. This makes possible for operators to rebalance their channels using tooling core to LND, instead of relying on external third-parties. You can now easily pay your own invoices with LND!
If you use the master version of LND you can run the following to pay yourself from Channel 1 to Channel 2, thus allowing for trivial rebalancing of channel capacity.
lncli payinvoice --allow_self_payment --outgoing_chan_id <chan1Id> --last_hop <chan2Id> lnbc1234567...
LND 0.8.1 Beta
The Lightning Labs team has posted a new release for LND. The 0.8.1 Beta release fixes an issue with certain build configurations that could cause
lnd v0.8.0 to not build using the latest version of go. Additionally, this release is now compatible with the major release of Bitcoin Core 0.19.
Bitcoin Core 0.19.0.1 Release
The latest major release of Bitcoin Core has been posted. Node operators are encouraged to update to the new version, which includes bug fixes and lots of improvements. Some notable changes are new RPC methods for
getblockfilter (BIP158), and
setwalletflag (e.g. using the new
avoid_reuse parameter to control whether already used addresses should be included in the operation). 0.19 also disables BIP37 and BIP70 support by default, and adds GUI improvements for handling multiple wallets.
As usual it’s preferred to use the download link below (Bitcoin Core binaries) rather than GitHub’s source tarball as release tarballs created by GitHub are not generated deterministically.
Note: LND node operators that wish to use Bitcoin Core 0.19 should be running latest LND 0.8.1 Beta.
WatchTowers BOLT 13
Patrick McCorry and Sergi Delgado from PISA Research posted a draft for a BOLT 13(?) specification relating to WatchTowers in the Lightning Dev mailing list. We have already seen two implementations of WatchTowers in the wild — LND and Electrum. Since PISA is working on their own implementation it makes sense to make them interoperable and work to standardize some form of a specification.
All off-chain protocols assume the user remains online and synchronised
with the network. To alleviate this assumption, customers can hire a third
party watching service (a.k.a WatchTower) to watch the blockchain and
respond to channel breaches on their behalf.
The draft BOLT goes into detail relating to a protocol for client/server communication, how to build appointments for the WatchTower, and introduces a format for a signed receipt from the WatchTower.
Mailing List Discussion: https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-November/002350.html
New LND Mailing List
Roasbeef recently announced a new Google Groups mailing list for developers, users, and vendors building applications and services on top of LND. While the Lightning Dev mailing list is geared towards more technical discussions around the BOLT protocol spec and the many Lightning implementations, this new mailing list is specifically targeted at users and developers building on the LND implementation. One of the first posts on the list was the release of LNDroid Daemon — an LND wrapper library for Android that aims to facilitate the use of LND in native Android applications.
LND Mailing List: https://groups.google.com/a/lightning.engineering/forum/#!forum/lnd
STRIKE Hackathon Winners
The STRIKE Virtual Lightning Network Hackathon has come to an end and we saw some very exciting projects and proofs-of-concept being developed. The top winners were:
1 — Polar — application that lets you create arbitrary test Lightning Networks (see LTW 601,934)
2 — Shadow Plugin — a C-Lightning plugin that creates a new Node ID for each of your invoices
3 — Charged Mail — a tool to paywall your emails with Lightning
In LTW 603,944 we went over the discussions around the support for millisatoshis in LND and we have now seen two PRs merged to provide LND with full support for
msats. As Alex Bosworth describes the original API design for LND discouraged the use of millisatoshis in 3 separate instances:
1 — Could not specify
msats on invoice amounts
2 — Default lower limit for forwarding payments on a new channel was 1
3 — Default lower limit for forwarding totally on a node was 1 sat
PRs 3706 and 3729 address these and adds the
That is all for Lightning This Week. As usual, if I’ve missed any major happenings in the Lightning stratosphere please let me know through the comments or on Twitter.
ZEBEDEE’s mission is to develop software and infrastructure to introduce first-class Bitcoin and Lightning support into digital experiences and gaming environments. This allows players, developers, streamers, and watchers to interact and instantly exchange value in a frictionless manner.