core-lightning/channeld/channel_wire.csv
Rusty Russell d9fc99ea39 channeld: simplify loading of pre-existing HTLCs.
We currently abuse the added_htlc and failed_htlc messages to tell channeld
about existing htlcs when it restarts.  It's clearer to have an explicit
'existing_htlc' type which contains all the information for this case.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2020-04-04 16:08:49 +10:30

9.1 KiB

1#include <common/cryptomsg.h>
2#include <common/channel_config.h>
3#include <common/derive_basepoints.h>
4#include <common/features.h>
5#include <common/fee_states.h>
6#include <common/per_peer_state.h>
7# Begin! (passes gossipd-client fd)
8msgtype,channel_init,1000
9msgdata,channel_init,chainparams,chainparams,
10msgdata,channel_init,our_features,feature_set,
11msgdata,channel_init,funding_txid,bitcoin_txid,
12msgdata,channel_init,funding_txout,u16,
13msgdata,channel_init,funding_satoshi,amount_sat,
14msgdata,channel_init,minimum_depth,u32,
15msgdata,channel_init,our_config,channel_config,
16msgdata,channel_init,their_config,channel_config,
17msgdata,channel_init,fee_states,fee_states,
18msgdata,channel_init,feerate_min,u32,
19msgdata,channel_init,feerate_max,u32,
20msgdata,channel_init,first_commit_sig,bitcoin_signature,
21msgdata,channel_init,per_peer_state,per_peer_state,
22msgdata,channel_init,remote_fundingkey,pubkey,
23msgdata,channel_init,remote_basepoints,basepoints,
24msgdata,channel_init,remote_per_commit,pubkey,
25msgdata,channel_init,old_remote_per_commit,pubkey,
26msgdata,channel_init,funder,enum side,
27msgdata,channel_init,fee_base,u32,
28msgdata,channel_init,fee_proportional,u32,
29msgdata,channel_init,local_msatoshi,amount_msat,
30msgdata,channel_init,our_basepoints,basepoints,
31msgdata,channel_init,our_funding_pubkey,pubkey,
32msgdata,channel_init,local_node_id,node_id,
33msgdata,channel_init,remote_node_id,node_id,
34msgdata,channel_init,commit_msec,u32,
35msgdata,channel_init,cltv_delta,u16,
36msgdata,channel_init,last_was_revoke,bool,
37msgdata,channel_init,num_last_sent_commit,u16,
38msgdata,channel_init,last_sent_commit,changed_htlc,num_last_sent_commit
39msgdata,channel_init,next_index_local,u64,
40msgdata,channel_init,next_index_remote,u64,
41msgdata,channel_init,revocations_received,u64,
42msgdata,channel_init,next_htlc_id,u64,
43msgdata,channel_init,num_existing_htlcs,u16,
44msgdata,channel_init,htlcs,existing_htlc,num_existing_htlcs
45msgdata,channel_init,local_funding_locked,bool,
46msgdata,channel_init,remote_funding_locked,bool,
47msgdata,channel_init,funding_short_id,short_channel_id,
48msgdata,channel_init,reestablish,bool,
49msgdata,channel_init,send_shutdown,bool,
50msgdata,channel_init,remote_shutdown_received,bool,
51msgdata,channel_init,final_scriptpubkey_len,u16,
52msgdata,channel_init,final_scriptpubkey,u8,final_scriptpubkey_len
53msgdata,channel_init,flags,u8,
54msgdata,channel_init,init_peer_pkt_len,u16,
55msgdata,channel_init,init_peer_pkt,u8,init_peer_pkt_len
56msgdata,channel_init,reached_announce_depth,bool,
57msgdata,channel_init,last_remote_secret,secret,
58msgdata,channel_init,flen,u16,
59msgdata,channel_init,their_features,u8,flen
60msgdata,channel_init,upfront_shutdown_script_len,u16,
61msgdata,channel_init,upfront_shutdown_script,u8,upfront_shutdown_script_len
62msgdata,channel_init,remote_ann_node_sig,?secp256k1_ecdsa_signature,
63msgdata,channel_init,remote_ann_bitcoin_sig,?secp256k1_ecdsa_signature,
64msgdata,channel_init,option_static_remotekey,bool,
65msgdata,channel_init,dev_fast_gossip,bool,
66msgdata,channel_init,dev_fail_process_onionpacket,bool,
67# master->channeld funding hit new depth(funding locked if >= lock depth)
68msgtype,channel_funding_depth,1002
69msgdata,channel_funding_depth,short_channel_id,?short_channel_id,
70msgdata,channel_funding_depth,depth,u32,
71# Tell channel to offer this htlc
72msgtype,channel_offer_htlc,1004
73msgdata,channel_offer_htlc,amount_msat,amount_msat,
74msgdata,channel_offer_htlc,cltv_expiry,u32,
75msgdata,channel_offer_htlc,payment_hash,sha256,
76msgdata,channel_offer_htlc,onion_routing_packet,u8,1366
77# Reply; synchronous since IDs have to increment.
78msgtype,channel_offer_htlc_reply,1104
79msgdata,channel_offer_htlc_reply,id,u64,
80# Empty failure message means success.
81msgdata,channel_offer_htlc_reply,len,u16,
82msgdata,channel_offer_htlc_reply,failuremsg,u8,len
83msgdata,channel_offer_htlc_reply,failurestr,wirestring,
84# Main daemon found out the preimage for an HTLC
85#include <bitcoin/preimage.h>
86msgtype,channel_fulfill_htlc,1005
87msgdata,channel_fulfill_htlc,fulfilled_htlc,fulfilled_htlc,
88# Main daemon says HTLC failed
89msgtype,channel_fail_htlc,1006
90msgdata,channel_fail_htlc,failed_htlc,failed_htlc,
91# When we receive funding_locked.
92msgtype,channel_got_funding_locked,1019
93msgdata,channel_got_funding_locked,next_per_commit_point,pubkey,
94# When we send a commitment_signed message, tell master.
95msgtype,channel_sending_commitsig,1020
96msgdata,channel_sending_commitsig,commitnum,u64,
97msgdata,channel_sending_commitsig,fee_states,fee_states,
98# SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT
99msgdata,channel_sending_commitsig,num_changed,u16,
100msgdata,channel_sending_commitsig,changed,changed_htlc,num_changed
101msgdata,channel_sending_commitsig,commit_sig,bitcoin_signature,
102msgdata,channel_sending_commitsig,num_htlc_sigs,u16,
103msgdata,channel_sending_commitsig,htlc_sigs,secp256k1_ecdsa_signature,num_htlc_sigs
104# Wait for reply, to make sure it's on disk before we send commit.
105msgtype,channel_sending_commitsig_reply,1120
106# When we have a commitment_signed message, tell master to remember.
107msgtype,channel_got_commitsig,1021
108msgdata,channel_got_commitsig,commitnum,u64,
109msgdata,channel_got_commitsig,fee_states,fee_states,
110msgdata,channel_got_commitsig,signature,bitcoin_signature,
111msgdata,channel_got_commitsig,num_htlcs,u16,
112msgdata,channel_got_commitsig,htlc_signature,secp256k1_ecdsa_signature,num_htlcs
113# RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs.
114msgdata,channel_got_commitsig,num_added,u16,
115msgdata,channel_got_commitsig,added,added_htlc,num_added
116# RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs.
117msgdata,channel_got_commitsig,num_fulfilled,u16,
118msgdata,channel_got_commitsig,fulfilled,fulfilled_htlc,num_fulfilled
119msgdata,channel_got_commitsig,num_failed,u16,
120msgdata,channel_got_commitsig,failed,failed_htlc,num_failed
121# RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT
122msgdata,channel_got_commitsig,num_changed,u16,
123msgdata,channel_got_commitsig,changed,changed_htlc,num_changed
124msgdata,channel_got_commitsig,tx,bitcoin_tx,
125# Wait for reply, to make sure it's on disk before we send revocation.
126msgtype,channel_got_commitsig_reply,1121
127#include <common/htlc_wire.h>
128msgtype,channel_got_revoke,1022
129msgdata,channel_got_revoke,revokenum,u64,
130msgdata,channel_got_revoke,per_commitment_secret,secret,
131msgdata,channel_got_revoke,next_per_commit_point,pubkey,
132# RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION
133msgdata,channel_got_revoke,fee_states,fee_states,
134msgdata,channel_got_revoke,num_changed,u16,
135msgdata,channel_got_revoke,changed,changed_htlc,num_changed
136# Wait for reply, to make sure it's on disk before we continue
137# (eg. if we sent another commitment_signed, that would implicitly ack).
138msgtype,channel_got_revoke_reply,1122
139# Tell peer to shut down channel.
140msgtype,channel_send_shutdown,1023
141msgdata,channel_send_shutdown,shutdown_len,u16,
142msgdata,channel_send_shutdown,shutdown_scriptpubkey,u8,shutdown_len
143# Peer told us that channel is shutting down
144msgtype,channel_got_shutdown,1024
145msgdata,channel_got_shutdown,scriptpubkey_len,u16,
146msgdata,channel_got_shutdown,scriptpubkey,u8,scriptpubkey_len
147# Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd.
148msgtype,channel_shutdown_complete,1025
149msgdata,channel_shutdown_complete,per_peer_state,per_peer_state,
150# Re-enable commit timer.
151msgtype,channel_dev_reenable_commit,1026
152msgtype,channel_dev_reenable_commit_reply,1126,
153msgtype,channel_feerates,1027
154msgdata,channel_feerates,feerate,u32,
155msgdata,channel_feerates,min_feerate,u32,
156msgdata,channel_feerates,max_feerate,u32,
157# master -> channeld: do you have a memleak?
158msgtype,channel_dev_memleak,1033
159msgtype,channel_dev_memleak_reply,1133
160msgdata,channel_dev_memleak_reply,leak,bool,
161# Peer presented proof it was from the future.
162msgtype,channel_fail_fallen_behind,1028
163# This is NULL if option_static_remotekey.
164msgdata,channel_fail_fallen_behind,remote_per_commitment_point,?pubkey,
165# Handle a channel specific feerate base ppm configuration
166msgtype,channel_specific_feerates,1029
167msgdata,channel_specific_feerates,feerate_base,u32,
168msgdata,channel_specific_feerates,feerate_ppm,u32,
169# When we receive announcement_signatures for channel announce
170msgtype,channel_got_announcement,1017
171msgdata,channel_got_announcement,remote_ann_node_sig,secp256k1_ecdsa_signature,
172msgdata,channel_got_announcement,remote_ann_bitcoin_sig,secp256k1_ecdsa_signature,
173# Ask channeld to send a error message. Used in forgetting channel case.
174msgtype,channel_send_error,1008
175msgdata,channel_send_error,reason,wirestring,
176# Tell master channeld has sent the error message.
177msgtype,channel_send_error_reply,1108
178# Tell lightningd we got a onion message (for us, or to fwd)
179msgtype,got_onionmsg_to_us,1142
180msgdata,got_onionmsg_to_us,reply_blinding,?pubkey,
181msgdata,got_onionmsg_to_us,reply_path_len,u16,
182msgdata,got_onionmsg_to_us,reply_path,onionmsg_path,reply_path_len
183msgtype,got_onionmsg_forward,1143
184msgdata,got_onionmsg_forward,next_scid,?short_channel_id,
185msgdata,got_onionmsg_forward,next_node_id,?node_id,
186msgdata,got_onionmsg_forward,next_blinding,?pubkey,
187msgdata,got_onionmsg_forward,next_onion,u8,1366
188# Lightningd tells us to send a onion message.
189msgtype,send_onionmsg,1040
190msgdata,send_onionmsg,onion,u8,1366
191msgdata,send_onionmsg,blinding,?pubkey,