I'm deeply reluctant to do this, as I'd thought this was fixed with recent lnd versions. Logs below show that it continues, with channel loss on almost every restart. At this rate, we risk bifurcating the network. In fact, only four errors my node have ever been NOT "sync error". 2018-09-12T01:21:40.671Z lightningd(1263): 03e50492eab4107a773141bb419e107bda3de3d55652e6e1a41225f06a0bbf2d56 chan #3: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel b7008735ad2425ab92bcffa2f255ba93f63e0b5c685368f308e76ca0d2a30a41: sync error 2018-12-07T06:41:26.209Z lightningd(1215): 03da1c27ca77872ac5b3e568af30673e599a47a5e4497f85c7b5da42048807b3ed chan #1038: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 48858b0d55ae982596932ceb72584d4bb31363b9ecbaa56721b158ca4d18f5f8: sync error 2018-12-07T06:41:43.707Z lightningd(1215): 0219c2f8818bd2124dcc41827b726fd486c13cdfb6edf4e1458194663fb07891c7 chan #2508: Peer permanent failure in CHANNELD_AWAITING_LOCKIN: lightning_channeld: received ERROR channel 388b653e433773d20d74a151c552df647b74e240ef983d21a6d6c5816523b858: sync error 2018-12-07T06:41:45.553Z lightningd(1215): 03e50492eab4107a773141bb419e107bda3de3d55652e6e1a41225f06a0bbf2d56 chan #1044: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel b58e9391383bfbe848da881ab9ddd9a8987c76318d421dac6f552b0d451ff957: sync error 2018-12-07T06:41:46.501Z lightningd(1215): 0390b5d4492dc2f5318e5233ab2cebf6d48914881a33ef6a9c6bcdbb433ad986d0 chan #871: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 91f43cb6a8c37d0be237a7c491f11d9dfad48534699fb4f076b2c0cbde964424: sync error 2018-12-07T06:41:46.985Z lightningd(1215): 03e5ea100e6b1ef3959f79627cb575606b19071235c48b3e7f9808ebcd6d12e87d chan #1026: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 6cc360db0627b19df146ccd971570c14597b22662bbc0907a233042480e50be7: sync error 2018-12-07T06:41:47.340Z lightningd(1215): 03c2abfa93eacec04721c019644584424aab2ba4dff3ac9bdab4e9c97007491dda chan #1420: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel f363d174390bf819b47e568cb5890c8e432d61c03ba0d38d7c53996679080a74: sync error 2018-12-07T06:41:47.641Z lightningd(1215): 032679fec1213e5b0a23e066c019d7b991b95c6e4d28806b9ebd1362f9e32775cf chan #1058: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 602dc88c7f333ed88f24c6f2c760cb53fa359a4299dfab677f6a81ca33613231: sync error 2019-01-06T10:56:47.332Z lightningd(1202): 02cdf83ef8e45908b1092125d25c68dcec7751ca8d39f557775cd842e5bc127469 chan #2608: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 17b7c895c3feb6ae5b8209ef05044b0aa125629ef1ebc2ce6b2efb27e231533b: sync error 2019-01-06T10:57:08.896Z lightningd(1202): 0219c2f8818bd2124dcc41827b726fd486c13cdfb6edf4e1458194663fb07891c7 chan #2610: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 52d5e3717c7b4f6b06f2b7d55aa8d904a0558706e18be981c82d2c11d4bdf82c: sync error 2019-01-06T10:57:08.950Z lightningd(1202): 02ad6fb8d693dc1e4569bcedefadf5f72a931ae027dc0f0c544b34c1c6f3b9a02b chan #7185: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 245438c15a986b53da7694114c646b77ab663d236d7928732764f5b9251cd2d1: sync error 2019-01-15T09:15:26.882Z lightningd(1191): 03a76b80027d7c067e0da77da95880faaf89e9bf87b73a7d57bd4a3f2a124b764f chan #7430: Peer permanent failure in CHANNELD_AWAITING_LOCKIN: lightning_channeld: received ERROR channel 97c1e01612faf5653af2980abdf382c0f3b24d8a5961b6a3a1eb12444cf9db2e: sync error 2019-05-02T11:32:06.511Z lightningd(14815): 036e8a8efeb26f3cffce99f462839ef6ea3b1691d569d59c402be0d3d6cef9b79c chan #7573: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 6766b0b14013de753f9b354ce7a4b6e4756165ef970aae2650aeda990cfe5687: sync error 2019-06-12T10:38:57.503Z lightningd(1264): 024d2387409269f3b79e2708bb39b895c9f4b6a8322153af54eba487d4993bf60f chan #9607: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 1f3111399c670dab87b4e3d7bac22865c29d4c9992df71fdce9e8893666a08bc: sync error 2019-06-12T10:41:00.435Z lightningd(1264): 02809e936f0e82dfce13bcc47c77112db068f569e1db29e7bf98bcdd68b838ee84 chan #9332: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel a31b5252be9b001f573e00310ea9098532c81322389aa8721946185b1b70ca4c: sync error 2019-06-12T10:46:23.097Z lightningd(1264): 02fcdb04f51d61dddc0481c10751173d523e3408ebe3a848a1d6cb34b1f5df6668 chan #7586: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel bd18e98f5bd56ac73e7b2eb7fd70f6dbe3a4dda1e5bebe7bf6484c3a0f6b55e7: sync error 2019-06-12T10:46:24.627Z lightningd(1264): 03bb88ccc444534da7b5b64b4f7b15e1eccb18e102db0e400d4b9cfe93763aa26d chan #9626: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 345e89c2f0100257940aff7413c1e29786d08b0a1ea1e259d577650d18791872: sync error 2019-06-12T10:46:26.381Z lightningd(1264): 0331f80652fb840239df8dc99205792bba2e559a05469915804c08420230e23c7c chan #9677: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel d38752727ed5dab33abb06c5671e9d7d467feb469f0d249aa488f45e304221c1: sync error 2019-06-12T12:12:51.261Z lightningd(1264): 02d3366059edde4179fc0d071828b4bd726effba7225c3851f3d86a6a827f934a2 chan #9804: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel d00c9eb31bb0c1f5794804114117be3cc75a756a1e4c08099b7188a5fd9f7215: sync error 2019-06-13T03:19:28.212Z lightningd(1218): 03e5ea100e6b1ef3959f79627cb575606b19071235c48b3e7f9808ebcd6d12e87d chan #10792: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 873a526043bbc680ea4398c7a45b9742762d782dea285c661bb90ab8f165976d: sync error 2019-06-13T06:19:52.486Z lightningd(1230): 030995c0c0217d763c2274aa6ed69a0bb85fa2f7d118f93631550f3b6219a577f5 chan #10743: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 29157b32dd0c13bcf4f785c5527d067159e102d62516e3a00fbf2c0f33bf59ec: sync error 2019-06-14T01:25:37.598Z lightningd(1235): 02cf60741c586aa54ff24381beab1aebf45eda61a8c49b043cf1f6e203e611e581 chan #12786: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 827472a7167ab1fecd680e4f28e1ee74bcd25d04dcdea5d1295ba381b6543661: sync error 2019-07-17T03:37:12.703Z UNUSUAL lightningd(1262): 03021c5f5f57322740e4ee6936452add19dc7ea7ccf90635f95119ab82a62ae268 chan #14764: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 5ff0890d9f1fbb63439a7d793c28cb74c3baef8c9b610c51c64b8a6497237540: sync error 2019-07-17T03:37:14.964Z UNUSUAL lightningd(1262): 030c3f19d742ca294a55c00376b3b355c3c90d61c6b6b39554dbc7ac19b141c14f chan #14839: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 79525ec2c4eaffb5fd6893957f330db81b7383c50d57113d5bf8ffee3c121bdc: sync error 2019-07-17T03:37:16.048Z UNUSUAL lightningd(1262): 028c1da32603fce64118e469ffe2cfeec04d1c4bd88205efb4e8b4208f77a8064e chan #14996: Peer permanent failure in CHANNELD_NORMAL: lightning_channeld: received ERROR channel 6913067c9c89404d9451df25fed1a6cc98b9d9ef801b623d5e8e90aa43ca3077: sync error Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
22 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased
Added
- Lightningd: add support for
signetnetworks using the--network=signetor--signetstartup option - JSON API:
listfundsnow returns alsofunding_outputforchannels
Changed
- build: now requires
python3-makoto be installed, i.e.sudo apt-get install python3-mako - plugins: a new notification type
invoice_payment(sent when an invoice is paid) has been added
Deprecated
Note: You should always set allow-deprecated-apis=false to test for
changes.
Removed
Fixed
- Plugin:
payno longer crashes on timeout. - Plugin:
disconnectnotifier now called if remote side disconnects. - channeld: ignore, and simply try reconnecting if lnd sends "sync error".
Security
0.7.1 - 2019-06-29: "The Unfailing Twitter Consensus Algorithm"
This release named by (C-Lightning Core Team member) Lisa Neigut @niftynei.
Added
- Protocol: we now enforce
option_upfront_shutdown_scriptif a peer negotiates it. - JSON API: New command
setchannelfeesets channel specific routing fees. - JSON API: new withdraw methods
txprepare,txsendandtxdiscard. - JSON API: add three new RPC commands:
fundchannel_start,fundchannel_completeandfundchannel_cancel. Allows a user to initiate and complete a channel open using funds that are in a external wallet. - Plugin: new hooks
db_writefor intercepting database writes,invoice_paymentfor intercepting invoices before they're paid,openchannelfor intercepting channel opens, andhtlc_acceptedto decide whether to resolve, reject or continue an incoming or forwarded payment.. - Plugin: new notification
warningto report anyLOG_UNUSUAL/LOG_BROKENlevel event. - Plugin: Added a default plugin directory :
lightning_dir/plugins. Each plugin directory it contains will be added to lightningd on startup. - Plugin: the
connectedhook can now send anerror_messageto the rejected peer. - JSON API:
newaddroutputsbech32orp2sh-segwit, or both with newallparameter (#2390) - JSON API:
listpeersstatus now shows how many confirmations until channel is open (#2405) - Config: Adds parameter
min-capacity-satto reject tiny channels. - JSON API:
listforwardsnow 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:
listforwardsnow 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:
listchannelshas new fieldshtlc_minimum_msatandhtlc_maximum_msat.
Changed
- Gossip: we no longer compact the
gossip_storefile 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:
invoiceexpiry 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:
paywill 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
helpoutputs 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.
Deprecated
Note: You should always set allow-deprecated-apis=false to test for
changes.
- JSON API:
newaddroutput fieldaddress: usebech32orp2sh-segwitinstead.
Removed
- JSON RPC:
global_featuresandlocal_featuresfields andlistchannels'flagsfield. (Deprecated since 0.6.2). - pylightning: Remove RPC support for c-lightning before 0.6.3.
Fixed
- Protocol: reconnection during closing negotiation now supports
option_data_loss_protectproperly. --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
fundchannelcrash when we have many UTXOs and we skip unconfirmed ones. - lightningd: fixed occasional hang on
connectwhen peer had sent error. - JSON RPC:
decodeinvoiceandpaynow handle unknown invoice fields properly. - JSON API:
waitsendpay(PAY_STOPPED_RETRYING) error handler now returns valid JSON - protocol: don't send multiple identical feerate changes if we want the feerate higher than we can afford.
- JSON API:
stopnow only returns once lightningd has released all resources.
Security
0.7.0 - 2019-02-28: "Actually an Altcoin"
This release named by Mark Beckwith @wythe.
Added
- plugins: fully enabled, and ready for you to write some!
- plugins:
payis now a plugin. - protocol:
paywill now use routehints in invoices if it needs to. - build: reproducible source zipfile and Ubuntu 18.04.1 build.
- JSON API: New command
paystatusgives detailed information onpaycommands. - JSON API:
getroute,invoice,sendpayandpaycommandsmsatoshiparameter can have suffixesmsat,sat(optionally with 3 decimals) orbtc(with 1 to 11 decimal places). - JSON API:
fundchannelandwithdrawcommandssatoshiparameter can have suffixesmsat(must end in000),satorbtc(with 1 to 8 decimal places). - JSON API:
decodepay,getroute,sendpay,pay,listpeers,listfunds,listchannelsand all invoice commands now return anamount_msatfield which has anmsatsuffix. - JSON API:
listfundschannelsnow has_msatfields for each existing raw amount field, withmsatsuffix. - JSON API:
waitsendpaynow has anerring_directionfield. - JSON API:
listpeersnow has adirectionfield inchannels. - JSON API:
listchannelsnow takes asourceoption to filter by node id. - JSON API:
getrouteriskfactorargument is simplified;paynow defaults to setting it to 10. - JSON API:
sendpaynow takes abolt11field, and it's returned inlistpaymentsandwaitsendpay. - JSON API:
fundchannelandwithdrawnow have a new parameterminconfthat limits coinselection to outputs that have at leastminconfconfirmations (default 1). (#2380) - JSON API:
listfundsnow displays addresses for all outputs owned by the wallet (#2387) - JSON API:
waitsendpayandsendpayoutput fieldlabelas specified bysendpaycall. - JSON API:
listpayscommand for higher-level payment view thanlistpayments, especially important with multi-part-payments coming. - JSON API:
listpaymentsis nowlistsendpays. - lightning-cli:
help <cmd>finds man pages even ifmake installnot run. - pylightning: New class 'Millisatoshi' can be used for JSON API, and new '_msat' fields are turned into this on reading.
Changed
- protocol:
option_data_loss_protectis now enabled by default. - JSON API: The
short_channel_idseparator has been changed to bexto match the specification. - JSON API:
listpeersnow includesfunding_allocation_msat, which returns a map of the amounts initially funded to the channel by each peer, indexed by channel id. - JSON API:
helpwith acommandargument gives a JSON array, like other commands. - JSON API:
sendpaydescriptionparameter is renamedlabel. - JSON API:
paynow takes an optionallabelparameter for labelling payments, in place of never-useddescription. - build: we'll use the system libbase58 and libsodium if found suitable.
Deprecated
Note: You should always set allow-deprecated-apis=false to test for
changes.
We recommend that you transition to the reading the new JSON _msat
fields for your own sanity checking, and that you similarly
provide appropriate suffixes for JSON input fields.
- JSON API:
short_channel_idfields in JSON commands with:separators (usexinstead). - JSON API:
paydescriptionis deprecated, as is support for BOLT11 strings usingh. - JSON API:
sendpayparameterdescriptionandwaitsendpayandsendpayoutput fieldsdescription(nowlabel). - JSON API:
listpaymentshas been deprecated (you probably wantlistpays)
Removed
- JSON API: the
waitsendpaycommand error return no longer includeschannel_update
Fixed
- Protocol: handling
query_channel_rangefor 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)
- Handle lnd sending premature 'funding_locked' message when we're expected 'reestablish'; we used to close channel if this happened.
- Cleanup peers that started opening a channel, but then disconnected. These would leave a dangling entry in the DB that would cause this peer to be unable to connect. (PR #2371)
- You can no longer make giant unpayable "wumbo" invoices.
- CLTV of total route now correctly evaluated when finding best route.
riskfactorarguments topayandgetroutenow have an effect.- Fixed the version of bip32 private_key to BIP32_VER_MAIN_PRIVATE: we used BIP32_VER_MAIN_PRIVATE for bitcoin/litecoin mainnet, and BIP32_VER_TEST_PRIVATE for others. (PR #2436)
Security
0.6.3 - 2019-01-09: "The Smallblock Conspiracy"
This release named by @molxyz and @ctrlbreak.
Added
- JSON API: New command
checkchecks the validity of a JSON API call without running it. - JSON API:
getinfonow returnsnum_peersnum_pending_channels,num_active_channelsandnum_inactive_channelsfields. - JSON API: use
\n\nto terminate responses, for simplified parsing (pylightning now relies on this) - JSON API:
fundchannelnow includes anannounceoption, when false it will keep channel private. Defaults to true. - JSON API:
listpeers'schannelsnow includes aprivateflag to indicate if channel is announced or not. - JSON API:
invoiceroute hints may now include private channels if you have no public ones, unless new optionexposeprivatechannelsis false. - Plugins: experimental plugin support for
lightningd, including option passthrough and JSON-RPC passthrough.
Changed
- JSON API:
payanddecodepayaccept and ignorelightning:prefixes. - pylightning: Allow either keyword arguments or positional arguments.
- JSON-RPC: messages are now separated by 2 consecutive newlines.
- JSON-RPC:
jsonrpc:2.0now included in json-rpc command calls. complies with spec.
Deprecated
Note: You should always set allow-deprecated-apis=false to test for
changes.
- pylightning: Support for pre-2-newline JSON-RPC (<= 0.6.2 lightningd) is deprecated.
Removed
- option_data_loss_protect is now only offered if EXPERIMENTAL_FEATURES is enabled, since it seems incompatible with lnd and has known bugs.
Fixed
- JSON API: uppercase invoices now parsed correctly (broken in 0.6.2).
- JSON API: commands are once again read even if one hasn't responded yet (broken in 0.6.2).
- Protocol: allow lnd to send
update_feebeforefunding_locked. - Protocol: fix limit on how much funder can send (fee was 1000x too small)
- Protocol: don't send invalid onion errors if peer says onion was bad.
- Protocol: don't crash when peer sends a 0-block-expiry HTLC.
- pylightning: handle multiple simultanous RPC replies reliably.
- build: we use
--prefixas handed to./configure
Security
0.6.2 - 2018-10-20: "The Consensus Loving Nasal Daemon"
This release named by practicalswift.
Added
- JSON API:
listpeershas new fieldscratch_txid: the latest tx in channel. - JSON API:
listpeershas new arrayhtlcs: the current live payments. - JSON API:
listchannelshas two new fields:message_flagsandchannel_flags. This replacesflags. - JSON API:
invoicenow adds route hint to invoices for incoming capacity (RouteBoost), and warns if insufficient capacity. - JSON API:
listforwardslists all forwarded payments, their associated channels, and fees. - JSON API:
getinfoshows forwarding fees earnt asmsatoshi_fees_collected. - Bitcoind: more parallelism in requests, for very slow nodes.
- Testing: fixed logging, cleaner interception of bitcoind, minor fixes.
- Protocol: we set and handle the new
htlc_maximum_msatchannel_update field.
Changed
- Protocol:
channel_updatesent to disable channel only if we reject an HTLC. - Protocol: we don't send redundant
node_announcementon every new channel. - Config: config file can override
lightning-dir(makes sense with--conf). - Config:
--confoption is now relative to current directory, notlightning-dir. - lightning-cli:
help <cmd>prints basic information even if no man page found. - JSON API:
getinfonow reports global statistics about forwarded payments, including total fees earned and amounts routed.
Deprecated
Note: You should always set allow-deprecated-apis=false to test for
changes.
- JSON RPC:
listchannels'flagsfield. This has been split into two fields, see Added. - JSON RPC:
global_featuresandlocal_featuresfields: useglobalfeaturesandlocalfeaturesas per BOLT #1.
Removed
- JSON API: the optional 'seed' parameter to
getroutewas removed.
Fixed
- Startup: more coherent complaint if daemon already running.
- Lightningd: correctly save full HTLCs across restarts; fixup old databases.
- JSON RPC:
getinfonow shows correct Tor port. - JSON RPC:
pingnow works even after one peer fails to respond. - JSON RPC:
getroutefuzzpercentandpaymaxfeepercentcan now be > 100. - JSON RPC:
riskfactorinpayandgetrouteno longer always treated as 1. - JSON-RPC:
listpeerswas always reporting 0 for all stats. - JSON RPC:
withdraw allsaysCannot afford transactionif you have absolutely no funds, rather thanOutput 0 satoshis would be dust. - Protocol: don't send gossip about closed channels.
- Protocol: fix occasional deadlock when both peers flood with gossip.
- Protocol: fix occasional long delay on sending
reply_short_channel_ids_end. - Protocol: re-send
node_announcementwhen address/alias/color etc change. - Protocol: multiple HTLCs with the same payment_hash are handled correctly.
- Options: 'autotor' defaults to port 9051 if not specified.
Security
0.6.1 - 2018-09-11: "Principled Opposition To Segwit"
This release named by ZmnSCPxj.
Added
- 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_protectnow supported to protect peers against being out-of-date. - JSON API: Added description to invoices and payments (#1740).
- JSON API:
getinfohas new fieldsaliasandcolor. - JSON API:
listpeershas new fieldsglobal_featuresandlocal_features. - JSON API:
listnodeshas new fieldglobal_features. - JSON API:
pingcommand to send a ping to a connected peer. - JSON API:
feeratescommand to retrieve current fee estimates. - JSON API:
withdrawandfundchannelcan be given manual feerate. - Config:
--confoption to set config file. - Documentation: Added CHANGELOG.md
- pylightning: RpcError now has
methodandpayloadfields. - Sending lightningd a SIGHUP will make it reopen its
log-file, if any.
Changed
- 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
mancommand. - 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_connectdhandles connecting to/from peers, instead ofgossipddoing that itself.lightning_openingdnow handles peers immediately, even if they never actually open a channel. - Test:
python-xdistis 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_msatparameter (#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
feeratearg.
Deprecated
Removed
- JSON API:
listpeersresults no long havealiasandcolorfields; they're inlistnodes(we used to internally merge the information). - JSON API:
listpeerswill never havestatefield (it accidentally used to exist and set toGOSSIPINGbefore we opened a channel).connectedwill indicate if we're connected, and thechannelsarray indicates individual channel states (if any). - Config:
default-fee-rateis no longer available; use explicitfeerateoption if necessary. - Removed all Deprecated options from 0.6.
Fixed
- Protocol:
node_announcementmultiple 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 printsaddressesif more than one is advertised. - Config:
bind-addrof a publicly accessible network address was announced. - When we reconnect and have to retransmit failing HTLCs, the errors weren't encrypted by us.
lightningd_configman page is now installed bymake 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_updateinside 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)
Security
0.6 - 2018-06-22: "I Accidentally The Smart Contract"
In the prehistory of c-lightning, no changelog was kept. But major JSON API changes are tracked.
This release named by Fabrice Drouin.
Deprecated
Note: You should always set allow-deprecated-apis=false to test for
changes.
- Config:
port. Useaddr=:<portnum>. - Config:
ipaddr. Useaddr. - Config:
anchor-confirms. Usefunding-confirms. - Config:
locktime-blocks. Usewatchtime-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:
listinvoicecommand. Uselistinvoices. - JSON API: invoice result fields
paid_timestampandexpiry_time. Usepaid_atandexpires_at. - JSON API:
invoicecommand fieldfallback. Usefallbacks. - JSON API:
decodepayresult fieldstimestampandfallback. Usecreated_atandfallbacks. - JSON API: payment result fields
timestamp. Usecreated_at. - JSON API:
getinforesult fieldport. Usebindingandaddressarrays. - JSON API:
getlogresult fieldcreation_time. Usecreated_at. - JSON API:
getpeersresult fieldchannel_reserve_satoshis. Usetheir_channel_reserve_satoshis. - JSON API:
getpeersresult fieldto_self_delay. Usetheir_to_self_delay.
Older versions
There predate the BOLT specifications, and are only of vague historic interest:
- 0.1 - 2015-08-08: "MtGox's Cold Wallet" (named by Rusty Russell)
- 0.2 - 2016-01-22: "Butterfly Labs' Timely Delivery" (named by Anthony Towns)
- 0.3 - 2016-05-25: "Nakamoto's Genesis Coins" (named by Braydon Fuller)
- 0.4 - 2016-08-19: "Wright's Cryptographic Proof" (named by Christian Decker)
- 0.5 - 2016-10-19: "Bitcoin Savings & Trust Daily Interest" (named by Glenn Willen)
- 0.5.1 - 2016-10-21
- 0.5.2 - 2016-11-21: "Bitcoin Savings & Trust Daily Interest II"