* Fixed: `large-channels` now works with Eclair. (Based on [3612](https://github.com/ElementsProject/lightning/pull/3712))
-- Christian Decker <decker.christian@gmail.com> Fri, 15 May 2020 10:00:00 +0100
lightningd (0.8.2) stable; urgency=medium
* Added (pay): The `keysend` plugin implements the ability to receive spontaneous payments (keysend) ([3611](https://github.com/ElementsProject/lightning/pull/3611))
* Added (Plugin): the Bitcoin backend plugin API is now final. ([3620](https://github.com/ElementsProject/lightning/pull/3620))
* Added (Plugin): `htlc_accepted` hook can now offer a replacement onion `payload`. ([3611](https://github.com/ElementsProject/lightning/pull/3611))
* Added (Plugin): `feature_set` object added to `init` ([3612](https://github.com/ElementsProject/lightning/pull/3612))
* Added (Plugin): 'flag'-type option now available. ([3586](https://github.com/ElementsProject/lightning/pull/3586))
* Added (JSON API): New `getsharedsecret` command, which lets you compute a shared secret with this node knowing only a public point. This implements the BOLT standard of hashing the ECDH point, and is incompatible with ECIES. ([3490](https://github.com/ElementsProject/lightning/pull/3490))
* Added (JSON API): New optional parameter to the `close` command to control the closing transaction fee negotiation back off step ([3390](https://github.com/ElementsProject/lightning/pull/3390))
* Added (JSON API): `connect` returns `features` of the connected peer on success. ([3612](https://github.com/ElementsProject/lightning/pull/3612))
* Added (JSON API): `listpeers` now has `receivable_msat` ([3572](https://github.com/ElementsProject/lightning/pull/3572))
* Added (JSON API): The fields "opening", "mutual_close", "unilateral_close", "delayed_to_us", "htlc_resolution" and "penalty" have been added to the `feerates` command. ([3570](https://github.com/ElementsProject/lightning/pull/3570))
* Added (JSON API): "htlc_timeout_satoshis" and "htlc_success_satoshis" fields have been added to the `feerates` command. ([3570](https://github.com/ElementsProject/lightning/pull/3570))
* Added (pyln) now sends proper error on bad calls to plugin methods ([3640](https://github.com/ElementsProject/lightning/pull/3640))
* Added (devtools): The `onion` tool can now generate, compress and decompress onions for rendez-vous routing ([3557](https://github.com/ElementsProject/lightning/pull/3557))
* Added (doc): An FAQ was added, accessible at https://lightning.readthedocs.io/FAQ.html ([3551](https://github.com/ElementsProject/lightning/pull/3551))
* Changed We now use a higher feerate for resolving onchain HTLCs and for penalty transactions ([3592](https://github.com/ElementsProject/lightning/pull/3592))
* Changed We now announce multiple addresses of the same type, if given. ([3609](https://github.com/ElementsProject/lightning/pull/3609))
* Changed (pay): Improved the performance of the `pay`-plugin by limiting the `listchannels` when computing the shadow route. ([3617](https://github.com/ElementsProject/lightning/pull/3617))
* Changed (JSON API): `invoice` `exposeprivatechannels` now includes explicitly named channels even if they seem like dead-ends. ([3633](https://github.com/ElementsProject/lightning/pull/3633))
* Changed Added workaround for lnd rejecting our commitment_signed when we send an update_fee after channel confirmed. ([3634](https://github.com/ElementsProject/lightning/pull/3634))
* Changed We now batch the requests for fee estimation to our Bitcoin backend. ([3570](https://github.com/ElementsProject/lightning/pull/3570))
* Changed We now get more fine-grained fee estimation from our Bitcoin backend. ([3570](https://github.com/ElementsProject/lightning/pull/3570))
* Changed Forwarding messages is now much faster (less inter-daemon traffic) ([3547](https://github.com/ElementsProject/lightning/pull/3547))
* Changed (dependencies): We no longer depend on python2 which has reached end-of-life ([3552](https://github.com/ElementsProject/lightning/pull/3552))
* Deprecated: JSON API: `fundchannel_start` `satoshi` field really deprecated now (use `amount`). ([3603](https://github.com/ElementsProject/lightning/pull/3603))
* Deprecated: JSON API: The "urgent", "slow", and "normal" field of the `feerates` command are now deprecated. ([3570](https://github.com/ElementsProject/lightning/pull/3570))
* Deprecated: JSON API: Removed double wrapping of `rpc_command` payload in `rpc_command` JSON field. ([3560](https://github.com/ElementsProject/lightning/pull/3560))
* Deprecated: Plugins: htlc_accepted_hook "failure_code" only handles simple cases now, use "failure_message". ([3472](https://github.com/ElementsProject/lightning/pull/3472))
* Deprecated: Plugins: invoice_payment_hook "failure_code" only handles simple cases now, use "failure_message". ([3472](https://github.com/ElementsProject/lightning/pull/3472))
* Removed: JSON API: `listnodes` `globalfeatures` output (`features` since in 0.7.3). ([3603](https://github.com/ElementsProject/lightning/pull/3603))
* Removed: JSON API: `listpeers` `localfeatures` and `globalfeatures` output (`features` since in 0.7.3). ([3603](https://github.com/ElementsProject/lightning/pull/3603))
* Removed: JSON API: `peer_connected` hook `localfeatures` and `globalfeatures` output (`features` since in 0.7.3). ([3603](https://github.com/ElementsProject/lightning/pull/3603))
* Removed: JSON API: `fundchannel` and `fundchannel_start` `satoshi` parameter removed (renamed to `amount` in 0.7.3). ([3603](https://github.com/ElementsProject/lightning/pull/3603))
* Removed: JSON API: `sendpay` `description` parameter removed (renamed to `label` in 0.7.0). ([3603](https://github.com/ElementsProject/lightning/pull/3603))
* Fixed: Plugins: A crashing plugin will no longer cause a hook call to be delayed indefinitely ([3539](https://github.com/ElementsProject/lightning/pull/3539))
* Fixed: Plugins: setting an 'init' feature bit allows us to accept it from peers. ([3609](https://github.com/ElementsProject/lightning/pull/3609))
* Fixed: Plugins: if an option has a type int or bool, return the option as that type to the plugin's init ([3582](https://github.com/ElementsProject/lightning/pull/3582))
* Fixed: Plugins: Plugins no longer linger indefinitely if their process terminates ([3539](https://github.com/ElementsProject/lightning/pull/3539))
* Fixed: JSON API: Pending RPC method calls are now terminated if the handling plugin exits prematurely. ([3639](https://github.com/ElementsProject/lightning/pull/3639))
* Fixed: JSON API: `fundchannel_start` returns `amount` even when deprecated APIs are enabled. ([3603](https://github.com/ElementsProject/lightning/pull/3603))
* Fixed: JSON API: Passing 0 as minconf to withdraw allows you to use unconfirmed transaction outputs, even if explicitly passed as the `utxos` parameter ([3593](https://github.com/ElementsProject/lightning/pull/3593))
* Fixed: JSON API: `txprepare` doesn't crash lightningd anymore if you pass unconfirmed utxos ([3534](https://github.com/ElementsProject/lightning/pull/3534))
* Fixed: invoice: The invoice parser assumed that an amount without a multiplier was denominated in msatoshi instead of bitcoins. ([3636](https://github.com/ElementsProject/lightning/pull/3636))
* Fixed: pay: The `pay`-plugin was generating non-contiguous shadow routes ([3617](https://github.com/ElementsProject/lightning/pull/3617))
* Fixed: `pay` would crash on expired waits with tried routes ([3630](https://github.com/ElementsProject/lightning/pull/3630))
* Fixed: `pay` would crash when attempting to find cheaper route with exemptfee ([3630](https://github.com/ElementsProject/lightning/pull/3630))
* Fixed: Multiple definition of chainparams on Fedora (or other really recent gcc) ([3631](https://github.com/ElementsProject/lightning/pull/3631))
* Fixed: bcli now handles 0msat outputs in gettxout. ([3605](https://github.com/ElementsProject/lightning/pull/3605))
* Fixed: Fix assertion on reconnect if we fail to run openingd. ([3604](https://github.com/ElementsProject/lightning/pull/3604))
* Fixed: Use lightning-rfc #740 feespike margin factor of 2 ([3589](https://github.com/ElementsProject/lightning/pull/3589))
* Fixed: Always broadcast the latest close transaction at the end of the close fee negotiation, instead of sometimes broadcasting the peer's initial closing proposal. ([3556](https://github.com/ElementsProject/lightning/pull/3556))
-- Christian Decker <decker.christian@gmail.com> Fri, 15 May 2020 10:00:00 +0100
* Added (Plugin): pluggable backends for Bitcoin data queries, default still bitcoind (using bitcoin-cli). ([3488](https://github.com/ElementsProject/lightning/pull/3488))
* Added (Plugin): Plugins can now signal support for experimental protocol extensions by registering featurebits for `node_announcement`s, the connection handshake, and for invoices. For now this is limited to non-dynamic plugins only ([3477](https://github.com/ElementsProject/lightning/pull/3477))
* Added (Plugin): 'plugin start' now restores initial umask before spawning the plugin process ([3375](https://github.com/ElementsProject/lightning/pull/3375))
* Added (JSON API): `fundchannel` and `fundchannel_start` can now accept an optional parameter, `push_msat`, which will gift that amount of satoshis to the peer at channel open. ([3369](https://github.com/ElementsProject/lightning/pull/3369))
* Added (JSON API): `waitanyinvoice` now supports a `timeout` parameter, which when set will cause the command to fail if unpaid after `timeout` seconds (can be 0). ([3449](https://github.com/ElementsProject/lightning/pull/3449))
* Added (Config): `--rpc-file-mode` sets permissions on the JSON-RPC socket. ([3437](https://github.com/ElementsProject/lightning/pull/3437))
* Added (lightningd): Optimistic locking prevents instances from running concurrently against the same database, providing linear consistency to changes. ([3358](https://github.com/ElementsProject/lightning/pull/3358))
* Added (hsmd): Added fields to hsm_sign_remote_commitment_tx to allow complete validation by signing daemon. ([3363](https://github.com/ElementsProject/lightning/pull/3363))
* Added (Wallet): withdrawal transactions now sets nlocktime to the current tip. ([3465](https://github.com/ElementsProject/lightning/pull/3465))
* Added (elements): Added support for the dynafed block header format and elementsd >=0.18.1 ([3440](https://github.com/ElementsProject/lightning/pull/3440))
* Changed (JSON API): The hooks `db_write`, `invoice_payment`, and `rpc_command` now accept `{ "result": "continue" }` to mean "do default action". ([3475](https://github.com/ElementsProject/lightning/pull/3475))
* Changed (Plugin): Multiple plugins can now register for the htlc_accepted hook. ([3489](https://github.com/ElementsProject/lightning/pull/3489))
* Changed (JSON API): `listforwards` now shows `out_channel` even if we couldn't forward.
* Changed (JSON API): `funchannel_cancel`: only the opener of a fundchannel can cancel the channel open ([3336](https://github.com/ElementsProject/lightning/pull/3336))
* Changed (JSON API): `sendpay` optional `msatoshi` param for non-MPP (if set), must be the exact amount sent to the final recipient. ([3470](https://github.com/ElementsProject/lightning/pull/3470))
* Changed (JSON API): `waitinvoice` now returns error code 903 to designate that the invoice expired during wait, instead of the previous -2 ([3441](https://github.com/ElementsProject/lightning/pull/3441))
* Changed (JSON_API): The `connect` command now returns its own error codes instead of a generic -1. ([3397](https://github.com/ElementsProject/lightning/pull/3397))
* Changed (Plugin): `notify_sendpay_success` and `notify_sendpay_failure` are now always called, even if there is no command waiting on the result. ([3405](https://github.com/ElementsProject/lightning/pull/3405))
* Changed (hsmtool): `hsmtool` now creates its backup copy in the same directory as the original `hsm_secret` file. ([3409](https://github.com/ElementsProject/lightning/pull/3409))
* Changed (JSON API): `db_write` new field `data_version` which contains a numeric transaction counter. ([3358](https://github.com/ElementsProject/lightning/pull/3358))
* Changed (JSON API): `plugin stop` result is now accessible using the `result` key instead of the empty ('') key. ([3374](https://github.com/ElementsProject/lightning/pull/3374))
* Changed (lightning-cli): specifying `--rpc-file` (without `--network`) has been restored. ([3353](https://github.com/ElementsProject/lightning/pull/3353))
* Deprecated (JSON API): The hook `db_write` returning `true`: use `{ "result": "continue" }`. ([3475](https://github.com/ElementsProject/lightning/pull/3475))
* Deprecated (JSON API): The hook `invoice_payment` returning `{}`: use `{ "result": "continue" }`. ([3475](https://github.com/ElementsProject/lightning/pull/3475))
* Deprecated (JSON API): The hook `rpc_command` returning `{"continue": true}`: use `{ "result": "continue" }`. ([3475](https://github.com/ElementsProject/lightning/pull/3475))
* Deprecated (JSON API): `plugin stop` result with an empty ("") key: use "result". ([3374](https://github.com/ElementsProject/lightning/pull/3374))
* Removed (Plugin): Relative plugin paths are not relative to startup (deprecated v0.7.2.1) ([3471](https://github.com/ElementsProject/lightning/pull/3471))
* Fixed (Doc): Corrected and expanded `lightning-listpeers.7` documentation. ([3497](https://github.com/ElementsProject/lightning/pull/3497))
* Fixed (Doc): Fixed factual errors in `lightning-listchannels.7` documentation. ([3494](https://github.com/ElementsProject/lightning/pull/3494))
* Fixed (Protocol): Corner case where channel could become unusable (https://github.com/lightningnetwork/lightning-rfc/issues/728) ([3500](https://github.com/ElementsProject/lightning/pull/3500))
* Fixed (Plugins): Dynamic C plugins can now be managed when lightningd is up ([3480](https://github.com/ElementsProject/lightning/pull/3480))
* Fixed (Doc): `connect`: clarified failure problems and usage. ([3459](https://github.com/ElementsProject/lightning/pull/3459))
* Fixed (Doc): `fundchannel`: clarify that we automatically `connect`s if your node knows how. ([3459](https://github.com/ElementsProject/lightning/pull/3459))
* Fixed (Protocol): Now correctly reject "fees" paid when we're the final hop (lightning-rfc#711) ([3474](https://github.com/ElementsProject/lightning/pull/3474))
* Fixed (JSON API): `txprepare` no longer crashes when more than two outputs are specified ([3384](https://github.com/ElementsProject/lightning/pull/3384))
* Fixed (Pyln): now includes the "jsonrpc" field to jsonrpc2 requests ([3442](https://github.com/ElementsProject/lightning/pull/3442))
* Fixed (Plugin): `pay` now detects a previously non-permanent error (`final_cltv_too_soon`) that has been merged into a permanent error (`incorrect_or_unknown_payment_details`), and retries. ([3376](https://github.com/ElementsProject/lightning/pull/3376))
* Fixed (JSON API): The arguments for `createonion` are now checked to ensure they fit in the onion packet. ([3404](https://github.com/ElementsProject/lightning/pull/3404))
* Fixed (TOR): We don't send any further request if the return code of connect is not zero or error. ([3408](https://github.com/ElementsProject/lightning/pull/3408))
* Fixed (Build): Developer mode compilation on FreeBSD. ([3344](https://github.com/ElementsProject/lightning/pull/3344))
* Fixed (Protocol): We now reject invoices which ask for sub-millisatoshi amounts ([3481](https://github.com/ElementsProject/lightning/pull/3481))
* Added (JSON API): Added createonion and sendonion JSON-RPC methods allowing the implementation of custom protocol extensions that are not directly implemented in c-lightning itself.
* Added (JSON API): listinvoices now displays the payment preimage if the invoice was paid.
* Added (JSON API): listpeers channels now include close_to and close_to_addr iff a close_to address was specified at channel open
* Added The new pyln-testing package now contains the testing infrastructure so it can be reused to test against c-lightning in external projects
* Added (config): configuration files now support include.
* Added (options): Allow the Tor inbound service port differ from 9735
* Added (options): Persistent Tor address support
* Added (plugins): A new plugin hook, rpc_command allows a plugin to take over lightningd for any RPC command.
* Added (plugins): Allow the accepter to specify an upfront_shutdown_script for a channel via a close_to field in the openchannel hook result
* Added (plugins): Plugins may now handle modern TLV-style payloads via the htlc_accepted hook
* Added (plugins): libplugin now supports writing plugins which register to hooks
* Added (plugins): libplugin now supports writing plugins which register to notifications
* Added (protocol): Payment amount fuzzing is restored, but through shadow routing.
* Added (protocol): We now signal the network we are running on at init.
* Added (tools): A new command, guesstoremote, is added to the hsmtool. It is meant to be used to recover funds after an unilateral close of a channel with option_static_remotekey enabled.
* Changed (config): Default network (new installs) is now bitcoin, not testnet.
* Changed (config): Lightning directory, plugins and files moved into <network>/ subdir
* Changed (JSON API): The fundchannel command now tries to connect to the peer before funding the channel, no need to connect before fundchannel if an address for the peer is known
* Changed (JSON API): htlc_accepted hook has type (currently legacy or tlv) and other fields directly inside onion.
* Changed (JSON API): lightning_ prefixes removed from subdaemon names, including in listpeers owner field.
* Changed (JSON API): listconfigs now structures plugins and include their options
* Changed (JSON API): the raw_payload now includes the first byte, i.e., the realm byte, of the payload as well. This allows correct decoding of a TLV payload in the plugins.
* Changed (logging): formatting made uniform: [NODEID-]SUBSYSTEM: MESSAGE
* Changed (options): config and <network>/config read by default.
* Changed (options): log-level can now specify different levels for different subsystems.
* Changed (protocol): The TLV payloads for the onion packets are no longer considered an experimental feature and generally available.
* WARNING: If you don't have a config file, you now may need to specify the network to lightning-cli
* Added (DB): lightningd now supports different SQL backends, instead of the default which is sqlite3. Adds a PostgresSQL driver
* Added (elements): Add support of Liquid-BTC on elements
* Added (JSON API): `close` now accepts an optional parameter `destination`, to which the to-local output will be sent.
* Added (JSON API): `txprepare` and `withdraw` now accept an optional parameter `utxos`, a list of utxos to include in the prepared transaction
* Added (JSON API): `listfunds` now lists a blockheight for confirmed transactions, and has `connected` and `state` fields for channels, like `listpeers`.
* Added (JSON API): `fundchannel_start` now includes field `scriptpubkey`
* Added (JSON API): New method `listtransactions`
* Added (JSON API): `signmessage` will now create a signature from your node on a message; `checkmessage` will verify it.
* Added (JSON API): `fundchannel_start` now accepts an optional parameter `close_to`, the address to which these channel funds should be sent to on close. Returns `using_close_to` if will use.
* Added (Plugin): new notifications `sendpay_success` and `sendpay_failure`.
* Added (Protocol): nodes now announce features in `node_announcement` broadcasts.
* Added (Protocol): we now offer `option_gossip_queries_ex` for finegrained gossip control.
* Added (Protocol): we now retransmit `funding_locked` upon reconnection while closing if there was no update
* Added (Protocol): no longer ask for `initial_routing_sync` (only affects ancient peers).
* Added (bolt11): support for parsing feature bits (field `9`).
* Added (Wallet): we now support the encryption of the BIP32 master seed (a.k.a. `hsm_secret`).
* Added (pylightning): includes implementation of handshake protocol
* Changed (Build): Now requires [`gettext`](https://www.gnu.org/software/gettext/)
* Changed (JSON API): The parameter `exclude` of `getroute` now also support node-id.
* Changed (JSON API): `txprepare` now uses `outputs` as parameter other than `destination` and `satoshi`
* Changed (JSON API): `fundchannel_cancel` is extended to work before funding broadcast.
* Changed (JSON API): `pay` can exclude error nodes if the failcode of `sendpay` has the NODE bit set
* Changed (JSON API): The `plugin` command now returns on error. A timeout of 20 seconds is added to `start` and `startdir` subcommands at the end of which the plugin is errored if it did not complete the handshake with `lightningd`.
* Changed (JSON API): The `plugin` command does not allow to start static plugins after `lightningd` startup anymore.
* Changed (Protocol): We now push our own gossip to all peers, independent of their filter.
* Changed (Protocol): Now follows spec in responses to short channel id queries on unknown chainhashes
* Changed (Tor): We default now with autotor to generate if possible temporary ED25519-V3 onions. You can use new option `enable-autotor-v2-mode` to fallback to V2 RSA1024 mode.
* Deprecated (JSON API): `fundchannel` now uses `amount` as the parameter name to replace `satoshi`
* Deprecated (JSON API): `fundchannel_start` now uses `amount` as the parameter name to replace `satoshi`
* Deprecated (JSON API): `listpeers` and `listnodes` fields `localfeatures` and `globalfeatures` (now just `features`).
* Deprecated (Plugin): `peer_connected` hook fields `localfeatures` and `globalfeatures` (now just `features`).
* Removed (JSON API): `short_channel_id` parameters in JSON commands with `:` separators (deprecated since 0.7.0).
* Removed (JSON API): `description` parameters in `pay` and `sendpay` (deprecated since 0.7.0).
* Removed (JSON API): `description` output field in `waitsendpay` and `sendpay` (deprecated since 0.7.0).
* Removed (JSON API): `listpayments` (deprecated since 0.7.0).
* Fixed Fixed bogus "Bad commit_sig signature" which caused channel closures when reconnecting after updating fees under simultaneous bidirectional traffic.
* Fixed Relative `--lightning_dir` is now working again.
* Fixed (Build): MacOS now builds again (missing pwritev).
* JSON API: a new command `plugin` allows one to manage plugins without restarting `lightningd`.
* Plugin: a new boolean field can be added to a plugin manifest, `dynamic`. It allows a plugin to tell if it can be started or stopped "on-the-fly".
* Plugin: a new boolean field is added to the `init`'s `configuration`, `startup`. It allows a plugin to know if it has been started on `lightningd` startup.
* Plugin: new notifications `invoice_payment`, `forward_event` and `channel_opened`.
* contrib: new `bootstrap-node.sh` to connect to random mainnet nodes.
* JSON API: `listfunds` now returns also `funding_output` for `channels`
* Plugin: plugins can now suggest `lightning-cli` default to -H for responses.
* Lightningd: add support for `signet` networks using the `--network=signet` or `--signet` startup option
* Build: now requires `python3-mako` to be installed, i.e. `sudo apt-get install python3-mako`
* JSON API: `close` optional arguments have changed: it now defaults to unilateral close after 48 hours.
* Plugin: if the config directory has a `plugins` subdirectory, those are loaded.
* lightningd: check bitcoind version when setup topology and confirm the version not older than v0.15.0.
* Protocol: space out reconnections on startup if we have more than 5 peers.
* JSON API: `listforwards` includes the 'payment_hash' field.
* Plugin: now plugins always run from the `lightning-dir` for easy local storage.
* Plugin: using startup-relative paths for `plugin` and `plugin-dir`: they're now relative to `lightning-dir`.
* JSON API: `listforwards` removed dummy (zero) fields for `out_msat`, `fee_msat`, `in_channel` and `out_channel` if unknown (i.e. deleted from db, or `status` is `local-failed`.
* Plugin: `pay` no longer crashes on timeout.
* Plugin: `disconnect` notifier now called if remote side disconnects.
* channeld: ignore, and simply try reconnecting if lnd sends "sync error".
* Protocol: we now correctly ignore unknown odd messages.
* wallet: We will now backfill blocks below our wallet start height on demand when we require them to verify gossip messages. This fixes an issue where we would not remove channels on spend that were opened below that start height because we weren't tracking the funding output.
* Fix: Detect when we're still syncing with bitcoin network: don't send or receive HTLCs or allow `fundchannel`.
* Fix: Rare onchaind error where we don't recover our own unilateral close with multiple same-preimage HTLCs fixed.
-- Christian Decker <decker.christian@gmail.com> Tue, 20 Aug 2019 18:00:00 +0100
* Protocol: we now enforce option_upfront_shutdown_script if a peer negotiates it.
* JSON API: New command setchannelfee sets channel specific routing fees.
* JSON API: new withdraw methods txprepare, txsend and txdiscard.
* JSON API: add three new RPC commands: fundchannel_start, fundchannel_complete and fundchannel_cancel. Allows a user to initiate and complete a channel open using funds that are in a external wallet.
* Plugin: new hooks db_write for intercepting database writes, invoice_payment for intercepting invoices before they're paid, openchannel for intercepting channel opens, and htlc_accepted to decide whether to resolve, reject or continue an incoming or forwarded payment..
* Plugin: new notification warning to report any LOG_UNUSUAL/LOG_BROKEN level event.
* Plugin: Added a default plugin directory : lightning_dir/plugins. Each plugin directory it contains will be added to lightningd on startup.
* Plugin: the connected hook can now send an error_message to the rejected peer.
* JSON API: newaddr outputs bech32 or p2sh-segwit, or both with new all parameter (#2390)
* JSON API: listpeers status now shows how many confirmations until channel is open (#2405)
* Config: Adds parameter min-capacity-sat to reject tiny channels.
* JSON API: listforwards now includes the time an HTLC was received and when it was resolved. Both are expressed as UNIX timestamps to facilitate parsing (Issue #2491, PR #2528)
* JSON API: listforwards now includes the local_failed forwards with failcode (Issue #2435, PR #2524)
* DB: Store the signatures of channel announcement sent from remote peer into DB, and init channel with signatures from DB directly when reenable the channel. (Issue #2409)
* JSON API: listchannels has new fields htlc_minimum_msat and htlc_maximum_msat.
* Gossip: we no longer compact the gossip_store file dynamically, due to lingering bugs. Restart if it gets too large.
* Protocol: no longer ask for entire gossip flood from peers, unless we're missing gossip.
* JSON API: invoice expiry defaults to 7 days, and can have s/m/h/d/w suffixes.
* Config: Increased default amount for minimal channel capacity from 1k sat to 10k sat.
* JSON API: A new parameter is added to fundchannel, which now accepts an utxo array to use to fund the channel.
* Build: Non-developer builds are now done with "-Og" optimization.
* JSON API: pay will no longer return failure until it is no longer retrying; previously it could "timeout" but still make the payment.
* JSON API: the command objects that help outputs now contain a new string field : category (can be "bitcoin", "channels", "network", "payment", "plugins", "utility", "developer" for native commands, or any other new category set by a plugin).
* Plugin: a plugin can now set the category of a newly created RPC command. This possibility has been added to libplugin.c and pylightning.
* lightning-cli: the human readable help is now more human and more readable : commands are sorted alphabetically and ordered by categories.
* JSON API: newaddr output field address: use bech32 or p2sh-segwit instead.
* JSON RPC: global_features and local_features fields and listchannels' flags field. (Deprecated since 0.6.2).
* pylightning: Remove RPC support for c-lightning before 0.6.3.
* Protocol: reconnection during closing negotiation now supports option_data_loss_protect properly.
* --bind-addr=<path> fixed for nodes using local sockets (eg. testing).
* Unannounced local channels were forgotten for routing on restart until reconnection occurred.
* lightning-cli: arguments containing " now succeed, rather than causing JSON errors.
* Protocol: handle lnd sending more messages before reestablish; don't fail channel, and handle older lnd's spurious empty commitments.
* Fixed fundchannel crash when we have many UTXOs and we skip unconfirmed ones.
* lightningd: fixed occasional hang on connect when peer had sent error.
* JSON RPC: decodeinvoice and pay now handle unknown invoice fields properly.
all invoice commands now return an `amount_msat` field which has an `msat` suffix.
* JSON API: `listfunds` `channels` now has `_msat` fields for each existing raw amount field, with `msat` suffix.
* JSON API: `waitsendpay` now has an `erring_direction` field.
* JSON API: `listpeers` now has a `direction` field in `channels`.
* JSON API: `listchannels` now takes a `source` option to filter by node id.
* JSON API: `getroute` `riskfactor` argument is simplified; `pay` now defaults to setting it to 10.
* JSON API: `sendpay` now takes a `bolt11` field, and it's returned in `listpayments` and `waitsendpay`.
* JSON API: `fundchannel` and `withdraw` now have a new parameter `minconf` that limits coinselection to outputs that have at least `minconf` confirmations (default 1). (#2380)
* JSON API: `listfunds` now displays addresses for all outputs owned by the wallet (#2387)
* JSON API: `waitsendpay` and `sendpay` output field `label` as specified by `sendpay` call.
* JSON API: `listpays` command for higher-level payment view than `listpayments`, especially important with multi-part-payments coming.
* JSON API: `listpayments` is now `listsendpays`.
* lightning-cli: `help <cmd>` finds man pages even if `make install` not run.
* pylightning: New class 'Millisatoshi' can be used for JSON API, and new '_msat' fields are turned into this on reading.
* protocol: `option_data_loss_protect` is now enabled by default.
* JSON API: The `short_channel_id` separator has been changed to be `x` to match the specification.
* JSON API: `listpeers` now includes `funding_allocation_msat`, which returns a map of the amounts initially funded to the channel by each peer, indexed by channel id.
* JSON API: `help` with a `command` argument gives a JSON array, like other commands.
* JSON API: `sendpay` `description` parameter is renamed `label`.
* JSON API: `pay` now takes an optional `label` parameter for labelling payments, in place of never-used `description`.
* build: we'll use the system libbase58 and libsodium if found suitable.
* JSON API: `short_channel_id` fields in JSON commands with `:` separators (use `x` instead).
* JSON API: `pay` `description` is deprecated, as is support for BOLT11 strings using `h`.
* JSON API: `sendpay` parameter `description` and `waitsendpay` and `sendpay` output fields `description` (now `label`).
* JSON API: `listpayments` has been deprecated (you probably want `listpays`)
* JSON API: the `waitsendpay` command error return no longer includes `channel_update`
* Protocol: handling `query_channel_range` for large numbers of blocks
(eg. 4 billion) was slow due to a bug.
* Fixed occasional deadlock with peers when exchanging huge amounts of gossip.
* Fixed a crash when running in daemon-mode due to db filename overrun (#2348)
* Protocol: gossipd now deliberately delays spamming with channel_update.
* Protocol: liveness ping when we commit changes but peer is idle: speeds up failures and reduces forced closures.
* Protocol: option_data_loss_protect now supported to protect peers against being out-of-date.
* JSON API: Added description to invoices and payments (#1740).
* JSON API: getinfo has new fields alias and color.
* JSON API: listpeers has new fields global_features and local_features.
* JSON API: listnodes has new field global_features.
* JSON API: ping command to send a ping to a connected peer.
* JSON API: feerates command to retrieve current fee estimates.
* JSON API: withdraw and fundchannel can be given manual feerate.
* Config: --conf option to set config file.
* Documentation: Added CHANGELOG.md
* pylightning: RpcError now has method and payload fields.
* Sending lightningd a SIGHUP will make it reopen its log-file, if any.
* Protocol: Fee estimates are now smoothed over time, to avoid sudden jumps.
* Config: You can only announce one address if each type (IPv4, IPv6, TORv2, TORv3).
* lightning-cli: the help command for a specific command now runs the man command.
* HSM: The HSM daemon now maintains the per-peer secrets, rather than handing them out. It's still lax in what it signs though.
* connectd: A new daemon lightning_connectd handles connecting to/from peers, instead of gossipd doing that itself. lightning_openingd now handles peers immediately, even if they never actually open a channel.
* Test: python-xdist is now a dependency for tests.
* Logging: JSON connections no longer spam debug logs.
* Routing: We no longer consider channels that are not usable either because of their capacity or their htlc_minimum_msat parameter (#1777)
* We now try to connect to all known addresses for a peer, not just the one given or the first one announced.
* Crash logs are now placed one-per file like crash.log.20180822233752
* We will no longer allow withdrawing funds or funding channels if we do not have a fee estimate (eg. bitcoind not synced); use new feerate arg.
* JSON API: listpeers results no long have alias and color fields; they're in listnodes (we used to internally merge the information).
* JSON API: listpeers will never have state field (it accidentally used to exist and set to GOSSIPING before we opened a channel). connected will indicate if we're connected, and the channels array indicates individual channel states (if any).
* Config: default-fee-rate is no longer available; use explicit feerate option if necessary.
* Removed all Deprecated options from 0.6.
* Protocol: node_announcement multiple addresses are correctly ordered and uniquified.
* Protocol: if we can't estimate feerate, be almost infinitely tolerant of other side setting fees to avoid unilateral close.
* JSON API: listnodes: now displays node aliases and colors even if they don't advertise a network address
* JSON API: fundchannel all: now restricts to 2^24-1 satoshis rather than failing.
* JSON API: listnodes: now correctly prints addresses if more than one is advertised.
* Config: bind-addr of a publicly accessible network address was announced.
* When we reconnect and have to retransmit failing HTLCs, the errors weren't encrypted by us.
* lightningd_config man page is now installed by make install.
* Fixed crash when shutting down during opening a channel (#1737)
* Don't lose track of our own output when applying penalty transaction (#1738)
* Protocol: channel_update inside error messages now refers to correct channel.
* Stripping type prefix from channel_updates that are nested in an onion reply to be compatible with eclair and lnd (#1730).
* Failing tests no longer delete the test directory, to allow easier debugging (Issue: #1599)
-- Christian Decker <decker.christian@gmail.com> Wed, 12 Sep 2018 01:24:00 +0000
* While there are far too many new features in the 0.6 release to list, the following are the most interesting and impactful: Lightweight nodes: Previous releases required a full bitcoind node running alongside c-lightning, to provide access to the Bitcoin network. Thisrelease still requires the bitcoin-cli utility to be present, but it can now talk to remote nodes as well, including some lightweight nodes such as spruned. This makes it possible to run a c-lightning node on Raspberry Pis as well as other low-powered devices.
* The gossip protocol has been updated to use a more lightweight bandwidth mechanism that asks for specific information, rather than exchanging full network views as the previous release did. This is particularly important for low-powered and mobile devices that would otherwise spend a lot of bandwidth and energy downloading and verifying information they already have.
* API stability: The c-lightning JSON-RPC interface and supporting libraries have been redesigned in order to minimize changes in future releases. This API stability should make it easy for other projects to build on top of c-lightning because we will support this version of the API for the foreseeable future, maintaining backward compatibility, should we introduce any changes.
* Wallet and sync: c-lightning now includes a full-fledged wallet that manages both on-chain and off-chain funds. There is no more raw transaction handling! All funds are automatically tracked and returned to the internalwallet as soon as possible, with no user interaction required. In addition the blockchain tracking now maintains an internal view of the blockchain,ending long blockchain rescans.
* TOR support: c-lightning now supports connecting to nodes over the TOR network, auto-registering as a hidden service, and accepting incoming connections over TOR.
* The payment logic has undergone a major overhaul to support automatic retries for routing failures, randomization of route selection, and better feedback about the current state of a payment.
* And as always: performance, performance, performance.
-- Christian Decker <decker.christian@gmail.com> Sun, 05 Aug 2018 11:46:08 +0200