@aztec/p2p 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/dest/bootstrap/bootstrap.js +41 -29
  2. package/dest/client/factory.js +8 -10
  3. package/dest/client/index.js +0 -1
  4. package/dest/client/p2p_client.js +513 -507
  5. package/dest/config.js +44 -39
  6. package/dest/errors/reqresp.error.js +6 -10
  7. package/dest/index.js +0 -1
  8. package/dest/mem_pools/attestation_pool/attestation_pool.js +6 -2
  9. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +64 -32
  10. package/dest/mem_pools/attestation_pool/index.js +0 -1
  11. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +22 -19
  12. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +22 -26
  13. package/dest/mem_pools/attestation_pool/mocks.js +10 -6
  14. package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.js +1 -2
  15. package/dest/mem_pools/epoch_proof_quote_pool/index.js +0 -1
  16. package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.js +5 -4
  17. package/dest/mem_pools/epoch_proof_quote_pool/test_utils.js +2 -3
  18. package/dest/mem_pools/index.js +1 -2
  19. package/dest/mem_pools/instrumentation.js +37 -42
  20. package/dest/mem_pools/interface.js +3 -2
  21. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +127 -134
  22. package/dest/mem_pools/tx_pool/index.js +0 -1
  23. package/dest/mem_pools/tx_pool/memory_tx_pool.js +45 -43
  24. package/dest/mem_pools/tx_pool/priority.js +1 -3
  25. package/dest/mem_pools/tx_pool/tx_pool.js +3 -2
  26. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +107 -37
  27. package/dest/mocks/index.js +47 -38
  28. package/dest/msg_validators/attestation_validator/attestation_validator.js +3 -3
  29. package/dest/msg_validators/attestation_validator/index.js +0 -1
  30. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +2 -2
  31. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  32. package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.js +2 -2
  33. package/dest/msg_validators/epoch_proof_quote_validator/index.js +0 -1
  34. package/dest/msg_validators/index.js +0 -1
  35. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +9 -11
  36. package/dest/msg_validators/tx_validator/block_header_validator.js +17 -12
  37. package/dest/msg_validators/tx_validator/data_validator.js +41 -32
  38. package/dest/msg_validators/tx_validator/double_spend_validator.js +22 -14
  39. package/dest/msg_validators/tx_validator/index.js +0 -1
  40. package/dest/msg_validators/tx_validator/metadata_validator.js +29 -26
  41. package/dest/msg_validators/tx_validator/tx_proof_validator.js +17 -12
  42. package/dest/services/data_store.js +57 -57
  43. package/dest/services/discv5/discV5_service.js +31 -23
  44. package/dest/services/dummy_service.js +40 -58
  45. package/dest/services/encoding.js +10 -9
  46. package/dest/services/index.js +0 -1
  47. package/dest/services/libp2p/libp2p_service.js +709 -695
  48. package/dest/services/peer-manager/metrics.js +14 -7
  49. package/dest/services/peer-manager/peer_manager.js +340 -342
  50. package/dest/services/peer-manager/peer_scoring.js +20 -18
  51. package/dest/services/reqresp/config.js +4 -5
  52. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +35 -28
  53. package/dest/services/reqresp/connection-sampler/connection_sampler.js +60 -59
  54. package/dest/services/reqresp/index.js +1 -3
  55. package/dest/services/reqresp/interface.js +25 -30
  56. package/dest/services/reqresp/metrics.js +23 -10
  57. package/dest/services/reqresp/protocols/block.js +1 -2
  58. package/dest/services/reqresp/protocols/goodbye.js +35 -40
  59. package/dest/services/reqresp/protocols/index.js +1 -3
  60. package/dest/services/reqresp/protocols/ping.js +1 -3
  61. package/dest/services/reqresp/protocols/status.js +1 -3
  62. package/dest/services/reqresp/protocols/tx.js +5 -8
  63. package/dest/services/reqresp/rate-limiter/index.js +0 -1
  64. package/dest/services/reqresp/rate-limiter/rate_limiter.js +42 -36
  65. package/dest/services/reqresp/rate-limiter/rate_limits.js +16 -17
  66. package/dest/services/reqresp/reqresp.js +461 -395
  67. package/dest/services/reqresp/status.js +51 -0
  68. package/dest/services/service.js +3 -4
  69. package/dest/services/types.js +16 -23
  70. package/dest/util.js +23 -34
  71. package/package.json +8 -8
  72. package/src/client/p2p_client.ts +159 -125
  73. package/src/mem_pools/index.ts +3 -3
  74. package/src/mem_pools/instrumentation.ts +3 -2
  75. package/src/services/reqresp/interface.ts +11 -0
  76. package/src/services/reqresp/rate-limiter/rate_limiter.ts +3 -1
  77. package/src/services/reqresp/rate-limiter/rate_limits.ts +2 -2
  78. package/src/services/reqresp/reqresp.ts +111 -24
  79. package/src/services/reqresp/status.ts +59 -0
  80. package/dest/bootstrap/bootstrap.d.ts +0 -38
  81. package/dest/bootstrap/bootstrap.d.ts.map +0 -1
  82. package/dest/client/factory.d.ts +0 -19
  83. package/dest/client/factory.d.ts.map +0 -1
  84. package/dest/client/index.d.ts +0 -3
  85. package/dest/client/index.d.ts.map +0 -1
  86. package/dest/client/p2p_client.d.ts +0 -321
  87. package/dest/client/p2p_client.d.ts.map +0 -1
  88. package/dest/config.d.ts +0 -171
  89. package/dest/config.d.ts.map +0 -1
  90. package/dest/errors/reqresp.error.d.ts +0 -28
  91. package/dest/errors/reqresp.error.d.ts.map +0 -1
  92. package/dest/index.d.ts +0 -9
  93. package/dest/index.d.ts.map +0 -1
  94. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +0 -57
  95. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +0 -1
  96. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +0 -3
  97. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +0 -1
  98. package/dest/mem_pools/attestation_pool/index.d.ts +0 -3
  99. package/dest/mem_pools/attestation_pool/index.d.ts.map +0 -1
  100. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -22
  101. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  102. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -17
  103. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  104. package/dest/mem_pools/attestation_pool/mocks.d.ts +0 -18
  105. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +0 -1
  106. package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts +0 -7
  107. package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts.map +0 -1
  108. package/dest/mem_pools/epoch_proof_quote_pool/index.d.ts +0 -4
  109. package/dest/mem_pools/epoch_proof_quote_pool/index.d.ts.map +0 -1
  110. package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts +0 -12
  111. package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts.map +0 -1
  112. package/dest/mem_pools/epoch_proof_quote_pool/test_utils.d.ts +0 -8
  113. package/dest/mem_pools/epoch_proof_quote_pool/test_utils.d.ts.map +0 -1
  114. package/dest/mem_pools/index.d.ts +0 -5
  115. package/dest/mem_pools/index.d.ts.map +0 -1
  116. package/dest/mem_pools/instrumentation.d.ts +0 -31
  117. package/dest/mem_pools/instrumentation.d.ts.map +0 -1
  118. package/dest/mem_pools/interface.d.ts +0 -13
  119. package/dest/mem_pools/interface.d.ts.map +0 -1
  120. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -66
  121. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  122. package/dest/mem_pools/tx_pool/index.d.ts +0 -4
  123. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  124. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -56
  125. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  126. package/dest/mem_pools/tx_pool/priority.d.ts +0 -8
  127. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  128. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -66
  129. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  130. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  131. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  132. package/dest/mocks/index.d.ts +0 -54
  133. package/dest/mocks/index.d.ts.map +0 -1
  134. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +0 -8
  135. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +0 -1
  136. package/dest/msg_validators/attestation_validator/index.d.ts +0 -2
  137. package/dest/msg_validators/attestation_validator/index.d.ts.map +0 -1
  138. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -8
  139. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  140. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  141. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  142. package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.d.ts +0 -8
  143. package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.d.ts.map +0 -1
  144. package/dest/msg_validators/epoch_proof_quote_validator/index.d.ts +0 -2
  145. package/dest/msg_validators/epoch_proof_quote_validator/index.d.ts.map +0 -1
  146. package/dest/msg_validators/index.d.ts +0 -4
  147. package/dest/msg_validators/index.d.ts.map +0 -1
  148. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +0 -7
  149. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +0 -1
  150. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +0 -11
  151. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +0 -1
  152. package/dest/msg_validators/tx_validator/data_validator.d.ts +0 -6
  153. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +0 -1
  154. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +0 -12
  155. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +0 -1
  156. package/dest/msg_validators/tx_validator/index.d.ts +0 -7
  157. package/dest/msg_validators/tx_validator/index.d.ts.map +0 -1
  158. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +0 -10
  159. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +0 -1
  160. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +0 -8
  161. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +0 -1
  162. package/dest/services/data_store.d.ts +0 -27
  163. package/dest/services/data_store.d.ts.map +0 -1
  164. package/dest/services/discv5/discV5_service.d.ts +0 -36
  165. package/dest/services/discv5/discV5_service.d.ts.map +0 -1
  166. package/dest/services/dummy_service.d.ts +0 -82
  167. package/dest/services/dummy_service.d.ts.map +0 -1
  168. package/dest/services/encoding.d.ts +0 -31
  169. package/dest/services/encoding.d.ts.map +0 -1
  170. package/dest/services/index.d.ts +0 -3
  171. package/dest/services/index.d.ts.map +0 -1
  172. package/dest/services/libp2p/libp2p_service.d.ts +0 -225
  173. package/dest/services/libp2p/libp2p_service.d.ts.map +0 -1
  174. package/dest/services/peer-manager/metrics.d.ts +0 -12
  175. package/dest/services/peer-manager/metrics.d.ts.map +0 -1
  176. package/dest/services/peer-manager/peer_manager.d.ts +0 -76
  177. package/dest/services/peer-manager/peer_manager.d.ts.map +0 -1
  178. package/dest/services/peer-manager/peer_scoring.d.ts +0 -28
  179. package/dest/services/peer-manager/peer_scoring.d.ts.map +0 -1
  180. package/dest/services/reqresp/config.d.ts +0 -16
  181. package/dest/services/reqresp/config.d.ts.map +0 -1
  182. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -45
  183. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  184. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +0 -61
  185. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +0 -1
  186. package/dest/services/reqresp/index.d.ts +0 -6
  187. package/dest/services/reqresp/index.d.ts.map +0 -1
  188. package/dest/services/reqresp/interface.d.ts +0 -107
  189. package/dest/services/reqresp/interface.d.ts.map +0 -1
  190. package/dest/services/reqresp/metrics.d.ts +0 -15
  191. package/dest/services/reqresp/metrics.d.ts.map +0 -1
  192. package/dest/services/reqresp/protocols/block.d.ts +0 -4
  193. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  194. package/dest/services/reqresp/protocols/goodbye.d.ts +0 -51
  195. package/dest/services/reqresp/protocols/goodbye.d.ts.map +0 -1
  196. package/dest/services/reqresp/protocols/index.d.ts +0 -9
  197. package/dest/services/reqresp/protocols/index.d.ts.map +0 -1
  198. package/dest/services/reqresp/protocols/ping.d.ts +0 -9
  199. package/dest/services/reqresp/protocols/ping.d.ts.map +0 -1
  200. package/dest/services/reqresp/protocols/status.d.ts +0 -9
  201. package/dest/services/reqresp/protocols/status.d.ts.map +0 -1
  202. package/dest/services/reqresp/protocols/tx.d.ts +0 -13
  203. package/dest/services/reqresp/protocols/tx.d.ts.map +0 -1
  204. package/dest/services/reqresp/rate-limiter/index.d.ts +0 -2
  205. package/dest/services/reqresp/rate-limiter/index.d.ts.map +0 -1
  206. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +0 -102
  207. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +0 -1
  208. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +0 -3
  209. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +0 -1
  210. package/dest/services/reqresp/reqresp.d.ts +0 -161
  211. package/dest/services/reqresp/reqresp.d.ts.map +0 -1
  212. package/dest/services/service.d.ts +0 -85
  213. package/dest/services/service.d.ts.map +0 -1
  214. package/dest/services/types.d.ts +0 -38
  215. package/dest/services/types.d.ts.map +0 -1
  216. package/dest/util.d.ts +0 -53
  217. package/dest/util.d.ts.map +0 -1
@@ -2,24 +2,19 @@ import { createLogger } from '@aztec/foundation/log';
2
2
  import { ReqRespSubProtocol } from '../interface.js';
3
3
  /**
4
4
  * Enum defining the possible reasons for a goodbye message.
5
- */
6
- export var GoodByeReason;
7
- (function (GoodByeReason) {
8
- /** The peer has shutdown, will be received whenever a peer's node is routinely stopped */
9
- GoodByeReason[GoodByeReason["SHUTDOWN"] = 1] = "SHUTDOWN";
10
- /** Whenever the peer must disconnect due to maintaining max peers */
11
- GoodByeReason[GoodByeReason["DISCONNECTED"] = 2] = "DISCONNECTED";
12
- /** The peer has a low score, will be received whenever a peer's score is low */
13
- GoodByeReason[GoodByeReason["LOW_SCORE"] = 3] = "LOW_SCORE";
14
- /** The peer has been banned, will be received whenever a peer is banned */
15
- GoodByeReason[GoodByeReason["BANNED"] = 4] = "BANNED";
16
- /** Wrong network / fork */
17
- GoodByeReason[GoodByeReason["WRONG_NETWORK"] = 5] = "WRONG_NETWORK";
18
- /** Unknown reason */
19
- GoodByeReason[GoodByeReason["UNKNOWN"] = 6] = "UNKNOWN";
20
- })(GoodByeReason || (GoodByeReason = {}));
5
+ */ export var GoodByeReason = /*#__PURE__*/ function(GoodByeReason) {
6
+ /** The peer has shutdown, will be received whenever a peer's node is routinely stopped */ GoodByeReason[GoodByeReason["SHUTDOWN"] = 1] = "SHUTDOWN";
7
+ /** Whenever the peer must disconnect due to maintaining max peers */ GoodByeReason[GoodByeReason["DISCONNECTED"] = 2] = "DISCONNECTED";
8
+ /** The peer has a low score, will be received whenever a peer's score is low */ GoodByeReason[GoodByeReason["LOW_SCORE"] = 3] = "LOW_SCORE";
9
+ /** The peer has been banned, will be received whenever a peer is banned */ GoodByeReason[GoodByeReason["BANNED"] = 4] = "BANNED";
10
+ /** Wrong network / fork */ GoodByeReason[GoodByeReason["WRONG_NETWORK"] = 5] = "WRONG_NETWORK";
11
+ /** Unknown reason */ GoodByeReason[GoodByeReason["UNKNOWN"] = 6] = "UNKNOWN";
12
+ return GoodByeReason;
13
+ }({});
21
14
  export function encodeGoodbyeReason(reason) {
22
- return Buffer.from([reason]);
15
+ return Buffer.from([
16
+ reason
17
+ ]);
23
18
  }
24
19
  export function decodeGoodbyeReason(buffer) {
25
20
  try {
@@ -27,47 +22,47 @@ export function decodeGoodbyeReason(buffer) {
27
22
  throw new Error('Invalid goodbye reason buffer length');
28
23
  }
29
24
  return buffer[0];
30
- }
31
- catch (error) {
32
- return GoodByeReason.UNKNOWN;
25
+ } catch (error) {
26
+ return 6;
33
27
  }
34
28
  }
35
29
  /**
36
30
  * Pretty prints the goodbye reason.
37
31
  * @param reason - The goodbye reason.
38
32
  * @returns The pretty printed goodbye reason.
39
- */
40
- export function prettyGoodbyeReason(reason) {
41
- switch (reason) {
42
- case GoodByeReason.SHUTDOWN:
33
+ */ export function prettyGoodbyeReason(reason) {
34
+ switch(reason){
35
+ case 1:
43
36
  return 'shutdown';
44
- case GoodByeReason.DISCONNECTED:
37
+ case 2:
45
38
  return 'disconnected';
46
- case GoodByeReason.LOW_SCORE:
39
+ case 3:
47
40
  return 'low_score';
48
- case GoodByeReason.BANNED:
41
+ case 4:
49
42
  return 'banned';
50
43
  // TODO(#11328): implement
51
- case GoodByeReason.WRONG_NETWORK:
44
+ case 5:
52
45
  return 'wrong_network';
53
- case GoodByeReason.UNKNOWN:
46
+ case 6:
54
47
  return 'unknown';
55
48
  }
56
49
  }
57
50
  /**
58
51
  * Handles a goodbye message request
59
- */
60
- export class GoodbyeProtocolHandler {
61
- constructor(reqresp) {
52
+ */ export class GoodbyeProtocolHandler {
53
+ reqresp;
54
+ logger;
55
+ constructor(reqresp){
62
56
  this.reqresp = reqresp;
63
57
  this.logger = createLogger('p2p:goodbye-protocol');
64
58
  }
65
59
  async sendGoodbye(peerId, reason) {
66
60
  try {
67
- await this.reqresp.sendRequestToPeer(peerId, ReqRespSubProtocol.GOODBYE, Buffer.from([reason]));
61
+ await this.reqresp.sendRequestToPeer(peerId, ReqRespSubProtocol.GOODBYE, Buffer.from([
62
+ reason
63
+ ]));
68
64
  this.logger.debug(`Sent goodbye to peer ${peerId.toString()} with reason ${reason}`);
69
- }
70
- catch (error) {
65
+ } catch (error) {
71
66
  this.logger.debug(`Failed to send goodbye to peer ${peerId.toString()}: ${error}`);
72
67
  }
73
68
  }
@@ -80,13 +75,13 @@ export class GoodbyeProtocolHandler {
80
75
  *
81
76
  * @param peerManager - The peer manager.
82
77
  * @returns A resolved promise with the goodbye response.
83
- */
84
- export function reqGoodbyeHandler(peerManager) {
85
- return (peerId, _msg) => {
78
+ */ export function reqGoodbyeHandler(peerManager) {
79
+ return (peerId, _msg)=>{
86
80
  const reason = decodeGoodbyeReason(_msg);
87
81
  peerManager.goodbyeReceived(peerId, reason);
88
82
  // Return a buffer of length 1 as an acknowledgement
89
- return Promise.resolve(Buffer.from([0x0]));
83
+ return Promise.resolve(Buffer.from([
84
+ 0x0
85
+ ]));
90
86
  };
91
87
  }
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZGJ5ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9nb29kYnllLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUtyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWtDLE1BQU0saUJBQWlCLENBQUM7QUFHckY7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxhQWFYO0FBYkQsV0FBWSxhQUFhO0lBQ3ZCLDBGQUEwRjtJQUMxRix5REFBYyxDQUFBO0lBQ2QscUVBQXFFO0lBQ3JFLGlFQUFrQixDQUFBO0lBQ2xCLGdGQUFnRjtJQUNoRiwyREFBZSxDQUFBO0lBQ2YsMkVBQTJFO0lBQzNFLHFEQUFZLENBQUE7SUFDWiwyQkFBMkI7SUFDM0IsbUVBQW1CLENBQUE7SUFDbkIscUJBQXFCO0lBQ3JCLHVEQUFhLENBQUE7QUFDZixDQUFDLEVBYlcsYUFBYSxLQUFiLGFBQWEsUUFheEI7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBcUI7SUFDdkQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLE1BQWM7SUFDaEQsSUFBSSxDQUFDO1FBQ0gsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFrQixDQUFDO0lBQ3BDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFxQjtJQUN2RCxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxhQUFhLENBQUMsUUFBUTtZQUN6QixPQUFPLFVBQVUsQ0FBQztRQUNwQixLQUFLLGFBQWEsQ0FBQyxZQUFZO1lBQzdCLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLEtBQUssYUFBYSxDQUFDLFNBQVM7WUFDMUIsT0FBTyxXQUFXLENBQUM7UUFDckIsS0FBSyxhQUFhLENBQUMsTUFBTTtZQUN2QixPQUFPLFFBQVEsQ0FBQztRQUNsQiwwQkFBMEI7UUFDMUIsS0FBSyxhQUFhLENBQUMsYUFBYTtZQUM5QixPQUFPLGVBQWUsQ0FBQztRQUN6QixLQUFLLGFBQWEsQ0FBQyxPQUFPO1lBQ3hCLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQW9CLE9BQWdCO1FBQWhCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFGNUIsV0FBTSxHQUFHLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBRWYsQ0FBQztJQUVqQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQWMsRUFBRSxNQUFxQjtRQUM1RCxJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixNQUFNLENBQUMsUUFBUSxFQUFFLGdCQUFnQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxXQUF3QjtJQUN4RCxPQUFPLENBQUMsTUFBYyxFQUFFLElBQVksRUFBRSxFQUFFO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLFdBQVcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTVDLG9EQUFvRDtRQUNwRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUM7QUFDSixDQUFDIn0=
@@ -1,9 +1,7 @@
1
1
  /**
2
2
  * Request Response protocol handlers
3
- */
4
- export * from './ping.js';
3
+ */ export * from './ping.js';
5
4
  export * from './status.js';
6
5
  export * from './tx.js';
7
6
  export * from './goodbye.js';
8
7
  export * from './block.js';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9wcm90b2NvbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFlBQVksQ0FBQyJ9
@@ -2,8 +2,6 @@
2
2
  * Handles the ping request.
3
3
  * @param _msg - The ping request message.
4
4
  * @returns A resolved promise with the pong response.
5
- */
6
- export function pingHandler(_msg) {
5
+ */ export function pingHandler(_msg) {
7
6
  return Promise.resolve(Buffer.from('pong'));
8
7
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9waW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVM7SUFDbkMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUM5QyxDQUFDIn0=
@@ -2,8 +2,6 @@
2
2
  * Handles the status request.
3
3
  * @param _msg - The status request message.
4
4
  * @returns A resolved promise with the ok response.
5
- */
6
- export function statusHandler(_msg) {
5
+ */ export function statusHandler(_msg) {
7
6
  return Promise.resolve(Buffer.from('ok'));
8
7
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvcHJvdG9jb2xzL3N0YXR1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFTO0lBQ3JDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUMsQ0FBQyJ9
@@ -6,18 +6,15 @@ import { TxHash } from '@aztec/circuit-types/tx_hash';
6
6
  * Handler for tx requests
7
7
  * @param mempools - the mempools
8
8
  * @returns the tx response message
9
- */
10
- export function reqRespTxHandler(mempools) {
9
+ */ export function reqRespTxHandler(mempools) {
11
10
  /**
12
- * Handler for tx requests
13
- * @param msg - the tx request message
14
- * @returns the tx response message
15
- */
16
- return async (_peerId, msg) => {
11
+ * Handler for tx requests
12
+ * @param msg - the tx request message
13
+ * @returns the tx response message
14
+ */ return async (_peerId, msg)=>{
17
15
  const txHash = TxHash.fromBuffer(msg);
18
16
  const foundTx = await mempools.txPool.getTxByHash(txHash);
19
17
  const buf = foundTx ? foundTx.toBuffer() : Buffer.alloc(0);
20
18
  return buf;
21
19
  };
22
20
  }
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9wcm90b2NvbHMvdHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBT3REOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQTBCLFFBQXFCO0lBQzdFOzs7O09BSUc7SUFDSCxPQUFPLEtBQUssRUFBRSxPQUFlLEVBQUUsR0FBVyxFQUFFLEVBQUU7UUFDNUMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFELE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,2 +1 @@
1
1
  export { RequestResponseRateLimiter } from './rate_limiter.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9yYXRlLWxpbWl0ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUMifQ==
@@ -2,8 +2,7 @@
2
2
  * @attribution Rate limiter approach implemented in the lodestar ethereum 2 client.
3
3
  * Rationale is that if it was good enough for them, then it should be good enough for us.
4
4
  * https://github.com/ChainSafe/lodestar
5
- */
6
- import { PeerErrorSeverity } from '@aztec/circuit-types';
5
+ */ import { PeerErrorSeverity } from '@aztec/circuit-types';
7
6
  import { DEFAULT_RATE_LIMITS } from './rate_limits.js';
8
7
  // Check for disconnected peers every 10 minutes
9
8
  const CHECK_DISCONNECTED_PEERS_INTERVAL_MS = 10 * 60 * 1000;
@@ -26,13 +25,17 @@ const CHECK_DISCONNECTED_PEERS_INTERVAL_MS = 10 * 60 * 1000;
26
25
  * ```
27
26
  * const limiter = new GCRARateLimiter(100, 60000); // 100 operations per minute
28
27
  * ```
29
- */
30
- export class GCRARateLimiter {
28
+ */ export class GCRARateLimiter {
29
+ // Virtual scheduling time: i.e. the time at which we should allow the next request
30
+ vst;
31
+ // The interval at which we emit a new token
32
+ emissionInterval;
33
+ // The interval over which we limit the number of requests
34
+ limitInterval;
31
35
  /**
32
- * @param quotaCount - The number of requests to allow over the limit interval
33
- * @param quotaTimeMs - The time interval over which the quotaCount applies
34
- */
35
- constructor(quotaCount, quotaTimeMs) {
36
+ * @param quotaCount - The number of requests to allow over the limit interval
37
+ * @param quotaTimeMs - The time interval over which the quotaCount applies
38
+ */ constructor(quotaCount, quotaTimeMs){
36
39
  this.emissionInterval = quotaTimeMs / quotaCount;
37
40
  this.limitInterval = quotaTimeMs;
38
41
  this.vst = Date.now();
@@ -47,12 +50,12 @@ export class GCRARateLimiter {
47
50
  return false;
48
51
  }
49
52
  }
50
- var RateLimitStatus;
51
- (function (RateLimitStatus) {
53
+ var RateLimitStatus = /*#__PURE__*/ function(RateLimitStatus) {
52
54
  RateLimitStatus[RateLimitStatus["Allowed"] = 0] = "Allowed";
53
55
  RateLimitStatus[RateLimitStatus["DeniedGlobal"] = 1] = "DeniedGlobal";
54
56
  RateLimitStatus[RateLimitStatus["DeniedPeer"] = 2] = "DeniedPeer";
55
- })(RateLimitStatus || (RateLimitStatus = {}));
57
+ return RateLimitStatus;
58
+ }(RateLimitStatus || {});
56
59
  /**
57
60
  * SubProtocolRateLimiter: A rate limiter for managing request rates on a per-peer and global basis for a specific subprotocol.
58
61
  *
@@ -68,10 +71,12 @@ var RateLimitStatus;
68
71
  * - It periodically cleans up rate limiters for inactive peers to conserve memory.
69
72
  *
70
73
  * Note: Remember to call `start()` to begin the cleanup process and `stop()` when shutting down to clear the cleanup interval.
71
- */
72
- export class SubProtocolRateLimiter {
73
- constructor(peerQuotaCount, peerQuotaTimeMs, globalQuotaCount, globalQuotaTimeMs) {
74
- this.peerLimiters = new Map();
74
+ */ export class SubProtocolRateLimiter {
75
+ peerLimiters = new Map();
76
+ globalLimiter;
77
+ peerQuotaCount;
78
+ peerQuotaTimeMs;
79
+ constructor(peerQuotaCount, peerQuotaTimeMs, globalQuotaCount, globalQuotaTimeMs){
75
80
  this.peerLimiters = new Map();
76
81
  this.globalLimiter = new GCRARateLimiter(globalQuotaCount, globalQuotaTimeMs);
77
82
  this.peerQuotaCount = peerQuotaCount;
@@ -79,7 +84,7 @@ export class SubProtocolRateLimiter {
79
84
  }
80
85
  allow(peerId) {
81
86
  if (!this.globalLimiter.allow()) {
82
- return RateLimitStatus.DeniedGlobal;
87
+ return 1;
83
88
  }
84
89
  const peerIdStr = peerId.toString();
85
90
  let peerLimiter = this.peerLimiters.get(peerIdStr);
@@ -87,22 +92,21 @@ export class SubProtocolRateLimiter {
87
92
  // Create a limiter for this peer
88
93
  peerLimiter = {
89
94
  limiter: new GCRARateLimiter(this.peerQuotaCount, this.peerQuotaTimeMs),
90
- lastAccess: Date.now(),
95
+ lastAccess: Date.now()
91
96
  };
92
97
  this.peerLimiters.set(peerIdStr, peerLimiter);
93
- }
94
- else {
98
+ } else {
95
99
  peerLimiter.lastAccess = Date.now();
96
100
  }
97
101
  const peerLimitAllowed = peerLimiter.limiter.allow();
98
102
  if (!peerLimitAllowed) {
99
- return RateLimitStatus.DeniedPeer;
103
+ return 2;
100
104
  }
101
- return RateLimitStatus.Allowed;
105
+ return 0;
102
106
  }
103
107
  cleanupInactivePeers() {
104
108
  const now = Date.now();
105
- this.peerLimiters.forEach((peerLimiter, peerId) => {
109
+ this.peerLimiters.forEach((peerLimiter, peerId)=>{
106
110
  if (now - peerLimiter.lastAccess > CHECK_DISCONNECTED_PEERS_INTERVAL_MS) {
107
111
  this.peerLimiters.delete(peerId);
108
112
  }
@@ -131,18 +135,20 @@ export class SubProtocolRateLimiter {
131
135
  * const limiter = new RequestResponseRateLimiter(peerManager, rateLimits);
132
136
  *
133
137
  * Note: Ensure to call `stop()` when shutting down to properly clean up all subprotocol limiters.
134
- */
135
- export class RequestResponseRateLimiter {
136
- constructor(peerScoring, rateLimits = DEFAULT_RATE_LIMITS) {
138
+ */ export class RequestResponseRateLimiter {
139
+ peerScoring;
140
+ subProtocolRateLimiters;
141
+ cleanupInterval;
142
+ constructor(peerScoring, rateLimits = DEFAULT_RATE_LIMITS){
137
143
  this.peerScoring = peerScoring;
138
144
  this.cleanupInterval = undefined;
139
145
  this.subProtocolRateLimiters = new Map();
140
- for (const [subProtocol, protocolLimits] of Object.entries(rateLimits)) {
146
+ for (const [subProtocol, protocolLimits] of Object.entries(rateLimits)){
141
147
  this.subProtocolRateLimiters.set(subProtocol, new SubProtocolRateLimiter(protocolLimits.peerLimit.quotaCount, protocolLimits.peerLimit.quotaTimeMs, protocolLimits.globalLimit.quotaCount, protocolLimits.globalLimit.quotaTimeMs));
142
148
  }
143
149
  }
144
150
  start() {
145
- this.cleanupInterval = setInterval(() => {
151
+ this.cleanupInterval = setInterval(()=>{
146
152
  this.cleanupInactivePeers();
147
153
  }, CHECK_DISCONNECTED_PEERS_INTERVAL_MS);
148
154
  }
@@ -152,24 +158,24 @@ export class RequestResponseRateLimiter {
152
158
  return true;
153
159
  }
154
160
  const rateLimitStatus = limiter.allow(peerId);
155
- switch (rateLimitStatus) {
156
- case RateLimitStatus.DeniedPeer:
157
- this.peerScoring.penalizePeer(peerId, PeerErrorSeverity.MidToleranceError);
161
+ switch(rateLimitStatus){
162
+ case 2:
163
+ // Hitting a peer specific limit, we should lightly penalise the peer
164
+ this.peerScoring.penalizePeer(peerId, PeerErrorSeverity.HighToleranceError);
158
165
  return false;
159
- case RateLimitStatus.DeniedGlobal:
166
+ case 1:
167
+ // Hitting a global limit, we should not penalise the peer
160
168
  return false;
161
169
  default:
162
170
  return true;
163
171
  }
164
172
  }
165
173
  cleanupInactivePeers() {
166
- this.subProtocolRateLimiters.forEach(limiter => limiter.cleanupInactivePeers());
174
+ this.subProtocolRateLimiters.forEach((limiter)=>limiter.cleanupInactivePeers());
167
175
  }
168
176
  /**
169
- * Make sure to call destroy on each of the sub protocol rate limiters when cleaning up
170
- */
171
- stop() {
177
+ * Make sure to call destroy on each of the sub protocol rate limiters when cleaning up
178
+ */ stop() {
172
179
  clearInterval(this.cleanupInterval);
173
180
  }
174
181
  }
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZV9saW1pdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3JlcXJlc3AvcmF0ZS1saW1pdGVyL3JhdGVfbGltaXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFNekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsZ0RBQWdEO0FBQ2hELE1BQU0sb0NBQW9DLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFNUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQVExQjs7O09BR0c7SUFDSCxZQUFZLFVBQWtCLEVBQUUsV0FBbUI7UUFDakQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsR0FBRyxVQUFVLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7UUFDakMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELEtBQUs7UUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFdkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvRCxJQUFJLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FBU0QsSUFBSyxlQUlKO0FBSkQsV0FBSyxlQUFlO0lB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
@@ -4,52 +4,51 @@ export const DEFAULT_RATE_LIMITS = {
4
4
  [ReqRespSubProtocol.PING]: {
5
5
  peerLimit: {
6
6
  quotaTimeMs: 1000,
7
- quotaCount: 5,
7
+ quotaCount: 5
8
8
  },
9
9
  globalLimit: {
10
10
  quotaTimeMs: 1000,
11
- quotaCount: 10,
12
- },
11
+ quotaCount: 10
12
+ }
13
13
  },
14
14
  [ReqRespSubProtocol.STATUS]: {
15
15
  peerLimit: {
16
16
  quotaTimeMs: 1000,
17
- quotaCount: 5,
17
+ quotaCount: 5
18
18
  },
19
19
  globalLimit: {
20
20
  quotaTimeMs: 1000,
21
- quotaCount: 10,
22
- },
21
+ quotaCount: 10
22
+ }
23
23
  },
24
24
  [ReqRespSubProtocol.TX]: {
25
25
  peerLimit: {
26
26
  quotaTimeMs: 1000,
27
- quotaCount: 5,
27
+ quotaCount: 10
28
28
  },
29
29
  globalLimit: {
30
30
  quotaTimeMs: 1000,
31
- quotaCount: 10,
32
- },
31
+ quotaCount: 20
32
+ }
33
33
  },
34
34
  [ReqRespSubProtocol.BLOCK]: {
35
35
  peerLimit: {
36
36
  quotaTimeMs: 1000,
37
- quotaCount: 2,
37
+ quotaCount: 2
38
38
  },
39
39
  globalLimit: {
40
40
  quotaTimeMs: 1000,
41
- quotaCount: 5,
42
- },
41
+ quotaCount: 5
42
+ }
43
43
  },
44
44
  [ReqRespSubProtocol.GOODBYE]: {
45
45
  peerLimit: {
46
46
  quotaTimeMs: 1000,
47
- quotaCount: 5,
47
+ quotaCount: 5
48
48
  },
49
49
  globalLimit: {
50
50
  quotaTimeMs: 1000,
51
- quotaCount: 10,
52
- },
53
- },
51
+ quotaCount: 10
52
+ }
53
+ }
54
54
  };
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZV9saW1pdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9yYXRlLWxpbWl0ZXIvcmF0ZV9saW1pdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFxQyxNQUFNLGlCQUFpQixDQUFDO0FBRXhGLDRDQUE0QztBQUM1QyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBaUM7SUFDL0QsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN6QixTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsQ0FBQztTQUNkO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLEVBQUU7U0FDZjtLQUNGO0lBQ0QsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMzQixTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsQ0FBQztTQUNkO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLEVBQUU7U0FDZjtLQUNGO0lBQ0QsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRTtRQUN2QixTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsQ0FBQztTQUNkO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLEVBQUU7U0FDZjtLQUNGO0lBQ0QsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUMxQixTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsQ0FBQztTQUNkO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLENBQUM7U0FDZDtLQUNGO0lBQ0QsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUM1QixTQUFTLEVBQUU7WUFDVCxXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsQ0FBQztTQUNkO1FBQ0QsV0FBVyxFQUFFO1lBQ1gsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLEVBQUU7U0FDZjtLQUNGO0NBQ0YsQ0FBQyJ9