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