core-lightning/channeld/channel_wire.csv
Rusty Russell b29d1ed3ff channeld: support HTLCs with blinding (EXPERIMENTAL_FEATURES)
Note that it's channeld which calculates the shared secret, too.  This
minimizes the work that lightningd has to do, at cost of passing this
through.

We also don't yet save the blinding field(s) to the database.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2020-04-14 12:51:18 +09:30

9.2 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
77msgdata,channel_offer_htlc,blinding,?pubkey,
78# Reply; synchronous since IDs have to increment.
79msgtype,channel_offer_htlc_reply,1104
80msgdata,channel_offer_htlc_reply,id,u64,
81# Empty failure message means success.
82msgdata,channel_offer_htlc_reply,len,u16,
83msgdata,channel_offer_htlc_reply,failuremsg,u8,len
84msgdata,channel_offer_htlc_reply,failurestr,wirestring,
85# Main daemon found out the preimage for an HTLC
86#include <bitcoin/preimage.h>
87msgtype,channel_fulfill_htlc,1005
88msgdata,channel_fulfill_htlc,fulfilled_htlc,fulfilled_htlc,
89# Main daemon says HTLC failed
90msgtype,channel_fail_htlc,1006
91msgdata,channel_fail_htlc,failed_htlc,failed_htlc,
92# When we receive funding_locked.
93msgtype,channel_got_funding_locked,1019
94msgdata,channel_got_funding_locked,next_per_commit_point,pubkey,
95# When we send a commitment_signed message, tell master.
96msgtype,channel_sending_commitsig,1020
97msgdata,channel_sending_commitsig,commitnum,u64,
98msgdata,channel_sending_commitsig,fee_states,fee_states,
99# SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT
100msgdata,channel_sending_commitsig,num_changed,u16,
101msgdata,channel_sending_commitsig,changed,changed_htlc,num_changed
102msgdata,channel_sending_commitsig,commit_sig,bitcoin_signature,
103msgdata,channel_sending_commitsig,num_htlc_sigs,u16,
104msgdata,channel_sending_commitsig,htlc_sigs,secp256k1_ecdsa_signature,num_htlc_sigs
105# Wait for reply, to make sure it's on disk before we send commit.
106msgtype,channel_sending_commitsig_reply,1120
107# When we have a commitment_signed message, tell master to remember.
108msgtype,channel_got_commitsig,1021
109msgdata,channel_got_commitsig,commitnum,u64,
110msgdata,channel_got_commitsig,fee_states,fee_states,
111msgdata,channel_got_commitsig,signature,bitcoin_signature,
112msgdata,channel_got_commitsig,num_htlcs,u16,
113msgdata,channel_got_commitsig,htlc_signature,secp256k1_ecdsa_signature,num_htlcs
114# RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs.
115msgdata,channel_got_commitsig,num_added,u16,
116msgdata,channel_got_commitsig,added,added_htlc,num_added
117# RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs.
118msgdata,channel_got_commitsig,num_fulfilled,u16,
119msgdata,channel_got_commitsig,fulfilled,fulfilled_htlc,num_fulfilled
120msgdata,channel_got_commitsig,num_failed,u16,
121msgdata,channel_got_commitsig,failed,failed_htlc,num_failed
122# RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT
123msgdata,channel_got_commitsig,num_changed,u16,
124msgdata,channel_got_commitsig,changed,changed_htlc,num_changed
125msgdata,channel_got_commitsig,tx,bitcoin_tx,
126# Wait for reply, to make sure it's on disk before we send revocation.
127msgtype,channel_got_commitsig_reply,1121
128#include <common/htlc_wire.h>
129msgtype,channel_got_revoke,1022
130msgdata,channel_got_revoke,revokenum,u64,
131msgdata,channel_got_revoke,per_commitment_secret,secret,
132msgdata,channel_got_revoke,next_per_commit_point,pubkey,
133# RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION
134msgdata,channel_got_revoke,fee_states,fee_states,
135msgdata,channel_got_revoke,num_changed,u16,
136msgdata,channel_got_revoke,changed,changed_htlc,num_changed
137# Wait for reply, to make sure it's on disk before we continue
138# (eg. if we sent another commitment_signed, that would implicitly ack).
139msgtype,channel_got_revoke_reply,1122
140# Tell peer to shut down channel.
141msgtype,channel_send_shutdown,1023
142msgdata,channel_send_shutdown,shutdown_len,u16,
143msgdata,channel_send_shutdown,shutdown_scriptpubkey,u8,shutdown_len
144# Peer told us that channel is shutting down
145msgtype,channel_got_shutdown,1024
146msgdata,channel_got_shutdown,scriptpubkey_len,u16,
147msgdata,channel_got_shutdown,scriptpubkey,u8,scriptpubkey_len
148# Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd.
149msgtype,channel_shutdown_complete,1025
150msgdata,channel_shutdown_complete,per_peer_state,per_peer_state,
151# Re-enable commit timer.
152msgtype,channel_dev_reenable_commit,1026
153msgtype,channel_dev_reenable_commit_reply,1126,
154msgtype,channel_feerates,1027
155msgdata,channel_feerates,feerate,u32,
156msgdata,channel_feerates,min_feerate,u32,
157msgdata,channel_feerates,max_feerate,u32,
158# master -> channeld: do you have a memleak?
159msgtype,channel_dev_memleak,1033
160msgtype,channel_dev_memleak_reply,1133
161msgdata,channel_dev_memleak_reply,leak,bool,
162# Peer presented proof it was from the future.
163msgtype,channel_fail_fallen_behind,1028
164# This is NULL if option_static_remotekey.
165msgdata,channel_fail_fallen_behind,remote_per_commitment_point,?pubkey,
166# Handle a channel specific feerate base ppm configuration
167msgtype,channel_specific_feerates,1029
168msgdata,channel_specific_feerates,feerate_base,u32,
169msgdata,channel_specific_feerates,feerate_ppm,u32,
170# When we receive announcement_signatures for channel announce
171msgtype,channel_got_announcement,1017
172msgdata,channel_got_announcement,remote_ann_node_sig,secp256k1_ecdsa_signature,
173msgdata,channel_got_announcement,remote_ann_bitcoin_sig,secp256k1_ecdsa_signature,
174# Ask channeld to send a error message. Used in forgetting channel case.
175msgtype,channel_send_error,1008
176msgdata,channel_send_error,reason,wirestring,
177# Tell master channeld has sent the error message.
178msgtype,channel_send_error_reply,1108
179# Tell lightningd we got a onion message (for us, or to fwd)
180msgtype,got_onionmsg_to_us,1142
181msgdata,got_onionmsg_to_us,reply_blinding,?pubkey,
182msgdata,got_onionmsg_to_us,reply_path_len,u16,
183msgdata,got_onionmsg_to_us,reply_path,onionmsg_path,reply_path_len
184msgtype,got_onionmsg_forward,1143
185msgdata,got_onionmsg_forward,next_scid,?short_channel_id,
186msgdata,got_onionmsg_forward,next_node_id,?node_id,
187msgdata,got_onionmsg_forward,next_blinding,?pubkey,
188msgdata,got_onionmsg_forward,next_onion,u8,1366
189# Lightningd tells us to send a onion message.
190msgtype,send_onionmsg,1040
191msgdata,send_onionmsg,onion,u8,1366
192msgdata,send_onionmsg,blinding,?pubkey,