Lightning Versions Save

Core Lightning — Lightning Network implementation focusing on spec compliance and performance

v0.10.1

2 years ago

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.

v0.10.0

3 years ago

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

v0.9.3

3 years ago

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

v0.9.2

3 years ago

We're pleased to announce the 0.9.2 release of c-lightning, named by Sergi Delgado.

This is a significant release with new CLI-level notifications, better channel state reporting, and stable plugin-hook call ordering.

Note that as of this release c-lightning-generated PSBTs are only considered valid by bitcoind v0.20.1 and above.

Did you know: c-lightning deprecates features with 6 months warning, and you can set allow-deprecated-apis=false to test?

Highlights for Users

  • We now keep track of channel closure rationales. Wonder "why did my channel close" no more. All channel state changes are now listed in listpeers's state_changes.
  • NEW CLI/RPC notifications! Tired of waiting for close to finish without getting any updates? With notifications, the close command will publish notifications (think CLI status updates) for slow closes. Must have allow-deprecated-apis set to false for these to work.
  • New optional argument commitment_feerate on the multifundchannel command. This is useful for setting one feerate for the funding transaction and another for the channel commitment transactions.
  • Two new commands added to hsmtool!
    • generatehsm allows you to create an HSM hsm_secret from a BIP39 pass phrase. (Note that due to c-lightning's current seed derivation process, wallet addresses aren't standard 'BIP39 to BIP32' compliant. Which is a fancy way of saying your pass phrase isn't portable to other, non-clightning wallets.)
    • dumponchaindescriptors will output the xpub for the HD wallet master key. This will let you track swept c-lightning wallet funds -- anchor outputs and unswept channel outputs won't be visible until swept.
  • The starting feerate for mutual closes has been reduced to 'slow', to avoid overpayment.
  • In-memory log buffer now is 10MB, down from 100MB.

Highlights for the Network

  • We no longer support receiving full gossip from ancient LND nodes
  • Fixed re-transmission order of multiple new HTLCS. This was causing channel closures with LND.

Highlights for Developers

  • Plugin hook call ordering. Hooks can now specify that they must be called 'before' or 'after' other plugins.
  • pyln-client will handle and send RPC command notifications.
  • pyln-proto now includes a pure python implementation of the sphinx onion creation and processing.
  • PostgresSQL key-value DSNs now supported.
  • Plugin hook htlc_accepted can now return a custom failure_onion.

More details can be found at https://github.com/ElementsProject/lightning/blob/v0.9.2/CHANGELOG.md

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

Since 0.9.1, we've had 321 commits from 15 different authors over ~58 days, an average commit rate of 5.5344 commits per day.

A special thanks goes to the 4 first time contributors:

  • YOSHIDA Masanori @siburu
  • @grubles
  • Jordi Montes @positiveblue
  • @lakshit24

Cheers, Lisa, Christian, Rusty, ZmnSCPxj

v0.9.1

3 years ago

We're pleased to announce the 0.9.1 release of c-lightning, named by Jon Griffiths.

This is a significant release with major bugfixes to multi-part payments and various notable speedups and improvements across the board.

Did you know: c-lightning deprecates features with 6 months warning, and you can set allow-deprecated-apis=false to test?

Highlights for Users

  • The sending of multi-part payments has seen a lot of work, covering more corner cases and generally becoming much more robust.
  • New official plugins create commands multiwithdraw and multifundchannel to easily produce a single transaction which does more than one thing; these use the PSBT plumbing created for v0.9.0.
  • We produce far less log spam when log-level is set to debug, so if you've avoided setting that before, I recommend trying now.
  • Startup checks that bitcoind is the correct version, and relays transactions
  • Builtin plugins are now nominated as important, and you can nominate others as important too. The daemon will stop if these fail.
  • You can now build a postgres-only installation, without sqlite3.

Highlights for the Network

  • Our invoices now supply more than one routehint if we think you'll need to use multi-part-payments.
  • We prune channels which are not updated in both directions every 2 weeks.
  • Our default CTLV expiry has increased to 34 blocks, or 18 if we're the final node, as per updated specification recommendations (https://github.com/lightningnetwork/lightning-rfc/pull/785)

Highlights for Developers

  • PSBT APIs fleshed out with utxopsbt and locktime arguments.
  • Plugins can easily mark commands and options deprecated.
  • The new channel_state_changed notification lets plugins easily track channel behavior.

More details can be found at https://github.com/ElementsProject/lightning/blob/v0.9.1/CHANGELOG.md

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

Since 0.9.0, we've had 391 commits commits from 15 different authors. A special thanks goes to the 3 first time contributors:

  • Matt Whitlock @whitslack
  • Sergi Delgado Segura @sr-gi
  • Moller40 @Moller40

Cheers, Christian, Rusty, ZmnSCPxj, and Lisa

v0.9.0-1

3 years ago

This is a point release addressing some minor issues that slipped through with the v0.9.0 release, mainly due to the rewrite of the pay plugin for multi-part payment support.

For details on the changes included in this point release please refer to the tracking issue #3928. We suggest upgrading to this version if:

  • You are using a wallet that shows incorrect information due to missing fields in the RPC responses.
  • Larger payments above 10,000 satoshis to non-public nodes fail due to the destination being unreachable.

We apologize for the inconvenience, and thank the community for the extensive testing and feedback so far.

-- Christian

v0.9.0

3 years ago

We're pleased to announce the 0.9.0 release of c-lightning, named by Sebastian Falbesoner.

This is a major release and includes new features, new integrations as well as major internal refactorings facilitating extensions and future developments.

Highlights for Users

  • We can now send multi-part payments as well as keysend spontaneous payments. This complements the support to receive these payments introduced in an earlier release.
    • Large payments will now be split automatically into multiple parts that are more likely to succeed right away, and better protect your privacy.
    • Should a payment not succeed at first we will adaptively split the amount and retry.
  • We added support for watchtower plugins that help protect the node's funds while the node is not currently connected to the network.

Highlights for the Network

  • Support for optional fields in some messages has been removed, reducing complexity and replacing them with the more modern TLV extensions
  • Splitting payments into smaller parts with MPP increases the traffic on the network and improves privacy by making payments look more homogenous. The added traffic provides cover for other payments.

Highlights for Developers

  • Extensible payment flow framework in libplugin allowing developers to write custom extensions without having to reinvent the wheel.
  • Added RPC methods to create, sign and send PSBT transactions allowing c-lightning to be better integrated with wallets and higher-level protocols, such as coin-join and dual-funding.
  • Added RPC methods to reserve and unreserve outputs controlled by the node to complement the PSBT support, for multi-step protocols.
  • Added extensive accounting support in the form of the coin_movement hook that reports any change in the funds controlled by the node.
  • Refactored the internals to use PSBT everywhere, leveraging libwally
  • A number of new hooks and notifications were added to the plugin interface to allow deeper integration with c-lightning

More details can be found at https://github.com/ElementsProject/lightning/blob/v0.9.0/CHANGELOG.md

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

Since 0.8.2, we've had 523 commits from 21 different authors. A special thanks goes to the 8 first time contributors:

  • Aiden McClelland @dr-bonez
  • Candle @CandleHater
  • Joe Miyamoto @joe.miyamoto
  • Michal Rostecki @mrostecki
  • Reza @rbndg
  • Sebastian Falbesoner @theStack
  • Vincenzo Palazzo @vincenzopalazzo
  • @mb300sd

Cheers,

Christian, Rusty, ZmnSCPxj, and Lisa

v0.9.0rc4

3 years ago

v0.9.0rc3

3 years ago

v0.9.0rc2

3 years ago