core-lightning/gossipd/gossip_wire.csv
Rusty Russell 94711969f9 gossipd: hand out gossip_index to other daemons.
When gossipd sends a message, have a gossip_index.  When it gets back a
peer, the current gossip_index is included, so it can know exactly where
it's up to.

Most of this is mechanical plumbing through openingd, channeld and closingd,
even though openingd and closingd don't (currently) read gossip, so their
gossip_index will be unchanged.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-12-17 02:44:20 +00:00

5.1 KiB

1#include <common/cryptomsg.h>
2#include <common/wireaddr.h>
3# Initialize the gossip daemon.
4gossipctl_init,3000
5gossipctl_init,,broadcast_interval,u32
6gossipctl_init,,chain_hash,struct sha256_double
7gossipctl_init,,id,struct pubkey
8# If non-zero, port to listen on.
9gossipctl_init,,port,u16
10gossipctl_init,,gflen,u16
11gossipctl_init,,gfeatures,gflen*u8
12gossipctl_init,,lflen,u16
13gossipctl_init,,lfeatures,lflen*u8
14gossipctl_init,,num_wireaddrs,u16
15gossipctl_init,,wireaddrs,num_wireaddrs*struct wireaddr
16gossipctl_init,,rgb,3*u8
17gossipctl_init,,alias,32*u8
18# Master -> gossipd: Optional hint for where to find peer.
19gossipctl_peer_addrhint,3014
20gossipctl_peer_addrhint,,id,struct pubkey
21gossipctl_peer_addrhint,,addr,struct wireaddr
22# Master -> gossipd: connect to a peer. We may get a peer_connected.
23gossipctl_reach_peer,3001
24gossipctl_reach_peer,,id,struct pubkey
25# Gossipd -> master: we got a peer. Two fds: peer and gossip
26gossip_peer_connected,3002
27gossip_peer_connected,,id,struct pubkey
28gossip_peer_connected,,addr,struct wireaddr
29gossip_peer_connected,,crypto_state,struct crypto_state
30gossip_peer_connected,,gossip_index,u64
31gossip_peer_connected,,gflen,u16
32gossip_peer_connected,,gfeatures,gflen*u8
33gossip_peer_connected,,lflen,u16
34gossip_peer_connected,,lfeatures,lflen*u8
35# Gossipd -> master: peer sent non-gossip packet. Two fds: peer and gossip
36gossip_peer_nongossip,3003
37gossip_peer_nongossip,,id,struct pubkey
38gossip_peer_nongossip,,addr,struct wireaddr
39gossip_peer_nongossip,,crypto_state,struct crypto_state
40gossip_peer_nongossip,,gossip_index,u64
41gossip_peer_nongossip,,gflen,u16
42gossip_peer_nongossip,,gfeatures,gflen*u8
43gossip_peer_nongossip,,lflen,u16
44gossip_peer_nongossip,,lfeatures,lflen*u8
45gossip_peer_nongossip,,len,u16
46gossip_peer_nongossip,,msg,len*u8
47# Master -> gossipd: release a peer (so we can open a channel)
48gossipctl_release_peer,3004
49gossipctl_release_peer,,id,struct pubkey
50# Gossipd -> master: reply to gossip_release_peer. Two fds: peer and gossip.
51gossipctl_release_peer_reply,3104
52gossipctl_release_peer_reply,,addr,struct wireaddr
53gossipctl_release_peer_reply,,crypto_state,struct crypto_state
54gossipctl_release_peer_reply,,gossip_index,u64
55gossipctl_release_peer_reply,,gflen,u16
56gossipctl_release_peer_reply,,gfeatures,gflen*u8
57gossipctl_release_peer_reply,,lflen,u16
58gossipctl_release_peer_reply,,lfeatures,lflen*u8
59# Gossipd -> master: reply to gossip_release_peer if we couldn't find the peer.
60gossipctl_release_peer_replyfail,3204
61# master -> gossipd: take back peer, with optional msg. (+peer fd, +gossip fd)
62gossipctl_hand_back_peer,3013
63gossipctl_hand_back_peer,,id,struct pubkey
64gossipctl_hand_back_peer,,crypto_state,struct crypto_state
65gossipctl_hand_back_peer,,gossip_index,u64
66gossipctl_hand_back_peer,,len,u16
67gossipctl_hand_back_peer,,msg,len*u8
68# Pass JSON-RPC getnodes call through
69gossip_getnodes_request,3005
70#include <lightningd/gossip_msg.h>
71gossip_getnodes_reply,3105
72gossip_getnodes_reply,,num_nodes,u16
73gossip_getnodes_reply,,nodes,num_nodes*struct gossip_getnodes_entry
74# Pass JSON-RPC getroute call through
75gossip_getroute_request,3006
76gossip_getroute_request,,source,struct pubkey
77gossip_getroute_request,,destination,struct pubkey
78gossip_getroute_request,,msatoshi,u32
79gossip_getroute_request,,riskfactor,u16
80gossip_getroute_request,,final_cltv,u32
81gossip_getroute_reply,3106
82gossip_getroute_reply,,num_hops,u16
83gossip_getroute_reply,,hops,num_hops*struct route_hop
84gossip_getchannels_request,3007
85gossip_getchannels_reply,3107
86gossip_getchannels_reply,,num_channels,u16
87gossip_getchannels_reply,,nodes,num_channels*struct gossip_getchannels_entry
88# Ping/pong test. Waits for a reply if it expects one.
89gossip_ping,3008
90gossip_ping,,id,struct pubkey
91gossip_ping,,num_pong_bytes,u16
92gossip_ping,,len,u16
93gossip_ping_reply,3108
94# False if id in gossip_ping was unknown.
95gossip_ping_reply,,sent,bool
96# 0 == no pong expected
97gossip_ping_reply,,totlen,u16
98# Given a short_channel_id, return the endpoints
99gossip_resolve_channel_request,3009
100gossip_resolve_channel_request,,channel_id,struct short_channel_id
101gossip_resolve_channel_reply,3109
102gossip_resolve_channel_reply,,num_keys,u16
103gossip_resolve_channel_reply,,keys,num_keys*struct pubkey
104# The main daemon forward some gossip message to gossipd, allows injecting
105# arbitrary gossip messages.
106gossip_forwarded_msg,3010
107gossip_forwarded_msg,,msglen,u16
108gossip_forwarded_msg,,msg,msglen*u8
109# The main daemon asks for peers
110gossip_getpeers_request,3011
111gossip_getpeers_reply,3111
112gossip_getpeers_reply,,num,u16
113gossip_getpeers_reply,,id,num*struct pubkey
114gossip_getpeers_reply,,addr,num*struct wireaddr
115# Channel daemon can ask for updates for a specific channel, for sending
116# errors. Must be distinct from WIRE_CHANNEL_ANNOUNCEMENT etc. gossip msgs!
117gossip_get_update,3012
118gossip_get_update,,short_channel_id,struct short_channel_id
119# If channel isn't known, update will be empty.
120gossip_get_update_reply,3112
121gossip_get_update_reply,,len,u16
122gossip_get_update_reply,,update,len*u8
123# Gossipd can tell channeld etc about gossip to fwd.
124gossip_send_gossip,3016
125gossip_send_gossip,,gossip_index,u64
126gossip_send_gossip,,len,u16
127gossip_send_gossip,,gossip,len*u8