mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-20 02:27:51 +01:00
2b3003f25b
We currently send channel_announcement as soon as we and our peer agree it's 6 blocks deep. In theory, our other peers might not have seen that block yet though, so delay a little. This is mitigated by two factors: 1. lnd will stash any "not ready yet" channel_announcements anyway. 2. c-lightning doesn't enforce the 6 depth minimum at all. We should not rely on other nodes' generosity or laxity, however! Next release, we can start enforcing the depth limit, and maybe stashing ones which don't quite make it (or simply enforce depth 5, not 6). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
8.3 KiB
8.3 KiB
1 | #include <common/cryptomsg.h> |
---|---|
2 | #include <common/channel_config.h> |
3 | #include <common/derive_basepoints.h> |
4 | #include <common/per_peer_state.h> |
5 | # Begin! (passes gossipd-client fd) |
6 | msgtype,channel_init,1000 |
7 | msgdata,channel_init,chain_hash,bitcoin_blkid, |
8 | msgdata,channel_init,funding_txid,bitcoin_txid, |
9 | msgdata,channel_init,funding_txout,u16, |
10 | msgdata,channel_init,funding_satoshi,amount_sat, |
11 | msgdata,channel_init,minimum_depth,u32, |
12 | msgdata,channel_init,our_config,channel_config, |
13 | msgdata,channel_init,their_config,channel_config, |
14 | # FIXME: Fix generate-wire.py to allow NUM_SIDES*u32 here., |
15 | msgdata,channel_init,feerate_per_kw,u32,2 |
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,u16, |
48 | msgdata,channel_init,failed,failed_htlc,num_failed |
49 | msgdata,channel_init,failed_sides,enum side,num_failed |
50 | msgdata,channel_init,local_funding_locked,bool, |
51 | msgdata,channel_init,remote_funding_locked,bool, |
52 | msgdata,channel_init,funding_short_id,short_channel_id, |
53 | msgdata,channel_init,reestablish,bool, |
54 | msgdata,channel_init,send_shutdown,bool, |
55 | msgdata,channel_init,remote_shutdown_received,bool, |
56 | msgdata,channel_init,final_scriptpubkey_len,u16, |
57 | msgdata,channel_init,final_scriptpubkey,u8,final_scriptpubkey_len |
58 | msgdata,channel_init,flags,u8, |
59 | msgdata,channel_init,init_peer_pkt_len,u16, |
60 | msgdata,channel_init,init_peer_pkt,u8,init_peer_pkt_len |
61 | msgdata,channel_init,reached_announce_depth,bool, |
62 | msgdata,channel_init,last_remote_secret,secret, |
63 | msgdata,channel_init,lflen,u16, |
64 | msgdata,channel_init,localfeatures,u8,lflen |
65 | msgdata,channel_init,upfront_shutdown_script_len,u16, |
66 | msgdata,channel_init,upfront_shutdown_script,u8,upfront_shutdown_script_len |
67 | msgdata,channel_init,remote_ann_node_sig,?secp256k1_ecdsa_signature, |
68 | msgdata,channel_init,remote_ann_bitcoin_sig,?secp256k1_ecdsa_signature, |
69 | msgdata,channel_init,announce_delay,u32, |
70 | # master->channeld funding hit new depth(funding locked if >= lock depth) |
71 | msgtype,channel_funding_depth,1002 |
72 | msgdata,channel_funding_depth,short_channel_id,?short_channel_id, |
73 | msgdata,channel_funding_depth,depth,u32, |
74 | # Tell channel to offer this htlc |
75 | msgtype,channel_offer_htlc,1004 |
76 | msgdata,channel_offer_htlc,amount_msat,amount_msat, |
77 | msgdata,channel_offer_htlc,cltv_expiry,u32, |
78 | msgdata,channel_offer_htlc,payment_hash,sha256, |
79 | msgdata,channel_offer_htlc,onion_routing_packet,u8,1366 |
80 | # Reply; synchronous since IDs have to increment. |
81 | msgtype,channel_offer_htlc_reply,1104 |
82 | msgdata,channel_offer_htlc_reply,id,u64, |
83 | # Zero failure code means success., |
84 | msgdata,channel_offer_htlc_reply,failure_code,u16, |
85 | msgdata,channel_offer_htlc_reply,failurestrlen,u16, |
86 | msgdata,channel_offer_htlc_reply,failurestr,u8,failurestrlen |
87 | # Main daemon found out the preimage for an HTLC |
88 | #include <bitcoin/preimage.h> |
89 | msgtype,channel_fulfill_htlc,1005 |
90 | msgdata,channel_fulfill_htlc,fulfilled_htlc,fulfilled_htlc, |
91 | # Main daemon says HTLC failed |
92 | msgtype,channel_fail_htlc,1006 |
93 | msgdata,channel_fail_htlc,failed_htlc,failed_htlc, |
94 | # When we receive funding_locked. |
95 | msgtype,channel_got_funding_locked,1019 |
96 | msgdata,channel_got_funding_locked,next_per_commit_point,pubkey, |
97 | # When we send a commitment_signed message, tell master. |
98 | msgtype,channel_sending_commitsig,1020 |
99 | msgdata,channel_sending_commitsig,commitnum,u64, |
100 | msgdata,channel_sending_commitsig,feerate,u32, |
101 | # SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT |
102 | msgdata,channel_sending_commitsig,num_changed,u16, |
103 | msgdata,channel_sending_commitsig,changed,changed_htlc,num_changed |
104 | msgdata,channel_sending_commitsig,commit_sig,bitcoin_signature, |
105 | msgdata,channel_sending_commitsig,num_htlc_sigs,u16, |
106 | msgdata,channel_sending_commitsig,htlc_sigs,secp256k1_ecdsa_signature,num_htlc_sigs |
107 | # Wait for reply, to make sure it's on disk before we send commit. |
108 | msgtype,channel_sending_commitsig_reply,1120 |
109 | # When we have a commitment_signed message, tell master to remember. |
110 | msgtype,channel_got_commitsig,1021 |
111 | msgdata,channel_got_commitsig,commitnum,u64, |
112 | msgdata,channel_got_commitsig,feerate,u32, |
113 | msgdata,channel_got_commitsig,signature,bitcoin_signature, |
114 | msgdata,channel_got_commitsig,num_htlcs,u16, |
115 | msgdata,channel_got_commitsig,htlc_signature,secp256k1_ecdsa_signature,num_htlcs |
116 | # RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs. |
117 | msgdata,channel_got_commitsig,num_added,u16, |
118 | msgdata,channel_got_commitsig,added,added_htlc,num_added |
119 | msgdata,channel_got_commitsig,shared_secret,secret,num_added |
120 | # RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs. |
121 | msgdata,channel_got_commitsig,num_fulfilled,u16, |
122 | msgdata,channel_got_commitsig,fulfilled,fulfilled_htlc,num_fulfilled |
123 | msgdata,channel_got_commitsig,num_failed,u16, |
124 | msgdata,channel_got_commitsig,failed,failed_htlc,num_failed |
125 | # RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT |
126 | msgdata,channel_got_commitsig,num_changed,u16, |
127 | msgdata,channel_got_commitsig,changed,changed_htlc,num_changed |
128 | msgdata,channel_got_commitsig,tx,bitcoin_tx, |
129 | # Wait for reply, to make sure it's on disk before we send revocation. |
130 | msgtype,channel_got_commitsig_reply,1121 |
131 | #include <common/htlc_wire.h> |
132 | msgtype,channel_got_revoke,1022 |
133 | msgdata,channel_got_revoke,revokenum,u64, |
134 | msgdata,channel_got_revoke,per_commitment_secret,secret, |
135 | msgdata,channel_got_revoke,next_per_commit_point,pubkey, |
136 | # RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION |
137 | msgdata,channel_got_revoke,feerate,u32, |
138 | msgdata,channel_got_revoke,num_changed,u16, |
139 | msgdata,channel_got_revoke,changed,changed_htlc,num_changed |
140 | # Wait for reply, to make sure it's on disk before we continue |
141 | # (eg. if we sent another commitment_signed, that would implicitly ack). |
142 | msgtype,channel_got_revoke_reply,1122 |
143 | # Tell peer to shut down channel. |
144 | msgtype,channel_send_shutdown,1023 |
145 | # Peer told us that channel is shutting down |
146 | msgtype,channel_got_shutdown,1024 |
147 | msgdata,channel_got_shutdown,scriptpubkey_len,u16, |
148 | msgdata,channel_got_shutdown,scriptpubkey,u8,scriptpubkey_len |
149 | # Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd. |
150 | msgtype,channel_shutdown_complete,1025 |
151 | msgdata,channel_shutdown_complete,per_peer_state,per_peer_state, |
152 | # Re-enable commit timer. |
153 | msgtype,channel_dev_reenable_commit,1026 |
154 | msgtype,channel_dev_reenable_commit_reply,1126, |
155 | msgtype,channel_feerates,1027 |
156 | msgdata,channel_feerates,feerate,u32, |
157 | msgdata,channel_feerates,min_feerate,u32, |
158 | msgdata,channel_feerates,max_feerate,u32, |
159 | # master -> channeld: do you have a memleak? |
160 | msgtype,channel_dev_memleak,1033 |
161 | msgtype,channel_dev_memleak_reply,1133 |
162 | msgdata,channel_dev_memleak_reply,leak,bool, |
163 | # Peer presented proof it was from the future. |
164 | msgtype,channel_fail_fallen_behind,1028 |
165 | msgdata,channel_fail_fallen_behind,remote_per_commitment_point,pubkey, |
166 | # Handle a channel specific feerate base ppm configuration |
167 | msgtype,channel_specific_feerates,1029 |
168 | msgdata,channel_specific_feerates,feerate_base,u32, |
169 | msgdata,channel_specific_feerates,feerate_ppm,u32, |
170 | # When we receive announcement_signatures for channel announce |
171 | msgtype,channel_got_announcement,1017 |
172 | msgdata,channel_got_announcement,remote_ann_node_sig,secp256k1_ecdsa_signature, |
173 | msgdata,channel_got_announcement,remote_ann_bitcoin_sig,secp256k1_ecdsa_signature, |