@aztec/p2p 0.0.0-test.0 → 0.0.1-commit.0208eb9

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 (528) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +4 -3
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +26 -13
  4. package/dest/client/factory.d.ts +15 -5
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +63 -25
  7. package/dest/client/index.d.ts +2 -1
  8. package/dest/client/index.d.ts.map +1 -1
  9. package/dest/client/index.js +1 -0
  10. package/dest/client/interface.d.ts +170 -0
  11. package/dest/client/interface.d.ts.map +1 -0
  12. package/dest/client/interface.js +9 -0
  13. package/dest/client/p2p_client.d.ts +77 -193
  14. package/dest/client/p2p_client.d.ts.map +1 -1
  15. package/dest/client/p2p_client.js +769 -229
  16. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts +2 -0
  17. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.d.ts.map +1 -0
  18. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +305 -0
  19. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts +73 -0
  20. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.d.ts.map +1 -0
  21. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.js +8 -0
  22. package/dest/config.d.ts +160 -125
  23. package/dest/config.d.ts.map +1 -1
  24. package/dest/config.js +184 -34
  25. package/dest/enr/generate-enr.d.ts +11 -3
  26. package/dest/enr/generate-enr.d.ts.map +1 -1
  27. package/dest/enr/generate-enr.js +27 -5
  28. package/dest/enr/index.d.ts +1 -1
  29. package/dest/errors/attestation-pool.error.d.ts +7 -0
  30. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  31. package/dest/errors/attestation-pool.error.js +12 -0
  32. package/dest/errors/reqresp.error.d.ts +1 -1
  33. package/dest/errors/reqresp.error.d.ts.map +1 -1
  34. package/dest/index.d.ts +4 -1
  35. package/dest/index.d.ts.map +1 -1
  36. package/dest/index.js +2 -0
  37. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +104 -25
  38. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  40. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  41. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +299 -174
  42. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  43. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +29 -11
  44. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  45. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +168 -62
  46. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +24 -10
  47. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  48. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +133 -82
  49. package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -11
  50. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  51. package/dest/mem_pools/attestation_pool/mocks.js +19 -21
  52. package/dest/mem_pools/index.d.ts +1 -1
  53. package/dest/mem_pools/instrumentation.d.ts +16 -12
  54. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  55. package/dest/mem_pools/instrumentation.js +56 -41
  56. package/dest/mem_pools/interface.d.ts +3 -4
  57. package/dest/mem_pools/interface.d.ts.map +1 -1
  58. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +75 -16
  59. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  60. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +493 -142
  61. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +32 -0
  62. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
  63. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +112 -0
  64. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +157 -0
  65. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
  66. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +52 -0
  67. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +16 -0
  68. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
  69. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +122 -0
  70. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
  71. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
  72. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
  73. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
  74. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
  75. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +78 -0
  76. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
  77. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
  78. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
  79. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +25 -0
  80. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +1 -0
  81. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +57 -0
  82. package/dest/mem_pools/tx_pool/index.d.ts +1 -2
  83. package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
  84. package/dest/mem_pools/tx_pool/index.js +0 -1
  85. package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
  86. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  87. package/dest/mem_pools/tx_pool/priority.js +7 -2
  88. package/dest/mem_pools/tx_pool/tx_pool.d.ts +72 -11
  89. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  90. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  91. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  92. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +276 -45
  93. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +7 -5
  94. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  95. package/dest/msg_validators/attestation_validator/attestation_validator.js +79 -10
  96. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  97. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  98. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +76 -0
  99. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  100. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  101. package/dest/msg_validators/attestation_validator/index.js +1 -0
  102. package/dest/msg_validators/clock_tolerance.d.ts +21 -0
  103. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
  104. package/dest/msg_validators/clock_tolerance.js +37 -0
  105. package/dest/msg_validators/index.d.ts +2 -2
  106. package/dest/msg_validators/index.d.ts.map +1 -1
  107. package/dest/msg_validators/index.js +1 -1
  108. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +10 -0
  109. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -0
  110. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.js +36 -0
  111. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +9 -0
  112. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
  113. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +6 -0
  114. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +9 -0
  115. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
  116. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +6 -0
  117. package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
  118. package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
  119. package/dest/msg_validators/proposal_validator/index.js +3 -0
  120. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -0
  121. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
  122. package/dest/msg_validators/proposal_validator/proposal_validator.js +104 -0
  123. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +23 -0
  124. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +1 -0
  125. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +212 -0
  126. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  127. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  128. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +3 -0
  129. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -0
  130. package/dest/msg_validators/tx_validator/allowed_public_setup.js +27 -0
  131. package/dest/msg_validators/tx_validator/archive_cache.d.ts +14 -0
  132. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -0
  133. package/dest/msg_validators/tx_validator/archive_cache.js +22 -0
  134. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +5 -4
  135. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  136. package/dest/msg_validators/tx_validator/block_header_validator.js +7 -6
  137. package/dest/msg_validators/tx_validator/data_validator.d.ts +3 -1
  138. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  139. package/dest/msg_validators/tx_validator/data_validator.js +60 -87
  140. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +3 -4
  141. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  142. package/dest/msg_validators/tx_validator/double_spend_validator.js +24 -29
  143. package/dest/msg_validators/tx_validator/factory.d.ts +21 -0
  144. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -0
  145. package/dest/msg_validators/tx_validator/factory.js +84 -0
  146. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
  147. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
  148. package/dest/msg_validators/tx_validator/fee_payer_balance.js +20 -0
  149. package/dest/msg_validators/tx_validator/gas_validator.d.ts +12 -0
  150. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -0
  151. package/dest/msg_validators/tx_validator/gas_validator.js +110 -0
  152. package/dest/msg_validators/tx_validator/index.d.ts +9 -1
  153. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  154. package/dest/msg_validators/tx_validator/index.js +8 -0
  155. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +10 -5
  156. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  157. package/dest/msg_validators/tx_validator/metadata_validator.js +40 -21
  158. package/dest/msg_validators/tx_validator/phases_validator.d.ts +15 -0
  159. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -0
  160. package/dest/msg_validators/tx_validator/phases_validator.js +93 -0
  161. package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
  162. package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
  163. package/dest/msg_validators/tx_validator/size_validator.js +23 -0
  164. package/dest/msg_validators/tx_validator/test_utils.d.ts +17 -0
  165. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -0
  166. package/dest/msg_validators/tx_validator/test_utils.js +22 -0
  167. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +14 -0
  168. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -0
  169. package/dest/msg_validators/tx_validator/timestamp_validator.js +32 -0
  170. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +9 -0
  171. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -0
  172. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +24 -0
  173. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +3 -2
  174. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  175. package/dest/msg_validators/tx_validator/tx_proof_validator.js +8 -7
  176. package/dest/services/data_store.d.ts +1 -1
  177. package/dest/services/data_store.d.ts.map +1 -1
  178. package/dest/services/data_store.js +10 -6
  179. package/dest/services/discv5/discV5_service.d.ts +10 -9
  180. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  181. package/dest/services/discv5/discV5_service.js +64 -37
  182. package/dest/services/dummy_service.d.ts +66 -11
  183. package/dest/services/dummy_service.d.ts.map +1 -1
  184. package/dest/services/dummy_service.js +130 -5
  185. package/dest/services/encoding.d.ts +26 -7
  186. package/dest/services/encoding.d.ts.map +1 -1
  187. package/dest/services/encoding.js +75 -6
  188. package/dest/services/gossipsub/scoring.d.ts +1 -1
  189. package/dest/services/index.d.ts +6 -1
  190. package/dest/services/index.d.ts.map +1 -1
  191. package/dest/services/index.js +5 -0
  192. package/dest/services/libp2p/instrumentation.d.ts +20 -0
  193. package/dest/services/libp2p/instrumentation.d.ts.map +1 -0
  194. package/dest/services/libp2p/instrumentation.js +122 -0
  195. package/dest/services/libp2p/libp2p_service.d.ts +107 -95
  196. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  197. package/dest/services/libp2p/libp2p_service.js +1328 -313
  198. package/dest/services/peer-manager/interface.d.ts +23 -0
  199. package/dest/services/peer-manager/interface.d.ts.map +1 -0
  200. package/dest/services/peer-manager/interface.js +1 -0
  201. package/dest/services/peer-manager/metrics.d.ts +12 -3
  202. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  203. package/dest/services/peer-manager/metrics.js +44 -12
  204. package/dest/services/peer-manager/peer_manager.d.ts +103 -23
  205. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  206. package/dest/services/peer-manager/peer_manager.js +551 -82
  207. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  208. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  209. package/dest/services/peer-manager/peer_scoring.js +43 -2
  210. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +47 -0
  211. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
  212. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +566 -0
  213. package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
  214. package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
  215. package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
  216. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
  217. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
  218. package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
  219. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +37 -0
  220. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
  221. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +151 -0
  222. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +54 -0
  223. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
  224. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +139 -0
  225. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +20 -0
  226. package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
  227. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +21 -0
  228. package/dest/services/reqresp/config.d.ts +11 -9
  229. package/dest/services/reqresp/config.d.ts.map +1 -1
  230. package/dest/services/reqresp/config.js +18 -4
  231. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +23 -4
  232. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  233. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +73 -10
  234. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +32 -17
  235. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  236. package/dest/services/reqresp/connection-sampler/connection_sampler.js +154 -84
  237. package/dest/services/reqresp/constants.d.ts +12 -0
  238. package/dest/services/reqresp/constants.d.ts.map +1 -0
  239. package/dest/services/reqresp/constants.js +7 -0
  240. package/dest/services/reqresp/index.d.ts +3 -2
  241. package/dest/services/reqresp/index.d.ts.map +1 -1
  242. package/dest/services/reqresp/index.js +2 -1
  243. package/dest/services/reqresp/interface.d.ts +75 -24
  244. package/dest/services/reqresp/interface.d.ts.map +1 -1
  245. package/dest/services/reqresp/interface.js +46 -27
  246. package/dest/services/reqresp/metrics.d.ts +6 -5
  247. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  248. package/dest/services/reqresp/metrics.js +17 -21
  249. package/dest/services/reqresp/protocols/auth.d.ts +43 -0
  250. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -0
  251. package/dest/services/reqresp/protocols/auth.js +71 -0
  252. package/dest/services/reqresp/protocols/block.d.ts +6 -1
  253. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  254. package/dest/services/reqresp/protocols/block.js +30 -6
  255. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +34 -0
  256. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -0
  257. package/dest/services/reqresp/protocols/block_txs/bitvector.js +87 -0
  258. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +11 -0
  259. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -0
  260. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +52 -0
  261. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +59 -0
  262. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -0
  263. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +105 -0
  264. package/dest/services/reqresp/protocols/block_txs/index.d.ts +4 -0
  265. package/dest/services/reqresp/protocols/block_txs/index.d.ts.map +1 -0
  266. package/dest/services/reqresp/protocols/block_txs/index.js +3 -0
  267. package/dest/services/reqresp/protocols/goodbye.d.ts +3 -5
  268. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  269. package/dest/services/reqresp/protocols/goodbye.js +7 -7
  270. package/dest/services/reqresp/protocols/index.d.ts +3 -1
  271. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  272. package/dest/services/reqresp/protocols/index.js +2 -0
  273. package/dest/services/reqresp/protocols/ping.d.ts +1 -3
  274. package/dest/services/reqresp/protocols/ping.d.ts.map +1 -1
  275. package/dest/services/reqresp/protocols/status.d.ts +40 -7
  276. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  277. package/dest/services/reqresp/protocols/status.js +76 -5
  278. package/dest/services/reqresp/protocols/tx.d.ts +14 -4
  279. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  280. package/dest/services/reqresp/protocols/tx.js +34 -6
  281. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  282. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +6 -4
  283. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  284. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -2
  285. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  286. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  287. package/dest/services/reqresp/rate-limiter/rate_limits.js +21 -1
  288. package/dest/services/reqresp/reqresp.d.ts +29 -66
  289. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  290. package/dest/services/reqresp/reqresp.js +753 -248
  291. package/dest/services/reqresp/status.d.ts +10 -4
  292. package/dest/services/reqresp/status.d.ts.map +1 -1
  293. package/dest/services/reqresp/status.js +9 -2
  294. package/dest/services/service.d.ts +40 -20
  295. package/dest/services/service.d.ts.map +1 -1
  296. package/dest/services/tx_collection/config.d.ts +28 -0
  297. package/dest/services/tx_collection/config.d.ts.map +1 -0
  298. package/dest/services/tx_collection/config.js +66 -0
  299. package/dest/services/tx_collection/fast_tx_collection.d.ts +53 -0
  300. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -0
  301. package/dest/services/tx_collection/fast_tx_collection.js +311 -0
  302. package/dest/services/tx_collection/index.d.ts +4 -0
  303. package/dest/services/tx_collection/index.d.ts.map +1 -0
  304. package/dest/services/tx_collection/index.js +3 -0
  305. package/dest/services/tx_collection/instrumentation.d.ts +10 -0
  306. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -0
  307. package/dest/services/tx_collection/instrumentation.js +31 -0
  308. package/dest/services/tx_collection/proposal_tx_collector.d.ts +48 -0
  309. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -0
  310. package/dest/services/tx_collection/proposal_tx_collector.js +50 -0
  311. package/dest/services/tx_collection/slow_tx_collection.d.ts +53 -0
  312. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -0
  313. package/dest/services/tx_collection/slow_tx_collection.js +177 -0
  314. package/dest/services/tx_collection/tx_collection.d.ts +110 -0
  315. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -0
  316. package/dest/services/tx_collection/tx_collection.js +128 -0
  317. package/dest/services/tx_collection/tx_collection_sink.d.ts +30 -0
  318. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -0
  319. package/dest/services/tx_collection/tx_collection_sink.js +111 -0
  320. package/dest/services/tx_collection/tx_source.d.ts +18 -0
  321. package/dest/services/tx_collection/tx_source.d.ts.map +1 -0
  322. package/dest/services/tx_collection/tx_source.js +31 -0
  323. package/dest/services/tx_file_store/config.d.ts +18 -0
  324. package/dest/services/tx_file_store/config.d.ts.map +1 -0
  325. package/dest/services/tx_file_store/config.js +26 -0
  326. package/dest/services/tx_file_store/index.d.ts +4 -0
  327. package/dest/services/tx_file_store/index.d.ts.map +1 -0
  328. package/dest/services/tx_file_store/index.js +3 -0
  329. package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
  330. package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
  331. package/dest/services/tx_file_store/instrumentation.js +29 -0
  332. package/dest/services/tx_file_store/tx_file_store.d.ts +47 -0
  333. package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
  334. package/dest/services/tx_file_store/tx_file_store.js +149 -0
  335. package/dest/services/tx_provider.d.ts +51 -0
  336. package/dest/services/tx_provider.d.ts.map +1 -0
  337. package/dest/services/tx_provider.js +219 -0
  338. package/dest/services/tx_provider_instrumentation.d.ts +16 -0
  339. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -0
  340. package/dest/services/tx_provider_instrumentation.js +34 -0
  341. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  342. package/dest/test-helpers/get-ports.d.ts +1 -1
  343. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  344. package/dest/test-helpers/index.d.ts +4 -1
  345. package/dest/test-helpers/index.d.ts.map +1 -1
  346. package/dest/test-helpers/index.js +3 -0
  347. package/dest/test-helpers/make-enrs.d.ts +1 -1
  348. package/dest/test-helpers/make-enrs.d.ts.map +1 -1
  349. package/dest/test-helpers/make-enrs.js +4 -5
  350. package/dest/test-helpers/make-test-p2p-clients.d.ts +33 -5
  351. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  352. package/dest/test-helpers/make-test-p2p-clients.js +86 -16
  353. package/dest/test-helpers/mock-pubsub.d.ts +59 -0
  354. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -0
  355. package/dest/test-helpers/mock-pubsub.js +130 -0
  356. package/dest/test-helpers/mock-tx-helpers.d.ts +12 -0
  357. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -0
  358. package/dest/test-helpers/mock-tx-helpers.js +19 -0
  359. package/dest/test-helpers/reqresp-nodes.d.ts +15 -11
  360. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  361. package/dest/test-helpers/reqresp-nodes.js +62 -28
  362. package/dest/test-helpers/test_tx_provider.d.ts +40 -0
  363. package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
  364. package/dest/test-helpers/test_tx_provider.js +41 -0
  365. package/dest/test-helpers/testbench-utils.d.ts +158 -0
  366. package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
  367. package/dest/test-helpers/testbench-utils.js +297 -0
  368. package/dest/testbench/p2p_client_testbench_worker.d.ts +28 -2
  369. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  370. package/dest/testbench/p2p_client_testbench_worker.js +259 -90
  371. package/dest/testbench/parse_log_file.d.ts +1 -1
  372. package/dest/testbench/parse_log_file.js +4 -4
  373. package/dest/testbench/testbench.d.ts +1 -1
  374. package/dest/testbench/testbench.js +4 -4
  375. package/dest/testbench/worker_client_manager.d.ts +51 -11
  376. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  377. package/dest/testbench/worker_client_manager.js +232 -53
  378. package/dest/types/index.d.ts +4 -2
  379. package/dest/types/index.d.ts.map +1 -1
  380. package/dest/types/index.js +2 -0
  381. package/dest/util.d.ts +24 -16
  382. package/dest/util.d.ts.map +1 -1
  383. package/dest/util.js +75 -69
  384. package/dest/versioning.d.ts +4 -4
  385. package/dest/versioning.d.ts.map +1 -1
  386. package/dest/versioning.js +8 -3
  387. package/package.json +32 -27
  388. package/src/bootstrap/bootstrap.ts +34 -15
  389. package/src/client/factory.ts +139 -53
  390. package/src/client/index.ts +1 -0
  391. package/src/client/interface.ts +213 -0
  392. package/src/client/p2p_client.ts +481 -383
  393. package/src/client/test/tx_proposal_collector/README.md +227 -0
  394. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +336 -0
  395. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker_protocol.ts +43 -0
  396. package/src/config.ts +311 -134
  397. package/src/enr/generate-enr.ts +39 -6
  398. package/src/errors/attestation-pool.error.ts +13 -0
  399. package/src/index.ts +4 -0
  400. package/src/mem_pools/attestation_pool/attestation_pool.ts +119 -24
  401. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +352 -201
  402. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +233 -72
  403. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +199 -96
  404. package/src/mem_pools/attestation_pool/mocks.ts +24 -17
  405. package/src/mem_pools/instrumentation.ts +72 -48
  406. package/src/mem_pools/interface.ts +2 -4
  407. package/src/mem_pools/tx_pool/README.md +270 -0
  408. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +580 -143
  409. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +132 -0
  410. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +208 -0
  411. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +162 -0
  412. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
  413. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +93 -0
  414. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
  415. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +75 -0
  416. package/src/mem_pools/tx_pool/index.ts +0 -1
  417. package/src/mem_pools/tx_pool/priority.ts +9 -2
  418. package/src/mem_pools/tx_pool/tx_pool.ts +75 -10
  419. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +225 -36
  420. package/src/msg_validators/attestation_validator/attestation_validator.ts +72 -14
  421. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +94 -0
  422. package/src/msg_validators/attestation_validator/index.ts +1 -0
  423. package/src/msg_validators/clock_tolerance.ts +51 -0
  424. package/src/msg_validators/index.ts +1 -1
  425. package/src/msg_validators/msg_seen_validator/msg_seen_validator.ts +36 -0
  426. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +10 -0
  427. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -0
  428. package/src/msg_validators/proposal_validator/index.ts +3 -0
  429. package/src/msg_validators/proposal_validator/proposal_validator.ts +92 -0
  430. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +230 -0
  431. package/src/msg_validators/tx_validator/allowed_public_setup.ts +35 -0
  432. package/src/msg_validators/tx_validator/archive_cache.ts +28 -0
  433. package/src/msg_validators/tx_validator/block_header_validator.ts +10 -9
  434. package/src/msg_validators/tx_validator/data_validator.ts +95 -71
  435. package/src/msg_validators/tx_validator/double_spend_validator.ts +23 -20
  436. package/src/msg_validators/tx_validator/factory.ts +151 -0
  437. package/src/msg_validators/tx_validator/fee_payer_balance.ts +40 -0
  438. package/src/msg_validators/tx_validator/gas_validator.ts +123 -0
  439. package/src/msg_validators/tx_validator/index.ts +8 -0
  440. package/src/msg_validators/tx_validator/metadata_validator.ts +72 -24
  441. package/src/msg_validators/tx_validator/phases_validator.ts +118 -0
  442. package/src/msg_validators/tx_validator/size_validator.ts +22 -0
  443. package/src/msg_validators/tx_validator/test_utils.ts +43 -0
  444. package/src/msg_validators/tx_validator/timestamp_validator.ts +52 -0
  445. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +22 -0
  446. package/src/msg_validators/tx_validator/tx_proof_validator.ts +14 -8
  447. package/src/services/data_store.ts +10 -7
  448. package/src/services/discv5/discV5_service.ts +85 -39
  449. package/src/services/dummy_service.ts +198 -9
  450. package/src/services/encoding.ts +82 -6
  451. package/src/services/index.ts +5 -0
  452. package/src/services/libp2p/instrumentation.ts +126 -0
  453. package/src/services/libp2p/libp2p_service.ts +1170 -353
  454. package/src/services/peer-manager/interface.ts +29 -0
  455. package/src/services/peer-manager/metrics.ts +55 -12
  456. package/src/services/peer-manager/peer_manager.ts +657 -80
  457. package/src/services/peer-manager/peer_scoring.ts +45 -3
  458. package/src/services/reqresp/batch-tx-requester/README.md +305 -0
  459. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +706 -0
  460. package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
  461. package/src/services/reqresp/batch-tx-requester/interface.ts +57 -0
  462. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +209 -0
  463. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +205 -0
  464. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +37 -0
  465. package/src/services/reqresp/config.ts +26 -9
  466. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +77 -10
  467. package/src/services/reqresp/connection-sampler/connection_sampler.ts +166 -95
  468. package/src/services/reqresp/constants.ts +14 -0
  469. package/src/services/reqresp/index.ts +2 -0
  470. package/src/services/reqresp/interface.ts +95 -37
  471. package/src/services/reqresp/metrics.ts +40 -28
  472. package/src/services/reqresp/protocols/auth.ts +83 -0
  473. package/src/services/reqresp/protocols/block.ts +26 -4
  474. package/src/services/reqresp/protocols/block_txs/bitvector.ts +106 -0
  475. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +67 -0
  476. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +121 -0
  477. package/src/services/reqresp/protocols/block_txs/index.ts +3 -0
  478. package/src/services/reqresp/protocols/goodbye.ts +9 -7
  479. package/src/services/reqresp/protocols/index.ts +2 -0
  480. package/src/services/reqresp/protocols/status.ts +121 -5
  481. package/src/services/reqresp/protocols/tx.ts +36 -8
  482. package/src/services/reqresp/rate-limiter/rate_limiter.ts +12 -3
  483. package/src/services/reqresp/rate-limiter/rate_limits.ts +21 -1
  484. package/src/services/reqresp/reqresp.ts +449 -271
  485. package/src/services/reqresp/status.ts +12 -3
  486. package/src/services/service.ts +65 -22
  487. package/src/services/tx_collection/config.ts +98 -0
  488. package/src/services/tx_collection/fast_tx_collection.ts +364 -0
  489. package/src/services/tx_collection/index.ts +7 -0
  490. package/src/services/tx_collection/instrumentation.ts +35 -0
  491. package/src/services/tx_collection/proposal_tx_collector.ts +114 -0
  492. package/src/services/tx_collection/slow_tx_collection.ts +233 -0
  493. package/src/services/tx_collection/tx_collection.ts +216 -0
  494. package/src/services/tx_collection/tx_collection_sink.ts +129 -0
  495. package/src/services/tx_collection/tx_source.ts +37 -0
  496. package/src/services/tx_file_store/config.ts +43 -0
  497. package/src/services/tx_file_store/index.ts +3 -0
  498. package/src/services/tx_file_store/instrumentation.ts +36 -0
  499. package/src/services/tx_file_store/tx_file_store.ts +173 -0
  500. package/src/services/tx_provider.ts +232 -0
  501. package/src/services/tx_provider_instrumentation.ts +54 -0
  502. package/src/test-helpers/index.ts +3 -0
  503. package/src/test-helpers/make-enrs.ts +4 -5
  504. package/src/test-helpers/make-test-p2p-clients.ts +111 -21
  505. package/src/test-helpers/mock-pubsub.ts +188 -0
  506. package/src/test-helpers/mock-tx-helpers.ts +24 -0
  507. package/src/test-helpers/reqresp-nodes.ts +87 -36
  508. package/src/test-helpers/test_tx_provider.ts +64 -0
  509. package/src/test-helpers/testbench-utils.ts +374 -0
  510. package/src/testbench/p2p_client_testbench_worker.ts +434 -89
  511. package/src/testbench/parse_log_file.ts +4 -4
  512. package/src/testbench/testbench.ts +4 -4
  513. package/src/testbench/worker_client_manager.ts +315 -59
  514. package/src/types/index.ts +2 -0
  515. package/src/util.ts +105 -91
  516. package/src/versioning.ts +11 -4
  517. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -56
  518. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  519. package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -141
  520. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -8
  521. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  522. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -21
  523. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  524. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  525. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  526. package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -174
  527. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -29
  528. package/src/msg_validators/block_proposal_validator/index.ts +0 -1
@@ -1,3 +1,4 @@
1
+ import { type LoggerBindings } from '@aztec/foundation/log';
1
2
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
3
  import type { P2PBootstrapApi } from '@aztec/stdlib/interfaces/server';
3
4
  import { type TelemetryClient } from '@aztec/telemetry-client';
@@ -9,10 +10,10 @@ import type { BootnodeConfig } from '../config.js';
9
10
  export declare class BootstrapNode implements P2PBootstrapApi {
10
11
  private store;
11
12
  private telemetry;
12
- private logger;
13
13
  private node?;
14
14
  private peerId?;
15
- constructor(store: AztecAsyncKVStore, telemetry: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
15
+ private logger;
16
+ constructor(store: AztecAsyncKVStore, telemetry: TelemetryClient, bindings?: LoggerBindings);
16
17
  /**
17
18
  * Starts the bootstrap node.
18
19
  * @param config - A partial P2P configuration. No need for TCP values as well as aztec node specific values.
@@ -35,4 +36,4 @@ export declare class BootstrapNode implements P2PBootstrapApi {
35
36
  getEncodedEnr(): Promise<any>;
36
37
  getRoutingTable(): Promise<any>;
37
38
  }
38
- //# sourceMappingURL=bootstrap.d.ts.map
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYm9vdHN0cmFwL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsS0FBSyxjQUFjLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQXNCLEtBQUssZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFLaEQsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSW5EOztHQUVHO0FBQ0gscUJBQWEsYUFBYyxZQUFXLGVBQWU7SUFNakQsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsU0FBUztJQU5uQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQWlDO0lBQzlDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBUztJQUN4QixPQUFPLENBQUMsTUFBTSxDQUFTO0lBRXZCLFlBQ1UsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixTQUFTLEVBQUUsZUFBZSxFQUNsQyxRQUFRLENBQUMsRUFBRSxjQUFjLEVBRzFCO0lBRUQ7Ozs7T0FJRztJQUNVLEtBQUssQ0FBQyxNQUFNLEVBQUUsY0FBYyxpQkFpRnhDO0lBRUQ7OztPQUdHO0lBQ1UsSUFBSSxrQkFLaEI7SUFFRCxPQUFPLENBQUMsaUJBQWlCO0lBTXpCLE9BQU8sQ0FBQyxZQUFZO0lBTXBCOzs7T0FHRztJQUNJLFNBQVMsV0FHZjtJQUVNLE1BQU0sUUFHWjtJQUVNLGFBQWEsaUJBR25CO0lBRU0sZUFBZSxpQkFHckI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAKjD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,IAAI,CAAC,CAA0C;IACvD,OAAO,CAAC,MAAM,CAAC,CAAS;gBAGd,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,eAAe,EAC1B,MAAM,yCAAgC;IAGhD;;;;OAIG;IACU,KAAK,CAAC,MAAM,EAAE,cAAc;IAmEzC;;;OAGG;IACU,IAAI;IAOjB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACI,SAAS;IAKT,MAAM;IAKN,aAAa;IAKb,eAAe;CAIvB"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,cAAc,EAAgB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAMjD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IANnB,OAAO,CAAC,IAAI,CAAC,CAAiC;IAC9C,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IAEvB,YACU,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,eAAe,EAClC,QAAQ,CAAC,EAAE,cAAc,EAG1B;IAED;;;;OAIG;IACU,KAAK,CAAC,MAAM,EAAE,cAAc,iBAiFxC;IAED;;;OAGG;IACU,IAAI,kBAKhB;IAED,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACI,SAAS,WAGf;IAEM,MAAM,QAGZ;IAEM,aAAa,iBAGnB;IAEM,eAAe,iBAGrB;CACF"}
@@ -1,39 +1,52 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { OtelMetricsAdapter } from '@aztec/telemetry-client';
3
- import { Discv5 } from '@chainsafe/discv5';
4
- import { ENR } from '@chainsafe/enr';
5
3
  import { multiaddr } from '@multiformats/multiaddr';
4
+ import { Discv5 } from '@nethermindeth/discv5';
5
+ import { ENR } from '@nethermindeth/enr';
6
6
  import { createBootnodeENRandPeerId } from '../enr/generate-enr.js';
7
- import { convertToMultiaddr, getPeerIdPrivateKey } from '../util.js';
7
+ import { convertToMultiaddr, getPeerIdPrivateKey, getPublicIp } from '../util.js';
8
8
  /**
9
9
  * Encapsulates a 'Bootstrap' node, used for the purpose of assisting new joiners in acquiring peers.
10
10
  */ export class BootstrapNode {
11
11
  store;
12
12
  telemetry;
13
- logger;
14
13
  node;
15
14
  peerId;
16
- constructor(store, telemetry, logger = createLogger('p2p:bootstrap')){
15
+ logger;
16
+ constructor(store, telemetry, bindings){
17
17
  this.store = store;
18
18
  this.telemetry = telemetry;
19
- this.logger = logger;
20
19
  this.node = undefined;
20
+ this.logger = createLogger('p2p:bootstrap', bindings);
21
21
  }
22
22
  /**
23
23
  * Starts the bootstrap node.
24
24
  * @param config - A partial P2P configuration. No need for TCP values as well as aztec node specific values.
25
25
  * @returns An empty promise.
26
26
  */ async start(config) {
27
- const { udpListenAddress, udpAnnounceAddress } = config;
28
- const listenAddrUdp = multiaddr(convertToMultiaddr(udpListenAddress, 'udp'));
29
- if (!udpAnnounceAddress) {
30
- throw new Error('You need to provide a UDP announce address.');
27
+ const { p2pPort, listenAddress, p2pBroadcastPort, queryForIp } = config;
28
+ let p2pIp = config.p2pIp;
29
+ this.logger.info(`Starting bootstrap node with config: ${JSON.stringify(config)}`);
30
+ if (!p2pIp) {
31
+ if (queryForIp) {
32
+ this.logger.info('Querying for public IP address...');
33
+ const publicIp = await getPublicIp();
34
+ p2pIp = publicIp;
35
+ this.logger.info(`Found public IP address: ${publicIp}`);
36
+ }
37
+ }
38
+ if (!p2pIp) {
39
+ throw new Error('You need to provide a P2P IP address.');
40
+ }
41
+ if (!p2pBroadcastPort) {
42
+ config.p2pBroadcastPort = p2pPort;
31
43
  }
32
- const peerIdPrivateKey = await getPeerIdPrivateKey(config, this.store);
33
- const { enr: ourEnr, peerId } = await createBootnodeENRandPeerId(peerIdPrivateKey, udpAnnounceAddress, config.l1ChainId);
44
+ const listenAddrUdp = multiaddr(convertToMultiaddr(listenAddress, config.p2pBroadcastPort, 'udp'));
45
+ const peerIdPrivateKey = await getPeerIdPrivateKey(config, this.store, this.logger);
46
+ const { enr: ourEnr, peerId } = await createBootnodeENRandPeerId(peerIdPrivateKey.getValue(), p2pIp, config.p2pBroadcastPort, config.l1ChainId);
34
47
  this.peerId = peerId;
35
48
  this.logger.debug(`Starting bootstrap node ${peerId} listening on ${listenAddrUdp.toString()}`);
36
- const metricsRegistry = new OtelMetricsAdapter(this.telemetry);
49
+ const metricsRegistry = new OtelMetricsAdapter(this.telemetry, this.logger.getBindings());
37
50
  this.node = Discv5.create({
38
51
  enr: ourEnr,
39
52
  peerId,
@@ -1,8 +1,11 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
2
  import { type Logger } from '@aztec/foundation/log';
3
+ import { DateProvider } from '@aztec/foundation/timer';
3
4
  import type { AztecAsyncKVStore } from '@aztec/kv-store';
4
5
  import type { DataStoreConfig } from '@aztec/kv-store/config';
5
6
  import type { L2BlockSource } from '@aztec/stdlib/block';
7
+ import type { ChainConfig } from '@aztec/stdlib/config';
8
+ import type { ContractDataSource } from '@aztec/stdlib/contract';
6
9
  import type { ClientProtocolCircuitVerifier, WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
7
10
  import { P2PClientType } from '@aztec/stdlib/p2p';
8
11
  import { type TelemetryClient } from '@aztec/telemetry-client';
@@ -10,12 +13,19 @@ import { P2PClient } from '../client/p2p_client.js';
10
13
  import type { P2PConfig } from '../config.js';
11
14
  import type { AttestationPool } from '../mem_pools/attestation_pool/attestation_pool.js';
12
15
  import { type TxPool } from '../mem_pools/tx_pool/index.js';
13
- type P2PClientDeps<T extends P2PClientType> = {
16
+ import { LibP2PService } from '../services/index.js';
17
+ import { type TxSource } from '../services/tx_collection/tx_source.js';
18
+ export type P2PClientDeps<T extends P2PClientType> = {
14
19
  txPool?: TxPool;
15
20
  store?: AztecAsyncKVStore;
16
- attestationPool?: T extends P2PClientType.Full ? AttestationPool : undefined;
21
+ attestationPool?: AttestationPool;
17
22
  logger?: Logger;
23
+ txCollectionNodeSources?: TxSource[];
24
+ p2pServiceFactory?: (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService<T>>;
18
25
  };
19
- export declare const createP2PClient: <T extends P2PClientType>(clientType: T, _config: P2PConfig & DataStoreConfig, l2BlockSource: L2BlockSource, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, epochCache: EpochCacheInterface, telemetry?: TelemetryClient, deps?: P2PClientDeps<T>) => Promise<P2PClient<T>>;
20
- export {};
21
- //# sourceMappingURL=factory.d.ts.map
26
+ export declare const P2P_STORE_NAME = "p2p";
27
+ export declare const P2P_ARCHIVE_STORE_NAME = "p2p-archive";
28
+ export declare const P2P_PEER_STORE_NAME = "p2p-peers";
29
+ export declare const P2P_ATTESTATION_STORE_NAME = "p2p-attestation";
30
+ export declare function createP2PClient<T extends P2PClientType>(clientType: T, inputConfig: P2PConfig & DataStoreConfig & ChainConfig, archiver: L2BlockSource & ContractDataSource, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, epochCache: EpochCacheInterface, packageVersion: string, dateProvider?: DateProvider, telemetry?: TelemetryClient, deps?: P2PClientDeps<T>): Promise<P2PClient<T>>;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFHekYsT0FBTyxFQUFpQixLQUFLLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFJL0YsTUFBTSxNQUFNLGFBQWEsQ0FBQyxDQUFDLFNBQVMsYUFBYSxJQUFJO0lBQ25ELE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixLQUFLLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUMxQixlQUFlLENBQUMsRUFBRSxlQUFlLENBQUM7SUFDbEMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLHVCQUF1QixDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDckMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLE9BQU8sYUFBYSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDdkcsQ0FBQztBQUVGLGVBQU8sTUFBTSxjQUFjLFFBQVEsQ0FBQztBQUNwQyxlQUFPLE1BQU0sc0JBQXNCLGdCQUFnQixDQUFDO0FBQ3BELGVBQU8sTUFBTSxtQkFBbUIsY0FBYyxDQUFDO0FBQy9DLGVBQU8sTUFBTSwwQkFBMEIsb0JBQW9CLENBQUM7QUFFNUQsd0JBQXNCLGVBQWUsQ0FBQyxDQUFDLFNBQVMsYUFBYSxFQUMzRCxVQUFVLEVBQUUsQ0FBQyxFQUNiLFdBQVcsRUFBRSxTQUFTLEdBQUcsZUFBZSxHQUFHLFdBQVcsRUFDdEQsUUFBUSxFQUFFLGFBQWEsR0FBRyxrQkFBa0IsRUFDNUMsYUFBYSxFQUFFLDZCQUE2QixFQUM1QyxzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsVUFBVSxFQUFFLG1CQUFtQixFQUMvQixjQUFjLEVBQUUsTUFBTSxFQUN0QixZQUFZLEdBQUUsWUFBaUMsRUFDL0MsU0FBUyxHQUFFLGVBQXNDLEVBQ2pELElBQUksR0FBRSxhQUFhLENBQUMsQ0FBQyxDQUFNLHlCQW1GNUIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/client/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAGzF,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAM3E,KAAK,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,SAAS,aAAa,CAAC,IAAI,GAAG,eAAe,GAAG,SAAS,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,wCACd,CAAC,WACJ,SAAS,GAAG,eAAe,iBACrB,aAAa,iBACb,6BAA6B,0BACpB,sBAAsB,cAClC,mBAAmB,cACpB,eAAe,SACpB,cAAc,CAAC,CAAC,0BAoDvB,CAAC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/client/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAGzF,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,wCAAwC,CAAC;AAI/F,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACvG,CAAC;AAEF,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,wBAAsB,eAAe,CAAC,CAAC,SAAS,aAAa,EAC3D,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,SAAS,GAAG,eAAe,GAAG,WAAW,EACtD,QAAQ,EAAE,aAAa,GAAG,kBAAkB,EAC5C,aAAa,EAAE,6BAA6B,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,mBAAmB,EAC/B,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,YAAiC,EAC/C,SAAS,GAAE,eAAsC,EACjD,IAAI,GAAE,aAAa,CAAC,CAAC,CAAM,yBAmF5B"}
@@ -1,37 +1,75 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
+ import { DateProvider } from '@aztec/foundation/timer';
2
3
  import { createStore } from '@aztec/kv-store/lmdb-v2';
3
- import { P2PClientType } from '@aztec/stdlib/p2p';
4
4
  import { getTelemetryClient } from '@aztec/telemetry-client';
5
5
  import { P2PClient } from '../client/p2p_client.js';
6
- import { InMemoryAttestationPool } from '../mem_pools/attestation_pool/memory_attestation_pool.js';
6
+ import { KvAttestationPool } from '../mem_pools/attestation_pool/kv_attestation_pool.js';
7
7
  import { AztecKVTxPool } from '../mem_pools/tx_pool/index.js';
8
- import { DiscV5Service } from '../services/discv5/discV5_service.js';
9
8
  import { DummyP2PService } from '../services/dummy_service.js';
10
9
  import { LibP2PService } from '../services/index.js';
10
+ import { TxCollection } from '../services/tx_collection/tx_collection.js';
11
+ import { createNodeRpcTxSources } from '../services/tx_collection/tx_source.js';
12
+ import { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
11
13
  import { configureP2PClientAddresses, createLibP2PPeerIdFromPrivateKey, getPeerIdPrivateKey } from '../util.js';
12
- export const createP2PClient = async (clientType, _config, l2BlockSource, proofVerifier, worldStateSynchronizer, epochCache, telemetry = getTelemetryClient(), deps = {})=>{
13
- let config = {
14
- ..._config
15
- };
14
+ export const P2P_STORE_NAME = 'p2p';
15
+ export const P2P_ARCHIVE_STORE_NAME = 'p2p-archive';
16
+ export const P2P_PEER_STORE_NAME = 'p2p-peers';
17
+ export const P2P_ATTESTATION_STORE_NAME = 'p2p-attestation';
18
+ export async function createP2PClient(clientType, inputConfig, archiver, proofVerifier, worldStateSynchronizer, epochCache, packageVersion, dateProvider = new DateProvider(), telemetry = getTelemetryClient(), deps = {}) {
19
+ const config = await configureP2PClientAddresses({
20
+ ...inputConfig,
21
+ dataStoreMapSizeKb: inputConfig.p2pStoreMapSizeKb ?? inputConfig.dataStoreMapSizeKb
22
+ });
16
23
  const logger = deps.logger ?? createLogger('p2p');
17
- const store = deps.store ?? await createStore('p2p', 1, config, createLogger('p2p:lmdb-v2'));
18
- const archive = await createStore('p2p-archive', 1, config, createLogger('p2p-archive:lmdb-v2'));
24
+ if (config.bootstrapNodes.length === 0) {
25
+ logger.warn('No bootstrap nodes have been provided. Set the BOOTSTRAP_NODES environment variable in order to join the P2P network');
26
+ }
27
+ const bindings = logger.getBindings();
28
+ const store = deps.store ?? await createStore(P2P_STORE_NAME, 2, config, bindings);
29
+ const archive = await createStore(P2P_ARCHIVE_STORE_NAME, 1, config, bindings);
30
+ const peerStore = await createStore(P2P_PEER_STORE_NAME, 1, config, bindings);
31
+ const attestationStore = await createStore(P2P_ATTESTATION_STORE_NAME, 1, config, bindings);
32
+ const l1Constants = await archiver.getL1Constants();
19
33
  const mempools = {
20
- txPool: deps.txPool ?? new AztecKVTxPool(store, archive, telemetry, config.archivedTxLimit),
21
- attestationPool: clientType === P2PClientType.Full ? deps.attestationPool ?? new InMemoryAttestationPool(telemetry) : undefined
34
+ txPool: deps.txPool ?? new AztecKVTxPool(store, archive, worldStateSynchronizer, telemetry, {
35
+ maxPendingTxCount: config.maxPendingTxCount,
36
+ archivedTxLimit: config.archivedTxLimit
37
+ }),
38
+ attestationPool: deps.attestationPool ?? new KvAttestationPool(attestationStore, telemetry)
22
39
  };
23
- let p2pService;
24
- if (_config.p2pEnabled) {
25
- logger.verbose('P2P is enabled. Using LibP2P service.');
26
- config = await configureP2PClientAddresses(_config);
27
- // Create peer discovery service
28
- const peerIdPrivateKey = await getPeerIdPrivateKey(config, store);
29
- const peerId = await createLibP2PPeerIdFromPrivateKey(peerIdPrivateKey);
30
- const discoveryService = new DiscV5Service(peerId, config, telemetry, createLogger(`${logger.module}:discv5_service`));
31
- p2pService = await LibP2PService.new(clientType, config, discoveryService, peerId, mempools, l2BlockSource, epochCache, proofVerifier, worldStateSynchronizer, store, telemetry, createLogger(`${logger.module}:libp2p_service`));
32
- } else {
33
- logger.verbose('P2P is disabled. Using dummy P2P service');
34
- p2pService = new DummyP2PService();
40
+ const p2pService = await createP2PService(config, clientType, archiver, proofVerifier, worldStateSynchronizer, epochCache, store, peerStore, mempools, deps.p2pServiceFactory, packageVersion, logger.createChild('libp2p_service'), telemetry);
41
+ const nodeSources = [
42
+ ...createNodeRpcTxSources(config.txCollectionNodeRpcUrls, config),
43
+ ...deps.txCollectionNodeSources ?? []
44
+ ];
45
+ if (nodeSources.length > 0) {
46
+ logger.info(`Using ${nodeSources.length} node RPC sources for tx collection.`, {
47
+ nodes: nodeSources.map((n)=>n.getInfo())
48
+ });
49
+ }
50
+ const txCollection = new TxCollection(p2pService.getBatchTxRequesterService(), nodeSources, l1Constants, mempools.txPool, config, dateProvider, telemetry, logger.createChild('tx-collection'));
51
+ const txFileStore = await TxFileStore.create(mempools.txPool, config, logger.createChild('tx-file-store'), telemetry);
52
+ return new P2PClient(clientType, store, archiver, mempools, p2pService, txCollection, txFileStore, config, dateProvider, telemetry);
53
+ }
54
+ async function createP2PService(config, clientType, archiver, proofVerifier, worldStateSynchronizer, epochCache, store, peerStore, mempools, p2pServiceFactory, packageVersion, logger, telemetry) {
55
+ if (!config.p2pEnabled) {
56
+ logger.verbose('P2P is disabled. Using dummy P2P service.');
57
+ return new DummyP2PService();
35
58
  }
36
- return new P2PClient(clientType, store, l2BlockSource, mempools, p2pService, config, telemetry);
37
- };
59
+ logger.verbose('P2P is enabled. Using LibP2P service.');
60
+ // Create peer discovery service
61
+ const peerIdPrivateKey = await getPeerIdPrivateKey(config, store, logger);
62
+ const peerId = await createLibP2PPeerIdFromPrivateKey(peerIdPrivateKey.getValue());
63
+ const p2pService = await (p2pServiceFactory ?? LibP2PService.new)(clientType, config, peerId, {
64
+ packageVersion,
65
+ mempools,
66
+ l2BlockSource: archiver,
67
+ epochCache,
68
+ proofVerifier,
69
+ worldStateSynchronizer,
70
+ peerStore,
71
+ telemetry,
72
+ logger: logger.createChild(`libp2p_service`)
73
+ });
74
+ return p2pService;
75
+ }
@@ -1,3 +1,4 @@
1
1
  export * from './p2p_client.js';
2
2
  export * from './factory.js';
3
- //# sourceMappingURL=index.d.ts.map
3
+ export * from './interface.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './p2p_client.js';
2
2
  export * from './factory.js';
3
+ export * from './interface.js';
@@ -0,0 +1,170 @@
1
+ import type { EthAddress, L2BlockId } from '@aztec/stdlib/block';
2
+ import type { P2PApiFull } from '@aztec/stdlib/interfaces/server';
3
+ import type { BlockProposal, CheckpointAttestation, CheckpointProposal, P2PClientType } from '@aztec/stdlib/p2p';
4
+ import type { Tx, TxHash } from '@aztec/stdlib/tx';
5
+ import type { PeerId } from '@libp2p/interface';
6
+ import type { ENR } from '@nethermindeth/enr';
7
+ import type { P2PConfig } from '../config.js';
8
+ import type { AuthRequest, StatusMessage } from '../services/index.js';
9
+ import type { ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators } from '../services/reqresp/interface.js';
10
+ import type { P2PBlockReceivedCallback, P2PCheckpointReceivedCallback } from '../services/service.js';
11
+ /**
12
+ * Enum defining the possible states of the p2p client.
13
+ */
14
+ export declare enum P2PClientState {
15
+ IDLE = 0,
16
+ SYNCHING = 1,
17
+ RUNNING = 2,
18
+ STOPPED = 3
19
+ }
20
+ /**
21
+ * The synchronization status of the P2P client.
22
+ */
23
+ export interface P2PSyncState {
24
+ /**
25
+ * The current state of the p2p client.
26
+ */
27
+ state: P2PClientState;
28
+ /**
29
+ * The block number that the p2p client is synced to.
30
+ */
31
+ syncedToL2Block: L2BlockId;
32
+ }
33
+ /**
34
+ * Interface of a P2P client.
35
+ **/
36
+ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> & {
37
+ /**
38
+ * Broadcasts a block proposal to other peers.
39
+ *
40
+ * @param proposal - the block proposal
41
+ */
42
+ broadcastProposal(proposal: BlockProposal): Promise<void>;
43
+ /**
44
+ * Broadcasts a checkpoint proposal (last block in a checkpoint) to other peers.
45
+ *
46
+ * @param proposal - the checkpoint proposal
47
+ */
48
+ broadcastCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
49
+ /** Broadcasts checkpoint attestations to other peers. */
50
+ broadcastCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
51
+ /**
52
+ * Registers a callback from the validator client that determines how to behave when
53
+ * foreign block proposals are received
54
+ *
55
+ * @param handler - A function taking a received block proposal and producing an attestation
56
+ */
57
+ registerBlockProposalHandler(callback: P2PBlockReceivedCallback): void;
58
+ /**
59
+ * Registers a callback from the validator client that determines how to behave when
60
+ * foreign checkpoint proposals are received
61
+ *
62
+ * @param handler - A function taking a received checkpoint proposal and producing attestations
63
+ */
64
+ registerCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
65
+ /**
66
+ * Request a list of transactions from another peer by their tx hashes.
67
+ * @param txHashes - Hashes of the txs to query.
68
+ * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
69
+ * @returns A list of transactions or undefined if the transactions are not found.
70
+ */
71
+ requestTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId): Promise<Tx[]>;
72
+ /**
73
+ * Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
74
+ * @param tx - The transaction.
75
+ **/
76
+ sendTx(tx: Tx): Promise<void>;
77
+ /**
78
+ * Adds transactions to the pool. Does not send to peers or validate the tx.
79
+ * @param txs - The transactions.
80
+ * @returns The number of txs added to the pool. Note if the transaction already exists, it will not be added again.
81
+ **/
82
+ addTxsToPool(txs: Tx[]): Promise<number>;
83
+ /**
84
+ * Deletes 'txs' from the pool, given hashes.
85
+ * NOT used if we use sendTx as reconcileTxPool will handle this.
86
+ * @param txHashes - Hashes to check.
87
+ **/
88
+ deleteTxs(txHashes: TxHash[]): Promise<void>;
89
+ /**
90
+ * Returns a transaction in the transaction pool by its hash.
91
+ * @param txHash - Hash of tx to return.
92
+ * @returns A single tx or undefined.
93
+ */
94
+ getTxByHashFromPool(txHash: TxHash): Promise<Tx | undefined>;
95
+ /**
96
+ * Returns transactions in the transaction pool by hash.
97
+ * @param txHashes - Hashes of txs to return.
98
+ * @returns An array of txs or undefined.
99
+ */
100
+ getTxsByHashFromPool(txHashes: TxHash[]): Promise<(Tx | undefined)[]>;
101
+ /**
102
+ * Checks if transactions exist in the pool
103
+ * @param txHashes - The hashes of the transactions to check for
104
+ * @returns True or False for each hash
105
+ */
106
+ hasTxsInPool(txHashes: TxHash[]): Promise<boolean[]>;
107
+ /**
108
+ * Returns transactions in the transaction pool by hash, requesting from the network if not found.
109
+ * @param txHashes - Hashes of tx to return.
110
+ * @param pinnedPeerId - An optional peer id that will be used to request the tx from (in addition to other random peers).
111
+ * @returns An array of tx or undefined.
112
+ */
113
+ getTxsByHash(txHashes: TxHash[], pinnedPeerId: PeerId | undefined): Promise<(Tx | undefined)[]>;
114
+ /**
115
+ * Returns an archived transaction from the transaction pool by its hash.
116
+ * @param txHash - Hash of tx to return.
117
+ * @returns A single tx or undefined.
118
+ */
119
+ getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
120
+ /**
121
+ * Returns whether the given tx hash is flagged as pending, mined, or deleted.
122
+ * @param txHash - Hash of the tx to query.
123
+ * @returns Pending, mined, or deleted depending on its status, or undefined if not found.
124
+ */
125
+ getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
126
+ /** Returns an iterator over pending txs on the mempool. */
127
+ iteratePendingTxs(): AsyncIterableIterator<Tx>;
128
+ /** Returns the number of pending txs in the mempool. */
129
+ getPendingTxCount(): Promise<number>;
130
+ /**
131
+ * Marks transactions as non-evictable in the pool.
132
+ * @param txHashes - Hashes of the transactions to mark as non-evictable.
133
+ */
134
+ markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
135
+ /**
136
+ * Starts the p2p client.
137
+ * @returns A promise signalling the completion of the block sync.
138
+ */
139
+ start(): Promise<void>;
140
+ /**
141
+ * Stops the p2p client.
142
+ * @returns A promise signalling the completion of the stop process.
143
+ */
144
+ stop(): Promise<void>;
145
+ /**
146
+ * Indicates if the p2p client is ready for transaction submission.
147
+ * @returns A boolean flag indicating readiness.
148
+ */
149
+ isReady(): boolean;
150
+ /**
151
+ * Returns the current status of the p2p client.
152
+ */
153
+ getStatus(): Promise<P2PSyncState>;
154
+ /**
155
+ * Returns the ENR of this node, if any.
156
+ */
157
+ getEnr(): ENR | undefined;
158
+ /** Identifies a p2p client. */
159
+ isP2PClient(): true;
160
+ updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
161
+ /** Validates a set of txs. */
162
+ validate(txs: Tx[]): Promise<void>;
163
+ /** Clears the db. */
164
+ clear(): Promise<void>;
165
+ addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
166
+ handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
167
+ /** If node running this P2P stack is validator, passes in validator address to P2P layer */
168
+ registerThisValidatorAddresses(address: EthAddress[]): void;
169
+ };
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pILE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUNWLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzdCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0Rzs7R0FFRztBQUNILG9CQUFZLGNBQWM7SUFDeEIsSUFBSSxJQUFBO0lBQ0osUUFBUSxJQUFBO0lBQ1IsT0FBTyxJQUFBO0lBQ1AsT0FBTyxJQUFBO0NBQ1I7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxZQUFZO0lBQzNCOztPQUVHO0lBQ0gsS0FBSyxFQUFFLGNBQWMsQ0FBQztJQUN0Qjs7T0FFRztJQUNILGVBQWUsRUFBRSxTQUFTLENB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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/client/interface.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Enum defining the possible states of the p2p client.
3
+ */ export var P2PClientState = /*#__PURE__*/ function(P2PClientState) {
4
+ P2PClientState[P2PClientState["IDLE"] = 0] = "IDLE";
5
+ P2PClientState[P2PClientState["SYNCHING"] = 1] = "SYNCHING";
6
+ P2PClientState[P2PClientState["RUNNING"] = 2] = "RUNNING";
7
+ P2PClientState[P2PClientState["STOPPED"] = 3] = "STOPPED";
8
+ return P2PClientState;
9
+ }({});