Skip to content

Support RBF for interactively constructed transactions #3281

Open
@dunxen

Description

@dunxen

Overview

Support fee-bumping for interactively constructed transactions as described in the spec.

Each RBF attempt would need to double-spend any previous interactive transaction for that channel.

Also importantly from the spec,

Peers can use different values in tx_init_rbf.funding_output_contribution and tx_ack_rbf.funding_output_contribution from the amounts transmitted in open_channel2 and accept_channel2: they are allowed to change how much they wish to commit to the funding output.

so we'd need to ensure we update channel capacity and other relevant details to reflect a possible new funding output depending on which transaction confirms.

In dual-funding, since the channel ID is independent of the funding txid, all attempts can be mapped to that key and persisted in some "funding fee bumps" attempts map.

In splicing the same idea should apply as we already have an existing channel with a fixed channel ID.

This work at least depends on #3137.

Requirements

  • API for user-initiated fee-bumping attempts if channel initiator (only initiator can request an RBF attempt per the spec).
  • Each attempt must double-spend each previous attempt.
  • Tracking and persistence for every attempt.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions