2018-07-29 03:53:53 +02:00
|
|
|
# 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).
|
|
|
|
|
2018-09-19 04:55:42 +02:00
|
|
|
## [Unreleased]
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
2018-09-19 04:56:54 +02:00
|
|
|
- JSON API: `listpeers` has new field `scratch_txid`: the latest tx in channel.
|
2018-09-27 07:33:25 +02:00
|
|
|
- JSON API: `listpeers` has new array `htlcs`: the current live payments.
|
2018-09-20 02:59:46 +02:00
|
|
|
- JSON API: `listchannels` has two new fields: `message_flags` and `channel_flags`. This replaces `flags`.
|
2018-09-20 06:10:37 +02:00
|
|
|
- Bitcoind: more parallelism in requests, for very slow nodes.
|
|
|
|
- Testing: fixed logging, cleaner interception of bitcoind, minor fixes.
|
json-invoice: add routeboost, warnings.
We split json_invoice(), as it now needs to round-trip to the gossipd,
and uniqueness checks need to happen *after* gossipd replies to avoid
a race.
For every candidate channel gossipd gives us, we check that it's in
state NORMAL (not shutting down, not still waiting for lockin), that
it's connected, and that it has capacity. We then choose one with
probability weighted by excess capacity, so larger channels are more
likely.
As a side effect of this, we can tell if an invoice is unpayble (no
channels have sufficient incoming capacity) or difficuly (no *online*
channels have sufficient capacity), so we add those warnings.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-09-27 07:29:17 +02:00
|
|
|
- JSON API: `invoice` now adds route hint to invoices for incoming capacity (RouteBoost), and warns if insufficient capacity.
|
2018-09-19 04:56:54 +02:00
|
|
|
|
2018-09-19 04:55:42 +02:00
|
|
|
### Changed
|
|
|
|
|
2018-09-25 07:43:56 +02:00
|
|
|
- Protocol: `channel_update` sent to disable channel only if we reject an HTLC.
|
2018-09-24 03:42:00 +02:00
|
|
|
- Protocol: we don't send redundant `node_announcement` on every new channel.
|
2018-09-25 07:43:56 +02:00
|
|
|
|
2018-09-19 04:55:42 +02:00
|
|
|
### Deprecated
|
|
|
|
|
|
|
|
Note: You should always set `allow-deprecated-apis=false` to test for
|
|
|
|
changes.
|
|
|
|
|
2018-09-20 02:59:46 +02:00
|
|
|
- JSON RPC: `listchannels`' `flags` field. This has been split into two fields, see Added.
|
2018-09-28 05:24:25 +02:00
|
|
|
- JSON RPC: `global_features` and `local_features` fields: use `globalfeatures` and `localfeatures` as per BOLT #1.
|
2018-09-20 02:59:46 +02:00
|
|
|
|
2018-09-19 04:55:42 +02:00
|
|
|
### Removed
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
2018-09-20 06:10:37 +02:00
|
|
|
- Startup: more coherent complaint if daemon already running.
|
2018-10-10 00:39:06 +02:00
|
|
|
- Lightningd: correctly save full HTLCs across restarts; fixup old databases.
|
2018-09-20 06:10:37 +02:00
|
|
|
- JSON RPC: `getinfo` now shows correct Tor port.
|
|
|
|
- JSON RPC: `ping` now works even after one peer fails to respond.
|
|
|
|
- JSON RPC: `getroute` `fuzzpercent` and `pay` `maxfeepercent` can now be > 100.
|
2018-09-29 08:33:53 +02:00
|
|
|
- JSON RPC: `riskfactor` in `pay` and `getroute` no longer always treated as 1.
|
2018-09-20 06:10:37 +02:00
|
|
|
- Protocol: fix occasional deadlock when both peers flood with gossip.
|
2018-09-28 02:05:35 +02:00
|
|
|
- Protocol: fix occasional long delay on sending `reply_short_channel_ids_end`.
|
2018-09-24 03:41:14 +02:00
|
|
|
- Protocol: re-send `node_announcement` when address/alias/color etc change.
|
2018-09-20 06:10:37 +02:00
|
|
|
|
2018-09-19 04:55:42 +02:00
|
|
|
### Security
|
|
|
|
|
2018-09-12 01:44:28 +02:00
|
|
|
## [0.6.1] - 2018-09-11: "Principled Opposition To Segwit"
|
2018-08-25 02:33:35 +02:00
|
|
|
|
|
|
|
This release named by ZmnSCPxj.
|
2018-07-29 03:53:53 +02:00
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
- Protocol: gossipd now deliberately delays spamming with `channel_update`.
|
2018-08-09 04:53:18 +02:00
|
|
|
- Protocol: liveness ping when we commit changes but peer is idle: speeds up
|
|
|
|
failures and reduces forced closures.
|
2018-08-17 06:16:34 +02:00
|
|
|
- Protocol: `option_data_loss_protect` now supported to protect peers
|
|
|
|
against being out-of-date.
|
2018-08-25 02:33:35 +02:00
|
|
|
- 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.
|
2018-08-28 22:46:36 +02:00
|
|
|
- JSON API: `feerates` command to retrieve current fee estimates.
|
2018-08-27 07:13:57 +02:00
|
|
|
- JSON API: `withdraw` and `fundchannel` can be given manual feerate.
|
2018-08-25 02:33:35 +02:00
|
|
|
- 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.
|
2018-07-29 03:53:53 +02:00
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
2018-08-25 02:33:35 +02:00
|
|
|
- Protocol: Fee estimates are now smoothed over time, to avoid sudden jumps.
|
2018-07-29 03:53:53 +02:00
|
|
|
- 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.
|
2018-08-09 02:25:30 +02:00
|
|
|
- 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.
|
2018-07-29 03:53:53 +02:00
|
|
|
- Test: `python-xdist` is now a dependency for tests.
|
|
|
|
- Logging: JSON connections no longer spam debug logs.
|
2018-07-30 21:56:33 +02:00
|
|
|
- Routing: We no longer consider channels that are not usable either because of
|
|
|
|
their capacity or their `htlc_minimum_msat` parameter (#1777)
|
2018-08-09 02:27:30 +02:00
|
|
|
- We now try to connect to all known addresses for a peer, not just
|
|
|
|
the one given or the first one announced.
|
2018-08-22 13:17:20 +02:00
|
|
|
- Crash logs are now placed one-per file like `crash.log.20180822233752`
|
2018-08-24 04:22:02 +02:00
|
|
|
- We will no longer allow withdrawing funds or funding channels if we
|
2018-08-28 22:46:36 +02:00
|
|
|
do not have a fee estimate (eg. bitcoind not synced); use new `feerate` arg.
|
2018-08-09 02:25:30 +02:00
|
|
|
|
2018-07-29 03:53:53 +02:00
|
|
|
### Deprecated
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
|
|
|
|
- JSON API: `listpeers` results no long have `alias` and `color` fields;
|
|
|
|
they're in `listnodes` (we used to internally merge the information).
|
2018-08-09 02:25:30 +02:00
|
|
|
- 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).
|
2018-08-28 22:46:36 +02:00
|
|
|
- Config: `default-fee-rate` is no longer available; use explicit `feerate`
|
|
|
|
option if necessary.
|
2018-07-29 04:08:29 +02:00
|
|
|
- Removed all Deprecated options from 0.6.
|
2018-07-29 03:53:53 +02:00
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
|
|
|
- Protocol: `node_announcement` multiple addresses are correctly ordered and uniquified.
|
2018-08-25 02:33:35 +02:00
|
|
|
- Protocol: if we can't estimate feerate, be almost infinitely
|
|
|
|
tolerant of other side setting fees to avoid unilateral close.
|
2018-07-29 03:53:53 +02:00
|
|
|
- JSON API: `listnodes`: now displays node aliases and colors even if they
|
|
|
|
don't advertise a network address
|
2018-07-29 07:51:38 +02:00
|
|
|
- JSON API: `fundchannel all`: now restricts to 2^24-1 satoshis rather than failing.
|
2018-08-25 02:33:35 +02:00
|
|
|
- JSON API: `listnodes`: now correctly prints `addresses` if more than
|
|
|
|
one is advertised.
|
|
|
|
- Config: `bind-addr` of a publicly accessible network address was announced.
|
2018-07-29 03:53:53 +02:00
|
|
|
- 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.
|
2018-07-30 18:01:34 +02:00
|
|
|
- Stripping type prefix from `channel_update`s that are nested in an onion reply
|
|
|
|
to be compatible with eclair and lnd (#1730).
|
2018-08-01 16:17:36 +02:00
|
|
|
- Failing tests no longer delete the test directory, to allow easier debugging
|
|
|
|
(Issue: #1599)
|
2018-07-29 03:53:53 +02:00
|
|
|
|
|
|
|
### Security
|
|
|
|
|
2018-08-25 02:33:35 +02:00
|
|
|
## [0.6] - 2018-06-22: "I Accidentally The Smart Contract"
|
2018-07-29 03:53:53 +02:00
|
|
|
|
|
|
|
In the prehistory of c-lightning, no changelog was kept. But major
|
|
|
|
JSON API changes are tracked.
|
|
|
|
|
2018-08-25 02:33:35 +02:00
|
|
|
This release named by Fabrice Drouin.
|
|
|
|
|
2018-07-29 03:53:53 +02:00
|
|
|
### Deprecated
|
|
|
|
|
|
|
|
Note: You should always set `allow-deprecated-apis=false` to test for
|
|
|
|
changes.
|
|
|
|
|
2018-08-25 02:33:35 +02:00
|
|
|
- Config: `port`. Use `addr=:<portnum>`.
|
|
|
|
- Config: `ipaddr`. Use `addr`.
|
|
|
|
- Config: `anchor-confirms`. Use `funding-confirms`.
|
|
|
|
- Config: `locktime-blocks`. Use `watchtime-blocks`.
|
2018-07-29 03:53:53 +02:00
|
|
|
- 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`.
|
2018-07-30 18:01:34 +02:00
|
|
|
|
2018-08-25 02:33:35 +02:00
|
|
|
## Older versions
|
|
|
|
|
|
|
|
There predate the BOLT specifications, and are only of vague historic interest:
|
|
|
|
|
|
|
|
1. [0.1] - 2015-08-08: "MtGox's Cold Wallet" (named by Rusty Russell)
|
|
|
|
2. [0.2] - 2016-01-22: "Butterfly Labs' Timely Delivery" (named by Anthony Towns)
|
|
|
|
3. [0.3] - 2016-05-25: "Nakamoto's Genesis Coins" (named by Braydon Fuller)
|
|
|
|
4. [0.4] - 2016-08-19: "Wright's Cryptographic Proof" (named by Chrstian Decker)
|
|
|
|
5. [0.5] - 2016-10-19: "Bitcoin Savings & Trust Daily Interest" (named by Glenn Willen)
|
|
|
|
6. [0.5.1] - 2016-10-21
|
|
|
|
7. [0.5.2] - 2016-11-21: "Bitcoin Savings & Trust Daily Interest II"
|
2018-07-29 03:53:53 +02:00
|
|
|
|
2018-09-12 01:44:28 +02:00
|
|
|
[Unreleased]: https://github.com/ElementsProject/lightning/compare/v0.6.1...HEAD
|
|
|
|
[0.6.1]: https://github.com/ElementsProject/lightning/releases/tag/v0.6.1
|
2018-07-29 03:53:53 +02:00
|
|
|
[0.6]: https://github.com/ElementsProject/lightning/releases/tag/v0.6
|
2018-08-25 02:33:35 +02:00
|
|
|
[0.5.2]: https://github.com/ElementsProject/lightning/releases/tag/v0.5.2-2016-11-21
|
|
|
|
[0.5.1]: https://github.com/ElementsProject/lightning/releases/tag/v0.5.1-2016-10-21
|
|
|
|
[0.5]: https://github.com/ElementsProject/lightning/releases/tag/v0.5-2016-10-19
|
|
|
|
[0.4]: https://github.com/ElementsProject/lightning/releases/tag/v0.4-2016-08-19
|
|
|
|
[0.3]: https://github.com/ElementsProject/lightning/releases/tag/v0.3-2016-05-26
|
|
|
|
[0.2]: https://github.com/ElementsProject/lightning/releases/tag/v0.2-2016-01-22
|
|
|
|
[0.1]: https://github.com/ElementsProject/lightning/releases/tag/v0.1-2015-08-08
|