mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-01-09 15:18:09 +01:00
4185153d81
At the moment, master simply keeps the gossip fd open when peer disconnects. That's inefficient, and wrong anyway (it may want a complete new sync, or may not, but we'll currently send all the messages including stale ones). This interface will be required for restart anyway. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
3.7 KiB
3.7 KiB
1 | # These are fatal. |
---|---|
2 | gossipstatus_init_failed,0x8000 |
3 | gossipstatus_bad_new_peer_request,0x8001 |
4 | gossipstatus_bad_release_request,0x8002 |
5 | gossipstatus_bad_fail_request,0x8003 |
6 | gossipstatus_bad_request,0x8004 |
7 | gossipstatus_fdpass_failed,0x8005 |
8 | # Peers can give a bad message, we close their fd, but no harm done. |
9 | gossipstatus_peer_bad_msg,1000 |
10 | gossipstatus_peer_bad_msg,,unique_id,8 |
11 | gossipstatus_peer_bad_msg,,len,2 |
12 | gossipstatus_peer_bad_msg,,err,len*u8 |
13 | # Misc problems like opening control fd. |
14 | gossipstatus_peer_failed,1001 |
15 | gossipstatus_peer_failed,,unique_id,8 |
16 | gossipstatus_peer_failed,,len,2 |
17 | gossipstatus_peer_failed,,err,len*u8 |
18 | #include <lightningd/cryptomsg.h> |
19 | # Initialize the gossip daemon |
20 | gossipctl_init,0 |
21 | gossipctl_init,,broadcast_interval,4 |
22 | # These take an fd, but have no response |
23 | # (if it is to move onto a channel, we get a status msg). |
24 | gossipctl_new_peer,1 |
25 | gossipctl_new_peer,,unique_id,8 |
26 | gossipctl_new_peer,,crypto_state,struct crypto_state |
27 | # Tell it to release a peer which has initialized. |
28 | gossipctl_release_peer,2 |
29 | gossipctl_release_peer,,unique_id,8 |
30 | # This releases the peer and returns the cryptostate (followed two fds: peer and gossip) |
31 | gossipctl_release_peer_reply,102 |
32 | gossipctl_release_peer_reply,,crypto_state,struct crypto_state |
33 | # This is if we couldn't find the peer. |
34 | gossipctl_release_peer_replyfail,202 |
35 | # This is where we save a peer's features. |
36 | #gossipstatus_peer_features,1 |
37 | #gossipstatus_peer_features,,unique_id,8 |
38 | #gossipstatus_peer_features,,gflen,2 |
39 | #gossipstatus_peer_features,,globalfeatures,gflen |
40 | #gossipstatus_peer_features,,lflen,2 |
41 | #gossipstatus_peer_features,,localfeatures,lflen |
42 | # Peer can send non-gossip packet (usually an open_channel) (followed two fds: peer and gossip) |
43 | gossipstatus_peer_nongossip,4 |
44 | gossipstatus_peer_nongossip,,unique_id,8 |
45 | gossipstatus_peer_nongossip,,crypto_state,struct crypto_state |
46 | gossipstatus_peer_nongossip,,len,2 |
47 | gossipstatus_peer_nongossip,,msg,len*u8 |
48 | # Pass JSON-RPC getnodes call through |
49 | gossip_getnodes_request,5 |
50 | #include <lightningd/gossip_msg.h> |
51 | gossip_getnodes_reply,105 |
52 | gossip_getnodes_reply,,num_nodes,u16 |
53 | gossip_getnodes_reply,,nodes,num_nodes*struct gossip_getnodes_entry |
54 | # Pass JSON-RPC getroute call through |
55 | gossip_getroute_request,6 |
56 | gossip_getroute_request,,source,struct pubkey |
57 | gossip_getroute_request,,destination,struct pubkey |
58 | gossip_getroute_request,,msatoshi,u32 |
59 | gossip_getroute_request,,riskfactor,u16 |
60 | gossip_getroute_reply,106 |
61 | gossip_getroute_reply,,num_hops,u16 |
62 | gossip_getroute_reply,,hops,num_hops*struct route_hop |
63 | gossip_getchannels_request,7 |
64 | gossip_getchannels_reply,107 |
65 | gossip_getchannels_reply,,num_channels,u16 |
66 | gossip_getchannels_reply,,nodes,num_channels*struct gossip_getchannels_entry |
67 | # Ping/pong test. |
68 | gossip_ping,8 |
69 | gossip_ping,,unique_id,u64 |
70 | gossip_ping,,num_pong_bytes,u16 |
71 | gossip_ping,,len,u16 |
72 | gossip_ping_reply,108 |
73 | gossip_ping_reply,,totlen,u16 |
74 | # Given a short_channel_id, return the endpoints |
75 | gossip_resolve_channel_request,9 |
76 | gossip_resolve_channel_request,,channel_id,struct short_channel_id |
77 | gossip_resolve_channel_reply,109 |
78 | gossip_resolve_channel_reply,,num_keys,u16 |
79 | gossip_resolve_channel_reply,,keys,num_keys*struct pubkey |
80 | # The main daemon forward some gossip message to gossipd, allows injecting |
81 | # arbitrary gossip messages. |
82 | gossip_forwarded_msg,10 |
83 | gossip_forwarded_msg,,msglen,2 |
84 | gossip_forwarded_msg,,msg,msglen |
85 | # If peer is still connected, fail it (master does this for reconnect) |
86 | gossipctl_fail_peer,11 |
87 | gossipctl_fail_peer,,unique_id,8 |
88 | # Get a gossip fd for this peer (it has reconnected) |
89 | gossipctl_get_peer_gossipfd,12 |
90 | gossipctl_get_peer_gossipfd,,unique_id,u64 |
91 | # Does it want a full dump of gossip? |
92 | gossipctl_get_peer_gossipfd,,sync,bool |
93 | # + fd. |
94 | gossipctl_get_peer_gossipfd_reply,112 |
95 | # Failure (can't make new socket) |
96 | gossipctl_get_peer_gossipfd_replyfail,212 |