@aztec/p2p 0.0.1-commit.e6bd8901 → 0.0.1-commit.ec7ac5448

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 (555) 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 +11 -11
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +60 -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 +181 -224
  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 +315 -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 +67 -16
  20. package/dest/config.d.ts.map +1 -1
  21. package/dest/config.js +112 -39
  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 +10 -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 +11 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  77. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_mining_rule.js +16 -35
  78. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  80. package/dest/mem_pools/{tx_pool → tx_pool_v2}/eviction/invalid_txs_after_reorg_rule.js +39 -24
  81. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  90. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  91. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  93. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  94. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  96. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +215 -0
  97. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  99. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +134 -0
  100. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +220 -0
  102. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  103. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +923 -0
  114. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  115. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/attestation_validator/attestation_validator.js +20 -11
  117. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +5 -3
  118. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  119. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +9 -4
  120. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  121. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  122. package/dest/msg_validators/clock_tolerance.js +54 -3
  123. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +7 -4
  124. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  126. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +7 -4
  127. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  129. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +15 -8
  130. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  131. package/dest/msg_validators/proposal_validator/proposal_validator.js +70 -50
  132. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  133. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  134. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  135. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  136. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  137. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  138. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  139. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  140. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  141. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  142. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  143. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  144. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  145. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  146. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  147. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  148. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  149. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  150. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  151. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  152. package/dest/msg_validators/tx_validator/data_validator.js +39 -3
  153. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  154. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  155. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  156. package/dest/msg_validators/tx_validator/factory.d.ts +137 -5
  157. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  158. package/dest/msg_validators/tx_validator/factory.js +255 -58
  159. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  160. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  161. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  162. package/dest/msg_validators/tx_validator/gas_validator.d.ts +68 -3
  163. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  164. package/dest/msg_validators/tx_validator/gas_validator.js +114 -44
  165. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  166. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  167. package/dest/msg_validators/tx_validator/index.js +2 -0
  168. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -2
  169. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  170. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  171. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  172. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  173. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  174. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  175. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  176. package/dest/msg_validators/tx_validator/phases_validator.js +75 -27
  177. package/dest/msg_validators/tx_validator/size_validator.d.ts +3 -1
  178. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -1
  179. package/dest/msg_validators/tx_validator/size_validator.js +4 -1
  180. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +22 -5
  181. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  182. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  183. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  184. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  185. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  186. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  187. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  188. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
  189. package/dest/services/data_store.d.ts +1 -1
  190. package/dest/services/data_store.d.ts.map +1 -1
  191. package/dest/services/data_store.js +14 -10
  192. package/dest/services/discv5/discV5_service.js +1 -1
  193. package/dest/services/dummy_service.d.ts +28 -5
  194. package/dest/services/dummy_service.d.ts.map +1 -1
  195. package/dest/services/dummy_service.js +52 -2
  196. package/dest/services/encoding.d.ts +7 -3
  197. package/dest/services/encoding.d.ts.map +1 -1
  198. package/dest/services/encoding.js +18 -11
  199. package/dest/services/gossipsub/index.d.ts +3 -0
  200. package/dest/services/gossipsub/index.d.ts.map +1 -0
  201. package/dest/services/gossipsub/index.js +2 -0
  202. package/dest/services/gossipsub/scoring.d.ts +21 -3
  203. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  204. package/dest/services/gossipsub/scoring.js +24 -7
  205. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  206. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  207. package/dest/services/gossipsub/topic_score_params.js +363 -0
  208. package/dest/services/index.d.ts +2 -1
  209. package/dest/services/index.d.ts.map +1 -1
  210. package/dest/services/index.js +1 -0
  211. package/dest/services/libp2p/instrumentation.d.ts +1 -1
  212. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  213. package/dest/services/libp2p/instrumentation.js +14 -3
  214. package/dest/services/libp2p/libp2p_service.d.ts +98 -50
  215. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  216. package/dest/services/libp2p/libp2p_service.js +580 -449
  217. package/dest/services/peer-manager/metrics.d.ts +4 -2
  218. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  219. package/dest/services/peer-manager/metrics.js +26 -5
  220. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  221. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  222. package/dest/services/peer-manager/peer_manager.js +24 -9
  223. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  224. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  225. package/dest/services/peer-manager/peer_scoring.js +65 -14
  226. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +51 -0
  227. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  228. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +543 -0
  229. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  230. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  231. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  232. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +47 -0
  233. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  234. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  235. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  236. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  237. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  238. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  239. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  240. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  241. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  242. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  243. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  244. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +22 -3
  245. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  246. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +63 -4
  247. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -1
  248. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  249. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  250. package/dest/services/reqresp/interface.d.ts +25 -9
  251. package/dest/services/reqresp/interface.d.ts.map +1 -1
  252. package/dest/services/reqresp/interface.js +23 -10
  253. package/dest/services/reqresp/metrics.d.ts +6 -5
  254. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  255. package/dest/services/reqresp/metrics.js +16 -5
  256. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +5 -1
  257. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  258. package/dest/services/reqresp/protocols/block_txs/bitvector.js +5 -0
  259. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  260. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  261. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +27 -9
  262. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +29 -6
  263. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  264. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +59 -13
  265. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  266. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  267. package/dest/services/reqresp/protocols/index.js +0 -1
  268. package/dest/services/reqresp/protocols/tx.d.ts +7 -1
  269. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  270. package/dest/services/reqresp/protocols/tx.js +21 -3
  271. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  272. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  273. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  274. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  275. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  276. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  277. package/dest/services/reqresp/reqresp.d.ts +9 -2
  278. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  279. package/dest/services/reqresp/reqresp.js +95 -34
  280. package/dest/services/service.d.ts +46 -4
  281. package/dest/services/service.d.ts.map +1 -1
  282. package/dest/services/tx_collection/config.d.ts +22 -1
  283. package/dest/services/tx_collection/config.d.ts.map +1 -1
  284. package/dest/services/tx_collection/config.js +55 -1
  285. package/dest/services/tx_collection/fast_tx_collection.d.ts +7 -7
  286. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  287. package/dest/services/tx_collection/fast_tx_collection.js +95 -84
  288. package/dest/services/tx_collection/file_store_tx_collection.d.ts +53 -0
  289. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  290. package/dest/services/tx_collection/file_store_tx_collection.js +167 -0
  291. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  292. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  293. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  294. package/dest/services/tx_collection/index.d.ts +3 -1
  295. package/dest/services/tx_collection/index.d.ts.map +1 -1
  296. package/dest/services/tx_collection/index.js +2 -0
  297. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  298. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  299. package/dest/services/tx_collection/instrumentation.js +10 -2
  300. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  301. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  302. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  303. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  304. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  305. package/dest/services/tx_collection/request_tracker.js +84 -0
  306. package/dest/services/tx_collection/slow_tx_collection.d.ts +7 -3
  307. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  308. package/dest/services/tx_collection/slow_tx_collection.js +60 -26
  309. package/dest/services/tx_collection/tx_collection.d.ts +25 -15
  310. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  311. package/dest/services/tx_collection/tx_collection.js +79 -7
  312. package/dest/services/tx_collection/tx_collection_sink.d.ts +18 -8
  313. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  314. package/dest/services/tx_collection/tx_collection_sink.js +26 -29
  315. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  316. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  317. package/dest/services/tx_collection/tx_source.js +26 -7
  318. package/dest/services/tx_file_store/config.d.ts +16 -0
  319. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  320. package/dest/services/tx_file_store/config.js +22 -0
  321. package/dest/services/tx_file_store/index.d.ts +4 -0
  322. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  323. package/dest/services/tx_file_store/index.js +3 -0
  324. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  325. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  326. package/dest/services/tx_file_store/instrumentation.js +29 -0
  327. package/dest/services/tx_file_store/tx_file_store.d.ts +48 -0
  328. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  329. package/dest/services/tx_file_store/tx_file_store.js +152 -0
  330. package/dest/services/tx_provider.d.ts +4 -4
  331. package/dest/services/tx_provider.d.ts.map +1 -1
  332. package/dest/services/tx_provider.js +9 -8
  333. package/dest/services/tx_provider_instrumentation.d.ts +1 -1
  334. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  335. package/dest/services/tx_provider_instrumentation.js +5 -5
  336. package/dest/test-helpers/index.d.ts +3 -1
  337. package/dest/test-helpers/index.d.ts.map +1 -1
  338. package/dest/test-helpers/index.js +2 -0
  339. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  340. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  341. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  342. package/dest/test-helpers/mock-pubsub.d.ts +40 -6
  343. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  344. package/dest/test-helpers/mock-pubsub.js +139 -13
  345. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  346. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  347. package/dest/test-helpers/reqresp-nodes.js +5 -5
  348. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  349. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  350. package/dest/test-helpers/test_tx_provider.js +41 -0
  351. package/dest/test-helpers/testbench-utils.d.ts +163 -0
  352. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  353. package/dest/test-helpers/testbench-utils.js +386 -0
  354. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  355. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  356. package/dest/testbench/p2p_client_testbench_worker.js +276 -143
  357. package/dest/testbench/worker_client_manager.d.ts +60 -6
  358. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  359. package/dest/testbench/worker_client_manager.js +280 -46
  360. package/dest/util.d.ts +3 -3
  361. package/dest/util.d.ts.map +1 -1
  362. package/package.json +14 -14
  363. package/src/bootstrap/bootstrap.ts +7 -4
  364. package/src/client/factory.ts +114 -38
  365. package/src/client/interface.ts +65 -35
  366. package/src/client/p2p_client.ts +217 -269
  367. package/src/client/test/tx_proposal_collector/README.md +227 -0
  368. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +355 -0
  369. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  370. package/src/config.ts +182 -44
  371. package/src/errors/p2p-service.error.ts +11 -0
  372. package/src/errors/tx-pool.error.ts +12 -0
  373. package/src/index.ts +1 -1
  374. package/src/mem_pools/attestation_pool/attestation_pool.ts +501 -91
  375. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +442 -102
  376. package/src/mem_pools/attestation_pool/index.ts +9 -2
  377. package/src/mem_pools/attestation_pool/mocks.ts +2 -1
  378. package/src/mem_pools/index.ts +2 -2
  379. package/src/mem_pools/instrumentation.ts +19 -14
  380. package/src/mem_pools/interface.ts +4 -4
  381. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  382. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  383. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +120 -0
  384. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  385. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  386. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  387. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  388. package/src/mem_pools/tx_pool_v2/eviction/index.ts +27 -0
  389. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  390. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  391. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  392. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  393. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  394. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  395. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  396. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  397. package/src/mem_pools/tx_pool_v2/interfaces.ts +247 -0
  398. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +343 -0
  399. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  400. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  401. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  402. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1105 -0
  403. package/src/msg_validators/attestation_validator/README.md +49 -0
  404. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -9
  405. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +14 -5
  406. package/src/msg_validators/clock_tolerance.ts +72 -3
  407. package/src/msg_validators/proposal_validator/README.md +123 -0
  408. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +17 -4
  409. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +23 -7
  410. package/src/msg_validators/proposal_validator/proposal_validator.ts +81 -51
  411. package/src/msg_validators/tx_validator/README.md +119 -0
  412. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +5 -5
  413. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  414. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  415. package/src/msg_validators/tx_validator/archive_cache.ts +3 -3
  416. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  417. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  418. package/src/msg_validators/tx_validator/data_validator.ts +48 -3
  419. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  420. package/src/msg_validators/tx_validator/factory.ts +413 -56
  421. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  422. package/src/msg_validators/tx_validator/gas_validator.ts +154 -36
  423. package/src/msg_validators/tx_validator/index.ts +2 -0
  424. package/src/msg_validators/tx_validator/metadata_validator.ts +18 -7
  425. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  426. package/src/msg_validators/tx_validator/phases_validator.ts +87 -30
  427. package/src/msg_validators/tx_validator/size_validator.ts +6 -2
  428. package/src/msg_validators/tx_validator/timestamp_validator.ts +29 -21
  429. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  430. package/src/msg_validators/tx_validator/tx_proof_validator.ts +8 -3
  431. package/src/services/data_store.ts +14 -19
  432. package/src/services/discv5/discV5_service.ts +1 -1
  433. package/src/services/dummy_service.ts +66 -3
  434. package/src/services/encoding.ts +18 -10
  435. package/src/services/gossipsub/README.md +641 -0
  436. package/src/services/gossipsub/index.ts +2 -0
  437. package/src/services/gossipsub/scoring.ts +29 -5
  438. package/src/services/gossipsub/topic_score_params.ts +519 -0
  439. package/src/services/index.ts +1 -0
  440. package/src/services/libp2p/instrumentation.ts +15 -2
  441. package/src/services/libp2p/libp2p_service.ts +626 -502
  442. package/src/services/peer-manager/metrics.ts +28 -4
  443. package/src/services/peer-manager/peer_manager.ts +28 -9
  444. package/src/services/peer-manager/peer_scoring.ts +56 -6
  445. package/src/services/reqresp/README.md +229 -0
  446. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  447. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +673 -0
  448. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  449. package/src/services/reqresp/batch-tx-requester/interface.ts +54 -0
  450. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  451. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  452. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  453. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +65 -4
  454. package/src/services/reqresp/connection-sampler/connection_sampler.ts +16 -0
  455. package/src/services/reqresp/interface.ts +48 -10
  456. package/src/services/reqresp/metrics.ts +33 -9
  457. package/src/services/reqresp/protocols/block_txs/bitvector.ts +7 -0
  458. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +35 -12
  459. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +74 -9
  460. package/src/services/reqresp/protocols/index.ts +0 -1
  461. package/src/services/reqresp/protocols/tx.ts +23 -3
  462. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  463. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  464. package/src/services/reqresp/reqresp.ts +116 -32
  465. package/src/services/service.ts +61 -3
  466. package/src/services/tx_collection/config.ts +83 -1
  467. package/src/services/tx_collection/fast_tx_collection.ts +111 -91
  468. package/src/services/tx_collection/file_store_tx_collection.ts +202 -0
  469. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  470. package/src/services/tx_collection/index.ts +6 -0
  471. package/src/services/tx_collection/instrumentation.ts +17 -2
  472. package/src/services/tx_collection/proposal_tx_collector.ts +108 -0
  473. package/src/services/tx_collection/request_tracker.ts +127 -0
  474. package/src/services/tx_collection/slow_tx_collection.ts +66 -33
  475. package/src/services/tx_collection/tx_collection.ts +118 -23
  476. package/src/services/tx_collection/tx_collection_sink.ts +30 -34
  477. package/src/services/tx_collection/tx_source.ts +28 -8
  478. package/src/services/tx_file_store/config.ts +37 -0
  479. package/src/services/tx_file_store/index.ts +3 -0
  480. package/src/services/tx_file_store/instrumentation.ts +36 -0
  481. package/src/services/tx_file_store/tx_file_store.ts +175 -0
  482. package/src/services/tx_provider.ts +10 -9
  483. package/src/services/tx_provider_instrumentation.ts +11 -5
  484. package/src/test-helpers/index.ts +2 -0
  485. package/src/test-helpers/make-test-p2p-clients.ts +4 -6
  486. package/src/test-helpers/mock-pubsub.ts +177 -14
  487. package/src/test-helpers/reqresp-nodes.ts +7 -9
  488. package/src/test-helpers/test_tx_provider.ts +64 -0
  489. package/src/test-helpers/testbench-utils.ts +457 -0
  490. package/src/testbench/p2p_client_testbench_worker.ts +393 -134
  491. package/src/testbench/worker_client_manager.ts +367 -48
  492. package/src/util.ts +8 -2
  493. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -40
  494. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  495. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -218
  496. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -31
  497. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  498. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -180
  499. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  500. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  501. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  502. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  503. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  504. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  505. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  506. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  507. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  508. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  509. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  510. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  511. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  512. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  513. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  514. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  515. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  516. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  517. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  518. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  519. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  520. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  521. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  522. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  523. package/dest/mem_pools/tx_pool/index.js +0 -2
  524. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  525. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  526. package/dest/mem_pools/tx_pool/priority.js +0 -15
  527. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  528. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  529. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  530. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  531. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  532. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  533. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  534. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  535. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  536. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  537. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  538. package/dest/services/reqresp/protocols/block.js +0 -32
  539. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -320
  540. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -264
  541. package/src/mem_pools/tx_pool/README.md +0 -270
  542. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  543. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  544. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  545. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  546. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  547. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  548. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  549. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  550. package/src/mem_pools/tx_pool/index.ts +0 -2
  551. package/src/mem_pools/tx_pool/priority.ts +0 -20
  552. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  553. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  554. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  555. package/src/services/reqresp/protocols/block.ts +0 -37
@@ -0,0 +1,315 @@
1
+ import { MockL2BlockSource } from '@aztec/archiver/test';
2
+ import { SecretValue } from '@aztec/foundation/config';
3
+ import { createLogger } from '@aztec/foundation/log';
4
+ import { sleep } from '@aztec/foundation/sleep';
5
+ import { DateProvider, Timer, executeTimeout } from '@aztec/foundation/timer';
6
+ import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
7
+ import { getTelemetryClient } from '@aztec/telemetry-client';
8
+ import { peerIdFromString } from '@libp2p/peer-id';
9
+ import { BatchTxRequesterCollector, SendBatchRequestCollector } from '../../../services/index.js';
10
+ import { RateLimitStatus } from '../../../services/reqresp/rate-limiter/rate_limiter.js';
11
+ import { RequestTracker } from '../../../services/tx_collection/request_tracker.js';
12
+ import { AlwaysTrueCircuitVerifier, BENCHMARK_CONSTANTS, InMemoryAttestationPool, InMemoryTxPool, UNLIMITED_RATE_LIMIT_QUOTA, calculateInternalTimeout, createMockEpochCache, createMockWorldStateSynchronizer } from '../../../test-helpers/index.js';
13
+ import { createP2PClient } from '../../index.js';
14
+ import { deserializeBlockProposal, deserializeTx, deserializeTxHash } from './proposal_tx_collector_worker_protocol.js';
15
+ let client;
16
+ let txPool;
17
+ let attestationPool;
18
+ let logger = createLogger('p2p:proposal-bench');
19
+ let kvStore;
20
+ let ipcDisconnected = false;
21
+ function ensureClient() {
22
+ if (!client || !txPool) {
23
+ throw new Error('Worker client not started');
24
+ }
25
+ return client;
26
+ }
27
+ function isIpcDisconnectError(err) {
28
+ const code = err?.code;
29
+ return code === 'EPIPE' || code === 'ERR_IPC_CHANNEL_CLOSED';
30
+ }
31
+ function sendMessage(message) {
32
+ const send = process.send;
33
+ if (!send || !process.connected || ipcDisconnected) {
34
+ return Promise.resolve();
35
+ }
36
+ return new Promise((resolve)=>{
37
+ const fallbackTimeout = setTimeout(()=>resolve(), 2000);
38
+ try {
39
+ send.call(process, message, undefined, undefined, (err)=>{
40
+ clearTimeout(fallbackTimeout);
41
+ if (!err) {
42
+ resolve();
43
+ return;
44
+ }
45
+ if (isIpcDisconnectError(err)) {
46
+ ipcDisconnected = true;
47
+ resolve();
48
+ return;
49
+ }
50
+ logger.warn('Failed to send IPC message', {
51
+ error: err?.message ?? String(err)
52
+ });
53
+ resolve();
54
+ });
55
+ } catch (err) {
56
+ clearTimeout(fallbackTimeout);
57
+ if (isIpcDisconnectError(err)) {
58
+ ipcDisconnected = true;
59
+ resolve();
60
+ return;
61
+ }
62
+ logger.warn('Failed to send IPC message', {
63
+ error: err?.message ?? String(err)
64
+ });
65
+ resolve();
66
+ }
67
+ });
68
+ }
69
+ async function startClient(config, clientIndex) {
70
+ txPool = new InMemoryTxPool();
71
+ attestationPool = new InMemoryAttestationPool();
72
+ const epochCache = createMockEpochCache();
73
+ const worldState = createMockWorldStateSynchronizer();
74
+ const l2BlockSource = new MockL2BlockSource();
75
+ const proofVerifier = new AlwaysTrueCircuitVerifier();
76
+ kvStore = await openTmpStore(`proposal-bench-${clientIndex}`, true, BENCHMARK_CONSTANTS.KV_STORE_MAP_SIZE_KB);
77
+ logger = createLogger(`p2p:proposal-bench:${clientIndex}`);
78
+ const telemetry = getTelemetryClient();
79
+ const deps = {
80
+ txPool,
81
+ attestationPool,
82
+ store: kvStore,
83
+ logger
84
+ };
85
+ client = await createP2PClient(config, l2BlockSource, proofVerifier, worldState, epochCache, 'proposal-tx-collector-bench-worker', new DateProvider(), telemetry, deps);
86
+ await client.start();
87
+ installUnlimitedRateLimits();
88
+ for(let i = 0; i < 120; i++){
89
+ if (client.isReady()) {
90
+ return;
91
+ }
92
+ await sleep(500);
93
+ }
94
+ throw new Error('Timed out waiting for P2P client readiness');
95
+ }
96
+ function installSamplerOverrides(peerList) {
97
+ const reqResp = ensureClient().p2pService.reqresp;
98
+ const sampler = reqResp.connectionSampler;
99
+ sampler.getPeerListSortedByConnectionCountAsc = (excluding)=>{
100
+ if (!excluding || excluding.size === 0) {
101
+ return peerList;
102
+ }
103
+ return peerList.filter((peerId)=>!excluding.has(peerId.toString()));
104
+ };
105
+ sampler.samplePeersBatch = (numberToSample, excluding)=>{
106
+ const filtered = peerList.filter((peerId)=>!excluding?.has(peerId.toString()));
107
+ return filtered.slice(0, Math.min(numberToSample, filtered.length));
108
+ };
109
+ sampler.getPeer = (excluding)=>{
110
+ const filtered = peerList.filter((peerId)=>!excluding?.has(peerId.toString()));
111
+ return filtered[0];
112
+ };
113
+ }
114
+ function installUnlimitedRateLimits() {
115
+ const reqResp = ensureClient().p2pService.reqresp;
116
+ const rateLimiter = reqResp.rateLimiter;
117
+ rateLimiter.getRateLimits = ()=>UNLIMITED_RATE_LIMIT_QUOTA;
118
+ rateLimiter.allow = ()=>RateLimitStatus.Allowed;
119
+ }
120
+ async function runCollector(cmd) {
121
+ const { collectorType, txHashes, blockProposal, pinnedPeerId, peerIds, timeoutMs } = cmd;
122
+ const reqResp = ensureClient().p2pService.reqresp;
123
+ const peerList = peerIds.map((peerId)=>peerIdFromString(peerId));
124
+ installSamplerOverrides(peerList);
125
+ installUnlimitedRateLimits();
126
+ const p2pService = {
127
+ reqResp,
128
+ connectionSampler: {
129
+ getPeerListSortedByConnectionCountAsc: ()=>peerList
130
+ },
131
+ txValidatorConfig: {
132
+ l1ChainId: 1,
133
+ rollupVersion: 1,
134
+ proofVerifier: {
135
+ verifyProof: ()=>Promise.resolve({
136
+ valid: true,
137
+ durationMs: 0,
138
+ totalDurationMs: 0
139
+ }),
140
+ stop: ()=>Promise.resolve()
141
+ }
142
+ },
143
+ peerScoring: {
144
+ penalizePeer: (_peerId, _penalty)=>{}
145
+ }
146
+ };
147
+ const parsedTxHashes = txHashes.map(deserializeTxHash);
148
+ const parsedProposal = deserializeBlockProposal(blockProposal);
149
+ const pinnedPeer = pinnedPeerId ? peerIdFromString(pinnedPeerId) : undefined;
150
+ const timer = new Timer();
151
+ let fetchedCount = 0;
152
+ const internalTimeoutMs = calculateInternalTimeout(timeoutMs);
153
+ const noopTxValidator = {
154
+ validateRequestedTx: (_tx)=>Promise.resolve({
155
+ result: 'valid'
156
+ }),
157
+ validateRequestedTxs: (txs)=>Promise.resolve(txs.map(()=>({
158
+ result: 'valid'
159
+ })))
160
+ };
161
+ try {
162
+ if (collectorType === 'batch-requester') {
163
+ const collector = new BatchTxRequesterCollector(p2pService, logger, new DateProvider(), noopTxValidator);
164
+ const fetched = await executeTimeout((_signal)=>collector.collectTxs(RequestTracker.create(parsedTxHashes, new Date(Date.now() + internalTimeoutMs)), parsedProposal, pinnedPeer), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
165
+ fetchedCount = fetched.length;
166
+ } else {
167
+ const collector = new SendBatchRequestCollector(p2pService, BENCHMARK_CONSTANTS.FIXED_MAX_PEERS, BENCHMARK_CONSTANTS.FIXED_MAX_RETRY_ATTEMPTS);
168
+ const fetched = await executeTimeout((_signal)=>collector.collectTxs(RequestTracker.create(parsedTxHashes, new Date(Date.now() + internalTimeoutMs)), parsedProposal, pinnedPeer), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
169
+ fetchedCount = fetched.length;
170
+ }
171
+ } catch (err) {
172
+ logger.warn(`Collector error: ${err?.message ?? String(err)}`);
173
+ }
174
+ return {
175
+ durationMs: timer.ms(),
176
+ fetchedCount
177
+ };
178
+ }
179
+ async function stopClient() {
180
+ if (!client) {
181
+ return;
182
+ }
183
+ await client.stop();
184
+ if (kvStore?.close) {
185
+ await kvStore.close();
186
+ }
187
+ client = undefined;
188
+ txPool = undefined;
189
+ attestationPool = undefined;
190
+ }
191
+ function gracefulExit(code = 0) {
192
+ try {
193
+ if (process.connected) {
194
+ process.disconnect();
195
+ }
196
+ } catch {
197
+ // IPC channel already closed
198
+ }
199
+ setTimeout(()=>process.exit(code), 5000).unref();
200
+ }
201
+ process.on('disconnect', ()=>{
202
+ ipcDisconnected = true;
203
+ void stopClient();
204
+ });
205
+ process.on('error', (err)=>{
206
+ if (isIpcDisconnectError(err)) {
207
+ ipcDisconnected = true;
208
+ return;
209
+ }
210
+ logger.warn('Worker process error', {
211
+ error: err?.message ?? String(err)
212
+ });
213
+ });
214
+ process.on('message', (msg)=>{
215
+ void (async ()=>{
216
+ if (!msg || typeof msg !== 'object') {
217
+ return;
218
+ }
219
+ const requestId = msg.requestId;
220
+ try {
221
+ switch(msg.type){
222
+ case 'START':
223
+ {
224
+ const rawConfig = msg.config;
225
+ const config = {
226
+ ...rawConfig,
227
+ peerIdPrivateKey: rawConfig.peerIdPrivateKey ? new SecretValue(rawConfig.peerIdPrivateKey) : undefined
228
+ };
229
+ await startClient(config, msg.clientIndex);
230
+ const peerId = ensureClient().p2pService.node.peerId.toString();
231
+ await sendMessage({
232
+ type: 'READY',
233
+ requestId,
234
+ peerId
235
+ });
236
+ break;
237
+ }
238
+ case 'SET_TXS':
239
+ {
240
+ if (!txPool) {
241
+ throw new Error('Tx pool not initialized');
242
+ }
243
+ const txs = msg.txs.map(deserializeTx);
244
+ const count = msg.mode === 'append' ? txPool.appendTxs(txs) : txPool.setTxs(txs);
245
+ await sendMessage({
246
+ type: 'TXS_SET',
247
+ requestId,
248
+ count
249
+ });
250
+ break;
251
+ }
252
+ case 'SET_BLOCK_PROPOSAL':
253
+ {
254
+ if (!attestationPool) {
255
+ throw new Error('Attestation pool not initialized');
256
+ }
257
+ const proposal = deserializeBlockProposal(msg.blockProposal);
258
+ await attestationPool.tryAddBlockProposal(proposal);
259
+ await sendMessage({
260
+ type: 'BLOCK_PROPOSAL_SET',
261
+ requestId,
262
+ archiveRoot: proposal.archive.toString()
263
+ });
264
+ break;
265
+ }
266
+ case 'RUN_COLLECTOR':
267
+ {
268
+ const { durationMs, fetchedCount } = await runCollector(msg);
269
+ await sendMessage({
270
+ type: 'COLLECTOR_RESULT',
271
+ requestId,
272
+ durationMs,
273
+ fetchedCount
274
+ });
275
+ break;
276
+ }
277
+ case 'GET_PEER_COUNT':
278
+ {
279
+ const peers = await ensureClient().getPeers();
280
+ await sendMessage({
281
+ type: 'PEER_COUNT',
282
+ requestId,
283
+ count: peers.length
284
+ });
285
+ break;
286
+ }
287
+ case 'STOP':
288
+ {
289
+ await stopClient();
290
+ await sendMessage({
291
+ type: 'STOPPED',
292
+ requestId
293
+ });
294
+ gracefulExit(0);
295
+ break;
296
+ }
297
+ default:
298
+ {
299
+ const _exhaustive = msg;
300
+ throw new Error(`Unknown command: ${msg.type}`);
301
+ }
302
+ }
303
+ } catch (err) {
304
+ await sendMessage({
305
+ type: 'ERROR',
306
+ requestId,
307
+ error: err?.message ?? String(err)
308
+ });
309
+ if (msg.type === 'START') {
310
+ await stopClient();
311
+ gracefulExit(1);
312
+ }
313
+ }
314
+ })();
315
+ });
@@ -0,0 +1,73 @@
1
+ import { BlockProposal } from '@aztec/stdlib/p2p';
2
+ import { Tx, TxHash } from '@aztec/stdlib/tx';
3
+ import type { P2PConfig } from '../../../config.js';
4
+ export type SerializedP2PConfig = Omit<P2PConfig, 'peerIdPrivateKey'> & {
5
+ peerIdPrivateKey?: string;
6
+ };
7
+ export type CollectorType = 'batch-requester' | 'send-batch-request';
8
+ export type WorkerCommand = {
9
+ type: 'START';
10
+ requestId: string;
11
+ clientIndex: number;
12
+ config: SerializedP2PConfig;
13
+ } | {
14
+ type: 'SET_TXS';
15
+ requestId: string;
16
+ txs: string[];
17
+ mode?: 'replace' | 'append';
18
+ } | {
19
+ type: 'SET_BLOCK_PROPOSAL';
20
+ requestId: string;
21
+ blockProposal: string;
22
+ } | {
23
+ type: 'RUN_COLLECTOR';
24
+ requestId: string;
25
+ collectorType: CollectorType;
26
+ txHashes: string[];
27
+ blockProposal: string;
28
+ pinnedPeerId?: string;
29
+ peerIds: string[];
30
+ timeoutMs: number;
31
+ } | {
32
+ type: 'GET_PEER_COUNT';
33
+ requestId: string;
34
+ } | {
35
+ type: 'STOP';
36
+ requestId: string;
37
+ };
38
+ export type WorkerResponse = {
39
+ type: 'READY';
40
+ requestId: string;
41
+ peerId: string;
42
+ } | {
43
+ type: 'TXS_SET';
44
+ requestId: string;
45
+ count: number;
46
+ } | {
47
+ type: 'BLOCK_PROPOSAL_SET';
48
+ requestId: string;
49
+ archiveRoot: string;
50
+ } | {
51
+ type: 'COLLECTOR_RESULT';
52
+ requestId: string;
53
+ durationMs: number;
54
+ fetchedCount: number;
55
+ } | {
56
+ type: 'PEER_COUNT';
57
+ requestId: string;
58
+ count: number;
59
+ } | {
60
+ type: 'STOPPED';
61
+ requestId: string;
62
+ } | {
63
+ type: 'ERROR';
64
+ requestId: string;
65
+ error: string;
66
+ };
67
+ export declare const serializeTx: (tx: Tx) => string;
68
+ export declare const deserializeTx: (hex: string) => Tx;
69
+ export declare const serializeTxHash: (txHash: TxHash) => `0x${string}`;
70
+ export declare const deserializeTxHash: (hex: string) => TxHash;
71
+ export declare const serializeBlockProposal: (proposal: BlockProposal) => string;
72
+ export declare const deserializeBlockProposal: (hex: string) => BlockProposal;
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdHhfY29sbGVjdG9yX3dvcmtlcl9wcm90b2NvbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NsaWVudC90ZXN0L3R4X3Byb3Bvc2FsX2NvbGxlY3Rvci9wcm9wb3NhbF90eF9jb2xsZWN0b3Jfd29ya2VyX3Byb3RvY29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELE1BQU0sTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLEdBQUc7SUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFdEcsTUFBTSxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQztBQUVyRSxNQUFNLE1BQU0sYUFBYSxHQUNyQjtJQUFFLElBQUksRUFBRSxPQUFPLENBQUM7SUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQTtDQUFFLEdBQ3RGO0lBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQztJQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEdBQUcsUUFBUSxDQUFBO0NBQUUsR0FDbEY7SUFBRSxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQ3hFO0lBQ0UsSUFBSSxFQUFFLGVBQWUsQ0FBQztJQUN0QixTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ25CLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsWUFBWSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3RCLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNsQixTQUFTLEVBQUUsTUFBTSxDQUFDO0NBQ25CLEdBQ0Q7SUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUM7SUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDN0M7SUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUM7QUFFeEMsTUFBTSxNQUFNLGNBQWMsR0FDdEI7SUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDO0lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUFDLE1BQU0sRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUNwRDtJQUFFLElBQUksRUFBRSxTQUFTLENBQUM7SUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQ3JEO0lBQUUsSUFBSSxFQUFFLG9CQUFvQixDQUFDO0lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUFDLFdBQVcsRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUN0RTtJQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQztJQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFBQyxVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQ3pGO0lBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQztJQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDeEQ7SUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDO0lBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQ3RDO0lBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztJQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFBQyxLQUFLLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FBQztBQUV4RCxlQUFPLE1BQU0sV0FBVyxvQkFBNEMsQ0FBQztBQUNyRSxlQUFPLE1BQU0sYUFBYSxxQkFBMEQsQ0FBQztBQUVyRixlQUFPLE1BQU0sZUFBZSxtQ0FBd0MsQ0FBQztBQUNyRSxlQUFPLE1BQU0saUJBQWlCLHlCQUEwQyxDQUFDO0FBRXpFLGVBQU8sTUFBTSxzQkFBc0IscUNBQW1FLENBQUM7QUFDdkcsZUFBTyxNQUFNLHdCQUF3QixnQ0FBcUUsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proposal_tx_collector_worker_protocol.d.ts","sourceRoot":"","sources":["../../../../src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,GAAG;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtG,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAErE,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,GACtF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACxE;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACzF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,eAAO,MAAM,WAAW,oBAA4C,CAAC;AACrE,eAAO,MAAM,aAAa,qBAA0D,CAAC;AAErF,eAAO,MAAM,eAAe,mCAAwC,CAAC;AACrE,eAAO,MAAM,iBAAiB,yBAA0C,CAAC;AAEzE,eAAO,MAAM,sBAAsB,qCAAmE,CAAC;AACvG,eAAO,MAAM,wBAAwB,gCAAqE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { BlockProposal } from '@aztec/stdlib/p2p';
2
+ import { Tx, TxHash } from '@aztec/stdlib/tx';
3
+ export const serializeTx = (tx)=>tx.toBuffer().toString('hex');
4
+ export const deserializeTx = (hex)=>Tx.fromBuffer(Buffer.from(hex, 'hex'));
5
+ export const serializeTxHash = (txHash)=>txHash.toString();
6
+ export const deserializeTxHash = (hex)=>TxHash.fromString(hex);
7
+ export const serializeBlockProposal = (proposal)=>proposal.toBuffer().toString('hex');
8
+ export const deserializeBlockProposal = (hex)=>BlockProposal.fromBuffer(Buffer.from(hex, 'hex'));
package/dest/config.d.ts CHANGED
@@ -1,22 +1,36 @@
1
1
  import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
2
- import { type DataStoreConfig } from '@aztec/kv-store/config';
3
- import { type AllowedElement, type ChainConfig } from '@aztec/stdlib/config';
2
+ import { type AllowedElement, type ChainConfig, type SequencerConfig } from '@aztec/stdlib/config';
3
+ import { type DataStoreConfig } from '@aztec/stdlib/kv-store';
4
+ import { type BatchTxRequesterConfig } from './services/reqresp/batch-tx-requester/config.js';
4
5
  import { type P2PReqRespConfig } from './services/reqresp/config.js';
5
6
  import { type TxCollectionConfig } from './services/tx_collection/config.js';
7
+ import { type TxFileStoreConfig } from './services/tx_file_store/config.js';
6
8
  /**
7
9
  * P2P client configuration values.
8
10
  */
9
- export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionConfig {
11
+ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, ChainConfig, TxCollectionConfig, TxFileStoreConfig, Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'l1PublishingTime' | 'maxTxsPerBlock' | 'attestationPropagationTime'> {
12
+ /** Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set. */
13
+ validateMaxTxsPerBlock?: number;
14
+ /** Maximum transactions per checkpoint for validation. Used as fallback for maxTxsPerBlock when that is not set. */
15
+ validateMaxTxsPerCheckpoint?: number;
16
+ /** Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected. */
17
+ validateMaxL2BlockGas?: number;
18
+ /** Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected. */
19
+ validateMaxDABlockGas?: number;
10
20
  /** A flag dictating whether the P2P subsystem should be enabled. */
11
21
  p2pEnabled: boolean;
12
22
  /** The frequency in which to check for new L2 blocks. */
13
23
  blockCheckIntervalMS: number;
24
+ /** The frequency in which to check for new L2 slots. */
25
+ slotCheckIntervalMS: number;
14
26
  /** The number of blocks to fetch in a single batch. */
15
27
  blockRequestBatchSize: number;
16
28
  /** DEBUG: Disable colocation penalty - for testing purposes only */
17
29
  debugDisableColocationPenalty: boolean;
18
30
  /** The frequency in which to check for new peers. */
19
31
  peerCheckIntervalMS: number;
32
+ /** How long to ban a peer after it fails MAX_DIAL_ATTEMPTS dials. */
33
+ peerFailedBanTimeMs: number;
20
34
  /** Size of queue of L2 blocks to store. */
21
35
  l2QueueSize: number;
22
36
  /** The port for the P2P service. */
@@ -79,8 +93,8 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
79
93
  preferredPeers: string[];
80
94
  /** The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb. */
81
95
  p2pStoreMapSizeKb?: number;
82
- /** Which calls are allowed in the public setup phase of a tx. */
83
- txPublicSetupAllowList: AllowedElement[];
96
+ /** Additional entries to extend the default setup allow list. */
97
+ txPublicSetupAllowListExtend: AllowedElement[];
84
98
  /** The maximum number of pending txs before evicting lower priority txs. */
85
99
  maxPendingTxCount: number;
86
100
  /** The node's seen message ID cache size */
@@ -95,9 +109,7 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
95
109
  p2pMaxFailedAuthAttemptsAllowed: number;
96
110
  /** Whether transactions are disabled for this node. This means transactions will be rejected at the RPC and P2P layers. */
97
111
  disableTransactions: boolean;
98
- /** True to simulate discarding transactions. - For testing purposes only*/
99
- dropTransactions: boolean;
100
- /** The probability that a transaction is discarded. - For testing purposes only */
112
+ /** The probability that a transaction is discarded (0 = disabled). - For testing purposes only */
101
113
  dropTransactionsProbability: number;
102
114
  /** Whether to delete transactions from the pool after a reorg instead of moving them back to pending. */
103
115
  txPoolDeleteTxsAfterReorg: boolean;
@@ -105,6 +117,12 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
105
117
  debugP2PInstrumentMessages: boolean;
106
118
  /** Whether to run in fisherman mode: validates all proposals and attestations but does not broadcast attestations or participate in consensus */
107
119
  fishermanMode: boolean;
120
+ /** Broadcast block proposals even when a conflicting proposal for the same slot already exists in the pool (for testing purposes only). */
121
+ broadcastEquivocatedProposals?: boolean;
122
+ /** Minimum age (ms) a transaction must have been in the pool before it's eligible for block building. */
123
+ minTxPoolAgeMs: number;
124
+ /** Minimum percentage fee increase required to replace an existing tx via RPC (0 = no bump). */
125
+ priceBumpPercentage: bigint;
108
126
  }
109
127
  export declare const DEFAULT_P2P_PORT = 40400;
110
128
  export declare const p2pConfigMappings: ConfigMappingsType<P2PConfig>;
@@ -120,11 +138,18 @@ export declare function getP2PDefaultConfig(): P2PConfig;
120
138
  export type BootnodeConfig = Pick<P2PConfig, 'p2pIp' | 'p2pPort' | 'p2pBroadcastPort' | 'peerIdPrivateKey' | 'peerIdPrivateKeyPath' | 'bootstrapNodes' | 'listenAddress' | 'queryForIp'> & Required<Pick<P2PConfig, 'p2pIp' | 'p2pPort'>> & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'> & Pick<ChainConfig, 'l1ChainId'>;
121
139
  export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
122
140
  archivedTxLimit: unknown;
141
+ attestationPropagationTime: unknown;
142
+ batchTxRequesterBadPeerThreshold: unknown;
143
+ batchTxRequesterDumbParallelWorkerCount: unknown;
144
+ batchTxRequesterSmartParallelWorkerCount: unknown;
145
+ batchTxRequesterTxBatchSize: unknown;
123
146
  blockCheckIntervalMS: unknown;
147
+ blockDurationMs: unknown;
124
148
  blockRequestBatchSize: unknown;
125
149
  bootstrapNodeEnrVersionCheck: unknown;
126
150
  bootstrapNodes: unknown;
127
151
  bootstrapNodesAsFullPeers: unknown;
152
+ broadcastEquivocatedProposals: unknown;
128
153
  dataDirectory: unknown;
129
154
  dataStoreMapSizeKb: unknown;
130
155
  debugDisableColocationPenalty: unknown;
@@ -132,8 +157,8 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
132
157
  dialTimeoutMs: unknown;
133
158
  disableTransactions: unknown;
134
159
  doubleSpendSeverePeerPenaltyWindow: unknown;
135
- dropTransactions: unknown;
136
160
  dropTransactionsProbability: unknown;
161
+ expectedBlockProposalsPerSlot: unknown;
137
162
  fishermanMode: unknown;
138
163
  gossipsubD: unknown;
139
164
  gossipsubDLazy: unknown;
@@ -150,10 +175,13 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
150
175
  individualRequestTimeoutMs: unknown;
151
176
  l1ChainId: unknown;
152
177
  l1Contracts: unknown;
178
+ l1PublishingTime: unknown;
153
179
  l2QueueSize: unknown;
154
180
  listenAddress: unknown;
155
181
  maxPeerCount: unknown;
156
182
  maxPendingTxCount: unknown;
183
+ maxTxsPerBlock: unknown;
184
+ minTxPoolAgeMs: unknown;
157
185
  overallRequestTimeoutMs: unknown;
158
186
  p2pAllowOnlyValidators: unknown;
159
187
  p2pBroadcastPort: unknown;
@@ -166,38 +194,61 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
166
194
  p2pPort: unknown;
167
195
  p2pStoreMapSizeKb: unknown;
168
196
  peerCheckIntervalMS: unknown;
197
+ peerFailedBanTimeMs: unknown;
169
198
  peerIdPrivateKey: unknown;
170
199
  peerIdPrivateKeyPath: unknown;
171
200
  peerPenaltyValues: unknown;
172
201
  preferredPeers: unknown;
202
+ priceBumpPercentage: unknown;
173
203
  privatePeers: unknown;
174
204
  queryForIp: unknown;
175
205
  rollupVersion: unknown;
176
206
  seenMessageCacheSize: unknown;
207
+ slotCheckIntervalMS: unknown;
177
208
  trustedPeers: unknown;
178
209
  txCollectionDisableSlowDuringFastRequests: unknown;
179
210
  txCollectionFastMaxParallelRequestsPerNode: unknown;
180
211
  txCollectionFastNodeIntervalMs: unknown;
181
212
  txCollectionFastNodesTimeoutBeforeReqRespMs: unknown;
213
+ txCollectionFileStoreFastBackoffBaseMs: unknown;
214
+ txCollectionFileStoreFastBackoffMaxMs: unknown;
215
+ txCollectionFileStoreFastDelayMs: unknown;
216
+ txCollectionFileStoreFastWorkerCount: unknown;
217
+ txCollectionFileStoreSlowBackoffBaseMs: unknown;
218
+ txCollectionFileStoreSlowBackoffMaxMs: unknown;
219
+ txCollectionFileStoreSlowDelayMs: unknown;
220
+ txCollectionFileStoreSlowWorkerCount: unknown;
221
+ txCollectionFileStoreUrls: unknown;
222
+ txCollectionMissingTxsCollectorType: unknown;
182
223
  txCollectionNodeRpcMaxBatchSize: unknown;
183
224
  txCollectionNodeRpcUrls: unknown;
184
225
  txCollectionReconcileIntervalMs: unknown;
185
226
  txCollectionSlowNodesIntervalMs: unknown;
186
227
  txCollectionSlowReqRespIntervalMs: unknown;
187
228
  txCollectionSlowReqRespTimeoutMs: unknown;
229
+ txFileStoreEnabled: unknown;
230
+ txFileStoreMaxQueueSize: unknown;
231
+ txFileStoreUploadConcurrency: unknown;
232
+ txFileStoreUrl: unknown;
188
233
  txPoolDeleteTxsAfterReorg: unknown;
189
- txPublicSetupAllowList: unknown;
234
+ txPublicSetupAllowListExtend: unknown;
235
+ validateMaxDABlockGas: unknown;
236
+ validateMaxL2BlockGas: unknown;
237
+ validateMaxTxsPerBlock: unknown;
238
+ validateMaxTxsPerCheckpoint: unknown;
190
239
  }, "bootstrapNodes" | "dataDirectory" | "dataStoreMapSizeKb" | "l1ChainId" | "listenAddress" | "p2pBroadcastPort" | "p2pIp" | "p2pPort" | "peerIdPrivateKey" | "peerIdPrivateKeyPath" | "queryForIp">>;
191
240
  /**
192
241
  * Parses a string to a list of allowed elements.
193
- * Each encoded is expected to be of one of the following formats
194
- * `I:${address}`
195
- * `I:${address}:${selector}`
196
- * `C:${classId}`
197
- * `C:${classId}:${selector}`
242
+ * Each entry is expected to be of one of the following formats:
243
+ * `I:${address}:${selector}` — instance (contract address) with function selector
244
+ * `C:${classId}:${selector}` — class with function selector
245
+ *
246
+ * An optional flags segment can be appended after the selector:
247
+ * `I:${address}:${selector}:${flags}` or `C:${classId}:${selector}:${flags}`
248
+ * where flags is a `+`-separated list of: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
198
249
  *
199
250
  * @param value The string to parse
200
251
  * @returns A list of allowed elements
201
252
  */
202
253
  export declare function parseAllowList(value: string): AllowedElement[];
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBUVosTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFHbEYsT0FBTyxFQUFFLEtBQUssY0FBYyxFQUFFLEtBQUssV0FBVyxFQUF1QixNQUFNLHNCQUFzQixDQUFDO0FBRWxHLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE0QixNQUFNLDhCQUE4QixDQUFDO0FBQy9GLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUE4QixNQUFNLG9DQUFvQyxDQUFDO0FBRXpHOztHQUVHO0FBQ0gsTUFBTSxXQUFXLFNBQVUsU0FBUSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsa0JBQWtCO0lBQ2xGLG9FQUFvRTtJQUNwRSxVQUFVLEVBQUUsT0FBTyxDQUFDO0lBRXBCLHlEQUF5RDtJQUN6RCxvQkFBb0IsRUFBRSxNQUFNLENBQUM7SUFFN0IsdURBQXVEO0lBQ3ZELHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUU5QixvRUFBb0U7SUFDcEUsNkJBQTZCLEVBQUUsT0FBTyxDQUFDO0lBRXZDLHFEQUFxRDtJQUNyRCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFFNUIsMkNBQTJDO0lBQzNDLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFFcEIsb0NBQW9DO0lBQ3BDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFFaEIsNkVBQTZFO0lBQzdFLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRTFCLDBDQUEwQztJQUMxQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFZiwwQkFBMEI7SUFDMUIsYUFBYSxFQUFFLE1BQU0sQ0FBQztJQUV0Qiw2RUFBNkU7SUFDN0UsZ0JBQWdCLENBQUMsRUFBRSxXQUFXLENBQUMs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
254
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBQ25CLEtBQUssV0FBVyxFQUNoQixLQUFLLGVBQWUsRUFHckIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFFbEYsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQTRCLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQThCLE1BQU0sb0NBQW9DLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQTZCLE1BQU0sb0NBQW9DLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsU0FDZixTQUFRLGdCQUFnQixFQUN0QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsSUFBSSxDQUNGLGVBQWUsRUFDYixpQkFBaUIsR0FDakIsK0JBQStCLEdBQy9CLGtCQUFrQixHQUNsQixnQkFBZ0IsR0FDaEIsNEJBQTRCLENBQy9CO0lBQ0gsOEdBQThHO0lBQzlHLHNCQUFzQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRWhDLG9IQUFvSDtJQUNwSCwyQkFBMkIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUVyQyxnR0FBZ0c7SUFDaEcscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFL0IsZ0dBQWdHO0lBQ2hHLHFCQUFxQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRS9CLG9FQUFvRTtJQUNwRSxVQUFVLEVBQUUsT0FBTyxD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LENBQUMsRUFBRSxPQUFPLENBQUM7SUFDL0IsaUZBQWlGO0lBQ2pGLCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUV4QywySEFBMkg7SUFDM0gsbUJBQW1CLEVBQUUsT0FBTyxDQUFDO0lBRTdCLGtHQUFrRztJQUNsRywyQkFBMkIsRUFBRSxNQUFNLENBQUM7SUFFcEMseUdBQXlHO0lBQ3pHLHlCQUF5QixFQUFFLE9BQU8sQ0FBQztJQUVuQyxvR0FBb0c7SUFDcEcsMEJBQTBCLEVBQUUsT0FBTyxDQUFDO0lBRXBDLGlKQUFpSjtJQUNqSixhQUFhLEVBQUUsT0FBTyxDQUFDO0lBRXZCLDJJQUEySTtJQUMzSSw2QkFBNkIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUV4Qyx5R0FBeUc7SUFDekcsY0FBYyxFQUFFLE1BQU0sQ0FBQztJQUV2QixnR0FBZ0c7SUFDaEcsbUJBQW1CLEVBQUUsTUFBTSxDQUFDO0NBQzdCO0FBRUQsZUFBTyxNQUFNLGdCQUFnQixRQUFRLENBQUM7QUFFdEMsZUFBTyxNQUFNLGlCQUFpQixFQUFFLGtCQUFrQixDQUFDLFNBQVMsQ0EyVDNELENBQUM7QUFFRjs7O0dBR0c7QUFDSCx3QkFBZ0IsbUJBQW1CLElBQUksU0FBUyxDQUUvQztBQUVELHdCQUFnQixtQkFBbUIsSUFBSSxTQUFTLENBRS9DO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FDL0IsU0FBUyxFQUNQLE9BQU8sR0FDUCxTQUFTLEdBQ1Qsa0JBQWtCLEdBQ2xCLGtCQUFrQixHQUNsQixzQkFBc0IsR0FDdEIsZ0JBQWdCLEdBQ2hCLGVBQWUsR0FDZixZQUFZLENBQ2YsR0FDQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEdBQUcsU0FBUyxDQUFDLENBQUMsR0FDOUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxlQUFlLEdBQUcsb0JBQW9CLENBQUMsR0FDN0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztBQWdCakMsZUFBTyxNQUFNLHNCQUFzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzTUFHbEMsQ0FBQztBQStCRjs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsY0FBYyxFQUFFLENBMkM5RCJ9
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}