Weekly Edition for Thursday, Aug 25



project release date
c-lightning v0.12.0

We're pleased to announce the 0.12.0 release of core-lightning, named by @adi2011.

Developers: please note the Great Msat Migration in the APIs!

Highlights for Users

  • NEW Built-in bookkeeper plugin! This plugin tracks all movements of msats for your node, gives you a better idea of your costs and revenues, prints out CSVs that are uploadable to Koinly and CoinTracker, lets you inspect the on-chain footprint of a channel (useful when it goes to chain). Check out the new bkpr- prefixed commands.
  • NEW Built-in commando plugin! This lets you create runes to allow access to your node from a commando client, which will let you send and receive RPC commands over the lightning network.
  • NEW Emergency channel backup ("static backup")! Keep track of what peers you have channels with, and in case of node failure ask those peers to close the channel.
  • NEW zeroconf channels are possible for whitelisted peers.
  • hsmtool has a new command, checkhsm, which will let you check a BIP30 passphrase against the hsm_secret.
  • Multiple log-file options will open multiple files for logging.
  • Various crashes and issues fixed in connectd including crash on peer reconnect and large memory usage when many concurrent peers.
  • PSBT: fixes signature encoding to comply with BIP-0174.
  • We added dynamically detected public IP addresses to getinfo.
  • Due to dependency issues on some platforms, a tarball of pre-generated manual pages is included with this release.

Highlights for the Network

  • We prefer IPv6 connections when available.
  • We now accept spam gossip and use it for routing, but don't relay it.
  • We no longer create gossip messages with zlib encoding (but still understand them).
  • We treat LND "internal error" as warnings, not force close events (reverts to v0.10.0 behavior).

Highlights for Developers

  • _msat fields are added wherever they were missing in the API: they're still currently an "msat"-suffixed string, but will soon bean integer value. Test with deprecated_apis=false.
  • The channel_state_changed notification now fires when a channel moves into state CHANNELD_AWAITING_LOCKIN.
  • htlc_accepted_hook will now expose the short_channel_id and the per-channel HTLC id.
  • pyln-testing now includes utilities to read and parse the gossip_store.
  • startup_regtest.sh script now includes a fund_ln method.
  • Rust binaries such as cln-grpc now included in our reproducible builds.
  • Updated the bolts implementation for pyln-spec.
  • Plugins no longer hang indefinitely if lightningd closes their connection.
  • M1 architecture support.
  • Upgrade docker base image from Debian buster to bullseye, works with glibc 2.29+.
  • Docker images now built with rust plugin cln-grpc.

Since v0.11.1 we've had 508 commits from 31 different contributors over 80 days.

A special thanks goes to 9 first time contributors:

  • Aditya Sharma
  • Alex Myers
  • Igor Bubelov
  • Justin Moon
  • Peter Neuroth
  • Swapnil
  • Jose A.P.
  • Brian Barto
  • AutonomoousOrganization

~ @niftynei, Christian, and Rusty

lib-ledger-core 4.3.3

What's Changed

Full Changelog: https://github.com/LedgerHQ/lib-ledger-core/compare/4.3.2...4.3.3

lnd v0.15.1-beta.rc2

This marks the first minor release of the 0.15.x cyle! This release includes support for zero conf channels, scid alisases (random scid values in the invoice), switches to using taproot addresses everywhere applicable by default, and also includes an optional database migration that can potential reclaim GBs of disk space for old or large lnd nodes.

Database Migrations

This release contains an optional migration to delete old revocation log space. The v0.15 release contained an "on the fly" migration that will start to write items in the revocation log in a more efficient manner. This release allows users to reclaim all the old disk space by converting historical records to the new format, with the old records being deleted.

The migration can be activated with a new CLI command: --db.prune-revocation=true. This migration can be restart at any time, with the migration logic picking up from where it left off.

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://raw.githubusercontent.com/lightningnetwork/lnd/master/scripts/keys/roasbeef.asc | gpg --import

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

gpg --verify manifest-roasbeef-v0.15.1-beta.rc2.sig manifest-v0.15.1-beta.rc2.txt

You should see the following if the verification was successful:

gpg: Signature made Wed Sep 30 17:35:20 2020 PDT
gpg:                using RSA key 60A1FA7DA5BFF08BDCBBE7903BBD59E99B280306
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 Timestamp

From this new version onwards, in addition time-stamping the git tag with OpenTimeStamps, we'll also now timestamp the manifest file along with its signature. Two new files are now included along with the rest of our release artifacts: manifest-roasbeef-v0.15.1-beta.rc2.txt.asc.ots.

Assuming you have the opentimestamps client installed locally, the timestamps can be verified with the following commands:

ots verify manifest-roasbeef-v0.15.1-beta.rc2.sig.ots -f manifest-roasbeef-v0.15.1-beta.rc2.sig

Alternatively, the open timestamps website can be used to verify timestamps if one doesn't have a bitcoind instance accessible locally.

These timestamps should give users confidence in the integrity of this release even after the key that signed the release expires.

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.18.2, which is required by verifiers to arrive at the same ones. They include the following build tags: autopilotrpc, signrpc, walletrpc, chainrpc, invoicesrpc, neutrinorpc, routerrpc, watchtowerrpc, monitoring, peersrpc, kvdb_postrgres, and kvdb_etcd. 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.15.1-beta.rc2
gpg: Signature made Tue Sep 15 18:55:00 2020 PDT
gpg:                using RSA key 60A1FA7DA5BFF08BDCBBE7903BBD59E99B280306
gpg: Good signature from &#34;Olaoluwa Osuntokun <laolu32@gmail.com>&#34; [ultimate]

Verifying the Docker Images

To verify the lnd and lncli binaries inside the docker images against the signed, reproducible release binaries, there is a verification script in the image that can be called (before starting the container for example):

$ docker run --rm --entrypoint=&#34;&#34; lightninglabs/lnd:v0.15.1-beta.rc2 /verify-install.sh v0.15.1-beta.rc2
$ OK=$?
$ if [ &#34;$OK&#34; -ne &#34;0&#34; ]; then echo &#34;Verification failed!&#34;; exit 1; done
$ docker run lightninglabs/lnd [command-line options]

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.15.1-beta.rc2.tar.gz are in the current directory, follow these steps:

tar -xvzf vendor.tar.gz
tar -xvzf lnd-source-v0.15.1-beta.rc2.tar.gz
GO111MODULE=on go install -v -mod=vendor -ldflags &#34;-X github.com/lightningnetwork/lnd/build.Commit=v0.15.1-beta.rc2&#34; ./cmd/lnd
GO111MODULE=on go install -v -mod=vendor -ldflags &#34;-X github.com/lightningnetwork/lnd/build.Commit=v0.15.1-beta.rc2&#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


Contributors (Alphabetical Order)

bitromortac Carsten Otto Elle Mouton ErikEk Eugene Siegel Jordi Montes Matt Morehouse Slyghtning Oliver Gugger Olaoluwa Osuntokun Priyansh Rastogi Tommy Volk Yong Yu Ziggie /laolu32@gmail.com/laolu32@gmail.com



type rfc # title date status
bip bip-0340 bip-340: reduce size of randomizers to 128 bit and provide argument 2022-08-23 Closed
bip X New BIP: PoST Datastore for Advanced Cryptography and Higher Efficiency Mining 2022-08-22 Closed
slip slip-0173 Add Spacemesh to SLIP-0173 2022-08-24 Merged
slip X added massa coin 2022-08-24 Merged
slip X Added KLYNTAR 2022-08-20 Merged
slip slip-0173 Add Stride to SLIP-0173 2022-08-20 Merged
slip slip-0173 Add Canto network to SLIP 173 2022-08-20 Merged
slip slip-0173 Added BZE (BeeZee) to slip173 2022-08-20 Merged