core-lightning/gossipd/gossip_wire.csv
Rusty Russell f083a699e2 gossipd: separate init and activate.
This means gossipd is live and we can tell it things, but it won't
receive incoming connections.  The split also means that the main daemon
continues (eg. loading peers from db) while gossipd is loading from the store,
potentially speeding startup.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-30 12:01:36 +02:00

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