Update Rust crate lightning to v0.0.124 #18
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
=0.0.123
->=0.0.124
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
lightningdevkit/rust-lightning (lightning)
v0.0.124
Compare Source
API Updates
rust-bitcoin
has been updated to 0.32. The newbitcoin-io
crate is nowused for all IO traits, irrespective of the features set on LDK crates.
LDK crates no longer automatically force features on dependent crates where
possible, allowing different
std
/no-std
settings between LDK andrust-bitcoin crates (e.g. to disable
std
on LDK to ensure system time isnot accessed while using
bitcoin-io
'sstd
feature). (#3063, #3239, #3249).lightning_types
crate was added which contains various top-leveltypes. Using types from
lightning::ln::features
orPayment{Hash,Preimage,Secret}
fromlightning::ln
orlightning::ln::types
is now deprecated. The new crate is re-exported aslightning::types
(#3234, #3253).lightning
now depends onlightning-invoice
, rather than the other wayaround. The
lightning_invoice::payment
module has moved tolightning::ln::bolt11_payment
andlightning_invoice::utils
tolightning::ln::invoice_utils
(#3234).immediately without blocking the background processor. See documentation on
individual
Event
s for more information on replay (#2995).ChannelDetails::balance_msat
is deprecated in favor ofChainMonitor::get_claimable_balances
and theBalance
, which now containssubstantially more details and more accurately calculates a node-wide
balance when
Balance::claimable_amount_satoshis
are summed (#3212, #3247).ConfirmationTarget
has two new variants - aMaximumFeeEstimate
which canhelp to avoid spurious force-closes by ensuring we always accept feerates up
to this value from peers as sane and a
UrgentOnChainSweep
, replacingOnChainSweep
and only being used when the on-chain sweep is urgent (#3268).ChannelMonitor
s are no longer persisted after each block connection,instead spreading them out over a handful of blocks to reduce load spikes.
Note that this will increase the incidence of
ChannelMonitor
s that havedifferent best blocks on startup, requiring some additional chain replay
(but only on some
ChannelMonitor
s) on startup forListen
users (#2966).additional node metadata and is more extensible (#3098).
ChannelManager::send_payment_with_route
is now deprecated in favor of themuch easier to use
Channelmanager::send_payment
. Those who wish to manuallyselect the route such payments go over should do so by matching the
payment_id
passed tosend_payment
inRouter::find_route_with_id
(#3224)lightning-transaction-sync
now takes mostConfirm
s as a genericDeref
.You may need an explicit
as &(dyn Confirm)
to update existing code (#3101).the specific channel requested by the payment sender (#3127).
Event::PaymentFailed
is now used in place ofEvent::InvoiceRequestFailed
,holding an
Option
for the payment hash, which will beNone
when noinvoice has been received (#3192).
ChannelManager
now supports intercepting and manually payingBolt12Invoice
s, seeUserConfig::manually_handle_bolt12_invoices
(#3078).logger::Record
s now contain aPaymentHash
(#2930).ChainMonitor
no longer uses an opaqueMonitorUpdateId
, opting to reusethe
ChannelMonitorUpdate::update_id
instead. Note that you no longer haveto call
ChainMonitor::channel_monitor_updated
forChannelMonitorUpdateStatus::InProgress
updates to a monitor that werestarted without a
ChannelMonitorUpdate
(#2957).NodeAnnouncementInfo
is now an enum holding either a gossip message orthe important fields, reducing the memory usage of
NetworkGraph
(#3072).blinded path authentication (#3085, #3202).
ChannelManager
now supports funding with only a txid and output index, seeChannelManager::unsafe_manual_funding_transaction_generated
(#3024).paths (#3087).
OnionMessenger
now supports intercepting and re-forwarding onion messagesfor peers that are offline at the time of receipt when constructed with
new_with_offline_peer_interception
(#2973).Responder
whichcan be used to create a
ResponseInstruction
to better control how responsesare sent. The
ResponseInstruction
can also be converted toMessageSendInstructions
which can be passed toOnionMessenger
'ssend_onion_message
to respond asynchronously (#2907, #2996, #3263).OnionMessenger::process_pending_events_async
was added (#3060).Offer
/Refund
s are now compact when theyexpire relatively soon, making them somewhat smaller (#3011, #3080).
ChannelManager::force_close_*
now take a err msg to send to peers (#2889).ChannelDetails::is_public
has been renamed tois_announced
andChannelHandshakeConfig::announced_channel
toannounce_for_forwarding
toaddress various misconceptions about the purpose of announcement (#3257).
BlindedPath
s are now split intoBlindedMessagePath
s andBlindedPaymentPath
s andadvance_path_by_one
added to each (#3182).BlindedPaymentPath
now includes theBlindedPayInfo
(#3245).Offer
/Refund
builders no longer require a description, insteadallowing it to be set on the builder itself (#3018).
{Inbound,Outbound}HTLCState{,Details}
andChannelDetails
structs havemoved to the
ln::channel_state
module (#3089).Event::OpenChannelRequest
now containsparams
andis_announced
(#3019).Offer
andRefund
now implementReadable
(#2965).RecipientOnionFields
is now included inEvent::PaymentClaimed
(#3084).ClosureReason::HolderForceClosed::broadcasted_latest_txn
was added (#3107).EcdsaChannelSigner
no longer needs to beWriteable
and the supertraitWriteableEcdsaChannelSigner
has been removed (#3059).CustomMessageHandler::peer_{,dis}connected
were added (#3105).lightning_invoice::Description::as_inner()
was added (#3203).Bug Fixes
channel_update
messages are no longer extracted from failed payments andapplied to the network graph via
Event::PaymentPathFailed
, preventing anode along the path from identifying the sender of a payment (#3083).
that included a blinded path, cryptographic information from blinded paths
are now included in the invoice request verification (#3085, #3139, #3242).
a fixed value. This ensures no routes are generated that are unpayable when
sending HTLCs with custom TLVs, blinded paths, or metadata (#3026, #3156).
unannounced peers as introduction points in blinded paths. This addresses
issues where test networks were not usable for BOLT 12 due to failures to
find paths over private channels to LDK nodes. It will also enable creating
BOLT 12 offers for nodes with no local network graph (#3132).
and prevailing network feerates increase, LDK will now force-close
automatically to avoid being unable to claim our funds on-chain. In order to
reduce false-positives, it does so by comparing the channel's fee against the
minimum
ConfirmationTarget::MinAllowed{,Non}AnchorChannelRemoteFee
we'veseen over the past day (and do not force-close if we haven't been running for
a full day, #3037).
MonitorUpdatingPersister
did not readChannelMonitorUpdate
s whenarchiving a
ChannelMonitor
, causing the archivedChannelMonitor
to bemissing some updates. Those updates were not removed from the
KVStore
andmonitors being archived should have no pending updates as they were persisted
on each new block for some time before archiving (#3276).
CoinSelection
s selected for commitment transactions which did not contain achange output no longer result in broadcasting a non-standard transaction nor
in under-paying the target feerate (#3285). Note that such a transaction
would fail to propagate and LDK would have continued to bump the fee until a
different
CoinSelection
is used which did contain a change output.invoice_error
s from BOLT 12 recipients now fail payments (#3085, #3192).Event::ChannelClosed
and missingError
messages for peers when a bogus funding transaction is provided for abatch channel open (#3029).
RawBolt11Invoice::amount_pico_btc()
reachable viaBolt11Invoice::amount_milli_satoshis()
, resulting in a debug panic or bogusvalue for invoices with invalid values (#3032).
persistence, it is possible that the preimage for an MPP claim could fail to
be persisted in the
ChannelMonitor
for one or more MPP parts, resulting inonly some of the payment's value being claimed (#3120).
ChannelMonitorUpdate
s appearingafter a full
ChannelMonitor
persistence that already contained the sameupdate. This could have caused a panic on startup for users of the
MonitorUpdatingPersister
in rare cases after a crash (#3196).ChainMonitor
when new blocks appear,reducing the worst-case latency to see an
Event::SpendableOutputs
(#3033).OnionMessenger::get_update_future
was added, allowing it to wake thebackground processor to ensure
Event
s are processed quickly (#3194).CoinSelection
s overpaying the target feerate by more than 1% no longerleads to a debug assertion (#3285).
Backwards Compatibility
Offer
s created in prior versions are still valid but are at risk ofdeanonymization attacks allowing identification of the recipient node (#3139)
RecentPaymentDetails::AwaitingInvoice
will eventually time out after upgrade to 0.0.124 as any received invoice
will be considered invalid (#3139).
Refund
s created in prior version with non-emptyRefund::paths
areconsidered invalid by
ChannelManager
. Any attempts to claim them will beignored.
Refund
s without blinded paths are unaffected (#3139).impl_writeable_tlv_based_enum[_upgradable]
for tuplevariants has changed, only impacting LDK-external use of the macros (#3160).
Event::PaymentFailed
without a payment hash will deserialize to apayment hash of all-0s when downgrading (#3192).
Event::PaymentFailed
reasons may be mapped to similar reasons that wereavailable in previous versions on downgrade (#3192).
Performance Improvements
Silver 4116 (Skylake)).
lightning-block-sync
now much better avoids lock contention during parallelrequests for block data, speeding up gossip sync from multiple peers (#3197).
Node Compatibility
gossip_queries
feature for all peers. Since an updated CLN has now shipped which does not
require this, the workaround has been reverted (#3172).
allowing it to pay more compact offers generated by other nodes (#3017).
present (#3018).
channel_update
s that use as-yet-undefined flag bits (#3144).In total, this release features 312 files changed, 29853 insertions, 15480
deletions in 549 commits since 0.0.123 from 26 authors, in alphabetical order:
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.