core-lightning/lightningd/gossip/gossip_wire.csv
Rusty Russell 662dfef436 lightningd/gossip: Move INIT message handling to handshake daemon.
We need to do this on every connection, whether reconnecting or not,
so it makes sense for the handshake daemon to handle it and return
the feature fields.

Longer term I'm considering having the handshake daemon handle the
listening and connecting, and simply hand the fds back once the peers
are ready.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-05-25 14:24:47 +09:30

3.2 KiB

1# These are fatal.
2gossipstatus_init_failed,0x8000
3gossipstatus_bad_new_peer_request,0x8001
4gossipstatus_bad_release_request,0x8002
5gossipstatus_bad_request,0x8003
6gossipstatus_fdpass_failed,0x8004
7# Peers can give a bad message, we close their fd, but no harm done.
8gossipstatus_peer_bad_msg,1000
9gossipstatus_peer_bad_msg,0,unique_id,8
10gossipstatus_peer_bad_msg,8,len,2
11gossipstatus_peer_bad_msg,10,err,len*u8
12# Misc problems like opening control fd.
13gossipstatus_peer_failed,1001
14gossipstatus_peer_failed,0,unique_id,8
15gossipstatus_peer_failed,8,len,2
16gossipstatus_peer_failed,10,err,len*u8
17#include <lightningd/cryptomsg.h>
18# Initialize the gossip daemon
19gossipctl_init,0
20gossipctl_init,0,broadcast_interval,4
21# These take an fd, but have no response
22# (if it is to move onto a channel, we get a status msg).
23gossipctl_new_peer,1
24gossipctl_new_peer,0,unique_id,8
25gossipctl_new_peer,8,crypto_state,struct crypto_state
26# Tell it to release a peer which has initialized.
27gossipctl_release_peer,2
28gossipctl_release_peer,0,unique_id,8
29# This releases the peer and returns the cryptostate (followed two fds: peer and gossip)
30gossipctl_release_peer_reply,102
31gossipctl_release_peer_reply,0,unique_id,8
32gossipctl_release_peer_reply,8,crypto_state,struct crypto_state
33# This is where we save a peer's features.
34#gossipstatus_peer_features,1
35#gossipstatus_peer_features,0,unique_id,8
36#gossipstatus_peer_features,8,gflen,2
37#gossipstatus_peer_features,10,globalfeatures,gflen
38#gossipstatus_peer_features,10+gflen,lflen,2
39#gossipstatus_peer_features,12+gflen,localfeatures,lflen
40# Peer can send non-gossip packet (usually an open_channel) (followed two fds: peer and gossip)
41gossipstatus_peer_nongossip,4
42gossipstatus_peer_nongossip,0,unique_id,8
43gossipstatus_peer_nongossip,10,crypto_state,struct crypto_state
44gossipstatus_peer_nongossip,154,len,2
45gossipstatus_peer_nongossip,156,msg,len*u8
46# Pass JSON-RPC getnodes call through
47gossip_getnodes_request,5
48#include <lightningd/gossip_msg.h>
49gossip_getnodes_reply,105
50gossip_getnodes_reply,0,num_nodes,u16
51gossip_getnodes_reply,2,nodes,num_nodes*struct gossip_getnodes_entry
52# Pass JSON-RPC getroute call through
53gossip_getroute_request,6
54gossip_getroute_request,0,source,struct pubkey
55gossip_getroute_request,33,destination,struct pubkey
56gossip_getroute_request,66,msatoshi,u32
57gossip_getroute_request,70,riskfactor,u16
58gossip_getroute_reply,106
59gossip_getroute_reply,0,num_hops,u16
60gossip_getroute_reply,2,hops,num_hops*struct route_hop
61gossip_getchannels_request,7
62gossip_getchannels_reply,107
63gossip_getchannels_reply,0,num_channels,u16
64gossip_getchannels_reply,2,nodes,num_channels*struct gossip_getchannels_entry
65# Ping/pong test.
66gossip_ping,8
67gossip_ping,0,unique_id,u64
68gossip_ping,0,num_pong_bytes,u16
69gossip_ping,0,len,u16
70gossip_ping_reply,108
71gossip_ping_reply,0,totlen,u16
72# Given a short_channel_id, return the endpoints
73gossip_resolve_channel_request,9
74gossip_resolve_channel_request,0,channel_id,struct short_channel_id
75gossip_resolve_channel_reply,109
76gossip_resolve_channel_reply,0,num_keys,u16
77gossip_resolve_channel_reply,0,keys,num_keys*struct pubkey
78# The main daemon forward some gossip message to gossipd, allows injecting
79# arbitrary gossip messages.
80gossip_forwarded_msg,10
81gossip_forwarded_msg,0,msglen,2
82gossip_forwarded_msg,2,msg,msglen