Bitcoin Optech Newsletter #108
This week’s newsletter describes a proposal to allow upgrading LN channel commitment transaction formats without opening new channels and includes a field report from River Financial about building wallet software using PSBTs and descriptors. Also included are our regular sections with selected questions and answers from the Bitcoin StackExchange, recent releases and release candidates, and notable changes to popular Bitcoin infrastructure projects.
Bitcoin Optech Newsletter #107
This week’s newsletter links to several discussions about activating taproot and summarizes a proposed update to BIP173 bech32 addresses. Also included are our regular sections summarizing interesting changes to services and client software, releases and release candidates, and notable changes to popular Bitcoin infrastructure software.
Bitcoin Optech Newsletter #105
This week’s newsletter summarizes a proposed BIP for BIP32-based path templates and includes our regular sections with the summary of a Bitcoin Core PR Review Club meeting, releases and release candidates, and notable changes to popular Bitcoin infrastructure software.

Newsletters

Releases

project release date
c-lightning v0.9.0

We're pleased to announce the 0.9.0 release of c-lightning, named by Sebastian Falbesoner.

This is a major release and includes new features, new integrations as well as major internal refactorings facilitating extensions and future developments.

Highlights for Users

  • We can now send multi-part payments as well as keysend spontaneous payments. This complements the support to receive these payments introduced in an earlier release.
    • Large payments will now be split automatically into multiple parts that are more likely to succeed right away, and better protect your privacy.
    • Should a payment not succeed at first we will adaptively split the amount and retry.
  • We added support for watchtower plugins that help protect the node's funds while the node is not currently connected to the network.

Highlights for the Network

  • Support for optional fields in some messages has been removed, reducing complexity and replacing them with the more modern TLV extensions
  • Splitting payments into smaller parts with MPP increases the traffic on the network and improves privacy by making payments look more homogenous. The added traffic provides cover for other payments.

Highlights for Developers

  • Extensible payment flow framework in libplugin allowing developers to write custom extensions without having to reinvent the wheel.
  • Added RPC methods to create, sign and send PSBT transactions allowing c-lightning to be better integrated with wallets and higher-level protocols, such as coin-join and dual-funding.
  • Added RPC methods to reserve and unreserve outputs controlled by the node to complement the PSBT support, for multi-step protocols.
  • Added extensive accounting support in the form of the coin_movement hook that reports any change in the funds controlled by the node.
  • Refactored the internals to use PSBT everywhere, leveraging libwally
  • A number of new hooks and notifications were added to the plugin interface to allow deeper integration with c-lightning

More details can be found at https://github.com/ElementsProject/lightning/blob/v0.9.0/CHANGELOG.md

Thanks to everyone for their contributions and bug reports; please keep them coming.

Since 0.8.2, we've had 523 commits from 21 different authors. A special thanks goes to the 8 first time contributors:

  • Aiden McClelland @dr-bonez
  • Candle @CandleHater
  • Joe Miyamoto @joe.miyamoto
  • Michal Rostecki @mrostecki
  • Reza @rbndg
  • Sebastian Falbesoner @theStack
  • Vincenzo Palazzo @vincenzopalazzo
  • @mb300sd

Cheers,

Christian, Rusty, ZmnSCPxj, and Lisa

2020-07-31
c-lightning v0.9.0rc4 2020-07-29
c-lightning v0.9.0rc3 2020-07-24
ledger-live-common v13.6.0
  • update minor deps
  • Update ERC20 list
  • add ALGO in cryptocurrencies internal list (will allows algorand app to be ordered by marketcap correctly)
2020-07-31
ledger-live-common v13.5.0
  • TRON: send trc20 to smart contract. (see #790)
  • ETH: fix operationsCount post sync patch update (#793 LL-2817)
  • BCH: add support Sending to CashAddr (#788 LL-2802)
  • some fixes for device actions ongoing rework (WIP) – QA: low impact: make sure device actions are still ok on desktop.
  • batch of fixes for SWAP (WIP) – QA impact: none to production.
2020-07-28
ledger-live-common v13.4.0
2020-07-21
ledger-live-desktop v2.9.0

New features

  • Buy Crypto allows USDT (ERC20) and Stellar
  • Introducing a carousel on the portfolio tab
  • Added a get help section with useful links

Fixes

  • Support new Stellar protocol and fixed memo field that was resetting when changing recipient
  • Decred app not detected as outdated anymore on desktop
  • Unification of Cosmos operations details
  • Cosmos/Tron UI uniformisation
  • Native SegWit comes first in the add account flow
2020-07-23
ledgerjs v5.21.0

Maintenance update

  • Updated the ERC20 packed signature list
  • Updated build script dependencies
2020-07-31
ledgerjs v5.20.0
  • hw-app-btc: BCH: add flag "cashaddr" to use CashAddr format for txs
  • hw-app-eth: upgrade "rlp": 2.2.5 -> 2.2.6
  • hw-transport-node-hid-singleton: upgrade "usb-detection": 4.9.0 -> 4.10.0
2020-07-21
Bitcoin Core v0.20.1

Bitcoin Core version 0.20.1 is now available from:

https://bitcoincore.org/bin/bitcoin-core-0.20.1/

For the release notes please see the git repository:

https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.20.1.md

Preferably use the above download link, not the links provided by GitHub to download the source tarball, as the release tarballs are generated deterministically whereas GitHub's are not.

2020-08-02
lnd v0.11.0-beta.rc1

This marks the first major release in the v0.11.0 series!

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/bitconner/pgp_keys.asc | gpg --import

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

gpg --verify manifest-v0.11.0-beta.rc1.txt.sig

You should see the following if the verification was successful:

gpg: assuming signed data in 'manifest-v0.11.0-beta.rc1.txt'
gpg: Signature made Wed Jul 29 21:21:50 2020 PDT
gpg:                using RSA key 9C8D61868A7C492003B2744EE7D737B67FA592C7
gpg: Good signature from &#34;Conner Fromknecht <conner@lightning.engineering>&#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.14.6, 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.11.0-beta.rc1

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

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

WIP, release will be up shortly!

REST API

  • Extract REST definitions into rest-definitions.yaml
  • Enable REST proxy on subservers
  • Add server-streaming RPC WebSocket support

Build process

  • GitHub actions, cross-compile, itest on Travis, ARM itest

Safety

  • Add --no-publish flag to PSBT funding

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

Contributors (Alphabetical Order)

Andreas M. Antonopoulos András Bánki-Horváth Anthony Ronning Bjarne Magnussen Brian Mancini CandleHater Carla Kirk-Cohen Conner Fromknecht cryptagoras ErikEk Eugene Siegel fguisso Gabriel Comte Jake Sylvestre Jasper Rädisch Johan T. Halseth Joost Jager Markus Fix Matheus Degiovani Olaoluwa Osuntokun Oliver Gugger Roei Erez Sebastian Falbesoner vctt94 Wilmer Paulino yyforyongyu ____________________________________/conner@lightning.engineering

2020-07-31

RFC

type rfc # title date status
bip bip-0339 Bip339: small corrections and update spec to match implementation 2020-08-03 Update
bip bip-0078 Update bip-0078.mediawiki 2020-08-03 Merged
bip X Reject 175 (expired) 2020-08-01 New PR
bip X Reject 180 (expired) 2020-08-01 New PR
bip X Reject 171 (expired) 2020-08-01 New PR
bip bip-0064 Reject BIP-0064 (three years inactivity) 2020-08-01 Closed
bip bip-0099 Reject BIP-0099 (expired) 2020-08-01 Merged
bip X Reject expired block size BIPs 2020-08-01 Merged
bip bip-0159 Final BIP-0159 (NODE_NETWORK_LIMITED service bit) 2020-08-01 Closed
bip X Reject 118 (expired) 2020-08-01 Closed
bip X Reject 140 (expired) 2020-08-01 Merged
bip bip-0061 Obsolete BIP-0061 (Reject P2P messages) 2020-08-01 Closed
bip X Reject 134 (expired) 2020-08-01 New PR
bip X Reject 131 (expired) 2020-08-01 New PR
bip bip-0090 Final BIP-0090 (Buried Deployments) 2020-08-01 Merged
bip X Reject 156 (expired) 2020-08-01 Merged
bip bip-0039 BIP0039: Introduce WLIPS (Word Lists Improvement Proposals) repository. 2020-08-01 Update
bip bip-0032 added 'btc_hd_wallet' amongst implementations in bip32, bip39, bip85 2020-08-01 Update
bip X Use consistent capitalization of tag TapSighash 2020-08-01 Merged
bip bip-0039 add persian wordlist to bip39 2020-08-01 Update
bip bip-0039 Adding BIP-39 wordlist in German (2nd try) 2020-08-01 Update
bip bip-0174 BIP 174 reformat WIP 2020-08-01 Update
bip bip-0008 BIP 8 - replace FAILING with MUST_SIGNAL 2020-08-01 Update
bip X Limit the valid segwit address lengths. 2020-08-01 Update
bip bip-0008 BIP8: Fix pseudocode starting 1 block early 2020-08-01 Merged
bip bip-0174 BIP174: add hash preimage fields to inputs 2020-08-01 Update
bip bip-0174 BIP174: Clarify that both UTXO types are allowed 2020-08-01 Merged
bip bip-0118 Update BIP 118 for taproot, rename to ANYPREVOUT 2020-08-01 Update
bip bip-0008 [WIP] BIP0008 Earliest Activation Height 2020-08-01 Update
bip X New BIP: Logarithm of transaction fee limits block size 2020-08-01 Update
bip bip-0085 Fix bip85 2020-08-01 Merged
bip bip-0085 BIP85: Fix wrong test vector 2020-08-01 Merged
bip bip-0325 bip-325: change signature scheme to be tx-based 2020-07-30 Merged
bip bip-0174 BIP 174: clarify format of proprietary extensions. 2020-07-28 Closed
bip bip-0078 bip-0078.mediawiki: Correct links to BIP 21. 2020-07-28 Closed
bolt X More conservative `cltv_expiry_delta` recommendations 2020-08-03 Update
bolt payment encoding BOLT 11: make UPPERCASE explicit. 2020-08-03 Update
bolt X Replace RFC7539 with RFC8439 2020-08-03 Update
bolt X Lightning Specification Meeting 2020/08/03 2020-08-03 New Issue
bolt X Anchor outputs 2020-08-03 Update
bolt X channel_disabled flags 2020-07-28 Update
bolt X A home for BOLT 2020-07-21 Update
bolt X Lightning Specification Meeting 2020/07/20 2020-07-21 Update
bolt X Lightning Specification Meeting 2020/07/06 2020-07-21 Closed
slip slip-0044 slip-0044 : add wethio blockchain 2020-07-31 Merged
slip slip-0044 Update slip-0044.md 2020-07-28 Merged
slip X scdo project 2020-07-27 Merged
slip slip-0044 Update slip-0044.md 2020-07-25 Merged
slip X add JOYS (#537) 2020-07-22 Merged
slip X Add Beyondcoin [BYND] 2020-07-22 Merged
slip X Adding Haven Protocol XHV 2020-07-21 Merged