core-lightning/gossipd/gossip_wire.csv
Rusty Russell fca5a9ef30 channeld: tell gossipd to generate channel_updates.
This resolves the problem where both channeld and gossipd can generate
updates, and they can have the same timestamp.  gossipd is always able
to generate them, so can ensure timestamp moves forward.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-05-21 09:17:57 -07:00

9.1 KiB

1#include <common/cryptomsg.h>
2#include <common/wireaddr.h>
3#include <wire/gen_onion_wire.h>
4# Initialize the gossip daemon.
5gossipctl_init,3000
6gossipctl_init,,broadcast_interval,u32
7gossipctl_init,,chain_hash,struct bitcoin_blkid
8gossipctl_init,,id,struct pubkey
9gossipctl_init,,gflen,u16
10gossipctl_init,,gfeatures,gflen*u8
11gossipctl_init,,lflen,u16
12gossipctl_init,,lfeatures,lflen*u8
13gossipctl_init,,num_wireaddrs,u16
14gossipctl_init,,wireaddrs,num_wireaddrs*struct wireaddr_internal
15gossipctl_init,,listen_announce,num_wireaddrs*enum addr_listen_announce
16gossipctl_init,,rgb,3*u8
17gossipctl_init,,alias,32*u8
18gossipctl_init,,update_channel_interval,u32
19gossipctl_init,,reconnect,bool
20# This is 0 or 1.
21gossipctl_init,,num_tor_proxyaddrs,u16
22gossipctl_init,,tor_proxyaddr,num_tor_proxyaddrs*struct wireaddr
23gossipctl_init,,use_tor_proxy_always,bool
24gossipctl_init,,dev_allow_localhost,bool
25gossipctl_init,,tor_password,wirestring
26# Activate the gossip daemon, so others can connect.
27gossipctl_activate,3025
28# Do we listen?
29gossipctl_activate,,listen,bool
30# Gossipd->master, I am ready, here's the addresses I bound, can announce.
31gossipctl_activate_reply,3125
32gossipctl_activate_reply,,num_bindings,u16
33gossipctl_activate_reply,,bindings,num_bindings*struct wireaddr_internal
34gossipctl_activate_reply,,num_announcable,u16
35gossipctl_activate_reply,,announcable,num_announcable*struct wireaddr
36# Master -> gossipd: Optional hint for where to find peer.
37gossipctl_peer_addrhint,3014
38gossipctl_peer_addrhint,,id,struct pubkey
39gossipctl_peer_addrhint,,addr,struct wireaddr_internal
40# Master -> gossipd: connect to a peer.
41gossipctl_connect_to_peer,3001
42gossipctl_connect_to_peer,,id,struct pubkey
43# Gossipd->master: result (not a reply since it can be out-of-order, but
44# you will get one reply for every request).
45gossipctl_connect_to_peer_result,3020
46gossipctl_connect_to_peer_result,,id,struct pubkey
47# True it connected.
48gossipctl_connect_to_peer_result,,connected,bool
49# Otherwise, why we can't reach them.
50gossipctl_connect_to_peer_result,,failreason,wirestring
51# Master -> gossipd: try to always maintain connection to this peer (or not)
52gossipctl_peer_important,3010
53gossipctl_peer_important,,id,struct pubkey
54gossipctl_peer_important,,important,bool
55# Gossipd -> master: we got a peer. Two fds: peer and gossip
56gossip_peer_connected,3002
57gossip_peer_connected,,id,struct pubkey
58gossip_peer_connected,,addr,struct wireaddr_internal
59gossip_peer_connected,,crypto_state,struct crypto_state
60gossip_peer_connected,,gflen,u16
61gossip_peer_connected,,gfeatures,gflen*u8
62gossip_peer_connected,,lflen,u16
63gossip_peer_connected,,lfeatures,lflen*u8
64# Gossipd -> master: peer sent non-gossip packet. Two fds: peer and gossip
65gossip_peer_nongossip,3003
66gossip_peer_nongossip,,id,struct pubkey
67gossip_peer_nongossip,,addr,struct wireaddr_internal
68gossip_peer_nongossip,,crypto_state,struct crypto_state
69gossip_peer_nongossip,,gflen,u16
70gossip_peer_nongossip,,gfeatures,gflen*u8
71gossip_peer_nongossip,,lflen,u16
72gossip_peer_nongossip,,lfeatures,lflen*u8
73gossip_peer_nongossip,,len,u16
74gossip_peer_nongossip,,msg,len*u8
75# Master -> gossipd: release a peer (so we can open a channel)
76gossipctl_release_peer,3004
77gossipctl_release_peer,,id,struct pubkey
78# Gossipd -> master: reply to gossip_release_peer. Two fds: peer and gossip.
79gossipctl_release_peer_reply,3104
80gossipctl_release_peer_reply,,addr,struct wireaddr_internal
81gossipctl_release_peer_reply,,crypto_state,struct crypto_state
82gossipctl_release_peer_reply,,gflen,u16
83gossipctl_release_peer_reply,,gfeatures,gflen*u8
84gossipctl_release_peer_reply,,lflen,u16
85gossipctl_release_peer_reply,,lfeatures,lflen*u8
86# Gossipd -> master: reply to gossip_release_peer if we couldn't find the peer.
87gossipctl_release_peer_replyfail,3204
88# master -> gossipd: take back peer, with optional msg. (+peer fd, +gossip fd)
89gossipctl_hand_back_peer,3013
90gossipctl_hand_back_peer,,id,struct pubkey
91gossipctl_hand_back_peer,,crypto_state,struct crypto_state
92gossipctl_hand_back_peer,,len,u16
93gossipctl_hand_back_peer,,msg,len*u8
94# master -> gossipd: peer has disconnected.
95gossipctl_peer_disconnected,3015
96gossipctl_peer_disconnected,,id,struct pubkey
97# Pass JSON-RPC getnodes call through
98gossip_getnodes_request,3005
99# Can be 0 or 1 currently
100gossip_getnodes_request,,num,u16
101gossip_getnodes_request,,id,num*struct pubkey
102#include <lightningd/gossip_msg.h>
103gossip_getnodes_reply,3105
104gossip_getnodes_reply,,num_nodes,u16
105gossip_getnodes_reply,,nodes,num_nodes*struct gossip_getnodes_entry
106# Pass JSON-RPC getroute call through
107gossip_getroute_request,3006
108gossip_getroute_request,,source,struct pubkey
109gossip_getroute_request,,destination,struct pubkey
110gossip_getroute_request,,msatoshi,u64
111gossip_getroute_request,,riskfactor,u16
112gossip_getroute_request,,final_cltv,u32
113gossip_getroute_request,,fuzz,double
114gossip_getroute_request,,seed,struct siphash_seed
115gossip_getroute_reply,3106
116gossip_getroute_reply,,num_hops,u16
117gossip_getroute_reply,,hops,num_hops*struct route_hop
118gossip_getchannels_request,3007
119# In practice, 0 or 1.
120gossip_getchannels_request,,num,u16
121gossip_getchannels_request,,short_channel_id,num*struct short_channel_id
122gossip_getchannels_reply,3107
123gossip_getchannels_reply,,num_channels,u16
124gossip_getchannels_reply,,nodes,num_channels*struct gossip_getchannels_entry
125# Ping/pong test. Waits for a reply if it expects one.
126gossip_ping,3008
127gossip_ping,,id,struct pubkey
128gossip_ping,,num_pong_bytes,u16
129gossip_ping,,len,u16
130gossip_ping_reply,3108
131# False if id in gossip_ping was unknown.
132gossip_ping_reply,,sent,bool
133# 0 == no pong expected
134gossip_ping_reply,,totlen,u16
135# Given a short_channel_id, return the endpoints
136gossip_resolve_channel_request,3009
137gossip_resolve_channel_request,,channel_id,struct short_channel_id
138gossip_resolve_channel_reply,3109
139gossip_resolve_channel_reply,,num_keys,u16
140gossip_resolve_channel_reply,,keys,num_keys*struct pubkey
141# The main daemon asks for peers
142gossip_getpeers_request,3011
143# 0 or 1
144gossip_getpeers_request,,num,u16
145gossip_getpeers_request,,id,num*struct pubkey
146gossip_getpeers_reply,3111
147gossip_getpeers_reply,,num,u16
148gossip_getpeers_reply,,id,num*struct pubkey
149gossip_getpeers_reply,,addr,num*struct wireaddr_internal
150gossip_getpeers_reply,,numnodes,u16
151gossip_getpeers_reply,,nodes,numnodes*struct gossip_getnodes_entry
152# Channel daemon can ask for updates for a specific channel, for sending
153# errors. Must be distinct from WIRE_CHANNEL_ANNOUNCEMENT etc. gossip msgs!
154gossip_get_update,3012
155gossip_get_update,,short_channel_id,struct short_channel_id
156# If channel isn't known, update will be empty.
157gossip_get_update_reply,3112
158gossip_get_update_reply,,len,u16
159gossip_get_update_reply,,update,len*u8
160# Gossipd can tell channeld etc about gossip to fwd.
161gossip_send_gossip,3016
162gossip_send_gossip,,len,u16
163gossip_send_gossip,,gossip,len*u8
164# Both sides have seen the funding tx being locked, but we have not
165# yet reached the announcement depth. So we add the channel locally so
166# we (and peer) can update it already.
167gossip_local_add_channel,3017
168gossip_local_add_channel,,short_channel_id,struct short_channel_id
169gossip_local_add_channel,,remote_node_id,struct pubkey
170gossip_local_channel_update,3026
171gossip_local_channel_update,,short_channel_id,struct short_channel_id
172gossip_local_channel_update,,disable,bool
173gossip_local_channel_update,,cltv_expiry_delta,u16
174gossip_local_channel_update,,htlc_minimum_msat,u64
175gossip_local_channel_update,,fee_base_msat,u32
176gossip_local_channel_update,,fee_proportional_millionths,u32
177# Gossipd->master get this tx output please.
178gossip_get_txout,3018
179gossip_get_txout,,short_channel_id,struct short_channel_id
180# master->gossipd here is the output, or empty if none.
181gossip_get_txout_reply,3118
182gossip_get_txout_reply,,short_channel_id,struct short_channel_id
183gossip_get_txout_reply,,satoshis,u64
184gossip_get_txout_reply,,len,u16
185gossip_get_txout_reply,,outscript,len*u8
186# client->gossipd: Disable the channel matching the short_channel_id
187gossip_disable_channel,3019
188gossip_disable_channel,,short_channel_id,struct short_channel_id
189gossip_disable_channel,,direction,u8
190gossip_disable_channel,,active,bool
191# master->gossipd a routing failure occurred
192gossip_routing_failure,3021
193gossip_routing_failure,,erring_node,struct pubkey
194gossip_routing_failure,,erring_channel,struct short_channel_id
195gossip_routing_failure,,failcode,u16
196gossip_routing_failure,,len,u16
197gossip_routing_failure,,channel_update,len*u8
198# master->gossipd temporarily mark a channel unroutable
199# (used in case of unparseable onion reply)
200gossip_mark_channel_unroutable,3022
201gossip_mark_channel_unroutable,,channel,struct short_channel_id
202# master->gossipd: Request to disconnect from a peer.
203gossipctl_peer_disconnect,3023
204gossipctl_peer_disconnect,,id,struct pubkey
205# Gossipd -> master: reply to gossip_peer_disconnect with peer id.
206gossipctl_peer_disconnect_reply,3123
207# Gossipd -> master: reply to gossip_peer_disconnect if we couldn't find the peer.
208gossipctl_peer_disconnect_replyfail,3223
209gossipctl_peer_disconnect_replyfail,,isconnected,bool
210# master -> gossipd: a potential funding outpoint was spent, please forget the eventual channel
211gossip_outpoint_spent,3024
212gossip_outpoint_spent,,short_channel_id,struct short_channel_id