Lightning This Week | 605,954

LND Circular Payments, Bitcoin Core 0.19 and New Mailing List

André Neves
ZEBEDEE Engineering
5 min readNov 29, 2019


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...

Note: This is only available if you are using LND on master branch at this time.
PR 3736:
PR 3739:

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 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 getbalances, 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:

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

Full Winners List:

Millisatoshis LND

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 sat
3 — Default lower limit for forwarding totally on a node was 1 sat

PRs 3706 and 3729 address these and adds the msat fields.

PR 3706:
PR 3729:

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.

To learn more, visit our website and follow us on Twitter.