diff --git a/CHANGELOG.md b/CHANGELOG.md index 04801919332..a51c5fda8bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# 0.2 - TODO: Add release date, 2025 - "Natively Asynchronous Splicing" +# 0.2 - Dec 2, 2025 - "Natively Asynchronous Splicing" ## API Updates @@ -40,11 +40,13 @@ pre-signed transactions, relying on anchor bumps instead. They also utilize the new TRUC + ephemeral dust policy in Bitcoin Core 29 to substantially improve the lightning security model. This requires having a path of Bitcoin - Core 29+ nodes between you and a miner for transactions to be mined. This - only works with LDK peers, and feature signaling may change in a future - version of LDK, breaking compatibility. This is negotiated automatically for - manually-accepted inbound channels and negotiated for outbound channels based - on `ChannelHandshakeConfig::negotiate_anchor_zero_fee_commitments`. + Core 29+ nodes between you and a miner for transactions to be mined. Bitcoin + Knots blocks these transactions by default, and is not recommended for use + with a lightning node. 0FC channels currently only work with LDK peers, and + feature signaling may change in a future version of LDK, breaking + compatibility. This is negotiated automatically for manually-accepted inbound + channels and negotiated for outbound channels based on + `ChannelHandshakeConfig::negotiate_anchor_zero_fee_commitments`. * `Event::BumpTransaction` is now always generated even if the transaction has sufficient fee. This allows you to manage transaction broadcasting more granularly for anchor channels (#4001). @@ -144,7 +146,9 @@ `ListProtocols` message (#3785). * A rare race which might lead `PeerManager` (and `lightning-net-tokio`) to stop reading from a peer until a new message is sent to that peer has been - fixed (#4168). + fixed. Note that this changed the semantics of the + `SocketDescriptor::send_data` method without changing its signature, check + that your implementation matches the new documentation (#4168). * The fields in `SocketAddress::OnionV3` are now correctly parsed, and the `Display` for such addresses is now lowercase (#4090). * `PeerManager` is now more conservative about disconnecting peers which aren't @@ -177,7 +181,55 @@ (#4045, #4046). * LDK now requires the `channel_type` feature in line with spec updates (#3896) -TODO release stats +In total, this release features 259 files changed, 114539 insertions, 45150 +deletions in 1628 commits since 0.1 from 36 authors, in alphabetical order: + + * Aditya Sharma + * Alec Chen + * Anonymous + * Anyitechs + * Arik Sosman + * Austin Mackillop + * Carla Kirk-Cohen + * Chuks Agbakuru + * Devrandom + * Duncan Dean + * Elias Rohrer + * Erick Cestari + * Fedeparma74 + * Fuyin + * Ian Slane + * Jeffrey Czyz + * Jesse de Wit + * Joost Jager + * Leo Nash + * Martin Saposnic + * Matt Corallo + * Matt Morehouse + * Maurice Poirrier Chuden + * Philip Kannegaard Hayes + * Prabhat Verma + * Valentine Wallace + * Vincenzo Palazzo + * Willem Van Lint + * Wilmer Paulino + * YI + * benthecarman + * elnosh + * moisesPompilio + * olegkubrakov + * optout + * shaavan + + +# 0.1.8 - Dec 2, 2025 - "Async Update Completion" + +## Bug Fixes + * In cases where an MPP payment is claimed while one channel is waiting on a + counterparty's `revoke_and_ack` message and the `revoke_and_ack` message is + received prior to the asynchronous completion of the MPP-claim + `ChannelMonitorUpdate`, the channel will no longer hang (#4236). + * Deserializing invalid `Duration`s can no longer panic (#4172). # 0.1.7 - Oct 21, 2025 - "Unstable Release CI" diff --git a/lightning-background-processor/Cargo.toml b/lightning-background-processor/Cargo.toml index a515604a112..ef0a9840613 100644 --- a/lightning-background-processor/Cargo.toml +++ b/lightning-background-processor/Cargo.toml @@ -24,14 +24,14 @@ std = ["lightning/std", "lightning-liquidity/std", "bitcoin-io/std", "bitcoin_ha bitcoin = { version = "0.32.2", default-features = false } bitcoin_hashes = { version = "0.14.0", default-features = false } bitcoin-io = { version = "0.1.2", default-features = false } -lightning = { version = "0.2.0", path = "../lightning", default-features = false } +lightning = { version = "0.3.0", path = "../lightning", default-features = false } lightning-rapid-gossip-sync = { version = "0.2.0", path = "../lightning-rapid-gossip-sync", default-features = false } lightning-liquidity = { version = "0.2.0", path = "../lightning-liquidity", default-features = false } possiblyrandom = { version = "0.2", path = "../possiblyrandom", default-features = false } [dev-dependencies] tokio = { version = "1.35", features = [ "macros", "rt", "rt-multi-thread", "sync", "time" ] } -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.3.0", path = "../lightning", features = ["_test_utils"] } lightning-invoice = { version = "0.34.0", path = "../lightning-invoice" } lightning-liquidity = { version = "0.2.0", path = "../lightning-liquidity", default-features = false, features = ["_test_utils"] } lightning-persister = { version = "0.2.0", path = "../lightning-persister" } diff --git a/lightning-block-sync/Cargo.toml b/lightning-block-sync/Cargo.toml index 2d992a53496..51b19e3901e 100644 --- a/lightning-block-sync/Cargo.toml +++ b/lightning-block-sync/Cargo.toml @@ -21,13 +21,13 @@ rpc-client = [ "serde_json", "chunked_transfer" ] [dependencies] bitcoin = "0.32.2" -lightning = { version = "0.2.0", path = "../lightning" } +lightning = { version = "0.3.0", path = "../lightning" } tokio = { version = "1.35", features = [ "io-util", "net", "time", "rt" ], optional = true } serde_json = { version = "1.0", optional = true } chunked_transfer = { version = "1.4", optional = true } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.3.0", path = "../lightning", features = ["_test_utils"] } tokio = { version = "1.35", features = [ "macros", "rt" ] } [lints] diff --git a/lightning-custom-message/Cargo.toml b/lightning-custom-message/Cargo.toml index c2feb5357ff..ba13aef35c4 100644 --- a/lightning-custom-message/Cargo.toml +++ b/lightning-custom-message/Cargo.toml @@ -17,7 +17,7 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] bitcoin = "0.32.2" -lightning = { version = "0.2.0", path = "../lightning" } +lightning = { version = "0.3.0", path = "../lightning" } [lints] workspace = true diff --git a/lightning-dns-resolver/Cargo.toml b/lightning-dns-resolver/Cargo.toml index 34961838029..44caf273ff2 100644 --- a/lightning-dns-resolver/Cargo.toml +++ b/lightning-dns-resolver/Cargo.toml @@ -10,7 +10,7 @@ edition = "2021" rust-version = "1.75" [dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false } +lightning = { version = "0.3.0", path = "../lightning", default-features = false } lightning-types = { version = "0.3.0", path = "../lightning-types", default-features = false } dnssec-prover = { version = "0.6", default-features = false, features = [ "std", "tokio" ] } tokio = { version = "1.0", default-features = false, features = ["rt"] } @@ -18,4 +18,4 @@ tokio = { version = "1.0", default-features = false, features = ["rt"] } [dev-dependencies] bitcoin = { version = "0.32" } tokio = { version = "1.0", default-features = false, features = ["macros", "time"] } -lightning = { version = "0.2.0", path = "../lightning", features = ["dnssec", "_test_utils"] } +lightning = { version = "0.3.0", path = "../lightning", features = ["dnssec", "_test_utils"] } diff --git a/lightning-liquidity/Cargo.toml b/lightning-liquidity/Cargo.toml index 3def0798436..2f83077cabc 100644 --- a/lightning-liquidity/Cargo.toml +++ b/lightning-liquidity/Cargo.toml @@ -22,7 +22,7 @@ backtrace = ["dep:backtrace"] _test_utils = [] [dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false } +lightning = { version = "0.3.0", path = "../lightning", default-features = false } lightning-types = { version = "0.3.0", path = "../lightning-types", default-features = false } lightning-invoice = { version = "0.34.0", path = "../lightning-invoice", default-features = false, features = ["serde"] } lightning-macros = { version = "0.2", path = "../lightning-macros" } @@ -35,7 +35,7 @@ serde_json = { version = "1.0", default-features = false, features = ["alloc"] } backtrace = { version = "0.3", optional = true } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false, features = ["_test_utils"] } +lightning = { version = "0.3.0", path = "../lightning", default-features = false, features = ["_test_utils"] } lightning-invoice = { version = "0.34.0", path = "../lightning-invoice", default-features = false, features = ["serde", "std"] } lightning-persister = { version = "0.2.0", path = "../lightning-persister", default-features = false } diff --git a/lightning-net-tokio/Cargo.toml b/lightning-net-tokio/Cargo.toml index f9a4abd500a..6c45f40e3c8 100644 --- a/lightning-net-tokio/Cargo.toml +++ b/lightning-net-tokio/Cargo.toml @@ -18,12 +18,12 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] bitcoin = "0.32.2" -lightning = { version = "0.2.0", path = "../lightning" } +lightning = { version = "0.3.0", path = "../lightning" } tokio = { version = "1.35", features = [ "rt", "sync", "net", "time" ] } [dev-dependencies] tokio = { version = "1.35", features = [ "macros", "rt", "rt-multi-thread", "sync", "net", "time" ] } -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.3.0", path = "../lightning", features = ["_test_utils"] } [lints] workspace = true diff --git a/lightning-persister/Cargo.toml b/lightning-persister/Cargo.toml index d62198f738a..e06803c6b89 100644 --- a/lightning-persister/Cargo.toml +++ b/lightning-persister/Cargo.toml @@ -20,7 +20,7 @@ tokio = ["dep:tokio"] [dependencies] bitcoin = "0.32.2" -lightning = { version = "0.2.0", path = "../lightning" } +lightning = { version = "0.3.0", path = "../lightning" } tokio = { version = "1.35", optional = true, default-features = false, features = ["rt-multi-thread"] } [target.'cfg(windows)'.dependencies] @@ -30,7 +30,7 @@ windows-sys = { version = "0.48.0", default-features = false, features = ["Win32 criterion = { version = "0.4", optional = true, default-features = false } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.3.0", path = "../lightning", features = ["_test_utils"] } bitcoin = { version = "0.32.2", default-features = false } tokio = { version = "1.35", default-features = false, features = ["macros"] } diff --git a/lightning-rapid-gossip-sync/Cargo.toml b/lightning-rapid-gossip-sync/Cargo.toml index 1ae9eaeaee2..b2cc623ab5b 100644 --- a/lightning-rapid-gossip-sync/Cargo.toml +++ b/lightning-rapid-gossip-sync/Cargo.toml @@ -15,7 +15,7 @@ default = ["std"] std = ["bitcoin-io/std", "bitcoin_hashes/std"] [dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false } +lightning = { version = "0.3.0", path = "../lightning", default-features = false } bitcoin = { version = "0.32.2", default-features = false } bitcoin_hashes = { version = "0.14.0", default-features = false } bitcoin-io = { version = "0.1.2", default-features = false } @@ -24,7 +24,7 @@ bitcoin-io = { version = "0.1.2", default-features = false } criterion = { version = "0.4", optional = true, default-features = false } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.3.0", path = "../lightning", features = ["_test_utils"] } [lints] workspace = true diff --git a/lightning-transaction-sync/Cargo.toml b/lightning-transaction-sync/Cargo.toml index c04f4ad344e..1a5a56212ba 100644 --- a/lightning-transaction-sync/Cargo.toml +++ b/lightning-transaction-sync/Cargo.toml @@ -33,7 +33,7 @@ electrum-rustls = ["electrum"] electrum-rustls-ring = ["_electrum", "electrum-client/use-rustls-ring"] [dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false, features = ["std"] } +lightning = { version = "0.3.0", path = "../lightning", default-features = false, features = ["std"] } lightning-macros = { version = "0.2", path = "../lightning-macros", default-features = false } bitcoin = { version = "0.32.2", default-features = false } futures = { version = "0.3", optional = true } @@ -41,7 +41,7 @@ esplora-client = { version = "0.12", default-features = false, optional = true } electrum-client = { version = "0.24.0", optional = true, default-features = false, features = ["proxy"] } [dev-dependencies] -lightning = { version = "0.2.0", path = "../lightning", default-features = false, features = ["std", "_test_utils"] } +lightning = { version = "0.3.0", path = "../lightning", default-features = false, features = ["std", "_test_utils"] } tokio = { version = "1.35.0", features = ["macros"] } [target.'cfg(not(target_os = "windows"))'.dev-dependencies] diff --git a/lightning/Cargo.toml b/lightning/Cargo.toml index 257c7596ac0..b3b597029da 100644 --- a/lightning/Cargo.toml +++ b/lightning/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning" -version = "0.2.0+git" +version = "0.3.0+git" authors = ["Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning/"