core-lightning/gossipd/gossipd_wire.csv
Rusty Russell 4b4937b9bd gossipd: tell lightningd about all our previous channel_updates at startup.
This will at least *help* the case where these were not populated, causing us
to send errors without channel_updated appended.

It's not perfect: we can still send such errors if the gossip store is
corrupted, and we still send them for private channels, but it should
help.

(The much better fix is far more invasive, so slips to next release!)

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2023-07-29 09:44:20 +09:30

5.2 KiB

1#include <common/cryptomsg.h>
2#include <common/features.h>
3#include <common/wireaddr.h>
4#include <wire/peer_wire.h>
5#include <wire/onion_wire.h>
6# Initialize the gossip daemon.
7msgtype,gossipd_init,3000
8msgdata,gossipd_init,chainparams,chainparams,
9msgdata,gossipd_init,our_features,feature_set,
10msgdata,gossipd_init,id,node_id,
11msgdata,gossipd_init,rgb,u8,3
12msgdata,gossipd_init,alias,u8,32
13msgdata,gossipd_init,num_announceable,u16,
14msgdata,gossipd_init,announceable,wireaddr,num_announceable
15msgdata,gossipd_init,dev_gossip_time,?u32,
16msgdata,gossipd_init,dev_fast_gossip,bool,
17msgdata,gossipd_init,dev_fast_gossip_prune,bool,
18msgdata,gossipd_init,ip_discovery,u32,
19# Gossipd tells us all our public channel_updates before init_reply.
20msgtype,gossipd_init_cupdate,3101
21msgdata,gossipd_init_cupdate,scid,short_channel_id,
22msgdata,gossipd_init_cupdate,len,u16,
23msgdata,gossipd_init_cupdate,cupdate,u8,len
24msgtype,gossipd_init_reply,3100
25# In developer mode, we can mess with time.
26msgtype,gossipd_dev_set_time,3001
27msgdata,gossipd_dev_set_time,dev_gossip_time,u32,
28# Set artificial maximum reply_channel_range size. Master->gossipd
29msgtype,gossipd_dev_set_max_scids_encode_size,3030
30msgdata,gossipd_dev_set_max_scids_encode_size,max,u32,
31# gossipd->master: we're closing this channel.
32msgtype,gossipd_local_channel_close,3027
33msgdata,gossipd_local_channel_close,short_channel_id,short_channel_id,
34# Gossipd->master get this tx output please.
35msgtype,gossipd_get_txout,3018
36msgdata,gossipd_get_txout,short_channel_id,short_channel_id,
37# master->gossipd here is the output, or empty if none.
38msgtype,gossipd_get_txout_reply,3118
39msgdata,gossipd_get_txout_reply,short_channel_id,short_channel_id,
40msgdata,gossipd_get_txout_reply,satoshis,amount_sat,
41msgdata,gossipd_get_txout_reply,len,u16,
42msgdata,gossipd_get_txout_reply,outscript,u8,len
43# master -> gossipd: these potential funding outpoints were spent, please forget any channels
44msgtype,gossipd_outpoints_spent,3024
45msgdata,gossipd_outpoints_spent,blockheight,u32,
46msgdata,gossipd_outpoints_spent,len,u32,
47msgdata,gossipd_outpoints_spent,short_channel_id,short_channel_id,len
48# master -> gossipd: do you have a memleak?
49msgtype,gossipd_dev_memleak,3033
50msgtype,gossipd_dev_memleak_reply,3133
51msgdata,gossipd_dev_memleak_reply,leak,bool,
52# master -> gossipd: please rewrite the gossip_store
53msgtype,gossipd_dev_compact_store,3034
54# gossipd -> master: ok
55msgtype,gossipd_dev_compact_store_reply,3134
56msgdata,gossipd_dev_compact_store_reply,success,bool,
57# master -> gossipd: blockheight increased.
58msgtype,gossipd_new_blockheight,3026
59msgdata,gossipd_new_blockheight,blockheight,u32,
60# gossipd: got it!
61msgtype,gossipd_new_blockheight_reply,3126
62# Lightningd tells us to inject a gossip message (for addgossip RPC)
63msgtype,gossipd_addgossip,3044
64msgdata,gossipd_addgossip,len,u16,
65msgdata,gossipd_addgossip,msg,u8,len
66# Empty string means no problem.
67msgtype,gossipd_addgossip_reply,3144
68msgdata,gossipd_addgossip_reply,err,wirestring,
69# Updated lease rates available
70msgtype,gossipd_new_lease_rates,3046
71msgdata,gossipd_new_lease_rates,rates,lease_rates,
72# Lightningd asks gossipd for any known addresses for that node.
73msgtype,gossipd_get_addrs,3050
74msgdata,gossipd_get_addrs,id,node_id,
75msgtype,gossipd_get_addrs_reply,3150
76msgdata,gossipd_get_addrs_reply,num,u16,
77msgdata,gossipd_get_addrs_reply,addrs,wireaddr,num
78# Tell master a local channel update (so it can serve errors).
79msgtype,gossipd_got_local_channel_update,3151
80msgdata,gossipd_got_local_channel_update,scid,short_channel_id,
81msgdata,gossipd_got_local_channel_update,len,u16,
82msgdata,gossipd_got_local_channel_update,channel_update,u8,len
83# Send this channel_update.
84msgtype,gossipd_local_channel_update,3004
85msgdata,gossipd_local_channel_update,id,node_id,
86msgdata,gossipd_local_channel_update,short_channel_id,short_channel_id,
87msgdata,gossipd_local_channel_update,disable,bool,
88msgdata,gossipd_local_channel_update,cltv_expiry_delta,u16,
89msgdata,gossipd_local_channel_update,htlc_minimum_msat,amount_msat,
90msgdata,gossipd_local_channel_update,fee_base_msat,u32,
91msgdata,gossipd_local_channel_update,fee_proportional_millionths,u32,
92msgdata,gossipd_local_channel_update,htlc_maximum_msat,amount_msat,
93msgdata,gossipd_local_channel_update,public,bool,
94# Send this channel_announcement
95msgtype,gossipd_local_channel_announcement,3006
96msgdata,gossipd_local_channel_announcement,id,node_id,
97msgdata,gossipd_local_channel_announcement,len,u16,
98msgdata,gossipd_local_channel_announcement,cannounce,u8,len
99# Tell gossipd about a private channel (to put it in the store)
100# cannounce has same structure, dummy sigs.
101msgtype,gossipd_local_private_channel,3008
102msgdata,gossipd_local_private_channel,id,node_id,
103msgdata,gossipd_local_private_channel,capacity,amount_sat,
104msgdata,gossipd_local_private_channel,scid,short_channel_id,
105msgdata,gossipd_local_private_channel,len,u16,
106msgdata,gossipd_local_private_channel,features,u8,len
107# Tell gossipd we used the channel update (in case it was deferred)
108msgtype,gossipd_used_local_channel_update,3052
109msgdata,gossipd_used_local_channel_update,scid,short_channel_id,
110# Tell gossipd we have verified a new public IP by the remote_addr feature
111msgtype,gossipd_discovered_ip,3009
112msgdata,gossipd_discovered_ip,discovered_ip,wireaddr,