Skip to content

Releases: ElementsProject/lightning

v0.12.0 - Web 8.0 init

23 Aug 19:26
v0.12.0
Compare
Choose a tag to compare

We're pleased to announce the 0.12.0 release of core-lightning, named by @adi2011.

Developers: please note the Great Msat Migration in the APIs!

Highlights for Users

  • NEW Built-in bookkeeper plugin! This plugin tracks all movements of msats for your node, gives you a better idea of your costs and revenues, prints out CSVs that are uploadable to Koinly and CoinTracker, lets you inspect the on-chain footprint of a channel (useful when it goes to chain). Check out the new bkpr- prefixed commands.
  • NEW Built-in commando plugin! This lets you create runes to allow access to your node from a commando client, which will let you send and receive RPC commands over the lightning network.
  • NEW Emergency channel backup ("static backup")! Keep track of what peers you have channels with, and in case of node failure ask those peers to close the channel.
  • NEW zeroconf channels are possible for whitelisted peers.
  • hsmtool has a new command, checkhsm, which will let you check a BIP30 passphrase against the hsm_secret.
  • Multiple log-file options will open multiple files for logging.
  • Various crashes and issues fixed in connectd including crash on peer reconnect and large memory usage when many concurrent peers.
  • PSBT: fixes signature encoding to comply with BIP-0174.
  • We added dynamically detected public IP addresses to getinfo.
  • Due to dependency issues on some platforms, a tarball of pre-generated manual pages is included with this release.

Highlights for the Network

  • We prefer IPv6 connections when available.
  • We now accept spam gossip and use it for routing, but don't relay it.
  • We no longer create gossip messages with zlib encoding (but still understand them).
  • We treat LND "internal error" as warnings, not force close events (reverts to v0.10.0 behavior).

Highlights for Developers

  • _msat fields are added wherever they were missing in the API: they're still currently an "msat"-suffixed string, but will soon bean integer value. Test with deprecated_apis=false.
  • The channel_state_changed notification now fires when a channel moves into state CHANNELD_AWAITING_LOCKIN.
  • htlc_accepted_hook will now expose the short_channel_id and the per-channel HTLC id.
  • pyln-testing now includes utilities to read and parse the gossip_store.
  • startup_regtest.sh script now includes a fund_ln method.
  • Rust binaries such as cln-grpc now included in our reproducible builds.
  • Updated the bolts implementation for pyln-spec.
  • Plugins no longer hang indefinitely if lightningd closes their connection.
  • M1 architecture support.
  • Upgrade docker base image from Debian buster to bullseye, works with glibc 2.29+.
  • Docker images now built with rust plugin cln-grpc.

Since v0.11.1 we've had 508 commits from 31 different contributors over 80 days.

A special thanks goes to 9 first time contributors:

  • Aditya Sharma
  • Alex Myers
  • Igor Bubelov
  • Justin Moon
  • Peter Neuroth
  • Swapnil
  • Jose A.P.
  • Brian Barto
  • AutonomoousOrganization

~ @niftynei, Christian, and Rusty

Simon's Carefully Chosen Release Name III

27 Jun 02:58
v0.11.2
Compare
Choose a tag to compare

This is a minor release, highly recommended, which fixes several problems with the v0.11 (and v0.11.1) releases:

  • Unwanted unilateral closes with LND. v0.11 removed logic to downgrade errors, and this reintroduces it when LND sends "internal error" as the reason for an error (which it seems to do often, but recovers).
  • Two more occasional crashes fixed with reconnection logic.
  • connectd large memory usage and large CPU usage reduced significantly.
  • "Could not load channels from the database" failure on startup fixed, when we had old TORv2 addresses in the database.
  • Two fixes to pay/routefinding code, for better payment success.

Thanks to all the people who reported bugs!
Rusty.

Simon's Carefully Chosen Release Name II

16 May 01:19
v0.11.1
Compare
Choose a tag to compare

This is a minor release, highly recommended, which fixes two problems with the v0.11.0.1 release:

  1. Unwanted unilateral closes. We could get confused by reconnections, and think that a peer had sent us out-of-date "channel_reestablish" data. This caused us to complain about e.g. "bad reestablish revocation_number: 7457 vs 7462" and send an error and close the channel.
  2. An overzealous check in connectd, particularly when reconnecting with multiple channels, which intermittently crashed the node.

Thanks to all the people who reported bugs!
Rusty.

v0.11.0: Simon's Carefully Chosen Release Name

26 Apr 21:48
v0.11.0.1
Compare
Choose a tag to compare

We're pleased to announce the 0.11.0 release of c-lightning, named on behalf of @SimonVrouwe.

This release is the first under the rebranded "Core Lightning" name.
(Note: binaries are labelled v0.11.0.1 due to a minor bugfix required for reproducible builds).

Highlights for Users

  • We now finally support multiple live channels to the same peer!
  • If we detect rust support, we'll build the cln-grpc plugin for full native GRPC support.
  • We advertize an external IP address if it's reported by two or more peers (disable-ip-discovery or always-use-proxy disables).
  • You can specify two databases with --wallet, and we'll write to both at once (sqlite3 only).
  • pay supports BOLT 11 payment metadata: we'll send it if it's in the invoice.
  • New setchannel command (deprecates setchannelfee) allows setting max and min HTLC amounts. Try lightning-cli setchannel all 0 for #zerobasefee.
  • pay can be forced to exclude channels or nodes with the exclude
  • Significant speedup in start times for old nodes with many historical HTLCs.

Highlights for the Network

  • We send the remote node's IP address in the init message, so they can tell what it is. (lightning/bolts#917)
  • We are more aggressive in sending our own gossip to peers, to help propagation.
  • Default port is set by network, so regtest and testnet defaults are different. (lightning/bolts#968)
  • We never generate legacy onions, it's always TLV. We still forward legacy onions for now.
  • We flush sockets before closing, so errors are more likely to reach the peer.
  • Experimental support for announcing DNS addresses in node_announcement (lightning/bolts#911)

Highlights for Developers

  • pay has a maxfee parameter, which sets a simple LND-style upper fee (vs using maxfeepercent and exemptfee)
  • You can create invoices with only a description hash, using deschashonly. We still store the full description, so use restraint!
  • pay has deprecated paying solely by description hash: you should provide the full description, too.
  • delinvoice has a new desconly parameter to simply trim the descriptions, but leave the rest intact.
  • We have a rust crate cln-rpc to easily interact with our JSON-RPC.
  • msggen tool allows easy generation of language bindings for our JSON RPC interface.

More details can be found in the changelog.

Thanks to everyone for their contributions and bug reports; please keep them coming.

Since 0.10.2, we've had 712 commits from 37 different authors over 170 days.

A special thanks goes to the 18 first time contributors (a new record!):

  • Aaron Dewes
  • Tim W
  • manreo
  • Gregory Sanders
  • zero fee routing
  • Stephen Webel
  • Michael Dance
  • Marnix
  • lightning-developer
  • kiwiidb
  • Jules Comte
  • JohnOnGit
  • GoofyAF
  • Denis Ahrens
  • Clay Shoaf
  • benthecarman
  • azuchi
  • Anand Suresh

Cheers,
Christian, Rusty, Lisa.

v0.10.2: Bitcoin Dust Consensus Rule

03 Nov 17:48
v0.10.2
Compare
Choose a tag to compare

We're pleased to announce the 0.10.2 release of c-lightning, named by @vincenzopalazzo.

This is a recommended upgrade: this release includes the patch for the recently disclosed CVE-2021-41592.

Highlights for Users

  • Payments can now be retried without affecting the status of prior attempts.
  • The route selection will now use the log-propability-based channel selection to increase success rate and reduce time to completion.
  • close now reports the feeranges each side enforced, which allows users to determine which side caused a high or low feerate.
  • Removal of old HTLC information and vacuuming shrinks large lightningd.sqlite3 by a factor of 2-3.

Highlights for the Network

  • setchannelfee now has a grace period during which both old and new fee policies are considered. This prevents a fee update from making the channel unusable until the update propagated.
  • We now perform quick-close if the peer supports it.
  • We send regular pings to detect dead connections (particularly for Tor).
  • Errors returning a channel_update no longer return an outdated one.
  • Anchor output mutual close allow a fee higher than the final commitment transaction

Highlights for Developers

  • Plugins now are notified about an upcoming shutdown, allowing them to store data and clean up before exiting.
  • The datastore API (datastore, deldatastore, and listdatastore) exposes a simple key-value store, allowing plugin authors to store data in the c-lightning database.
  • ping now only works if we have a channel with the peer.
  • Relaxed the sqlite3 version match requirements to be at least a minimum version and a major version match

More details can be found in the changelog.

Thanks to everyone for their contributions and bug reports; please keep them coming.

Since 0.10.1, we've had 333 commits from 19 different authors over 85 days.

A special thanks goes to the 4 first time contributors:

  • Dustin Dettmer
  • Michael Folkson
  • jerzybrzoska
  • Devrandom

Cheers,
Christian, Rusty, Lisa.

v0.10.2rc2

31 Oct 16:30
v0.10.2rc2
Compare
Choose a tag to compare
v0.10.2rc2 Pre-release
Pre-release
v0.10.2rc2

v0.10.2rc1

24 Oct 13:06
v0.10.2rc1
Compare
Choose a tag to compare
v0.10.2rc1 Pre-release
Pre-release
v0.10.2rc1

v0.10.1: "eltoo: Ethereum Layer Too"

10 Aug 00:57
v0.10.1
Compare
Choose a tag to compare

We're pleased to announce the 0.10.1 release of c-lightning, named by @nalinbhardwaj.

This is a recommended upgrade: payment secrets in invoices are now compulsory, and offers and dual funding drafts have been updated, so these (experimental) features are incompatible with previous releases!

NOTE: Users of the rebalance or drain plugins MUST update, as payment secret is now compulsory.

Highlights for Users

  • experimental-dual-fund allows advertizement of funding rates which we will contribute to channels automatically, on a 1-month lease.
  • withdraw and close (if peer supports) now supports Taproot (and other future) addresses.
  • listchannels can now be queried by destination, as well as source.
  • plugin rescan now automatically reloads plugins which have changed.
  • We try to restart automatically if we notice subdaemons have been upgraded underneath us.
  • fundpsbt will no longer include uneconomic UTXOs (unless all).
  • close will return a stream of notifications if there is a delay in closing.
  • Unilateral close feerates were reduced from bitcoind's "2 CONSERVATIVE" to "6 ECONOMICAL".
  • Tor v2 is deprecated: please upgrade to v3!
  • Fixed disconnection bug when an HTLC failed.
  • Fixed bug in rapid feerate changes, and make code space them out (LND compat).
  • Fixed bug where Tor on different ports could be advertized incorrectly.
  • Fixed various bugs to make pay more robust.

Highlights for the Network

  • payment secrets in invoices are now compulsory, finally closing a potential probing (or, with amountless invoices, stealing) attack.
  • option_shutdown_anysegwit allows peers to close channels to any future segwit version address (taproot!).
  • keysend now understands routehints, for routing to unpublished nodes, and sets the final CLTV to 22, for rust-lightning nodes.
  • invoice now allows creation of wumbo invoices (> 0.0429 BTC).
  • We will now discuss old channels with peers who reconnect, even if we consider them closed.

Highlights for Developers

  • Manual pages now document exactly the JSON you can expect from each command (and it's tested!)
  • Plugins can now publish notifications for other plugins to listen to.
  • force-feerates allows complete feerate override (mainly for regtest), and a bug fixed where we could send 0 update_fee on regtest.
  • The HSM daemon is now separated into libhsmd, which also provides Python bindings.
  • createonion can now make variable-sized onions, and sendonion no longer requires direction and channel for firsthop.
  • dev-sendcustommsg is now simply sendcustommsg.
  • Many offers API improvements and updates, including unsigned offers (smaller QR codes!).

More details can be found in the changelog.

Thanks to everyone for their contributions and bug reports; please keep them coming.

Since 0.10.0, we've had 526 commits from 15 different authors over 114 days.

A special thanks goes to the 6 first time contributors:

  • Nalin Bhardwa
  • Nathanael
  • LightningHelper
  • OpenOms
  • Urza
  • Valentine Wallace

Cheers,
Lisa, Christian, ZmnSCPxj, Rusty.

0.10.0: Neutralizing Fee Therapy

31 Mar 20:14
v0.10.0
Compare
Choose a tag to compare

We're pleased to announce the 0.10.0 release of c-lightning, named by @jsarenik.

This is a major release, consolidating a number of features, fixes and experimental extensions.

Highlights for Users

  • pay has been refined and much improved across various less-common scenarios.
  • listpeers shows the current feerate and unilateral close fee.
  • listforwards can now filter by channel status, and in or out channel.
  • fundpsbt and utxopsbt have a new excess_as_change parameter if you don't want to add it yourself.
  • connect returns the address we actually connected to (and direction tells you if they actually connected to us instead).
  • fundchannel_complete takes a PSBT, removing a common cause of tragic opening failures: txprepare and withdraw now provide a PSBT for convenience too.
  • In regtest mode, we don't care that bitcoind doesn't give any fee estimates, but use the minimum.

Highlights for the Network

  • We now send warning messages if an error condition is possibly recoverable, rather than closing the channel and sending error.
  • We now implement sync_complete for gossip_range queries as per latest spec, with backwards compatibility for older nodes.
  • experimental-dual-fund config option enables the draft dual funding option for compatible nodes, which includes RBF upgrades for opening transactions.

Highlights for Developers

  • All hooks are now registerable by multiple plugins at once.
  • experimental-shutdown-wrong-funding allows remote nodes to close incorrectly opened channels using the new wrong_funding option to close.

More details can be found in the changelog.

Thanks to everyone for their contributions and bug reports; please keep them coming.

Since 0.9.3, we've had 339 commits from 14 different authors over 69 days.

A special thanks goes to the 3 first time contributors:

  • Matthias Debernardini
  • Luke Childs
  • Alexey Zagarin

Cheers,
Rusty, Lisa, Christian, ZmnSCPxj

0.9.3 Federal Qualitative Strengthening

20 Jan 17:39
v0.9.3
Compare
Choose a tag to compare

We're pleased to announce the 0.9.3 release of c-lightning, named by Karol Hosiawa.

This is a minor release, but it also introduces a number of new features that we're really exited about, including a number of usability improvements, better access to lower-level primitives to build on top, and experimental extensions to the lightning protocol.

Highlights for Users

  • Much improved parameter verification in lightning-cli makes it easier to debug why a call failed.
  • You can now query for the status of an invoice based on the hash or the invoice.
  • Plugins that are started while the node is running can now receive command line arguments as if they were provided at node startup.
  • The security of the hsmtool used to encrypt and decrypt the node's seed key was improved by switching to a passphrase prompt
    instead of a command line argument.
  • Multiple plugins can now register for the db_write hook, which means you can now run multiple backup plugins at the same time. In addition we wrote extensive documentation on how to secure your node from dataloss.

Highlights for the Network

  • No more reckless: the default network changed from testnet to bitcoin.
  • We have experimental support for the onion messages proposal, allowing arbitrary messages to be exchanged between nodes in the network.
  • We have experimental support for the offers proposal, enabling reusable invoices, refunds, invoices denominated in currencies other than bitcoins, and much much more. If you ever wanted to have an inline communication step with the other endpoint of a payment then take a look at this.

Highlights for Developers

  • pyln now supports both receiving notifications from the RPC interface, as well as sending notifications in methods implemented by plugins. No more waiting in front of a blank screen for your users.
  • The new createinvoice allows you to create an invoice externally, then have your node sign it and manage it internally.
  • You can use sendonionmessage to send an onion routed message, which recipient can receive using a plugin that register for the onion_message or onion_message_blinded hook.

More details can be found in the changelog

Thanks to everyone for their contributions and bug reports; please keep them coming.

Since 0.9.2, we've had 360 commits from 13 different authors over 60 days, an average commit rate of 6.51 commits per day 🤓

A special thanks goes to the 2 first time contributors:

  • João Paulo
  • Karol Hosiawa

Cheers,
Christian, Rusty, Lisa, ZmnSCPxj