@aztec/p2p 0.0.1-commit.b655e406 → 0.0.1-commit.b8a057fa

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 (606) hide show
  1. package/README.md +130 -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 +26 -10
  5. package/dest/client/factory.d.ts +13 -12
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +70 -21
  8. package/dest/client/index.d.ts +1 -1
  9. package/dest/client/interface.d.ts +104 -39
  10. package/dest/client/interface.d.ts.map +1 -1
  11. package/dest/client/p2p_client.d.ts +76 -92
  12. package/dest/client/p2p_client.d.ts.map +1 -1
  13. package/dest/client/p2p_client.js +685 -344
  14. package/dest/config.d.ts +175 -87
  15. package/dest/config.d.ts.map +1 -1
  16. package/dest/config.js +180 -59
  17. package/dest/enr/generate-enr.d.ts +1 -1
  18. package/dest/enr/index.d.ts +1 -1
  19. package/dest/errors/attestation-pool.error.d.ts +7 -0
  20. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  21. package/dest/errors/attestation-pool.error.js +12 -0
  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/reqresp.error.d.ts +9 -16
  26. package/dest/errors/reqresp.error.d.ts.map +1 -1
  27. package/dest/errors/reqresp.error.js +10 -17
  28. package/dest/errors/tx-pool.error.d.ts +8 -0
  29. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  30. package/dest/errors/tx-pool.error.js +9 -0
  31. package/dest/index.d.ts +2 -2
  32. package/dest/index.d.ts.map +1 -1
  33. package/dest/index.js +1 -1
  34. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +156 -57
  35. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  36. package/dest/mem_pools/attestation_pool/attestation_pool.js +518 -3
  37. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  38. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +694 -294
  40. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  41. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  42. package/dest/mem_pools/attestation_pool/index.js +1 -2
  43. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  44. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  45. package/dest/mem_pools/attestation_pool/mocks.js +19 -13
  46. package/dest/mem_pools/index.d.ts +3 -3
  47. package/dest/mem_pools/index.d.ts.map +1 -1
  48. package/dest/mem_pools/index.js +1 -1
  49. package/dest/mem_pools/instrumentation.d.ts +16 -1
  50. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  51. package/dest/mem_pools/instrumentation.js +58 -10
  52. package/dest/mem_pools/interface.d.ts +6 -7
  53. package/dest/mem_pools/interface.d.ts.map +1 -1
  54. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  55. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  57. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +39 -0
  58. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +97 -0
  60. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  61. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  80. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  81. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  90. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  93. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  94. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  96. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  97. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  99. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  100. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  102. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +243 -0
  103. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/interfaces.js +11 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +223 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +122 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +368 -0
  114. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +68 -0
  115. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +178 -0
  117. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +91 -0
  118. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  119. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +1013 -0
  120. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +15 -7
  121. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  122. package/dest/msg_validators/attestation_validator/attestation_validator.js +82 -26
  123. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +24 -0
  124. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  125. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +75 -0
  126. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  127. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  128. package/dest/msg_validators/attestation_validator/index.js +1 -0
  129. package/dest/msg_validators/index.d.ts +2 -2
  130. package/dest/msg_validators/index.d.ts.map +1 -1
  131. package/dest/msg_validators/index.js +1 -1
  132. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  133. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +16 -0
  135. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  136. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +14 -0
  137. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +16 -0
  138. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  139. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +26 -0
  140. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  141. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  142. package/dest/msg_validators/proposal_validator/index.js +3 -0
  143. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +40 -0
  144. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  145. package/dest/msg_validators/proposal_validator/proposal_validator.js +186 -0
  146. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  147. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  148. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +11 -18
  149. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  150. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  151. package/dest/msg_validators/tx_validator/allowed_public_setup.js +25 -21
  152. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  153. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  154. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  155. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  156. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  158. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  159. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  160. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  161. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  162. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  163. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  164. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  165. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  166. package/dest/msg_validators/tx_validator/data_validator.d.ts +4 -1
  167. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  168. package/dest/msg_validators/tx_validator/data_validator.js +40 -3
  169. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  170. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  171. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  172. package/dest/msg_validators/tx_validator/factory.d.ts +138 -6
  173. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  174. package/dest/msg_validators/tx_validator/factory.js +268 -58
  175. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  176. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  177. package/dest/msg_validators/tx_validator/fee_payer_balance.js +24 -0
  178. package/dest/msg_validators/tx_validator/gas_validator.d.ts +105 -3
  179. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  180. package/dest/msg_validators/tx_validator/gas_validator.js +146 -67
  181. package/dest/msg_validators/tx_validator/index.d.ts +6 -1
  182. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  183. package/dest/msg_validators/tx_validator/index.js +5 -0
  184. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  185. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  186. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  187. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  188. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  189. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  190. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  191. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  192. package/dest/msg_validators/tx_validator/phases_validator.js +78 -28
  193. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  194. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  195. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  196. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  197. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  198. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +23 -5
  199. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  200. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  201. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  202. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  203. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  204. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +4 -2
  205. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  206. package/dest/msg_validators/tx_validator/tx_proof_validator.js +4 -2
  207. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  208. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  209. package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
  210. package/dest/services/data_store.d.ts +1 -1
  211. package/dest/services/data_store.d.ts.map +1 -1
  212. package/dest/services/data_store.js +14 -10
  213. package/dest/services/discv5/discV5_service.d.ts +13 -2
  214. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  215. package/dest/services/discv5/discV5_service.js +120 -24
  216. package/dest/services/discv5/persisted_enr_store.d.ts +38 -0
  217. package/dest/services/discv5/persisted_enr_store.d.ts.map +1 -0
  218. package/dest/services/discv5/persisted_enr_store.js +145 -0
  219. package/dest/services/dummy_service.d.ts +40 -16
  220. package/dest/services/dummy_service.d.ts.map +1 -1
  221. package/dest/services/dummy_service.js +61 -14
  222. package/dest/services/encoding.d.ts +24 -7
  223. package/dest/services/encoding.d.ts.map +1 -1
  224. package/dest/services/encoding.js +48 -30
  225. package/dest/services/gossipsub/index.d.ts +3 -0
  226. package/dest/services/gossipsub/index.d.ts.map +1 -0
  227. package/dest/services/gossipsub/index.js +2 -0
  228. package/dest/services/gossipsub/scoring.d.ts +21 -3
  229. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  230. package/dest/services/gossipsub/scoring.js +24 -7
  231. package/dest/services/gossipsub/topic_score_params.d.ts +167 -0
  232. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  233. package/dest/services/gossipsub/topic_score_params.js +336 -0
  234. package/dest/services/index.d.ts +2 -1
  235. package/dest/services/index.d.ts.map +1 -1
  236. package/dest/services/index.js +1 -0
  237. package/dest/services/libp2p/instrumentation.d.ts +5 -1
  238. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  239. package/dest/services/libp2p/instrumentation.js +49 -70
  240. package/dest/services/libp2p/libp2p_service.d.ts +127 -110
  241. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  242. package/dest/services/libp2p/libp2p_service.js +1385 -447
  243. package/dest/services/peer-manager/interface.d.ts +1 -1
  244. package/dest/services/peer-manager/metrics.d.ts +11 -2
  245. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  246. package/dest/services/peer-manager/metrics.js +45 -16
  247. package/dest/services/peer-manager/peer_manager.d.ts +21 -35
  248. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  249. package/dest/services/peer-manager/peer_manager.js +89 -38
  250. package/dest/services/peer-manager/peer_scoring.d.ts +39 -2
  251. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  252. package/dest/services/peer-manager/peer_scoring.js +168 -15
  253. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +44 -0
  254. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  255. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +534 -0
  256. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  257. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  258. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  259. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  260. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  261. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  262. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  263. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  264. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  265. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  266. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  267. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  268. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +11 -0
  269. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  270. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +7 -0
  271. package/dest/services/reqresp/config.d.ts +15 -3
  272. package/dest/services/reqresp/config.d.ts.map +1 -1
  273. package/dest/services/reqresp/config.js +11 -0
  274. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  275. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  276. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  277. package/dest/services/reqresp/constants.d.ts +12 -0
  278. package/dest/services/reqresp/constants.d.ts.map +1 -0
  279. package/dest/services/reqresp/constants.js +7 -0
  280. package/dest/services/reqresp/index.d.ts +1 -1
  281. package/dest/services/reqresp/interface.d.ts +27 -18
  282. package/dest/services/reqresp/interface.d.ts.map +1 -1
  283. package/dest/services/reqresp/interface.js +23 -19
  284. package/dest/services/reqresp/metrics.d.ts +6 -5
  285. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  286. package/dest/services/reqresp/metrics.js +16 -21
  287. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  288. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  289. package/dest/services/reqresp/protocols/auth.js +2 -2
  290. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +8 -3
  291. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  292. package/dest/services/reqresp/protocols/block_txs/bitvector.js +15 -2
  293. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  294. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  295. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +35 -14
  296. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +37 -11
  297. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  298. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +85 -21
  299. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  300. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  301. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  302. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  303. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  304. package/dest/services/reqresp/protocols/index.js +0 -1
  305. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  306. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  307. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  308. package/dest/services/reqresp/protocols/status.js +7 -3
  309. package/dest/services/reqresp/protocols/tx.d.ts +8 -3
  310. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  311. package/dest/services/reqresp/protocols/tx.js +21 -3
  312. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  313. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +6 -5
  314. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  315. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  316. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  317. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  318. package/dest/services/reqresp/rate-limiter/rate_limits.js +3 -13
  319. package/dest/services/reqresp/reqresp.d.ts +12 -69
  320. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  321. package/dest/services/reqresp/reqresp.js +480 -200
  322. package/dest/services/reqresp/status.d.ts +2 -2
  323. package/dest/services/reqresp/status.d.ts.map +1 -1
  324. package/dest/services/service.d.ts +78 -13
  325. package/dest/services/service.d.ts.map +1 -1
  326. package/dest/services/tx_collection/config.d.ts +11 -11
  327. package/dest/services/tx_collection/config.d.ts.map +1 -1
  328. package/dest/services/tx_collection/config.js +28 -27
  329. package/dest/services/tx_collection/file_store_tx_collection.d.ts +37 -0
  330. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  331. package/dest/services/tx_collection/file_store_tx_collection.js +127 -0
  332. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  333. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  334. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  335. package/dest/services/tx_collection/index.d.ts +3 -2
  336. package/dest/services/tx_collection/index.d.ts.map +1 -1
  337. package/dest/services/tx_collection/index.js +1 -0
  338. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  339. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  340. package/dest/services/tx_collection/instrumentation.js +9 -13
  341. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  342. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  343. package/dest/services/tx_collection/request_tracker.js +84 -0
  344. package/dest/services/tx_collection/tx_collection.d.ts +51 -57
  345. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  346. package/dest/services/tx_collection/tx_collection.js +298 -70
  347. package/dest/services/tx_collection/tx_collection_sink.d.ts +20 -10
  348. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  349. package/dest/services/tx_collection/tx_collection_sink.js +28 -31
  350. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  351. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  352. package/dest/services/tx_collection/tx_source.js +29 -7
  353. package/dest/services/tx_file_store/config.d.ts +16 -0
  354. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  355. package/dest/services/tx_file_store/config.js +22 -0
  356. package/dest/services/tx_file_store/index.d.ts +4 -0
  357. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  358. package/dest/services/tx_file_store/index.js +3 -0
  359. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  360. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  361. package/dest/services/tx_file_store/instrumentation.js +29 -0
  362. package/dest/services/tx_file_store/tx_file_store.d.ts +46 -0
  363. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  364. package/dest/services/tx_file_store/tx_file_store.js +142 -0
  365. package/dest/services/tx_provider.d.ts +9 -5
  366. package/dest/services/tx_provider.d.ts.map +1 -1
  367. package/dest/services/tx_provider.js +23 -10
  368. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  369. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  370. package/dest/services/tx_provider_instrumentation.js +14 -14
  371. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  372. package/dest/test-helpers/get-ports.d.ts +1 -1
  373. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  374. package/dest/test-helpers/index.d.ts +3 -1
  375. package/dest/test-helpers/index.d.ts.map +1 -1
  376. package/dest/test-helpers/index.js +2 -0
  377. package/dest/test-helpers/make-enrs.d.ts +1 -1
  378. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  379. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  380. package/dest/test-helpers/make-test-p2p-clients.js +5 -3
  381. package/dest/test-helpers/mock-pubsub.d.ts +48 -8
  382. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  383. package/dest/test-helpers/mock-pubsub.js +115 -14
  384. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  385. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  386. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  387. package/dest/test-helpers/reqresp-nodes.d.ts +5 -7
  388. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  389. package/dest/test-helpers/reqresp-nodes.js +19 -20
  390. package/dest/test-helpers/test_tx_provider.d.ts +42 -0
  391. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  392. package/dest/test-helpers/test_tx_provider.js +44 -0
  393. package/dest/test-helpers/testbench-utils.d.ts +164 -0
  394. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  395. package/dest/test-helpers/testbench-utils.js +400 -0
  396. package/dest/testbench/p2p_client_testbench_worker.d.ts +26 -2
  397. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  398. package/dest/testbench/p2p_client_testbench_worker.js +289 -128
  399. package/dest/testbench/parse_log_file.d.ts +1 -1
  400. package/dest/testbench/testbench.d.ts +1 -1
  401. package/dest/testbench/worker_client_manager.d.ts +57 -6
  402. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  403. package/dest/testbench/worker_client_manager.js +277 -44
  404. package/dest/types/index.d.ts +1 -1
  405. package/dest/util.d.ts +14 -8
  406. package/dest/util.d.ts.map +1 -1
  407. package/dest/util.js +41 -11
  408. package/dest/versioning.d.ts +3 -6
  409. package/dest/versioning.d.ts.map +1 -1
  410. package/dest/versioning.js +3 -24
  411. package/package.json +21 -20
  412. package/src/bootstrap/bootstrap.ts +24 -7
  413. package/src/client/factory.ts +141 -46
  414. package/src/client/interface.ts +114 -47
  415. package/src/client/p2p_client.ts +356 -424
  416. package/src/client/test/p2p_client.batch_tx_requester.bench.README.md +197 -0
  417. package/src/config.ts +316 -67
  418. package/src/errors/attestation-pool.error.ts +13 -0
  419. package/src/errors/p2p-service.error.ts +11 -0
  420. package/src/errors/reqresp.error.ts +13 -19
  421. package/src/errors/tx-pool.error.ts +12 -0
  422. package/src/index.ts +1 -1
  423. package/src/mem_pools/attestation_pool/attestation_pool.ts +598 -56
  424. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +796 -316
  425. package/src/mem_pools/attestation_pool/index.ts +9 -2
  426. package/src/mem_pools/attestation_pool/mocks.ts +29 -17
  427. package/src/mem_pools/index.ts +2 -2
  428. package/src/mem_pools/instrumentation.ts +58 -10
  429. package/src/mem_pools/interface.ts +5 -7
  430. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  431. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  432. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +112 -0
  433. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  434. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  435. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  436. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  437. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  438. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  439. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  440. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  441. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  442. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  443. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  444. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  445. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  446. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  447. package/src/mem_pools/tx_pool_v2/interfaces.ts +274 -0
  448. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  449. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  450. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +465 -0
  451. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +252 -0
  452. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1215 -0
  453. package/src/msg_validators/attestation_validator/README.md +49 -0
  454. package/src/msg_validators/attestation_validator/attestation_validator.ts +78 -33
  455. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +102 -0
  456. package/src/msg_validators/attestation_validator/index.ts +1 -0
  457. package/src/msg_validators/index.ts +1 -1
  458. package/src/msg_validators/proposal_validator/README.md +123 -0
  459. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +32 -0
  460. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +49 -0
  461. package/src/msg_validators/proposal_validator/index.ts +3 -0
  462. package/src/msg_validators/proposal_validator/proposal_validator.ts +198 -0
  463. package/src/msg_validators/tx_validator/README.md +129 -0
  464. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +8 -17
  465. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  466. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  467. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  468. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  469. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  470. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  471. package/src/msg_validators/tx_validator/data_validator.ts +62 -7
  472. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  473. package/src/msg_validators/tx_validator/factory.ts +433 -58
  474. package/src/msg_validators/tx_validator/fee_payer_balance.ts +44 -0
  475. package/src/msg_validators/tx_validator/gas_validator.ts +206 -76
  476. package/src/msg_validators/tx_validator/index.ts +5 -0
  477. package/src/msg_validators/tx_validator/metadata_validator.ts +31 -12
  478. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  479. package/src/msg_validators/tx_validator/phases_validator.ts +90 -31
  480. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  481. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  482. package/src/msg_validators/tx_validator/timestamp_validator.ts +30 -19
  483. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  484. package/src/msg_validators/tx_validator/tx_proof_validator.ts +10 -3
  485. package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
  486. package/src/services/data_store.ts +14 -19
  487. package/src/services/discv5/discV5_service.ts +127 -15
  488. package/src/services/discv5/persisted_enr_store.ts +158 -0
  489. package/src/services/dummy_service.ts +82 -38
  490. package/src/services/encoding.ts +46 -29
  491. package/src/services/gossipsub/README.md +663 -0
  492. package/src/services/gossipsub/index.ts +2 -0
  493. package/src/services/gossipsub/scoring.ts +29 -5
  494. package/src/services/gossipsub/topic_score_params.ts +478 -0
  495. package/src/services/index.ts +1 -0
  496. package/src/services/libp2p/instrumentation.ts +54 -72
  497. package/src/services/libp2p/libp2p_service.ts +1152 -497
  498. package/src/services/peer-manager/metrics.ts +51 -16
  499. package/src/services/peer-manager/peer_manager.ts +98 -29
  500. package/src/services/peer-manager/peer_scoring.ts +170 -9
  501. package/src/services/reqresp/README.md +194 -0
  502. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  503. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +660 -0
  504. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  505. package/src/services/reqresp/batch-tx-requester/interface.ts +61 -0
  506. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  507. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  508. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +24 -0
  509. package/src/services/reqresp/config.ts +19 -2
  510. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  511. package/src/services/reqresp/constants.ts +14 -0
  512. package/src/services/reqresp/interface.ts +48 -46
  513. package/src/services/reqresp/metrics.ts +35 -27
  514. package/src/services/reqresp/protocols/auth.ts +2 -2
  515. package/src/services/reqresp/protocols/block_txs/bitvector.ts +19 -2
  516. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +44 -17
  517. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +109 -17
  518. package/src/services/reqresp/protocols/index.ts +0 -1
  519. package/src/services/reqresp/protocols/status.ts +16 -12
  520. package/src/services/reqresp/protocols/tx.ts +24 -5
  521. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  522. package/src/services/reqresp/rate-limiter/rate_limits.ts +3 -13
  523. package/src/services/reqresp/reqresp.ts +107 -223
  524. package/src/services/service.ts +102 -31
  525. package/src/services/tx_collection/config.ts +42 -37
  526. package/src/services/tx_collection/file_store_tx_collection.ts +153 -0
  527. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  528. package/src/services/tx_collection/index.ts +2 -1
  529. package/src/services/tx_collection/instrumentation.ts +5 -13
  530. package/src/services/tx_collection/request_tracker.ts +127 -0
  531. package/src/services/tx_collection/tx_collection.ts +368 -115
  532. package/src/services/tx_collection/tx_collection_sink.ts +32 -36
  533. package/src/services/tx_collection/tx_source.ts +29 -8
  534. package/src/services/tx_file_store/config.ts +37 -0
  535. package/src/services/tx_file_store/index.ts +3 -0
  536. package/src/services/tx_file_store/instrumentation.ts +36 -0
  537. package/src/services/tx_file_store/tx_file_store.ts +163 -0
  538. package/src/services/tx_provider.ts +34 -12
  539. package/src/services/tx_provider_instrumentation.ts +24 -14
  540. package/src/test-helpers/index.ts +2 -0
  541. package/src/test-helpers/make-test-p2p-clients.ts +7 -6
  542. package/src/test-helpers/mock-pubsub.ts +138 -15
  543. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  544. package/src/test-helpers/reqresp-nodes.ts +18 -30
  545. package/src/test-helpers/test_tx_provider.ts +69 -0
  546. package/src/test-helpers/testbench-utils.ts +465 -0
  547. package/src/testbench/p2p_client_testbench_worker.ts +406 -127
  548. package/src/testbench/worker_client_manager.ts +355 -46
  549. package/src/util.ts +47 -16
  550. package/src/versioning.ts +3 -33
  551. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -30
  552. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  553. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -190
  554. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -25
  555. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  556. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -197
  557. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -150
  558. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  559. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -617
  560. package/dest/mem_pools/tx_pool/index.d.ts +0 -4
  561. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  562. package/dest/mem_pools/tx_pool/index.js +0 -3
  563. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  564. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  565. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  566. package/dest/mem_pools/tx_pool/priority.d.ts +0 -8
  567. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  568. package/dest/mem_pools/tx_pool/priority.js +0 -10
  569. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -122
  570. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  571. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  572. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  573. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  574. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -394
  575. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  576. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  577. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  578. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  579. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  580. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  581. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -45
  582. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  583. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -92
  584. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  585. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  586. package/dest/services/reqresp/protocols/block.js +0 -31
  587. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -56
  588. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  589. package/dest/services/tx_collection/fast_tx_collection.js +0 -300
  590. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -54
  591. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  592. package/dest/services/tx_collection/slow_tx_collection.js +0 -176
  593. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -256
  594. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -253
  595. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -750
  596. package/src/mem_pools/tx_pool/index.ts +0 -3
  597. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  598. package/src/mem_pools/tx_pool/priority.ts +0 -13
  599. package/src/mem_pools/tx_pool/tx_pool.ts +0 -135
  600. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -313
  601. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  602. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
  603. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -100
  604. package/src/services/reqresp/protocols/block.ts +0 -36
  605. package/src/services/tx_collection/fast_tx_collection.ts +0 -340
  606. package/src/services/tx_collection/slow_tx_collection.ts +0 -232
@@ -1,394 +0,0 @@
1
- import { unfreeze } from '@aztec/foundation/types';
2
- import { GasFees } from '@aztec/stdlib/gas';
3
- import { mockTx } from '@aztec/stdlib/testing';
4
- import { BlockHeader, GlobalVariables } from '@aztec/stdlib/tx';
5
- /**
6
- * Tests a TxPool implementation.
7
- * @param getTxPool - Gets a fresh TxPool
8
- */ export function describeTxPool(getTxPool) {
9
- let pool;
10
- const minedBlockHeader = BlockHeader.empty({
11
- globalVariables: GlobalVariables.empty({
12
- blockNumber: 1,
13
- timestamp: 0n
14
- })
15
- });
16
- beforeEach(()=>{
17
- pool = getTxPool();
18
- });
19
- afterEach(()=>{
20
- pool.removeAllListeners('txs-added');
21
- });
22
- it('adds txs to the pool as pending', async ()=>{
23
- const tx1 = await mockTx();
24
- await pool.addTxs([
25
- tx1
26
- ]);
27
- const poolTx = await pool.getTxByHash(tx1.getTxHash());
28
- expect(poolTx.getTxHash()).toEqual(tx1.getTxHash());
29
- await expect(pool.getTxStatus(tx1.getTxHash())).resolves.toEqual('pending');
30
- await expect(pool.getPendingTxHashes()).resolves.toEqual([
31
- tx1.getTxHash()
32
- ]);
33
- await expect(pool.getPendingTxCount()).resolves.toEqual(1);
34
- });
35
- it('emits txs-added event with new txs', async ()=>{
36
- const tx1 = await mockTx(); // existing and pending
37
- const tx2 = await mockTx(); // mined but not known
38
- const tx3 = await mockTx(); // brand new
39
- await pool.addTxs([
40
- tx1
41
- ]);
42
- await pool.markAsMined([
43
- tx2.getTxHash()
44
- ], minedBlockHeader);
45
- let txsFromEvent = undefined;
46
- pool.once('txs-added', ({ txs })=>{
47
- txsFromEvent = txs;
48
- });
49
- await pool.addTxs([
50
- tx1,
51
- tx2,
52
- tx3
53
- ]);
54
- expect(txsFromEvent).toBeDefined();
55
- expect(txsFromEvent).toHaveLength(2);
56
- expect(txsFromEvent).toEqual(expect.arrayContaining([
57
- tx2,
58
- tx3
59
- ]));
60
- });
61
- it('permanently deletes pending txs and soft-deletes mined txs', async ()=>{
62
- const pendingTx = await mockTx(1);
63
- const minedTx = await mockTx(2);
64
- await pool.addTxs([
65
- pendingTx,
66
- minedTx
67
- ]);
68
- await pool.markAsMined([
69
- minedTx.getTxHash()
70
- ], minedBlockHeader);
71
- // Delete a pending tx - should be permanently deleted
72
- await pool.deleteTxs([
73
- pendingTx.getTxHash()
74
- ]);
75
- await expect(pool.getTxByHash(pendingTx.getTxHash())).resolves.toBeUndefined();
76
- await expect(pool.getTxStatus(pendingTx.getTxHash())).resolves.toBeUndefined();
77
- // Delete a mined tx - should be soft-deleted (still in storage)
78
- await pool.deleteTxs([
79
- minedTx.getTxHash()
80
- ]);
81
- await expect(pool.getTxByHash(minedTx.getTxHash())).resolves.toBeDefined();
82
- await expect(pool.getTxStatus(minedTx.getTxHash())).resolves.toEqual('deleted');
83
- await expect(pool.getMinedTxHashes()).resolves.toEqual([]);
84
- await expect(pool.getPendingTxCount()).resolves.toEqual(0);
85
- });
86
- it('marks txs as mined', async ()=>{
87
- const tx1 = await mockTx(1);
88
- const tx2 = await mockTx(2);
89
- await pool.addTxs([
90
- tx1,
91
- tx2
92
- ]);
93
- await pool.markAsMined([
94
- tx1.getTxHash()
95
- ], minedBlockHeader);
96
- await expect(pool.getTxByHash(tx1.getTxHash())).resolves.toEqual(tx1);
97
- await expect(pool.getTxStatus(tx1.getTxHash())).resolves.toEqual('mined');
98
- await expect(pool.getMinedTxHashes()).resolves.toEqual([
99
- [
100
- tx1.getTxHash(),
101
- 1
102
- ]
103
- ]);
104
- await expect(pool.getPendingTxHashes()).resolves.toEqual([
105
- tx2.getTxHash()
106
- ]);
107
- await expect(pool.getPendingTxCount()).resolves.toEqual(1);
108
- });
109
- it('marks txs as pending after being mined', async ()=>{
110
- const tx1 = await mockTx(1);
111
- const tx2 = await mockTx(2);
112
- await pool.addTxs([
113
- tx1,
114
- tx2
115
- ]);
116
- await pool.markAsMined([
117
- tx1.getTxHash()
118
- ], minedBlockHeader);
119
- await pool.markMinedAsPending([
120
- tx1.getTxHash()
121
- ]);
122
- await expect(pool.getMinedTxHashes()).resolves.toEqual([]);
123
- const pending = await pool.getPendingTxHashes();
124
- expect(pending).toHaveLength(2);
125
- expect(pending).toEqual(expect.arrayContaining([
126
- tx1.getTxHash(),
127
- tx2.getTxHash()
128
- ]));
129
- await expect(pool.getPendingTxCount()).resolves.toEqual(2);
130
- });
131
- it('only marks txs as pending if they are known', async ()=>{
132
- const tx1 = await mockTx(1);
133
- // simulate a situation where not all peers have all the txs
134
- const tx2 = await mockTx(2);
135
- const someTxHashThatThisPeerDidNotSee = tx2.getTxHash();
136
- await pool.addTxs([
137
- tx1
138
- ]);
139
- // this peer knows that tx2 was mined, but it does not have the tx object
140
- await pool.markAsMined([
141
- tx1.getTxHash(),
142
- someTxHashThatThisPeerDidNotSee
143
- ], minedBlockHeader);
144
- expect(await pool.getMinedTxHashes()).toEqual(expect.arrayContaining([
145
- [
146
- tx1.getTxHash(),
147
- 1
148
- ],
149
- [
150
- someTxHashThatThisPeerDidNotSee,
151
- 1
152
- ]
153
- ]));
154
- // reorg: both txs should now become available again
155
- await pool.markMinedAsPending([
156
- tx1.getTxHash(),
157
- someTxHashThatThisPeerDidNotSee
158
- ]);
159
- await expect(pool.getMinedTxHashes()).resolves.toEqual([]);
160
- await expect(pool.getPendingTxHashes()).resolves.toEqual([
161
- tx1.getTxHash()
162
- ]); // tx2 is not in the pool
163
- await expect(pool.getPendingTxCount()).resolves.toEqual(1);
164
- });
165
- it('returns all transactions in the pool', async ()=>{
166
- const tx1 = await mockTx(1);
167
- const tx2 = await mockTx(2);
168
- const tx3 = await mockTx(3);
169
- await pool.addTxs([
170
- tx1,
171
- tx2,
172
- tx3
173
- ]);
174
- const poolTxs = await pool.getAllTxs();
175
- expect(poolTxs).toHaveLength(3);
176
- expect(poolTxs).toEqual(expect.arrayContaining([
177
- tx1,
178
- tx2,
179
- tx3
180
- ]));
181
- await expect(pool.getPendingTxCount()).resolves.toEqual(3);
182
- });
183
- it('returns all txHashes in the pool', async ()=>{
184
- const tx1 = await mockTx(1);
185
- const tx2 = await mockTx(2);
186
- const tx3 = await mockTx(3);
187
- await pool.addTxs([
188
- tx1,
189
- tx2,
190
- tx3
191
- ]);
192
- const poolTxHashes = await pool.getAllTxHashes();
193
- const expectedHashes = [
194
- tx1,
195
- tx2,
196
- tx3
197
- ].map((tx)=>tx.getTxHash());
198
- expect(poolTxHashes).toHaveLength(3);
199
- expect(poolTxHashes).toEqual(expect.arrayContaining(expectedHashes));
200
- await expect(pool.getPendingTxCount()).resolves.toEqual(3);
201
- });
202
- it('returns txs by their hash', async ()=>{
203
- const tx1 = await mockTx(1);
204
- const tx2 = await mockTx(2);
205
- const tx3 = await mockTx(3);
206
- await pool.addTxs([
207
- tx1,
208
- tx2,
209
- tx3
210
- ]);
211
- const requestedTxs = await pool.getTxsByHash([
212
- tx1.getTxHash(),
213
- tx3.getTxHash()
214
- ]);
215
- expect(requestedTxs).toHaveLength(2);
216
- expect(requestedTxs).toEqual(expect.arrayContaining([
217
- tx1,
218
- tx3
219
- ]));
220
- });
221
- it('returns a large number of transactions by their hash', async ()=>{
222
- const numTxs = 1000;
223
- const txs = await Promise.all(Array.from({
224
- length: numTxs
225
- }, (_, i)=>mockTx(i)));
226
- const hashes = txs.map((tx)=>tx.getTxHash());
227
- await pool.addTxs(txs);
228
- const requestedTxs = await pool.getTxsByHash(hashes);
229
- expect(requestedTxs).toHaveLength(numTxs);
230
- expect(requestedTxs).toEqual(expect.arrayContaining(txs));
231
- });
232
- it('returns whether or not txs exist', async ()=>{
233
- const tx1 = await mockTx(1);
234
- const tx2 = await mockTx(2);
235
- const tx3 = await mockTx(3);
236
- await pool.addTxs([
237
- tx1,
238
- tx2,
239
- tx3
240
- ]);
241
- const tx4 = await mockTx(4);
242
- const tx5 = await mockTx(5);
243
- const availability = await pool.hasTxs([
244
- tx1.getTxHash(),
245
- tx2.getTxHash(),
246
- tx3.getTxHash(),
247
- tx4.getTxHash(),
248
- tx5.getTxHash()
249
- ]);
250
- expect(availability).toHaveLength(5);
251
- expect(availability).toEqual(expect.arrayContaining([
252
- true,
253
- true,
254
- true,
255
- false,
256
- false
257
- ]));
258
- });
259
- it('returns pending tx hashes sorted by priority', async ()=>{
260
- const withPriorityFee = (tx, fee)=>{
261
- unfreeze(tx.data.constants.txContext.gasSettings).maxPriorityFeesPerGas = new GasFees(fee, fee);
262
- return tx;
263
- };
264
- const tx1 = withPriorityFee(await mockTx(0), 1000);
265
- const tx2 = withPriorityFee(await mockTx(1), 100);
266
- const tx3 = withPriorityFee(await mockTx(2), 200);
267
- const tx4 = withPriorityFee(await mockTx(3), 3000);
268
- await pool.addTxs([
269
- tx1,
270
- tx2,
271
- tx3,
272
- tx4
273
- ]);
274
- const poolTxHashes = await pool.getPendingTxHashes();
275
- expect(poolTxHashes).toHaveLength(4);
276
- expect(poolTxHashes).toEqual([
277
- tx4,
278
- tx1,
279
- tx3,
280
- tx2
281
- ].map((tx)=>tx.getTxHash()));
282
- });
283
- describe('soft-delete', ()=>{
284
- it('soft-deletes mined txs and keeps them in storage', async ()=>{
285
- const txs = await Promise.all([
286
- mockTx(1),
287
- mockTx(2),
288
- mockTx(3)
289
- ]);
290
- await pool.addTxs(txs);
291
- // Mark first tx as mined
292
- await pool.markAsMined([
293
- txs[0].getTxHash()
294
- ], minedBlockHeader);
295
- // Verify initial state
296
- await expect(pool.getPendingTxCount()).resolves.toBe(2);
297
- await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeDefined();
298
- await expect(pool.getTxByHash(txs[1].getTxHash())).resolves.toBeDefined();
299
- // Delete mined tx - should be soft-deleted
300
- await pool.deleteTxs([
301
- txs[0].getTxHash()
302
- ]);
303
- // Delete pending tx - should be permanently deleted
304
- await pool.deleteTxs([
305
- txs[1].getTxHash()
306
- ]);
307
- // Verify mined tx still exists in storage but has 'deleted' status
308
- await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeDefined();
309
- await expect(pool.getTxStatus(txs[0].getTxHash())).resolves.toEqual('deleted');
310
- // Verify pending tx is permanently deleted
311
- await expect(pool.getTxByHash(txs[1].getTxHash())).resolves.toBeUndefined();
312
- await expect(pool.getTxStatus(txs[1].getTxHash())).resolves.toBeUndefined();
313
- // Verify remaining pending count
314
- await expect(pool.getPendingTxCount()).resolves.toBe(1);
315
- // Verify pending hashes don't include deleted txs
316
- const pendingHashes = await pool.getPendingTxHashes();
317
- expect(pendingHashes).toHaveLength(1);
318
- expect(pendingHashes.map((h)=>h.toString())).toContain(txs[2].getTxHash().toString());
319
- });
320
- it('cleans up old deleted mined transactions', async ()=>{
321
- const txs = await Promise.all([
322
- mockTx(1),
323
- mockTx(2),
324
- mockTx(3)
325
- ]);
326
- await pool.addTxs(txs);
327
- // Mark first two as mined in block 1
328
- await pool.markAsMined([
329
- txs[0].getTxHash(),
330
- txs[1].getTxHash()
331
- ], minedBlockHeader);
332
- // Soft-delete mined transactions
333
- await pool.deleteTxs([
334
- txs[0].getTxHash(),
335
- txs[1].getTxHash()
336
- ]);
337
- // Clean up deleted mined txs from block 1 and earlier
338
- const deletedCount = await pool.cleanupDeletedMinedTxs(1);
339
- // Verify old transactions are permanently deleted
340
- expect(deletedCount).toBe(2);
341
- await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeUndefined();
342
- await expect(pool.getTxByHash(txs[1].getTxHash())).resolves.toBeUndefined();
343
- await expect(pool.getTxByHash(txs[2].getTxHash())).resolves.toBeDefined();
344
- });
345
- it('does not clean up recent deleted mined transactions', async ()=>{
346
- const txs = await Promise.all([
347
- mockTx(1),
348
- mockTx(2)
349
- ]);
350
- await pool.addTxs(txs);
351
- // Mark as mined in block 2
352
- const laterBlockHeader = BlockHeader.empty({
353
- globalVariables: GlobalVariables.empty({
354
- blockNumber: 2,
355
- timestamp: 0n
356
- })
357
- });
358
- await pool.markAsMined([
359
- txs[0].getTxHash()
360
- ], laterBlockHeader);
361
- // Soft-delete a mined transaction
362
- await pool.deleteTxs([
363
- txs[0].getTxHash()
364
- ]);
365
- // Try to clean up with block 1 (before the mined block)
366
- const deletedCount = await pool.cleanupDeletedMinedTxs(1);
367
- // Verify no transactions were cleaned up
368
- expect(deletedCount).toBe(0);
369
- await expect(pool.getTxByHash(txs[0].getTxHash())).resolves.toBeDefined();
370
- });
371
- it('restores deleted mined tx when it is mined again', async ()=>{
372
- const tx = await mockTx(1);
373
- await pool.addTxs([
374
- tx
375
- ]);
376
- // Mark as mined
377
- await pool.markAsMined([
378
- tx.getTxHash()
379
- ], minedBlockHeader);
380
- // Soft-delete it
381
- await pool.deleteTxs([
382
- tx.getTxHash()
383
- ]);
384
- await expect(pool.getTxStatus(tx.getTxHash())).resolves.toEqual('deleted');
385
- // Mark as mined again (e.g., after a reorg)
386
- await pool.markAsMined([
387
- tx.getTxHash()
388
- ], minedBlockHeader);
389
- // Should be back to mined status
390
- await expect(pool.getTxStatus(tx.getTxHash())).resolves.toEqual('mined');
391
- await expect(pool.getTxByHash(tx.getTxHash())).resolves.toBeDefined();
392
- });
393
- });
394
- }
@@ -1,12 +0,0 @@
1
- import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import { type BlockProposal, type P2PValidator, PeerErrorSeverity } from '@aztec/stdlib/p2p';
3
- export declare class BlockProposalValidator implements P2PValidator<BlockProposal> {
4
- private epochCache;
5
- private logger;
6
- private txsPermitted;
7
- constructor(epochCache: EpochCacheInterface, opts: {
8
- txsPermitted: boolean;
9
- });
10
- validate(block: BlockProposal): Promise<PeerErrorSeverity | undefined>;
11
- }
12
- //# sourceMappingURL=block_proposal_validator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"block_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/block_proposal_validator/block_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7F,qBAAa,sBAAuB,YAAW,YAAY,CAAC,aAAa,CAAC;IACxE,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAU;gBAElB,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE;IAMtE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;CAgE7E"}
@@ -1,70 +0,0 @@
1
- import { NoCommitteeError } from '@aztec/ethereum';
2
- import { createLogger } from '@aztec/foundation/log';
3
- import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
4
- export class BlockProposalValidator {
5
- epochCache;
6
- logger;
7
- txsPermitted;
8
- constructor(epochCache, opts){
9
- this.epochCache = epochCache;
10
- this.txsPermitted = opts.txsPermitted;
11
- this.logger = createLogger('p2p:block_proposal_validator');
12
- }
13
- async validate(block) {
14
- try {
15
- // Check signature validity first - invalid signatures are a high-severity issue
16
- const proposer = block.getSender();
17
- if (!proposer) {
18
- this.logger.debug(`Penalizing peer for block proposal with invalid signature`);
19
- return PeerErrorSeverity.MidToleranceError;
20
- }
21
- // Check if transactions are permitted when the proposal contains transaction hashes
22
- if (!this.txsPermitted && block.txHashes.length > 0) {
23
- this.logger.debug(`Penalizing peer for block proposal with ${block.txHashes.length} transaction(s) when transactions are not permitted`);
24
- return PeerErrorSeverity.MidToleranceError;
25
- }
26
- const { currentProposer, nextProposer, currentSlot, nextSlot } = await this.epochCache.getProposerAttesterAddressInCurrentOrNextSlot();
27
- // Check that the attestation is for the current or next slot
28
- const slotNumberBigInt = block.payload.header.slotNumber.toBigInt();
29
- if (slotNumberBigInt !== currentSlot && slotNumberBigInt !== nextSlot) {
30
- this.logger.debug(`Penalizing peer for invalid slot number ${slotNumberBigInt}`, {
31
- currentSlot,
32
- nextSlot
33
- });
34
- return PeerErrorSeverity.HighToleranceError;
35
- }
36
- // Check that the block proposal is from the current or next proposer
37
- if (slotNumberBigInt === currentSlot && currentProposer !== undefined && !proposer.equals(currentProposer)) {
38
- this.logger.debug(`Penalizing peer for invalid proposer for current slot ${slotNumberBigInt}`, {
39
- currentProposer,
40
- nextProposer,
41
- proposer: proposer.toString()
42
- });
43
- return PeerErrorSeverity.MidToleranceError;
44
- }
45
- if (slotNumberBigInt === nextSlot && nextProposer !== undefined && !proposer.equals(nextProposer)) {
46
- this.logger.debug(`Penalizing peer for invalid proposer for next slot ${slotNumberBigInt}`, {
47
- currentProposer,
48
- nextProposer,
49
- proposer: proposer.toString()
50
- });
51
- return PeerErrorSeverity.MidToleranceError;
52
- }
53
- // Validate tx hashes for all txs embedded in the proposal
54
- if (!(await Promise.all(block.txs?.map((tx)=>tx.validateTxHash()) ?? [])).every((v)=>v)) {
55
- this.logger.warn(`Penalizing peer for invalid tx hashes in block proposal`, {
56
- proposer,
57
- slotNumber: slotNumberBigInt
58
- });
59
- return PeerErrorSeverity.LowToleranceError;
60
- }
61
- return undefined;
62
- } catch (e) {
63
- // People shouldn't be sending us block proposals if the committee doesn't exist
64
- if (e instanceof NoCommitteeError) {
65
- return PeerErrorSeverity.LowToleranceError;
66
- }
67
- throw e;
68
- }
69
- }
70
- }
@@ -1,2 +0,0 @@
1
- export * from './block_proposal_validator.js';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/block_proposal_validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
@@ -1 +0,0 @@
1
- export * from './block_proposal_validator.js';
@@ -1,45 +0,0 @@
1
- import type { PeerId } from '@libp2p/interface';
2
- import type { ConnectionSampler } from './connection_sampler.js';
3
- /**
4
- * Manages batches of peers for parallel request processing.
5
- * Tracks active peers and provides deterministic peer assignment for requests.
6
- *
7
- * Example with 3 peers and 10 requests:
8
- *
9
- * Peers: [P1] [P2] [P3]
10
- * ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
11
- * Requests: 0,1,2,9 | 3,4,5 | 6,7,8
12
- *
13
- * Each peer handles a bucket of consecutive requests.
14
- * If a peer fails, it is replaced while maintaining the same bucket.
15
- */
16
- export declare class BatchConnectionSampler {
17
- private readonly connectionSampler;
18
- private readonly logger;
19
- private readonly batch;
20
- private readonly requestsPerPeer;
21
- constructor(connectionSampler: ConnectionSampler, batchSize: number, maxPeers: number, exclude?: PeerId[], logger?: import("@aztec/foundation/log").Logger);
22
- /**
23
- * Gets the peer responsible for handling a specific request index
24
- *
25
- * @param index - The request index
26
- * @returns The peer assigned to handle this request
27
- */
28
- getPeerForRequest(index: number): PeerId | undefined;
29
- /**
30
- * Removes a peer and replaces it with a new one, maintaining the same position
31
- * in the batch array to keep request distribution consistent
32
- *
33
- * @param peerId - The peer to remove and replace
34
- */
35
- removePeerAndReplace(peerId: PeerId): void;
36
- /**
37
- * Gets the number of active peers
38
- */
39
- get activePeerCount(): number;
40
- /**
41
- * Gets the number of requests each peer is assigned to handle
42
- */
43
- get requestsPerBucket(): number;
44
- }
45
- //# sourceMappingURL=batch_connection_sampler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch_connection_sampler.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/connection-sampler/batch_connection_sampler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAsB;IAK/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAIlC,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAGtB,iBAAiB,EAAE,iBAAiB,EACrD,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,EAAE,EACD,MAAM,yCAAuD;IAiBhF;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUpD;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAmB1C;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;CACF"}
@@ -1,92 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- /**
3
- * Manages batches of peers for parallel request processing.
4
- * Tracks active peers and provides deterministic peer assignment for requests.
5
- *
6
- * Example with 3 peers and 10 requests:
7
- *
8
- * Peers: [P1] [P2] [P3]
9
- * ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
10
- * Requests: 0,1,2,9 | 3,4,5 | 6,7,8
11
- *
12
- * Each peer handles a bucket of consecutive requests.
13
- * If a peer fails, it is replaced while maintaining the same bucket.
14
- */ export class BatchConnectionSampler {
15
- connectionSampler;
16
- logger;
17
- batch;
18
- requestsPerPeer;
19
- constructor(connectionSampler, batchSize, maxPeers, exclude, logger = createLogger('p2p:reqresp:batch-connection-sampler')){
20
- this.connectionSampler = connectionSampler;
21
- this.logger = logger;
22
- this.batch = [];
23
- if (maxPeers <= 0) {
24
- throw new Error('Max peers cannot be 0');
25
- }
26
- if (batchSize <= 0) {
27
- throw new Error('Batch size cannot be 0');
28
- }
29
- // Calculate how many requests each peer should handle, cannot be 0
30
- this.requestsPerPeer = Math.max(1, Math.floor(batchSize / maxPeers));
31
- // Sample initial peers
32
- const excluding = exclude && new Map(exclude.map((peerId)=>[
33
- peerId.toString(),
34
- true
35
- ]));
36
- this.batch = this.connectionSampler.samplePeersBatch(maxPeers, excluding);
37
- }
38
- /**
39
- * Gets the peer responsible for handling a specific request index
40
- *
41
- * @param index - The request index
42
- * @returns The peer assigned to handle this request
43
- */ getPeerForRequest(index) {
44
- if (this.batch.length === 0) {
45
- return undefined;
46
- }
47
- // Calculate which peer bucket this index belongs to
48
- const peerIndex = Math.floor(index / this.requestsPerPeer) % this.batch.length;
49
- return this.batch[peerIndex];
50
- }
51
- /**
52
- * Removes a peer and replaces it with a new one, maintaining the same position
53
- * in the batch array to keep request distribution consistent
54
- *
55
- * @param peerId - The peer to remove and replace
56
- */ removePeerAndReplace(peerId) {
57
- const index = this.batch.findIndex((p)=>p === peerId);
58
- if (index === -1) {
59
- return;
60
- }
61
- const excluding = new Map([
62
- [
63
- peerId.toString(),
64
- true
65
- ]
66
- ]);
67
- const newPeer = this.connectionSampler.getPeer(excluding); // Q: Shouldn't we accumulate all excluded peers? Otherwise the sampler could return us a previously excluded peer?
68
- if (newPeer) {
69
- this.batch[index] = newPeer;
70
- this.logger.trace('Replaced peer', {
71
- peerId,
72
- newPeer
73
- });
74
- } else {
75
- // If we couldn't get a replacement, remove the peer and compact the array
76
- this.batch.splice(index, 1);
77
- this.logger.trace('Removed peer', {
78
- peerId
79
- });
80
- }
81
- }
82
- /**
83
- * Gets the number of active peers
84
- */ get activePeerCount() {
85
- return this.batch.length;
86
- }
87
- /**
88
- * Gets the number of requests each peer is assigned to handle
89
- */ get requestsPerBucket() {
90
- return this.requestsPerPeer;
91
- }
92
- }
@@ -1,9 +0,0 @@
1
- import type { L2BlockSource } from '@aztec/stdlib/block';
2
- import type { ReqRespSubProtocolHandler } from '../interface.js';
3
- /**
4
- * Handler for L2 Block requests
5
- * @param l2BlockSource - source for L2 blocks
6
- * @returns the Block request handler
7
- * */
8
- export declare function reqRespBlockHandler(l2BlockSource: L2BlockSource): ReqRespSubProtocolHandler;
9
- //# sourceMappingURL=block.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/block.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAGjE;;;;KAIK;AACL,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,yBAAyB,CAsB3F"}
@@ -1,31 +0,0 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { ReqRespStatus, ReqRespStatusError } from '../status.js';
3
- /**
4
- * Handler for L2 Block requests
5
- * @param l2BlockSource - source for L2 blocks
6
- * @returns the Block request handler
7
- * */ export function reqRespBlockHandler(l2BlockSource) {
8
- /**
9
- * @param peerId - the peer ID of the requester
10
- * @param msg - the block request message, which is expected to contain valid block number as a Buffer
11
- * @returns a Buffer containing the requested block data, or an empty Buffer if the block is not found
12
- * @throws ReqRespStatusError if the input msg is not a valid block number
13
- * */ return async (_peerId, msg)=>{
14
- let blockNumber;
15
- try {
16
- blockNumber = Fr.fromBuffer(msg);
17
- } catch (err) {
18
- throw new ReqRespStatusError(ReqRespStatus.BADLY_FORMED_REQUEST, {
19
- cause: err
20
- });
21
- }
22
- try {
23
- const foundBlock = await l2BlockSource.getBlock(Number(blockNumber));
24
- return foundBlock ? foundBlock.toBuffer() : Buffer.alloc(0);
25
- } catch (err) {
26
- throw new ReqRespStatusError(ReqRespStatus.INTERNAL_ERROR, {
27
- cause: err
28
- });
29
- }
30
- };
31
- }