@aztec/p2p 0.0.1-commit.d1f2d6c → 0.0.1-commit.d20b825a7

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 (562) hide show
  1. package/README.md +129 -3
  2. package/dest/bootstrap/bootstrap.d.ts +4 -3
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +4 -4
  5. package/dest/client/factory.d.ts +12 -11
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +61 -19
  8. package/dest/client/interface.d.ts +54 -34
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +43 -52
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +190 -226
  13. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  14. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  15. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +318 -0
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  19. package/dest/config.d.ts +135 -82
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +114 -41
  22. package/dest/errors/p2p-service.error.d.ts +9 -0
  23. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  24. package/dest/errors/p2p-service.error.js +10 -0
  25. package/dest/errors/tx-pool.error.d.ts +8 -0
  26. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  27. package/dest/errors/tx-pool.error.js +9 -0
  28. package/dest/index.d.ts +2 -2
  29. package/dest/index.d.ts.map +1 -1
  30. package/dest/index.js +1 -1
  31. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +106 -88
  32. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool.js +448 -3
  34. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  35. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  36. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +353 -87
  37. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  38. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/index.js +1 -2
  40. package/dest/mem_pools/attestation_pool/mocks.d.ts +2 -2
  41. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  42. package/dest/mem_pools/attestation_pool/mocks.js +2 -2
  43. package/dest/mem_pools/index.d.ts +3 -3
  44. package/dest/mem_pools/index.d.ts.map +1 -1
  45. package/dest/mem_pools/index.js +1 -1
  46. package/dest/mem_pools/instrumentation.d.ts +4 -2
  47. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  48. package/dest/mem_pools/instrumentation.js +18 -16
  49. package/dest/mem_pools/interface.d.ts +5 -5
  50. package/dest/mem_pools/interface.d.ts.map +1 -1
  51. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  52. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  53. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  54. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +43 -0
  55. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +103 -0
  57. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  58. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  60. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  61. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  80. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_mining_rule.js +16 -35
  81. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  90. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  93. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  94. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  96. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  97. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  99. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +218 -0
  100. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -0
  103. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +223 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  114. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  115. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +924 -0
  117. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  118. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/attestation_validator/attestation_validator.js +20 -11
  120. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +5 -3
  121. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  122. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +9 -4
  123. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  124. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  125. package/dest/msg_validators/clock_tolerance.js +54 -3
  126. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +7 -4
  127. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  129. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +7 -4
  130. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  132. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +15 -8
  133. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/proposal_validator/proposal_validator.js +70 -50
  135. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  136. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  137. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  138. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  139. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  140. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  141. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  142. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  143. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  144. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  145. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  147. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  148. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  149. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  150. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  151. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  152. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  153. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  154. package/dest/msg_validators/tx_validator/data_validator.js +39 -3
  155. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  156. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  158. package/dest/msg_validators/tx_validator/factory.d.ts +137 -5
  159. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/factory.js +255 -58
  161. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  162. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  163. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  164. package/dest/msg_validators/tx_validator/gas_validator.d.ts +100 -3
  165. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  166. package/dest/msg_validators/tx_validator/gas_validator.js +138 -53
  167. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  168. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  169. package/dest/msg_validators/tx_validator/index.js +2 -0
  170. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  171. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  172. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  173. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  174. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  175. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  176. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  177. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  178. package/dest/msg_validators/tx_validator/phases_validator.js +75 -27
  179. package/dest/msg_validators/tx_validator/size_validator.d.ts +3 -1
  180. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -1
  181. package/dest/msg_validators/tx_validator/size_validator.js +4 -1
  182. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  183. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  184. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  185. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  186. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  187. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  188. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  189. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  190. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  191. package/dest/services/data_store.d.ts +1 -1
  192. package/dest/services/data_store.d.ts.map +1 -1
  193. package/dest/services/data_store.js +14 -10
  194. package/dest/services/discv5/discV5_service.js +1 -1
  195. package/dest/services/dummy_service.d.ts +28 -5
  196. package/dest/services/dummy_service.d.ts.map +1 -1
  197. package/dest/services/dummy_service.js +52 -2
  198. package/dest/services/encoding.d.ts +7 -3
  199. package/dest/services/encoding.d.ts.map +1 -1
  200. package/dest/services/encoding.js +18 -11
  201. package/dest/services/gossipsub/index.d.ts +3 -0
  202. package/dest/services/gossipsub/index.d.ts.map +1 -0
  203. package/dest/services/gossipsub/index.js +2 -0
  204. package/dest/services/gossipsub/scoring.d.ts +21 -3
  205. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  206. package/dest/services/gossipsub/scoring.js +24 -7
  207. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  208. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  209. package/dest/services/gossipsub/topic_score_params.js +363 -0
  210. package/dest/services/index.d.ts +2 -1
  211. package/dest/services/index.d.ts.map +1 -1
  212. package/dest/services/index.js +1 -0
  213. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  214. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  215. package/dest/services/libp2p/instrumentation.js +28 -3
  216. package/dest/services/libp2p/libp2p_service.d.ts +101 -51
  217. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  218. package/dest/services/libp2p/libp2p_service.js +596 -463
  219. package/dest/services/peer-manager/metrics.d.ts +4 -2
  220. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  221. package/dest/services/peer-manager/metrics.js +26 -5
  222. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  223. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  224. package/dest/services/peer-manager/peer_manager.js +39 -11
  225. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  226. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  227. package/dest/services/peer-manager/peer_scoring.js +65 -14
  228. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +51 -0
  229. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  230. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +543 -0
  231. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  232. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  233. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  234. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +47 -0
  235. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  236. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  237. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  238. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  239. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  240. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  241. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  242. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  243. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  244. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  245. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  246. package/dest/services/reqresp/config.d.ts +3 -3
  247. package/dest/services/reqresp/config.d.ts.map +1 -1
  248. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  249. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  250. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  251. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  252. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  253. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  254. package/dest/services/reqresp/interface.d.ts +25 -9
  255. package/dest/services/reqresp/interface.d.ts.map +1 -1
  256. package/dest/services/reqresp/interface.js +23 -10
  257. package/dest/services/reqresp/metrics.d.ts +6 -5
  258. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  259. package/dest/services/reqresp/metrics.js +16 -5
  260. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  261. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  262. package/dest/services/reqresp/protocols/block_txs/bitvector.js +5 -0
  263. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  264. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  265. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  266. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +29 -6
  267. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  268. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +59 -13
  269. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  270. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  271. package/dest/services/reqresp/protocols/index.js +0 -1
  272. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  273. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  274. package/dest/services/reqresp/protocols/tx.js +21 -3
  275. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  276. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  277. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  278. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  279. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  280. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  281. package/dest/services/reqresp/reqresp.d.ts +9 -2
  282. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  283. package/dest/services/reqresp/reqresp.js +95 -34
  284. package/dest/services/service.d.ts +46 -4
  285. package/dest/services/service.d.ts.map +1 -1
  286. package/dest/services/tx_collection/config.d.ts +22 -1
  287. package/dest/services/tx_collection/config.d.ts.map +1 -1
  288. package/dest/services/tx_collection/config.js +55 -1
  289. package/dest/services/tx_collection/fast_tx_collection.d.ts +7 -7
  290. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  291. package/dest/services/tx_collection/fast_tx_collection.js +95 -84
  292. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  293. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  294. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  295. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  296. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  297. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  298. package/dest/services/tx_collection/index.d.ts +3 -1
  299. package/dest/services/tx_collection/index.d.ts.map +1 -1
  300. package/dest/services/tx_collection/index.js +2 -0
  301. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  302. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  303. package/dest/services/tx_collection/instrumentation.js +10 -2
  304. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  305. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  306. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  307. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  308. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  309. package/dest/services/tx_collection/request_tracker.js +84 -0
  310. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  311. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  312. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  313. package/dest/services/tx_collection/tx_collection.d.ts +25 -15
  314. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  315. package/dest/services/tx_collection/tx_collection.js +79 -7
  316. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  317. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  318. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  319. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  320. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  321. package/dest/services/tx_collection/tx_source.js +26 -7
  322. package/dest/services/tx_file_store/config.d.ts +16 -0
  323. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  324. package/dest/services/tx_file_store/config.js +22 -0
  325. package/dest/services/tx_file_store/index.d.ts +4 -0
  326. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  327. package/dest/services/tx_file_store/index.js +3 -0
  328. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  329. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  330. package/dest/services/tx_file_store/instrumentation.js +29 -0
  331. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  332. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  333. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  334. package/dest/services/tx_provider.d.ts +4 -4
  335. package/dest/services/tx_provider.d.ts.map +1 -1
  336. package/dest/services/tx_provider.js +9 -8
  337. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  338. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  339. package/dest/services/tx_provider_instrumentation.js +5 -5
  340. package/dest/test-helpers/index.d.ts +3 -1
  341. package/dest/test-helpers/index.d.ts.map +1 -1
  342. package/dest/test-helpers/index.js +2 -0
  343. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  344. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  345. package/dest/test-helpers/make-test-p2p-clients.js +4 -2
  346. package/dest/test-helpers/mock-pubsub.d.ts +40 -6
  347. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  348. package/dest/test-helpers/mock-pubsub.js +139 -13
  349. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  350. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  351. package/dest/test-helpers/reqresp-nodes.js +8 -5
  352. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  353. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  354. package/dest/test-helpers/test_tx_provider.js +41 -0
  355. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  356. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  357. package/dest/test-helpers/testbench-utils.js +386 -0
  358. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  359. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  360. package/dest/testbench/p2p_client_testbench_worker.js +281 -143
  361. package/dest/testbench/worker_client_manager.d.ts +60 -6
  362. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  363. package/dest/testbench/worker_client_manager.js +280 -46
  364. package/dest/util.d.ts +3 -3
  365. package/dest/util.d.ts.map +1 -1
  366. package/package.json +14 -14
  367. package/src/bootstrap/bootstrap.ts +7 -4
  368. package/src/client/factory.ts +119 -38
  369. package/src/client/interface.ts +65 -35
  370. package/src/client/p2p_client.ts +228 -272
  371. package/src/client/test/tx_proposal_collector/README.md +227 -0
  372. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +357 -0
  373. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  374. package/src/config.ts +184 -46
  375. package/src/errors/p2p-service.error.ts +11 -0
  376. package/src/errors/tx-pool.error.ts +12 -0
  377. package/src/index.ts +1 -1
  378. package/src/mem_pools/attestation_pool/attestation_pool.ts +501 -91
  379. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  380. package/src/mem_pools/attestation_pool/index.ts +9 -2
  381. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  382. package/src/mem_pools/index.ts +2 -2
  383. package/src/mem_pools/instrumentation.ts +19 -14
  384. package/src/mem_pools/interface.ts +4 -4
  385. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  386. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  387. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  388. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  389. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  390. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  391. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  392. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  393. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  394. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  395. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  396. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  397. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  398. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  399. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  400. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  401. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  402. package/src/mem_pools/tx_pool_v2/interfaces.ts +250 -0
  403. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  404. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  405. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  406. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  407. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1107 -0
  408. package/src/msg_validators/attestation_validator/README.md +49 -0
  409. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -9
  410. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +14 -5
  411. package/src/msg_validators/clock_tolerance.ts +72 -3
  412. package/src/msg_validators/proposal_validator/README.md +123 -0
  413. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +17 -4
  414. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +23 -7
  415. package/src/msg_validators/proposal_validator/proposal_validator.ts +81 -51
  416. package/src/msg_validators/tx_validator/README.md +127 -0
  417. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  418. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  419. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  420. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  421. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  422. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  423. package/src/msg_validators/tx_validator/data_validator.ts +48 -3
  424. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  425. package/src/msg_validators/tx_validator/factory.ts +415 -56
  426. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  427. package/src/msg_validators/tx_validator/gas_validator.ts +203 -52
  428. package/src/msg_validators/tx_validator/index.ts +2 -0
  429. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  430. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  431. package/src/msg_validators/tx_validator/phases_validator.ts +87 -30
  432. package/src/msg_validators/tx_validator/size_validator.ts +6 -2
  433. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  434. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  435. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  436. package/src/services/data_store.ts +14 -19
  437. package/src/services/discv5/discV5_service.ts +1 -1
  438. package/src/services/dummy_service.ts +66 -3
  439. package/src/services/encoding.ts +18 -10
  440. package/src/services/gossipsub/README.md +641 -0
  441. package/src/services/gossipsub/index.ts +2 -0
  442. package/src/services/gossipsub/scoring.ts +29 -5
  443. package/src/services/gossipsub/topic_score_params.ts +519 -0
  444. package/src/services/index.ts +1 -0
  445. package/src/services/libp2p/instrumentation.ts +29 -2
  446. package/src/services/libp2p/libp2p_service.ts +644 -514
  447. package/src/services/peer-manager/metrics.ts +28 -4
  448. package/src/services/peer-manager/peer_manager.ts +45 -11
  449. package/src/services/peer-manager/peer_scoring.ts +56 -6
  450. package/src/services/reqresp/README.md +229 -0
  451. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  452. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +673 -0
  453. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  454. package/src/services/reqresp/batch-tx-requester/interface.ts +54 -0
  455. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  456. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  457. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  458. package/src/services/reqresp/config.ts +2 -2
  459. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  460. package/src/services/reqresp/connection-sampler/connection_sampler.ts +16 -0
  461. package/src/services/reqresp/interface.ts +48 -10
  462. package/src/services/reqresp/metrics.ts +33 -9
  463. package/src/services/reqresp/protocols/block_txs/bitvector.ts +7 -0
  464. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  465. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +74 -9
  466. package/src/services/reqresp/protocols/index.ts +0 -1
  467. package/src/services/reqresp/protocols/tx.ts +23 -3
  468. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  469. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  470. package/src/services/reqresp/reqresp.ts +116 -32
  471. package/src/services/service.ts +61 -3
  472. package/src/services/tx_collection/config.ts +83 -1
  473. package/src/services/tx_collection/fast_tx_collection.ts +111 -91
  474. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  475. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  476. package/src/services/tx_collection/index.ts +6 -0
  477. package/src/services/tx_collection/instrumentation.ts +17 -2
  478. package/src/services/tx_collection/proposal_tx_collector.ts +108 -0
  479. package/src/services/tx_collection/request_tracker.ts +127 -0
  480. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  481. package/src/services/tx_collection/tx_collection.ts +118 -23
  482. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  483. package/src/services/tx_collection/tx_source.ts +28 -8
  484. package/src/services/tx_file_store/config.ts +37 -0
  485. package/src/services/tx_file_store/index.ts +3 -0
  486. package/src/services/tx_file_store/instrumentation.ts +36 -0
  487. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  488. package/src/services/tx_provider.ts +10 -9
  489. package/src/services/tx_provider_instrumentation.ts +11 -5
  490. package/src/test-helpers/index.ts +2 -0
  491. package/src/test-helpers/make-test-p2p-clients.ts +6 -6
  492. package/src/test-helpers/mock-pubsub.ts +180 -14
  493. package/src/test-helpers/reqresp-nodes.ts +9 -9
  494. package/src/test-helpers/test_tx_provider.ts +64 -0
  495. package/src/test-helpers/testbench-utils.ts +457 -0
  496. package/src/testbench/p2p_client_testbench_worker.ts +396 -134
  497. package/src/testbench/worker_client_manager.ts +367 -48
  498. package/src/util.ts +8 -2
  499. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  500. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  501. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  502. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  503. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  504. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  505. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  506. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  507. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  508. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  509. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  510. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  511. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  512. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  513. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  514. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  515. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  516. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  517. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  518. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  519. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  520. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  521. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  522. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  523. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  524. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  525. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  526. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  527. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  528. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  529. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  530. package/dest/mem_pools/tx_pool/index.js +0 -2
  531. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  532. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  533. package/dest/mem_pools/tx_pool/priority.js +0 -15
  534. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  535. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  536. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  537. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  538. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  539. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  540. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  541. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  542. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  543. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  544. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  545. package/dest/services/reqresp/protocols/block.js +0 -32
  546. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  547. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  548. package/src/mem_pools/tx_pool/README.md +0 -270
  549. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  550. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  551. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  552. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  553. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  554. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  555. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  556. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  557. package/src/mem_pools/tx_pool/index.ts +0 -2
  558. package/src/mem_pools/tx_pool/priority.ts +0 -20
  559. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  560. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  561. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  562. package/src/services/reqresp/protocols/block.ts +0 -37
@@ -380,11 +380,11 @@ import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
380
380
  import { Attributes, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
381
381
  import { pipeline } from 'node:stream/promises';
382
382
  import { CollectiveReqRespTimeoutError, IndividualReqRespTimeoutError, InvalidResponseError } from '../../errors/reqresp.error.js';
383
- import { SnappyTransform } from '../encoding.js';
383
+ import { OversizedSnappyResponseError, SnappyTransform } from '../encoding.js';
384
384
  import { DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS, DEFAULT_REQRESP_DIAL_TIMEOUT_MS } from './config.js';
385
385
  import { BatchConnectionSampler } from './connection-sampler/batch_connection_sampler.js';
386
386
  import { ConnectionSampler, RandomSampler } from './connection-sampler/connection_sampler.js';
387
- import { DEFAULT_SUB_PROTOCOL_VALIDATORS, ReqRespSubProtocol, responseFromBuffer } from './interface.js';
387
+ import { DEFAULT_SUB_PROTOCOL_VALIDATORS, ReqRespSubProtocol, UNAUTHENTICATED_ALLOWED_PROTOCOLS, responseFromBuffer, subProtocolSizeCalculators } from './interface.js';
388
388
  import { ReqRespMetrics } from './metrics.js';
389
389
  import { RateLimitStatus, RequestResponseRateLimiter, prettyPrintRateLimitStatus } from './rate-limiter/rate_limiter.js';
390
390
  import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqRespStatus } from './status.js';
@@ -441,6 +441,7 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
441
441
  connectionSampler;
442
442
  rateLimiter;
443
443
  snappyTransform;
444
+ shouldRejectPeer;
444
445
  metrics;
445
446
  constructor(config, libp2p, peerScoring, logger = createLogger('p2p:reqresp'), rateLimits = {}, telemetryClient = getTelemetryClient()){
446
447
  this.libp2p = libp2p;
@@ -465,10 +466,18 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
465
466
  this.dialTimeoutMs = config.dialTimeoutMs;
466
467
  }
467
468
  }
469
+ setShouldRejectPeer(checker) {
470
+ this.shouldRejectPeer = checker;
471
+ }
468
472
  get tracer() {
469
473
  return this.metrics.tracer;
470
474
  }
471
475
  /**
476
+ * Get the connection sampler instance
477
+ */ getConnectionSampler() {
478
+ return this.connectionSampler;
479
+ }
480
+ /**
472
481
  * Start the reqresp service
473
482
  */ async start(subProtocolHandlers, subProtocolValidators) {
474
483
  Object.assign(this.subProtocolHandlers, subProtocolHandlers);
@@ -528,6 +537,14 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
528
537
  const responseValidator = this.subProtocolValidators[subProtocol] ?? DEFAULT_SUB_PROTOCOL_VALIDATORS[subProtocol];
529
538
  const responses = new Array(requests.length);
530
539
  const requestBuffers = requests.map((req)=>req.toBuffer());
540
+ const isEmptyResponse = (value)=>{
541
+ // Some responses serialize to a non-empty buffer even when they contain no items (e.g., empty TxArray).
542
+ if (!value || typeof value !== 'object') {
543
+ return false;
544
+ }
545
+ const length = value.length;
546
+ return typeof length === 'number' && length === 0;
547
+ };
531
548
  const requestFunction = async (signal)=>{
532
549
  // Track which requests still need to be processed
533
550
  const pendingRequestIndices = new Set(requestBuffers.map((_, i)=>i));
@@ -555,7 +572,7 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
555
572
  for (const requestIndex of pendingRequestIndices){
556
573
  const peer = batchSampler.getPeerForRequest(requestIndex);
557
574
  if (!peer) {
558
- break;
575
+ continue;
559
576
  }
560
577
  const peerAsString = peer.toString();
561
578
  if (!requestBatches.has(peerAsString)) {
@@ -575,6 +592,11 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
575
592
  indices: Array.from(pendingRequestIndices.values()).slice(0, limit)
576
593
  });
577
594
  }
595
+ // If no requests could be assigned (all peers exhausted for all indices), exit early
596
+ if (requestBatches.size === 0) {
597
+ this.logger.warn('No peers available for any pending request indices, stopping batch request');
598
+ break;
599
+ }
578
600
  // Make parallel requests for each peer's batch
579
601
  // A batch entry will look something like this:
580
602
  // PeerId0: [0, 1, 2, 3]
@@ -583,39 +605,56 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
583
605
  // while simultaneously Peer Id 1 will send requests 4, 5, 6, 7 in serial
584
606
  const batchResults = await Promise.all(Array.from(requestBatches.entries()).map(async ([peerAsString, { peerId: peer, indices }])=>{
585
607
  try {
608
+ const markIndexFailed = (index)=>batchSampler.markPeerFailedForIndex(peer, index);
586
609
  // Requests all going to the same peer are sent synchronously
587
610
  const peerResults = [];
611
+ let shouldReplacePeer = false;
612
+ const handleFailure = (status, index)=>{
613
+ this.logger.warn(`Request to peer ${peerAsString} failed with status ${prettyPrintReqRespStatus(status)}`);
614
+ markIndexFailed(index);
615
+ return status === ReqRespStatus.RATE_LIMIT_EXCEEDED;
616
+ };
588
617
  for (const index of indices){
589
618
  this.logger.trace(`Sending request ${index} to peer ${peerAsString}`);
590
619
  const response = await this.sendRequestToPeer(peer, subProtocol, requestBuffers[index]);
591
620
  // Check the status of the response buffer
592
621
  if (response.status !== ReqRespStatus.SUCCESS) {
593
- this.logger.debug(`Request to peer ${peerAsString} failed with status ${prettyPrintReqRespStatus(response.status)}`);
594
- // If we hit a rate limit or some failure, we remove the peer and return the results,
595
- // they will be split among remaining peers and the new sampled peer
596
- batchSampler.removePeerAndReplace(peer);
597
- return {
598
- peer,
599
- results: peerResults
600
- };
601
- }
602
- if (response && response.data.length > 0) {
603
- const object = responseFromBuffer(subProtocol, response.data);
604
- const isValid = await responseValidator(requests[index], object, peer);
605
- if (isValid) {
606
- peerResults.push({
607
- index,
608
- response: object
609
- });
622
+ shouldReplacePeer = handleFailure(response.status, index);
623
+ if (shouldReplacePeer) {
624
+ break;
610
625
  }
626
+ continue;
627
+ }
628
+ if (response.data.length === 0) {
629
+ markIndexFailed(index);
630
+ continue;
631
+ }
632
+ const object = responseFromBuffer(subProtocol, response.data);
633
+ if (isEmptyResponse(object)) {
634
+ markIndexFailed(index);
635
+ continue;
636
+ }
637
+ const isValid = await responseValidator(requests[index], object, peer);
638
+ if (!isValid) {
639
+ markIndexFailed(index);
640
+ continue;
611
641
  }
642
+ peerResults.push({
643
+ index,
644
+ response: object
645
+ });
646
+ }
647
+ // If peer had a hard failure (rate limit), replace it for future iterations
648
+ if (shouldReplacePeer) {
649
+ this.logger.warn(`Peer ${peerAsString} hit a hard failure, removing from sampler`);
650
+ batchSampler.removePeerAndReplace(peer);
612
651
  }
613
652
  return {
614
653
  peer,
615
654
  results: peerResults
616
655
  };
617
656
  } catch (error) {
618
- this.logger.debug(`Failed batch request to peer ${peerAsString}:`, error);
657
+ this.logger.warn(`Failed batch request to peer ${peerAsString}:`, error);
619
658
  batchSampler.removePeerAndReplace(peer);
620
659
  return {
621
660
  peer,
@@ -635,14 +674,14 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
635
674
  retryAttempts++;
636
675
  }
637
676
  if (retryAttempts >= maxRetryAttempts) {
638
- this.logger.debug(`Max retry attempts ${maxRetryAttempts} reached for batch request`);
677
+ this.logger.warn(`Max retry attempts ${maxRetryAttempts} reached for batch request`);
639
678
  }
640
679
  return responses;
641
680
  };
642
681
  try {
643
682
  return await executeTimeout(requestFunction, timeoutMs, ()=>new CollectiveReqRespTimeoutError());
644
683
  } catch (e) {
645
- this.logger.debug(`${e.message} | subProtocol: ${subProtocol}`);
684
+ this.logger.warn(`${e.message} | subProtocol: ${subProtocol}`);
646
685
  return [];
647
686
  }
648
687
  }
@@ -674,22 +713,27 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
674
713
  let stream;
675
714
  try {
676
715
  this.metrics.recordRequestSent(subProtocol);
716
+ // Calculate expected response size based on the request payload
717
+ const expectedSizeKb = subProtocolSizeCalculators[subProtocol](payload);
677
718
  this.logger.trace(`Sending request to peer ${peerId.toString()} on sub protocol ${subProtocol}`);
678
719
  stream = await this.connectionSampler.dialProtocol(peerId, subProtocol, dialTimeout);
679
720
  this.logger.trace(`Opened stream ${stream.id} for sending request to peer ${peerId.toString()} on sub protocol ${subProtocol}`);
680
721
  const timeoutErr = new IndividualReqRespTimeoutError();
722
+ // Create a wrapper to pass the expected size to readMessage
723
+ const readMessageWithSizeLimit = (source)=>this.readMessage(source, expectedSizeKb);
681
724
  const [_, resp] = await executeTimeout((signal)=>Promise.all([
682
725
  pipeline([
683
726
  payload
684
727
  ], stream.sink, {
685
728
  signal
686
729
  }),
687
- pipeline(stream.source, this.readMessage.bind(this), {
730
+ pipeline(stream.source, readMessageWithSizeLimit, {
688
731
  signal
689
732
  })
690
733
  ]), this.individualRequestTimeoutMs, ()=>timeoutErr);
691
734
  return resp;
692
735
  } catch (e) {
736
+ this.logger.debug(`SUBPROTOCOL: ${subProtocol}\n`, e);
693
737
  // On error we immediately abort the stream, this is preferred way,
694
738
  // because it signals to the sender that error happened, whereas
695
739
  // closing the stream only closes our side and is much slower
@@ -737,7 +781,10 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
737
781
  * The message is split into two components
738
782
  * - The first chunk should contain a control byte, indicating the status of the response see `ReqRespStatus`
739
783
  * - The second chunk should contain the response data
740
- */ async readMessage(source) {
784
+ *
785
+ * @param source - The async iterable source of data chunks
786
+ * @param maxSizeKb - Optional maximum expected size in KB for the decompressed response
787
+ */ async readMessage(source, maxSizeKb) {
741
788
  let status;
742
789
  const chunks = [];
743
790
  try {
@@ -758,20 +805,16 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
758
805
  }
759
806
  }
760
807
  const messageData = Buffer.concat(chunks);
761
- const message = this.snappyTransform.inboundTransformData(messageData);
808
+ const message = this.snappyTransform.inboundTransformData(messageData, undefined, maxSizeKb);
762
809
  return {
763
810
  status: status ?? ReqRespStatus.UNKNOWN,
764
811
  data: message
765
812
  };
766
813
  } catch (e) {
814
+ // All errors (invalid status bytes, oversized snappy responses, corrupt data, etc.)
815
+ // are re-thrown so the caller can penalize the peer via handleResponseError.
767
816
  this.logger.debug(`Reading message failed: ${e.message}`);
768
- let status = ReqRespStatus.UNKNOWN;
769
- if (e instanceof ReqRespStatusError) {
770
- status = e.status;
771
- }
772
- return {
773
- status
774
- };
817
+ throw e;
775
818
  }
776
819
  }
777
820
  /**
@@ -799,6 +842,11 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
799
842
  this.logger.verbose(`Rate limit exceeded ${prettyPrintRateLimitStatus(rateLimitStatus)} for ${protocol} from ${connection.remotePeer}`);
800
843
  throw new ReqRespStatusError(ReqRespStatus.RATE_LIMIT_EXCEEDED);
801
844
  }
845
+ // When p2pAllowOnlyValidators is enabled, reject unauthenticated peers on data protocols
846
+ if (!UNAUTHENTICATED_ALLOWED_PROTOCOLS.has(protocol) && (this.shouldRejectPeer?.(connection.remotePeer.toString()) ?? false)) {
847
+ this.logger.debug(`Rejecting unauthenticated peer ${connection.remotePeer} on gated protocol ${protocol}`);
848
+ throw new ReqRespStatusError(ReqRespStatus.FAILURE);
849
+ }
802
850
  await this.processStream(protocol, incomingStream);
803
851
  } catch (err) {
804
852
  this.metrics.recordResponseError(protocol);
@@ -819,7 +867,8 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
819
867
  // and that this stream should be dropped
820
868
  const isMessageToNotWarn = err instanceof Error && [
821
869
  'stream reset',
822
- 'Cannot push value onto an ended pushable'
870
+ 'Cannot push value onto an ended pushable',
871
+ 'read ECONNRESET'
823
872
  ].some((msg)=>err.message.includes(msg));
824
873
  const level = isMessageToNotWarn ? 'debug' : 'warn';
825
874
  this.logger[level]('Unknown stream error while handling the stream, aborting', {
@@ -934,6 +983,18 @@ _dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
934
983
  this.logger.debug(`Non-punishable error in ${subProtocol}: ${e.message}`, logTags);
935
984
  return undefined;
936
985
  }
986
+ // Invalid status byte: the peer sent a status byte that doesn't match any known status code.
987
+ // This is a protocol violation, penalize harshly.
988
+ if (e instanceof ReqRespStatusError) {
989
+ this.logger.warn(`Invalid status byte from peer ${peerId.toString()} in ${subProtocol}: ${e.message}`, logTags);
990
+ return PeerErrorSeverity.LowToleranceError;
991
+ }
992
+ // Oversized snappy response: the peer is sending data that exceeds the allowed size.
993
+ // This is a protocol violation that wastes bandwidth, so penalize harshly.
994
+ if (e instanceof OversizedSnappyResponseError) {
995
+ this.logger.warn(`Oversized response from peer ${peerId.toString()} in ${subProtocol}: ${e.message}`, logTags);
996
+ return PeerErrorSeverity.LowToleranceError;
997
+ }
937
998
  return this.categorizeConnectionErrors(e, peerId, subProtocol);
938
999
  }
939
1000
  /*
@@ -1,10 +1,12 @@
1
+ import type { SlotNumber } from '@aztec/foundation/branded-types';
1
2
  import type { EthAddress } from '@aztec/foundation/eth-address';
2
3
  import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
3
- import type { BlockProposal, CheckpointAttestation, CheckpointProposalCore, Gossipable } from '@aztec/stdlib/p2p';
4
+ import type { BlockProposal, CheckpointAttestation, CheckpointProposalCore, Gossipable, TopicType } from '@aztec/stdlib/p2p';
4
5
  import type { Tx } from '@aztec/stdlib/tx';
5
6
  import type { PeerId } from '@libp2p/interface';
6
7
  import type { ENR } from '@nethermindeth/enr';
7
8
  import type EventEmitter from 'events';
9
+ import type { BatchTxRequesterLibP2PService } from './reqresp/batch-tx-requester/interface.js';
8
10
  import type { P2PReqRespConfig } from './reqresp/config.js';
9
11
  import type { StatusMessage } from './reqresp/index.js';
10
12
  import type { ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators, SubProtocolMap } from './reqresp/interface.js';
@@ -27,6 +29,28 @@ export type P2PBlockReceivedCallback = (block: BlockProposal, sender: PeerId) =>
27
29
  */
28
30
  export type P2PCheckpointReceivedCallback = (checkpoint: CheckpointProposalCore, sender: PeerId) => Promise<CheckpointAttestation[] | undefined>;
29
31
  export type AuthReceivedCallback = (peerId: PeerId, authRequest: AuthRequest) => Promise<AuthResponse | undefined>;
32
+ /** Minimal info passed to the duplicate proposal callback. */
33
+ export type DuplicateProposalInfo = {
34
+ slot: SlotNumber;
35
+ proposer: EthAddress;
36
+ type: 'checkpoint' | 'block';
37
+ };
38
+ /**
39
+ * Callback for when a duplicate proposal is detected (equivocation).
40
+ * Invoked on the first duplicate (when count goes from 1 to 2).
41
+ */
42
+ export type P2PDuplicateProposalCallback = (info: DuplicateProposalInfo) => void;
43
+ /** Minimal info passed to the duplicate attestation callback. */
44
+ export type DuplicateAttestationInfo = {
45
+ slot: SlotNumber;
46
+ attester: EthAddress;
47
+ };
48
+ /**
49
+ * Callback for when a duplicate attestation is detected (equivocation).
50
+ * A validator signing attestations for different proposals at the same slot.
51
+ * Invoked on the first duplicate (when count goes from 1 to 2).
52
+ */
53
+ export type P2PDuplicateAttestationCallback = (info: DuplicateAttestationInfo) => void;
30
54
  /**
31
55
  * The interface for a P2P service implementation.
32
56
  */
@@ -55,15 +79,33 @@ export interface P2PService {
55
79
  */
56
80
  sendBatchRequest<Protocol extends ReqRespSubProtocol>(protocol: Protocol, requests: InstanceType<SubProtocolMap[Protocol]['request']>[], pinnedPeerId?: PeerId, timeoutMs?: number, maxPeers?: number, maxRetryAttempts?: number): Promise<InstanceType<SubProtocolMap[Protocol]['response']>[]>;
57
81
  registerBlockReceivedCallback(callback: P2PBlockReceivedCallback): void;
58
- registerCheckpointReceivedCallback(callback: P2PCheckpointReceivedCallback): void;
82
+ registerValidatorCheckpointReceivedCallback(callback: P2PCheckpointReceivedCallback): void;
83
+ registerAllNodesCheckpointReceivedCallback(callback: P2PCheckpointReceivedCallback): void;
84
+ /** Fires the all-nodes checkpoint callback for our own proposal (gossipsub doesn't deliver own messages). */
85
+ notifyOwnCheckpointProposal(checkpoint: CheckpointProposalCore): Promise<void>;
86
+ /**
87
+ * Registers a callback invoked when a duplicate proposal is detected (equivocation).
88
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
89
+ */
90
+ registerDuplicateProposalCallback(callback: P2PDuplicateProposalCallback): void;
91
+ /**
92
+ * Registers a callback invoked when a duplicate attestation is detected (equivocation).
93
+ * A validator signing attestations for different proposals at the same slot.
94
+ * The callback is triggered on the first duplicate (when count goes from 1 to 2).
95
+ */
96
+ registerDuplicateAttestationCallback(callback: P2PDuplicateAttestationCallback): void;
59
97
  getEnr(): ENR | undefined;
60
98
  getPeers(includePending?: boolean): PeerInfo[];
61
- validate(txs: Tx[]): Promise<void>;
99
+ /** Returns the number of peers in the GossipSub mesh for a given topic type. */
100
+ getGossipMeshPeerCount(topicType: TopicType): number;
101
+ validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
62
102
  addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
63
103
  handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
64
104
  updateConfig(config: Partial<P2PReqRespConfig>): void;
65
105
  /** If node running this P2P stack is validator, passes in validator address to P2P layer */
66
106
  registerThisValidatorAddresses(address: EthAddress[]): void;
107
+ /** Get BatchTxRequester service dependencies */
108
+ getBatchTxRequesterService(): BatchTxRequesterLibP2PService;
67
109
  }
68
110
  /**
69
111
  * The interface for a peer discovery service implementation.
@@ -101,4 +143,4 @@ export interface PeerDiscoveryService extends EventEmitter {
101
143
  getEnr(): ENR | undefined;
102
144
  bootstrapNodeEnrs: ENR[];
103
145
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xILE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRXZDLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQ1Ysa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsY0FBYyxFQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdFLG9CQUFZLGtCQUFrQjtJQUM1QixPQUFPLFlBQVk7SUFDbkIsT0FBTyxZQUFZO0NBQ3BCO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFbEc7Ozs7O0dBS0c7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
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLFNBQVMsRUFDVixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRXZDLE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0YsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFDVixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixjQUFjLEVBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0Usb0JBQVksa0JBQWtCO0lBQzVCLE9BQU8sWUFBWTtJQUNuQixPQUFPLFlBQVk7Q0FDcEI7QUFFRDs7OztHQUlHO0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE7E,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAElG;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAC1C,UAAU,EAAE,sBAAsB,EAClC,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,qBAAqB,EAAE,GAAG,SAAS,CAAC,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,SAAS,kBAAkB,EAClD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7D,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IAGjE,6BAA6B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAExE,kCAAkC,CAAC,QAAQ,EAAE,6BAA6B,GAAG,IAAI,CAAC;IAElF,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;IAE1B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAE/C,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,qBAAqB,CACnB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,yBAAyB,EAClC,SAAS,CAAC,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,yBAAyB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5F,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAEtD,4FAA4F;IAC5F,8BAA8B,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD;;SAEK;IACL,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;SAEK;IACL,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,YAAY,IAAI,GAAG,EAAE,CAAC;IAEtB;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAElD,SAAS,IAAI,kBAAkB,CAAC;IAEhC,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;IAE1B,iBAAiB,EAAE,GAAG,EAAE,CAAC;CAC1B"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type ConfigMappingsType } from '@aztec/foundation/config';
2
+ export type MissingTxsCollectorType = 'new' | 'old';
2
3
  export type TxCollectionConfig = {
3
4
  /** How long to wait before starting reqresp for fast collection */
4
5
  txCollectionFastNodesTimeoutBeforeReqRespMs: number;
@@ -20,6 +21,26 @@ export type TxCollectionConfig = {
20
21
  txCollectionFastMaxParallelRequestsPerNode: number;
21
22
  /** Maximum number of transactions to request from a node in a single batch */
22
23
  txCollectionNodeRpcMaxBatchSize: number;
24
+ /** Which collector implementation to use for missing txs collection */
25
+ txCollectionMissingTxsCollectorType: MissingTxsCollectorType;
26
+ /** A comma-separated list of file store URLs (s3://, gs://, file://, http://) for tx collection */
27
+ txCollectionFileStoreUrls: string[];
28
+ /** Delay in ms before file store collection starts after slow collection is triggered */
29
+ txCollectionFileStoreSlowDelayMs: number;
30
+ /** Delay in ms before file store collection starts after fast collection is triggered */
31
+ txCollectionFileStoreFastDelayMs: number;
32
+ /** Number of concurrent workers for fast file store collection */
33
+ txCollectionFileStoreFastWorkerCount: number;
34
+ /** Number of concurrent workers for slow file store collection */
35
+ txCollectionFileStoreSlowWorkerCount: number;
36
+ /** Base backoff time in ms for fast file store collection retries */
37
+ txCollectionFileStoreFastBackoffBaseMs: number;
38
+ /** Base backoff time in ms for slow file store collection retries */
39
+ txCollectionFileStoreSlowBackoffBaseMs: number;
40
+ /** Max backoff time in ms for fast file store collection retries */
41
+ txCollectionFileStoreFastBackoffMaxMs: number;
42
+ /** Max backoff time in ms for slow file store collection retries */
43
+ txCollectionFileStoreSlowBackoffMaxMs: number;
23
44
  };
24
45
  export declare const txCollectionConfigMappings: ConfigMappingsType<TxCollectionConfig>;
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQTJDLE1BQU0sMEJBQTBCLENBQUM7QUFHNUcsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLG9FQUFvRTtJQUNwRSwyQ0FBMkMsRUFBRSxNQUFNLENBQUM7SUFDcEQsaURBQWlEO0lBQ2pELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxzQ0FBc0M7SUFDdEMsaUNBQWlDLEVBQUUsTUFBTSxDQUFDO0lBQzFDLHFFQUFxRTtJQUNyRSxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDekMsd0RBQXdEO0lBQ3hELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxnR0FBZ0c7SUFDaEcseUNBQXlDLEVBQUUsT0FBTyxDQUFDO0lBQ25ELDJGQUEyRjtJQUMzRiw4QkFBOEIsRUFBRSxNQUFNLENBQUM7SUFDdkMsNkVBQTZFO0lBQzdFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLG1GQUFtRjtJQUNuRiwwQ0FBMEMsRUFBRSxNQUFNLENBQUM7SUFDbkQsOEVBQThFO0lBQzlFLCtCQUErQixFQUFFLE1BQU0sQ0FBQztDQUN6QyxDQUFDO0FBRUYsZUFBTyxNQUFNLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQXlEN0UsQ0FBQyJ9
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBSXhCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsTUFBTSxNQUFNLHVCQUF1QixHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7QUFFcEQsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLG9FQUFvRTtJQUNwRSwyQ0FBMkMsRUFBRSxNQUFNLENBQUM7SUFDcEQsaURBQWlEO0lBQ2pELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxzQ0FBc0M7SUFDdEMsaUNBQWlDLEVBQUUsTUFBTSxDQUFDO0lBQzFDLHFFQUFxRTtJQUNyRSxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDekMsd0RBQXdEO0lBQ3hELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxnR0FBZ0c7SUFDaEcseUNBQXlDLEVBQUUsT0FBTyxDQUFDO0lBQ25ELDJGQUEyRjtJQUMzRiw4QkFBOEIsRUFBRSxNQUFNLENBQUM7SUFDdkMsNkVBQTZFO0lBQzdFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLG1GQUFtRjtJQUNuRiwwQ0FBMEMsRUFBRSxNQUFNLENBQUM7SUFDbkQsOEVBQThFO0lBQzlFLCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4Qyx1RUFBdUU7SUFDdkUsbUNBQW1DLEVBQUUsdUJBQXVCLENBQUM7SUFDN0QsbUdBQW1HO0lBQ25HLHlCQUF5QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3BDLHlGQUF5RjtJQUN6RixnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDekMseUZBQXlGO0lBQ3pGLGdDQUFnQyxFQUFFLE1BQU0sQ0FBQztJQUN6QyxrRUFBa0U7SUFDbEUsb0NBQW9DLEVBQUUsTUFBTSxDQUFDO0lBQzdDLGtFQUFrRTtJQUNsRSxvQ0FBb0MsRUFBRSxNQUFNLENBQUM7SUFDN0MscUVBQXFFO0lBQ3JFLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQztJQUMvQyxxRUFBcUU7SUFDckUsc0NBQXNDLEVBQUUsTUFBTSxDQUFDO0lBQy9DLG9FQUFvRTtJQUNwRSxxQ0FBcUMsRUFBRSxNQUFNLENBQUM7SUFDOUMsb0VBQW9FO0lBQ3BFLHFDQUFxQyxFQUFFLE1BQU0sQ0FBQztDQUMvQyxDQUFDO0FBRUYsZUFBTyxNQUFNLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQWdIN0UsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAA2C,MAAM,0BAA0B,CAAC;AAG5G,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oEAAoE;IACpE,2CAA2C,EAAE,MAAM,CAAC;IACpD,iDAAiD;IACjD,+BAA+B,EAAE,MAAM,CAAC;IACxC,sCAAsC;IACtC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,qEAAqE;IACrE,gCAAgC,EAAE,MAAM,CAAC;IACzC,wDAAwD;IACxD,+BAA+B,EAAE,MAAM,CAAC;IACxC,gGAAgG;IAChG,yCAAyC,EAAE,OAAO,CAAC;IACnD,2FAA2F;IAC3F,8BAA8B,EAAE,MAAM,CAAC;IACvC,6EAA6E;IAC7E,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,mFAAmF;IACnF,0CAA0C,EAAE,MAAM,CAAC;IACnD,8EAA8E;IAC9E,+BAA+B,EAAE,MAAM,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAyD7E,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAIxB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,KAAK,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,oEAAoE;IACpE,2CAA2C,EAAE,MAAM,CAAC;IACpD,iDAAiD;IACjD,+BAA+B,EAAE,MAAM,CAAC;IACxC,sCAAsC;IACtC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,qEAAqE;IACrE,gCAAgC,EAAE,MAAM,CAAC;IACzC,wDAAwD;IACxD,+BAA+B,EAAE,MAAM,CAAC;IACxC,gGAAgG;IAChG,yCAAyC,EAAE,OAAO,CAAC;IACnD,2FAA2F;IAC3F,8BAA8B,EAAE,MAAM,CAAC;IACvC,6EAA6E;IAC7E,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,mFAAmF;IACnF,0CAA0C,EAAE,MAAM,CAAC;IACnD,8EAA8E;IAC9E,+BAA+B,EAAE,MAAM,CAAC;IACxC,uEAAuE;IACvE,mCAAmC,EAAE,uBAAuB,CAAC;IAC7D,mGAAmG;IACnG,yBAAyB,EAAE,MAAM,EAAE,CAAC;IACpC,yFAAyF;IACzF,gCAAgC,EAAE,MAAM,CAAC;IACzC,yFAAyF;IACzF,gCAAgC,EAAE,MAAM,CAAC;IACzC,kEAAkE;IAClE,oCAAoC,EAAE,MAAM,CAAC;IAC7C,kEAAkE;IAClE,oCAAoC,EAAE,MAAM,CAAC;IAC7C,qEAAqE;IACrE,sCAAsC,EAAE,MAAM,CAAC;IAC/C,qEAAqE;IACrE,sCAAsC,EAAE,MAAM,CAAC;IAC/C,oEAAoE;IACpE,qCAAqC,EAAE,MAAM,CAAC;IAC9C,oEAAoE;IACpE,qCAAqC,EAAE,MAAM,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,CAAC,kBAAkB,CAgH7E,CAAC"}
@@ -1,4 +1,4 @@
1
- import { booleanConfigHelper, numberConfigHelper } from '@aztec/foundation/config';
1
+ import { booleanConfigHelper, enumConfigHelper, numberConfigHelper } from '@aztec/foundation/config';
2
2
  import { MAX_RPC_TXS_LEN } from '@aztec/stdlib/interfaces/api-limit';
3
3
  export const txCollectionConfigMappings = {
4
4
  txCollectionFastNodesTimeoutBeforeReqRespMs: {
@@ -54,5 +54,59 @@ export const txCollectionConfigMappings = {
54
54
  env: 'TX_COLLECTION_NODE_RPC_MAX_BATCH_SIZE',
55
55
  description: 'Maximum number of transactions to request from a node in a single batch',
56
56
  ...numberConfigHelper(MAX_RPC_TXS_LEN)
57
+ },
58
+ txCollectionMissingTxsCollectorType: {
59
+ env: 'TX_COLLECTION_MISSING_TXS_COLLECTOR_TYPE',
60
+ description: 'Which collector implementation to use for missing txs collection (new or old)',
61
+ ...enumConfigHelper([
62
+ 'new',
63
+ 'old'
64
+ ], 'new')
65
+ },
66
+ txCollectionFileStoreUrls: {
67
+ env: 'TX_COLLECTION_FILE_STORE_URLS',
68
+ description: 'A comma-separated list of file store URLs (s3://, gs://, file://, http://) for tx collection',
69
+ parseEnv: (val)=>val.split(',').map((url)=>url.trim()).filter((url)=>url.length > 0),
70
+ defaultValue: []
71
+ },
72
+ txCollectionFileStoreSlowDelayMs: {
73
+ env: 'TX_COLLECTION_FILE_STORE_SLOW_DELAY_MS',
74
+ description: 'Delay before file store collection starts after slow collection',
75
+ ...numberConfigHelper(24_000)
76
+ },
77
+ txCollectionFileStoreFastDelayMs: {
78
+ env: 'TX_COLLECTION_FILE_STORE_FAST_DELAY_MS',
79
+ description: 'Delay before file store collection starts after fast collection',
80
+ ...numberConfigHelper(2_000)
81
+ },
82
+ txCollectionFileStoreFastWorkerCount: {
83
+ env: 'TX_COLLECTION_FILE_STORE_FAST_WORKER_COUNT',
84
+ description: 'Number of concurrent workers for fast file store collection',
85
+ ...numberConfigHelper(5)
86
+ },
87
+ txCollectionFileStoreSlowWorkerCount: {
88
+ env: 'TX_COLLECTION_FILE_STORE_SLOW_WORKER_COUNT',
89
+ description: 'Number of concurrent workers for slow file store collection',
90
+ ...numberConfigHelper(2)
91
+ },
92
+ txCollectionFileStoreFastBackoffBaseMs: {
93
+ env: 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_BASE_MS',
94
+ description: 'Base backoff time in ms for fast file store collection retries',
95
+ ...numberConfigHelper(1_000)
96
+ },
97
+ txCollectionFileStoreSlowBackoffBaseMs: {
98
+ env: 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_BASE_MS',
99
+ description: 'Base backoff time in ms for slow file store collection retries',
100
+ ...numberConfigHelper(5_000)
101
+ },
102
+ txCollectionFileStoreFastBackoffMaxMs: {
103
+ env: 'TX_COLLECTION_FILE_STORE_FAST_BACKOFF_MAX_MS',
104
+ description: 'Max backoff time in ms for fast file store collection retries',
105
+ ...numberConfigHelper(5_000)
106
+ },
107
+ txCollectionFileStoreSlowBackoffMaxMs: {
108
+ env: 'TX_COLLECTION_FILE_STORE_SLOW_BACKOFF_MAX_MS',
109
+ description: 'Max backoff time in ms for slow file store collection retries',
110
+ ...numberConfigHelper(30_000)
57
111
  }
58
112
  };
@@ -1,23 +1,23 @@
1
1
  import { BlockNumber } from '@aztec/foundation/branded-types';
2
2
  import { type Logger } from '@aztec/foundation/log';
3
3
  import { DateProvider } from '@aztec/foundation/timer';
4
- import type { BlockProposal } from '@aztec/stdlib/p2p';
5
4
  import { type Tx, TxHash } from '@aztec/stdlib/tx';
6
5
  import type { PeerId } from '@libp2p/interface';
7
- import { type ReqRespInterface } from '../reqresp/interface.js';
6
+ import type { BatchTxRequesterLibP2PService } from '../reqresp/batch-tx-requester/interface.js';
8
7
  import type { TxCollectionConfig } from './config.js';
8
+ import { type MissingTxsCollector } from './proposal_tx_collector.js';
9
9
  import type { FastCollectionRequest, FastCollectionRequestInput } from './tx_collection.js';
10
10
  import type { TxCollectionSink } from './tx_collection_sink.js';
11
11
  import type { TxSource } from './tx_source.js';
12
12
  export declare class FastTxCollection {
13
- private reqResp;
14
13
  private nodes;
15
14
  private txCollectionSink;
16
15
  private config;
17
16
  private dateProvider;
18
17
  private log;
19
18
  protected requests: Set<FastCollectionRequest>;
20
- constructor(reqResp: Pick<ReqRespInterface, 'sendBatchRequest'>, nodes: TxSource[], txCollectionSink: TxCollectionSink, config: TxCollectionConfig, dateProvider?: DateProvider, log?: Logger);
19
+ private missingTxsCollector;
20
+ constructor(p2pService: BatchTxRequesterLibP2PService, nodes: TxSource[], txCollectionSink: TxCollectionSink, config: TxCollectionConfig, dateProvider?: DateProvider, log?: Logger, missingTxsCollector?: MissingTxsCollector);
21
21
  stop(): Promise<void>;
22
22
  getFastCollectionRequests(): Set<FastCollectionRequest>;
23
23
  collectFastFor(input: FastCollectionRequestInput, txHashes: TxHash[] | string[], opts: {
@@ -25,13 +25,13 @@ export declare class FastTxCollection {
25
25
  pinnedPeer?: PeerId;
26
26
  }): Promise<Tx[]>;
27
27
  protected collectFast(request: FastCollectionRequest, opts: {
28
- proposal?: BlockProposal;
29
- deadline: Date;
30
28
  pinnedPeer?: PeerId;
31
29
  }): Promise<void>;
32
30
  private collectFastFromNodes;
33
31
  private collectFastFromNode;
34
32
  private collectFastViaReqResp;
33
+ /** Returns the TxAddContext for the given request, used by the sink to add txs to the pool correctly. */
34
+ private getAddContext;
35
35
  /**
36
36
  * Handle txs by marking them as found for the requests that are waiting for them, and resolves the request if all its txs have been found.
37
37
  * Called internally and from the main tx collection manager whenever the tx pool emits a tx-added event.
@@ -48,4 +48,4 @@ export declare class FastTxCollection {
48
48
  */
49
49
  stopCollectingForBlocksAfter(blockNumber: BlockNumber): void;
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdF90eF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9mYXN0X3R4X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUlsRSxPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxxQkFBYSxnQkFBZ0I7SUFLekIsT0FBTyxDQUFDLE9BQU87SUFDZixPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsR0FBRztJQVJiLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQWE7SUFFM0QsWUFDVSxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLEVBQ25ELEtBQUssRUFBRSxRQUFRLEVBQUUsRUFDakIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLE1BQU0sRUFBRSxrQkFBa0IsRUFDMUIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLEdBQUcsR0FBRSxNQUFrRCxFQUM3RDtJQUVTLElBQUksa0JBR2hCO0lBRU0seUJBQXlCLCtCQUUvQjtJQUVZLGNBQWMsQ0FDekIsS0FBSyxFQUFFLDBCQUEwQixFQUNqQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQzdCLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkEwQzlDO0lBRUQsVUFBZ0IsV0FBVyxDQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQzlCLElBQUksRUFBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkErQ3hFO1lBUWEsb0JBQW9CO1lBWXBCLG1CQUFtQjtZQWlGbkIscUJBQXFCO0lBNkNuQzs7O09BR0c7SUFDSSxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQXdCeEI7SUFFRDs7O09BR0c7SUFDSSwyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FPakU7SUFFRDs7O09BR0c7SUFDSSw0QkFBNEIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FPbEU7Q0FDRiJ9
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdF90eF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9mYXN0X3R4X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEcsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUVMLEtBQUssbUJBQW1CLEVBRXpCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxxQkFBYSxnQkFBZ0I7SUFPekIsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLEdBQUc7SUFUYixTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFhO0lBQzNELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBc0I7SUFFakQsWUFDRSxVQUFVLEVBQUUsNkJBQTZCLEVBQ2pDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFDakIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLE1BQU0sRUFBRSxrQkFBa0IsRUFDMUIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLEdBQUcsR0FBRSxNQUFrRCxFQUMvRCxtQkFBbUIsQ0FBQyxFQUFFLG1CQUFtQixFQVMxQztJQUVZLElBQUksa0JBS2hCO0lBRU0seUJBQXlCLCtCQUUvQjtJQUVZLGNBQWMsQ0FDekIsS0FBSyxFQUFFLDBCQUEwQixFQUNqQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQzdCLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkFrQzlDO0lBRUQsVUFBZ0IsV0FBVyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBQUU7UUFBRSxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkF5Q3hGO1lBUWEsb0JBQW9CO1lBZ0JwQixtQkFBbUI7WUEwRm5CLHFCQUFxQjtJQWtEbkMseUdBQXlHO0lBQ3pHLE9BQU8sQ0FBQyxhQUFhO0lBUXJCOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBcUJ4QjtJQUVEOzs7T0FHRztJQUNJLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU1qRTtJQUVEOzs7T0FHRztJQUNJLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU1sRTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fast_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/fast_tx_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAsB,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IARb,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAa;IAE3D,YACU,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EACnD,KAAK,EAAE,QAAQ,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAkD,EAC7D;IAES,IAAI,kBAGhB;IAEM,yBAAyB,+BAE/B;IAEY,cAAc,CACzB,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAC7B,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA0C9C;IAED,UAAgB,WAAW,CACzB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA+CxE;YAQa,oBAAoB;YAYpB,mBAAmB;YAiFnB,qBAAqB;IA6CnC;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,QAwBxB;IAED;;;OAGG;IACI,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOjE;IAED;;;OAGG;IACI,4BAA4B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOlE;CACF"}
1
+ {"version":3,"file":"fast_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/fast_tx_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IATb,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAa;IAC3D,OAAO,CAAC,mBAAmB,CAAsB;IAEjD,YACE,UAAU,EAAE,6BAA6B,EACjC,KAAK,EAAE,QAAQ,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAkD,EAC/D,mBAAmB,CAAC,EAAE,mBAAmB,EAS1C;IAEY,IAAI,kBAKhB;IAEM,yBAAyB,+BAE/B;IAEY,cAAc,CACzB,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAC7B,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBAkC9C;IAED,UAAgB,WAAW,CAAC,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBAyCxF;YAQa,oBAAoB;YAgBpB,mBAAmB;YA0FnB,qBAAqB;IAkDnC,yGAAyG;IACzG,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,QAqBxB;IAED;;;OAGG;IACI,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAMjE;IAED;;;OAGG;IACI,4BAA4B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAMlE;CACF"}