Commit 9876a5e
committed
Channel Splicing (feature 62/63)
Splicing allows spending the current funding transaction to replace it
with a new one that changes the capacity of the channel, allowing both
peers to add or remove funds to/from their channel balance.
Splicing takes place while a channel is quiescent, to ensure that both
peers have the same view of the current commitments.
We don't want channels to be unusable while waiting for transactions to
confirm, so channel operation returns to normal once the splice tx has
been signed and we're waiting for it to confirm. The channel can then
be used for payments, as long as those payments are valid for every
pending splice transactions. Splice transactions can be RBF-ed to speed
up confirmation.
Once one of the pending splice transactions confirms and reaches
acceptable depth, peers exchange `splice_locked` to discard the other
pending splice transactions and the previous funding transaction. The
confirmed splice transaction becomes the channel funding transaction.
Nodes then advertize this spliced channel to the network, so that nodes
keep routing payments through it without any downtime.1 parent 8f2908b commit 9876a5e
File tree
4 files changed
+1721
-34
lines changed- bolt02
4 files changed
+1721
-34
lines changed
0 commit comments