# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Added - Documentation: Added CHANGELOG.md - 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. - 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. - Config: `--conf` option to set config file. - JSON API: Added description to invoices and payments (#1740). - pylightning: RpcError now has `method` and `payload` fields. - Sending lightningd a SIGHUP will make it reopen its `log-file`, if any. - Protocol: `option_data_loss_protect` now supported to protect peers against being out-of-date. - JSON API: `feerates` command to inject fee estimates manually. ### Changed - Config: You can only announce one address if each type (IPv4, IPv6, TORv2, TORv3). - Protocol: Fee estimates are now smoothed over time, to avoid sudden jumps. - 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). ### Deprecated Note: You should always set `allow-deprecated-apis=false` to test for changes. ### Removed - 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). - Options: `default-fee-rate` is no longer available; use `feerates`. - Removed all Deprecated options from 0.6. ### Fixed - Options: `bind-addr` of a publicly accessible network address was announced. - Protocol: `node_announcement` multiple addresses are correctly ordered and uniquified. - 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. - 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_update`s that are nested in an onion reply to be compatible with eclair and lnd (#1730). - JSON API: `listnodes`: now correctly prints `addresses` if more than one is advertised. - Failing tests no longer delete the test directory, to allow easier debugging (Issue: #1599) - Protocol: if we can't estimate feerate, be almost infinitely tolerant of other side setting fees to avoid unilateral close. ### Security ## [0.6] - 2018-06-22 In the prehistory of c-lightning, no changelog was kept. But major JSON API changes are tracked. ### Deprecated Note: You should always set `allow-deprecated-apis=false` to test for changes. - Option: `port`. Use `addr=:`. - Option: `ipaddr`. Use `addr`. - Option: `anchor-confirms`. Use `funding-confirms`. - Option: `locktime-blocks`. Use `watchtime-blocks`. - Protocol: on closing we allow out-of-range offers, prior to spec fix 2018-01-30 ("BOLT 2: order closing-signed negotiation by making funder send first." `90241d9cf60a598eac8fd839ac81e4093a161272`) - JSON API: `listinvoice` command. Use `listinvoices`. - JSON API: invoice result fields `paid_timestamp` and `expiry_time`. Use `paid_at` and `expires_at`. - JSON API: `invoice` command field `fallback`. Use `fallbacks`. - JSON API: `decodepay` result fields `timestamp` and `fallback`. Use `created_at` and `fallbacks`. - JSON API: payment result fields `timestamp`. Use `created_at`. - JSON API: `getinfo` result field `port`. Use `binding` and `address` arrays. - JSON API: `getlog` result field `creation_time`. Use `created_at`. - JSON API: `getpeers` result field `channel_reserve_satoshis`. Use `their_channel_reserve_satoshis`. - JSON API: `getpeers` result field `to_self_delay`. Use `their_to_self_delay`. [Unreleased]: https://github.com/ElementsProject/lightning/compare/v0.6...HEAD [0.6]: https://github.com/ElementsProject/lightning/releases/tag/v0.6