@aztec/p2p 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107

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 (334) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +1 -1
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +14 -4
  4. package/dest/client/factory.d.ts +3 -2
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +9 -5
  7. package/dest/client/index.d.ts +1 -1
  8. package/dest/client/interface.d.ts +8 -6
  9. package/dest/client/interface.d.ts.map +1 -1
  10. package/dest/client/p2p_client.d.ts +12 -35
  11. package/dest/client/p2p_client.d.ts.map +1 -1
  12. package/dest/client/p2p_client.js +457 -61
  13. package/dest/config.d.ts +67 -61
  14. package/dest/config.d.ts.map +1 -1
  15. package/dest/config.js +28 -15
  16. package/dest/enr/generate-enr.d.ts +2 -2
  17. package/dest/enr/generate-enr.d.ts.map +1 -1
  18. package/dest/enr/generate-enr.js +1 -1
  19. package/dest/enr/index.d.ts +1 -1
  20. package/dest/errors/attestation-pool.error.d.ts +7 -0
  21. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  22. package/dest/errors/attestation-pool.error.js +12 -0
  23. package/dest/errors/reqresp.error.d.ts +1 -1
  24. package/dest/errors/reqresp.error.d.ts.map +1 -1
  25. package/dest/index.d.ts +1 -1
  26. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +43 -6
  27. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  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 +72 -46
  31. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  32. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +15 -6
  33. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +73 -18
  35. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +13 -6
  36. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  37. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +69 -11
  38. package/dest/mem_pools/attestation_pool/mocks.d.ts +226 -5
  39. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  40. package/dest/mem_pools/attestation_pool/mocks.js +9 -7
  41. package/dest/mem_pools/index.d.ts +1 -1
  42. package/dest/mem_pools/instrumentation.d.ts +9 -1
  43. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  44. package/dest/mem_pools/instrumentation.js +38 -2
  45. package/dest/mem_pools/interface.d.ts +3 -4
  46. package/dest/mem_pools/interface.d.ts.map +1 -1
  47. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +39 -58
  48. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  49. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -317
  50. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +18 -0
  51. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  52. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +56 -0
  53. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +83 -0
  54. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  55. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +5 -0
  56. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts +15 -0
  57. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts.map +1 -0
  58. package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.js +88 -0
  59. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  60. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  61. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  62. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  63. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  64. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +76 -0
  65. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  66. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  67. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  68. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  69. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  70. package/dest/mem_pools/tx_pool/index.js +0 -1
  71. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  72. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  73. package/dest/mem_pools/tx_pool/priority.js +6 -1
  74. package/dest/mem_pools/tx_pool/tx_pool.d.ts +28 -9
  75. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  76. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  77. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  78. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +155 -25
  79. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -2
  80. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  81. package/dest/msg_validators/attestation_validator/attestation_validator.js +32 -5
  82. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  83. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  84. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +67 -0
  85. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  86. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  87. package/dest/msg_validators/attestation_validator/index.js +1 -0
  88. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +5 -2
  89. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
  90. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +44 -12
  91. package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
  92. package/dest/msg_validators/index.d.ts +1 -1
  93. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
  94. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
  95. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  96. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  97. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
  98. package/dest/msg_validators/tx_validator/archive_cache.d.ts +2 -2
  99. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
  100. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +2 -2
  101. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  102. package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
  103. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  104. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  105. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -1
  106. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  107. package/dest/msg_validators/tx_validator/double_spend_validator.js +1 -1
  108. package/dest/msg_validators/tx_validator/factory.d.ts +4 -3
  109. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  110. package/dest/msg_validators/tx_validator/factory.js +11 -5
  111. package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
  112. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  113. package/dest/msg_validators/tx_validator/index.d.ts +2 -1
  114. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  115. package/dest/msg_validators/tx_validator/index.js +1 -0
  116. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -6
  117. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  118. package/dest/msg_validators/tx_validator/metadata_validator.js +6 -24
  119. package/dest/msg_validators/tx_validator/phases_validator.d.ts +1 -1
  120. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  121. package/dest/msg_validators/tx_validator/phases_validator.js +3 -1
  122. package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
  123. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
  124. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +13 -0
  125. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -0
  126. package/dest/msg_validators/tx_validator/timestamp_validator.js +32 -0
  127. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +1 -1
  128. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
  129. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +1 -1
  130. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  131. package/dest/services/data_store.d.ts +1 -1
  132. package/dest/services/data_store.d.ts.map +1 -1
  133. package/dest/services/discv5/discV5_service.d.ts +3 -3
  134. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  135. package/dest/services/discv5/discV5_service.js +2 -2
  136. package/dest/services/dummy_service.d.ts +2 -2
  137. package/dest/services/dummy_service.d.ts.map +1 -1
  138. package/dest/services/encoding.d.ts +25 -4
  139. package/dest/services/encoding.d.ts.map +1 -1
  140. package/dest/services/encoding.js +74 -6
  141. package/dest/services/gossipsub/scoring.d.ts +1 -1
  142. package/dest/services/index.d.ts +1 -1
  143. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  144. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  145. package/dest/services/libp2p/instrumentation.js +9 -2
  146. package/dest/services/libp2p/libp2p_service.d.ts +32 -72
  147. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  148. package/dest/services/libp2p/libp2p_service.js +796 -171
  149. package/dest/services/peer-manager/interface.d.ts +1 -1
  150. package/dest/services/peer-manager/metrics.d.ts +8 -1
  151. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  152. package/dest/services/peer-manager/metrics.js +28 -0
  153. package/dest/services/peer-manager/peer_manager.d.ts +1 -32
  154. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  155. package/dest/services/peer-manager/peer_manager.js +412 -21
  156. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  157. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  158. package/dest/services/peer-manager/peer_scoring.js +40 -2
  159. package/dest/services/reqresp/config.d.ts +1 -1
  160. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +1 -1
  161. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  162. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -4
  163. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  164. package/dest/services/reqresp/index.d.ts +1 -1
  165. package/dest/services/reqresp/interface.d.ts +2 -11
  166. package/dest/services/reqresp/interface.d.ts.map +1 -1
  167. package/dest/services/reqresp/interface.js +1 -18
  168. package/dest/services/reqresp/metrics.d.ts +1 -1
  169. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  170. package/dest/services/reqresp/protocols/auth.d.ts +2 -2
  171. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
  172. package/dest/services/reqresp/protocols/auth.js +2 -2
  173. package/dest/services/reqresp/protocols/block.d.ts +1 -1
  174. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  175. package/dest/services/reqresp/protocols/block.js +3 -2
  176. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +1 -1
  177. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
  178. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
  179. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +4 -6
  180. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  181. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +1 -1
  182. package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
  183. package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
  184. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  185. package/dest/services/reqresp/protocols/index.d.ts +1 -1
  186. package/dest/services/reqresp/protocols/ping.d.ts +1 -1
  187. package/dest/services/reqresp/protocols/status.d.ts +6 -5
  188. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  189. package/dest/services/reqresp/protocols/status.js +4 -3
  190. package/dest/services/reqresp/protocols/tx.d.ts +2 -3
  191. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  192. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  193. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
  194. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  195. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  196. package/dest/services/reqresp/reqresp.d.ts +1 -41
  197. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  198. package/dest/services/reqresp/reqresp.js +416 -34
  199. package/dest/services/reqresp/status.d.ts +2 -2
  200. package/dest/services/reqresp/status.d.ts.map +1 -1
  201. package/dest/services/service.d.ts +2 -2
  202. package/dest/services/service.d.ts.map +1 -1
  203. package/dest/services/tx_collection/config.d.ts +1 -1
  204. package/dest/services/tx_collection/config.js +1 -1
  205. package/dest/services/tx_collection/fast_tx_collection.d.ts +4 -9
  206. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  207. package/dest/services/tx_collection/fast_tx_collection.js +6 -1
  208. package/dest/services/tx_collection/index.d.ts +1 -1
  209. package/dest/services/tx_collection/instrumentation.d.ts +1 -1
  210. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
  211. package/dest/services/tx_collection/slow_tx_collection.d.ts +6 -7
  212. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
  213. package/dest/services/tx_collection/slow_tx_collection.js +2 -1
  214. package/dest/services/tx_collection/tx_collection.d.ts +12 -11
  215. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  216. package/dest/services/tx_collection/tx_collection.js +3 -2
  217. package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
  218. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
  219. package/dest/services/tx_collection/tx_collection_sink.js +34 -4
  220. package/dest/services/tx_collection/tx_source.d.ts +1 -1
  221. package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
  222. package/dest/services/tx_collection/tx_source.js +2 -2
  223. package/dest/services/tx_provider.d.ts +6 -4
  224. package/dest/services/tx_provider.d.ts.map +1 -1
  225. package/dest/services/tx_provider.js +19 -6
  226. package/dest/services/tx_provider_instrumentation.d.ts +5 -2
  227. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
  228. package/dest/services/tx_provider_instrumentation.js +14 -1
  229. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  230. package/dest/test-helpers/get-ports.d.ts +1 -1
  231. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  232. package/dest/test-helpers/index.d.ts +1 -1
  233. package/dest/test-helpers/make-enrs.d.ts +1 -1
  234. package/dest/test-helpers/make-enrs.js +1 -1
  235. package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
  236. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  237. package/dest/test-helpers/mock-pubsub.d.ts +4 -4
  238. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  239. package/dest/test-helpers/mock-tx-helpers.d.ts +12 -0
  240. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -0
  241. package/dest/test-helpers/mock-tx-helpers.js +19 -0
  242. package/dest/test-helpers/reqresp-nodes.d.ts +3 -3
  243. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  244. package/dest/test-helpers/reqresp-nodes.js +4 -3
  245. package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
  246. package/dest/testbench/p2p_client_testbench_worker.js +17 -9
  247. package/dest/testbench/parse_log_file.d.ts +1 -1
  248. package/dest/testbench/testbench.d.ts +1 -1
  249. package/dest/testbench/testbench.js +2 -2
  250. package/dest/testbench/worker_client_manager.d.ts +1 -1
  251. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  252. package/dest/types/index.d.ts +1 -1
  253. package/dest/util.d.ts +2 -1
  254. package/dest/util.d.ts.map +1 -1
  255. package/dest/util.js +11 -2
  256. package/dest/versioning.d.ts +2 -2
  257. package/dest/versioning.d.ts.map +1 -1
  258. package/dest/versioning.js +2 -2
  259. package/package.json +21 -21
  260. package/src/bootstrap/bootstrap.ts +15 -4
  261. package/src/client/factory.ts +21 -12
  262. package/src/client/interface.ts +8 -5
  263. package/src/client/p2p_client.ts +97 -88
  264. package/src/config.ts +42 -21
  265. package/src/enr/generate-enr.ts +1 -1
  266. package/src/errors/attestation-pool.error.ts +13 -0
  267. package/src/mem_pools/attestation_pool/attestation_pool.ts +46 -5
  268. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +89 -48
  269. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +107 -24
  270. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +98 -19
  271. package/src/mem_pools/attestation_pool/mocks.ts +11 -8
  272. package/src/mem_pools/instrumentation.ts +46 -0
  273. package/src/mem_pools/interface.ts +2 -4
  274. package/src/mem_pools/tx_pool/README.md +255 -0
  275. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +368 -360
  276. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +71 -0
  277. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +93 -0
  278. package/src/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.ts +108 -0
  279. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  280. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +91 -0
  281. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  282. package/src/mem_pools/tx_pool/index.ts +0 -1
  283. package/src/mem_pools/tx_pool/priority.ts +8 -1
  284. package/src/mem_pools/tx_pool/tx_pool.ts +28 -8
  285. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +131 -18
  286. package/src/msg_validators/attestation_validator/attestation_validator.ts +41 -6
  287. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +91 -0
  288. package/src/msg_validators/attestation_validator/index.ts +1 -0
  289. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +53 -12
  290. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  291. package/src/msg_validators/tx_validator/block_header_validator.ts +2 -2
  292. package/src/msg_validators/tx_validator/double_spend_validator.ts +1 -1
  293. package/src/msg_validators/tx_validator/factory.ts +13 -6
  294. package/src/msg_validators/tx_validator/index.ts +1 -0
  295. package/src/msg_validators/tx_validator/metadata_validator.ts +8 -42
  296. package/src/msg_validators/tx_validator/phases_validator.ts +3 -1
  297. package/src/msg_validators/tx_validator/test_utils.ts +1 -1
  298. package/src/msg_validators/tx_validator/timestamp_validator.ts +47 -0
  299. package/src/services/discv5/discV5_service.ts +2 -2
  300. package/src/services/dummy_service.ts +1 -1
  301. package/src/services/encoding.ts +81 -6
  302. package/src/services/libp2p/instrumentation.ts +10 -1
  303. package/src/services/libp2p/libp2p_service.ts +430 -165
  304. package/src/services/peer-manager/metrics.ts +32 -0
  305. package/src/services/peer-manager/peer_manager.ts +24 -14
  306. package/src/services/peer-manager/peer_scoring.ts +46 -3
  307. package/src/services/reqresp/interface.ts +1 -22
  308. package/src/services/reqresp/protocols/auth.ts +2 -2
  309. package/src/services/reqresp/protocols/block.ts +3 -2
  310. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +1 -1
  311. package/src/services/reqresp/protocols/status.ts +9 -8
  312. package/src/services/reqresp/protocols/tx.ts +1 -2
  313. package/src/services/reqresp/reqresp.ts +15 -11
  314. package/src/services/service.ts +1 -1
  315. package/src/services/tx_collection/config.ts +1 -1
  316. package/src/services/tx_collection/fast_tx_collection.ts +8 -5
  317. package/src/services/tx_collection/slow_tx_collection.ts +7 -6
  318. package/src/services/tx_collection/tx_collection.ts +12 -10
  319. package/src/services/tx_collection/tx_collection_sink.ts +34 -3
  320. package/src/services/tx_collection/tx_source.ts +2 -2
  321. package/src/services/tx_provider.ts +26 -9
  322. package/src/services/tx_provider_instrumentation.ts +19 -2
  323. package/src/test-helpers/make-enrs.ts +1 -1
  324. package/src/test-helpers/mock-pubsub.ts +1 -1
  325. package/src/test-helpers/mock-tx-helpers.ts +24 -0
  326. package/src/test-helpers/reqresp-nodes.ts +4 -3
  327. package/src/testbench/p2p_client_testbench_worker.ts +14 -6
  328. package/src/testbench/testbench.ts +2 -2
  329. package/src/util.ts +12 -2
  330. package/src/versioning.ts +3 -3
  331. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -68
  332. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  333. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -160
  334. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -199
@@ -1,160 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import { Tx, TxHash } from '@aztec/stdlib/tx';
3
- import { getTelemetryClient } from '@aztec/telemetry-client';
4
- import EventEmitter from 'node:events';
5
- import { PoolInstrumentation, PoolName } from '../instrumentation.js';
6
- import { getPendingTxPriority } from './priority.js';
7
- /**
8
- * In-memory implementation of the Transaction Pool.
9
- */ export class InMemoryTxPool extends EventEmitter {
10
- log;
11
- /**
12
- * Our tx pool, stored as a Map in-memory, with K: tx hash and V: the transaction.
13
- */ txs;
14
- minedTxs;
15
- pendingTxs;
16
- metrics;
17
- /**
18
- * Class constructor for in-memory TxPool. Initiates our transaction pool as a JS Map.
19
- * @param log - A logger.
20
- */ constructor(telemetry = getTelemetryClient(), log = createLogger('p2p:tx_pool')){
21
- super(), this.log = log, this.countTx = ()=>{
22
- return Promise.resolve({
23
- itemCount: {
24
- mined: this.minedTxs.size,
25
- pending: this.pendingTxs.size
26
- }
27
- });
28
- };
29
- this.txs = new Map();
30
- this.minedTxs = new Map();
31
- this.pendingTxs = new Set();
32
- this.metrics = new PoolInstrumentation(telemetry, PoolName.TX_POOL, this.countTx);
33
- }
34
- countTx;
35
- isEmpty() {
36
- return Promise.resolve(this.txs.size === 0);
37
- }
38
- markAsMined(txHashes, blockHeader) {
39
- const keys = txHashes.map((x)=>x.toBigInt());
40
- for (const key of keys){
41
- this.minedTxs.set(key, blockHeader.globalVariables.blockNumber);
42
- this.pendingTxs.delete(key);
43
- }
44
- return Promise.resolve();
45
- }
46
- markMinedAsPending(txHashes) {
47
- if (txHashes.length === 0) {
48
- return Promise.resolve();
49
- }
50
- const keys = txHashes.map((x)=>x.toBigInt());
51
- for (const key of keys){
52
- this.minedTxs.delete(key);
53
- // only add back to the pending set if we have the tx object
54
- if (this.txs.has(key)) {
55
- this.pendingTxs.add(key);
56
- }
57
- }
58
- return Promise.resolve();
59
- }
60
- async getPendingTxHashes() {
61
- const txs = (await this.getAllTxs()).sort((tx1, tx2)=>-getPendingTxPriority(tx1).localeCompare(getPendingTxPriority(tx2)));
62
- const txHashes = await Promise.all(txs.map((tx)=>tx.getTxHash()));
63
- return txHashes.filter((txHash)=>this.pendingTxs.has(txHash.toBigInt()));
64
- }
65
- getMinedTxHashes() {
66
- return Promise.resolve(Array.from(this.minedTxs.entries()).map(([txHash, blockNumber])=>[
67
- TxHash.fromBigInt(txHash),
68
- blockNumber
69
- ]));
70
- }
71
- getPendingTxCount() {
72
- return Promise.resolve(this.pendingTxs.size);
73
- }
74
- getTxStatus(txHash) {
75
- const key = txHash.toBigInt();
76
- if (this.pendingTxs.has(key)) {
77
- return Promise.resolve('pending');
78
- }
79
- if (this.minedTxs.has(key)) {
80
- return Promise.resolve('mined');
81
- }
82
- return Promise.resolve(undefined);
83
- }
84
- /**
85
- * Checks if a transaction exists in the pool and returns it.
86
- * @param txHash - The generated tx hash.
87
- * @returns The transaction, if found, 'undefined' otherwise.
88
- */ getTxByHash(txHash) {
89
- const result = this.txs.get(txHash.toBigInt());
90
- return Promise.resolve(result === undefined ? undefined : Tx.clone(result));
91
- }
92
- getTxsByHash(txHashes) {
93
- return Promise.all(txHashes.map((txHash)=>this.getTxByHash(txHash)));
94
- }
95
- hasTxs(txHashes) {
96
- return Promise.resolve(txHashes.map((txHash)=>this.txs.has(txHash.toBigInt())));
97
- }
98
- getArchivedTxByHash() {
99
- return Promise.resolve(undefined);
100
- }
101
- /**
102
- * Adds a list of transactions to the pool. Duplicates are ignored.
103
- * @param txs - An array of txs to be added to the pool.
104
- * @returns Empty promise.
105
- */ addTxs(txs, opts = {}) {
106
- const added = [];
107
- for (const tx of txs){
108
- const txHash = tx.getTxHash();
109
- this.log.verbose(`Adding tx ${txHash.toString()} to pool`, {
110
- eventName: 'tx-added-to-pool',
111
- ...tx.getStats()
112
- });
113
- const key = txHash.toBigInt();
114
- if (!this.txs.has(key)) {
115
- added.push(tx);
116
- this.txs.set(key, tx);
117
- }
118
- if (!this.minedTxs.has(key)) {
119
- this.metrics.recordSize(tx);
120
- this.pendingTxs.add(key);
121
- }
122
- }
123
- if (added.length > 0) {
124
- this.emit('txs-added', {
125
- ...opts,
126
- txs: added
127
- });
128
- }
129
- return Promise.resolve(added.length);
130
- }
131
- /**
132
- * Deletes transactions from the pool. Tx hashes that are not present are ignored.
133
- * @param txHashes - An array of tx hashes to be removed from the tx pool.
134
- * @returns The number of transactions that was deleted from the pool.
135
- */ deleteTxs(txHashes) {
136
- for (const txHash of txHashes){
137
- const key = txHash.toBigInt();
138
- this.txs.delete(key);
139
- this.pendingTxs.delete(key);
140
- this.minedTxs.delete(key);
141
- }
142
- return Promise.resolve();
143
- }
144
- /**
145
- * Gets all the transactions stored in the pool.
146
- * @returns Array of tx objects in the order they were added to the pool.
147
- */ getAllTxs() {
148
- return Promise.resolve(Array.from(this.txs.values()).map((x)=>Tx.clone(x)));
149
- }
150
- /**
151
- * Gets the hashes of all transactions currently in the tx pool.
152
- * @returns An array of transaction hashes found in the tx pool.
153
- */ getAllTxHashes() {
154
- return Promise.resolve(Array.from(this.txs.keys()).map((x)=>TxHash.fromBigInt(x)));
155
- }
156
- updateConfig(_config) {}
157
- markTxsAsNonEvictable(_) {
158
- return Promise.resolve();
159
- }
160
- }
@@ -1,199 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- import type { TypedEventEmitter } from '@aztec/foundation/types';
3
- import type { TxAddedToPoolStats } from '@aztec/stdlib/stats';
4
- import { BlockHeader, Tx, TxHash } from '@aztec/stdlib/tx';
5
- import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
6
-
7
- import EventEmitter from 'node:events';
8
-
9
- import { PoolInstrumentation, PoolName, type PoolStatsCallback } from '../instrumentation.js';
10
- import { getPendingTxPriority } from './priority.js';
11
- import type { TxPool, TxPoolEvents, TxPoolOptions } from './tx_pool.js';
12
-
13
- /**
14
- * In-memory implementation of the Transaction Pool.
15
- */
16
- export class InMemoryTxPool extends (EventEmitter as new () => TypedEventEmitter<TxPoolEvents>) implements TxPool {
17
- /**
18
- * Our tx pool, stored as a Map in-memory, with K: tx hash and V: the transaction.
19
- */
20
- private txs: Map<bigint, Tx>;
21
- private minedTxs: Map<bigint, number>;
22
- private pendingTxs: Set<bigint>;
23
-
24
- private metrics: PoolInstrumentation<Tx>;
25
-
26
- /**
27
- * Class constructor for in-memory TxPool. Initiates our transaction pool as a JS Map.
28
- * @param log - A logger.
29
- */
30
- constructor(
31
- telemetry: TelemetryClient = getTelemetryClient(),
32
- private log = createLogger('p2p:tx_pool'),
33
- ) {
34
- super();
35
- this.txs = new Map<bigint, Tx>();
36
- this.minedTxs = new Map();
37
- this.pendingTxs = new Set();
38
- this.metrics = new PoolInstrumentation(telemetry, PoolName.TX_POOL, this.countTx);
39
- }
40
-
41
- private countTx: PoolStatsCallback = () => {
42
- return Promise.resolve({
43
- itemCount: {
44
- mined: this.minedTxs.size,
45
- pending: this.pendingTxs.size,
46
- },
47
- });
48
- };
49
-
50
- public isEmpty(): Promise<boolean> {
51
- return Promise.resolve(this.txs.size === 0);
52
- }
53
-
54
- public markAsMined(txHashes: TxHash[], blockHeader: BlockHeader): Promise<void> {
55
- const keys = txHashes.map(x => x.toBigInt());
56
- for (const key of keys) {
57
- this.minedTxs.set(key, blockHeader.globalVariables.blockNumber);
58
- this.pendingTxs.delete(key);
59
- }
60
- return Promise.resolve();
61
- }
62
-
63
- public markMinedAsPending(txHashes: TxHash[]): Promise<void> {
64
- if (txHashes.length === 0) {
65
- return Promise.resolve();
66
- }
67
-
68
- const keys = txHashes.map(x => x.toBigInt());
69
- for (const key of keys) {
70
- this.minedTxs.delete(key);
71
-
72
- // only add back to the pending set if we have the tx object
73
- if (this.txs.has(key)) {
74
- this.pendingTxs.add(key);
75
- }
76
- }
77
-
78
- return Promise.resolve();
79
- }
80
-
81
- public async getPendingTxHashes(): Promise<TxHash[]> {
82
- const txs = (await this.getAllTxs()).sort(
83
- (tx1, tx2) => -getPendingTxPriority(tx1).localeCompare(getPendingTxPriority(tx2)),
84
- );
85
- const txHashes = await Promise.all(txs.map(tx => tx.getTxHash()));
86
- return txHashes.filter(txHash => this.pendingTxs.has(txHash.toBigInt()));
87
- }
88
-
89
- public getMinedTxHashes(): Promise<[TxHash, number][]> {
90
- return Promise.resolve(
91
- Array.from(this.minedTxs.entries()).map(([txHash, blockNumber]) => [TxHash.fromBigInt(txHash), blockNumber]),
92
- );
93
- }
94
-
95
- public getPendingTxCount(): Promise<number> {
96
- return Promise.resolve(this.pendingTxs.size);
97
- }
98
-
99
- public getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | undefined> {
100
- const key = txHash.toBigInt();
101
- if (this.pendingTxs.has(key)) {
102
- return Promise.resolve('pending');
103
- }
104
- if (this.minedTxs.has(key)) {
105
- return Promise.resolve('mined');
106
- }
107
- return Promise.resolve(undefined);
108
- }
109
-
110
- /**
111
- * Checks if a transaction exists in the pool and returns it.
112
- * @param txHash - The generated tx hash.
113
- * @returns The transaction, if found, 'undefined' otherwise.
114
- */
115
- public getTxByHash(txHash: TxHash): Promise<Tx | undefined> {
116
- const result = this.txs.get(txHash.toBigInt());
117
- return Promise.resolve(result === undefined ? undefined : Tx.clone(result));
118
- }
119
-
120
- getTxsByHash(txHashes: TxHash[]): Promise<(Tx | undefined)[]> {
121
- return Promise.all(txHashes.map(txHash => this.getTxByHash(txHash)));
122
- }
123
- hasTxs(txHashes: TxHash[]): Promise<boolean[]> {
124
- return Promise.resolve(txHashes.map(txHash => this.txs.has(txHash.toBigInt())));
125
- }
126
-
127
- public getArchivedTxByHash(): Promise<Tx | undefined> {
128
- return Promise.resolve(undefined);
129
- }
130
-
131
- /**
132
- * Adds a list of transactions to the pool. Duplicates are ignored.
133
- * @param txs - An array of txs to be added to the pool.
134
- * @returns Empty promise.
135
- */
136
- public addTxs(txs: Tx[], opts: { source?: string } = {}): Promise<number> {
137
- const added: Tx[] = [];
138
- for (const tx of txs) {
139
- const txHash = tx.getTxHash();
140
- this.log.verbose(`Adding tx ${txHash.toString()} to pool`, {
141
- eventName: 'tx-added-to-pool',
142
- ...tx.getStats(),
143
- } satisfies TxAddedToPoolStats);
144
-
145
- const key = txHash.toBigInt();
146
- if (!this.txs.has(key)) {
147
- added.push(tx as Tx);
148
- this.txs.set(key, tx);
149
- }
150
-
151
- if (!this.minedTxs.has(key)) {
152
- this.metrics.recordSize(tx);
153
- this.pendingTxs.add(key);
154
- }
155
- }
156
- if (added.length > 0) {
157
- this.emit('txs-added', { ...opts, txs: added });
158
- }
159
- return Promise.resolve(added.length);
160
- }
161
-
162
- /**
163
- * Deletes transactions from the pool. Tx hashes that are not present are ignored.
164
- * @param txHashes - An array of tx hashes to be removed from the tx pool.
165
- * @returns The number of transactions that was deleted from the pool.
166
- */
167
- public deleteTxs(txHashes: TxHash[]): Promise<void> {
168
- for (const txHash of txHashes) {
169
- const key = txHash.toBigInt();
170
- this.txs.delete(key);
171
- this.pendingTxs.delete(key);
172
- this.minedTxs.delete(key);
173
- }
174
-
175
- return Promise.resolve();
176
- }
177
-
178
- /**
179
- * Gets all the transactions stored in the pool.
180
- * @returns Array of tx objects in the order they were added to the pool.
181
- */
182
- public getAllTxs(): Promise<Tx[]> {
183
- return Promise.resolve(Array.from(this.txs.values()).map(x => Tx.clone(x)));
184
- }
185
-
186
- /**
187
- * Gets the hashes of all transactions currently in the tx pool.
188
- * @returns An array of transaction hashes found in the tx pool.
189
- */
190
- public getAllTxHashes(): Promise<TxHash[]> {
191
- return Promise.resolve(Array.from(this.txs.keys()).map(x => TxHash.fromBigInt(x)));
192
- }
193
-
194
- updateConfig(_config: TxPoolOptions): void {}
195
-
196
- markTxsAsNonEvictable(_: TxHash[]): Promise<void> {
197
- return Promise.resolve();
198
- }
199
- }