v0.1.3-alpha
Pre-releaseThis release is the third minor release for the application! Several bugs have been fixed on the backend. Additionally, the UI has received a few minimal updates.
NOTE: the version of lnd packaged includes a breaking change. As a result, before updating we recommend that users close out all their active channels, and also transfer any testnet coins they wish to hold onto to an external wallet before updating.
Before updating, users will need to remove all data from lnd's home data directory. This is required as there have been some breaking database changes within lnd itself. Depending on your operating system, the data directory will be found in a different location on the file system:
- MacOS:
$HOME/Library/Application Support/Lnd - Windows:
%LOCALAPPDATA%\Lnd - Linux:
~/.lnd
This release is pinned against the following commit of lnd: lightningnetwork/lnd@c0b8c29
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 roasbeef's key if you haven't done so already:
curl https://keybase.io/roasbeef/pgp_keys.asc | gpg --import
The keybase page of roasbeef includes several attestations across distinct platforms in order to provoide a degree of confidence that this release was really signed by "roasbeef".
Once you have his PGP key you can verify the release (assuming manifest-v0.1.3-alpha.txt and manifest-v0.1.3-alpha.txt.sig are in the current directory) with:
gpg --verify manifest-v0.1.3-alpha.txt.sig
That will verify the signature on the main manifest page which ensures integrity and authenticity of the binaries you've downloaded locally. Next, depending on your operating system you should then re-calculate the sha256 sum of the binary, and compare that with the following hashes (which are included in the manifest file):
83159bb69c4eefc0670e250c29c275bd955e7d25b6a3a0fc1625a891c2127ee7 Lightning-darwin-x64v0.1.3.zip
04da4ddf32cb31b33c993d62213a7d97d92f1e6c58d7f54d73789bf938ed1492 Lightning-linux-x64v0.1.3.tar.gz
a15c39e642ed373610114def2352edebf4f92ff5fa4ac7863a96ed35959627c0 Lightning-win32-x64v0.1.3.zip
One can use the shasum -a 256 <file name here> tool in order to re-compute the sha256 hash of the target binary for your operating system. The produced hash should be compared with the hashes listed above and they should match exactly.
This release can also be found in roasbeef's public keybase folder.
Notable Fixes
UI
The scrolling logs section in the settings page will now properly
Channel Graph Maintenance
The ChannelRouter within lnd will now properly respond to re-orgs by pruning any newly unconfirmed existing channel edges from the channel graph. If we wake up on a stale branch, then we'll now detect this, walk backwards, and then scan forwards on the new brach in order to detect any recently close channels while we were away.
A bug has also been fixed wherein we wouldn't properly detect channel closures while we were down when scanning forwards within the chain.
Time Locked Output Handling
The utxonursery within lnd has been fully revamped. It has been heavily refactored, with several edge cases being handled along the way. Most importantly it is now able to properly handle timed out second layer HTLC's, meaning offered HTLC's that have had their absolute CLTV timelock expired. Several new tests have been added to ensure the utxonursery is able to handle all persistence edge cases.
Channel Update Retransmission
We now fully adhere to BOLT-0002 by implementing the full channel re establishment retransmission logic. Tis means that fi were were mid commitment update, and the connection died, upon reconnection we'll now resynchronize state with the remote party, with both sides sending any updates which weren't fully ACK'd by the remote party.
Channel Announcement Processing
Announcements will now be fully duplicated within the pending batched before being flushed out to peers. This saves bandwidth, and also means that peers won't need to do any unnecessary validation. Additionally, we'll now process incoming message in parallel, reducing the total validation time when processing a new batch of messages during initial sync to the network.
Protocol Compatibility
The recent, final changes to the specification have been implemented. As a result, a few of the wire messages have undergone backwards incompatible changes. Due to these changes, users of the application may find that they're unable to interact with certain peers on the network, as the protocol has deviated since they last update. On the side of cooperative channel closures, the internal fee negotiation algorithm within lnd has been re-written. The new logic will now properly compromise, whereas the old algo would become stubborn and refuse to budge on its desired fee at a certain point.
Fee handling has been completely revamped. lnd nodes connected to a full node will now sample the fee rate on the network, and update the commitment transaction accordingly.
Contributors (Alphabetical Order):
- Brijan (DaReaper)
- Bryan Vu