lnd/docs/release-notes/release-notes-0.16.0.md

343 lines
14 KiB
Markdown
Raw Normal View History

# Release Notes
## BOLT Specs
* Warning messages from peers are now recognized and
[logged](https://github.com/lightningnetwork/lnd/pull/6546) by lnd.
* Decrypt onion failure messages with a [length greater than 256
bytes](https://github.com/lightningnetwork/lnd/pull/6913). This moves LND
closer to being spec compliant.
## RPC
2022-09-29 12:57:17 +02:00
* The `RegisterConfirmationsNtfn` call of the `chainnotifier` RPC sub-server
[now optionally supports returning the entire block that confirmed the
transaction](https://github.com/lightningnetwork/lnd/pull/6730).
2022-05-19 23:18:43 -04:00
* [Add `macaroon_root_key` field to
`InitWalletRequest`](https://github.com/lightningnetwork/lnd/pull/6457) to
allow specifying a root key for macaroons during wallet init rather than
having lnd randomly generate one for you.
* [A new `SignedInputs`](https://github.com/lightningnetwork/lnd/pull/6771)
field is added to `SignPsbtResponse` that returns the indices of inputs
that were signed by our wallet. Prior to this change `SignPsbt` didn't
indicate whether the Psbt held any inputs for our wallet to sign.
2022-07-23 11:08:05 +05:30
* [Add list addresses RPC](https://github.com/lightningnetwork/lnd/pull/6596).
* Add [TrackPayments](https://github.com/lightningnetwork/lnd/pull/6335)
method to the RPC to allow subscribing to updates from any inflight payment.
Similar to TrackPaymentV2, but for any inflight payment.
* [Catch and throw an error](https://github.com/lightningnetwork/lnd/pull/6945)
during `openchannel` if the local funding amount given is zero.
* [Extend](https://github.com/lightningnetwork/lnd/pull/6831) the HTLC
interceptor server implementation with watchdog functionality to cancel back
HTLCs for which an interceptor client does not provide a resolution in time.
If an HTLC expires, the counterparty will claim it back on-chain and the
receiver will lose it. Therefore the receiver can just as well fail off-chain
a few blocks before so that the channel is saved.
2022-09-29 12:57:17 +02:00
* [Make remote channel reserve amount configurable for
`openchannel`](https://github.com/lightningnetwork/lnd/pull/6956)
2022-10-08 16:04:24 -04:00
* [`ForwardingHistory` ](https://github.com/lightningnetwork/lnd/pull/7001) now
2022-10-25 05:57:46 -04:00
enriches each forwarding event with inbound and outbound peer alias names if
the new flag `PeerAliasLookup` in `ForwardingHistoryRequest` is set to true.
[`lncli fwdinghistory` ](https://github.com/lightningnetwork/lnd/pull/7083)
enables this feature by default but adds a new flag `skip_peer_alias_lookup`
to skip the lookup.
2022-10-08 16:04:24 -04:00
2022-10-25 15:34:28 +02:00
* The graph lookups method `DescribeGraph`, `GetNodeInfo` and `GetChanInfo` now
[expose tlv data](https://github.com/lightningnetwork/lnd/pull/7085) that is
broadcast over the gossip network.
2022-08-29 13:20:52 +02:00
* [Add new HTLC notifier event and lookup
RPC](https://github.com/lightningnetwork/lnd/pull/6517) for the final
settlement of incoming HTLCs. This allows applications to wait for the HTLC to
actually disappear from all valid commitment transactions, rather than assume
that it will. With the new extensions, situations can be avoided where the
application considers an HTLC settled, but in reality the HTLC has timed out.
Final resolution data will only be available for htlcs that are resolved
after upgrading lnd.
2022-11-09 08:11:27 -05:00
* Zero-amount private invoices [now provide hop
hints](https://github.com/lightningnetwork/lnd/pull/7082), up to `maxHopHints`
(20 currently).
* [Add `creation_date_start` and `creation_date_end` filter fields to
`ListInvoiceRequest` and
`ListPaymentsRequest`](https://github.com/lightningnetwork/lnd/pull/7159).
* [Add chainkit RPC endpoints](https://github.com/lightningnetwork/lnd/pull/7197):
GetBlock, GetBestBlock, GetBlockHash. These endpoints provide access to chain
block data.
* [`QueryProbabiltiy` is deprecated. Internal mission control state can be
obtained via `QueryMissionControl`.](
https://github.com/lightningnetwork/lnd/pull/6857)
2022-07-29 18:20:11 +02:00
## Wallet
* [Allows Taproot public keys and tap scripts to be imported as watch-only
addresses into the internal
wallet](https://github.com/lightningnetwork/lnd/pull/6775). NOTE that funding
PSBTs from imported tap scripts is not currently possible.
2022-10-18 13:29:17 +02:00
* [The wallet birthday is now used properly when creating a watch-only wallet
to avoid scanning the whole
chain](https://github.com/lightningnetwork/lnd/pull/7056).
2022-07-29 18:20:11 +02:00
* [The PSBT output information for change outputs is now properly added when
funding a PSBT through
`FundPsbt`](https://github.com/lightningnetwork/lnd/pull/7209).
2022-12-08 11:48:55 +01:00
* [Fix the issue of ghost UTXOs not being detected as spent if they were created
with an external tool](https://github.com/lightningnetwork/lnd/pull/7243).
## Build
[The project has updated to Go
1.19](https://github.com/lightningnetwork/lnd/pull/6795)! Go 1.18 is now the
minimum version needed to build the project.
2022-10-11 09:56:04 +02:00
[The minimum recommended version of the Go 1.19.x series is 1.19.2 because
1.19.1 contained a bug that affected lnd and resulted in a
crash](https://github.com/lightningnetwork/lnd/pull/7019).
[Use Go's `runtime/debug` package to get information about the build](
https://github.com/lightningnetwork/lnd/pull/6963/)
[A wire parsing bug has been fixed that would cause lnd to be unable _decode_
certain large transactions](https://github.com/lightningnetwork/lnd/pull/7100).
## Misc
2022-09-30 14:40:00 -04:00
* [Fixed a bug where the Switch did not reforward settles or fails for
waiting-close channels](https://github.com/lightningnetwork/lnd/pull/6789)
2022-09-21 15:44:54 -04:00
* [Fixed a flake in the TestChannelLinkCancelFullCommitment unit
test](https://github.com/lightningnetwork/lnd/pull/6792).
2022-06-22 10:15:41 +02:00
* [Fixed error typo](https://github.com/lightningnetwork/lnd/pull/6659).
2022-07-14 09:33:50 +02:00
* [The macaroon key store implementation was refactored to be more generally
usable](https://github.com/lightningnetwork/lnd/pull/6509).
2022-08-15 21:00:07 +00:00
* [Fixed a bug where cookie authentication with Tor would fail if the cookie
path contained spaces](https://github.com/lightningnetwork/lnd/pull/6829).
2022-08-17 11:58:36 +02:00
[With the module updated](https://github.com/lightningnetwork/lnd/pull/6836),
`lnd` now parses Tor control port messages correctly.
2022-08-15 21:00:07 +00:00
2022-08-30 16:36:45 -05:00
* [Add option to encrypt Tor private
key](https://github.com/lightningnetwork/lnd/pull/6500), and [update the Tor
module](https://github.com/lightningnetwork/lnd/pull/6526) to pave the way for
this functionality.
2022-09-04 14:57:57 -05:00
2022-09-19 12:48:42 -05:00
* [Fixed potential data race on funding manager
restart](https://github.com/lightningnetwork/lnd/pull/6929).
2022-10-13 10:30:45 -04:00
* [Fixed a flake in the TestBlockCacheMutexes unit
test](https://github.com/lightningnetwork/lnd/pull/7029).
2022-10-12 11:50:13 +02:00
* [Create a helper function to wait for peer to come
online](https://github.com/lightningnetwork/lnd/pull/6931).
* [Stop handling peer warning messages as errors](https://github.com/lightningnetwork/lnd/pull/6840)
* [Stop sending a synchronizing error on the wire when out of
sync](https://github.com/lightningnetwork/lnd/pull/7039).
2022-09-14 15:09:03 -05:00
* [Update cert module](https://github.com/lightningnetwork/lnd/pull/6573) to
allow a way to update the tls certificate without restarting lnd.
2022-09-28 19:33:14 -03:00
* [Fixed a bug where paying an invoice with a malformed route hint triggers a
never-ending retry loop](https://github.com/lightningnetwork/lnd/pull/6766)
2022-07-29 19:17:06 -04:00
* [Migrated from go-fuzz to Go 1.18's new standard fuzz testing
2022-11-11 11:05:43 -06:00
library](https://github.com/lightningnetwork/lnd/pull/7127). [Updated build
and documentation to reflect
this](https://github.com/lightningnetwork/lnd/pull/7142).
2022-07-29 19:17:06 -04:00
2022-11-11 12:10:19 -06:00
* [Added missing wire tests for Warning
message](https://github.com/lightningnetwork/lnd/pull/7143).
2022-11-28 09:58:32 +01:00
* [The description for the `--gossip.pinned-syncers` flag was fixed to explain
that multiple peers can be specified by using the flag multiple times instead
of using a comma separated list of
values](https://github.com/lightningnetwork/lnd/pull/7207).
2022-12-05 09:31:44 -05:00
* [Updated several tlv stream-decoding callsites to use tlv/v1.1.0 P2P variants
for untrusted input.](https://github.com/lightningnetwork/lnd/pull/7227)
2022-08-11 11:44:25 +02:00
## `lncli`
2022-11-28 09:58:32 +01:00
2022-08-11 11:44:25 +02:00
* [Add an `insecure` flag to skip tls auth as well as a `metadata` string slice
flag](https://github.com/lightningnetwork/lnd/pull/6818) that allows the
caller to specify key-value string pairs that should be appended to the
2022-08-11 11:44:25 +02:00
outgoing context.
2022-08-25 10:47:17 +02:00
* [Fix](https://github.com/lightningnetwork/lnd/pull/6858) command line argument
parsing for `lncli sendpayment`.
* [Fix](https://github.com/lightningnetwork/lnd/pull/6875) mapslice cap out of
range error that occurs if the number of profiles is zero.
* [A new config option, `batchwindowduration` has been added to
`sweeper`](https://github.com/lightningnetwork/lnd/pull/6868) to allow
customize sweeper batch duration.
* [Add `base_fee_msat` and `fee_rate_ppm` flags to
`openchannel`](https://github.com/lightningnetwork/lnd/pull/6753) requests
so that the user can specify fees during channel creation time in addition
to the default configuration.
* [Sleep for 10ms when funding locked message is not
received](https://github.com/lightningnetwork/lnd/pull/7126) to avoid CPU
spike.
2022-10-20 19:58:31 +08:00
* [A new config option, `mailboxdeliverytimeout` has been added to
`htlcswitch`](https://github.com/lightningnetwork/lnd/pull/7066).
* [Label the openchannel tx first before notifying the channel open
event.](https://github.com/lightningnetwork/lnd/pull/7158)
2022-11-15 18:13:29 +02:00
* [Add check for `pay_req` argument in `sendpayment` and `decodepayreq`
commands to trim "lightning:" prefix before processing the request](
https://github.com/lightningnetwork/lnd/pull/7150). Invoices may be prefixed
with "lightning:" on mobile and web apps and it's likely for users to copy
the invoice payment request together with the prefix, which throws checksum
error when pasting it to the CLI.
* [Allow lncli to read binary PSBTs](https://github.com/lightningnetwork/lnd/pull/7122)
from a file during PSBT channel funding flow to comply with [BIP 174](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki#specification)
* [Add interface to chainkit RPC](https://github.com/lightningnetwork/lnd/pull/7197).
This addition consists of the `chain` subcommand group: `getblock`,
`getblockhash`, and `getbestblock`. These commands provide access to chain
block data.
2022-11-21 13:17:25 +08:00
* [Fixed a bug](https://github.com/lightningnetwork/lnd/pull/7186) that might
lead to channel updates being missed, causing channel graph being incomplete.
2022-07-14 09:33:50 +02:00
## Code Health
* [test: use `T.TempDir` to create temporary test
directory](https://github.com/lightningnetwork/lnd/pull/6710)
2022-08-23 17:36:40 -04:00
* [The `tlv` package now allows decoding records larger than 65535 bytes. The
caller is expected to know that doing so with untrusted input is
unsafe.](https://github.com/lightningnetwork/lnd/pull/6779)
2022-10-04 16:58:36 +02:00
2022-10-12 11:50:13 +02:00
* [test: replace defer cleanup with
`t.Cleanup`](https://github.com/lightningnetwork/lnd/pull/6864).
* [test: fix loop variables being accessed in
closures](https://github.com/lightningnetwork/lnd/pull/7032).
2022-11-21 13:21:49 +01:00
* [Fix loop and other temporary variables being accessed in
goroutines](https://github.com/lightningnetwork/lnd/pull/7188).
* [CI: update test coverage library
go-acc](https://github.com/lightningnetwork/lnd/pull/7221) v0.2.6 -> v0.2.8
2022-11-18 20:54:39 +08:00
* Payment related code [has been
refactored](https://github.com/lightningnetwork/lnd/pull/7174) to allow the
usage of new payment statuses.
2022-10-12 11:50:13 +02:00
2022-10-04 16:58:36 +02:00
## Watchtowers
* [Create a towerID-to-sessionID index in the wtclient DB to improve the
speed of listing sessions for a particular tower ID](
https://github.com/lightningnetwork/lnd/pull/6972). This PR also ensures a
closer coupling of Towers and Sessions and ensures that a session cannot be
added if the tower it is referring to does not exist.
2022-08-23 17:36:40 -04:00
2022-10-13 14:33:17 +02:00
* [Remove `AckedUpdates` & `CommittedUpdates` from the `ClientSession`
struct](https://github.com/lightningnetwork/lnd/pull/6928) in order to
improve the performance of fetching a `ClientSession` from the DB.
2022-10-12 11:50:13 +02:00
* [Allow user to update tower address without requiring a restart. Also allow
the removal of a tower address if the current session negotiation is not
using the address in question](
https://github.com/lightningnetwork/lnd/pull/7025)
## Pathfinding
* [Pathfinding takes capacity of edges into account to improve success
probability estimation.](https://github.com/lightningnetwork/lnd/pull/6857)
2022-07-14 09:33:50 +02:00
### Tooling and documentation
* [The `golangci-lint` tool was updated to
`v1.50.1`](https://github.com/lightningnetwork/lnd/pull/7173)
* [Tests in `htlcswitch` will now clean up the temporary resources they create](https://github.com/lightningnetwork/lnd/pull/6832).
* Updated the github actions to use `make fmt-check` in its [build
process](https://github.com/lightningnetwork/lnd/pull/6853).
2022-09-30 14:17:16 +02:00
* Database related code was refactored to [allow external tools to use it more
easily](https://github.com/lightningnetwork/lnd/pull/5561), in preparation for
adding a data migration functionality to `lndinit`.
2022-10-20 16:59:45 +08:00
* [`golangci-lint` will now check new code using additional
linters.](https://github.com/lightningnetwork/lnd/pull/7064)
* Update github actions to [check commits against the target base
branch](https://github.com/lightningnetwork/lnd/pull/7103) rather than just
using the master branch. And [skip the commit
check](https://github.com/lightningnetwork/lnd/pull/7114) for all non-PR
events.
2022-12-15 16:03:55 +08:00
* Fixed docker image version used in
[`tools`](https://github.com/lightningnetwork/lnd/pull/7254).
### Integration test
The `lntest` has been
[refactored](https://github.com/lightningnetwork/lnd/pull/6759) to provide a
better testing suite for writing integration tests. A new defined structure is
implemented, please refer to
[README](https://github.com/lightningnetwork/lnd/tree/master/lntemp) for more
details. Along the way, several
2022-08-12 18:01:24 +08:00
PRs([6776](https://github.com/lightningnetwork/lnd/pull/6776),
2022-11-18 11:10:20 +01:00
[6822](https://github.com/lightningnetwork/lnd/pull/6822),
[7172](https://github.com/lightningnetwork/lnd/pull/7172),
2022-12-09 10:41:22 -06:00
[7242](https://github.com/lightningnetwork/lnd/pull/7242),
[7245](https://github.com/lightningnetwork/lnd/pull/7245)) have been made to
2022-08-12 18:01:24 +08:00
refactor the itest for code health and maintenance.
# Contributors (Alphabetical Order)
2022-07-14 09:33:50 +02:00
2022-11-09 08:11:27 -05:00
* Alejandro Pedraza
2022-09-28 19:33:14 -03:00
* andreihod
* Antoni Spaanderman
* Carla Kirk-Cohen
2022-07-29 19:17:06 -04:00
* Conner Babinchak
2022-08-15 21:00:07 +00:00
* cutiful
2022-05-19 23:18:43 -04:00
* Daniel McNally
2022-08-11 11:44:25 +02:00
* Elle Mouton
2022-06-22 10:15:41 +02:00
* ErikEk
2022-09-21 15:44:54 -04:00
* Eugene Siegel
2022-08-30 16:36:45 -05:00
* Graham Krizek
* hieblmi
* Jesse de Wit
* Joost Jager
* Jordi Montes
2022-09-28 19:33:14 -03:00
* lsunsi
2022-09-19 12:48:42 -05:00
* Matt Morehouse
2022-10-13 10:30:45 -04:00
* Michael Street
* Jordi Montes
* Olaoluwa Osuntokun
2022-07-14 09:33:50 +02:00
* Oliver Gugger
* Priyansh Rastogi
* Robyn Ffrancon
2022-09-29 12:57:17 +02:00
* Roei Erez
* Tommy Volk
* Yong Yu