# Preliminary V2 Channel Establishment and Splicing Diagrams These are preliminary sketches for review. Will make pretty and add to https://gitlab.com/lightning-signer/docs/-/blob/master/seq-diagrams/README.md when they are mostly correct ... ## Refs | | PR | Fork | | -------- | -------- | -------- | | Dual Funding | [BOLTS#851](https://github.com/lightning/bolts/pull/851) | https://github.com/niftynei/lightning-rfc/tree/nifty/dual-fund | | Splicing | [BOLTS#863](https://github.com/lightning/bolts/pull/863) | https://github.com/rustyrussell/lightning-rfc/tree/guilt/splice | ## Sketches ``` TX COLLABORATION +-------+ +-------+ | |--(1)- tx_add_input ---->| | | |<-(2)- tx_complete ------| | | |--(3)- tx_add_output --->| | | |<-(4)- tx_complete ------| | | |--(5)- tx_add_input ---->| | | A |<-(6)- tx_add_input -----| B | | |--(7)- tx_remove_output >| | | |<-(8)- tx_add_output ----| | | |--(9)- tx_complete ----->| | | |<-(10) tx_complete ------| | +-------+ +-------+ ``` ``` V2 CHANNEL ESTABLISH +-------+ +-------+ NewChannel | |--(1)--- open_channel2 ----->| | NewChannel | |<-(2)--- accept_channel2 -----| | | | | | | | <tx collaboration> | | SetupChannel | |<--- <mutual tx_complete> --->| | SetupChannel | | | | SignCprtCommitment | |--(3)-- commitment_signed -->| | ValidateHldrCommit ValidateHldrCommit | |<-(4)-- commitment_signed ---| | SignCprtCommitment | A | | B | | |<-(5)-- tx_signatures -------| | SignOnchainTx SignOnchainTx | |--(6)-- tx_signatures ------>| | | | | | FUNDING RBF'D | | | | | |--(a)--- tx_init_rbf -------->| | | |<-(b)--- tx_ack_rbf ----------| | | | | | | | <tx rbf collaboration> | | SetupChannel | |<--- <mutual tx_complete> --->| | SetupChannel | | | | SignCprtCommitment | |--(c)-- commitment_signed -->| | ValidateHldrCommit ValidateHldrCommit | |<-(d)-- commitment_signed ---| | SignCprtCommitment | | | | | |<-(e)-- tx_signatures -------| | SignOnchainTx SignOnchainTx | |--(f)-- tx_signatures ------>| | | | | | CHANNEL READY | | | | CheckOutpoint | |--(7)--- channel_ready ----->| | CheckOutpoint | | | | LockOutpoint LockOutpoint | |<-(8)--- channel_ready ------| | ``` ``` SPLICE INITIATED | | | | | |--(1)--- splice ------------->| | | |<-(2)--- splice_ack ----------| | | | | | | | <tx collaboration> | | SetupChannel | |<--- <mutual tx_complete> --->| | SetupChannel | | | | SignCprtCommitment | |--(3)-- commitment_signed -->| | ValidateHldrCommit ValidateHldrCommit | |<-(4)-- commitment_signed ---| | SignCprtCommitment | A | | B | | |<-(5)-- tx_signatures -------| | SignOnchainTx* SignOnchainTx* | |--(6)-- tx_signatures ------>| | | | | | SPLICE RBF'D | | | | | |--(a)--- tx_init_rbf -------->| | | |<-(b)--- tx_ack_rbf ----------| | | | | | | | <tx rbf collaboration> | | SetupChannel | |<--- <mutual tx_complete> --->| | SetupChannel | | | | SignCprtCommitment | |--(c)-- commitment_signed -->| | ValidateHldrCommit ValidateHldrCommit | |<-(d)-- commitment_signed ---| | SignCprtCommitment | | | | | |<-(e)-- tx_signatures -------| | SignOnchainTx* SignOnchainTx* | |--(f)-- tx_signatures ------>| | | | | | OPERATION BEFORE LOCKED | |--(A)---- update_add_htlc --->| | | |--(B)---- update_add_htlc --->| | | |<-(C)---- update_add_htlc ----| | | | | | N+1 SignCprtCommitment | |--(D)- commitment_signed(s) ->| | N+1 ValidateHldrCommit ValidateCprtRevocation | A |<-(E)---- revoke_and_ack -----| B | | | | | N+1 ValidateHldrCommit | |<-(F)- commitment_signed(s) --| | N+1 SignCprtCommitment | |--(G)---- revoke_and_ack ---->| | ValidateCprtRevocation | | | | N+1 SignCprtCommitment | |--(H)- commitment_signed(s) ->| | N+1 ValidateHldrCommit ValidateCprtRevocation | |<-(I)---- revoke_and_ack -----| | | | | | SPLICE LOCKED | | | | CheckOutpoint | |--(7)--- splice_locked ----->| | CheckOutpoint | | | | LockOutpoint LockOutpoint | |<-(8)--- splice_locked ------| | ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up