Skip to content

v2.0.0-rc.5

Pre-release
Pre-release

Choose a tag to compare

@bennyhodl bennyhodl released this 23 Sep 15:26
· 31 commits to master since this release
c0a88cd

DLC Dev Kit v2.0.0-rc.5

Summary

This release candidate removes the last DLC channel code from the workspace. The channel manager was removed in an earlier release. With this release, the channel transaction builders in ddk-dlc and the channel wire messages in ddk-messages are also removed. The release also pins one Rust toolchain for all builds, declares a minimum supported Rust version (MSRV), and stops committing the generated gRPC code in ddk-node.

All workspace crates are released at 2.0.0-rc.5: ddk, ddk-manager, ddk-dlc, ddk-messages, ddk-trie, ddk-payouts, ddk-node, and kormir.

⚠️ Breaking Changes

DLC channel module removed from ddk-dlc (3023a10)

  • The dlc::channel module (dlc/src/channel) is deleted, including all of its channel transaction builders.
  • create_collaborative_close_transaction moved from dlc::channel to the dlc crate root, beside the other transaction builders. This is the only function from that module that was still in use: the manager uses it for the cooperative close of a contract. Change your imports:
    // Before
    use dlc::channel::create_collaborative_close_transaction;
    // After
    use dlc::create_collaborative_close_transaction;
  • The var-int helper in dlc::util is removed. Only the channel module used it.

Channel wire messages removed from ddk-messages (3023a10)

  • dlc-messages/src/channel.rs and the channel message type IDs in types.rs are deleted.
  • The channel variants are removed from the Message enum. Message now has only four variants: Offer, Accept, Sign, and Close. If your code does an exhaustive match on Message, remove the channel arms.
  • The LDK message handler no longer has read arms for channel message types.

Minimum supported Rust version is now declared (71fa512)

  • The workspace now sets rust-version = "1.88". Cargo refuses to build these crates with an older compiler.

Security Fixes

None in this release.

New Features

None in this release.

Bug Fixes

None in this release.

Other Notable Changes

Manager and ddk cleanup (3023a10)

  • ddk-manager: the unreachable "channel message" arm in the manager is removed. The two call sites now use dlc::create_collaborative_close_transaction from its new location.
  • ddk: the message display helper in ddk/src/util/ser.rs now names the Close variant explicitly.

One pinned toolchain for all builds (71fa512)

  • Before this change, CI used four different toolchains: 1.88.0 for build and test, 1.89.0 for clippy, floating stable for the audit, and floating nightly for rustfmt. The nightly of 2026-09-22 changed the block comment layout and broke the format job, although nothing in the repository had changed.
  • A new rust-toolchain.toml pins the toolchain to 1.98.0 with the clippy and rustfmt components. All local builds and all CI jobs use this file.
  • The CI check job is replaced by an msrv job. It reads rust-version from Cargo.toml and runs cargo check with that compiler.
  • The lints that clippy 1.98 raises are fixed in ddk-manager, ddk, ddk-trie, and ddk-dlc.

Generated gRPC code in ddk-node (71fa512)

  • The gRPC code is now generated from ddkrpc.proto into OUT_DIR at build time and included in the ddkrpc module. The public module path ddk_node::ddkrpc does not change.
  • The committed ddk-node/src/ddkrpc.rs (1,820 lines) is removed. The .rustfmt.toml that hid that file from rustfmt is also removed, because it was the only reason the format job needed nightly.

Upgrading

  • Contracts: No on-disk changes to storage or contract serialization. Contracts that you stored with earlier releases continue to load and settle. The cooperative close path uses the same create_collaborative_close_transaction logic as before, but from a different module path.
  • Wire protocol: The Offer, Accept, Sign, and Close messages have no changes and continue to work with peers on earlier releases. Only the channel message types are removed. A peer that sends a channel message is no longer read as a channel message.
  • Code changes:
    1. Change dlc::channel::create_collaborative_close_transaction to dlc::create_collaborative_close_transaction.
    2. Remove all uses of dlc::channel and the channel types from dlc_messages.
    3. Remove the channel arms from exhaustive matches on dlc_messages::Message.
    4. Make sure that your compiler is Rust 1.88 or newer.

Installation

Add DDK to your Cargo.toml:

[dependencies]
ddk = "2.0.0-rc.5"

Or use cargo:

cargo add ddk@2.0.0-rc.5

Full Changelog: v2.0.0-rc.4...v2.0.0-rc.5