6.3 KiB
Release Notes
- Bug Fixes
- New Features
- Improvements
- Technical and Architectural Updates
- Contributors (Alphabetical Order)
Bug Fixes
-
Bitcoind outbound peer health checks now use
getnetworkinfo.connections_outinstead ofgetpeerinfo. The same PR also clarifies the ZMQ port-mismatch warnings so they no longer suggest that the connection failed. -
Fixed a bug that could be encountered during co-op closes whereby
ChanStatusCoopBroadcastedwas set before a close transaction actually existed. As a side effect, channels in shutdown negotiation now remain inListChannels(as inactive) until the close transaction is actually broadcast, andWaitingCloseChannel.ClosingTxis never empty. -
Fixed a bug where
ListChannelsreported 100%uptimefor channels whose peer was offline. The channel fitness store assumed a peer was online when it first started tracking it, but channels are loaded on startup regardless of peer connectivity. Uptime is now seeded from the peer's actual connection state. -
Fixed a bug in the sweeper whereby inputs that receive an extra budget from an aux sweeper (such as custom channel outputs, whose value is mostly carried off-chain) were filtered against their own budget alone. This could permanently exclude such inputs from sweeping even though their input set could comfortably pay its fees.
-
Fixed a bug in
GetNetworkInfowhere encountering an already-seen channel skipped the rest of that node's channels instead of just that channel, undercounting the reported network statistics such as total network capacity, channel count and max out degree.
New Features
Functional Enhancements
RPC Additions
-
The
routerrpc.EstimateRouteFeeRPC now supports restricting fee estimates to specific first-hop outgoing channels via the newoutgoing_chan_idsfield inRouteFeeRequest. -
A new
walletrpc.SubmitPackageRPC submits a package of related transactions (parents first, child last) to the chain backend via bitcoind'ssubmitpackage, allowing a zero-fee v3/TRUC parent to be accepted together with a fee-paying CPFP child.
lncli Additions
-
The
estimateroutefeecommand now supports restricting fee estimates to specific first-hop outgoing channels via the new--outgoing_chan_idflag. -
A new
wallet submitpackagecommand submits a package of hex-encoded transactions via the newSubmitPackageRPC.
Improvements
Functional Updates
RPC Updates
lncli Updates
Breaking Changes
Performance Improvements
Deprecations
Technical and Architectural Updates
BOLT Spec Updates
- The fundee now enforces the BOLT-02 bound on
push_msat, rejecting incomingopen_channelmessages wherepush_msatexceeds1000 * funding_satoshis. Oversized pushes were previously caught later in the reservation flow as a funder-balance-dust error; they now surface a clearer, spec-aligned error string up front.
BOLT 12 (Offers)
-
Initial BOLT 12 Offer codec: add a new
bolt12/package with the BOLT 12offerTLV codec and full reader/writer validation, plus a typedlnwire.BlindedPathintroduction-node codec shared by HTLC routing and onion messaging. -
BOLT 12 invoice request codec: add the
invoice_requestTLV message to thebolt12/package with structural reader/writer validation. This includes an observable RPC behavior change inSubscribeOnionMessages, ensuring a nil reply path remains nil in the RPC response rather than being emitted as an empty struct. -
BOLT 12 invoice codec: add the
invoiceTLV message to thebolt12/package with structural reader/writer validation. Schnorr signature verification is not yet performed; callers must verify the signature independently until the Merkle and signing primitives land. -
BOLT 12 invoice_error codec: add the
invoice_errorTLV message tobolt12/for onion-message replies.
Testing
Database
Code Health
Tooling and Documentation
dev.Dockerfilenow uses cache mounts to cache theGOMODCACHEandGOCACHEdirectories so that dependencies don't need to be re-downloaded and re-built every time the image is re-created. As a result of this change,dev.Dockerfilenow requires BuildKit to build. When usingdocker build, this can be enabled by setting the environmental variableDOCKER_BUILDKIT=1. BuildKit also does not unnecessarily rebuild images when the build context is a remote git repository because COPY layers are more smartly compared to cache.
Contributors (Alphabetical Order)
- bitromortac
- Boris Nagaev
- Erick Cestari
- Jared Tobin