-# 0.0.116rc1 - Jul 14, 2023 - "Anchoring the Roadmap"
+# 0.0.116 - Jul 21, 2023 - "Anchoring the Roadmap"
## API Updates
considered beta (#2367). Users who set
`ChannelHandshakeConfig::negotiate_anchors_zero_fee_htlc_tx` should be
prepared to handle the new `Event::BumpTransaction`, e.g. via the
- `BumpTransactionEventHandler` (#2089). Users who set the same and wish to
- accept inbound anchor-based channels must do so manually by setting
- `UserConfig::manually_accept_inbound_channels` (#2368).
+ `BumpTransactionEventHandler` (#2089). Note that in order to do so you must
+ ensure you always have a reserve of available unspent on-chain funds to use
+ for CPFP. LDK currently makes no attempt to ensure this for you.
+ * Users who set `ChannelHandshakeConfig::negotiate_anchors_zero_fee_htlc_tx`
+ and wish to accept inbound anchor-based channels must do so manually by
+ setting `UserConfig::manually_accept_inbound_channels` (#2368).
* Support forwarding and accepting HTLCs with a reduced amount has been added,
to support LSPs skimming a fee on the penultimate hop (#2319).
* BOLT11 and BOLT12 Invoice and related types have been renamed to include a
* `RouteHintHop::htlc_maximum_msat` is now enforced. Note that BOLT11 route
hints do not have such a field so this code is generally unused (#2305).
+## Security
+0.0.116 fixes a denial-of-service vulnerability which is reachable from
+untrusted input from channel counterparties if a 0-conf channel exists with
+that counterparty.
+ * A premature `announcement_signatures` message from a peer prior to a 0-conf
+ channel's funding transaction receiving any confirmations would panic in any
+ version since 0-conf channels were introduced (#2439).
+
+In total, this release features 142 files changed, 21033 insertions, 11066
+deletions in 327 commits from 21 authors, in alphabetical order:
+ * Alec Chen
+ * Andrei
+ * Antoine Riard
+ * Arik Sosman
+ * Chad Upjohn
+ * Daniel Granhão
+ * Duncan Dean
+ * Elias Rohrer
+ * Fred Walker
+ * Gleb Naumenko
+ * Jeffrey Czyz
+ * Martin Habovstiak
+ * Matt Corallo
+ * Tony Giorgio
+ * Valentine Wallace
+ * Vladimir Fomene
+ * Willem Van Lint
+ * Wilmer Paulino
+ * benthecarman
+ * ff
+ * henghonglee
+
+
# 0.0.115 - Apr 24, 2023 - "Rebroadcast the Bugfixes"
## API Updates
[package]
name = "lightning-background-processor"
-version = "0.0.116-rc1"
+version = "0.0.116"
authors = ["Valentine Wallace <vwallace@protonmail.com>"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
[features]
futures = [ ]
-std = ["lightning/std", "lightning-rapid-gossip-sync/std"]
+std = ["bitcoin/std", "lightning/std", "lightning-rapid-gossip-sync/std"]
+no-std = ["bitcoin/no-std", "lightning/no-std", "lightning-rapid-gossip-sync/no-std"]
default = ["std"]
[dependencies]
bitcoin = { version = "0.29.0", default-features = false }
-lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false }
-lightning-rapid-gossip-sync = { version = "0.0.116-rc1", path = "../lightning-rapid-gossip-sync", default-features = false }
+lightning = { version = "0.0.116", path = "../lightning", default-features = false }
+lightning-rapid-gossip-sync = { version = "0.0.116", path = "../lightning-rapid-gossip-sync", default-features = false }
[dev-dependencies]
tokio = { version = "1.14", features = [ "macros", "rt", "rt-multi-thread", "sync", "time" ] }
-lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
-lightning-invoice = { version = "0.24.0-rc1", path = "../lightning-invoice" }
-lightning-persister = { version = "0.0.116-rc1", path = "../lightning-persister" }
+lightning = { version = "0.0.116", path = "../lightning", features = ["_test_utils"] }
+lightning-invoice = { version = "0.24.0", path = "../lightning-invoice" }
+lightning-persister = { version = "0.0.116", path = "../lightning-persister" }
[package]
name = "lightning-block-sync"
-version = "0.0.116-rc1"
+version = "0.0.116"
authors = ["Jeffrey Czyz", "Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
[dependencies]
bitcoin = "0.29.0"
-lightning = { version = "0.0.116-rc1", path = "../lightning" }
+lightning = { version = "0.0.116", path = "../lightning" }
tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true }
serde_json = { version = "1.0", optional = true }
chunked_transfer = { version = "1.4", optional = true }
[dev-dependencies]
-lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
+lightning = { version = "0.0.116", path = "../lightning", features = ["_test_utils"] }
tokio = { version = "1.14", features = [ "macros", "rt" ] }
[package]
name = "lightning-custom-message"
-version = "0.0.116-rc1"
+version = "0.0.116"
authors = ["Jeffrey Czyz"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
[dependencies]
bitcoin = "0.29.0"
-lightning = { version = "0.0.116-rc1", path = "../lightning" }
+lightning = { version = "0.0.116", path = "../lightning" }
[package]
name = "lightning-invoice"
description = "Data structures to parse and serialize BOLT11 lightning invoices"
-version = "0.24.0-rc1"
+version = "0.24.0"
authors = ["Sebastian Geisler <sgeisler@wh2.tu-dresden.de>"]
documentation = "https://docs.rs/lightning-invoice/"
license = "MIT OR Apache-2.0"
[dependencies]
bech32 = { version = "0.9.0", default-features = false }
-lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false }
+lightning = { version = "0.0.116", path = "../lightning", default-features = false }
secp256k1 = { version = "0.24.0", default-features = false, features = ["recovery", "alloc"] }
num-traits = { version = "0.2.8", default-features = false }
bitcoin_hashes = { version = "0.11", default-features = false }
bitcoin = { version = "0.29.0", default-features = false }
[dev-dependencies]
-lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false, features = ["_test_utils"] }
+lightning = { version = "0.0.116", path = "../lightning", default-features = false, features = ["_test_utils"] }
hex = "0.4"
serde_json = { version = "1"}
[package]
name = "lightning-net-tokio"
-version = "0.0.116-rc1"
+version = "0.0.116"
authors = ["Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"
[dependencies]
bitcoin = "0.29.0"
-lightning = { version = "0.0.116-rc1", path = "../lightning" }
+lightning = { version = "0.0.116", path = "../lightning" }
tokio = { version = "1.0", features = [ "io-util", "rt", "sync", "net", "time" ] }
[dev-dependencies]
tokio = { version = "1.14", features = [ "io-util", "macros", "rt", "rt-multi-thread", "sync", "net", "time" ] }
-lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
+lightning = { version = "0.0.116", path = "../lightning", features = ["_test_utils"] }
[package]
name = "lightning-persister"
-version = "0.0.116-rc1"
+version = "0.0.116"
authors = ["Valentine Wallace", "Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"
[dependencies]
bitcoin = "0.29.0"
-lightning = { version = "0.0.116-rc1", path = "../lightning" }
+lightning = { version = "0.0.116", path = "../lightning" }
libc = "0.2"
[target.'cfg(windows)'.dependencies]
criterion = { version = "0.4", optional = true, default-features = false }
[dev-dependencies]
-lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
+lightning = { version = "0.0.116", path = "../lightning", features = ["_test_utils"] }
[package]
name = "lightning-rapid-gossip-sync"
-version = "0.0.116-rc1"
+version = "0.0.116"
authors = ["Arik Sosman <git@arik.io>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning"
std = ["lightning/std"]
[dependencies]
-lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false }
+lightning = { version = "0.0.116", path = "../lightning", default-features = false }
bitcoin = { version = "0.29.0", default-features = false }
[target.'cfg(ldk_bench)'.dependencies]
criterion = { version = "0.4", optional = true, default-features = false }
[dev-dependencies]
-lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
+lightning = { version = "0.0.116", path = "../lightning", features = ["_test_utils"] }
[package]
name = "lightning-transaction-sync"
-version = "0.0.116-rc1"
+version = "0.0.116"
authors = ["Elias Rohrer"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
async-interface = []
[dependencies]
-lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false }
+lightning = { version = "0.0.116", path = "../lightning", default-features = false }
bitcoin = { version = "0.29.0", default-features = false }
bdk-macros = "0.6"
futures = { version = "0.3", optional = true }
reqwest = { version = "0.11", optional = true, default-features = false, features = ["json"] }
[dev-dependencies]
-lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["std"] }
+lightning = { version = "0.0.116", path = "../lightning", features = ["std"] }
electrsd = { version = "0.22.0", features = ["legacy", "esplora_a33e97e1", "bitcoind_23_0"] }
electrum-client = "0.12.0"
tokio = { version = "1.14.0", features = ["full"] }
[package]
name = "lightning"
-version = "0.0.116-rc1"
+version = "0.0.116"
authors = ["Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"