CHANGELOG.md: v0.9.1-rc1

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2020-09-10 16:48:38 +09:30
parent f5dd393113
commit 9b41d608ee

View File

@@ -4,6 +4,91 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.9.1-rc1] - 2020-09-10: The Antiguan BTC Maximalist Society
This release named by Jon Griffiths.
### Added
- JSON-RPC: `multiwithdraw` command to batch multiple onchain sends in a single transaction. Note it shuffles inputs and outputs, does not use BIP69. ([3812](https://github.com/ElementsProject/lightning/pull/3812))
- JSON-RPC: `multifundchannel` command to fund multiple channels to different peers all in a single onchain transaction. ([3763](https://github.com/ElementsProject/lightning/pull/3763))
- JSON-RPC: `delpay` command to delete a payment once completed or failed. ([3899](https://github.com/ElementsProject/lightning/pull/3899))
- Plugins: `channel_state_changed` notification ([4020](https://github.com/ElementsProject/lightning/pull/4020))
- JSON-RPC: `listpays` can be used to query payments using the `payment_hash` ([3888](https://github.com/ElementsProject/lightning/pull/3888))
- JSON-RPC: `listpays` now includes the `payment_hash` ([3888](https://github.com/ElementsProject/lightning/pull/3888))
- JSON-RPC: `listpays` now includes the timestamp of the first part of the payment ([3909](https://github.com/ElementsProject/lightning/pull/3909))
- Build: New reproducible build system now uses docker: try it at home with `doc/REPRODUCIBLE.md`! ([4021](https://github.com/ElementsProject/lightning/pull/4021))
- Plugins: Proxy information now provided in `init.configuration`. ([4010](https://github.com/ElementsProject/lightning/pull/4010))
- Plugins: `openchannel_hook` is now chainable ([3960](https://github.com/ElementsProject/lightning/pull/3960))
- JSON-RPC: `listpeers` shows `features` list for each channel. ([3963](https://github.com/ElementsProject/lightning/pull/3963))
- JSON-RPC: `signpsbt` takes an optional `signonly` array to limit what inputs to sign. ([3954](https://github.com/ElementsProject/lightning/pull/3954))
- JSON-RPC: `utxopsbt` takes a new `locktime` parameter ([3954](https://github.com/ElementsProject/lightning/pull/3954))
- JSON-RPC: `fundpsbt` takes a new `locktime` parameter ([3954](https://github.com/ElementsProject/lightning/pull/3954))
- JSON-RPC: New low-level command `utxopsbt` to create PSBT from existing utxos. ([3845](https://github.com/ElementsProject/lightning/pull/3845))
- JSON-RPC: `listfunds` now has a `redeemscript` field for p2sh-wrapped outputs. ([3844](https://github.com/ElementsProject/lightning/pull/3844))
- JSON-RPC: `fundchannel` has new `outnum` field indicating which output of the transaction funds the channel. ([3844](https://github.com/ElementsProject/lightning/pull/3844))
- pyln-client: commands and options can now mark themselves deprecated. ([3883](https://github.com/ElementsProject/lightning/pull/3883))
- Plugins: can now mark their options and commands deprecated. ([3883](https://github.com/ElementsProject/lightning/pull/3883))
- plugins: `getmanifest` may now include "allow-deprecated-apis" boolean flag. ([3883](https://github.com/ElementsProject/lightning/pull/3883))
- JSON-RPC: `listpays` now lists the `destination` if it was provided (e.g., via the `pay` plugin or `keysend` plugin) ([3888](https://github.com/ElementsProject/lightning/pull/3888))
- config: New option `--important-plugin` loads a plugin is so important that if it dies, `lightningd` will exit rather than continue. You can still `--disable-plugin` it, however, which trumps `--important-plugin` and it will not be started at all. ([3890](https://github.com/ElementsProject/lightning/pull/3890))
- Plugins: We now explicitly check at startup that our default Bitcoin backend (bitcoind) does relay transactions. ([3889](https://github.com/ElementsProject/lightning/pull/3889))
- Plugins: We now explicitly check at startup the version of our default Bitcoin backend (bitcoind). ([3889](https://github.com/ElementsProject/lightning/pull/3889))
### Changed
- Build: we no longer require extra Python modules to build. ([3994](https://github.com/ElementsProject/lightning/pull/3994))
- Build: SQLite3 is no longer a hard build requirement. C-Lightning can now be built to support only the PostgreSQL back-end. ([3999](https://github.com/ElementsProject/lightning/pull/3999))
- gossipd: The `gossipd` is now a lot quieter, and will log only when a message changed our network topology. ([3981](https://github.com/ElementsProject/lightning/pull/3981))
- Protocol: We now make MPP-aware routehints in invoices. ([3913](https://github.com/ElementsProject/lightning/pull/3913))
- onchaind: We now scorch the earth on theft attempts, RBFing up our penalty transaction as blocks arrive without a penalty transaction getting confirmed. ([3870](https://github.com/ElementsProject/lightning/pull/3870))
- Protocol: `fundchannel` now shuffles inputs and outputs, and no longer follows BIP69. ([3769](https://github.com/ElementsProject/lightning/pull/3769))
- JSON-RPC: `withdraw` now randomizes input and output order, not BIP69. ([3867](https://github.com/ElementsProject/lightning/pull/3867))
- JSON-RPC: `txprepare` reservations stay across restarts: use `fundpsbt`/`reservepsbt`/`unreservepsbt` ([3867](https://github.com/ElementsProject/lightning/pull/3867))
- config: `min-capacity-sat` is now stricter about checking usable capacity of channels. ([3969](https://github.com/ElementsProject/lightning/pull/3969))
- Protocol: Ignore (and log as "unusual") repeated `WIRE_CHANNEL_REESTABLISH` messages, to be compatible with buggy peer software that sometimes does this. ([3964](https://github.com/ElementsProject/lightning/pull/3964))
- contrib: startup_regtest.sh `startup_ln` now takes a number of nodes to create as a parameter ([3992](https://github.com/ElementsProject/lightning/pull/3992))
- JSON-RPC: `invoice` no longer accepts zero amounts (did you mean "any"?) ([3974](https://github.com/ElementsProject/lightning/pull/3974))
- Protocol: channels now pruned after two weeks unless both peers refresh it (see lightning-rfc#767) ([3959](https://github.com/ElementsProject/lightning/pull/3959))
- Protocol: bolt11 invoices always include CLTV fields (see lightning-rfc#785) ([3959](https://github.com/ElementsProject/lightning/pull/3959))
- config: the default CLTV expiry is now 34 blocks, and final expiry 18 blocks as per new BOLT recommendations. ([3959](https://github.com/ElementsProject/lightning/pull/3959))
- Plugins: Builtin plugins are now marked as important, and if they crash, will cause C-lightning to stop as well. ([3890](https://github.com/ElementsProject/lightning/pull/3890))
- Protocol: Funding timeout is now based on the header count reported by the bitcoin backend instead of our current blockheight which might be lower. ([3897](https://github.com/ElementsProject/lightning/pull/3897))
- JSON-RPC: `delinvoice` will now report specific error codes: 905 for failing to find the invoice, 906 for the invoice status not matching the parameter. ([3853](https://github.com/ElementsProject/lightning/pull/3853))
### Deprecated
Note: You should always set `allow-deprecated-apis=false` to test for changes.
- Plugins: `bcli` replacements should note that `sendrawtransaction` now has a second required Boolean argument, `allowhighfees`, which if `true`, means ignore any fee limits and just broadcast the transaction. ([3870](https://github.com/ElementsProject/lightning/pull/3870))
- JSON-RPC: `listsendpays` will no longer add `null` if we don't know the `amount_msat` for a payment. ([3883](https://github.com/ElementsProject/lightning/pull/3883))
- Plugins: `getmanifest` without any parameters; plugins should accept any parameters for future use. ([3883](https://github.com/ElementsProject/lightning/pull/3883))
### Removed
- JSON-RPC: txprepare `destination` `satoshi` argument form removed (deprecated v0.7.3) ([3867](https://github.com/ElementsProject/lightning/pull/3867))
### Fixed
- Plugins: `pay` `presplit` modifier now supports large payments without exhausting the available HTLCs. ([3986](https://github.com/ElementsProject/lightning/pull/3986))
- Plugins: `pay` corrects a case where we put the sub-payment value instead of the *total* value in the `total_msat` field of a multi-part payment. ([3914](https://github.com/ElementsProject/lightning/pull/3914))
- Plugins: `pay` is less aggressive with forgetting routehints. ([3914](https://github.com/ElementsProject/lightning/pull/3914))
- Plugins: `pay` no longer ignores routehints if the payment exceeds 10,000 satoshi. This is particularly bad if the payee is only reachable via routehints in an invoice. ([3908](https://github.com/ElementsProject/lightning/pull/3908))
- Plugins: `pay` limits the number of splits if the payee seems to have a low number of channels that can enter it, given the max-concurrent-htlcs limit. ([3936](https://github.com/ElementsProject/lightning/pull/3936))
- Plugins: `pay` will now make reliable multi-part payments to nodes it doesn't have a node_announcement for. ([4035](https://github.com/ElementsProject/lightning/pull/4035))
- JSON-RPC: significant speedups for plugins which create large JSON replies (e.g. listpays on large nodes). ([3957](https://github.com/ElementsProject/lightning/pull/3957))
- doc: Many missing manual pages were completed ([3938](https://github.com/ElementsProject/lightning/pull/3938))
- Build: Fixed compile error on macos ([4019](https://github.com/ElementsProject/lightning/pull/4019))
- pyln: Fixed HTLCs hanging indefinitely if the hook function raises an exception. A safe fallback result is now returned instead. ([4031](https://github.com/ElementsProject/lightning/pull/4031))
- elementsd: PSBTs include correct witness_utxo struct for elements transactions ([4033](https://github.com/ElementsProject/lightning/pull/4033))
- cli: fixed crash with `listconfigs` in `-H` mode ([4012](https://github.com/ElementsProject/lightning/pull/4012))
- Plugins: `bcli` significant speedups for block synchronization ([3985](https://github.com/ElementsProject/lightning/pull/3985))
- Build: On systems with multiple installed versions of the PostgreSQL client library, C-Lightning might link against the wrong version or fail to find the library entirely. `./configure` now uses `pg_config` to locate the library. ([3995](https://github.com/ElementsProject/lightning/pull/3995))
- Build: On some operating systems the postgresql library would not get picked up. `./configure` now uses `pg_config` to locate the headers. ([3991](https://github.com/ElementsProject/lightning/pull/3991))
- libplugin: significant speedups for reading large JSON replies (e.g. calling listsendpays on large nodes, or listchannels / listnodes). ([3957](https://github.com/ElementsProject/lightning/pull/3957))
### Security
## [0.9.0] - 2020-07-31: "Rat Poison Squared on Steroids"
@@ -787,6 +872,7 @@ There predate the BOLT specifications, and are only of vague historic interest:
6. [0.5.1] - 2016-10-21
7. [0.5.2] - 2016-11-21: "Bitcoin Savings & Trust Daily Interest II"
[0.9.1-rc1]: https://github.com/ElementsProject/lightning/releases/tag/v0.9.1-rc1
[0.9.0]: https://github.com/ElementsProject/lightning/releases/tag/v0.9.0
[0.8.2]: https://github.com/ElementsProject/lightning/releases/tag/v0.8.2
[0.8.1]: https://github.com/ElementsProject/lightning/releases/tag/v0.8.1