Expose new BumpChannelClose event for channels with anchor outputs (on-chain)

https://github.com/lightningdevkit/rust-lightning/pull/1689

Host: ariard  -  PR author: wpaulino

The PR branch HEAD was 0e079cd at the time of this review club meeting.

Notes

  • LDK currently supports the legacy update_fee protocol to adjust the feerate of the pre-signed transaction in function of mempool congestions.
  • #1689 brings the first pieces for the anchor output support protocol, aiming to offer dynamic fee-bumping by leveraging Child-Pay-For-Parent to LDK users.
  • A new event BumpChannelClose is introduced to signal to users the necessity to attach a fee-bumping CPFP to a pending commitment transactions, waiting block inclusion.

Questions

  1. How the update_fee mechanism is working ? What are the limits of this fee-bumping mechanism with pre-signed Lightning transactions (e.g additional fee buffer) ?
  2. How the anchor output idea aimed to improve fee-prediction issues in contracting applications like Lightning ?
  3. What is the role of the mempool in a full-node implementation and why it was necessary to introduce the carve-out ? What are the limits of the carve-out ?
  4. Additionally of the mempool acceptance changes, why the scripts of the anchor output transactions were modified ?
  5. How the to_local_anchor and to_remote_anchor outputs scripts are derivable by a third-party and why it has been designed that way ?
  6. Why option_zero_htlc_tx_fee was introduced ?