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

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 (605) 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 +13 -5
  5. package/dest/client/factory.d.ts +13 -12
  6. package/dest/client/factory.d.ts.map +1 -1
  7. package/dest/client/factory.js +65 -21
  8. package/dest/client/index.d.ts +1 -1
  9. package/dest/client/interface.d.ts +72 -35
  10. package/dest/client/interface.d.ts.map +1 -1
  11. package/dest/client/p2p_client.d.ts +59 -86
  12. package/dest/client/p2p_client.d.ts.map +1 -1
  13. package/dest/client/p2p_client.js +677 -339
  14. package/dest/config.d.ts +169 -87
  15. package/dest/config.d.ts.map +1 -1
  16. package/dest/config.js +176 -56
  17. package/dest/enr/generate-enr.d.ts +1 -1
  18. package/dest/enr/index.d.ts +1 -1
  19. package/dest/errors/attestation-pool.error.d.ts +7 -0
  20. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  21. package/dest/errors/attestation-pool.error.js +12 -0
  22. package/dest/errors/p2p-service.error.d.ts +9 -0
  23. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  24. package/dest/errors/p2p-service.error.js +10 -0
  25. package/dest/errors/reqresp.error.d.ts +1 -20
  26. package/dest/errors/reqresp.error.d.ts.map +1 -1
  27. package/dest/errors/reqresp.error.js +0 -21
  28. package/dest/errors/tx-pool.error.d.ts +8 -0
  29. package/dest/errors/tx-pool.error.d.ts.map +1 -0
  30. package/dest/errors/tx-pool.error.js +9 -0
  31. package/dest/index.d.ts +2 -2
  32. package/dest/index.d.ts.map +1 -1
  33. package/dest/index.js +1 -1
  34. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +154 -57
  35. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  36. package/dest/mem_pools/attestation_pool/attestation_pool.js +511 -3
  37. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
  38. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +651 -294
  40. package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
  41. package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
  42. package/dest/mem_pools/attestation_pool/index.js +1 -2
  43. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -10
  44. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  45. package/dest/mem_pools/attestation_pool/mocks.js +19 -13
  46. package/dest/mem_pools/index.d.ts +3 -3
  47. package/dest/mem_pools/index.d.ts.map +1 -1
  48. package/dest/mem_pools/index.js +1 -1
  49. package/dest/mem_pools/instrumentation.d.ts +11 -1
  50. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  51. package/dest/mem_pools/instrumentation.js +55 -10
  52. package/dest/mem_pools/interface.d.ts +6 -7
  53. package/dest/mem_pools/interface.d.ts.map +1 -1
  54. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
  55. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
  56. package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
  57. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +39 -0
  58. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
  59. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +97 -0
  60. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
  61. package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
  62. package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
  63. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
  64. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
  65. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
  66. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
  67. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  68. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
  69. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
  70. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
  71. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +97 -0
  72. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
  73. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
  74. package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
  75. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  76. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  77. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  78. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
  79. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
  80. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
  81. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
  82. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  83. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +65 -0
  84. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
  85. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  86. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +93 -0
  87. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
  88. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  89. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +78 -0
  90. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
  91. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
  92. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
  93. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
  94. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
  95. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
  96. package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
  97. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
  98. package/dest/mem_pools/tx_pool_v2/index.js +5 -0
  99. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +15 -0
  100. package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
  101. package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
  102. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +218 -0
  103. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
  104. package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -0
  105. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -0
  106. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
  107. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +223 -0
  108. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
  109. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
  110. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
  111. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +108 -0
  112. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
  113. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +337 -0
  114. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -0
  115. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
  116. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +167 -0
  117. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -0
  118. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
  119. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +914 -0
  120. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +14 -7
  121. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  122. package/dest/msg_validators/attestation_validator/attestation_validator.js +84 -26
  123. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +24 -0
  124. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  125. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +75 -0
  126. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  127. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  128. package/dest/msg_validators/attestation_validator/index.js +1 -0
  129. package/dest/msg_validators/clock_tolerance.d.ts +32 -0
  130. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  131. package/dest/msg_validators/clock_tolerance.js +90 -0
  132. package/dest/msg_validators/index.d.ts +2 -2
  133. package/dest/msg_validators/index.d.ts.map +1 -1
  134. package/dest/msg_validators/index.js +1 -1
  135. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  136. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  137. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +15 -0
  138. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  139. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +14 -0
  140. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +15 -0
  141. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  142. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +20 -0
  143. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  144. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  145. package/dest/msg_validators/proposal_validator/index.js +3 -0
  146. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +26 -0
  147. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  148. package/dest/msg_validators/proposal_validator/proposal_validator.js +150 -0
  149. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
  150. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  151. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +11 -18
  152. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  153. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  154. package/dest/msg_validators/tx_validator/allowed_public_setup.js +25 -21
  155. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  156. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  157. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  158. package/dest/msg_validators/tx_validator/archive_cache.d.ts +3 -3
  159. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  160. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +20 -6
  161. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  162. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -3
  163. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
  164. package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
  165. package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
  166. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  167. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  168. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  169. package/dest/msg_validators/tx_validator/data_validator.d.ts +4 -1
  170. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  171. package/dest/msg_validators/tx_validator/data_validator.js +40 -3
  172. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -4
  173. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  174. package/dest/msg_validators/tx_validator/double_spend_validator.js +7 -6
  175. package/dest/msg_validators/tx_validator/factory.d.ts +140 -6
  176. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  177. package/dest/msg_validators/tx_validator/factory.js +259 -58
  178. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  179. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  180. package/dest/msg_validators/tx_validator/fee_payer_balance.js +24 -0
  181. package/dest/msg_validators/tx_validator/gas_validator.d.ts +100 -3
  182. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  183. package/dest/msg_validators/tx_validator/gas_validator.js +146 -67
  184. package/dest/msg_validators/tx_validator/index.d.ts +6 -1
  185. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  186. package/dest/msg_validators/tx_validator/index.js +5 -0
  187. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +4 -3
  188. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  189. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -6
  190. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  191. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  192. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  193. package/dest/msg_validators/tx_validator/phases_validator.d.ts +24 -3
  194. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  195. package/dest/msg_validators/tx_validator/phases_validator.js +78 -28
  196. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  197. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  198. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  199. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  200. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  201. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +23 -5
  202. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -1
  203. package/dest/msg_validators/tx_validator/timestamp_validator.js +8 -8
  204. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +3 -2
  205. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  206. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +2 -2
  207. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +4 -2
  208. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  209. package/dest/msg_validators/tx_validator/tx_proof_validator.js +4 -2
  210. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
  211. package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
  212. package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
  213. package/dest/services/data_store.d.ts +1 -1
  214. package/dest/services/data_store.d.ts.map +1 -1
  215. package/dest/services/data_store.js +14 -10
  216. package/dest/services/discv5/discV5_service.d.ts +2 -1
  217. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  218. package/dest/services/discv5/discV5_service.js +36 -9
  219. package/dest/services/dummy_service.d.ts +36 -16
  220. package/dest/services/dummy_service.d.ts.map +1 -1
  221. package/dest/services/dummy_service.js +58 -14
  222. package/dest/services/encoding.d.ts +7 -3
  223. package/dest/services/encoding.d.ts.map +1 -1
  224. package/dest/services/encoding.js +23 -15
  225. package/dest/services/gossipsub/index.d.ts +3 -0
  226. package/dest/services/gossipsub/index.d.ts.map +1 -0
  227. package/dest/services/gossipsub/index.js +2 -0
  228. package/dest/services/gossipsub/scoring.d.ts +21 -3
  229. package/dest/services/gossipsub/scoring.d.ts.map +1 -1
  230. package/dest/services/gossipsub/scoring.js +24 -7
  231. package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
  232. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
  233. package/dest/services/gossipsub/topic_score_params.js +363 -0
  234. package/dest/services/index.d.ts +2 -1
  235. package/dest/services/index.d.ts.map +1 -1
  236. package/dest/services/index.js +1 -0
  237. package/dest/services/libp2p/instrumentation.d.ts +5 -1
  238. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  239. package/dest/services/libp2p/instrumentation.js +49 -70
  240. package/dest/services/libp2p/libp2p_service.d.ts +118 -109
  241. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  242. package/dest/services/libp2p/libp2p_service.js +1286 -430
  243. package/dest/services/peer-manager/interface.d.ts +1 -1
  244. package/dest/services/peer-manager/metrics.d.ts +11 -2
  245. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  246. package/dest/services/peer-manager/metrics.js +45 -16
  247. package/dest/services/peer-manager/peer_manager.d.ts +7 -34
  248. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  249. package/dest/services/peer-manager/peer_manager.js +46 -23
  250. package/dest/services/peer-manager/peer_scoring.d.ts +12 -2
  251. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  252. package/dest/services/peer-manager/peer_scoring.js +99 -13
  253. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +44 -0
  254. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  255. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +534 -0
  256. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  257. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  258. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  259. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  260. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  261. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  262. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
  263. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  264. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
  265. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
  266. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  267. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
  268. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +11 -0
  269. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  270. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +7 -0
  271. package/dest/services/reqresp/config.d.ts +3 -3
  272. package/dest/services/reqresp/config.d.ts.map +1 -1
  273. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +2 -4
  274. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  275. package/dest/services/reqresp/connection-sampler/connection_sampler.js +12 -0
  276. package/dest/services/reqresp/constants.d.ts +12 -0
  277. package/dest/services/reqresp/constants.d.ts.map +1 -0
  278. package/dest/services/reqresp/constants.js +7 -0
  279. package/dest/services/reqresp/index.d.ts +1 -1
  280. package/dest/services/reqresp/interface.d.ts +27 -18
  281. package/dest/services/reqresp/interface.d.ts.map +1 -1
  282. package/dest/services/reqresp/interface.js +23 -19
  283. package/dest/services/reqresp/metrics.d.ts +6 -5
  284. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  285. package/dest/services/reqresp/metrics.js +16 -21
  286. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  287. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  288. package/dest/services/reqresp/protocols/auth.js +2 -2
  289. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +8 -3
  290. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  291. package/dest/services/reqresp/protocols/block_txs/bitvector.js +15 -2
  292. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +7 -5
  293. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  294. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +35 -14
  295. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +37 -11
  296. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  297. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +85 -21
  298. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  299. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  300. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  301. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  302. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  303. package/dest/services/reqresp/protocols/index.js +0 -1
  304. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  305. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  306. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  307. package/dest/services/reqresp/protocols/status.js +7 -3
  308. package/dest/services/reqresp/protocols/tx.d.ts +8 -3
  309. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  310. package/dest/services/reqresp/protocols/tx.js +21 -3
  311. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  312. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +6 -5
  313. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  314. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
  315. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  316. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  317. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  318. package/dest/services/reqresp/reqresp.d.ts +12 -69
  319. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  320. package/dest/services/reqresp/reqresp.js +448 -199
  321. package/dest/services/reqresp/status.d.ts +2 -2
  322. package/dest/services/reqresp/status.d.ts.map +1 -1
  323. package/dest/services/service.d.ts +62 -13
  324. package/dest/services/service.d.ts.map +1 -1
  325. package/dest/services/tx_collection/config.d.ts +11 -11
  326. package/dest/services/tx_collection/config.d.ts.map +1 -1
  327. package/dest/services/tx_collection/config.js +28 -27
  328. package/dest/services/tx_collection/file_store_tx_collection.d.ts +37 -0
  329. package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
  330. package/dest/services/tx_collection/file_store_tx_collection.js +127 -0
  331. package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
  332. package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
  333. package/dest/services/tx_collection/file_store_tx_source.js +100 -0
  334. package/dest/services/tx_collection/index.d.ts +3 -2
  335. package/dest/services/tx_collection/index.d.ts.map +1 -1
  336. package/dest/services/tx_collection/index.js +1 -0
  337. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  338. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  339. package/dest/services/tx_collection/instrumentation.js +9 -13
  340. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  341. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  342. package/dest/services/tx_collection/request_tracker.js +84 -0
  343. package/dest/services/tx_collection/tx_collection.d.ts +51 -57
  344. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  345. package/dest/services/tx_collection/tx_collection.js +298 -70
  346. package/dest/services/tx_collection/tx_collection_sink.d.ts +20 -10
  347. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  348. package/dest/services/tx_collection/tx_collection_sink.js +28 -31
  349. package/dest/services/tx_collection/tx_source.d.ts +13 -7
  350. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  351. package/dest/services/tx_collection/tx_source.js +26 -7
  352. package/dest/services/tx_file_store/config.d.ts +16 -0
  353. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  354. package/dest/services/tx_file_store/config.js +22 -0
  355. package/dest/services/tx_file_store/index.d.ts +4 -0
  356. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  357. package/dest/services/tx_file_store/index.js +3 -0
  358. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  359. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  360. package/dest/services/tx_file_store/instrumentation.js +29 -0
  361. package/dest/services/tx_file_store/tx_file_store.d.ts +46 -0
  362. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  363. package/dest/services/tx_file_store/tx_file_store.js +142 -0
  364. package/dest/services/tx_provider.d.ts +9 -5
  365. package/dest/services/tx_provider.d.ts.map +1 -1
  366. package/dest/services/tx_provider.js +23 -10
  367. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  368. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  369. package/dest/services/tx_provider_instrumentation.js +14 -14
  370. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  371. package/dest/test-helpers/get-ports.d.ts +1 -1
  372. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  373. package/dest/test-helpers/index.d.ts +3 -1
  374. package/dest/test-helpers/index.d.ts.map +1 -1
  375. package/dest/test-helpers/index.js +2 -0
  376. package/dest/test-helpers/make-enrs.d.ts +1 -1
  377. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -8
  378. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  379. package/dest/test-helpers/make-test-p2p-clients.js +5 -3
  380. package/dest/test-helpers/mock-pubsub.d.ts +48 -8
  381. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  382. package/dest/test-helpers/mock-pubsub.js +115 -14
  383. package/dest/test-helpers/mock-tx-helpers.d.ts +2 -2
  384. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -1
  385. package/dest/test-helpers/mock-tx-helpers.js +1 -1
  386. package/dest/test-helpers/reqresp-nodes.d.ts +5 -7
  387. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  388. package/dest/test-helpers/reqresp-nodes.js +19 -20
  389. package/dest/test-helpers/test_tx_provider.d.ts +42 -0
  390. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  391. package/dest/test-helpers/test_tx_provider.js +44 -0
  392. package/dest/test-helpers/testbench-utils.d.ts +161 -0
  393. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  394. package/dest/test-helpers/testbench-utils.js +391 -0
  395. package/dest/testbench/p2p_client_testbench_worker.d.ts +26 -2
  396. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  397. package/dest/testbench/p2p_client_testbench_worker.js +275 -131
  398. package/dest/testbench/parse_log_file.d.ts +1 -1
  399. package/dest/testbench/testbench.d.ts +1 -1
  400. package/dest/testbench/worker_client_manager.d.ts +57 -6
  401. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  402. package/dest/testbench/worker_client_manager.js +277 -44
  403. package/dest/types/index.d.ts +1 -1
  404. package/dest/util.d.ts +14 -8
  405. package/dest/util.d.ts.map +1 -1
  406. package/dest/util.js +41 -11
  407. package/dest/versioning.d.ts +3 -6
  408. package/dest/versioning.d.ts.map +1 -1
  409. package/dest/versioning.js +3 -24
  410. package/package.json +20 -18
  411. package/src/bootstrap/bootstrap.ts +16 -5
  412. package/src/client/factory.ts +137 -46
  413. package/src/client/interface.ts +87 -43
  414. package/src/client/p2p_client.ts +352 -418
  415. package/src/client/test/p2p_client.batch_tx_requester.bench.README.md +197 -0
  416. package/src/config.ts +302 -65
  417. package/src/errors/attestation-pool.error.ts +13 -0
  418. package/src/errors/p2p-service.error.ts +11 -0
  419. package/src/errors/reqresp.error.ts +0 -25
  420. package/src/errors/tx-pool.error.ts +12 -0
  421. package/src/index.ts +1 -1
  422. package/src/mem_pools/attestation_pool/attestation_pool.ts +588 -56
  423. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +760 -319
  424. package/src/mem_pools/attestation_pool/index.ts +9 -2
  425. package/src/mem_pools/attestation_pool/mocks.ts +29 -17
  426. package/src/mem_pools/index.ts +2 -2
  427. package/src/mem_pools/instrumentation.ts +56 -10
  428. package/src/mem_pools/interface.ts +5 -7
  429. package/src/mem_pools/tx_pool_v2/README.md +283 -0
  430. package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
  431. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +112 -0
  432. package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
  433. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
  434. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +122 -0
  435. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -0
  436. package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
  437. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  438. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
  439. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +74 -0
  440. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
  441. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -0
  442. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
  443. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
  444. package/src/mem_pools/tx_pool_v2/index.ts +12 -0
  445. package/src/mem_pools/tx_pool_v2/instrumentation.ts +69 -0
  446. package/src/mem_pools/tx_pool_v2/interfaces.ts +250 -0
  447. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
  448. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
  449. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +430 -0
  450. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
  451. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1090 -0
  452. package/src/msg_validators/attestation_validator/README.md +49 -0
  453. package/src/msg_validators/attestation_validator/attestation_validator.ts +78 -33
  454. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +101 -0
  455. package/src/msg_validators/attestation_validator/index.ts +1 -0
  456. package/src/msg_validators/clock_tolerance.ts +121 -0
  457. package/src/msg_validators/index.ts +1 -1
  458. package/src/msg_validators/proposal_validator/README.md +123 -0
  459. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +30 -0
  460. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +41 -0
  461. package/src/msg_validators/proposal_validator/index.ts +3 -0
  462. package/src/msg_validators/proposal_validator/proposal_validator.ts +159 -0
  463. package/src/msg_validators/tx_validator/README.md +127 -0
  464. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +8 -17
  465. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  466. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  467. package/src/msg_validators/tx_validator/archive_cache.ts +2 -2
  468. package/src/msg_validators/tx_validator/block_header_validator.ts +21 -8
  469. package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
  470. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  471. package/src/msg_validators/tx_validator/data_validator.ts +62 -7
  472. package/src/msg_validators/tx_validator/double_spend_validator.ts +15 -9
  473. package/src/msg_validators/tx_validator/factory.ts +427 -58
  474. package/src/msg_validators/tx_validator/fee_payer_balance.ts +44 -0
  475. package/src/msg_validators/tx_validator/gas_validator.ts +211 -77
  476. package/src/msg_validators/tx_validator/index.ts +5 -0
  477. package/src/msg_validators/tx_validator/metadata_validator.ts +31 -12
  478. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  479. package/src/msg_validators/tx_validator/phases_validator.ts +90 -31
  480. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  481. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  482. package/src/msg_validators/tx_validator/timestamp_validator.ts +30 -19
  483. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +8 -3
  484. package/src/msg_validators/tx_validator/tx_proof_validator.ts +10 -3
  485. package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
  486. package/src/services/data_store.ts +14 -19
  487. package/src/services/discv5/discV5_service.ts +39 -6
  488. package/src/services/dummy_service.ts +76 -38
  489. package/src/services/encoding.ts +22 -13
  490. package/src/services/gossipsub/README.md +641 -0
  491. package/src/services/gossipsub/index.ts +2 -0
  492. package/src/services/gossipsub/scoring.ts +29 -5
  493. package/src/services/gossipsub/topic_score_params.ts +519 -0
  494. package/src/services/index.ts +1 -0
  495. package/src/services/libp2p/instrumentation.ts +54 -72
  496. package/src/services/libp2p/libp2p_service.ts +1032 -480
  497. package/src/services/peer-manager/metrics.ts +51 -16
  498. package/src/services/peer-manager/peer_manager.ts +53 -15
  499. package/src/services/peer-manager/peer_scoring.ts +96 -7
  500. package/src/services/reqresp/README.md +215 -0
  501. package/src/services/reqresp/batch-tx-requester/README.md +344 -0
  502. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +660 -0
  503. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  504. package/src/services/reqresp/batch-tx-requester/interface.ts +61 -0
  505. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
  506. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
  507. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +24 -0
  508. package/src/services/reqresp/config.ts +2 -2
  509. package/src/services/reqresp/connection-sampler/connection_sampler.ts +19 -1
  510. package/src/services/reqresp/constants.ts +14 -0
  511. package/src/services/reqresp/interface.ts +48 -46
  512. package/src/services/reqresp/metrics.ts +35 -27
  513. package/src/services/reqresp/protocols/auth.ts +2 -2
  514. package/src/services/reqresp/protocols/block_txs/bitvector.ts +19 -2
  515. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +44 -17
  516. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +109 -17
  517. package/src/services/reqresp/protocols/index.ts +0 -1
  518. package/src/services/reqresp/protocols/status.ts +16 -12
  519. package/src/services/reqresp/protocols/tx.ts +24 -5
  520. package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
  521. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  522. package/src/services/reqresp/reqresp.ts +68 -224
  523. package/src/services/service.ts +83 -31
  524. package/src/services/tx_collection/config.ts +42 -37
  525. package/src/services/tx_collection/file_store_tx_collection.ts +153 -0
  526. package/src/services/tx_collection/file_store_tx_source.ts +129 -0
  527. package/src/services/tx_collection/index.ts +2 -1
  528. package/src/services/tx_collection/instrumentation.ts +5 -13
  529. package/src/services/tx_collection/request_tracker.ts +127 -0
  530. package/src/services/tx_collection/tx_collection.ts +368 -115
  531. package/src/services/tx_collection/tx_collection_sink.ts +32 -36
  532. package/src/services/tx_collection/tx_source.ts +28 -8
  533. package/src/services/tx_file_store/config.ts +37 -0
  534. package/src/services/tx_file_store/index.ts +3 -0
  535. package/src/services/tx_file_store/instrumentation.ts +36 -0
  536. package/src/services/tx_file_store/tx_file_store.ts +163 -0
  537. package/src/services/tx_provider.ts +34 -12
  538. package/src/services/tx_provider_instrumentation.ts +24 -14
  539. package/src/test-helpers/index.ts +2 -0
  540. package/src/test-helpers/make-test-p2p-clients.ts +7 -6
  541. package/src/test-helpers/mock-pubsub.ts +138 -15
  542. package/src/test-helpers/mock-tx-helpers.ts +1 -1
  543. package/src/test-helpers/reqresp-nodes.ts +18 -30
  544. package/src/test-helpers/test_tx_provider.ts +69 -0
  545. package/src/test-helpers/testbench-utils.ts +453 -0
  546. package/src/testbench/p2p_client_testbench_worker.ts +387 -128
  547. package/src/testbench/worker_client_manager.ts +355 -46
  548. package/src/util.ts +47 -16
  549. package/src/versioning.ts +3 -33
  550. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -30
  551. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  552. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -190
  553. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -25
  554. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  555. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -197
  556. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -150
  557. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  558. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -617
  559. package/dest/mem_pools/tx_pool/index.d.ts +0 -4
  560. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  561. package/dest/mem_pools/tx_pool/index.js +0 -3
  562. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -80
  563. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  564. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -238
  565. package/dest/mem_pools/tx_pool/priority.d.ts +0 -8
  566. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  567. package/dest/mem_pools/tx_pool/priority.js +0 -10
  568. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -122
  569. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  570. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  571. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  572. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  573. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -394
  574. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -12
  575. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  576. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -70
  577. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  578. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  579. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  580. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -45
  581. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  582. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -92
  583. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  584. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  585. package/dest/services/reqresp/protocols/block.js +0 -31
  586. package/dest/services/tx_collection/fast_tx_collection.d.ts +0 -56
  587. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +0 -1
  588. package/dest/services/tx_collection/fast_tx_collection.js +0 -300
  589. package/dest/services/tx_collection/slow_tx_collection.d.ts +0 -54
  590. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +0 -1
  591. package/dest/services/tx_collection/slow_tx_collection.js +0 -176
  592. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -256
  593. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -253
  594. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -750
  595. package/src/mem_pools/tx_pool/index.ts +0 -3
  596. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -283
  597. package/src/mem_pools/tx_pool/priority.ts +0 -13
  598. package/src/mem_pools/tx_pool/tx_pool.ts +0 -135
  599. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -313
  600. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -81
  601. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
  602. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -100
  603. package/src/services/reqresp/protocols/block.ts +0 -36
  604. package/src/services/tx_collection/fast_tx_collection.ts +0 -340
  605. package/src/services/tx_collection/slow_tx_collection.ts +0 -232
package/src/versioning.ts CHANGED
@@ -1,33 +1,21 @@
1
- import { toBufferBE } from '@aztec/foundation/bigint-buffer';
2
1
  import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
3
2
  import { protocolContractsHash } from '@aztec/protocol-contracts';
4
3
  import type { ChainConfig } from '@aztec/stdlib/config';
5
- import {
6
- type ComponentsVersions,
7
- checkCompressedComponentVersion,
8
- compressComponentVersions,
9
- getComponentsVersionsFromConfig,
10
- } from '@aztec/stdlib/versioning';
4
+ import { compressComponentVersions, getComponentsVersionsFromConfig } from '@aztec/stdlib/versioning';
11
5
 
12
6
  import type { SignableENR } from '@nethermindeth/enr';
13
- import xxhashFactory from 'xxhash-wasm';
14
7
 
15
8
  import { AZTEC_ENR_CLIENT_VERSION_KEY, AZTEC_ENR_KEY } from './types/index.js';
16
9
 
17
- const USE_XX_HASH = false; // Enable to reduce the size of the ENR record for production
18
- const XX_HASH_LEN = 8;
19
- const xxhash = await xxhashFactory();
20
-
21
10
  /** Returns the component versions based on config and this build. */
22
11
  export function getVersions(config: ChainConfig) {
23
12
  return getComponentsVersionsFromConfig(config, protocolContractsHash, getVKTreeRoot());
24
13
  }
25
14
 
26
15
  /** Sets the aztec key on the ENR record with versioning info. */
27
- export function setAztecEnrKey(enr: SignableENR, config: ChainConfig, useXxHash = USE_XX_HASH) {
16
+ export function setAztecEnrKey(enr: SignableENR, config: ChainConfig) {
28
17
  const versions = getVersions(config);
29
- const value = versionsToEnrValue(versions, useXxHash);
30
- enr.set(AZTEC_ENR_KEY, value);
18
+ enr.set(AZTEC_ENR_KEY, Buffer.from(compressComponentVersions(versions)));
31
19
  return versions;
32
20
  }
33
21
 
@@ -37,21 +25,3 @@ export function setAztecClientVersionEnrKey(enr: SignableENR, clientVersion: str
37
25
  enr.set(AZTEC_ENR_CLIENT_VERSION_KEY, Buffer.from(clientVersion));
38
26
  }
39
27
  }
40
-
41
- /** Checks the given value from an ENR record against the expected versions. */
42
- export function checkAztecEnrVersion(enrValue: Buffer, expectedVersions: ComponentsVersions) {
43
- if (enrValue.length === XX_HASH_LEN) {
44
- const expected = versionsToEnrValue(expectedVersions, true);
45
- if (!Buffer.from(enrValue).equals(expected)) {
46
- throw new Error(`Expected ENR version ${expected.toString('hex')} but received ${enrValue.toString('hex')}`);
47
- }
48
- } else {
49
- const actual = Buffer.from(enrValue).toString();
50
- checkCompressedComponentVersion(actual, expectedVersions);
51
- }
52
- }
53
-
54
- function versionsToEnrValue(versions: ComponentsVersions, useXxHash: boolean) {
55
- const compressed = compressComponentVersions(versions);
56
- return useXxHash ? toBufferBE(xxhash.h64(compressed), XX_HASH_LEN) : Buffer.from(compressed);
57
- }
@@ -1,30 +0,0 @@
1
- import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
- import { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
3
- import { type TelemetryClient } from '@aztec/telemetry-client';
4
- import type { AttestationPool } from './attestation_pool.js';
5
- export declare class KvAttestationPool implements AttestationPool {
6
- private store;
7
- private log;
8
- private metrics;
9
- private attestations;
10
- private proposals;
11
- private proposalsForSlot;
12
- private attestationsForProposal;
13
- constructor(store: AztecAsyncKVStore, telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
14
- private poolStats;
15
- isEmpty(): Promise<boolean>;
16
- private getProposalKey;
17
- private getAttestationKey;
18
- addAttestations(attestations: BlockAttestation[]): Promise<void>;
19
- getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]>;
20
- getAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
21
- deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void>;
22
- deleteAttestationsForSlot(slot: bigint): Promise<void>;
23
- deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
24
- deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
25
- hasAttestation(attestation: BlockAttestation): Promise<boolean>;
26
- getBlockProposal(id: string): Promise<BlockProposal | undefined>;
27
- hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
28
- addBlockProposal(blockProposal: BlockProposal): Promise<void>;
29
- }
30
- //# sourceMappingURL=kv_attestation_pool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kv_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/kv_attestation_pool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAqC,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,iBAAkB,YAAW,eAAe;IAYrD,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,GAAG;IAbb,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,SAAS,CAGf;IACF,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,uBAAuB,CAAqC;gBAG1D,KAAK,EAAE,iBAAiB,EAChC,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAyC;IAUtD,OAAO,CAAC,SAAS,CAIf;IAEW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAOxC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAIZ,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqChE,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAYjE,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsBhG,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9D,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBtD,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrF,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnE,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB/D,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAahE,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxE,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAM3E"}
@@ -1,190 +0,0 @@
1
- import { Fr } from '@aztec/foundation/fields';
2
- import { toArray } from '@aztec/foundation/iterable';
3
- import { createLogger } from '@aztec/foundation/log';
4
- import { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
5
- import { getTelemetryClient } from '@aztec/telemetry-client';
6
- import { PoolInstrumentation, PoolName } from '../instrumentation.js';
7
- export class KvAttestationPool {
8
- store;
9
- log;
10
- metrics;
11
- attestations;
12
- proposals;
13
- proposalsForSlot;
14
- attestationsForProposal;
15
- constructor(store, telemetry = getTelemetryClient(), log = createLogger('aztec:attestation_pool')){
16
- this.store = store;
17
- this.log = log;
18
- this.poolStats = async ()=>{
19
- return {
20
- itemCount: await this.attestations.sizeAsync()
21
- };
22
- };
23
- this.attestations = store.openMap('attestations');
24
- this.proposals = store.openMap('proposals');
25
- this.proposalsForSlot = store.openMultiMap('proposals_for_slot');
26
- this.attestationsForProposal = store.openMultiMap('attestations_for_proposal');
27
- this.metrics = new PoolInstrumentation(telemetry, PoolName.ATTESTATION_POOL, this.poolStats);
28
- }
29
- poolStats;
30
- async isEmpty() {
31
- for await (const _ of this.attestations.entriesAsync()){
32
- return false;
33
- }
34
- return true;
35
- }
36
- getProposalKey(slot, proposalId) {
37
- const slotStr = typeof slot === 'string' ? slot : new Fr(slot).toString();
38
- const proposalIdStr = typeof proposalId === 'string' ? proposalId : Buffer.isBuffer(proposalId) ? Fr.fromBuffer(proposalId).toString() : proposalId.toString();
39
- return `${slotStr}-${proposalIdStr}`;
40
- }
41
- getAttestationKey(slot, proposalId, address) {
42
- return `${this.getProposalKey(slot, proposalId)}-${address}`;
43
- }
44
- async addAttestations(attestations) {
45
- await this.store.transactionAsync(async ()=>{
46
- for (const attestation of attestations){
47
- const slotNumber = attestation.payload.header.slotNumber;
48
- const proposalId = attestation.archive;
49
- const sender = attestation.getSender();
50
- // Skip attestations with invalid signatures
51
- if (!sender) {
52
- this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber.toBigInt()}`, {
53
- signature: attestation.signature.toString(),
54
- slotNumber,
55
- proposalId
56
- });
57
- continue;
58
- }
59
- const address = sender.toString();
60
- await this.attestations.set(this.getAttestationKey(slotNumber, proposalId, address), attestation.toBuffer());
61
- await this.proposalsForSlot.set(slotNumber.toString(), proposalId.toString());
62
- await this.attestationsForProposal.set(this.getProposalKey(slotNumber, proposalId), this.getAttestationKey(slotNumber, proposalId, address));
63
- this.log.verbose(`Added attestation for slot ${slotNumber.toBigInt()} from ${address}`, {
64
- signature: attestation.signature.toString(),
65
- slotNumber,
66
- address,
67
- proposalId
68
- });
69
- }
70
- });
71
- }
72
- async getAttestationsForSlot(slot) {
73
- const slotFr = new Fr(slot);
74
- const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
75
- const attestations = [];
76
- for (const proposalId of proposalIds){
77
- attestations.push(...await this.getAttestationsForSlotAndProposal(slot, proposalId));
78
- }
79
- return attestations;
80
- }
81
- async getAttestationsForSlotAndProposal(slot, proposalId) {
82
- const attestationIds = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)));
83
- const attestations = [];
84
- // alternatively iterate this.attestaions starting from slot-proposal-EthAddress.zero
85
- for (const id of attestationIds){
86
- const buf = await this.attestations.getAsync(id);
87
- if (!buf) {
88
- // this should not happen unless we lost writes
89
- throw new Error('Attestation not found ' + id);
90
- }
91
- const attestation = BlockAttestation.fromBuffer(buf);
92
- attestations.push(attestation);
93
- }
94
- return attestations;
95
- }
96
- async deleteAttestationsOlderThan(oldestSlot) {
97
- const olderThan = await toArray(this.proposalsForSlot.keysAsync({
98
- end: new Fr(oldestSlot).toString()
99
- }));
100
- for (const oldSlot of olderThan){
101
- await this.deleteAttestationsForSlot(BigInt(oldSlot));
102
- }
103
- }
104
- async deleteAttestationsForSlot(slot) {
105
- const slotFr = new Fr(slot);
106
- let numberOfAttestations = 0;
107
- await this.store.transactionAsync(async ()=>{
108
- const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
109
- for (const proposalId of proposalIds){
110
- const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slotFr, proposalId)));
111
- numberOfAttestations += attestations.length;
112
- for (const attestation of attestations){
113
- await this.attestations.delete(attestation);
114
- }
115
- await this.proposals.delete(proposalId);
116
- await this.attestationsForProposal.delete(this.getProposalKey(slotFr, proposalId));
117
- }
118
- this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot}`);
119
- });
120
- }
121
- async deleteAttestationsForSlotAndProposal(slot, proposalId) {
122
- let numberOfAttestations = 0;
123
- await this.store.transactionAsync(async ()=>{
124
- const slotString = new Fr(slot).toString();
125
- const attestations = await toArray(this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)));
126
- numberOfAttestations += attestations.length;
127
- for (const attestation of attestations){
128
- await this.attestations.delete(attestation);
129
- }
130
- await this.proposals.delete(proposalId);
131
- await this.proposalsForSlot.deleteValue(slotString, proposalId);
132
- await this.attestationsForProposal.delete(this.getProposalKey(slotString, proposalId));
133
- this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot} and proposal ${proposalId}`);
134
- });
135
- }
136
- async deleteAttestations(attestations) {
137
- await this.store.transactionAsync(async ()=>{
138
- for (const attestation of attestations){
139
- const slotNumber = attestation.payload.header.slotNumber;
140
- const proposalId = attestation.archive;
141
- const sender = attestation.getSender();
142
- // Skip attestations with invalid signatures
143
- if (!sender) {
144
- this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber.toBigInt()}`);
145
- continue;
146
- }
147
- const address = sender.toString();
148
- const key = this.getAttestationKey(slotNumber, proposalId, address);
149
- if (await this.attestations.hasAsync(key)) {
150
- await this.attestations.delete(key);
151
- }
152
- await this.attestationsForProposal.deleteValue(this.getProposalKey(slotNumber, proposalId), this.getAttestationKey(slotNumber, proposalId, address));
153
- this.log.debug(`Deleted attestation for slot ${slotNumber} from ${address}`);
154
- }
155
- });
156
- }
157
- async hasAttestation(attestation) {
158
- const slotNumber = attestation.payload.header.slotNumber;
159
- const proposalId = attestation.archive;
160
- const sender = attestation.getSender();
161
- // Attestations with invalid signatures are never in the pool
162
- if (!sender) {
163
- return false;
164
- }
165
- const address = sender.toString();
166
- const key = this.getAttestationKey(slotNumber, proposalId, address);
167
- return await this.attestations.hasAsync(key);
168
- }
169
- async getBlockProposal(id) {
170
- const buffer = await this.proposals.getAsync(id);
171
- try {
172
- if (buffer && buffer.length > 0) {
173
- return BlockProposal.fromBuffer(buffer);
174
- }
175
- } catch {
176
- return Promise.resolve(undefined);
177
- }
178
- return Promise.resolve(undefined);
179
- }
180
- async hasBlockProposal(idOrProposal) {
181
- const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.payload.archive.toString();
182
- return await this.proposals.hasAsync(id);
183
- }
184
- async addBlockProposal(blockProposal) {
185
- await this.store.transactionAsync(async ()=>{
186
- await this.proposalsForSlot.set(blockProposal.slotNumber.toString(), blockProposal.archive.toString());
187
- await this.proposals.set(blockProposal.payload.archive.toString(), blockProposal.toBuffer());
188
- });
189
- }
190
- }
@@ -1,25 +0,0 @@
1
- import type { BlockAttestation, BlockProposal } from '@aztec/stdlib/p2p';
2
- import { type TelemetryClient } from '@aztec/telemetry-client';
3
- import type { AttestationPool } from './attestation_pool.js';
4
- export declare class InMemoryAttestationPool implements AttestationPool {
5
- #private;
6
- private log;
7
- private metrics;
8
- private attestations;
9
- private proposals;
10
- constructor(telemetry?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
11
- private poolStats;
12
- isEmpty(): Promise<boolean>;
13
- getAttestationsForSlot(slot: bigint): Promise<BlockAttestation[]>;
14
- getAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<BlockAttestation[]>;
15
- addAttestations(attestations: BlockAttestation[]): Promise<void>;
16
- deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void>;
17
- deleteAttestationsForSlot(slot: bigint): Promise<void>;
18
- deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void>;
19
- deleteAttestations(attestations: BlockAttestation[]): Promise<void>;
20
- hasAttestation(attestation: BlockAttestation): Promise<boolean>;
21
- addBlockProposal(blockProposal: BlockProposal): Promise<void>;
22
- getBlockProposal(id: string): Promise<BlockProposal | undefined>;
23
- hasBlockProposal(idOrProposal: string | BlockProposal): Promise<boolean>;
24
- }
25
- //# sourceMappingURL=memory_attestation_pool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory_attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/memory_attestation_pool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGnF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,uBAAwB,YAAW,eAAe;;IAQ3D,OAAO,CAAC,GAAG;IAPb,OAAO,CAAC,OAAO,CAAwC;IAEvD,OAAO,CAAC,YAAY,CAAgG;IACpH,OAAO,CAAC,SAAS,CAA6B;gBAG5C,SAAS,GAAE,eAAsC,EACzC,GAAG,yCAAuC;IAOpD,OAAO,CAAC,SAAS,CAIf;IAEK,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQjE,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAWhG,eAAe,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C1D,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBpE,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBtD,oCAAoC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrF,kBAAkB,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBnE,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB/D,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7D,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAIhE,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CAIhF"}
@@ -1,197 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { getTelemetryClient } from '@aztec/telemetry-client';
3
- import { PoolInstrumentation, PoolName } from '../instrumentation.js';
4
- export class InMemoryAttestationPool {
5
- log;
6
- metrics;
7
- attestations;
8
- proposals;
9
- constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:attestation_pool')){
10
- this.log = log;
11
- this.poolStats = ()=>{
12
- return Promise.resolve({
13
- itemCount: this.attestations.size
14
- });
15
- };
16
- this.attestations = new Map();
17
- this.proposals = new Map();
18
- this.metrics = new PoolInstrumentation(telemetry, PoolName.ATTESTATION_POOL, this.poolStats);
19
- }
20
- poolStats;
21
- isEmpty() {
22
- return Promise.resolve(this.attestations.size === 0);
23
- }
24
- getAttestationsForSlot(slot) {
25
- return Promise.resolve(Array.from(this.attestations.get(slot)?.values() ?? []).flatMap((proposalAttestationMap)=>Array.from(proposalAttestationMap.values())));
26
- }
27
- getAttestationsForSlotAndProposal(slot, proposalId) {
28
- const slotAttestationMap = this.attestations.get(slot);
29
- if (slotAttestationMap) {
30
- const proposalAttestationMap = slotAttestationMap.get(proposalId);
31
- if (proposalAttestationMap) {
32
- return Promise.resolve(Array.from(proposalAttestationMap.values()));
33
- }
34
- }
35
- return Promise.resolve([]);
36
- }
37
- addAttestations(attestations) {
38
- for (const attestation of attestations){
39
- // Perf: order and group by slot before insertion
40
- const slotNumber = attestation.payload.header.slotNumber;
41
- const proposalId = attestation.archive.toString();
42
- const sender = attestation.getSender();
43
- // Skip attestations with invalid signatures
44
- if (!sender) {
45
- this.log.warn(`Skipping attestation with invalid signature for slot ${slotNumber.toBigInt()}`, {
46
- signature: attestation.signature.toString(),
47
- slotNumber,
48
- proposalId
49
- });
50
- continue;
51
- }
52
- const slotAttestationMap = getSlotOrDefault(this.attestations, slotNumber.toBigInt());
53
- const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
54
- proposalAttestationMap.set(sender.toString(), attestation);
55
- this.log.verbose(`Added attestation for slot ${slotNumber.toBigInt()} from ${sender}`, {
56
- signature: attestation.signature.toString(),
57
- slotNumber,
58
- address: sender,
59
- proposalId
60
- });
61
- }
62
- return Promise.resolve();
63
- }
64
- #getNumberOfAttestationsInSlot(slot) {
65
- let total = 0;
66
- const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
67
- if (slotAttestationMap) {
68
- for (const proposalAttestationMap of slotAttestationMap.values() ?? []){
69
- total += proposalAttestationMap.size;
70
- }
71
- }
72
- return total;
73
- }
74
- async deleteAttestationsOlderThan(oldestSlot) {
75
- const olderThan = [];
76
- // Entries are iterated in insertion order, so we can break as soon as we find a slot that is older than the oldestSlot.
77
- // Note: this will only prune correctly if attestations are added in order of rising slot, it is important that we do not allow
78
- // insertion of attestations that are old. #(https://github.com/AztecProtocol/aztec-packages/issues/10322)
79
- const slots = this.attestations.keys();
80
- for (const slot of slots){
81
- if (slot < oldestSlot) {
82
- olderThan.push(slot);
83
- } else {
84
- break;
85
- }
86
- }
87
- for (const oldSlot of olderThan){
88
- await this.deleteAttestationsForSlot(oldSlot);
89
- }
90
- return Promise.resolve();
91
- }
92
- deleteAttestationsForSlot(slot) {
93
- // We count the number of attestations we are removing
94
- const numberOfAttestations = this.#getNumberOfAttestationsInSlot(slot);
95
- const proposalIdsToDelete = this.attestations.get(slot)?.keys();
96
- let proposalIdsToDeleteCount = 0;
97
- proposalIdsToDelete?.forEach((proposalId)=>{
98
- this.proposals.delete(proposalId);
99
- proposalIdsToDeleteCount++;
100
- });
101
- this.attestations.delete(slot);
102
- this.log.verbose(`Removed ${numberOfAttestations} attestations and ${proposalIdsToDeleteCount} proposals for slot ${slot}`);
103
- return Promise.resolve();
104
- }
105
- deleteAttestationsForSlotAndProposal(slot, proposalId) {
106
- const slotAttestationMap = getSlotOrDefault(this.attestations, slot);
107
- if (slotAttestationMap) {
108
- if (slotAttestationMap.has(proposalId)) {
109
- const numberOfAttestations = slotAttestationMap.get(proposalId)?.size ?? 0;
110
- slotAttestationMap.delete(proposalId);
111
- this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot} and proposal ${proposalId}`);
112
- }
113
- }
114
- this.proposals.delete(proposalId);
115
- return Promise.resolve();
116
- }
117
- deleteAttestations(attestations) {
118
- for (const attestation of attestations){
119
- const slotNumber = attestation.payload.header.slotNumber;
120
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
121
- if (slotAttestationMap) {
122
- const proposalId = attestation.archive.toString();
123
- const proposalAttestationMap = getProposalOrDefault(slotAttestationMap, proposalId);
124
- if (proposalAttestationMap) {
125
- const sender = attestation.getSender();
126
- // Skip attestations with invalid signatures
127
- if (!sender) {
128
- this.log.warn(`Skipping deletion of attestation with invalid signature for slot ${slotNumber.toBigInt()}`);
129
- continue;
130
- }
131
- proposalAttestationMap.delete(sender.toString());
132
- this.log.debug(`Deleted attestation for slot ${slotNumber} from ${sender}`);
133
- }
134
- }
135
- }
136
- return Promise.resolve();
137
- }
138
- hasAttestation(attestation) {
139
- const slotNumber = attestation.payload.header.slotNumber;
140
- const proposalId = attestation.archive.toString();
141
- const sender = attestation.getSender();
142
- // Attestations with invalid signatures are never in the pool
143
- if (!sender) {
144
- return Promise.resolve(false);
145
- }
146
- const slotAttestationMap = this.attestations.get(slotNumber.toBigInt());
147
- if (!slotAttestationMap) {
148
- return Promise.resolve(false);
149
- }
150
- const proposalAttestationMap = slotAttestationMap.get(proposalId);
151
- if (!proposalAttestationMap) {
152
- return Promise.resolve(false);
153
- }
154
- return Promise.resolve(proposalAttestationMap.has(sender.toString()));
155
- }
156
- addBlockProposal(blockProposal) {
157
- // We initialize slot-proposal mapping if it does not exist
158
- // This is important to ensure we can delete this proposal if there were not attestations for it
159
- const slotProposalMapping = getSlotOrDefault(this.attestations, blockProposal.slotNumber.toBigInt());
160
- slotProposalMapping.set(blockProposal.payload.archive.toString(), new Map());
161
- this.proposals.set(blockProposal.payload.archive.toString(), blockProposal);
162
- return Promise.resolve();
163
- }
164
- getBlockProposal(id) {
165
- return Promise.resolve(this.proposals.get(id));
166
- }
167
- hasBlockProposal(idOrProposal) {
168
- const id = typeof idOrProposal === 'string' ? idOrProposal : idOrProposal.payload.archive.toString();
169
- return Promise.resolve(this.proposals.has(id));
170
- }
171
- }
172
- /**
173
- * Get Slot or Default
174
- *
175
- * Fetch the slot mapping, if it does not exist, then create a mapping and return it
176
- * @param map - The map to fetch from
177
- * @param slot - The slot to fetch
178
- * @returns The slot mapping
179
- */ function getSlotOrDefault(map, slot) {
180
- if (!map.has(slot)) {
181
- map.set(slot, new Map());
182
- }
183
- return map.get(slot);
184
- }
185
- /**
186
- * Get Proposal or Default
187
- *
188
- * Fetch the proposal mapping, if it does not exist, then create a mapping and return it
189
- * @param map - The map to fetch from
190
- * @param proposalId - The proposal id to fetch
191
- * @returns The proposal mapping
192
- */ function getProposalOrDefault(map, proposalId) {
193
- if (!map.has(proposalId)) {
194
- map.set(proposalId, new Map());
195
- }
196
- return map.get(proposalId);
197
- }
@@ -1,150 +0,0 @@
1
- import { type Logger } from '@aztec/foundation/log';
2
- import type { TypedEventEmitter } from '@aztec/foundation/types';
3
- import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
- import type { MerkleTreeReadOperations, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
5
- import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
6
- import { type TelemetryClient } from '@aztec/telemetry-client';
7
- import { ArchiveCache } from '../../msg_validators/tx_validator/archive_cache.js';
8
- import { GasTxValidator } from '../../msg_validators/tx_validator/gas_validator.js';
9
- import type { TxPool, TxPoolEvents, TxPoolOptions } from './tx_pool.js';
10
- declare const AztecKVTxPool_base: new () => TypedEventEmitter<TxPoolEvents>;
11
- /**
12
- * KV implementation of the Transaction Pool.
13
- */
14
- export declare class AztecKVTxPool extends AztecKVTxPool_base implements TxPool {
15
- #private;
16
- /** The tx evicion logic will kick after pool size is greater than maxTxPoolSize * txPoolOverflowFactor */
17
- txPoolOverflowFactor: number;
18
- /**
19
- * Class constructor for KV TxPool. Initiates our transaction pool as an AztecMap.
20
- * @param store - A KV store for live txs in the pool.
21
- * @param archive - A KV store for archived txs.
22
- * @param telemetry - A telemetry client.
23
- * @param archivedTxLimit - The number of txs to archive.
24
- * @param log - A logger.
25
- */
26
- constructor(store: AztecAsyncKVStore, archive: AztecAsyncKVStore, worldStateSynchronizer: WorldStateSynchronizer, telemetry?: TelemetryClient, config?: TxPoolOptions, log?: Logger);
27
- private countTxs;
28
- isEmpty(): Promise<boolean>;
29
- /**
30
- * Marks transactions as mined in a block and updates the pool state accordingly.
31
- * Removes the transactions from the pending set and adds them to the mined set.
32
- * Also evicts any transactions that become invalid after the block is mined.
33
- * @param txHashes - Array of transaction hashes that were mined
34
- * @param blockHeader - The header of the block the transactions were mined in
35
- */
36
- markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void>;
37
- markMinedAsPending(txHashes: TxHash[]): Promise<void>;
38
- getPendingTxHashes(): Promise<TxHash[]>;
39
- getMinedTxHashes(): Promise<[TxHash, number][]>;
40
- getPendingTxCount(): Promise<number>;
41
- getMinedTxCount(): Promise<number>;
42
- getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
43
- /**
44
- * Checks if a transaction exists in the pool and returns it.
45
- * @param txHash - The generated tx hash.
46
- * @returns The transaction, if found, 'undefined' otherwise.
47
- */
48
- getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
49
- getTxsByHash(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
50
- hasTxs(txHashes: TxHash[]): Promise<boolean[]>;
51
- hasTx(txHash: TxHash): Promise<boolean>;
52
- /**
53
- * Checks if an archived tx exists and returns it.
54
- * @param txHash - The tx hash.
55
- * @returns The transaction metadata, if found, 'undefined' otherwise.
56
- */
57
- getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
58
- /**
59
- * Adds a list of transactions to the pool. Duplicates are ignored.
60
- * @param txs - An array of txs to be added to the pool.
61
- * @returns Empty promise.
62
- */
63
- addTxs(txs: Tx[], opts?: {
64
- source?: string;
65
- }): Promise<number>;
66
- /**
67
- * Deletes transactions from the pool. Tx hashes that are not present are ignored.
68
- * Mined transactions are soft-deleted with a timestamp, pending transactions are permanently deleted.
69
- * @param txHashes - An array of tx hashes to be deleted from the tx pool.
70
- * @returns Empty promise.
71
- */
72
- deleteTxs(txHashes: TxHash[], opts?: {
73
- eviction?: boolean;
74
- permanently?: boolean;
75
- }): Promise<void>;
76
- /**
77
- * Gets all the transactions stored in the pool.
78
- * @returns Array of tx objects in the order they were added to the pool.
79
- */
80
- getAllTxs(): Promise<Tx[]>;
81
- /**
82
- * Gets the hashes of all transactions currently in the tx pool.
83
- * @returns An array of transaction hashes found in the tx pool.
84
- */
85
- getAllTxHashes(): Promise<TxHash[]>;
86
- updateConfig({ maxTxPoolSize, txPoolOverflowFactor, archivedTxLimit }: TxPoolOptions): void;
87
- markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
88
- /**
89
- * Permanently deletes deleted mined transactions from blocks up to and including the specified block number.
90
- * @param blockNumber - Block number threshold. Deleted mined txs from this block or earlier will be permanently deleted.
91
- * @returns The number of transactions permanently deleted.
92
- */
93
- cleanupDeletedMinedTxs(blockNumber: number): Promise<number>;
94
- /**
95
- * Creates a GasTxValidator instance.
96
- * @param db - DB for the validator to use
97
- * @returns A GasTxValidator instance
98
- */
99
- protected createGasTxValidator(db: MerkleTreeReadOperations): GasTxValidator;
100
- /**
101
- * Creates an ArchiveCache instance.
102
- * @param db - DB for the cache to use
103
- * @returns An ArchiveCache instance
104
- */
105
- protected createArchiveCache(db: MerkleTreeReadOperations): ArchiveCache;
106
- /**
107
- * Checks if a cached transaction exists in the in-memory pending tx pool and returns it.
108
- * Otherwise, it checks the tx pool, updates the pending tx pool, and returns the tx.
109
- * @param txHash - The generated tx hash.
110
- * @returns The transaction, if found, 'undefined' otherwise.
111
- */
112
- private getPendingTxByHash;
113
- /**
114
- * Archives a list of txs for future reference. The number of archived txs is limited by the specified archivedTxLimit.
115
- * @param txs - The list of transactions to archive.
116
- * @returns Empty promise.
117
- */
118
- private archiveTxs;
119
- /**
120
- * Evicts pending txs with the lowest priority fees from the pool to accomodate the max tx count and cumulative max tx size
121
- * after new txs are added.
122
- *
123
- * @param newTxHashes - The tx hashes of the new txs added to the pool.
124
- * @returns The total number of txs evicted from the pool and the number of new txs that were evicted.
125
- */
126
- private evictLowPriorityTxs;
127
- /**
128
- * Evicts invalid pending txs from the pool after a txs from a block are mined.
129
- * Eviction criteria includes:
130
- * - txs with nullifiers that are already included in the mined block
131
- * - txs with an insufficient fee payer balance
132
- * - txs with an expiration timestamp lower than that of the mined block
133
- *
134
- * @param minedTxHashes - The tx hashes of the txs mined in the block.
135
- * @param blockHeader - The header of the mined block.
136
- * @returns The total number of txs evicted from the pool.
137
- */
138
- private evictInvalidTxsAfterMining;
139
- /**
140
- * Evicts pending txs that no longer have valid archive roots or fee payer balances from the pool after a reorg.
141
- *
142
- * @param txHashes - The tx hashes of the txs that were moved from mined to pending.
143
- * @returns The total number of txs evicted from the pool.
144
- */
145
- private evictInvalidTxsAfterReorg;
146
- private addPendingTxIndices;
147
- private removePendingTxIndices;
148
- }
149
- export {};
150
- //# sourceMappingURL=aztec_kv_tx_pool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aztec_kv_tx_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/tx_pool/aztec_kv_tx_pool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAA0D,MAAM,iBAAiB,CAAC;AAGjH,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAIxG,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAKnF,OAAO,EAAE,YAAY,EAAE,MAAM,oDAAoD,CAAC;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oDAAoD,CAAC;AAGpF,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;kCAKpB,UAAU,iBAAiB,CAAC,YAAY,CAAC;AAH7F;;GAEG;AACH,qBAAa,aAAc,SAAQ,kBAA4D,YAAW,MAAM;;IAS9G,0GAA0G;IAC1G,oBAAoB,EAAE,MAAM,CAAK;IAgDjC;;;;;;;OAOG;gBAED,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iBAAiB,EAC1B,sBAAsB,EAAE,sBAAsB,EAC9C,SAAS,GAAE,eAAsC,EACjD,MAAM,GAAE,aAAkB,EAC1B,GAAG,SAA8B;IA4BnC,OAAO,CAAC,QAAQ,CASd;IAEW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAMxC;;;;;;OAMG;IACU,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CxE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBrD,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKvC,gBAAgB,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAK/C,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIpC,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC;IAIlC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAmB9F;;;;OAIG;IACU,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAK3D,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;IAK7D,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAI9C,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK7C;;;;OAIG;IACU,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAKzE;;;;OAIG;IACU,MAAM,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAwC/E;;;;;OAKG;IACI,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgD7G;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAKvC;;;OAGG;IACU,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKzC,YAAY,CAAC,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,EAAE,aAAa,GAAG,IAAI;IA0B3F,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/D;;;;OAIG;IACU,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmCzE;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,wBAAwB,GAAG,cAAc;IAI5E;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,EAAE,EAAE,wBAAwB,GAAG,YAAY;IAIxE;;;;;OAKG;YACW,kBAAkB;IAoBhC;;;;OAIG;YACW,UAAU;IA2CxB;;;;;;OAMG;YACW,mBAAmB;IA8CjC;;;;;;;;;;OAUG;YACW,0BAA0B;IA4DxC;;;;;OAKG;YACW,yBAAyB;YAqCzB,mBAAmB;YAMnB,sBAAsB;CAMrC"}