@aztec/p2p 0.0.1-commit.993d52e → 0.0.1-commit.9a89641

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 (473) hide show
  1. package/README.md +130 -3
  2. package/dest/bootstrap/bootstrap.d.ts +1 -1
  3. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  4. package/dest/bootstrap/bootstrap.js +22 -6
  5. package/dest/client/factory.d.ts +5 -4
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +39 -16
  8. package/dest/client/interface.d.ts +52 -12
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +34 -19
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +120 -73
  13. package/dest/config.d.ts +160 -110
  14. package/dest/config.d.ts.map +1 -1
  15. package/dest/config.js +139 -49
  16. package/dest/errors/p2p-service.error.d.ts +9 -0
  17. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  18. package/dest/errors/p2p-service.error.js +10 -0
  19. package/dest/errors/reqresp.error.d.ts +9 -16
  20. package/dest/errors/reqresp.error.d.ts.map +1 -1
  21. package/dest/errors/reqresp.error.js +10 -17
  22. package/dest/index.d.ts +1 -2
  23. package/dest/index.d.ts.map +1 -1
  24. package/dest/index.js +0 -1
  25. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +101 -59
  26. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  27. package/dest/mem_pools/attestation_pool/attestation_pool.js +274 -197
  28. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  29. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  30. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +224 -65
  31. package/dest/mem_pools/attestation_pool/mocks.d.ts +1 -1
  32. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  33. package/dest/mem_pools/attestation_pool/mocks.js +6 -4
  34. package/dest/mem_pools/index.d.ts +1 -2
  35. package/dest/mem_pools/index.d.ts.map +1 -1
  36. package/dest/mem_pools/instrumentation.d.ts +12 -5
  37. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  38. package/dest/mem_pools/instrumentation.js +38 -17
  39. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +1 -5
  40. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -1
  41. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +1 -7
  42. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +3 -3
  43. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -1
  44. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +6 -6
  45. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  46. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  47. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +5 -4
  48. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
  49. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  50. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +3 -1
  51. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -1
  52. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -0
  54. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  55. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +64 -0
  57. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +1 -1
  58. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -1
  59. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +3 -4
  60. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +1 -1
  61. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -1
  62. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +6 -7
  63. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +1 -1
  64. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  65. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +6 -5
  66. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +41 -9
  67. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  68. package/dest/mem_pools/tx_pool_v2/interfaces.js +3 -1
  69. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +17 -8
  70. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  71. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +20 -7
  72. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +15 -1
  73. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  74. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +55 -41
  75. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +12 -4
  76. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  77. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +23 -6
  78. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +17 -3
  79. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  80. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +234 -120
  81. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +10 -3
  82. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  83. package/dest/msg_validators/attestation_validator/attestation_validator.js +38 -15
  84. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +7 -3
  85. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  86. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +4 -5
  87. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +11 -5
  88. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  89. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +11 -3
  90. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +11 -5
  91. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  92. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +23 -3
  93. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +35 -10
  94. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  95. package/dest/msg_validators/proposal_validator/proposal_validator.js +128 -56
  96. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  97. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  98. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +8 -15
  99. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  100. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  101. package/dest/msg_validators/tx_validator/allowed_public_setup.js +25 -21
  102. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  103. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  104. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  105. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  106. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  107. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  108. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  109. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  110. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  111. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  112. package/dest/msg_validators/tx_validator/data_validator.d.ts +2 -1
  113. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  114. package/dest/msg_validators/tx_validator/data_validator.js +36 -2
  115. package/dest/msg_validators/tx_validator/factory.d.ts +25 -7
  116. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  117. package/dest/msg_validators/tx_validator/factory.js +55 -16
  118. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  119. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  120. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  121. package/dest/msg_validators/tx_validator/gas_validator.d.ts +53 -7
  122. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  123. package/dest/msg_validators/tx_validator/gas_validator.js +88 -41
  124. package/dest/msg_validators/tx_validator/index.d.ts +4 -1
  125. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  126. package/dest/msg_validators/tx_validator/index.js +3 -0
  127. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  128. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  129. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  130. package/dest/msg_validators/tx_validator/phases_validator.d.ts +22 -2
  131. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  132. package/dest/msg_validators/tx_validator/phases_validator.js +72 -24
  133. package/dest/msg_validators/tx_validator/timestamp_validator.js +1 -1
  134. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +2 -1
  135. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  136. package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -0
  137. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  138. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  139. package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
  140. package/dest/services/data_store.d.ts +1 -1
  141. package/dest/services/data_store.d.ts.map +1 -1
  142. package/dest/services/data_store.js +5 -5
  143. package/dest/services/discv5/discV5_service.d.ts +13 -2
  144. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  145. package/dest/services/discv5/discV5_service.js +119 -23
  146. package/dest/services/discv5/persisted_enr_store.d.ts +38 -0
  147. package/dest/services/discv5/persisted_enr_store.d.ts.map +1 -0
  148. package/dest/services/discv5/persisted_enr_store.js +145 -0
  149. package/dest/services/dummy_service.d.ts +15 -15
  150. package/dest/services/dummy_service.d.ts.map +1 -1
  151. package/dest/services/dummy_service.js +15 -16
  152. package/dest/services/encoding.d.ts +23 -6
  153. package/dest/services/encoding.d.ts.map +1 -1
  154. package/dest/services/encoding.js +32 -16
  155. package/dest/services/gossipsub/topic_score_params.d.ts +6 -12
  156. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  157. package/dest/services/gossipsub/topic_score_params.js +4 -14
  158. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  159. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  160. package/dest/services/libp2p/instrumentation.js +14 -0
  161. package/dest/services/libp2p/libp2p_service.d.ts +46 -47
  162. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  163. package/dest/services/libp2p/libp2p_service.js +460 -320
  164. package/dest/services/peer-manager/metrics.d.ts +3 -1
  165. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  166. package/dest/services/peer-manager/metrics.js +6 -0
  167. package/dest/services/peer-manager/peer_manager.d.ts +20 -3
  168. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  169. package/dest/services/peer-manager/peer_manager.js +83 -26
  170. package/dest/services/peer-manager/peer_scoring.d.ts +34 -2
  171. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  172. package/dest/services/peer-manager/peer_scoring.js +102 -13
  173. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +4 -8
  174. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  175. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +94 -122
  176. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +10 -6
  177. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  178. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +5 -4
  179. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  180. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +13 -7
  181. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -11
  182. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  183. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +52 -15
  184. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +5 -14
  185. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -1
  186. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +6 -20
  187. package/dest/services/reqresp/config.d.ts +15 -3
  188. package/dest/services/reqresp/config.d.ts.map +1 -1
  189. package/dest/services/reqresp/config.js +11 -0
  190. package/dest/services/reqresp/interface.d.ts +16 -18
  191. package/dest/services/reqresp/interface.d.ts.map +1 -1
  192. package/dest/services/reqresp/interface.js +10 -20
  193. package/dest/services/reqresp/metrics.d.ts +1 -1
  194. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  195. package/dest/services/reqresp/metrics.js +0 -1
  196. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +4 -3
  197. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  198. package/dest/services/reqresp/protocols/block_txs/bitvector.js +3 -2
  199. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  200. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  201. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +31 -28
  202. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +12 -7
  203. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  204. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +42 -24
  205. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  206. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  207. package/dest/services/reqresp/protocols/index.js +0 -1
  208. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  209. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  210. package/dest/services/reqresp/protocols/tx.js +1 -3
  211. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
  212. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  213. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  214. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  215. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  216. package/dest/services/reqresp/rate-limiter/rate_limits.js +3 -13
  217. package/dest/services/reqresp/reqresp.d.ts +7 -29
  218. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  219. package/dest/services/reqresp/reqresp.js +75 -216
  220. package/dest/services/service.d.ts +29 -12
  221. package/dest/services/service.d.ts.map +1 -1
  222. package/dest/services/tx_collection/config.d.ts +2 -23
  223. package/dest/services/tx_collection/config.d.ts.map +1 -1
  224. package/dest/services/tx_collection/config.js +2 -55
  225. package/dest/services/tx_collection/file_store_tx_collection.d.ts +12 -28
  226. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -1
  227. package/dest/services/tx_collection/file_store_tx_collection.js +43 -83
  228. package/dest/services/tx_collection/file_store_tx_source.d.ts +5 -4
  229. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
  230. package/dest/services/tx_collection/file_store_tx_source.js +39 -29
  231. package/dest/services/tx_collection/index.d.ts +2 -3
  232. package/dest/services/tx_collection/index.d.ts.map +1 -1
  233. package/dest/services/tx_collection/index.js +0 -1
  234. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  235. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  236. package/dest/services/tx_collection/instrumentation.js +0 -2
  237. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  238. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  239. package/dest/services/tx_collection/request_tracker.js +84 -0
  240. package/dest/services/tx_collection/tx_collection.d.ts +36 -55
  241. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  242. package/dest/services/tx_collection/tx_collection.js +275 -119
  243. package/dest/services/tx_collection/tx_collection_sink.d.ts +1 -1
  244. package/dest/services/tx_collection/tx_collection_sink.js +2 -2
  245. package/dest/services/tx_collection/tx_source.d.ts +6 -5
  246. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  247. package/dest/services/tx_collection/tx_source.js +13 -8
  248. package/dest/services/tx_file_store/tx_file_store.d.ts +1 -3
  249. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -1
  250. package/dest/services/tx_file_store/tx_file_store.js +4 -14
  251. package/dest/services/tx_provider.d.ts +3 -1
  252. package/dest/services/tx_provider.d.ts.map +1 -1
  253. package/dest/services/tx_provider.js +3 -0
  254. package/dest/test-helpers/make-test-p2p-clients.d.ts +1 -1
  255. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  256. package/dest/test-helpers/make-test-p2p-clients.js +5 -2
  257. package/dest/test-helpers/mock-pubsub.d.ts +23 -9
  258. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  259. package/dest/test-helpers/mock-pubsub.js +44 -44
  260. package/dest/test-helpers/reqresp-nodes.d.ts +4 -5
  261. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  262. package/dest/test-helpers/reqresp-nodes.js +16 -18
  263. package/dest/test-helpers/test_tx_provider.d.ts +3 -1
  264. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -1
  265. package/dest/test-helpers/test_tx_provider.js +3 -0
  266. package/dest/test-helpers/testbench-utils.d.ts +15 -14
  267. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  268. package/dest/test-helpers/testbench-utils.js +51 -16
  269. package/dest/testbench/p2p_client_testbench_worker.d.ts +3 -5
  270. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  271. package/dest/testbench/p2p_client_testbench_worker.js +104 -41
  272. package/dest/testbench/worker_client_manager.d.ts +12 -6
  273. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  274. package/dest/testbench/worker_client_manager.js +57 -11
  275. package/dest/util.d.ts +12 -7
  276. package/dest/util.d.ts.map +1 -1
  277. package/dest/util.js +35 -14
  278. package/dest/versioning.d.ts +3 -6
  279. package/dest/versioning.d.ts.map +1 -1
  280. package/dest/versioning.js +3 -24
  281. package/package.json +15 -16
  282. package/src/bootstrap/bootstrap.ts +17 -3
  283. package/src/client/factory.ts +62 -9
  284. package/src/client/interface.ts +48 -18
  285. package/src/client/p2p_client.ts +140 -106
  286. package/src/client/test/{tx_proposal_collector/README.md → p2p_client.batch_tx_requester.bench.README.md} +23 -53
  287. package/src/config.ts +241 -57
  288. package/src/errors/p2p-service.error.ts +11 -0
  289. package/src/errors/reqresp.error.ts +13 -19
  290. package/src/index.ts +0 -1
  291. package/src/mem_pools/attestation_pool/attestation_pool.ts +329 -243
  292. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +244 -69
  293. package/src/mem_pools/attestation_pool/mocks.ts +13 -8
  294. package/src/mem_pools/index.ts +0 -3
  295. package/src/mem_pools/instrumentation.ts +27 -17
  296. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +1 -9
  297. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +7 -7
  298. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +4 -5
  299. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -2
  300. package/src/mem_pools/tx_pool_v2/eviction/index.ts +1 -0
  301. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +67 -0
  302. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +1 -3
  303. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +5 -7
  304. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +5 -6
  305. package/src/mem_pools/tx_pool_v2/interfaces.ts +40 -8
  306. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +35 -13
  307. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +62 -41
  308. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +36 -7
  309. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +260 -124
  310. package/src/msg_validators/attestation_validator/README.md +49 -0
  311. package/src/msg_validators/attestation_validator/attestation_validator.ts +46 -14
  312. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +15 -7
  313. package/src/msg_validators/proposal_validator/README.md +123 -0
  314. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +26 -4
  315. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +43 -7
  316. package/src/msg_validators/proposal_validator/proposal_validator.ts +150 -58
  317. package/src/msg_validators/tx_validator/README.md +17 -3
  318. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -12
  319. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  320. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  321. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  322. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  323. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  324. package/src/msg_validators/tx_validator/data_validator.ts +44 -1
  325. package/src/msg_validators/tx_validator/factory.ts +66 -9
  326. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  327. package/src/msg_validators/tx_validator/gas_validator.ts +117 -39
  328. package/src/msg_validators/tx_validator/index.ts +3 -0
  329. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  330. package/src/msg_validators/tx_validator/phases_validator.ts +82 -27
  331. package/src/msg_validators/tx_validator/timestamp_validator.ts +1 -1
  332. package/src/msg_validators/tx_validator/tx_proof_validator.ts +2 -0
  333. package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
  334. package/src/services/data_store.ts +5 -13
  335. package/src/services/discv5/discV5_service.ts +126 -14
  336. package/src/services/discv5/persisted_enr_store.ts +158 -0
  337. package/src/services/dummy_service.ts +20 -39
  338. package/src/services/encoding.ts +35 -19
  339. package/src/services/gossipsub/README.md +33 -11
  340. package/src/services/gossipsub/topic_score_params.ts +9 -18
  341. package/src/services/libp2p/instrumentation.ts +14 -0
  342. package/src/services/libp2p/libp2p_service.ts +508 -358
  343. package/src/services/peer-manager/metrics.ts +7 -0
  344. package/src/services/peer-manager/peer_manager.ts +91 -25
  345. package/src/services/peer-manager/peer_scoring.ts +102 -8
  346. package/src/services/reqresp/README.md +194 -0
  347. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  348. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +91 -137
  349. package/src/services/reqresp/batch-tx-requester/interface.ts +13 -5
  350. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +13 -6
  351. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
  352. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +12 -25
  353. package/src/services/reqresp/config.ts +19 -2
  354. package/src/services/reqresp/interface.ts +21 -47
  355. package/src/services/reqresp/metrics.ts +0 -1
  356. package/src/services/reqresp/protocols/block_txs/bitvector.ts +3 -2
  357. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +34 -30
  358. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +47 -20
  359. package/src/services/reqresp/protocols/index.ts +0 -1
  360. package/src/services/reqresp/protocols/tx.ts +1 -3
  361. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  362. package/src/services/reqresp/rate-limiter/rate_limits.ts +3 -13
  363. package/src/services/reqresp/reqresp.ts +87 -260
  364. package/src/services/service.ts +35 -28
  365. package/src/services/tx_collection/config.ts +3 -80
  366. package/src/services/tx_collection/file_store_tx_collection.ts +54 -103
  367. package/src/services/tx_collection/file_store_tx_source.ts +43 -31
  368. package/src/services/tx_collection/index.ts +1 -6
  369. package/src/services/tx_collection/instrumentation.ts +1 -7
  370. package/src/services/tx_collection/request_tracker.ts +127 -0
  371. package/src/services/tx_collection/tx_collection.ts +331 -176
  372. package/src/services/tx_collection/tx_collection_sink.ts +2 -2
  373. package/src/services/tx_collection/tx_source.ts +10 -8
  374. package/src/services/tx_file_store/tx_file_store.ts +5 -17
  375. package/src/services/tx_provider.ts +5 -0
  376. package/src/test-helpers/make-test-p2p-clients.ts +4 -1
  377. package/src/test-helpers/mock-pubsub.ts +46 -60
  378. package/src/test-helpers/reqresp-nodes.ts +13 -23
  379. package/src/test-helpers/test_tx_provider.ts +5 -0
  380. package/src/test-helpers/testbench-utils.ts +64 -28
  381. package/src/testbench/p2p_client_testbench_worker.ts +111 -57
  382. package/src/testbench/worker_client_manager.ts +72 -25
  383. package/src/util.ts +33 -18
  384. package/src/versioning.ts +3 -33
  385. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +0 -2
  386. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +0 -1
  387. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +0 -304
  388. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +0 -73
  389. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +0 -1
  390. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +0 -8
  391. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  392. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  393. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  394. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  395. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  396. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  397. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  398. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  399. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  400. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  401. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  402. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -122
  403. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  404. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  405. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
  406. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  407. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  408. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  409. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  410. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  411. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  412. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  413. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  414. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  415. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  416. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  417. package/dest/mem_pools/tx_pool/index.js +0 -2
  418. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  419. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  420. package/dest/mem_pools/tx_pool/priority.js +0 -15
  421. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  422. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  423. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  424. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  425. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  426. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -400
  427. package/dest/msg_validators/clock_tolerance.d.ts +0 -21
  428. package/dest/msg_validators/clock_tolerance.d.ts.map +0 -1
  429. package/dest/msg_validators/clock_tolerance.js +0 -37
  430. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -24
  431. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  432. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -378
  433. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -64
  434. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  435. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -151
  436. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  437. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  438. package/dest/services/reqresp/protocols/block.js +0 -32
  439. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -54
  440. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  441. package/dest/services/tx_collection/fast_tx_collection.js +0 -327
  442. package/dest/services/tx_collection/missing_txs_tracker.d.ts +0 -32
  443. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +0 -1
  444. package/dest/services/tx_collection/missing_txs_tracker.js +0 -27
  445. package/dest/services/tx_collection/proposal_tx_collector.d.ts +0 -49
  446. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +0 -1
  447. package/dest/services/tx_collection/proposal_tx_collector.js +0 -50
  448. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -57
  449. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  450. package/dest/services/tx_collection/slow_tx_collection.js +0 -211
  451. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +0 -345
  452. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +0 -43
  453. package/src/mem_pools/tx_pool/README.md +0 -270
  454. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  455. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  456. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  457. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -162
  458. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  459. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  460. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  461. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  462. package/src/mem_pools/tx_pool/index.ts +0 -2
  463. package/src/mem_pools/tx_pool/priority.ts +0 -20
  464. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  465. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -319
  466. package/src/msg_validators/clock_tolerance.ts +0 -51
  467. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -373
  468. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -161
  469. package/src/services/reqresp/protocols/block.ts +0 -37
  470. package/src/services/tx_collection/fast_tx_collection.ts +0 -387
  471. package/src/services/tx_collection/missing_txs_tracker.ts +0 -52
  472. package/src/services/tx_collection/proposal_tx_collector.ts +0 -113
  473. package/src/services/tx_collection/slow_tx_collection.ts +0 -266
@@ -1,20 +1,21 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
2
+ import { BlockNumber, type CheckpointProposalHash, SlotNumber } from '@aztec/foundation/branded-types';
3
3
  import { DateProvider } from '@aztec/foundation/timer';
4
4
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
5
- import { type EthAddress, type L2BlockSource, type L2BlockStreamEvent, type L2Tips } from '@aztec/stdlib/block';
5
+ import { type BlockHash, type EthAddress, type L2BlockSource, type L2BlockStreamEvent, type LocalL2Tips } from '@aztec/stdlib/block';
6
6
  import type { ContractDataSource } from '@aztec/stdlib/contract';
7
- import { type PeerInfo } from '@aztec/stdlib/interfaces/server';
7
+ import { type GetTxByHashOptions, type PeerInfo } from '@aztec/stdlib/interfaces/server';
8
8
  import { type BlockProposal, CheckpointAttestation, type CheckpointProposal, type TopicType } from '@aztec/stdlib/p2p';
9
9
  import type { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
10
10
  import { type TelemetryClient, WithTracer } from '@aztec/telemetry-client';
11
11
  import type { PeerId } from '@libp2p/interface';
12
12
  import type { ENR } from '@nethermindeth/enr';
13
13
  import { type P2PConfig } from '../config.js';
14
+ import type { ProposalsForSlot } from '../mem_pools/attestation_pool/attestation_pool.js';
14
15
  import type { MemPools } from '../mem_pools/interface.js';
15
16
  import type { AuthRequest, StatusMessage } from '../services/index.js';
16
- import { ReqRespSubProtocol, type ReqRespSubProtocolHandler, type ReqRespSubProtocolValidators } from '../services/reqresp/interface.js';
17
- import type { DuplicateAttestationInfo, DuplicateProposalInfo, P2PBlockReceivedCallback, P2PCheckpointReceivedCallback, P2PService } from '../services/service.js';
17
+ import { ReqRespSubProtocol, type ReqRespSubProtocolHandler } from '../services/reqresp/interface.js';
18
+ import type { DuplicateAttestationInfo, DuplicateProposalInfo, OversizedProposalInfo, P2PBlockReceivedCallback, P2PCheckpointReceivedCallback, P2PService } from '../services/service.js';
18
19
  import { TxCollection } from '../services/tx_collection/tx_collection.js';
19
20
  import type { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
20
21
  import { TxProvider } from '../services/tx_provider.js';
@@ -51,9 +52,7 @@ export declare class P2PClient extends WithTracer implements P2P {
51
52
  private validatorAddresses;
52
53
  /** Tracks the last slot for which we called prepareForSlot */
53
54
  private lastSlotProcessed;
54
- /** Polls for slot changes and calls prepareForSlot on the tx pool */
55
- private slotMonitor;
56
- constructor(store: AztecAsyncKVStore, l2BlockSource: L2BlockSource & ContractDataSource, mempools: MemPools, p2pService: P2PService, txCollection: TxCollection, txFileStore: TxFileStore | undefined, epochCache: EpochCacheInterface, config?: Partial<P2PConfig>, _dateProvider?: DateProvider, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
55
+ constructor(store: AztecAsyncKVStore, l2BlockSource: L2BlockSource & ContractDataSource, mempools: MemPools, p2pService: P2PService, txCollection: TxCollection, txFileStore: TxFileStore | undefined, epochCache: EpochCacheInterface, config: Partial<P2PConfig> | undefined, _dateProvider: DateProvider | undefined, telemetry: TelemetryClient | undefined, log: import("@aztec/foundation/log").Logger | undefined, initialBlockHash: BlockHash);
57
56
  registerThisValidatorAddresses(addresses: EthAddress[]): void;
58
57
  clear(): Promise<void>;
59
58
  isP2PClient(): true;
@@ -62,14 +61,14 @@ export declare class P2PClient extends WithTracer implements P2P {
62
61
  getGossipMeshPeerCount(topicType: TopicType): Promise<number>;
63
62
  getL2BlockHash(number: BlockNumber): Promise<string | undefined>;
64
63
  updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
65
- getL2Tips(): Promise<L2Tips>;
64
+ getL2Tips(): Promise<LocalL2Tips>;
66
65
  handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
67
66
  /**
68
67
  * Starts the P2P client.
69
68
  * @returns An empty promise signalling the synching process.
70
69
  */
71
70
  start(): Promise<void>;
72
- addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
71
+ addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler): Promise<void>;
73
72
  private initBlockStream;
74
73
  /**
75
74
  * Allows consumers to stop the instance of the P2P client.
@@ -81,29 +80,45 @@ export declare class P2PClient extends WithTracer implements P2P {
81
80
  broadcastProposal(proposal: BlockProposal): Promise<void>;
82
81
  broadcastCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
83
82
  broadcastCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
84
- getCheckpointAttestationsForSlot(slot: SlotNumber, proposalId?: string): Promise<CheckpointAttestation[]>;
83
+ getCheckpointAttestationsForSlot(slot: SlotNumber, proposalPayloadHash?: CheckpointProposalHash): Promise<CheckpointAttestation[]>;
85
84
  addOwnCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
85
+ getProposalsForSlot(slot: SlotNumber): Promise<ProposalsForSlot>;
86
86
  hasBlockProposalsForSlot(slot: SlotNumber): Promise<boolean>;
87
+ hasCheckpointProposalForSlot(slot: SlotNumber): Promise<boolean>;
87
88
  registerBlockProposalHandler(handler: P2PBlockReceivedCallback): void;
88
- registerCheckpointProposalHandler(handler: P2PCheckpointReceivedCallback): void;
89
+ registerValidatorCheckpointProposalHandler(handler: P2PCheckpointReceivedCallback): void;
90
+ registerAllNodesCheckpointProposalHandler(handler: P2PCheckpointReceivedCallback): void;
89
91
  registerDuplicateProposalCallback(callback: (info: DuplicateProposalInfo) => void): void;
92
+ registerOversizedProposalCallback(callback: (info: OversizedProposalInfo) => void): void;
90
93
  registerDuplicateAttestationCallback(callback: (info: DuplicateAttestationInfo) => void): void;
91
- getPendingTxs(limit?: number, after?: TxHash): Promise<Tx[]>;
94
+ registerCheckpointAttestationCallback(callback: (attestation: CheckpointAttestation) => void): void;
95
+ getPendingTxs(limit?: number, after?: TxHash, options?: GetTxByHashOptions): Promise<Tx[]>;
92
96
  getPendingTxCount(): Promise<number>;
93
- iteratePendingTxs(): AsyncIterableIterator<Tx>;
94
- iterateEligiblePendingTxs(): AsyncIterableIterator<Tx>;
97
+ hasEligiblePendingTxs(minCount: number): Promise<boolean>;
98
+ iteratePendingTxs(opts?: {
99
+ includeProof?: boolean;
100
+ }): AsyncIterableIterator<Tx>;
101
+ iterateEligiblePendingTxs(opts?: {
102
+ includeProof?: boolean;
103
+ }): AsyncIterableIterator<Tx>;
95
104
  /**
96
105
  * Returns a transaction in the transaction pool by its hash.
97
106
  * @param txHash - Hash of the transaction to look for in the pool.
107
+ * @param opts - Set `includeProof: false` to skip loading the tx proof from the DB.
98
108
  * @returns A single tx or undefined.
99
109
  */
100
- getTxByHashFromPool(txHash: TxHash): Promise<Tx | undefined>;
110
+ getTxByHashFromPool(txHash: TxHash, opts?: {
111
+ includeProof?: boolean;
112
+ }): Promise<Tx | undefined>;
101
113
  /**
102
114
  * Returns transactions in the transaction pool by hash.
103
115
  * @param txHashes - Hashes of the transactions to look for.
116
+ * @param opts - Set `includeProof: false` to skip loading tx proofs from the DB.
104
117
  * @returns The txs found, in the same order as the requested hashes. If a tx is not found, it will be undefined.
105
118
  */
106
- getTxsByHashFromPool(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
119
+ getTxsByHashFromPool(txHashes: TxHash[], opts?: {
120
+ includeProof?: boolean;
121
+ }): Promise<(Tx | undefined)[]>;
107
122
  hasTxsInPool(txHashes: TxHash[]): Promise<boolean[]>;
108
123
  /**
109
124
  * Returns an archived transaction in the transaction pool by its hash.
@@ -155,7 +170,7 @@ export declare class P2PClient extends WithTracer implements P2P {
155
170
  getStatus(): Promise<P2PSyncState>;
156
171
  private handleMinedBlocks;
157
172
  private handleLatestL2Blocks;
158
- private startCollectingMissingTxs;
173
+ private collectingMissingTxs;
159
174
  private handleFinalizedL2Blocks;
160
175
  private handlePruneL2Blocks;
161
176
  private isEpochPrune;
@@ -183,4 +198,4 @@ export declare class P2PClient extends WithTracer implements P2P {
183
198
  prepareForSlot(slotNumber: SlotNumber): Promise<void>;
184
199
  handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
185
200
  }
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9wMnBfY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBb0IsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHNUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUF1QixNQUFNLGlCQUFpQixDQUFDO0FBRTlFLE9BQU8sRUFFTCxLQUFLLFVBQVUsRUFHZixLQUFLLGFBQWEsRUFFbEIsS0FBSyxrQkFBa0IsRUFDdkIsS0FBSyxNQUFNLEVBRVosTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBVyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLGtCQUFrQixFQUFFLEtBQUssU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkgsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRSxPQUFPLEVBQWMsS0FBSyxlQUFlLEVBQUUsVUFBVSxFQUFpQyxNQUFNLHlCQUF5QixDQUFDO0FBRXRILE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBdUIsTUFBTSxjQUFjLENBQUM7QUFHbkUsT0FBTyxLQUFLLEVBQUUsUUFB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
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9wMnBfY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUNMLFdBQVcsRUFFWCxLQUFLLHNCQUFzQixFQUMzQixVQUFVLEVBQ1gsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQXVCLE1BQU0saUJBQWlCLENBQUM7QUFFOUUsT0FBTyxFQUVMLEtBQUssU0FBUyxFQUVkLEtBQUssVUFBVSxFQUlmLEtBQUssYUFBYSxFQUNsQixLQUFLLGtCQUFrQixFQUV2QixLQUFLLFdBQVcsRUFDakIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxLQUFLLGtCQUFrQixFQUFFLEtBQUssUUFBUSxFQUFXLE1BQU0saUNBQWlDLENBQUM7QUFDbEcsT0FBTyxFQUFFLEtBQUssYUFBYSxFQUFFLHFCQUFxQixFQUFFLEtBQUssa0JBQWtCLEVBQUUsS0FBSyxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2SCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBYyxLQUFLLGVBQWUsRUFBRSxVQUFVLEVBQWlDLE1BQU0seUJBQXlCLENBQUM7QUFFdEgsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUVuRSxPQUFPLEtBQUssRUFBc0IsZ0JBQWdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLEtBQUsseUJBQXlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RyxPQUFPLEtBQUssRUFDVix3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsNkJBQTZCLEVBQzdCLFVBQVUsRUFDWCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssR0FBRyxFQUFrQixLQUFLLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdFOztHQUVHO0FBQ0gscUJBQWEsU0FBVSxTQUFRLFVBQVcsWUFBVyxHQUFHOztJQTZCcEQsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsYUFBYTtJQUVyQixPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsV0FBVztJQUNuQixPQUFPLENBQUMsVUFBVTtJQUVsQixPQUFPLENBQUMsYUFBYTtJQUNyQixPQUFPLENBQUMsU0FBUztJQUNqQixPQUFPLENBQUMsR0FBRztJQXRDYiwwSEFBMEg7SUFDMUgsT0FBTyxDQUFDLGNBQWMsQ0FBaUI7SUFFdkMsT0FBTyxDQUFDLFlBQVksQ0FBdUI7SUFDM0MsT0FBTyxDQUFDLFdBQVcsQ0FBcUI7SUFDeEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUF5QjtJQUM3QyxPQUFPLENBQUMsd0JBQXdCLENBQU07SUFDdEMsT0FBTyxDQUFDLHdCQUF3QixDQUFNO0lBQ3RDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBTTtJQUV6QyxPQUFPLENBQUMsTUFBTSxDQUFjO0lBQzVCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBOEI7SUFFdkQsT0FBTyxDQUFDLE1BQU0sQ0FBVztJQUN6QixPQUFPLENBQUMsZUFBZSxDQUFxQjtJQUU1QyxPQUFPLENBQUMsTUFBTSxDQUFZO0lBRTFCLE9BQU8sQ0FBQyxXQUFXLENBQXVDO0lBRTFELE9BQU8sQ0FBQyxVQUFVLENBQWE7SUFFL0IsT0FBTyxDQUFDLGtCQUFrQixDQUFvQjtJQUU5Qyw4REFBOEQ7SUFDOUQsT0FBTyxDQUFDLGlCQUFpQixDQUErQjtJQUV4RCxZQUNVLEtBQUssRUFBRSxpQkFBaUIsRUFDeEIsYUFBYSxFQUFFLGFBQWEsR0FBRyxrQkFBa0IsRUFDekQsUUFBUSxFQUFFLFFBQVEsRUFDVixVQUFVLEVBQUUsVUFBVSxFQUN0QixZQUFZLEVBQUUsWUFBWSxFQUMxQixXQUFXLEVBQUUsV0FBVyxHQUFHLFNBQVMsRUFDcEMsVUFBVSxFQUFFLG1CQUFtQixFQUN2QyxNQUFNLGdDQUF5QixFQUN2QixhQUFhLDBCQUFtQyxFQUNoRCxTQUFTLDZCQUF3QyxFQUNqRCxHQUFHLG9EQUFzQixFQUNqQyxnQkFBZ0IsRUFBRSxTQUFTLEVBa0I1QjtJQUVNLDhCQUE4QixDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBR25FO0lBRU0sS0FBSyxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FFNUI7SUFFTSxXQUFXLElBQUksSUFBSSxDQUV6QjtJQUVNLGFBQWEsSUFBSSxVQUFVLENBRWpDO0lBRU0sUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FFN0Q7SUFFTSxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFbkU7SUFFTSxjQUFjLENBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUV0RTtJQUVZLGVBQWUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHdEU7SUFFTSxTQUFTLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUV2QztJQUVZLHNCQUFzQixDQUFDLEtBQUssRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBcUM1RTtJQVFEOzs7T0FHRztJQUNVLEtBQUssa0JBa0VqQjtJQUVELHFCQUFxQixDQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUseUJBQXlCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUV4RztJQUVELE9BQU8sQ0FBQyxlQUFlO0lBYXZCOzs7T0FHRztJQUNVLElBQUksa0JBZWhCO0lBRUQseURBQXlEO0lBQzVDLElBQUksa0JBT2hCO0lBT1ksaUJBQWlCLENBQUMsUUFBUSxFQUFFLGFBQWEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBZ0JyRTtJQU9ZLDJCQUEyQixDQUFDLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBcUJwRjtJQUVZLCtCQUErQixDQUFDLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHakc7SUFFWSxnQ0FBZ0MsQ0FDM0MsSUFBSSxFQUFFLFVBQVUsRUFDaEIsbUJBQW1CLENBQUMsRUFBRSxzQkFBc0IsR0FDM0MsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FJbEM7SUFFTSw0QkFBNEIsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBRXhGO0lBRU0sbUJBQW1CLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FFdEU7SUFFTSx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFbEU7SUFFTSw0QkFBNEIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FFdEU7SUFJTSw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsd0JBQXdCLEdBQUcsSUFBSSxDQUUzRTtJQUVNLDBDQUEwQyxDQUFDLE9BQU8sRUFBRSw2QkFBNkIsR0FBRyxJQUFJLENBRTlGO0lBRU0seUNBQXlDLENBQUMsT0FBTyxFQUFFLDZCQUE2QixHQUFHLElBQUksQ0FFN0Y7SUFFTSxpQ0FBaUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEtBQUssSUFBSSxHQUFHLElBQUksQ0FFOUY7SUFFTSxpQ0FBaUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEtBQUssSUFBSSxHQUFHLElBQUksQ0FFOUY7SUFFTSxvQ0FBb0MsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEtBQUssSUFBSSxHQUFHLElBQUksQ0FFcEc7SUFFTSxxQ0FBcUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLEtBQUssSUFBSSxHQUFHLElBQUksQ0FFekc7SUFFWSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsRUFBRSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0F1QnRHO0lBRU0saUJBQWlCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUUxQztJQUVNLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUUvRDtJQUVhLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFO1FBQUUsWUFBWSxDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQUUsR0FBRyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsQ0FPNUY7SUFFYSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUFFLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQTtLQUFFLEdBQUcscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBT3BHO0lBRUQ7Ozs7O09BS0c7SUFDSCxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQUUsWUFBWSxDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQyxDQUU5RjtJQUVEOzs7OztPQUtHO0lBQ0gsb0JBQW9CLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQUUsWUFBWSxDQUFDLEVBQUUsT0FBTyxDQUFBO0tBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUV2RztJQUVELFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBRW5EO0lBRUQ7Ozs7T0FJRztJQUNILG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUMsQ0FFM0Q7SUFFRDs7OztRQUlJO0lBQ1MsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQWtCekM7SUFFRDs7OztPQUlHO0lBQ1UsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUc3RjtJQUVNLE1BQU0sSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUUvQjtJQUVNLGFBQWEsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUVsRDtJQUVEOzs7UUFHSTtJQUNTLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBR3BFO0lBRUQ7OztPQUdHO0lBQ0ksT0FBTyxZQUViO0lBRUQ7OztPQUdHO0lBQ1UsdUJBQXVCLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUczRDtJQUVEOzs7T0FHRztJQUNVLHVCQUF1QixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FHM0Q7SUFFWSwwQkFBMEIsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLENBRzlEO0lBRUQsaUVBQWlFO0lBQ3BELG1CQUFtQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FFbEQ7SUFFRDs7O09BR0c7SUFDVSxTQUFTLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxDQVc5QztZQU9hLGlCQUFpQjtZQVdqQixvQkFBb0I7WUFrQnBCLG9CQUFvQjtZQTJDcEIsdUJBQXVCO1lBaUJ2QixtQkFBbUI7WUFTbkIsWUFBWTtZQXVCWix1QkFBdUI7WUFRdkIscUJBQXFCO0lBMkJuQzs7O09BR0c7SUFDSCxPQUFPLENBQUMsZUFBZTtJQU1oQixrQ0FBa0MsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVsRTtJQUVEOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FFakY7SUFFRDs7OztPQUlHO0lBQ1UsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUVqRTtJQUVNLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBRWpHO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
@@ -371,13 +371,11 @@ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
371
371
  return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
372
372
  }
373
373
  var _dec, _dec1, _initProto;
374
- import { GENESIS_BLOCK_HEADER_HASH } from '@aztec/constants';
375
374
  import { BlockNumber, CheckpointNumber, SlotNumber } from '@aztec/foundation/branded-types';
376
375
  import { createLogger } from '@aztec/foundation/log';
377
- import { RunningPromise } from '@aztec/foundation/promise';
378
376
  import { DateProvider } from '@aztec/foundation/timer';
379
377
  import { L2TipsKVStore } from '@aztec/kv-store/stores';
380
- import { L2BlockStream } from '@aztec/stdlib/block';
378
+ import { EventDrivenL2BlockStream } from '@aztec/stdlib/block';
381
379
  import { getTimestampForSlot } from '@aztec/stdlib/epoch-helpers';
382
380
  import { tryStop } from '@aztec/stdlib/interfaces/server';
383
381
  import { Attributes, WithTracer, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
@@ -436,8 +434,7 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
436
434
  txProvider;
437
435
  validatorAddresses;
438
436
  /** Tracks the last slot for which we called prepareForSlot */ lastSlotProcessed;
439
- /** Polls for slot changes and calls prepareForSlot on the tx pool */ slotMonitor;
440
- constructor(store, l2BlockSource, mempools, p2pService, txCollection, txFileStore, epochCache, config = {}, _dateProvider = new DateProvider(), telemetry = getTelemetryClient(), log = createLogger('p2p')){
437
+ constructor(store, l2BlockSource, mempools, p2pService, txCollection, txFileStore, epochCache, config = {}, _dateProvider = new DateProvider(), telemetry = getTelemetryClient(), log = createLogger('p2p'), initialBlockHash){
441
438
  super(telemetry, 'P2PClient'), this.store = store, this.l2BlockSource = l2BlockSource, this.p2pService = p2pService, this.txCollection = txCollection, this.txFileStore = txFileStore, this.epochCache = epochCache, this._dateProvider = _dateProvider, this.telemetry = telemetry, this.log = log, this.currentState = (_initProto(this), P2PClientState.IDLE), this.syncPromise = Promise.resolve(), this.syncResolve = undefined, this.latestBlockNumberAtStart = -1, this.provenBlockNumberAtStart = -1, this.finalizedBlockNumberAtStart = -1, this.validatorAddresses = [], this.lastSlotProcessed = SlotNumber.ZERO;
442
439
  this.config = {
443
440
  ...getP2PDefaultConfig(),
@@ -446,30 +443,7 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
446
443
  this.txPool = mempools.txPool;
447
444
  this.attestationPool = mempools.attestationPool;
448
445
  this.txProvider = new TxProvider(this.txCollection, this.txPool, this, this.log.createChild('tx-provider'), this.telemetry);
449
- // Default to collecting all txs when we see a valid proposal
450
- // This can be overridden by the validator client to validate, and it will call getTxsForBlockProposal on its own
451
- // Note: Validators do NOT attest to individual blocks - attestations are only for checkpoint proposals.
452
- // TODO(palla/txs): We should not trigger a request for txs on a proposal before fully validating it. We need to bring
453
- // validator-client code into here so we can validate a proposal is reasonable.
454
- this.registerBlockProposalHandler(async (block, sender)=>{
455
- this.log.debug(`Received block proposal from ${sender.toString()}`);
456
- // TODO(palla/txs): Need to subtract validatorReexecuteDeadlineMs from this deadline (see ValidatorClient.getReexecutionDeadline)
457
- const constants = this.txCollection.getConstants();
458
- const nextSlotTimestampSeconds = Number(getTimestampForSlot(SlotNumber(block.slotNumber + 1), constants));
459
- const deadline = new Date(nextSlotTimestampSeconds * 1000);
460
- const parentBlock = await this.l2BlockSource.getBlockHeaderByArchive(block.blockHeader.lastArchive.root);
461
- if (!parentBlock) {
462
- this.log.debug(`Cannot collect txs for proposal as parent block not found`);
463
- return false;
464
- }
465
- const blockNumber = BlockNumber(parentBlock.getBlockNumber() + 1);
466
- await this.txProvider.getTxsForBlockProposal(block, blockNumber, {
467
- pinnedPeer: sender,
468
- deadline
469
- });
470
- return true;
471
- });
472
- this.l2Tips = new L2TipsKVStore(store, 'p2p_client');
446
+ this.l2Tips = new L2TipsKVStore(store, 'p2p_client', initialBlockHash);
473
447
  this.synchedLatestSlot = store.openSingleton('p2p_pool_last_l2_slot');
474
448
  }
475
449
  registerThisValidatorAddresses(addresses) {
@@ -515,7 +489,10 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
515
489
  const from = BlockNumber(oldFinalizedBlockNum + 1);
516
490
  const limit = event.block.number - from + 1;
517
491
  if (limit > 0) {
518
- const oldBlocks = await this.l2BlockSource.getBlocks(from, limit);
492
+ const oldBlocks = await this.l2BlockSource.getBlocksData({
493
+ from,
494
+ limit
495
+ });
519
496
  await this.handleFinalizedL2Blocks(oldBlocks);
520
497
  }
521
498
  break;
@@ -525,10 +502,12 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
525
502
  break;
526
503
  case 'chain-pruned':
527
504
  this.txCollection.stopCollectingForBlocksAfter(event.block.number);
528
- await this.handlePruneL2Blocks(event.block, event.checkpoint);
505
+ await this.handlePruneL2Blocks(event.block, event.checkpointed.checkpoint);
529
506
  break;
530
507
  case 'chain-checkpointed':
531
508
  break;
509
+ case 'chain-proposed':
510
+ break;
532
511
  default:
533
512
  {
534
513
  const _ = event;
@@ -596,21 +575,21 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
596
575
  syncedFinalizedBlock
597
576
  });
598
577
  }
578
+ // Should never happen: all branches above call initBlockStream()
579
+ if (!this.blockStream) {
580
+ throw new Error('Block stream not initialized');
581
+ }
599
582
  this.blockStream.start();
600
- await this.txCollection.start();
601
583
  this.txFileStore?.start();
602
- // Start slot monitor to call prepareForSlot when the slot changes
603
- this.slotMonitor = new RunningPromise(()=>this.maybeCallPrepareForSlot(), this.log, this.config.slotCheckIntervalMS);
604
- this.slotMonitor.start();
605
584
  return this.syncPromise;
606
585
  }
607
- addReqRespSubProtocol(subProtocol, handler, validator) {
608
- return this.p2pService.addReqRespSubProtocol(subProtocol, handler, validator);
586
+ addReqRespSubProtocol(subProtocol, handler) {
587
+ return this.p2pService.addReqRespSubProtocol(subProtocol, handler);
609
588
  }
610
589
  initBlockStream(startingBlock) {
611
590
  if (!this.blockStream) {
612
591
  const { blockRequestBatchSize: batchSize, blockCheckIntervalMS: pollIntervalMS } = this.config;
613
- this.blockStream = new L2BlockStream(this.l2BlockSource, this, this, createLogger(`${this.log.module}:l2-block-stream`), {
592
+ this.blockStream = new EventDrivenL2BlockStream(this.l2BlockSource, this, this, createLogger(`${this.log.module}:l2-block-stream`), {
614
593
  batchSize,
615
594
  pollIntervalMS,
616
595
  startingBlock
@@ -622,8 +601,6 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
622
601
  * 'ready' will now return 'false' and the running promise that keeps the client synced is interrupted.
623
602
  */ async stop() {
624
603
  this.log.debug('Stopping p2p client...');
625
- await this.slotMonitor?.stop();
626
- this.log.debug('Stopped slot monitor');
627
604
  await tryStop(this.txCollection);
628
605
  this.log.debug('Stopped tx collection service');
629
606
  await this.txFileStore?.stop();
@@ -640,6 +617,10 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
640
617
  }
641
618
  /** Triggers a sync to the archiver. Used for testing. */ async sync() {
642
619
  this.initBlockStream();
620
+ // Should never happen: initBlockStream() creates blockStream if absent
621
+ if (!this.blockStream) {
622
+ throw new Error('Block stream not initialized');
623
+ }
643
624
  await this.blockStream.sync();
644
625
  }
645
626
  async broadcastProposal(proposal) {
@@ -666,36 +647,64 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
666
647
  // Store our own last-block proposal so we can respond to req/resp requests for it.
667
648
  await this.attestationPool.tryAddBlockProposal(blockProposal);
668
649
  }
650
+ const checkpointCore = proposal.toCore();
651
+ const { count } = await this.attestationPool.tryAddCheckpointProposal(checkpointCore);
652
+ if (count > 1) {
653
+ if (this.config.broadcastEquivocatedProposals) {
654
+ this.log.warn(`Broadcasting equivocated checkpoint proposal for slot ${proposal.slotNumber}`, {
655
+ slot: proposal.slotNumber,
656
+ archive: proposal.archive.toString(),
657
+ count
658
+ });
659
+ } else {
660
+ throw new Error(`Attempted to broadcast a duplicate checkpoint proposal for slot ${proposal.slotNumber}`);
661
+ }
662
+ }
669
663
  return this.p2pService.propagate(proposal);
670
664
  }
671
665
  async broadcastCheckpointAttestations(attestations) {
672
666
  this.log.verbose(`Broadcasting ${attestations.length} checkpoint attestations to peers`);
673
667
  await Promise.all(attestations.map((att)=>this.p2pService.propagate(att)));
674
668
  }
675
- async getCheckpointAttestationsForSlot(slot, proposalId) {
676
- return await (proposalId ? this.attestationPool.getCheckpointAttestationsForSlotAndProposal(slot, proposalId) : this.attestationPool.getCheckpointAttestationsForSlot(slot));
669
+ async getCheckpointAttestationsForSlot(slot, proposalPayloadHash) {
670
+ return await (proposalPayloadHash ? this.attestationPool.getCheckpointAttestationsForSlotAndProposal(slot, proposalPayloadHash) : this.attestationPool.getCheckpointAttestationsForSlot(slot));
677
671
  }
678
672
  addOwnCheckpointAttestations(attestations) {
679
673
  return this.attestationPool.addOwnCheckpointAttestations(attestations);
680
674
  }
675
+ getProposalsForSlot(slot) {
676
+ return this.attestationPool.getProposalsForSlot(slot);
677
+ }
681
678
  hasBlockProposalsForSlot(slot) {
682
679
  return this.attestationPool.hasBlockProposalsForSlot(slot);
683
680
  }
681
+ hasCheckpointProposalForSlot(slot) {
682
+ return this.attestationPool.hasCheckpointProposalForSlot(slot);
683
+ }
684
684
  // REVIEW: https://github.com/AztecProtocol/aztec-packages/issues/7963
685
685
  // ^ This pattern is not my favorite (md)
686
686
  registerBlockProposalHandler(handler) {
687
687
  this.p2pService.registerBlockReceivedCallback(handler);
688
688
  }
689
- registerCheckpointProposalHandler(handler) {
690
- this.p2pService.registerCheckpointReceivedCallback(handler);
689
+ registerValidatorCheckpointProposalHandler(handler) {
690
+ this.p2pService.registerValidatorCheckpointReceivedCallback(handler);
691
+ }
692
+ registerAllNodesCheckpointProposalHandler(handler) {
693
+ this.p2pService.registerAllNodesCheckpointReceivedCallback(handler);
691
694
  }
692
695
  registerDuplicateProposalCallback(callback) {
693
696
  this.p2pService.registerDuplicateProposalCallback(callback);
694
697
  }
698
+ registerOversizedProposalCallback(callback) {
699
+ this.p2pService.registerOversizedProposalCallback(callback);
700
+ }
695
701
  registerDuplicateAttestationCallback(callback) {
696
702
  this.p2pService.registerDuplicateAttestationCallback(callback);
697
703
  }
698
- async getPendingTxs(limit, after) {
704
+ registerCheckpointAttestationCallback(callback) {
705
+ this.p2pService.registerCheckpointAttestationCallback(callback);
706
+ }
707
+ async getPendingTxs(limit, after, options) {
699
708
  if (limit !== undefined && limit <= 0) {
700
709
  throw new TypeError('limit must be greater than 0');
701
710
  }
@@ -710,23 +719,30 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
710
719
  }
711
720
  const endIndex = limit !== undefined ? startIndex + limit : undefined;
712
721
  txHashes = txHashes.slice(startIndex, endIndex);
713
- const maybeTxs = await Promise.all(txHashes.map((txHash)=>this.txPool.getTxByHash(txHash)));
722
+ // This is a public-facing API (exposed via both the node and the p2p RPC), so proofs are opt-in.
723
+ const includeProof = !!options?.includeProof;
724
+ const maybeTxs = await Promise.all(txHashes.map((txHash)=>this.txPool.getTxByHash(txHash, {
725
+ includeProof
726
+ })));
714
727
  return maybeTxs.filter((tx)=>!!tx);
715
728
  }
716
729
  getPendingTxCount() {
717
730
  return this.txPool.getPendingTxCount();
718
731
  }
719
- async *iteratePendingTxs() {
732
+ hasEligiblePendingTxs(minCount) {
733
+ return this.txPool.hasEligiblePendingTxs(minCount);
734
+ }
735
+ async *iteratePendingTxs(opts) {
720
736
  for (const txHash of (await this.txPool.getPendingTxHashes())){
721
- const tx = await this.txPool.getTxByHash(txHash);
737
+ const tx = await this.txPool.getTxByHash(txHash, opts);
722
738
  if (tx) {
723
739
  yield tx;
724
740
  }
725
741
  }
726
742
  }
727
- async *iterateEligiblePendingTxs() {
743
+ async *iterateEligiblePendingTxs(opts) {
728
744
  for (const txHash of (await this.txPool.getEligiblePendingTxHashes())){
729
- const tx = await this.txPool.getTxByHash(txHash);
745
+ const tx = await this.txPool.getTxByHash(txHash, opts);
730
746
  if (tx) {
731
747
  yield tx;
732
748
  }
@@ -735,16 +751,18 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
735
751
  /**
736
752
  * Returns a transaction in the transaction pool by its hash.
737
753
  * @param txHash - Hash of the transaction to look for in the pool.
754
+ * @param opts - Set `includeProof: false` to skip loading the tx proof from the DB.
738
755
  * @returns A single tx or undefined.
739
- */ getTxByHashFromPool(txHash) {
740
- return this.txPool.getTxByHash(txHash);
756
+ */ getTxByHashFromPool(txHash, opts) {
757
+ return this.txPool.getTxByHash(txHash, opts);
741
758
  }
742
759
  /**
743
760
  * Returns transactions in the transaction pool by hash.
744
761
  * @param txHashes - Hashes of the transactions to look for.
762
+ * @param opts - Set `includeProof: false` to skip loading tx proofs from the DB.
745
763
  * @returns The txs found, in the same order as the requested hashes. If a tx is not found, it will be undefined.
746
- */ getTxsByHashFromPool(txHashes) {
747
- return this.txPool.getTxsByHash(txHashes);
764
+ */ getTxsByHashFromPool(txHashes, opts) {
765
+ return this.txPool.getTxsByHash(txHashes, opts);
748
766
  }
749
767
  hasTxsInPool(txHashes) {
750
768
  return this.txPool.hasTxs(txHashes);
@@ -832,7 +850,9 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
832
850
  * @returns Information about p2p client status: state & syncedToBlockNum.
833
851
  */ async getStatus() {
834
852
  const blockNumber = await this.getSyncedLatestBlockNum();
835
- const blockHash = blockNumber === 0 ? GENESIS_BLOCK_HEADER_HASH.toString() : await this.l2BlockSource.getBlockHeader(blockNumber).then((header)=>header?.hash()).then((hash)=>hash?.toString());
853
+ const blockHash = await this.l2BlockSource.getBlockData({
854
+ number: blockNumber
855
+ }).then((data)=>data?.header.hash()).then((hash)=>hash?.toString());
836
856
  return {
837
857
  state: this.currentState,
838
858
  syncedToL2Block: {
@@ -858,13 +878,17 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
858
878
  if (!blocks.length) {
859
879
  return;
860
880
  }
861
- await this.handleMinedBlocks(blocks);
862
- await this.maybeCallPrepareForSlot();
863
- await this.startCollectingMissingTxs(blocks);
864
881
  const lastBlock = blocks.at(-1);
865
- await this.synchedLatestSlot.set(BigInt(lastBlock.header.getSlot()));
882
+ const lastSlot = lastBlock.header.getSlot();
883
+ // Mark txs mined before releasing protections: a block landing at this slot supersedes any
884
+ // protection for txs it includes, so mined-marking must run first to keep just-landed txs from
885
+ // being unprotected into pending where they could be evicted before they are recorded as mined.
886
+ await this.handleMinedBlocks(blocks);
887
+ await this.maybeCallPrepareForSlot(lastSlot);
888
+ await this.collectingMissingTxs(blocks);
889
+ await this.synchedLatestSlot.set(BigInt(lastSlot));
866
890
  }
867
- /** Request txs for unproven blocks so the prover node has more chances to get them. */ async startCollectingMissingTxs(blocks) {
891
+ /** Request txs for unproven blocks so the prover node can prove. */ async collectingMissingTxs(blocks) {
868
892
  try {
869
893
  // TODO(#15435): If the archiver has lagged behind L1, the reported proven block number may
870
894
  // be much lower than the actual one, and it does not update until the pending chain is
@@ -872,7 +896,9 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
872
896
  // are already proven, but the archiver has not yet updated its state. Until this is properly
873
897
  // fixed, it is mitigated by the expiration date of collection requests, which depends on
874
898
  // the slot number of the block.
875
- const provenBlockNumber = await this.l2BlockSource.getProvenBlockNumber();
899
+ const provenBlockNumber = await this.l2BlockSource.getBlockNumber({
900
+ tag: 'proven'
901
+ }) ?? BlockNumber.ZERO;
876
902
  const unprovenBlocks = blocks.filter((block)=>block.number > provenBlockNumber);
877
903
  for (const block of unprovenBlocks){
878
904
  const txHashes = block.body.txEffects.map((txEffect)=>txEffect.txHash);
@@ -883,7 +909,19 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
883
909
  blockNumber: block.number,
884
910
  blockHash: await block.hash().then((h)=>h.toString())
885
911
  });
886
- this.txCollection.startCollecting(block, missingTxHashes);
912
+ // Both `slashDataWithholdingToleranceSlots` and `p2pMissingTxCollectionDeadlineSlots`
913
+ // count *full slots after the block slot* — value N means collection runs until
914
+ // `slotStart(block.slot + N + 1)`. Take the larger of the two so collection never
915
+ // gives up before the data-withholding slash verdict is rendered.
916
+ const blockSlot = block.header.getSlot();
917
+ const toleranceSlots = this.config.slashDataWithholdingToleranceSlots;
918
+ const configuredSlots = this.config.p2pMissingTxCollectionDeadlineSlots ?? 0;
919
+ const deadlineSlot = SlotNumber(blockSlot + Math.max(toleranceSlots, configuredSlots) + 1);
920
+ const deadlineSeconds = getTimestampForSlot(deadlineSlot, this.epochCache.getL1Constants());
921
+ const deadline = new Date(Number(deadlineSeconds) * 1000);
922
+ await this.txCollection.collectFastForBlock(block, missingTxHashes, {
923
+ deadline
924
+ });
887
925
  }
888
926
  }
889
927
  } catch (err) {
@@ -915,26 +953,35 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
915
953
  });
916
954
  }
917
955
  /**
918
- * Returns true if the prune crossed a checkpoint boundary.
919
- * If the old and new checkpoint numbers are the same, the prune is within a single checkpoint.
920
- * If they differ, the prune spans across checkpoints (epoch prune).
956
+ * Returns true if the prune is an epoch prune (new checkpoint number is less than old).
957
+ * If the checkpoint number stays the same or increases, the prune is within a checkpoint.
921
958
  */ async isEpochPrune(newCheckpoint) {
922
959
  const tips = await this.l2Tips.getL2Tips();
923
960
  const oldCheckpointNumber = tips.checkpointed.checkpoint.number;
924
- if (oldCheckpointNumber <= CheckpointNumber.ZERO) {
961
+ if (oldCheckpointNumber <= CheckpointNumber.INITIAL) {
925
962
  return false;
926
963
  }
927
- const isEpochPrune = oldCheckpointNumber !== newCheckpoint.number;
928
- this.log.info(`Detected epoch prune: ${isEpochPrune}. Old checkpoint: ${oldCheckpointNumber}, new checkpoint: ${newCheckpoint.number}`);
964
+ const newCheckpointNumber = newCheckpoint.number;
965
+ // We check that the new checkpoint number is less than the old checkpoint number in order to consider it an epoch prune.
966
+ // To be more certain that it is an epoch prune, we will check that at least 2 checkpoints were removed.
967
+ // This means we should avoid thinking checkpoints removed by L1 re-orgs are epoch prunes
968
+ const thresholdForEpochPrune = CheckpointNumber(oldCheckpointNumber - 2);
969
+ const isEpochPrune = newCheckpointNumber <= thresholdForEpochPrune;
970
+ if (isEpochPrune) {
971
+ this.log.info(`Detected epoch prune to ${newCheckpointNumber}`, {
972
+ oldCheckpointNumber,
973
+ newCheckpointNumber,
974
+ thresholdForEpochPrune
975
+ });
976
+ }
929
977
  return isEpochPrune;
930
978
  }
931
- /** Checks if the slot has changed and calls prepareForSlot if so. */ async maybeCallPrepareForSlot() {
932
- const { currentSlot } = this.epochCache.getCurrentAndNextSlot();
933
- if (currentSlot <= this.lastSlotProcessed) {
979
+ /** Calls prepareForSlot for the given slot if it advances past the last slot we prepared for. */ async maybeCallPrepareForSlot(slot) {
980
+ if (slot <= this.lastSlotProcessed) {
934
981
  return;
935
982
  }
936
- this.lastSlotProcessed = currentSlot;
937
- await this.txPool.prepareForSlot(currentSlot);
983
+ this.lastSlotProcessed = slot;
984
+ await this.txPool.prepareForSlot(slot);
938
985
  }
939
986
  async startServiceIfSynched() {
940
987
  if (this.currentState !== P2PClientState.SYNCHING) {