mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 22:45:27 +01:00
We currently stream gossip as fast as we can, even if they start at timestamp 0. Instead, use a simple token bucket filter and only let them have 1MB per second (500 bytes per second for testing). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Changelog-Protocol: connectd: we now throttle outgoing gossip at 1MB/second per peer.
6.4 KiB
6.4 KiB
1 | #include <bitcoin/block.h> |
---|---|
2 | #include <common/channel_id.h> |
3 | #include <common/cryptomsg.h> |
4 | #include <common/features.h> |
5 | #include <common/node_id.h> |
6 | #include <common/wireaddr.h> |
7 | #include <wire/onion_wire.h> |
8 | msgtype,connectd_init,2000 |
9 | msgdata,connectd_init,chainparams,chainparams, |
10 | msgdata,connectd_init,our_features,feature_set, |
11 | msgdata,connectd_init,id,node_id, |
12 | msgdata,connectd_init,num_wireaddrs,u16, |
13 | msgdata,connectd_init,wireaddrs,wireaddr_internal,num_wireaddrs |
14 | msgdata,connectd_init,listen_announce,enum addr_listen_announce,num_wireaddrs |
15 | msgdata,connectd_init,tor_proxyaddr,?wireaddr, |
16 | msgdata,connectd_init,use_tor_proxy_always,bool, |
17 | msgdata,connectd_init,dev_allow_localhost,bool, |
18 | msgdata,connectd_init,use_dns,bool, |
19 | msgdata,connectd_init,tor_password,wirestring, |
20 | msgdata,connectd_init,timeout_secs,u32, |
21 | msgdata,connectd_init,websocket_helper,wirestring, |
22 | msgdata,connectd_init,announce_websocket,bool, |
23 | msgdata,connectd_init,dev_fast_gossip,bool, |
24 | # If this is set, then fd 5 is dev_disconnect_fd. |
25 | msgdata,connectd_init,dev_disconnect,bool, |
26 | msgdata,connectd_init,dev_no_ping_timer,bool, |
27 | # Allow incoming connections, but don't talk. |
28 | msgdata,connectd_init,dev_noreply,bool, |
29 | msgdata,connectd_init,dev_throttle_gossip,bool, |
30 | # Connectd->master, here are the addresses I bound, can announce. |
31 | msgtype,connectd_init_reply,2100 |
32 | msgdata,connectd_init_reply,num_bindings,u16, |
33 | msgdata,connectd_init_reply,bindings,wireaddr_internal,num_bindings |
34 | msgdata,connectd_init_reply,num_announceable,u16, |
35 | msgdata,connectd_init_reply,announceable,wireaddr,num_announceable |
36 | msgdata,connectd_init_reply,failmsg,?wirestring, |
37 | # Activate the connect daemon, so others can connect. |
38 | msgtype,connectd_activate,2025 |
39 | # Do we listen? |
40 | msgdata,connectd_activate,listen,bool, |
41 | # Set the allowed (i.e. don't hang up on!) unknown messages. |
42 | msgtype,connectd_set_custommsgs,2007 |
43 | msgdata,connectd_set_custommsgs,len,u32, |
44 | msgdata,connectd_set_custommsgs,msgnums,u16,len |
45 | # Connectd->master, I am ready. |
46 | msgtype,connectd_activate_reply,2125 |
47 | msgdata,connectd_activate_reply,failmsg,?wirestring, |
48 | # Master -> connectd: connect to a peer. |
49 | msgtype,connectd_connect_to_peer,2001 |
50 | msgdata,connectd_connect_to_peer,id,node_id, |
51 | msgdata,connectd_connect_to_peer,len,u32, |
52 | msgdata,connectd_connect_to_peer,addrs,wireaddr,len |
53 | msgdata,connectd_connect_to_peer,addrhint,?wireaddr_internal, |
54 | msgdata,connectd_connect_to_peer,dns_fallback,bool, |
55 | msgdata,connectd_connect_to_peer,transient,bool, |
56 | # Connectd->master: connect failed. |
57 | msgtype,connectd_connect_failed,2020 |
58 | msgdata,connectd_connect_failed,id,node_id, |
59 | msgdata,connectd_connect_failed,failcode,enum jsonrpc_errcode, |
60 | msgdata,connectd_connect_failed,failreason,wirestring, |
61 | msgdata,connectd_connect_failed,addrhint,?wireaddr_internal, |
62 | # Connectd -> master: we got a peer. |
63 | msgtype,connectd_peer_connected,2002 |
64 | msgdata,connectd_peer_connected,id,node_id, |
65 | msgdata,connectd_peer_connected,counter,u64, |
66 | msgdata,connectd_peer_connected,addr,wireaddr_internal, |
67 | msgdata,connectd_peer_connected,remote_addr,?wireaddr, |
68 | msgdata,connectd_peer_connected,incoming,bool, |
69 | msgdata,connectd_peer_connected,flen,u16, |
70 | msgdata,connectd_peer_connected,features,u8,flen |
71 | # connectd -> master: peer disconnected. |
72 | msgtype,connectd_peer_disconnect_done,2006 |
73 | msgdata,connectd_peer_disconnect_done,id,node_id, |
74 | msgdata,connectd_peer_disconnect_done,counter,u64, |
75 | # Master -> connectd: make peer active immediately (we want to talk) (+ fd to subd). |
76 | msgtype,connectd_peer_connect_subd,2004 |
77 | msgdata,connectd_peer_connect_subd,id,node_id, |
78 | msgdata,connectd_peer_connect_subd,counter,u64, |
79 | msgdata,connectd_peer_connect_subd,channel_id,channel_id, |
80 | # Connectd -> master: peer said something interesting |
81 | msgtype,connectd_peer_spoke,2005 |
82 | msgdata,connectd_peer_spoke,id,node_id, |
83 | msgdata,connectd_peer_spoke,counter,u64, |
84 | msgdata,connectd_peer_spoke,msgtype,u16, |
85 | msgdata,connectd_peer_spoke,channel_id,channel_id, |
86 | # If msgtype == WIRE_ERROR, this is the string. |
87 | msgdata,connectd_peer_spoke,error,?wirestring, |
88 | # master -> connectd: peer no longer wanted, you can disconnect. |
89 | msgtype,connectd_discard_peer,2015 |
90 | msgdata,connectd_discard_peer,id,node_id, |
91 | msgdata,connectd_discard_peer,counter,u64, |
92 | # master -> connectd: give message to peer. |
93 | msgtype,connectd_peer_send_msg,2003 |
94 | msgdata,connectd_peer_send_msg,id,node_id, |
95 | msgdata,connectd_peer_send_msg,counter,u64, |
96 | msgdata,connectd_peer_send_msg,len,u16, |
97 | msgdata,connectd_peer_send_msg,msg,u8,len |
98 | # master -> connectd: do you have a memleak? |
99 | msgtype,connectd_dev_memleak,2033 |
100 | msgtype,connectd_dev_memleak_reply,2133 |
101 | msgdata,connectd_dev_memleak_reply,leak,bool, |
102 | # master -> connectd: dump status of your fds. |
103 | msgtype,connectd_dev_report_fds,2034 |
104 | # Ping/pong test. Waits for a reply if it expects one. |
105 | msgtype,connectd_ping,2030 |
106 | msgdata,connectd_ping,id,node_id, |
107 | msgdata,connectd_ping,num_pong_bytes,u16, |
108 | msgdata,connectd_ping,len,u16, |
109 | msgtype,connectd_ping_reply,2130 |
110 | # False if we there was already a ping in progress. |
111 | msgdata,connectd_ping_reply,sent,bool, |
112 | # 0 == no pong expected, otherwise length of pong. |
113 | msgdata,connectd_ping_reply,totlen,u16, |
114 | # We tell lightningd we got an onionmsg |
115 | msgtype,connectd_got_onionmsg_to_us,2145 |
116 | msgdata,connectd_got_onionmsg_to_us,path_secret,?secret, |
117 | msgdata,connectd_got_onionmsg_to_us,reply,?blinded_path, |
118 | msgdata,connectd_got_onionmsg_to_us,rawmsg_len,u16, |
119 | msgdata,connectd_got_onionmsg_to_us,rawmsg,u8,rawmsg_len |
120 | # Lightningd tells us to send an onion message. |
121 | msgtype,connectd_send_onionmsg,2041 |
122 | msgdata,connectd_send_onionmsg,id,node_id, |
123 | msgdata,connectd_send_onionmsg,onion_len,u16, |
124 | msgdata,connectd_send_onionmsg,onion,u8,onion_len |
125 | msgdata,connectd_send_onionmsg,blinding,pubkey, |
126 | # A custom message that we got from a peer and don't know how to handle, so we |
127 | # forward it to the master for further handling. |
128 | msgtype,connectd_custommsg_in,2110 |
129 | msgdata,connectd_custommsg_in,id,node_id, |
130 | msgdata,connectd_custommsg_in,msg_len,u16, |
131 | msgdata,connectd_custommsg_in,msg,u8,msg_len |
132 | # A custom message that the lightningd tells us to send to the peer. |
133 | msgtype,connectd_custommsg_out,2011 |
134 | msgdata,connectd_custommsg_out,id,node_id, |
135 | msgdata,connectd_custommsg_out,msg_len,u16, |
136 | msgdata,connectd_custommsg_out,msg,u8,msg_len |
137 | # master -> connectd: we're shutting down, no new connections. |
138 | msgtype,connectd_start_shutdown,2031 |
139 | # connect - >master: acknowledged. |
140 | msgtype,connectd_start_shutdown_reply,2131 |
141 | # master -> connect: stop sending gossip. |
142 | msgtype,connectd_dev_suppress_gossip,2032 |
143 | # master -> connect: waste all your fds. |
144 | msgtype,connectd_dev_exhaust_fds,2036 |