Files
palladum-lightning/openingd/dualopend_wire.csv
niftynei 31e3bdb42d df-spec: consolidate dual-funding patches, update feerate protocol
We consolidate to the latest/singular RFC patch for dual-funding, so
there's just a single patchfile for the change. Plus we move back to the
opener setting the desired feerate, the accepter merely declines to
participate if they disagree with the set rate.
2021-03-09 14:55:05 +10:30

9.2 KiB

1#include <bitcoin/chainparams.h>
2#include <bitcoin/psbt.h>
3#include <common/cryptomsg.h>
4#include <common/channel_config.h>
5#include <common/channel_id.h>
6#include <common/derive_basepoints.h>
7#include <common/features.h>
8#include <common/fee_states.h>
9#include <common/htlc_wire.h>
10#include <common/penalty_base.h>
11#include <common/per_peer_state.h>
12msgtypedualopend_init7000
13# Which network are we configured for?
14msgdatadualopend_initchainparamschainparams
15msgdatadualopend_initour_feature_setfeature_set
16msgdatadualopend_inittheir_init_features_lenu16
17msgdatadualopend_inittheir_init_featuresu8their_init_features_len
18# Base configuration we'll offer
19msgdatadualopend_initour_configchannel_config
20# Minimum/maximum configuration values we'll accept
21msgdatadualopend_initmax_to_self_delayu32
22msgdatadualopend_initmin_effective_htlc_capacity_msatamount_msat
23msgdatadualopend_initppsper_peer_state
24msgdatadualopend_initour_basepointsbasepoints
25msgdatadualopend_initour_funding_pubkeypubkey
26# Constraints in case the other end tries to open a channel.
27msgdatadualopend_initminimum_depthu32
28# Optional msg to send.
29msgdatadualopend_initlenu16
30msgdatadualopend_initmsgu8len
31# master-dualopend: peer has reconnected
32msgtypedualopend_reinit7001
33msgdatadualopend_reinitchainparamschainparams
34msgdatadualopend_reinitour_feature_setfeature_set
35msgdatadualopend_reinittheir_init_features_lenu16
36msgdatadualopend_reinittheir_init_featuresu8their_init_features_len
37msgdatadualopend_reinitour_configchannel_config
38msgdatadualopend_reinittheir_configchannel_config
39msgdatadualopend_reinitchannel_idchannel_id
40msgdatadualopend_reinitmax_to_self_delayu32
41msgdatadualopend_reinitmin_effective_htlc_capacity_msatamount_msat
42msgdatadualopend_reinitppsper_peer_state
43msgdatadualopend_reinitour_basepointsbasepoints
44msgdatadualopend_reinitour_funding_pubkeypubkey
45msgdatadualopend_reinittheir_funding_pubkeypubkey
46msgdatadualopend_reinitminimum_depthu32
47msgdatadualopend_reinitfunding_txidbitcoin_txid
48msgdatadualopend_reinitfunding_txoutu16
49msgdatadualopend_reinitorignal_feerate_per_kw_fundingu32
50msgdatadualopend_reinitmost_recent_feerate_per_kw_fundingu32
51msgdatadualopend_reinitfunding_satoshiamount_sat
52msgdatadualopend_reinitour_fundingamount_msat
53msgdatadualopend_reinittheir_basepointsbasepoints
54msgdatadualopend_reinitremote_per_commitpubkey
55msgdatadualopend_reinitfunding_psbtwally_psbt
56msgdatadualopend_reinitopenerenum side
57msgdatadualopend_reinitlocal_funding_lockedbool
58msgdatadualopend_reinitremote_funding_lockedbool
59msgdatadualopend_reinitsend_shutdownbool
60msgdatadualopend_reinitremote_shutdown_receivedbool
61msgdatadualopend_reinitlocal_shutdown_lenu16
62msgdatadualopend_reinitlocal_shutdown_scriptpubkeyu8local_shutdown_len
63msgdatadualopend_reinitremote_shutdown_lenu16
64msgdatadualopend_reinitremote_shutdown_scriptpubkeyu8remote_shutdown_len
65msgdatadualopend_reinitremote_funding_sigs_receivedbool
66msgdatadualopend_reinitfee_statesfee_states
67msgdatadualopend_reinitchannel_flagsu8
68# Optional msg to send.
69msgdatadualopend_reinitlenu16
70msgdatadualopend_reinitmsgu8len
71# dualopend->master: they offered channelshould we continue?
72msgtypedualopend_got_offer7005
73msgdatadualopend_got_offerchannel_idchannel_id
74msgdatadualopend_got_offeropener_fundingamount_sat
75msgdatadualopend_got_offerdust_limit_satoshisamount_sat
76msgdatadualopend_got_offermax_htlc_value_in_flight_msatamount_msat
77msgdatadualopend_got_offerhtlc_minimum_msatamount_msat
78msgdatadualopend_got_offerfeerate_per_kw_fundingu32
79msgdatadualopend_got_offerfeerate_per_kw_commitmentu32
80msgdatadualopend_got_offerto_self_delayu16
81msgdatadualopend_got_offermax_accepted_htlcsu16
82msgdatadualopend_got_offerchannel_flagsu8
83msgdatadualopend_got_offerlocktimeu32
84msgdatadualopend_got_offershutdown_lenu16
85msgdatadualopend_got_offershutdown_scriptpubkeyu8shutdown_len
86# master->dualopend: reply back with our first funding info/contribs
87msgtypedualopend_got_offer_reply7105
88msgdatadualopend_got_offer_replyaccepter_fundingamount_sat
89msgdatadualopend_got_offer_replypsbtwally_psbt
90msgdatadualopend_got_offer_replyshutdown_lenu16
91msgdatadualopend_got_offer_replyour_shutdown_scriptpubkey?u8shutdown_len
92# dualopend->master: they offered a RBFshould we continue?
93msgtypedualopend_got_rbf_offer7500
94msgdatadualopend_got_rbf_offerchannel_idchannel_id
95msgdatadualopend_got_rbf_offertheir_fundingamount_sat
96msgdatadualopend_got_rbf_offerfunding_feerate_per_kwu32
97msgdatadualopend_got_rbf_offerlocktimeu32
98# master->dualopend: reply back with our funding info/contribs
99msgtypedualopend_got_rbf_offer_reply7505
100msgdatadualopend_got_rbf_offer_replyour_fundingamount_sat
101msgdatadualopend_got_rbf_offer_replypsbtwally_psbt
102# dualopend->master: is this a valid RBF candidate transaction?
103msgtypedualopend_rbf_validate7506
104msgdatadualopend_rbf_validateproposed_funding_psbtwally_psbt
105# master->dualopend: this is a valid RBF candidate transaction
106msgtypedualopend_rbf_valid7507
107# master->dualopend: attempt an RBF
108msgtypedualopend_rbf_init7509
109msgdatadualopend_rbf_initour_fundingamount_sat
110msgdatadualopend_rbf_initpsbtwally_psbt
111# dualopend->master: ready to commit channel open to database and
112# get some signatures for the funding_tx.
113msgtypedualopend_commit_rcvd7007
114msgdatadualopend_commit_rcvdtheir_configchannel_config
115msgdatadualopend_commit_rcvdremote_first_commitbitcoin_tx
116msgdatadualopend_commit_rcvdpbase?penalty_base
117msgdatadualopend_commit_rcvdfirst_commit_sigbitcoin_signature
118msgdatadualopend_commit_rcvdpsbtwally_psbt
119msgdatadualopend_commit_rcvdrevocation_basepointpubkey
120msgdatadualopend_commit_rcvdpayment_basepointpubkey
121msgdatadualopend_commit_rcvdhtlc_basepointpubkey
122msgdatadualopend_commit_rcvddelayed_payment_basepointpubkey
123msgdatadualopend_commit_rcvdtheir_per_commit_pointpubkey
124msgdatadualopend_commit_rcvdremote_fundingkeypubkey
125msgdatadualopend_commit_rcvdfunding_txidbitcoin_txid
126msgdatadualopend_commit_rcvdfunding_txoutu16
127msgdatadualopend_commit_rcvdfunding_satoshisamount_sat
128msgdatadualopend_commit_rcvdour_funding_satsamount_sat
129msgdatadualopend_commit_rcvdchannel_flagsu8
130msgdatadualopend_commit_rcvdfeerate_per_kw_fundingu32
131msgdatadualopend_commit_rcvdfeerate_per_kw_commitmentu32
132msgdatadualopend_commit_rcvdlocal_shutdown_lenu16
133msgdatadualopend_commit_rcvdlocal_shutdown_scriptpubkeyu8local_shutdown_len
134msgdatadualopend_commit_rcvdremote_shutdown_lenu16
135msgdatadualopend_commit_rcvdremote_shutdown_scriptpubkeyu8remote_shutdown_len
136# dualopend->master: peer updated the psbt
137msgtypedualopend_psbt_changed7107
138msgdatadualopend_psbt_changedchannel_idchannel_id
139msgdatadualopend_psbt_changedfunding_serialu64
140msgdatadualopend_psbt_changedpsbtwally_psbt
141# master->dualopend: we updated the psbt
142msgtypedualopend_psbt_updated7108
143msgdatadualopend_psbt_updatedpsbtwally_psbt
144# master->dualopend: fail this channel open
145msgtypedualopend_fail7003
146msgdatadualopend_failreasonwirestring
147# master->dualopend: helloI'd like to start a channel open
148msgtypedualopend_opener_init7200
149msgdatadualopend_opener_initpsbtwally_psbt
150msgdatadualopend_opener_initfunding_amountamount_sat
151msgdatadualopend_opener_initlocal_shutdown_lenu16
152msgdatadualopend_opener_initlocal_shutdown_scriptpubkeyu8local_shutdown_len
153msgdatadualopend_opener_initfeerate_per_kwu32
154msgdatadualopend_opener_initfeerate_per_kw_fundingu32
155msgdatadualopend_opener_initchannel_flagsu8
156# dualopend->master received tx_sigs from peer
157msgtypedualopend_funding_sigs7010
158msgdatadualopend_funding_sigssigned_psbtwally_psbt
159# master->dualopend send our tx_sigs to peer
160msgtypedualopend_send_tx_sigs7011
161msgdatadualopend_send_tx_sigssigned_psbtwally_psbt
162# dualopend->master tx sigs transmitted to peer
163msgtypedualopend_tx_sigs_sent7012
164# dualopend->peer peer locked channel
165msgtypedualopend_peer_locked7018
166msgdatadualopend_peer_lockedremote_per_commitpubkey
167# dualopend->master this channel has been locked
168msgtypedualopend_channel_locked7019
169msgdatadualopend_channel_lockedppsper_peer_state
170# master->dualopend funding reached depth; tell peer
171msgtypedualopend_depth_reached7020
172msgdatadualopend_depth_reacheddepthu32
173# Tell peer to shut down channel.
174msgtypedualopend_send_shutdown7023
175msgdatadualopend_send_shutdownshutdown_scriptpubkey_lenu16
176msgdatadualopend_send_shutdownshutdown_scriptpubkeyu8shutdown_scriptpubkey_len
177# Peer told us that channel is shutting down
178msgtypedualopend_got_shutdown7024
179msgdatadualopend_got_shutdownscriptpubkey_lenu16
180msgdatadualopend_got_shutdownscriptpubkeyu8scriptpubkey_len
181# Peer presented proof it was from the future.
182msgtypedualopend_fail_fallen_behind1028
183# Shutdown is completeready for closing negotiation. + peer_fd & gossip_fd.
184msgtypedualopend_shutdown_complete7025
185msgdatadualopend_shutdown_completeper_peer_stateper_peer_state
186# master -> dualopend: do you have a memleak?
187msgtypedualopend_dev_memleak7033
188msgtypedualopend_dev_memleak_reply7133
189msgdatadualopend_dev_memleak_replyleakbool