@aztec/p2p 0.0.1-commit.8c0b8ff → 0.0.1-commit.8cb2d04d8

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 (270) hide show
  1. package/dest/client/factory.d.ts +2 -2
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +1 -0
  4. package/dest/client/interface.d.ts +9 -2
  5. package/dest/client/interface.d.ts.map +1 -1
  6. package/dest/client/p2p_client.d.ts +3 -2
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +30 -8
  9. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +17 -6
  10. package/dest/config.d.ts +107 -103
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +17 -12
  13. package/dest/errors/p2p-service.error.d.ts +9 -0
  14. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  15. package/dest/errors/p2p-service.error.js +10 -0
  16. package/dest/index.d.ts +1 -2
  17. package/dest/index.d.ts.map +1 -1
  18. package/dest/index.js +0 -1
  19. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +7 -5
  20. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  21. package/dest/mem_pools/attestation_pool/attestation_pool.js +16 -9
  22. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +6 -6
  23. package/dest/mem_pools/index.d.ts +1 -2
  24. package/dest/mem_pools/index.d.ts.map +1 -1
  25. package/dest/mem_pools/instrumentation.d.ts +4 -2
  26. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  27. package/dest/mem_pools/instrumentation.js +16 -14
  28. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
  29. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +7 -5
  30. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  31. package/dest/mem_pools/tx_pool_v2/interfaces.js +1 -0
  32. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +5 -6
  33. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  34. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +6 -2
  35. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
  36. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  37. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +26 -43
  38. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +1 -1
  39. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  40. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +3 -0
  41. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +2 -1
  42. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  43. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +18 -1
  44. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  45. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  46. package/dest/msg_validators/attestation_validator/attestation_validator.js +20 -11
  47. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +4 -2
  48. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  49. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +2 -2
  50. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  51. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  52. package/dest/msg_validators/clock_tolerance.js +54 -3
  53. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +2 -1
  54. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  55. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +2 -1
  56. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  57. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +3 -1
  58. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  59. package/dest/msg_validators/proposal_validator/proposal_validator.js +19 -11
  60. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  61. package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
  62. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  63. package/dest/msg_validators/tx_validator/gas_validator.js +11 -9
  64. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  65. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  66. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  67. package/dest/services/data_store.d.ts +1 -1
  68. package/dest/services/data_store.d.ts.map +1 -1
  69. package/dest/services/data_store.js +5 -5
  70. package/dest/services/dummy_service.d.ts +6 -3
  71. package/dest/services/dummy_service.d.ts.map +1 -1
  72. package/dest/services/dummy_service.js +6 -1
  73. package/dest/services/gossipsub/topic_score_params.d.ts +13 -2
  74. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  75. package/dest/services/gossipsub/topic_score_params.js +21 -4
  76. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  77. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  78. package/dest/services/libp2p/instrumentation.js +14 -0
  79. package/dest/services/libp2p/libp2p_service.d.ts +15 -25
  80. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  81. package/dest/services/libp2p/libp2p_service.js +150 -115
  82. package/dest/services/peer-manager/metrics.d.ts +3 -1
  83. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  84. package/dest/services/peer-manager/metrics.js +6 -0
  85. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  86. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  87. package/dest/services/peer-manager/peer_manager.js +39 -11
  88. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  89. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  90. package/dest/services/peer-manager/peer_scoring.js +32 -10
  91. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +11 -8
  92. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  93. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +82 -101
  94. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +3 -2
  95. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  96. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +5 -4
  97. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  98. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +13 -7
  99. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -11
  100. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  101. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +52 -15
  102. package/dest/services/reqresp/config.d.ts +3 -3
  103. package/dest/services/reqresp/config.d.ts.map +1 -1
  104. package/dest/services/reqresp/interface.d.ts +14 -9
  105. package/dest/services/reqresp/interface.d.ts.map +1 -1
  106. package/dest/services/reqresp/interface.js +10 -11
  107. package/dest/services/reqresp/metrics.d.ts +1 -1
  108. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  109. package/dest/services/reqresp/metrics.js +0 -1
  110. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  111. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  112. package/dest/services/reqresp/protocols/index.js +0 -1
  113. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  114. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  115. package/dest/services/reqresp/protocols/tx.js +1 -3
  116. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  117. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  118. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  119. package/dest/services/reqresp/reqresp.d.ts +4 -2
  120. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  121. package/dest/services/reqresp/reqresp.js +13 -3
  122. package/dest/services/service.d.ts +5 -2
  123. package/dest/services/service.d.ts.map +1 -1
  124. package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -4
  125. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  126. package/dest/services/tx_collection/fast_tx_collection.js +57 -73
  127. package/dest/services/tx_collection/proposal_tx_collector.d.ts +6 -7
  128. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  129. package/dest/services/tx_collection/proposal_tx_collector.js +4 -4
  130. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  131. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  132. package/dest/services/tx_collection/request_tracker.js +84 -0
  133. package/dest/services/tx_collection/slow_tx_collection.js +1 -1
  134. package/dest/services/tx_collection/tx_collection.d.ts +3 -6
  135. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  136. package/dest/test-helpers/make-test-p2p-clients.d.ts +1 -1
  137. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  138. package/dest/test-helpers/mock-pubsub.d.ts +11 -3
  139. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  140. package/dest/test-helpers/mock-pubsub.js +35 -10
  141. package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
  142. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  143. package/dest/test-helpers/reqresp-nodes.js +1 -2
  144. package/dest/test-helpers/testbench-utils.d.ts +1 -1
  145. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  146. package/dest/test-helpers/testbench-utils.js +21 -2
  147. package/dest/testbench/p2p_client_testbench_worker.js +66 -15
  148. package/dest/testbench/worker_client_manager.d.ts +8 -1
  149. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  150. package/dest/testbench/worker_client_manager.js +51 -2
  151. package/dest/util.d.ts +1 -1
  152. package/package.json +14 -14
  153. package/src/client/factory.ts +2 -1
  154. package/src/client/interface.ts +9 -1
  155. package/src/client/p2p_client.ts +34 -9
  156. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +19 -9
  157. package/src/config.ts +29 -17
  158. package/src/errors/p2p-service.error.ts +11 -0
  159. package/src/index.ts +0 -1
  160. package/src/mem_pools/attestation_pool/attestation_pool.ts +17 -12
  161. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +6 -6
  162. package/src/mem_pools/index.ts +0 -3
  163. package/src/mem_pools/instrumentation.ts +17 -13
  164. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +3 -3
  165. package/src/mem_pools/tx_pool_v2/interfaces.ts +7 -4
  166. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +12 -6
  167. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +29 -43
  168. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +3 -0
  169. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +19 -1
  170. package/src/msg_validators/attestation_validator/README.md +1 -1
  171. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -9
  172. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +4 -1
  173. package/src/msg_validators/clock_tolerance.ts +72 -3
  174. package/src/msg_validators/proposal_validator/README.md +4 -4
  175. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +4 -1
  176. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +4 -1
  177. package/src/msg_validators/proposal_validator/proposal_validator.ts +17 -10
  178. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  179. package/src/msg_validators/tx_validator/gas_validator.ts +25 -9
  180. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  181. package/src/services/data_store.ts +5 -13
  182. package/src/services/dummy_service.ts +8 -2
  183. package/src/services/gossipsub/topic_score_params.ts +36 -4
  184. package/src/services/libp2p/instrumentation.ts +14 -0
  185. package/src/services/libp2p/libp2p_service.ts +146 -130
  186. package/src/services/peer-manager/metrics.ts +7 -0
  187. package/src/services/peer-manager/peer_manager.ts +45 -11
  188. package/src/services/peer-manager/peer_scoring.ts +27 -5
  189. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  190. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +78 -111
  191. package/src/services/reqresp/batch-tx-requester/interface.ts +2 -1
  192. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +13 -6
  193. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
  194. package/src/services/reqresp/config.ts +2 -2
  195. package/src/services/reqresp/interface.ts +21 -11
  196. package/src/services/reqresp/metrics.ts +0 -1
  197. package/src/services/reqresp/protocols/index.ts +0 -1
  198. package/src/services/reqresp/protocols/tx.ts +1 -3
  199. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  200. package/src/services/reqresp/reqresp.ts +21 -2
  201. package/src/services/service.ts +6 -1
  202. package/src/services/tx_collection/fast_tx_collection.ts +57 -83
  203. package/src/services/tx_collection/proposal_tx_collector.ts +8 -13
  204. package/src/services/tx_collection/request_tracker.ts +127 -0
  205. package/src/services/tx_collection/slow_tx_collection.ts +1 -1
  206. package/src/services/tx_collection/tx_collection.ts +3 -5
  207. package/src/test-helpers/make-test-p2p-clients.ts +1 -1
  208. package/src/test-helpers/mock-pubsub.ts +31 -5
  209. package/src/test-helpers/reqresp-nodes.ts +3 -3
  210. package/src/test-helpers/testbench-utils.ts +29 -3
  211. package/src/testbench/p2p_client_testbench_worker.ts +71 -15
  212. package/src/testbench/worker_client_manager.ts +57 -2
  213. package/src/util.ts +1 -1
  214. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  215. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  216. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  217. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  218. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  219. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  220. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  221. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  222. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  223. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  224. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  225. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -123
  226. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  227. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  228. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
  229. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  230. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  231. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  232. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  233. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  234. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  235. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  236. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  237. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  238. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  239. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  240. package/dest/mem_pools/tx_pool/index.js +0 -2
  241. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  242. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  243. package/dest/mem_pools/tx_pool/priority.js +0 -15
  244. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  245. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  246. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  247. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  248. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  249. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -402
  250. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  251. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  252. package/dest/services/reqresp/protocols/block.js +0 -32
  253. package/dest/services/tx_collection/missing_txs_tracker.d.ts +0 -32
  254. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +0 -1
  255. package/dest/services/tx_collection/missing_txs_tracker.js +0 -27
  256. package/src/mem_pools/tx_pool/README.md +0 -270
  257. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  258. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  259. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  260. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -163
  261. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  262. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  263. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  264. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  265. package/src/mem_pools/tx_pool/index.ts +0 -2
  266. package/src/mem_pools/tx_pool/priority.ts +0 -20
  267. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  268. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -321
  269. package/src/services/reqresp/protocols/block.ts +0 -37
  270. package/src/services/tx_collection/missing_txs_tracker.ts +0 -52
@@ -1 +1 @@
1
- {"version":3,"file":"peer_manager.d.ts","sourceRoot":"","sources":["../../../src/services/peer-manager/peer_manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer_manager.d.ts","sourceRoot":"","sources":["../../../src/services/peer-manager/peer_manager.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ import { PeerScoreState } from './peer_scoring.js';
17
17
  const MAX_DIAL_ATTEMPTS = 3;
18
18
  const MAX_CACHED_PEERS = 100;
19
19
  const MAX_CACHED_PEER_AGE_MS = 5 * 60 * 1000; // 5 minutes
20
- const FAILED_PEER_BAN_TIME_MS = 5 * 60 * 1000; // 5 minutes timeout after failing MAX_DIAL_ATTEMPTS
20
+ const DEFAULT_FAILED_PEER_BAN_TIME_MS = 5 * 60 * 1000; // 5 minutes timeout after failing MAX_DIAL_ATTEMPTS
21
21
  const GOODBYE_DIAL_TIMEOUT_MS = 1000;
22
22
  const FAILED_AUTH_HANDSHAKE_EXPIRY_MS = 60 * 60 * 1000; // 1 hour
23
23
  export class PeerManager {
@@ -172,19 +172,27 @@ export class PeerManager {
172
172
  this.initializedPreferredPeers = true;
173
173
  }
174
174
  /**
175
- * Cleans up expired timeouts.
175
+ * Cleans up expired timeouts and stale failed-auth-handshake entries.
176
176
  *
177
177
  * When peers fail to dial after a number of retries, they are temporarily timed out.
178
178
  * This function removes any peers that have been in the timed out state for too long.
179
179
  * To give them a chance to reconnect.
180
+ *
181
+ * Also evicts entries from the failed-auth-handshake map whose expiry window has passed.
182
+ * Without this, peers that probe once and never reconnect would leave their entries in the
183
+ * map forever, causing an unbounded memory leak.
180
184
  */ cleanupExpiredTimeouts() {
181
- // Clean up expired timeouts
182
185
  const now = this.dateProvider.now();
183
186
  for (const [peerId, timedOutPeer] of this.timedOutPeers.entries()){
184
187
  if (now >= timedOutPeer.timeoutUntilMs) {
185
188
  this.timedOutPeers.delete(peerId);
186
189
  }
187
190
  }
191
+ for (const [id, entry] of this.failedAuthHandshakes.entries()){
192
+ if (now - entry.lastFailureTimestamp > FAILED_AUTH_HANDSHAKE_EXPIRY_MS) {
193
+ this.failedAuthHandshakes.delete(id);
194
+ }
195
+ }
188
196
  }
189
197
  /**
190
198
  * Processes scheduled disconnects during heartbeat.
@@ -238,13 +246,17 @@ export class PeerManager {
238
246
  * @param e - The disconnected peer event.
239
247
  */ handleDisconnectedPeerEvent(e) {
240
248
  const peerId = e.detail;
249
+ const peerIdStr = peerId.toString();
241
250
  this.metrics.peerDisconnected(peerId);
242
- this.logger.verbose(`Disconnected from peer ${peerId.toString()}`);
243
- const validatorAddress = this.authenticatedPeerIdToValidatorAddress.get(peerId.toString());
251
+ this.logger.verbose(`Disconnected from peer ${peerIdStr}`);
252
+ const validatorAddress = this.authenticatedPeerIdToValidatorAddress.get(peerIdStr);
244
253
  if (validatorAddress !== undefined) {
245
- this.logger.info(`Removing authentication for validator ${validatorAddress} at peer id ${peerId.toString()} due to disconnection`);
254
+ this.logger.info(`Removing authentication for validator ${validatorAddress} at peer id ${peerIdStr} due to disconnection`);
246
255
  this.authenticatedValidatorAddressToPeerId.delete(validatorAddress.toString());
247
- this.authenticatedPeerIdToValidatorAddress.delete(peerId.toString());
256
+ this.authenticatedPeerIdToValidatorAddress.delete(peerIdStr);
257
+ }
258
+ if (this.peerScoring.getScoreState(peerIdStr) === PeerScoreState.Healthy) {
259
+ this.peerScoring.removePeer(peerIdStr);
248
260
  }
249
261
  }
250
262
  registerThisValidatorAddresses(address) {
@@ -406,7 +418,8 @@ export class PeerManager {
406
418
  cachedPeers: this.cachedPeers.size,
407
419
  ...this.peerScoring.getStats()
408
420
  });
409
- this.metrics.recordPeerCount(healthyConnections.length);
421
+ this.metrics.recordPeerCount(connections.length);
422
+ this.metrics.recordHealthyPeerCount(healthyConnections.length);
410
423
  // Exit if no peers to connect
411
424
  if (peersToConnect <= 0) {
412
425
  return;
@@ -558,6 +571,11 @@ export class PeerManager {
558
571
  if (this.peerScoring.getScoreState(peerIdString) != PeerScoreState.Healthy) {
559
572
  return;
560
573
  }
574
+ // Don't dial peers that have exceeded the auth failure threshold
575
+ if (!this.isNodeAllowedToConnect(peerId)) {
576
+ this.logger.trace(`Skipping peer ${peerId} due to failed auth handshake attempts`);
577
+ return;
578
+ }
561
579
  const [multiaddrTcp] = await Promise.all([
562
580
  enr.getFullMultiaddr('tcp')
563
581
  ]);
@@ -623,7 +641,7 @@ export class PeerManager {
623
641
  // Add to timed out peers
624
642
  this.timedOutPeers.set(id, {
625
643
  peerId: id,
626
- timeoutUntilMs: this.dateProvider.now() + FAILED_PEER_BAN_TIME_MS
644
+ timeoutUntilMs: this.dateProvider.now() + (this.config.peerFailedBanTimeMs ?? DEFAULT_FAILED_PEER_BAN_TIME_MS)
627
645
  });
628
646
  }
629
647
  }
@@ -773,6 +791,8 @@ export class PeerManager {
773
791
  ...logData,
774
792
  address: sender.toString()
775
793
  });
794
+ this.markAuthHandshakeFailed(peerId);
795
+ this.markPeerForDisconnect(peerId);
776
796
  return;
777
797
  }
778
798
  this.markAuthHandshakeSuccess(peerId);
@@ -798,13 +818,13 @@ export class PeerManager {
798
818
  const now = this.dateProvider.now();
799
819
  const peerIdStr = peerId.toString();
800
820
  const existingEntry = this.failedAuthHandshakes.get(peerIdStr);
821
+ const failureCount = (existingEntry?.count || 0) + 1;
801
822
  this.failedAuthHandshakes.set(peerIdStr, {
802
- count: (existingEntry?.count || 0) + 1,
823
+ count: failureCount,
803
824
  lastFailureTimestamp: now
804
825
  });
805
826
  const connections = this.libP2PNode.getConnections(peerId);
806
827
  connections.forEach((conn)=>{
807
- // We mark the IP address
808
828
  const address = conn.remoteAddr.nodeAddress().address;
809
829
  const existingAddressEntry = this.failedAuthHandshakes.get(address);
810
830
  this.failedAuthHandshakes.set(address, {
@@ -812,6 +832,14 @@ export class PeerManager {
812
832
  lastFailureTimestamp: now
813
833
  });
814
834
  });
835
+ // Ban the peer from being re-dialed for a cooldown period (exponential backoff)
836
+ const banTimeMs = this.config.peerFailedBanTimeMs ?? DEFAULT_FAILED_PEER_BAN_TIME_MS;
837
+ const backoffMs = banTimeMs * Math.pow(2, Math.min(failureCount - 1, 5));
838
+ this.timedOutPeers.set(peerIdStr, {
839
+ peerId: peerIdStr,
840
+ timeoutUntilMs: now + backoffMs
841
+ });
842
+ this.cachedPeers.delete(peerIdStr);
815
843
  }
816
844
  /*
817
845
  * Marks when peer exchanges auth handshake
@@ -1,3 +1,4 @@
1
+ import { DateProvider } from '@aztec/foundation/timer';
1
2
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
2
3
  import { type TelemetryClient } from '@aztec/telemetry-client';
3
4
  import type { PeerId } from '@libp2p/interface';
@@ -8,6 +9,7 @@ export declare enum PeerScoreState {
8
9
  Healthy = 2
9
10
  }
10
11
  export declare class PeerScoring {
12
+ private readonly dateProvider;
11
13
  private logger;
12
14
  private scores;
13
15
  private lastUpdateTime;
@@ -17,10 +19,13 @@ export declare class PeerScoring {
17
19
  [key in PeerErrorSeverity]: number;
18
20
  };
19
21
  private peerStateCounter;
20
- constructor(config: P2PConfig, telemetry?: TelemetryClient);
22
+ constructor(config: P2PConfig, telemetry?: TelemetryClient, dateProvider?: DateProvider);
21
23
  penalizePeer(peerId: PeerId, penalty: PeerErrorSeverity): number;
22
24
  updateScore(peerId: string, scoreDelta: number): number;
23
25
  decayAllScores(): void;
26
+ /** Resets all peer scores. Useful for benchmarks to prevent cross-case contamination. */
27
+ resetAllScores(): void;
28
+ removePeer(peerId: string): void;
24
29
  getScore(peerId: string): number;
25
30
  getScoreState(peerId: string): PeerScoreState;
26
31
  getStats(): {
@@ -30,4 +35,4 @@ export declare class PeerScoring {
30
35
  bannedCount: number;
31
36
  };
32
37
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9zY29yaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcGVlci1tYW5hZ2VyL3BlZXJfc2NvcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN0RCxPQUFPLEVBR0wsS0FBSyxlQUFlLEVBSXJCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUF1QmpELG9CQUFZLGNBQWM7SUFDeEIsTUFBTSxJQUFBO0lBQ04sVUFBVSxJQUFBO0lBQ1YsT0FBTyxJQUFBO0NBQ1I7QUFnQkQscUJBQWEsV0FBVztJQUN0QixPQUFPLENBQUMsTUFBTSxDQUFvQztJQUNsRCxPQUFPLENBQUMsTUFBTSxDQUFrQztJQUNoRCxPQUFPLENBQUMsY0FBYyxDQUFrQztJQUN4RCxPQUFPLENBQUMsYUFBYSxDQUFhO0lBQ2xDLE9BQU8sQ0FBQyxXQUFXLENBQU87SUFDMUIsYUFBYSxFQUFFO1NBQUcsR0FBRyxJQUFJLGlCQUFpQixHQUFHLE1BQU07S0FBRSxDQUFDO0lBRXRELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBZ0I7SUFFeEMsWUFBWSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsR0FBRSxlQUFzQyxFQWdCL0U7SUFFTSxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLFVBTTdEO0lBRUQsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxNQUFNLENBaUJ0RDtJQUVELGNBQWMsSUFBSSxJQUFJLENBWXJCO0lBRUQsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUUvQjtJQUVNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGNBQWMsQ0FVbkQ7SUFFRCxRQUFRLElBQUk7UUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsRUFBRSxNQUFNLENBQUM7UUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0E0QnRHO0NBQ0YifQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcl9zY29yaW5nLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcGVlci1tYW5hZ2VyL3BlZXJfc2NvcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUdMLEtBQUssZUFBZSxFQUlyQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBdUJqRCxvQkFBWSxjQUFjO0lBQ3hCLE1BQU0sSUFBQTtJQUNOLFVBQVUsSUFBQTtJQUNWLE9BQU8sSUFBQTtDQUNSO0FBaUJELHFCQUFhLFdBQVc7SUFhcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZO0lBWi9CLE9BQU8sQ0FBQyxNQUFNLENBQW9DO0lBQ2xELE9BQU8sQ0FBQyxNQUFNLENBQWtDO0lBQ2hELE9BQU8sQ0FBQyxjQUFjLENBQWtDO0lBQ3hELE9BQU8sQ0FBQyxhQUFhLENBQWE7SUFDbEMsT0FBTyxDQUFDLFdBQVcsQ0FBTztJQUMxQixhQUFhLEVBQUU7U0FBRyxHQUFHLElBQUksaUJBQWlCLEdBQUcsTUFBTTtLQUFFLENBQUM7SUFFdEQsT0FBTyxDQUFDLGdCQUFnQixDQUFnQjtJQUV4QyxZQUNFLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsR0FBRSxlQUFzQyxFQUNoQyxZQUFZLEdBQUUsWUFBaUMsRUFpQmpFO0lBRU0sWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixVQU03RDtJQUVELFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEdBQUcsTUFBTSxDQWlCdEQ7SUFFRCxjQUFjLElBQUksSUFBSSxDQWlCckI7SUFFRCx5RkFBeUY7SUFDekYsY0FBYyxJQUFJLElBQUksQ0FHckI7SUFFRCxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBRy9CO0lBRUQsUUFBUSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsTUFBTSxDQUUvQjtJQUVNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLGNBQWMsQ0FVbkQ7SUFFRCxRQUFRLElBQUk7UUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDO1FBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztRQUFDLGVBQWUsRUFBRSxNQUFNLENBQUM7UUFBQyxXQUFXLEVBQUUsTUFBTSxDQUFBO0tBQUUsQ0E0QnRHO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"peer_scoring.d.ts","sourceRoot":"","sources":["../../../src/services/peer-manager/peer_scoring.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAGL,KAAK,eAAe,EAIrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAuBjD,oBAAY,cAAc;IACxB,MAAM,IAAA;IACN,UAAU,IAAA;IACV,OAAO,IAAA;CACR;AAgBD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,WAAW,CAAO;IAC1B,aAAa,EAAE;SAAG,GAAG,IAAI,iBAAiB,GAAG,MAAM;KAAE,CAAC;IAEtD,OAAO,CAAC,gBAAgB,CAAgB;IAExC,YAAY,MAAM,EAAE,SAAS,EAAE,SAAS,GAAE,eAAsC,EAgB/E;IAEM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,UAM7D;IAED,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiBtD;IAED,cAAc,IAAI,IAAI,CAYrB;IAED,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/B;IAEM,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAUnD;IAED,QAAQ,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CA4BtG;CACF"}
1
+ {"version":3,"file":"peer_scoring.d.ts","sourceRoot":"","sources":["../../../src/services/peer-manager/peer_scoring.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAGL,KAAK,eAAe,EAIrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAuBjD,oBAAY,cAAc;IACxB,MAAM,IAAA;IACN,UAAU,IAAA;IACV,OAAO,IAAA;CACR;AAiBD,qBAAa,WAAW;IAapB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAZ/B,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,aAAa,CAAa;IAClC,OAAO,CAAC,WAAW,CAAO;IAC1B,aAAa,EAAE;SAAG,GAAG,IAAI,iBAAiB,GAAG,MAAM;KAAE,CAAC;IAEtD,OAAO,CAAC,gBAAgB,CAAgB;IAExC,YACE,MAAM,EAAE,SAAS,EACjB,SAAS,GAAE,eAAsC,EAChC,YAAY,GAAE,YAAiC,EAiBjE;IAEM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,UAM7D;IAED,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiBtD;IAED,cAAc,IAAI,IAAI,CAiBrB;IAED,yFAAyF;IACzF,cAAc,IAAI,IAAI,CAGrB;IAED,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG/B;IAED,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/B;IAEM,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAUnD;IAED,QAAQ,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CA4BtG;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { median } from '@aztec/foundation/collection';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
+ import { DateProvider } from '@aztec/foundation/timer';
3
4
  import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
4
5
  import { Attributes, Metrics, createUpDownCounterWithDefault, getTelemetryClient } from '@aztec/telemetry-client';
5
6
  /**
@@ -39,15 +40,23 @@ export var PeerScoreState = /*#__PURE__*/ function(PeerScoreState) {
39
40
  */ // TODO: move into config / constants
40
41
  const MIN_SCORE_BEFORE_BAN = -100;
41
42
  const MIN_SCORE_BEFORE_DISCONNECT = -50;
43
+ const SCORE_CLEANUP_THRESHOLD = 0.1;
42
44
  export class PeerScoring {
43
- logger = createLogger('p2p:peer-scoring');
44
- scores = new Map();
45
- lastUpdateTime = new Map();
46
- decayInterval = 1000 * 60;
47
- decayFactor = 0.9;
45
+ dateProvider;
46
+ logger;
47
+ scores;
48
+ lastUpdateTime;
49
+ decayInterval;
50
+ decayFactor;
48
51
  peerPenalties;
49
52
  peerStateCounter;
50
- constructor(config, telemetry = getTelemetryClient()){
53
+ constructor(config, telemetry = getTelemetryClient(), dateProvider = new DateProvider()){
54
+ this.dateProvider = dateProvider;
55
+ this.logger = createLogger('p2p:peer-scoring');
56
+ this.scores = new Map();
57
+ this.lastUpdateTime = new Map();
58
+ this.decayInterval = 1000 * 60;
59
+ this.decayFactor = 0.9;
51
60
  const orderedValues = config.peerPenaltyValues?.sort((a, b)=>a - b);
52
61
  this.peerPenalties = {
53
62
  [PeerErrorSeverity.HighToleranceError]: orderedValues?.[0] ?? DefaultPeerPenalties[PeerErrorSeverity.HighToleranceError],
@@ -71,7 +80,7 @@ export class PeerScoring {
71
80
  return newScore;
72
81
  }
73
82
  updateScore(peerId, scoreDelta) {
74
- const currentTime = Date.now();
83
+ const currentTime = this.dateProvider.now();
75
84
  const lastUpdate = this.lastUpdateTime.get(peerId) || currentTime;
76
85
  const timePassed = currentTime - lastUpdate;
77
86
  const decayPeriods = Math.floor(timePassed / this.decayInterval);
@@ -85,18 +94,31 @@ export class PeerScoring {
85
94
  return currentScore;
86
95
  }
87
96
  decayAllScores() {
88
- const currentTime = Date.now();
97
+ const currentTime = this.dateProvider.now();
89
98
  for (const [peerId, lastUpdate] of this.lastUpdateTime.entries()){
90
99
  const timePassed = currentTime - lastUpdate;
91
100
  const decayPeriods = Math.floor(timePassed / this.decayInterval);
92
101
  if (decayPeriods > 0) {
93
102
  let score = this.scores.get(peerId) || 0;
94
103
  score *= Math.pow(this.decayFactor, decayPeriods);
95
- this.scores.set(peerId, score);
96
- this.lastUpdateTime.set(peerId, currentTime);
104
+ if (Math.abs(score) < SCORE_CLEANUP_THRESHOLD) {
105
+ this.scores.delete(peerId);
106
+ this.lastUpdateTime.delete(peerId);
107
+ } else {
108
+ this.scores.set(peerId, score);
109
+ this.lastUpdateTime.set(peerId, currentTime);
110
+ }
97
111
  }
98
112
  }
99
113
  }
114
+ /** Resets all peer scores. Useful for benchmarks to prevent cross-case contamination. */ resetAllScores() {
115
+ this.scores.clear();
116
+ this.lastUpdateTime.clear();
117
+ }
118
+ removePeer(peerId) {
119
+ this.scores.delete(peerId);
120
+ this.lastUpdateTime.delete(peerId);
121
+ }
100
122
  getScore(peerId) {
101
123
  return this.scores.get(peerId) || 0;
102
124
  }
@@ -2,27 +2,25 @@ import { type Logger } from '@aztec/foundation/log';
2
2
  import { DateProvider } from '@aztec/foundation/timer';
3
3
  import { Tx } from '@aztec/stdlib/tx';
4
4
  import type { PeerId } from '@libp2p/interface';
5
- import type { IMissingTxsTracker } from '../../tx_collection/missing_txs_tracker.js';
5
+ import type { IRequestTracker } from '../../tx_collection/request_tracker.js';
6
6
  import { type BlockTxsSource } from '.././protocols/index.js';
7
7
  import type { BatchTxRequesterLibP2PService, BatchTxRequesterOptions } from './interface.js';
8
8
  export declare class BatchTxRequester {
9
+ private readonly requestTracker;
9
10
  private readonly blockTxsSource;
10
11
  private readonly pinnedPeer;
11
- private readonly timeoutMs;
12
12
  private readonly p2pService;
13
13
  private readonly logger;
14
- private readonly dateProvider;
15
14
  private readonly opts;
16
15
  private readonly peers;
17
16
  private readonly txsMetadata;
18
- private readonly deadline;
19
17
  private readonly smartRequesterSemaphore;
20
18
  private readonly txQueue;
21
19
  private readonly txValidator;
22
20
  private readonly smartParallelWorkerCount;
23
21
  private readonly dumbParallelWorkerCount;
24
22
  private readonly txBatchSize;
25
- constructor(missingTxsTracker: IMissingTxsTracker, blockTxsSource: BlockTxsSource, pinnedPeer: PeerId | undefined, timeoutMs: number, p2pService: BatchTxRequesterLibP2PService, logger?: Logger, dateProvider?: DateProvider, opts?: BatchTxRequesterOptions);
23
+ constructor(requestTracker: IRequestTracker, blockTxsSource: BlockTxsSource, pinnedPeer: PeerId | undefined, p2pService: BatchTxRequesterLibP2PService, logger?: Logger, dateProvider?: DateProvider, opts?: BatchTxRequesterOptions);
26
24
  run(): AsyncGenerator<Tx, Tx | undefined, unknown>;
27
25
  static collectAllTxs(generator: AsyncGenerator<Tx, Tx | undefined, unknown>): Promise<Tx[]>;
28
26
  private pinnedPeerRequester;
@@ -35,14 +33,19 @@ export declare class BatchTxRequester {
35
33
  private handleSuccessResponseFromPeer;
36
34
  private handleReceivedTxs;
37
35
  private decideIfPeerIsSmart;
38
- private isBlockResponseValid;
36
+ /**
37
+ * Handles an archive root mismatch between local state and peer response.
38
+ *
39
+ * - Response archive is Fr.ZERO (peer pruned proposal, legitimate): marks peer dumb.
40
+ * - Non-zero archive mismatch (malicious response): penalises + marks dumb.
41
+ */
42
+ private handleArchiveRootMismatch;
39
43
  private peerHasSomeTxsWeAreMissing;
40
44
  private markTxsPeerHas;
41
45
  private extractHashesPeerHasFromResponse;
42
46
  private makeRoundRobinIndexer;
43
- private fetchedAllTxs;
44
47
  private shouldStop;
45
48
  private unlockSmartRequesterSemaphores;
46
49
  private sleepClampedToDeadline;
47
50
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfdHhfcmVxdWVzdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9iYXRjaC10eC1yZXF1ZXN0ZXIvYmF0Y2hfdHhfcmVxdWVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLHlCQUF5QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxFQUFFLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHaEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVyRixPQUFPLEVBQXFDLEtBQUssY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFRakcsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sZ0JBQWdCLENBQUM7QUFzQnBILHFCQUFhLGdCQUFnQjtJQUMzQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBaUI7SUFDaEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQXFCO0lBQ2hELE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFTO0lBQ25DLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFnQztJQUMzRCxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBUztJQUNoQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBZTtJQUM1QyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBMEI7SUFDL0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQWtCO0lBQ3hDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUF3QjtJQUNwRCxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBUztJQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFhO0lBQ3JELE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFzQjtJQUM5QyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBMkI7SUFDdkQsT0FBTyxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBUztJQUNsRCxPQUFPLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFTO0lBQ2pELE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFTO0lBRXJDLFlBQ0UsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQ3JDLGNBQWMsRUFBRSxjQUFjLEVBQzlCLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM5QixTQUFTLEVBQUUsTUFBTSxFQUNqQixVQUFVLEVBQUUsNkJBQTZCLEVBQ3pDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFDZixZQUFZLENBQUMsRUFBRSxZQUFZLEVBQzNCLElBQUksQ0FBQyxFQUFFLHVCQUF1QixFQWtDL0I7SUFLYSxHQUFHLElBQUksY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQTZDL0Q7SUFLRCxPQUFvQixhQUFhLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FTdkc7WUFVYSxtQkFBbUI7WUFrRG5CLGFBQWE7WUF5RGIsY0FBYztZQWdEZCxjQUFjO1lBd0NkLGVBQWU7WUFrRmYsY0FBYztJQW1DNUIsT0FBTyxDQUFDLDBCQUEwQjtZQWlCcEIsNkJBQTZCO1lBWTdCLGlCQUFpQjtJQXFEL0IsT0FBTyxDQUFDLG1CQUFtQjtJQWtDM0IsT0FBTyxDQUFDLG9CQUFvQjtJQU01QixPQUFPLENBQUMsMEJBQTBCO0lBS2xDLE9BQU8sQ0FBQyxjQUFjO0lBTXRCLE9BQU8sQ0FBQyxnQ0FBZ0M7SUFnQnhDLE9BQU8sQ0FBQyxxQkFBcUI7SUF1QjdCLE9BQU8sQ0FBQyxhQUFhO0lBYXJCLE9BQU8sQ0FBQyxVQUFVO0lBYWxCLE9BQU8sQ0FBQyw4QkFBOEI7WUFVeEIsc0JBQXNCO0NBT3JDIn0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmF0Y2hfdHhfcmVxdWVzdGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9iYXRjaC10eC1yZXF1ZXN0ZXIvYmF0Y2hfdHhfcmVxdWVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLEVBQUUsRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUV2RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RSxPQUFPLEVBQXFDLEtBQUssY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFRakcsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sZ0JBQWdCLENBQUM7QUFzQnBILHFCQUFhLGdCQUFnQjtJQUMzQixPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBa0I7SUFDakQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQWlCO0lBQ2hELE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFxQjtJQUNoRCxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBZ0M7SUFDM0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQVM7SUFDaEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQTBCO0lBQy9DLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFrQjtJQUN4QyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBd0I7SUFDcEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBYTtJQUNyRCxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBc0I7SUFDOUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQTJCO0lBQ3ZELE9BQU8sQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQVM7SUFDbEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBUztJQUNqRCxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBUztJQUVyQyxZQUNFLGNBQWMsRUFBRSxlQUFlLEVBQy9CLGNBQWMsRUFBRSxjQUFjLEVBQzlCLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM5QixVQUFVLEVBQUUsNkJBQTZCLEVBQ3pDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFDZixZQUFZLENBQUMsRUFBRSxZQUFZLEVBQzNCLElBQUksQ0FBQyxFQUFFLHVCQUF1QixFQStCL0I7SUFLYSxHQUFHLElBQUksY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQW1DL0Q7SUFLRCxPQUFvQixhQUFhLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FTdkc7WUFVYSxtQkFBbUI7WUFrRG5CLGFBQWE7WUFrRGIsY0FBYztZQWdEZCxjQUFjO1lBK0JkLGVBQWU7WUE0RWYsY0FBYztJQW1DNUIsT0FBTyxDQUFDLDBCQUEwQjtZQTBCcEIsNkJBQTZCO1lBWTdCLGlCQUFpQjtJQXdEL0IsT0FBTyxDQUFDLG1CQUFtQjtJQStCM0I7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMseUJBQXlCO0lBU2pDLE9BQU8sQ0FBQywwQkFBMEI7SUFRbEMsT0FBTyxDQUFDLGNBQWM7SUFNdEIsT0FBTyxDQUFDLGdDQUFnQztJQWdCeEMsT0FBTyxDQUFDLHFCQUFxQjtJQXdCN0IsT0FBTyxDQUFDLFVBQVU7SUFZbEIsT0FBTyxDQUFDLDhCQUE4QjtZQVV4QixzQkFBc0I7Q0FNckMifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"batch_tx_requester.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/batch_tx_requester.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAkB,MAAM,yBAAyB,CAAC;AAEvE,OAAO,EAAE,EAAE,EAAmB,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQjG,OAAO,KAAK,EAAE,6BAA6B,EAAE,uBAAuB,EAAyB,MAAM,gBAAgB,CAAC;AAsBpH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,YACE,iBAAiB,EAAE,kBAAkB,EACrC,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,6BAA6B,EACzC,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,YAAY,EAC3B,IAAI,CAAC,EAAE,uBAAuB,EAkC/B;IAKa,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,OAAO,CAAC,CA6C/D;IAKD,OAAoB,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CASvG;YAUa,mBAAmB;YAkDnB,aAAa;YAyDb,cAAc;YAgDd,cAAc;YAwCd,eAAe;YAkFf,cAAc;IAmC5B,OAAO,CAAC,0BAA0B;YAiBpB,6BAA6B;YAY7B,iBAAiB;IAqD/B,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,0BAA0B;IAKlC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,gCAAgC;IAgBxC,OAAO,CAAC,qBAAqB;IAuB7B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,8BAA8B;YAUxB,sBAAsB;CAOrC"}
1
+ {"version":3,"file":"batch_tx_requester.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/batch_tx_requester.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,EAAE,EAAmB,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAE9E,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAQjG,OAAO,KAAK,EAAE,6BAA6B,EAAE,uBAAuB,EAAyB,MAAM,gBAAgB,CAAC;AAsBpH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgC;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkB;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;IACpD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAa;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAClD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAS;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IAErC,YACE,cAAc,EAAE,eAAe,EAC/B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,UAAU,EAAE,6BAA6B,EACzC,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,YAAY,EAC3B,IAAI,CAAC,EAAE,uBAAuB,EA+B/B;IAKa,GAAG,IAAI,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,OAAO,CAAC,CAmC/D;IAKD,OAAoB,aAAa,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CASvG;YAUa,mBAAmB;YAkDnB,aAAa;YAkDb,cAAc;YAgDd,cAAc;YA+Bd,eAAe;YA4Ef,cAAc;IAmC5B,OAAO,CAAC,0BAA0B;YA0BpB,6BAA6B;YAY7B,iBAAiB;IAwD/B,OAAO,CAAC,mBAAmB;IA+B3B;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,0BAA0B;IAQlC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,gCAAgC;IAgBxC,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,8BAA8B;YAUxB,sBAAsB;CAMrC"}