@aztec/p2p 0.0.0-test.1 → 0.0.1-commit.5476d83

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 (385) 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 +22 -9
  4. package/dest/client/factory.d.ts +14 -4
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +60 -24
  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 +157 -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 +72 -187
  14. package/dest/client/p2p_client.d.ts.map +1 -1
  15. package/dest/client/p2p_client.js +373 -177
  16. package/dest/config.d.ts +151 -125
  17. package/dest/config.d.ts.map +1 -1
  18. package/dest/config.js +183 -34
  19. package/dest/enr/generate-enr.d.ts +11 -3
  20. package/dest/enr/generate-enr.d.ts.map +1 -1
  21. package/dest/enr/generate-enr.js +27 -5
  22. package/dest/enr/index.d.ts +1 -1
  23. package/dest/errors/attestation-pool.error.d.ts +7 -0
  24. package/dest/errors/attestation-pool.error.d.ts.map +1 -0
  25. package/dest/errors/attestation-pool.error.js +12 -0
  26. package/dest/errors/reqresp.error.d.ts +1 -1
  27. package/dest/errors/reqresp.error.d.ts.map +1 -1
  28. package/dest/index.d.ts +4 -1
  29. package/dest/index.d.ts.map +1 -1
  30. package/dest/index.js +2 -0
  31. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +68 -8
  32. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  33. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  34. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  35. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +214 -63
  36. package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
  37. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +21 -6
  38. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  39. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +126 -25
  40. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +19 -6
  41. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  42. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +111 -21
  43. package/dest/mem_pools/attestation_pool/mocks.d.ts +225 -5
  44. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  45. package/dest/mem_pools/attestation_pool/mocks.js +9 -15
  46. package/dest/mem_pools/index.d.ts +1 -1
  47. package/dest/mem_pools/instrumentation.d.ts +10 -12
  48. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  49. package/dest/mem_pools/instrumentation.js +35 -38
  50. package/dest/mem_pools/interface.d.ts +1 -1
  51. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +62 -13
  52. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +469 -97
  54. package/dest/mem_pools/tx_pool/index.d.ts +1 -1
  55. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +34 -10
  56. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
  57. package/dest/mem_pools/tx_pool/memory_tx_pool.js +133 -36
  58. package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
  59. package/dest/mem_pools/tx_pool/priority.js +1 -1
  60. package/dest/mem_pools/tx_pool/tx_pool.d.ts +65 -9
  61. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  62. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  63. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  64. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +264 -39
  65. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -2
  66. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  67. package/dest/msg_validators/attestation_validator/attestation_validator.js +45 -9
  68. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
  69. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
  70. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +67 -0
  71. package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
  72. package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
  73. package/dest/msg_validators/attestation_validator/index.js +1 -0
  74. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +6 -2
  75. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
  76. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +73 -12
  77. package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
  78. package/dest/msg_validators/index.d.ts +1 -1
  79. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +10 -0
  80. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -0
  81. package/dest/msg_validators/msg_seen_validator/msg_seen_validator.js +36 -0
  82. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  83. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  84. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +3 -0
  85. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -0
  86. package/dest/msg_validators/tx_validator/allowed_public_setup.js +27 -0
  87. package/dest/msg_validators/tx_validator/archive_cache.d.ts +14 -0
  88. package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -0
  89. package/dest/msg_validators/tx_validator/archive_cache.js +22 -0
  90. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +1 -1
  91. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  92. package/dest/msg_validators/tx_validator/block_header_validator.js +4 -4
  93. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  94. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  95. package/dest/msg_validators/tx_validator/data_validator.js +56 -86
  96. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -3
  97. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  98. package/dest/msg_validators/tx_validator/double_spend_validator.js +21 -27
  99. package/dest/msg_validators/tx_validator/factory.d.ts +15 -0
  100. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -0
  101. package/dest/msg_validators/tx_validator/factory.js +74 -0
  102. package/dest/msg_validators/tx_validator/gas_validator.d.ts +11 -0
  103. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -0
  104. package/dest/msg_validators/tx_validator/gas_validator.js +115 -0
  105. package/dest/msg_validators/tx_validator/index.d.ts +8 -1
  106. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  107. package/dest/msg_validators/tx_validator/index.js +7 -0
  108. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +8 -4
  109. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  110. package/dest/msg_validators/tx_validator/metadata_validator.js +39 -20
  111. package/dest/msg_validators/tx_validator/phases_validator.d.ts +14 -0
  112. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -0
  113. package/dest/msg_validators/tx_validator/phases_validator.js +93 -0
  114. package/dest/msg_validators/tx_validator/test_utils.d.ts +17 -0
  115. package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -0
  116. package/dest/msg_validators/tx_validator/test_utils.js +22 -0
  117. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +12 -0
  118. package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -0
  119. package/dest/msg_validators/tx_validator/timestamp_validator.js +32 -0
  120. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +8 -0
  121. package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -0
  122. package/dest/msg_validators/tx_validator/tx_permitted_validator.js +24 -0
  123. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +1 -1
  124. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  125. package/dest/msg_validators/tx_validator/tx_proof_validator.js +6 -5
  126. package/dest/services/data_store.d.ts +1 -1
  127. package/dest/services/data_store.d.ts.map +1 -1
  128. package/dest/services/discv5/discV5_service.d.ts +10 -9
  129. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  130. package/dest/services/discv5/discV5_service.js +63 -36
  131. package/dest/services/dummy_service.d.ts +50 -11
  132. package/dest/services/dummy_service.d.ts.map +1 -1
  133. package/dest/services/dummy_service.js +88 -5
  134. package/dest/services/encoding.d.ts +26 -7
  135. package/dest/services/encoding.d.ts.map +1 -1
  136. package/dest/services/encoding.js +73 -5
  137. package/dest/services/gossipsub/scoring.d.ts +1 -1
  138. package/dest/services/index.d.ts +5 -1
  139. package/dest/services/index.d.ts.map +1 -1
  140. package/dest/services/index.js +4 -0
  141. package/dest/services/libp2p/instrumentation.d.ts +20 -0
  142. package/dest/services/libp2p/instrumentation.d.ts.map +1 -0
  143. package/dest/services/libp2p/instrumentation.js +164 -0
  144. package/dest/services/libp2p/libp2p_service.d.ts +78 -89
  145. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  146. package/dest/services/libp2p/libp2p_service.js +698 -246
  147. package/dest/services/peer-manager/interface.d.ts +23 -0
  148. package/dest/services/peer-manager/interface.d.ts.map +1 -0
  149. package/dest/services/peer-manager/interface.js +1 -0
  150. package/dest/services/peer-manager/metrics.d.ts +6 -2
  151. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  152. package/dest/services/peer-manager/metrics.js +22 -2
  153. package/dest/services/peer-manager/peer_manager.d.ts +102 -22
  154. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  155. package/dest/services/peer-manager/peer_manager.js +549 -72
  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 +11 -9
  160. package/dest/services/reqresp/config.d.ts.map +1 -1
  161. package/dest/services/reqresp/config.js +18 -4
  162. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +2 -2
  163. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  164. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +10 -6
  165. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +31 -17
  166. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  167. package/dest/services/reqresp/connection-sampler/connection_sampler.js +142 -84
  168. package/dest/services/reqresp/index.d.ts +3 -2
  169. package/dest/services/reqresp/index.d.ts.map +1 -1
  170. package/dest/services/reqresp/index.js +2 -1
  171. package/dest/services/reqresp/interface.d.ts +73 -24
  172. package/dest/services/reqresp/interface.d.ts.map +1 -1
  173. package/dest/services/reqresp/interface.js +45 -26
  174. package/dest/services/reqresp/metrics.d.ts +1 -1
  175. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  176. package/dest/services/reqresp/protocols/auth.d.ts +43 -0
  177. package/dest/services/reqresp/protocols/auth.d.ts.map +1 -0
  178. package/dest/services/reqresp/protocols/auth.js +71 -0
  179. package/dest/services/reqresp/protocols/block.d.ts +6 -1
  180. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  181. package/dest/services/reqresp/protocols/block.js +28 -5
  182. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +30 -0
  183. package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -0
  184. package/dest/services/reqresp/protocols/block_txs/bitvector.js +75 -0
  185. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +11 -0
  186. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -0
  187. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +39 -0
  188. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +47 -0
  189. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -0
  190. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +75 -0
  191. package/dest/services/reqresp/protocols/block_txs/index.d.ts +4 -0
  192. package/dest/services/reqresp/protocols/block_txs/index.d.ts.map +1 -0
  193. package/dest/services/reqresp/protocols/block_txs/index.js +3 -0
  194. package/dest/services/reqresp/protocols/goodbye.d.ts +3 -5
  195. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  196. package/dest/services/reqresp/protocols/goodbye.js +7 -7
  197. package/dest/services/reqresp/protocols/index.d.ts +3 -1
  198. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  199. package/dest/services/reqresp/protocols/index.js +2 -0
  200. package/dest/services/reqresp/protocols/ping.d.ts +1 -3
  201. package/dest/services/reqresp/protocols/ping.d.ts.map +1 -1
  202. package/dest/services/reqresp/protocols/status.d.ts +39 -7
  203. package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
  204. package/dest/services/reqresp/protocols/status.js +72 -5
  205. package/dest/services/reqresp/protocols/tx.d.ts +13 -2
  206. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  207. package/dest/services/reqresp/protocols/tx.js +34 -6
  208. package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
  209. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +6 -4
  210. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  211. package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -2
  212. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  213. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  214. package/dest/services/reqresp/rate-limiter/rate_limits.js +21 -1
  215. package/dest/services/reqresp/reqresp.d.ts +24 -66
  216. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  217. package/dest/services/reqresp/reqresp.js +298 -207
  218. package/dest/services/reqresp/status.d.ts +10 -4
  219. package/dest/services/reqresp/status.d.ts.map +1 -1
  220. package/dest/services/reqresp/status.js +9 -2
  221. package/dest/services/service.d.ts +23 -19
  222. package/dest/services/service.d.ts.map +1 -1
  223. package/dest/services/tx_collection/config.d.ts +25 -0
  224. package/dest/services/tx_collection/config.d.ts.map +1 -0
  225. package/dest/services/tx_collection/config.js +58 -0
  226. package/dest/services/tx_collection/fast_tx_collection.d.ts +50 -0
  227. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -0
  228. package/dest/services/tx_collection/fast_tx_collection.js +300 -0
  229. package/dest/services/tx_collection/index.d.ts +3 -0
  230. package/dest/services/tx_collection/index.d.ts.map +1 -0
  231. package/dest/services/tx_collection/index.js +2 -0
  232. package/dest/services/tx_collection/instrumentation.d.ts +10 -0
  233. package/dest/services/tx_collection/instrumentation.d.ts.map +1 -0
  234. package/dest/services/tx_collection/instrumentation.js +34 -0
  235. package/dest/services/tx_collection/slow_tx_collection.d.ts +52 -0
  236. package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -0
  237. package/dest/services/tx_collection/slow_tx_collection.js +177 -0
  238. package/dest/services/tx_collection/tx_collection.d.ts +109 -0
  239. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -0
  240. package/dest/services/tx_collection/tx_collection.js +128 -0
  241. package/dest/services/tx_collection/tx_collection_sink.d.ts +30 -0
  242. package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -0
  243. package/dest/services/tx_collection/tx_collection_sink.js +111 -0
  244. package/dest/services/tx_collection/tx_source.d.ts +18 -0
  245. package/dest/services/tx_collection/tx_source.d.ts.map +1 -0
  246. package/dest/services/tx_collection/tx_source.js +31 -0
  247. package/dest/services/tx_provider.d.ts +49 -0
  248. package/dest/services/tx_provider.d.ts.map +1 -0
  249. package/dest/services/tx_provider.js +210 -0
  250. package/dest/services/tx_provider_instrumentation.d.ts +13 -0
  251. package/dest/services/tx_provider_instrumentation.d.ts.map +1 -0
  252. package/dest/services/tx_provider_instrumentation.js +34 -0
  253. package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
  254. package/dest/test-helpers/get-ports.d.ts +1 -1
  255. package/dest/test-helpers/get-ports.d.ts.map +1 -1
  256. package/dest/test-helpers/index.d.ts +2 -1
  257. package/dest/test-helpers/index.d.ts.map +1 -1
  258. package/dest/test-helpers/index.js +1 -0
  259. package/dest/test-helpers/make-enrs.d.ts +1 -1
  260. package/dest/test-helpers/make-enrs.d.ts.map +1 -1
  261. package/dest/test-helpers/make-enrs.js +4 -5
  262. package/dest/test-helpers/make-test-p2p-clients.d.ts +33 -5
  263. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  264. package/dest/test-helpers/make-test-p2p-clients.js +86 -16
  265. package/dest/test-helpers/mock-pubsub.d.ts +59 -0
  266. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -0
  267. package/dest/test-helpers/mock-pubsub.js +130 -0
  268. package/dest/test-helpers/mock-tx-helpers.d.ts +12 -0
  269. package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -0
  270. package/dest/test-helpers/mock-tx-helpers.js +19 -0
  271. package/dest/test-helpers/reqresp-nodes.d.ts +15 -11
  272. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  273. package/dest/test-helpers/reqresp-nodes.js +62 -28
  274. package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
  275. package/dest/testbench/p2p_client_testbench_worker.js +103 -29
  276. package/dest/testbench/parse_log_file.d.ts +1 -1
  277. package/dest/testbench/parse_log_file.js +4 -4
  278. package/dest/testbench/testbench.d.ts +1 -1
  279. package/dest/testbench/testbench.js +4 -4
  280. package/dest/testbench/worker_client_manager.d.ts +1 -6
  281. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  282. package/dest/testbench/worker_client_manager.js +11 -19
  283. package/dest/types/index.d.ts +4 -2
  284. package/dest/types/index.d.ts.map +1 -1
  285. package/dest/types/index.js +2 -0
  286. package/dest/util.d.ts +24 -16
  287. package/dest/util.d.ts.map +1 -1
  288. package/dest/util.js +75 -69
  289. package/dest/versioning.d.ts +4 -4
  290. package/dest/versioning.d.ts.map +1 -1
  291. package/dest/versioning.js +8 -3
  292. package/package.json +32 -27
  293. package/src/bootstrap/bootstrap.ts +27 -11
  294. package/src/client/factory.ts +136 -45
  295. package/src/client/index.ts +1 -0
  296. package/src/client/interface.ts +198 -0
  297. package/src/client/p2p_client.ts +469 -330
  298. package/src/config.ts +305 -134
  299. package/src/enr/generate-enr.ts +39 -6
  300. package/src/errors/attestation-pool.error.ts +13 -0
  301. package/src/index.ts +4 -0
  302. package/src/mem_pools/attestation_pool/attestation_pool.ts +75 -7
  303. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +264 -65
  304. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +173 -34
  305. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +156 -30
  306. package/src/mem_pools/attestation_pool/mocks.ts +11 -10
  307. package/src/mem_pools/instrumentation.ts +43 -44
  308. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +549 -108
  309. package/src/mem_pools/tx_pool/memory_tx_pool.ts +153 -44
  310. package/src/mem_pools/tx_pool/priority.ts +1 -1
  311. package/src/mem_pools/tx_pool/tx_pool.ts +67 -8
  312. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +217 -34
  313. package/src/msg_validators/attestation_validator/attestation_validator.ts +54 -11
  314. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +91 -0
  315. package/src/msg_validators/attestation_validator/index.ts +1 -0
  316. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +82 -14
  317. package/src/msg_validators/msg_seen_validator/msg_seen_validator.ts +36 -0
  318. package/src/msg_validators/tx_validator/allowed_public_setup.ts +35 -0
  319. package/src/msg_validators/tx_validator/archive_cache.ts +28 -0
  320. package/src/msg_validators/tx_validator/block_header_validator.ts +4 -4
  321. package/src/msg_validators/tx_validator/data_validator.ts +81 -69
  322. package/src/msg_validators/tx_validator/double_spend_validator.ts +19 -17
  323. package/src/msg_validators/tx_validator/factory.ts +109 -0
  324. package/src/msg_validators/tx_validator/gas_validator.ts +134 -0
  325. package/src/msg_validators/tx_validator/index.ts +7 -0
  326. package/src/msg_validators/tx_validator/metadata_validator.ts +58 -21
  327. package/src/msg_validators/tx_validator/phases_validator.ts +116 -0
  328. package/src/msg_validators/tx_validator/test_utils.ts +43 -0
  329. package/src/msg_validators/tx_validator/timestamp_validator.ts +46 -0
  330. package/src/msg_validators/tx_validator/tx_permitted_validator.ts +17 -0
  331. package/src/msg_validators/tx_validator/tx_proof_validator.ts +6 -5
  332. package/src/services/discv5/discV5_service.ts +84 -38
  333. package/src/services/dummy_service.ts +147 -9
  334. package/src/services/encoding.ts +80 -5
  335. package/src/services/index.ts +4 -0
  336. package/src/services/libp2p/instrumentation.ts +167 -0
  337. package/src/services/libp2p/libp2p_service.ts +866 -294
  338. package/src/services/peer-manager/interface.ts +29 -0
  339. package/src/services/peer-manager/metrics.ts +26 -1
  340. package/src/services/peer-manager/peer_manager.ts +654 -78
  341. package/src/services/peer-manager/peer_scoring.ts +46 -3
  342. package/src/services/reqresp/config.ts +26 -9
  343. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +12 -6
  344. package/src/services/reqresp/connection-sampler/connection_sampler.ts +148 -95
  345. package/src/services/reqresp/index.ts +2 -0
  346. package/src/services/reqresp/interface.ts +91 -36
  347. package/src/services/reqresp/metrics.ts +4 -1
  348. package/src/services/reqresp/protocols/auth.ts +83 -0
  349. package/src/services/reqresp/protocols/block.ts +24 -3
  350. package/src/services/reqresp/protocols/block_txs/bitvector.ts +90 -0
  351. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +53 -0
  352. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +79 -0
  353. package/src/services/reqresp/protocols/block_txs/index.ts +3 -0
  354. package/src/services/reqresp/protocols/goodbye.ts +9 -7
  355. package/src/services/reqresp/protocols/index.ts +2 -0
  356. package/src/services/reqresp/protocols/status.ts +117 -5
  357. package/src/services/reqresp/protocols/tx.ts +35 -6
  358. package/src/services/reqresp/rate-limiter/rate_limiter.ts +12 -3
  359. package/src/services/reqresp/rate-limiter/rate_limits.ts +21 -1
  360. package/src/services/reqresp/reqresp.ts +387 -256
  361. package/src/services/reqresp/status.ts +12 -3
  362. package/src/services/service.ts +45 -21
  363. package/src/services/tx_collection/config.ts +84 -0
  364. package/src/services/tx_collection/fast_tx_collection.ts +340 -0
  365. package/src/services/tx_collection/index.ts +2 -0
  366. package/src/services/tx_collection/instrumentation.ts +43 -0
  367. package/src/services/tx_collection/slow_tx_collection.ts +233 -0
  368. package/src/services/tx_collection/tx_collection.ts +215 -0
  369. package/src/services/tx_collection/tx_collection_sink.ts +129 -0
  370. package/src/services/tx_collection/tx_source.ts +37 -0
  371. package/src/services/tx_provider.ts +216 -0
  372. package/src/services/tx_provider_instrumentation.ts +44 -0
  373. package/src/test-helpers/index.ts +1 -0
  374. package/src/test-helpers/make-enrs.ts +4 -5
  375. package/src/test-helpers/make-test-p2p-clients.ts +111 -21
  376. package/src/test-helpers/mock-pubsub.ts +188 -0
  377. package/src/test-helpers/mock-tx-helpers.ts +24 -0
  378. package/src/test-helpers/reqresp-nodes.ts +86 -35
  379. package/src/testbench/p2p_client_testbench_worker.ts +151 -25
  380. package/src/testbench/parse_log_file.ts +4 -4
  381. package/src/testbench/testbench.ts +4 -4
  382. package/src/testbench/worker_client_manager.ts +17 -23
  383. package/src/types/index.ts +2 -0
  384. package/src/util.ts +105 -91
  385. package/src/versioning.ts +11 -4
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
- import { Tx } from '@aztec/stdlib/tx';
2
+ import { TX_ERROR_INVALID_PROOF } from '@aztec/stdlib/tx';
3
3
  export class TxProofValidator {
4
4
  verifier;
5
5
  #log;
@@ -8,16 +8,17 @@ export class TxProofValidator {
8
8
  this.#log = createLogger('p2p:tx_validator:private_proof');
9
9
  }
10
10
  async validateTx(tx) {
11
- if (!await this.verifier.verifyProof(tx)) {
12
- this.#log.warn(`Rejecting tx ${Tx.getHash(tx)} for invalid proof`);
11
+ const result = await this.verifier.verifyProof(tx);
12
+ if (!result.valid) {
13
+ this.#log.verbose(`Rejecting tx ${tx.getTxHash().toString()} for invalid proof`);
13
14
  return {
14
15
  result: 'invalid',
15
16
  reason: [
16
- 'Invalid proof'
17
+ TX_ERROR_INVALID_PROOF
17
18
  ]
18
19
  };
19
20
  }
20
- this.#log.trace(`Accepted ${Tx.getHash(tx)} with valid proof`);
21
+ this.#log.trace(`Accepted ${tx.getTxHash().toString()} with valid proof`);
21
22
  return {
22
23
  result: 'valid'
23
24
  };
@@ -24,4 +24,4 @@ export declare class AztecDatastore implements Datastore {
24
24
  */
25
25
  private pruneMemoryDatastore;
26
26
  }
27
- //# sourceMappingURL=data_store.d.ts.map
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YV9zdG9yZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2RhdGFfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFFeEUsT0FBTyxFQUFFLEtBQUssS0FBSyxFQUFFLEtBQUssU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLFFBQVEsRUFBRSxLQUFLLElBQUksRUFBRSxLQUFLLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVHLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBcUJyRCxxQkFBYSxjQUFlLFlBQVcsU0FBUzs7SUFNOUMsT0FBTyxDQUFDLGNBQWMsQ0FBUztJQUUvQixZQUFZLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLGNBQWMsRUFBRTs7S0FBeUIsRUFLN0U7SUFFSyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBRXBDO0lBRUssR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQWN2QztJQUVELEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUUzQztJQUVNLE9BQU8sQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FLOUQ7SUFFTSxPQUFPLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBTzlEO0lBRU0sVUFBVSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUtoRTtJQUVLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHcEM7SUFFRCxLQUFLLElBQUksS0FBSyxDQTBCYjtJQUVELEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0EwQm5DO0lBRUQsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQXlCekM7WUFFYSxJQUFJO1lBcUJILEdBQUc7SUFrQmxCOztPQUVHO0lBQ0gsT0FBTyxDQUFDLG9CQUFvQjtDQWlCN0IifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"data_store.d.ts","sourceRoot":"","sources":["../../src/services/data_store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAqBrD,qBAAa,cAAe,YAAW,SAAS;;IAM9C,OAAO,CAAC,cAAc,CAAS;gBAEnB,EAAE,EAAE,iBAAiB,EAAE,EAAE,cAAc,EAAE;;KAAyB;IAOxE,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/B,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBxC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAIrC,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;IAOxD,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;IASxD,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC;IAO3D,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrC,KAAK,IAAI,KAAK;IA4Bd,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC;IA4BpC,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC;YA2B5B,IAAI;YAqBH,GAAG;IAkBlB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAiB7B"}
1
+ {"version":3,"file":"data_store.d.ts","sourceRoot":"","sources":["../../src/services/data_store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAqBrD,qBAAa,cAAe,YAAW,SAAS;;IAM9C,OAAO,CAAC,cAAc,CAAS;IAE/B,YAAY,EAAE,EAAE,iBAAiB,EAAE,EAAE,cAAc,EAAE;;KAAyB,EAK7E;IAEK,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpC;IAEK,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAcvC;IAED,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAE3C;IAEM,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAK9D;IAEM,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAO9D;IAEM,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAKhE;IAEK,MAAM,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpC;IAED,KAAK,IAAI,KAAK,CA0Bb;IAED,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CA0BnC;IAED,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAyBzC;YAEa,IAAI;YAqBH,GAAG;IAkBlB;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAiB7B"}
@@ -1,7 +1,7 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
1
  import { type TelemetryClient } from '@aztec/telemetry-client';
3
- import { ENR } from '@chainsafe/enr';
4
2
  import type { PeerId } from '@libp2p/interface';
3
+ import { type IDiscv5CreateOptions } from '@nethermindeth/discv5';
4
+ import { ENR } from '@nethermindeth/enr';
5
5
  import EventEmitter from 'events';
6
6
  import type { P2PConfig } from '../../config.js';
7
7
  import { type PeerDiscoveryService, PeerDiscoveryState } from '../service.js';
@@ -11,6 +11,7 @@ import { type PeerDiscoveryService, PeerDiscoveryState } from '../service.js';
11
11
  export declare class DiscV5Service extends EventEmitter implements PeerDiscoveryService {
12
12
  private peerId;
13
13
  private config;
14
+ private readonly packageVersion;
14
15
  private logger;
15
16
  /** The Discv5 instance */
16
17
  private discv5;
@@ -18,17 +19,17 @@ export declare class DiscV5Service extends EventEmitter implements PeerDiscovery
18
19
  private enr;
19
20
  /** Version identifiers. */
20
21
  private versions;
21
- /** UDP listen addr */
22
- private listenMultiAddrUdp;
23
22
  private currentState;
24
- readonly bootstrapNodes: string[];
25
23
  private bootstrapNodePeerIds;
26
- private bootstrapNodeEnrs;
24
+ bootstrapNodeEnrs: ENR[];
25
+ private trustedPeerEnrs;
27
26
  private startTime;
28
- constructor(peerId: PeerId, config: P2PConfig, telemetry?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
27
+ private handlers;
28
+ constructor(peerId: PeerId, config: P2PConfig, packageVersion: string, telemetry?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger, configOverrides?: Partial<IDiscv5CreateOptions>);
29
+ private onMultiaddrUpdated;
29
30
  start(): Promise<void>;
30
31
  runRandomNodesQuery(): Promise<void>;
31
- getAllPeers(): ENR[];
32
+ getKadValues(): ENR[];
32
33
  getEnr(): ENR;
33
34
  getPeerId(): PeerId;
34
35
  getStatus(): PeerDiscoveryState;
@@ -39,4 +40,4 @@ export declare class DiscV5Service extends EventEmitter implements PeerDiscovery
39
40
  private onDiscovered;
40
41
  private validateEnr;
41
42
  }
42
- //# sourceMappingURL=discV5_service.d.ts.map
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY1Y1X3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9kaXNjdjUvZGlzY1Y1X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFzQixLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEVBQW1DLEtBQUssb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRyxPQUFPLEVBQUUsR0FBRyxFQUFlLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSWpELE9BQU8sRUFBRSxLQUFLLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTlFOztHQUVHO0FBQ0gscUJBQWEsYUFBYyxTQUFRLFlBQWEsWUFBVyxvQkFBb0I7SUF5QjNFLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsUUFBUSxDQUFDLGNBQWM7SUFFL0IsT0FBTyxDQUFDLE1BQU07SUE1QmhCLDBCQUEwQjtJQUMxQixPQUFPLENBQUMsTUFBTSxDQUFxQjtJQUVuQywwQkFBMEI7SUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBYztJQUV6QiwyQkFBMkI7SUFDM0IsT0FBTyxDQUFDLFFBQVEsQ0FBcUI7SUFFckMsT0FBTyxDQUFDLFlBQVksQ0FBOEI7SUFFbEQsT0FBTyxDQUFDLG9CQUFvQixDQUFnQjtJQUNyQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsQ0FBTTtJQUNyQyxPQUFPLENBQUMsZUFBZSxDQUFhO0lBRXBDLE9BQU8sQ0FBQyxTQUFTLENBQUs7SUFFdEIsT0FBTyxDQUFDLFFBQVEsQ0FJZDtJQUVGLFlBQ1UsTUFBTSxFQUFFLE1BQU0sRUFDZCxNQUFNLEVBQUUsU0FBUyxFQUNSLGNBQWMsRUFBRSxNQUFNLEVBQ3ZDLFNBQVMsR0FBRSxlQUFzQyxFQUN6QyxNQUFNLHlDQUFxQyxFQUNuRCxlQUFlLEdBQUUsT0FBTyxDQUFDLG9CQUFvQixDQUFNLEVBMEVwRDtJQUVELE9BQU8sQ0FBQyxrQkFBa0I7SUFRYixLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQXFEbEM7SUFFWSxtQkFBbUIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBaUJoRDtJQUVNLFlBQVksSUFBSSxHQUFHLEVBQUUsQ0FFM0I7SUFFTSxNQUFNLElBQUksR0FBRyxDQUVuQjtJQUVNLFNBQVMsSUFBSSxNQUFNLENBRXpCO0lBRU0sU0FBUyxJQUFJLGtCQUFrQixDQUVyQztJQUVNLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FFOUM7SUFFWSxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQVdqQztZQUVhLFVBQVU7SUFPeEIsT0FBTyxDQUFDLGFBQWE7SUFJckIsT0FBTyxDQUFDLFlBQVk7SUFxQnBCLE9BQU8sQ0FBQyxXQUFXO0NBMEJwQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"discV5_service.d.ts","sourceRoot":"","sources":["../../../src/services/discv5/discV5_service.ts"],"names":[],"mappings":";AAGA,OAAO,EAAsB,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGvG,OAAO,EAAE,GAAG,EAAe,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,EAAE,KAAK,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAI9E;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAa,YAAW,oBAAoB;IAsB3E,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IAxBhB,0BAA0B;IAC1B,OAAO,CAAC,MAAM,CAA8B;IAE5C,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAc;IAEzB,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IAErC,sBAAsB;IACtB,OAAO,CAAC,kBAAkB,CAAY;IAEtC,OAAO,CAAC,YAAY,CAA8B;IAElD,SAAgB,cAAc,EAAE,MAAM,EAAE,CAAM;IAC9C,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,iBAAiB,CAAa;IAEtC,OAAO,CAAC,SAAS,CAAK;gBAGZ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACzB,SAAS,GAAE,eAAsC,EACzC,MAAM,yCAAqC;IA+DxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCtB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB1C,WAAW,IAAI,GAAG,EAAE;IAIpB,MAAM,IAAI,GAAG;IAIb,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,kBAAkB;IAI/B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YASpB,UAAU;IAOxB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,WAAW;CA0BpB"}
1
+ {"version":3,"file":"discV5_service.d.ts","sourceRoot":"","sources":["../../../src/services/discv5/discV5_service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsB,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEvG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAmC,KAAK,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,EAAE,GAAG,EAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,EAAE,KAAK,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAI9E;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAa,YAAW,oBAAoB;IAyB3E,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,MAAM;IA5BhB,0BAA0B;IAC1B,OAAO,CAAC,MAAM,CAAqB;IAEnC,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAc;IAEzB,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IAErC,OAAO,CAAC,YAAY,CAA8B;IAElD,OAAO,CAAC,oBAAoB,CAAgB;IACrC,iBAAiB,EAAE,GAAG,EAAE,CAAM;IACrC,OAAO,CAAC,eAAe,CAAa;IAEpC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,QAAQ,CAId;IAEF,YACU,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACR,cAAc,EAAE,MAAM,EACvC,SAAS,GAAE,eAAsC,EACzC,MAAM,yCAAqC,EACnD,eAAe,GAAE,OAAO,CAAC,oBAAoB,CAAM,EA0EpD;IAED,OAAO,CAAC,kBAAkB;IAQb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAqDlC;IAEY,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBhD;IAEM,YAAY,IAAI,GAAG,EAAE,CAE3B;IAEM,MAAM,IAAI,GAAG,CAEnB;IAEM,SAAS,IAAI,MAAM,CAEzB;IAEM,SAAS,IAAI,kBAAkB,CAErC;IAEM,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE9C;IAEY,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAWjC;YAEa,UAAU;IAOxB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,WAAW;CA0BpB"}
@@ -2,13 +2,13 @@ import { createLogger } from '@aztec/foundation/log';
2
2
  import { sleep } from '@aztec/foundation/sleep';
3
3
  import { checkCompressedComponentVersion } from '@aztec/stdlib/versioning';
4
4
  import { OtelMetricsAdapter, getTelemetryClient } from '@aztec/telemetry-client';
5
- import { Discv5 } from '@chainsafe/discv5';
6
- import { ENR, SignableENR } from '@chainsafe/enr';
7
5
  import { multiaddr } from '@multiformats/multiaddr';
6
+ import { Discv5 } from '@nethermindeth/discv5';
7
+ import { ENR } from '@nethermindeth/enr';
8
8
  import EventEmitter from 'events';
9
+ import { createNodeENR } from '../../enr/generate-enr.js';
9
10
  import { AZTEC_ENR_KEY, Discv5Event, PeerEvent } from '../../types/index.js';
10
11
  import { convertToMultiaddr } from '../../util.js';
11
- import { setAztecEnrKey } from '../../versioning.js';
12
12
  import { PeerDiscoveryState } from '../service.js';
13
13
  const delayBeforeStart = 2000; // 2sec
14
14
  /**
@@ -16,46 +16,52 @@ const delayBeforeStart = 2000; // 2sec
16
16
  */ export class DiscV5Service extends EventEmitter {
17
17
  peerId;
18
18
  config;
19
+ packageVersion;
19
20
  logger;
20
21
  /** The Discv5 instance */ discv5;
21
22
  /** This instance's ENR */ enr;
22
23
  /** Version identifiers. */ versions;
23
- /** UDP listen addr */ listenMultiAddrUdp;
24
24
  currentState;
25
- bootstrapNodes;
26
25
  bootstrapNodePeerIds;
27
26
  bootstrapNodeEnrs;
27
+ trustedPeerEnrs;
28
28
  startTime;
29
- constructor(peerId, config, telemetry = getTelemetryClient(), logger = createLogger('p2p:discv5_service')){
30
- super(), this.peerId = peerId, this.config = config, this.logger = logger, this.currentState = PeerDiscoveryState.STOPPED, this.bootstrapNodes = [], this.bootstrapNodePeerIds = [], this.bootstrapNodeEnrs = [], this.startTime = 0;
31
- const { tcpAnnounceAddress, udpAnnounceAddress, udpListenAddress, bootstrapNodes } = config;
32
- this.bootstrapNodes = bootstrapNodes ?? [];
33
- this.bootstrapNodeEnrs = this.bootstrapNodes.map((x)=>ENR.decodeTxt(x));
34
- // create ENR from PeerId
35
- this.enr = SignableENR.createFromPeerId(peerId);
36
- // Add aztec identification to ENR
37
- this.versions = setAztecEnrKey(this.enr, config);
38
- if (!tcpAnnounceAddress) {
39
- throw new Error('You need to provide at least a TCP announce address.');
29
+ handlers;
30
+ constructor(peerId, config, packageVersion, telemetry = getTelemetryClient(), logger = createLogger('p2p:discv5_service'), configOverrides = {}){
31
+ super(), this.peerId = peerId, this.config = config, this.packageVersion = packageVersion, this.logger = logger, this.currentState = PeerDiscoveryState.STOPPED, this.bootstrapNodePeerIds = [], this.bootstrapNodeEnrs = [], this.trustedPeerEnrs = [], this.startTime = 0, this.handlers = {
32
+ onMultiaddrUpdated: this.onMultiaddrUpdated.bind(this),
33
+ onDiscovered: this.onDiscovered.bind(this),
34
+ onEnrAdded: this.onEnrAdded.bind(this)
35
+ };
36
+ const { p2pIp, p2pPort, p2pBroadcastPort, bootstrapNodes, trustedPeers, privatePeers } = config;
37
+ this.bootstrapNodeEnrs = bootstrapNodes.map((x)=>ENR.decodeTxt(x));
38
+ const privatePeerEnrs = new Set(privatePeers);
39
+ this.trustedPeerEnrs = trustedPeers.filter((x)=>!privatePeerEnrs.has(x)).map((x)=>ENR.decodeTxt(x));
40
+ // If no overridden broadcast port is provided, use the p2p port as the broadcast port
41
+ if (!p2pBroadcastPort) {
42
+ this.logger.warn('No p2pBroadcastPort provided, using p2pPort as broadcast port');
43
+ config.p2pBroadcastPort = p2pPort;
40
44
  }
41
- const multiAddrTcp = multiaddr(`${convertToMultiaddr(tcpAnnounceAddress, 'tcp')}/p2p/${peerId.toString()}`);
42
- // if no udp announce address is provided, use the tcp announce address
43
- const multiAddrUdp = multiaddr(`${convertToMultiaddr(udpAnnounceAddress || tcpAnnounceAddress, 'udp')}/p2p/${peerId.toString()}`);
44
- this.listenMultiAddrUdp = multiaddr(convertToMultiaddr(udpListenAddress, 'udp'));
45
- // set location multiaddr in ENR record
46
- this.enr.setLocationMultiaddr(multiAddrUdp);
47
- this.enr.setLocationMultiaddr(multiAddrTcp);
45
+ const bindAddrs = {
46
+ ip4: multiaddr(convertToMultiaddr(config.listenAddress, p2pPort, 'udp'))
47
+ };
48
+ let multiAddrUdp, multiAddrTcp;
49
+ if (p2pIp) {
50
+ multiAddrTcp = multiaddr(`${convertToMultiaddr(p2pIp, config.p2pBroadcastPort, 'tcp')}/p2p/${peerId.toString()}`);
51
+ multiAddrUdp = multiaddr(`${convertToMultiaddr(p2pIp, config.p2pBroadcastPort, 'udp')}/p2p/${peerId.toString()}`);
52
+ }
53
+ ({ enr: this.enr, versions: this.versions } = createNodeENR(peerId, multiAddrUdp, multiAddrTcp, config, this.packageVersion));
48
54
  const metricsRegistry = new OtelMetricsAdapter(telemetry);
49
55
  this.discv5 = Discv5.create({
50
56
  enr: this.enr,
51
57
  peerId,
52
- bindAddrs: {
53
- ip4: this.listenMultiAddrUdp
54
- },
58
+ bindAddrs,
55
59
  config: {
56
60
  lookupTimeout: 2000,
57
61
  requestTimeout: 2000,
58
- allowUnverifiedSessions: true
62
+ allowUnverifiedSessions: true,
63
+ enrUpdate: !p2pIp ? true : false,
64
+ ...configOverrides.config
59
65
  },
60
66
  metricsRegistry
61
67
  });
@@ -77,8 +83,18 @@ const delayBeforeStart = 2000; // 2sec
77
83
  return origOnEstablished(...args);
78
84
  }
79
85
  };
80
- this.discv5.on(Discv5Event.DISCOVERED, this.onDiscovered.bind(this));
81
- this.discv5.on(Discv5Event.ENR_ADDED, this.onEnrAdded.bind(this));
86
+ this.discv5.on(Discv5Event.DISCOVERED, this.handlers.onDiscovered);
87
+ this.discv5.on(Discv5Event.ENR_ADDED, this.handlers.onEnrAdded);
88
+ this.discv5.on(Discv5Event.MULTIADDR_UPDATED, this.handlers.onMultiaddrUpdated);
89
+ }
90
+ onMultiaddrUpdated(m) {
91
+ // We want to update our tcp port to match the udp port
92
+ // p2pBroadcastPort is optional on config, however it is set to default within the p2p client factory
93
+ const multiAddrTcp = multiaddr(convertToMultiaddr(m.nodeAddress().address, this.config.p2pBroadcastPort, 'tcp'));
94
+ this.enr.setLocationMultiaddr(multiAddrTcp);
95
+ this.logger.info('Multiaddr updated', {
96
+ multiaddr: multiAddrTcp.toString()
97
+ });
82
98
  }
83
99
  async start() {
84
100
  if (this.currentState === PeerDiscoveryState.RUNNING) {
@@ -96,10 +112,10 @@ const delayBeforeStart = 2000; // 2sec
96
112
  });
97
113
  this.currentState = PeerDiscoveryState.RUNNING;
98
114
  // Add bootnode ENR if provided
99
- if (this.bootstrapNodes?.length) {
115
+ if (this.bootstrapNodeEnrs?.length) {
100
116
  // Do this conversion once since it involves an async function call
101
117
  this.bootstrapNodePeerIds = await Promise.all(this.bootstrapNodeEnrs.map((enr)=>enr.peerId()));
102
- this.logger.info(`Adding ${this.bootstrapNodes} bootstrap nodes ENRs: ${this.bootstrapNodes.join(', ')}`);
118
+ this.logger.info(`Adding ${this.bootstrapNodeEnrs.length} bootstrap nodes ENRs: ${this.bootstrapNodeEnrs.map((enr)=>enr.encodeTxt()).join(', ')}`);
103
119
  for (const enr of this.bootstrapNodeEnrs){
104
120
  try {
105
121
  if (this.config.bootstrapNodeEnrVersionCheck) {
@@ -115,10 +131,17 @@ const delayBeforeStart = 2000; // 2sec
115
131
  }
116
132
  }
117
133
  }
134
+ // Add trusted peer ENRs if provided
135
+ if (this.trustedPeerEnrs?.length) {
136
+ this.logger.info(`Adding ${this.trustedPeerEnrs.length} trusted peer ENRs: ${this.trustedPeerEnrs.map((enr)=>enr.encodeTxt()).join(', ')}`);
137
+ for (const enr of this.trustedPeerEnrs){
138
+ this.discv5.addEnr(enr);
139
+ }
140
+ }
118
141
  }
119
142
  async runRandomNodesQuery() {
120
143
  if (this.currentState !== PeerDiscoveryState.RUNNING) {
121
- throw new Error('DiscV5Service not running');
144
+ return;
122
145
  }
123
146
  // First, wait some time before starting the peer discovery
124
147
  // reference: https://github.com/ChainSafe/lodestar/issues/3423
@@ -132,7 +155,7 @@ const delayBeforeStart = 2000; // 2sec
132
155
  this.logger.error(`Error running discV5 random node query: ${err}`);
133
156
  }
134
157
  }
135
- getAllPeers() {
158
+ getKadValues() {
136
159
  return this.discv5.kadValues();
137
160
  }
138
161
  getEnr() {
@@ -148,8 +171,12 @@ const delayBeforeStart = 2000; // 2sec
148
171
  return this.bootstrapNodePeerIds.some((node)=>node.equals(peerId));
149
172
  }
150
173
  async stop() {
151
- await this.discv5.off(Discv5Event.DISCOVERED, this.onDiscovered);
152
- await this.discv5.off(Discv5Event.ENR_ADDED, this.onEnrAdded);
174
+ if (this.currentState !== PeerDiscoveryState.RUNNING) {
175
+ return;
176
+ }
177
+ await this.discv5.off(Discv5Event.DISCOVERED, this.handlers.onDiscovered);
178
+ await this.discv5.off(Discv5Event.ENR_ADDED, this.handlers.onEnrAdded);
179
+ await this.discv5.off(Discv5Event.MULTIADDR_UPDATED, this.handlers.onMultiaddrUpdated);
153
180
  await this.discv5.stop();
154
181
  this.currentState = PeerDiscoveryState.STOPPED;
155
182
  }
@@ -190,7 +217,7 @@ const delayBeforeStart = 2000; // 2sec
190
217
  // Check the peer is an aztec peer
191
218
  const value = enr.kvs.get(AZTEC_ENR_KEY);
192
219
  if (!value) {
193
- this.logger.warn(`Peer node ${enr.nodeId} does not have aztec key in ENR`);
220
+ this.logger.debug(`Peer node ${enr.nodeId} does not have aztec key in ENR`);
194
221
  return false;
195
222
  }
196
223
  // And check it has the correct version
@@ -1,15 +1,21 @@
1
- /// <reference types="node" resolution-mode="require"/>
1
+ import type { EthAddress } from '@aztec/foundation/eth-address';
2
2
  import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
3
- import type { BlockAttestation, BlockProposal, Gossipable } from '@aztec/stdlib/p2p';
4
- import { TxHash } from '@aztec/stdlib/tx';
3
+ import type { Gossipable, PeerErrorSeverity } from '@aztec/stdlib/p2p';
4
+ import { Tx, TxHash } from '@aztec/stdlib/tx';
5
5
  import type { PeerId } from '@libp2p/interface';
6
+ import type { ENR } from '@nethermindeth/enr';
6
7
  import EventEmitter from 'events';
7
- import type { ReqRespSubProtocol, SubProtocolMap } from './reqresp/interface.js';
8
- import { type P2PService, type PeerDiscoveryService, PeerDiscoveryState } from './service.js';
8
+ import type { PeerManagerInterface } from './peer-manager/interface.js';
9
+ import type { P2PReqRespConfig } from './reqresp/config.js';
10
+ import { type AuthRequest, StatusMessage } from './reqresp/index.js';
11
+ import type { ReqRespInterface, ReqRespResponse, ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolHandlers, ReqRespSubProtocolValidators, SubProtocolMap } from './reqresp/interface.js';
12
+ import type { GoodByeReason } from './reqresp/protocols/goodbye.js';
13
+ import { type P2PBlockReceivedCallback, type P2PService, type PeerDiscoveryService, PeerDiscoveryState } from './service.js';
9
14
  /**
10
15
  * A dummy implementation of the P2P Service.
11
16
  */
12
17
  export declare class DummyP2PService implements P2PService {
18
+ updateConfig(_config: Partial<P2PReqRespConfig>): void;
13
19
  /** Returns an empty array for peers. */
14
20
  getPeers(): PeerInfo[];
15
21
  /**
@@ -26,7 +32,7 @@ export declare class DummyP2PService implements P2PService {
26
32
  * Called to have the given message propagated through the P2P network.
27
33
  * @param _ - The message to be propagated.
28
34
  */
29
- propagate<T extends Gossipable>(_: T): void;
35
+ propagate<T extends Gossipable>(_: T): Promise<void>;
30
36
  /**
31
37
  * Called upon receipt of settled transactions.
32
38
  * @param _ - The hashes of the settled transactions.
@@ -35,7 +41,7 @@ export declare class DummyP2PService implements P2PService {
35
41
  /**
36
42
  * Register a callback into the validator client for when a block proposal is received
37
43
  */
38
- registerBlockReceivedCallback(_: (block: BlockProposal) => Promise<BlockAttestation>): void;
44
+ registerBlockReceivedCallback(_callback: P2PBlockReceivedCallback): void;
39
45
  /**
40
46
  * Sends a request to a peer.
41
47
  * @param _protocol - The protocol to send the request on.
@@ -55,13 +61,17 @@ export declare class DummyP2PService implements P2PService {
55
61
  * @returns The ENR of the peer, otherwise undefined.
56
62
  */
57
63
  getEnr(): undefined;
64
+ validate(_txs: Tx[]): Promise<void>;
65
+ addReqRespSubProtocol(_subProtocol: ReqRespSubProtocol, _handler: ReqRespSubProtocolHandler, _validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
66
+ handleAuthRequestFromPeer(_authRequest: AuthRequest, _peerId: PeerId): Promise<StatusMessage>;
67
+ registerThisValidatorAddresses(_address: EthAddress[]): void;
58
68
  }
59
69
  /**
60
70
  * A dummy implementation of the Peer Discovery Service.
61
71
  */
62
72
  export declare class DummyPeerDiscoveryService extends EventEmitter implements PeerDiscoveryService {
63
73
  private currentState;
64
- bootstrapNodes: string[];
74
+ bootstrapNodeEnrs: ENR[];
65
75
  /**
66
76
  * Starts the dummy implementation.
67
77
  * @returns A resolved promise.
@@ -74,12 +84,41 @@ export declare class DummyPeerDiscoveryService extends EventEmitter implements P
74
84
  stop(): Promise<void>;
75
85
  /**
76
86
  * Called to discover peers in the network.
77
- * @returns An array of discovered peer addresses.
87
+ * @returns An array of Enrs.
78
88
  */
79
- getAllPeers(): never[];
89
+ getKadValues(): never[];
80
90
  runRandomNodesQuery(): Promise<void>;
81
91
  isBootstrapPeer(_: PeerId): boolean;
82
92
  getStatus(): PeerDiscoveryState;
83
93
  getEnr(): undefined;
84
94
  }
85
- //# sourceMappingURL=dummy_service.d.ts.map
95
+ export declare class DummyPeerManager implements PeerManagerInterface {
96
+ peerId: PeerId;
97
+ private peersProvider?;
98
+ constructor(peerId: PeerId, peersProvider?: {
99
+ getPeers: () => PeerId[];
100
+ } | undefined);
101
+ getPeers(_includePending?: boolean): PeerInfo[];
102
+ initializePeers(): Promise<void>;
103
+ getPeerScore(_peerId: string): number;
104
+ shouldDisableP2PGossip(_peerId: string): boolean;
105
+ stop(): Promise<void>;
106
+ heartbeat(): Promise<void>;
107
+ addTrustedPeer(_peerId: PeerId): void;
108
+ addPrivatePeer(_peerId: PeerId): void;
109
+ goodbyeReceived(_peerId: PeerId, _reason: GoodByeReason): void;
110
+ penalizePeer(_peerId: PeerId, _penalty: PeerErrorSeverity): void;
111
+ addPreferredPeer(_peerId: PeerId): void;
112
+ handleAuthRequestFromPeer(_authRequest: AuthRequest, _peerId: PeerId): Promise<StatusMessage>;
113
+ registerThisValidatorAddresses(_address: EthAddress[]): void;
114
+ }
115
+ export declare class DummyReqResp implements ReqRespInterface {
116
+ updateConfig(_config: Partial<P2PReqRespConfig>): void;
117
+ start(_subProtocolHandlers: ReqRespSubProtocolHandlers, _subProtocolValidators: ReqRespSubProtocolValidators): Promise<void>;
118
+ stop(): Promise<void>;
119
+ sendRequest<SubProtocol extends ReqRespSubProtocol>(_subProtocol: SubProtocol, _request: InstanceType<SubProtocolMap[SubProtocol]['request']>): Promise<InstanceType<SubProtocolMap[SubProtocol]['response']> | undefined>;
120
+ sendBatchRequest<SubProtocol extends ReqRespSubProtocol>(_subProtocol: SubProtocol, _requests: InstanceType<SubProtocolMap[SubProtocol]['request']>[], _pinnedPeer: PeerId | undefined, _timeoutMs?: number, _maxPeers?: number, _maxRetryAttempts?: number): Promise<InstanceType<SubProtocolMap[SubProtocol]['response']>[]>;
121
+ sendRequestToPeer(_peerId: PeerId, _subProtocol: ReqRespSubProtocol, _payload: Buffer, _dialTimeout?: number): Promise<ReqRespResponse>;
122
+ addSubProtocol(_subProtocol: ReqRespSubProtocol, _handler: ReqRespSubProtocolHandler, _validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
123
+ }
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVtbXlfc2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL2R1bW15X3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5QyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLFlBQVksTUFBTSxRQUFRLENBQUM7QUFFbEMsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFDVixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLDRCQUE0QixFQUM1QixjQUFjLEVBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRSxPQUFPLEVBQ0wsS0FBSyx3QkFBd0IsRUFDN0IsS0FBSyxVQUFVLEVBQ2YsS0FBSyxvQkFBb0IsRUFDekIsa0JBQWtCLEVBQ25CLE1BQU0sY0FBYyxDQUFDO0FBRXRCOztHQUVH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
@@ -1 +1 @@
1
- {"version":3,"file":"dummy_service.d.ts","sourceRoot":"","sources":["../../src/services/dummy_service.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAE9F;;GAEG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD,wCAAwC;IACxC,QAAQ,IAAI,QAAQ,EAAE;IAItB;;;OAGG;IACI,KAAK;IAIZ;;;OAGG;IACI,IAAI;IAIX;;;OAGG;IACI,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,CAAC,EAAE,CAAC;IAE3C;;;OAGG;IACI,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE;IAE7B;;OAEG;IACI,6BAA6B,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,gBAAgB,CAAC;IAE3F;;;;;OAKG;IACI,WAAW,CAAC,QAAQ,SAAS,kBAAkB,EACpD,SAAS,EAAE,QAAQ,EACnB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAC1D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IAI1E;;;;;OAKG;IACI,gBAAgB,CAAC,QAAQ,SAAS,kBAAkB,EACzD,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAC7D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;IAIhE;;;OAGG;IACI,MAAM,IAAI,SAAS;CAG3B;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,YAAa,YAAW,oBAAoB;IACzF,OAAO,CAAC,YAAY,CAA8B;IAC3C,cAAc,EAAE,MAAM,EAAE,CAAM;IAErC;;;OAGG;IACI,KAAK;IAIZ;;;OAGG;IACI,IAAI;IAIX;;;OAGG;IACI,WAAW;IAIX,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpC,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAInC,SAAS,IAAI,kBAAkB;IAI/B,MAAM,IAAI,SAAS;CAG3B"}
1
+ {"version":3,"file":"dummy_service.d.ts","sourceRoot":"","sources":["../../src/services/dummy_service.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import EventEmitter from 'events';
2
+ import { StatusMessage } from './reqresp/index.js';
3
+ import { ReqRespStatus } from './reqresp/status.js';
2
4
  import { PeerDiscoveryState } from './service.js';
3
5
  /**
4
6
  * A dummy implementation of the P2P Service.
5
7
  */ export class DummyP2PService {
8
+ updateConfig(_config) {}
6
9
  /** Returns an empty array for peers. */ getPeers() {
7
10
  return [];
8
11
  }
@@ -21,14 +24,16 @@ import { PeerDiscoveryState } from './service.js';
21
24
  /**
22
25
  * Called to have the given message propagated through the P2P network.
23
26
  * @param _ - The message to be propagated.
24
- */ propagate(_) {}
27
+ */ propagate(_) {
28
+ return Promise.resolve();
29
+ }
25
30
  /**
26
31
  * Called upon receipt of settled transactions.
27
32
  * @param _ - The hashes of the settled transactions.
28
33
  */ settledTxs(_) {}
29
34
  /**
30
35
  * Register a callback into the validator client for when a block proposal is received
31
- */ registerBlockReceivedCallback(_) {}
36
+ */ registerBlockReceivedCallback(_callback) {}
32
37
  /**
33
38
  * Sends a request to a peer.
34
39
  * @param _protocol - The protocol to send the request on.
@@ -51,12 +56,23 @@ import { PeerDiscoveryState } from './service.js';
51
56
  */ getEnr() {
52
57
  return undefined;
53
58
  }
59
+ validate(_txs) {
60
+ return Promise.resolve();
61
+ }
62
+ addReqRespSubProtocol(_subProtocol, _handler, _validator) {
63
+ return Promise.resolve();
64
+ }
65
+ handleAuthRequestFromPeer(_authRequest, _peerId) {
66
+ return Promise.resolve(StatusMessage.random());
67
+ }
68
+ //this is no-op
69
+ registerThisValidatorAddresses(_address) {}
54
70
  }
55
71
  /**
56
72
  * A dummy implementation of the Peer Discovery Service.
57
73
  */ export class DummyPeerDiscoveryService extends EventEmitter {
58
74
  currentState = PeerDiscoveryState.STOPPED;
59
- bootstrapNodes = [];
75
+ bootstrapNodeEnrs = [];
60
76
  /**
61
77
  * Starts the dummy implementation.
62
78
  * @returns A resolved promise.
@@ -73,8 +89,8 @@ import { PeerDiscoveryState } from './service.js';
73
89
  }
74
90
  /**
75
91
  * Called to discover peers in the network.
76
- * @returns An array of discovered peer addresses.
77
- */ getAllPeers() {
92
+ * @returns An array of Enrs.
93
+ */ getKadValues() {
78
94
  return [];
79
95
  }
80
96
  runRandomNodesQuery() {
@@ -90,3 +106,70 @@ import { PeerDiscoveryState } from './service.js';
90
106
  return undefined;
91
107
  }
92
108
  }
109
+ export class DummyPeerManager {
110
+ peerId;
111
+ peersProvider;
112
+ constructor(peerId, peersProvider){
113
+ this.peerId = peerId;
114
+ this.peersProvider = peersProvider;
115
+ }
116
+ getPeers(_includePending) {
117
+ if (!this.peersProvider) {
118
+ return [];
119
+ }
120
+ return this.peersProvider.getPeers().filter((peer)=>!peer.equals(this.peerId)).map((id)=>({
121
+ id: id.toString(),
122
+ status: 'connected',
123
+ score: 0
124
+ }));
125
+ }
126
+ initializePeers() {
127
+ return Promise.resolve();
128
+ }
129
+ getPeerScore(_peerId) {
130
+ return 0;
131
+ }
132
+ shouldDisableP2PGossip(_peerId) {
133
+ return false;
134
+ }
135
+ stop() {
136
+ return Promise.resolve();
137
+ }
138
+ heartbeat() {
139
+ return Promise.resolve();
140
+ }
141
+ addTrustedPeer(_peerId) {}
142
+ addPrivatePeer(_peerId) {}
143
+ goodbyeReceived(_peerId, _reason) {}
144
+ penalizePeer(_peerId, _penalty) {}
145
+ addPreferredPeer(_peerId) {}
146
+ handleAuthRequestFromPeer(_authRequest, _peerId) {
147
+ return Promise.resolve(StatusMessage.random());
148
+ }
149
+ //this is no-op
150
+ registerThisValidatorAddresses(_address) {}
151
+ }
152
+ export class DummyReqResp {
153
+ updateConfig(_config) {}
154
+ start(_subProtocolHandlers, _subProtocolValidators) {
155
+ return Promise.resolve();
156
+ }
157
+ stop() {
158
+ return Promise.resolve();
159
+ }
160
+ sendRequest(_subProtocol, _request) {
161
+ return Promise.resolve(undefined);
162
+ }
163
+ sendBatchRequest(_subProtocol, _requests, _pinnedPeer, _timeoutMs, _maxPeers, _maxRetryAttempts) {
164
+ return Promise.resolve([]);
165
+ }
166
+ sendRequestToPeer(_peerId, _subProtocol, _payload, _dialTimeout) {
167
+ return Promise.resolve({
168
+ status: ReqRespStatus.SUCCESS,
169
+ data: Buffer.from([])
170
+ });
171
+ }
172
+ addSubProtocol(_subProtocol, _handler, _validator) {
173
+ return Promise.resolve();
174
+ }
175
+ }
@@ -1,5 +1,4 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
1
+ import { TopicType } from '@aztec/stdlib/p2p';
3
2
  import type { RPC } from '@chainsafe/libp2p-gossipsub/message';
4
3
  import type { DataTransform } from '@chainsafe/libp2p-gossipsub/types';
5
4
  import type { Message } from '@libp2p/interface';
@@ -18,14 +17,34 @@ export declare function msgIdToStrFn(msgId: Uint8Array): string;
18
17
  * @param message - The libp2p message
19
18
  * @returns The message identifier
20
19
  */
21
- export declare function getMsgIdFn(message: Message): Buffer;
20
+ export declare function getMsgIdFn(message: Message): Buffer<ArrayBuffer>;
22
21
  /**
23
22
  * Snappy transform for libp2p gossipsub
24
23
  */
25
24
  export declare class SnappyTransform implements DataTransform {
26
- inboundTransform(_topicStr: string, data: Uint8Array): Uint8Array;
27
- inboundTransformNoTopic(data: Buffer): Buffer;
25
+ private maxSizesKb;
26
+ private defaultMaxSizeKb;
27
+ private logger;
28
+ constructor(maxSizesKb?: Record<TopicType, number>, defaultMaxSizeKb?: number, logger?: import("@aztec/foundation/log").Logger);
29
+ inboundTransform(topicStr: string, data: Uint8Array): Uint8Array;
30
+ inboundTransformData(data: Buffer, topic?: TopicType): Buffer;
28
31
  outboundTransform(_topicStr: string, data: Uint8Array): Uint8Array;
29
- outboundTransformNoTopic(data: Buffer): Buffer;
32
+ outboundTransformData(data: Buffer): Buffer;
30
33
  }
31
- //# sourceMappingURL=encoding.d.ts.map
34
+ /**
35
+ * Reads the Snappy preamble from compressed data and returns the expected decompressed size.
36
+ *
37
+ * The Snappy format starts with a little-endian varint encoding the uncompressed length.
38
+ * Varints consist of a series of bytes where:
39
+ * - Lower 7 bits contain data
40
+ * - Upper bit (0x80) is set if more bytes follow
41
+ *
42
+ * @param data - The compressed data starting with the Snappy preamble
43
+ * @returns Object containing the decompressed size and the number of bytes read from the preamble
44
+ * @throws Error if the data is too short or the varint is invalid
45
+ */
46
+ export declare function readSnappyPreamble(data: Uint8Array): {
47
+ decompressedSize: number;
48
+ bytesRead: number;
49
+ };
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBYWpEOzs7R0FHRztBQUNILHdCQUFnQixXQUFXLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUt2RDtBQUVELHdCQUFnQixZQUFZLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBSXREO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLHVCQUsxQztBQVlEOztHQUVHO0FBQ0gscUJBQWEsZUFBZ0IsWUFBVyxhQUFhO0lBRWpELE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLE1BQU07SUFIaEIsWUFDVSxVQUFVLEdBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQXFCLEVBQ3pELGdCQUFnQixHQUFFLE1BQWtCLEVBQ3BDLE1BQU0seUNBQXVDLEVBQ25EO0lBR0osZ0JBQWdCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxHQUFHLFVBQVUsQ0FHL0Q7SUFFTSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsR0FBRyxNQUFNLENBWW5FO0lBR0QsaUJBQWlCLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxHQUFHLFVBQVUsQ0FFakU7SUFFTSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FLakQ7Q0FDRjtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLElBQUksRUFBRSxVQUFVLEdBQUc7SUFBRSxnQkFBZ0IsRUFBRSxNQUFNLENBQUM7SUFBQyxTQUFTLEVBQUUsTUFBTSxDQUFBO0NBQUUsQ0FtQ3BHIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/services/encoding.ts"],"names":[],"mappings":";;AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAajD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAKvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAItD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,UAK1C;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IAEnD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IAI1D,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQpD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU;IAI3D,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAMtD"}
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/services/encoding.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAsB,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAajD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,MAAM,CAKvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAItD;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,uBAK1C;AAYD;;GAEG;AACH,qBAAa,eAAgB,YAAW,aAAa;IAEjD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IAHhB,YACU,UAAU,GAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAqB,EACzD,gBAAgB,GAAE,MAAkB,EACpC,MAAM,yCAAuC,EACnD;IAGJ,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAG/D;IAEM,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAYnE;IAGD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,UAAU,CAEjE;IAEM,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKjD;CACF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAmCpG"}