core-lightning/channeld/channel_wire.csv
Rusty Russell 2b3003f25b channeld: delay sending channel_announcement by 60 seconds.
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>
2019-08-02 16:50:45 +02:00

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)
6msgtype,channel_init,1000
7msgdata,channel_init,chain_hash,bitcoin_blkid,
8msgdata,channel_init,funding_txid,bitcoin_txid,
9msgdata,channel_init,funding_txout,u16,
10msgdata,channel_init,funding_satoshi,amount_sat,
11msgdata,channel_init,minimum_depth,u32,
12msgdata,channel_init,our_config,channel_config,
13msgdata,channel_init,their_config,channel_config,
14# FIXME: Fix generate-wire.py to allow NUM_SIDES*u32 here.,
15msgdata,channel_init,feerate_per_kw,u32,2
16msgdata,channel_init,feerate_min,u32,
17msgdata,channel_init,feerate_max,u32,
18msgdata,channel_init,first_commit_sig,bitcoin_signature,
19msgdata,channel_init,per_peer_state,per_peer_state,
20msgdata,channel_init,remote_fundingkey,pubkey,
21msgdata,channel_init,remote_basepoints,basepoints,
22msgdata,channel_init,remote_per_commit,pubkey,
23msgdata,channel_init,old_remote_per_commit,pubkey,
24msgdata,channel_init,funder,enum side,
25msgdata,channel_init,fee_base,u32,
26msgdata,channel_init,fee_proportional,u32,
27msgdata,channel_init,local_msatoshi,amount_msat,
28msgdata,channel_init,our_basepoints,basepoints,
29msgdata,channel_init,our_funding_pubkey,pubkey,
30msgdata,channel_init,local_node_id,node_id,
31msgdata,channel_init,remote_node_id,node_id,
32msgdata,channel_init,commit_msec,u32,
33msgdata,channel_init,cltv_delta,u16,
34msgdata,channel_init,last_was_revoke,bool,
35msgdata,channel_init,num_last_sent_commit,u16,
36msgdata,channel_init,last_sent_commit,changed_htlc,num_last_sent_commit
37msgdata,channel_init,next_index_local,u64,
38msgdata,channel_init,next_index_remote,u64,
39msgdata,channel_init,revocations_received,u64,
40msgdata,channel_init,next_htlc_id,u64,
41msgdata,channel_init,num_htlcs,u16,
42msgdata,channel_init,htlcs,added_htlc,num_htlcs
43msgdata,channel_init,htlc_states,enum htlc_state,num_htlcs
44msgdata,channel_init,num_fulfilled,u16,
45msgdata,channel_init,fulfilled,fulfilled_htlc,num_fulfilled
46msgdata,channel_init,fulfilled_sides,enum side,num_fulfilled
47msgdata,channel_init,num_failed,u16,
48msgdata,channel_init,failed,failed_htlc,num_failed
49msgdata,channel_init,failed_sides,enum side,num_failed
50msgdata,channel_init,local_funding_locked,bool,
51msgdata,channel_init,remote_funding_locked,bool,
52msgdata,channel_init,funding_short_id,short_channel_id,
53msgdata,channel_init,reestablish,bool,
54msgdata,channel_init,send_shutdown,bool,
55msgdata,channel_init,remote_shutdown_received,bool,
56msgdata,channel_init,final_scriptpubkey_len,u16,
57msgdata,channel_init,final_scriptpubkey,u8,final_scriptpubkey_len
58msgdata,channel_init,flags,u8,
59msgdata,channel_init,init_peer_pkt_len,u16,
60msgdata,channel_init,init_peer_pkt,u8,init_peer_pkt_len
61msgdata,channel_init,reached_announce_depth,bool,
62msgdata,channel_init,last_remote_secret,secret,
63msgdata,channel_init,lflen,u16,
64msgdata,channel_init,localfeatures,u8,lflen
65msgdata,channel_init,upfront_shutdown_script_len,u16,
66msgdata,channel_init,upfront_shutdown_script,u8,upfront_shutdown_script_len
67msgdata,channel_init,remote_ann_node_sig,?secp256k1_ecdsa_signature,
68msgdata,channel_init,remote_ann_bitcoin_sig,?secp256k1_ecdsa_signature,
69msgdata,channel_init,announce_delay,u32,
70# master->channeld funding hit new depth(funding locked if >= lock depth)
71msgtype,channel_funding_depth,1002
72msgdata,channel_funding_depth,short_channel_id,?short_channel_id,
73msgdata,channel_funding_depth,depth,u32,
74# Tell channel to offer this htlc
75msgtype,channel_offer_htlc,1004
76msgdata,channel_offer_htlc,amount_msat,amount_msat,
77msgdata,channel_offer_htlc,cltv_expiry,u32,
78msgdata,channel_offer_htlc,payment_hash,sha256,
79msgdata,channel_offer_htlc,onion_routing_packet,u8,1366
80# Reply; synchronous since IDs have to increment.
81msgtype,channel_offer_htlc_reply,1104
82msgdata,channel_offer_htlc_reply,id,u64,
83# Zero failure code means success.,
84msgdata,channel_offer_htlc_reply,failure_code,u16,
85msgdata,channel_offer_htlc_reply,failurestrlen,u16,
86msgdata,channel_offer_htlc_reply,failurestr,u8,failurestrlen
87# Main daemon found out the preimage for an HTLC
88#include <bitcoin/preimage.h>
89msgtype,channel_fulfill_htlc,1005
90msgdata,channel_fulfill_htlc,fulfilled_htlc,fulfilled_htlc,
91# Main daemon says HTLC failed
92msgtype,channel_fail_htlc,1006
93msgdata,channel_fail_htlc,failed_htlc,failed_htlc,
94# When we receive funding_locked.
95msgtype,channel_got_funding_locked,1019
96msgdata,channel_got_funding_locked,next_per_commit_point,pubkey,
97# When we send a commitment_signed message, tell master.
98msgtype,channel_sending_commitsig,1020
99msgdata,channel_sending_commitsig,commitnum,u64,
100msgdata,channel_sending_commitsig,feerate,u32,
101# SENT_ADD_COMMIT, SENT_REMOVE_ACK_COMMIT, SENT_ADD_ACK_COMMIT, SENT_REMOVE_COMMIT
102msgdata,channel_sending_commitsig,num_changed,u16,
103msgdata,channel_sending_commitsig,changed,changed_htlc,num_changed
104msgdata,channel_sending_commitsig,commit_sig,bitcoin_signature,
105msgdata,channel_sending_commitsig,num_htlc_sigs,u16,
106msgdata,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.
108msgtype,channel_sending_commitsig_reply,1120
109# When we have a commitment_signed message, tell master to remember.
110msgtype,channel_got_commitsig,1021
111msgdata,channel_got_commitsig,commitnum,u64,
112msgdata,channel_got_commitsig,feerate,u32,
113msgdata,channel_got_commitsig,signature,bitcoin_signature,
114msgdata,channel_got_commitsig,num_htlcs,u16,
115msgdata,channel_got_commitsig,htlc_signature,secp256k1_ecdsa_signature,num_htlcs
116# RCVD_ADD_COMMIT: we're now committed to their new offered HTLCs.
117msgdata,channel_got_commitsig,num_added,u16,
118msgdata,channel_got_commitsig,added,added_htlc,num_added
119msgdata,channel_got_commitsig,shared_secret,secret,num_added
120# RCVD_REMOVE_COMMIT: we're now no longer committed to these HTLCs.
121msgdata,channel_got_commitsig,num_fulfilled,u16,
122msgdata,channel_got_commitsig,fulfilled,fulfilled_htlc,num_fulfilled
123msgdata,channel_got_commitsig,num_failed,u16,
124msgdata,channel_got_commitsig,failed,failed_htlc,num_failed
125# RCVD_ADD_ACK_COMMIT, RCVD_REMOVE_ACK_COMMIT
126msgdata,channel_got_commitsig,num_changed,u16,
127msgdata,channel_got_commitsig,changed,changed_htlc,num_changed
128msgdata,channel_got_commitsig,tx,bitcoin_tx,
129# Wait for reply, to make sure it's on disk before we send revocation.
130msgtype,channel_got_commitsig_reply,1121
131#include <common/htlc_wire.h>
132msgtype,channel_got_revoke,1022
133msgdata,channel_got_revoke,revokenum,u64,
134msgdata,channel_got_revoke,per_commitment_secret,secret,
135msgdata,channel_got_revoke,next_per_commit_point,pubkey,
136# RCVD_ADD_ACK_REVOCATION, RCVD_REMOVE_ACK_REVOCATION, RCVD_ADD_REVOCATION, RCVD_REMOVE_REVOCATION
137msgdata,channel_got_revoke,feerate,u32,
138msgdata,channel_got_revoke,num_changed,u16,
139msgdata,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).
142msgtype,channel_got_revoke_reply,1122
143# Tell peer to shut down channel.
144msgtype,channel_send_shutdown,1023
145# Peer told us that channel is shutting down
146msgtype,channel_got_shutdown,1024
147msgdata,channel_got_shutdown,scriptpubkey_len,u16,
148msgdata,channel_got_shutdown,scriptpubkey,u8,scriptpubkey_len
149# Shutdown is complete, ready for closing negotiation. + peer_fd & gossip_fd.
150msgtype,channel_shutdown_complete,1025
151msgdata,channel_shutdown_complete,per_peer_state,per_peer_state,
152# Re-enable commit timer.
153msgtype,channel_dev_reenable_commit,1026
154msgtype,channel_dev_reenable_commit_reply,1126,
155msgtype,channel_feerates,1027
156msgdata,channel_feerates,feerate,u32,
157msgdata,channel_feerates,min_feerate,u32,
158msgdata,channel_feerates,max_feerate,u32,
159# master -> channeld: do you have a memleak?
160msgtype,channel_dev_memleak,1033
161msgtype,channel_dev_memleak_reply,1133
162msgdata,channel_dev_memleak_reply,leak,bool,
163# Peer presented proof it was from the future.
164msgtype,channel_fail_fallen_behind,1028
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,