Commit Activity For Thu, Oct 25

Notable issues and merges on Bitcoin Core, LND, c-lightning and libsecp256k1

Originally published by BitcoinOptech on newsletter #18

Bitcoin Core #14291:

For use with Bitcoin Core’s multiwallet mode, a new listwalletdir RPC can list all available wallets in the wallet directory.

Bitcoin Core #14424:

Fixes a likely regression in 0.17.0 for watch-only wallets that require users to import their public keys for multisig scripts (rather than just importing the script) in order for Bitcoin Core to attempt spending the script using RPCs such as fundrawtransaction with theincludeWatching flag. This PR has been tagged for backport to 0.17.1 whenever work on that should start. A workaround for 0.17.0 users is described in Bitcoin Core #14415.

LND #1978, #2062, #2063:

New functions for creating sweep transactions have been added, replacing functions from the UTXO Nursery that is “dedicated to incubating time-locked outputs.” These new functions accept a list of outputs, generate a transaction for them with an appropriate fee that pays back into the same wallet (not a reused address), and signs the transaction. The sweep transactions set nLockTime to the current block chain height, implementing the same anti-fee sniping technique adopted by other wallets such as Bitcoin Core and GreenAddress, helping to discourage chain reorgs and allowing LND’s sweep transactions to blend in with those other wallets’ transactions.

LND #2051:

Ensures that an attacker who chooses to lock his funds for a very long period of time (up to about 10,000 years) can’t cause your node to lock the same amount of your funds for the same length of time. With this patch, your node will reject requests from an attacker to lock his funds and your funds for a period of more than 5,000 blocks (about 5 weeks).

C-Lightning #2033:

Provides a new listforwards RPC that lists forwarded payments (payments made in payment channels passing through your node), including providing information about the amount of fees you earned from being part of the forwarding path. Additionally, the getstats RPC now returns a new field, msatoshis_fees_collected, containing the total amount of fees you’ve earned.

Libsecp256k1 #354:

Allows callers of the ECDH functions to use a custom hash function. The Bitcoin consensus protocol doesn’t use ECDH, but it is used elsewhere with the same curve parameters as Bitcoin in schemes described in BIPs 47, 75, and 151 (old draft); Lightning BOLTs 4 and 8; and variously elsewhere such as Bitmessage, ElementsProject side chains using confidential transactions and assets, and some Ethereum smart contracts. Some of these schemes can’t use the default hash function libsecp256k1 uses, so this merged PR allows passing a pointer to a custom hash function that will be used instead of the default and which permits passing arbitrary data to that function.