@aztec/p2p 0.0.1-commit.5914bae → 0.0.1-commit.59a0419c6

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 (286) hide show
  1. package/dest/client/factory.d.ts +4 -3
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +17 -15
  4. package/dest/client/interface.d.ts +9 -2
  5. package/dest/client/interface.d.ts.map +1 -1
  6. package/dest/client/p2p_client.d.ts +3 -2
  7. package/dest/client/p2p_client.d.ts.map +1 -1
  8. package/dest/client/p2p_client.js +30 -8
  9. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +21 -7
  10. package/dest/config.d.ts +107 -103
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +17 -12
  13. package/dest/errors/p2p-service.error.d.ts +9 -0
  14. package/dest/errors/p2p-service.error.d.ts.map +1 -0
  15. package/dest/errors/p2p-service.error.js +10 -0
  16. package/dest/index.d.ts +1 -2
  17. package/dest/index.d.ts.map +1 -1
  18. package/dest/index.js +0 -1
  19. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +7 -5
  20. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  21. package/dest/mem_pools/attestation_pool/attestation_pool.js +16 -9
  22. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +6 -6
  23. package/dest/mem_pools/index.d.ts +1 -2
  24. package/dest/mem_pools/index.d.ts.map +1 -1
  25. package/dest/mem_pools/instrumentation.d.ts +4 -2
  26. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  27. package/dest/mem_pools/instrumentation.js +16 -14
  28. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +2 -1
  29. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -1
  30. package/dest/mem_pools/tx_pool_v2/eviction/index.js +1 -0
  31. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
  32. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
  33. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +62 -0
  34. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
  35. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +10 -5
  36. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  37. package/dest/mem_pools/tx_pool_v2/interfaces.js +1 -0
  38. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +9 -7
  39. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  40. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +13 -6
  41. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
  42. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  43. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +26 -43
  44. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +1 -1
  45. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  46. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +3 -0
  47. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +2 -1
  48. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  49. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +20 -2
  50. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  51. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  52. package/dest/msg_validators/attestation_validator/attestation_validator.js +20 -11
  53. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +4 -2
  54. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  55. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +2 -2
  56. package/dest/msg_validators/clock_tolerance.d.ts +12 -1
  57. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  58. package/dest/msg_validators/clock_tolerance.js +54 -3
  59. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +2 -1
  60. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  61. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +2 -1
  62. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  63. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +3 -1
  64. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  65. package/dest/msg_validators/proposal_validator/proposal_validator.js +19 -11
  66. package/dest/msg_validators/tx_validator/archive_cache.js +1 -1
  67. package/dest/msg_validators/tx_validator/factory.d.ts +2 -2
  68. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  69. package/dest/msg_validators/tx_validator/factory.js +3 -3
  70. package/dest/msg_validators/tx_validator/gas_validator.d.ts +36 -4
  71. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  72. package/dest/msg_validators/tx_validator/gas_validator.js +50 -33
  73. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  74. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  75. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  76. package/dest/services/data_store.d.ts +1 -1
  77. package/dest/services/data_store.d.ts.map +1 -1
  78. package/dest/services/data_store.js +5 -5
  79. package/dest/services/dummy_service.d.ts +6 -3
  80. package/dest/services/dummy_service.d.ts.map +1 -1
  81. package/dest/services/dummy_service.js +6 -1
  82. package/dest/services/gossipsub/topic_score_params.d.ts +13 -2
  83. package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
  84. package/dest/services/gossipsub/topic_score_params.js +21 -4
  85. package/dest/services/libp2p/instrumentation.d.ts +3 -1
  86. package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
  87. package/dest/services/libp2p/instrumentation.js +14 -0
  88. package/dest/services/libp2p/libp2p_service.d.ts +19 -27
  89. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  90. package/dest/services/libp2p/libp2p_service.js +158 -133
  91. package/dest/services/peer-manager/metrics.d.ts +3 -1
  92. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  93. package/dest/services/peer-manager/metrics.js +6 -0
  94. package/dest/services/peer-manager/peer_manager.d.ts +6 -2
  95. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  96. package/dest/services/peer-manager/peer_manager.js +39 -11
  97. package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
  98. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  99. package/dest/services/peer-manager/peer_scoring.js +32 -10
  100. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +11 -8
  101. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  102. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +82 -101
  103. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +3 -2
  104. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  105. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +5 -4
  106. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  107. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +13 -7
  108. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -11
  109. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  110. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +52 -15
  111. package/dest/services/reqresp/config.d.ts +3 -3
  112. package/dest/services/reqresp/config.d.ts.map +1 -1
  113. package/dest/services/reqresp/interface.d.ts +14 -9
  114. package/dest/services/reqresp/interface.d.ts.map +1 -1
  115. package/dest/services/reqresp/interface.js +10 -11
  116. package/dest/services/reqresp/metrics.d.ts +1 -1
  117. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  118. package/dest/services/reqresp/metrics.js +0 -1
  119. package/dest/services/reqresp/protocols/index.d.ts +1 -2
  120. package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
  121. package/dest/services/reqresp/protocols/index.js +0 -1
  122. package/dest/services/reqresp/protocols/tx.d.ts +1 -1
  123. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  124. package/dest/services/reqresp/protocols/tx.js +1 -3
  125. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
  126. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
  127. package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
  128. package/dest/services/reqresp/reqresp.d.ts +4 -2
  129. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  130. package/dest/services/reqresp/reqresp.js +13 -3
  131. package/dest/services/service.d.ts +5 -2
  132. package/dest/services/service.d.ts.map +1 -1
  133. package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -4
  134. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  135. package/dest/services/tx_collection/fast_tx_collection.js +57 -73
  136. package/dest/services/tx_collection/proposal_tx_collector.d.ts +6 -7
  137. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  138. package/dest/services/tx_collection/proposal_tx_collector.js +4 -4
  139. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  140. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  141. package/dest/services/tx_collection/request_tracker.js +84 -0
  142. package/dest/services/tx_collection/slow_tx_collection.js +1 -1
  143. package/dest/services/tx_collection/tx_collection.d.ts +3 -6
  144. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  145. package/dest/test-helpers/make-test-p2p-clients.d.ts +1 -1
  146. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  147. package/dest/test-helpers/make-test-p2p-clients.js +4 -1
  148. package/dest/test-helpers/mock-pubsub.d.ts +11 -3
  149. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  150. package/dest/test-helpers/mock-pubsub.js +36 -11
  151. package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
  152. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  153. package/dest/test-helpers/reqresp-nodes.js +5 -3
  154. package/dest/test-helpers/testbench-utils.d.ts +1 -1
  155. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  156. package/dest/test-helpers/testbench-utils.js +21 -2
  157. package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
  158. package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
  159. package/dest/testbench/p2p_client_testbench_worker.js +73 -17
  160. package/dest/testbench/worker_client_manager.d.ts +8 -1
  161. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  162. package/dest/testbench/worker_client_manager.js +51 -2
  163. package/dest/util.d.ts +1 -1
  164. package/package.json +14 -14
  165. package/src/client/factory.ts +25 -19
  166. package/src/client/interface.ts +9 -1
  167. package/src/client/p2p_client.ts +34 -9
  168. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +21 -9
  169. package/src/config.ts +29 -17
  170. package/src/errors/p2p-service.error.ts +11 -0
  171. package/src/index.ts +0 -1
  172. package/src/mem_pools/attestation_pool/attestation_pool.ts +17 -12
  173. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +6 -6
  174. package/src/mem_pools/index.ts +0 -3
  175. package/src/mem_pools/instrumentation.ts +17 -13
  176. package/src/mem_pools/tx_pool_v2/eviction/index.ts +1 -0
  177. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +65 -0
  178. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +3 -3
  179. package/src/mem_pools/tx_pool_v2/interfaces.ts +10 -4
  180. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +24 -12
  181. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +29 -43
  182. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +3 -0
  183. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +21 -1
  184. package/src/msg_validators/attestation_validator/README.md +1 -1
  185. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -9
  186. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +4 -1
  187. package/src/msg_validators/clock_tolerance.ts +72 -3
  188. package/src/msg_validators/proposal_validator/README.md +4 -4
  189. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +4 -1
  190. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +4 -1
  191. package/src/msg_validators/proposal_validator/proposal_validator.ts +17 -10
  192. package/src/msg_validators/tx_validator/README.md +11 -3
  193. package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
  194. package/src/msg_validators/tx_validator/factory.ts +3 -1
  195. package/src/msg_validators/tx_validator/gas_validator.ts +82 -33
  196. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  197. package/src/services/data_store.ts +5 -13
  198. package/src/services/dummy_service.ts +8 -2
  199. package/src/services/gossipsub/topic_score_params.ts +36 -4
  200. package/src/services/libp2p/instrumentation.ts +14 -0
  201. package/src/services/libp2p/libp2p_service.ts +154 -143
  202. package/src/services/peer-manager/metrics.ts +7 -0
  203. package/src/services/peer-manager/peer_manager.ts +45 -11
  204. package/src/services/peer-manager/peer_scoring.ts +27 -5
  205. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  206. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +78 -111
  207. package/src/services/reqresp/batch-tx-requester/interface.ts +2 -1
  208. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +13 -6
  209. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
  210. package/src/services/reqresp/config.ts +2 -2
  211. package/src/services/reqresp/interface.ts +21 -11
  212. package/src/services/reqresp/metrics.ts +0 -1
  213. package/src/services/reqresp/protocols/index.ts +0 -1
  214. package/src/services/reqresp/protocols/tx.ts +1 -3
  215. package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
  216. package/src/services/reqresp/reqresp.ts +21 -2
  217. package/src/services/service.ts +6 -1
  218. package/src/services/tx_collection/fast_tx_collection.ts +57 -83
  219. package/src/services/tx_collection/proposal_tx_collector.ts +8 -13
  220. package/src/services/tx_collection/request_tracker.ts +127 -0
  221. package/src/services/tx_collection/slow_tx_collection.ts +1 -1
  222. package/src/services/tx_collection/tx_collection.ts +3 -5
  223. package/src/test-helpers/make-test-p2p-clients.ts +3 -1
  224. package/src/test-helpers/mock-pubsub.ts +34 -5
  225. package/src/test-helpers/reqresp-nodes.ts +5 -3
  226. package/src/test-helpers/testbench-utils.ts +29 -3
  227. package/src/testbench/p2p_client_testbench_worker.ts +74 -15
  228. package/src/testbench/worker_client_manager.ts +57 -2
  229. package/src/util.ts +1 -1
  230. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
  231. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  232. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
  233. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
  234. package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
  235. package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
  236. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
  237. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
  238. package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
  239. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
  240. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  241. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -123
  242. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
  243. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  244. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
  245. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
  246. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  247. package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
  248. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
  249. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  250. package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
  251. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
  252. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
  253. package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
  254. package/dest/mem_pools/tx_pool/index.d.ts +0 -3
  255. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  256. package/dest/mem_pools/tx_pool/index.js +0 -2
  257. package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
  258. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  259. package/dest/mem_pools/tx_pool/priority.js +0 -15
  260. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
  261. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  262. package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
  263. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  264. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  265. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -402
  266. package/dest/services/reqresp/protocols/block.d.ts +0 -9
  267. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  268. package/dest/services/reqresp/protocols/block.js +0 -32
  269. package/dest/services/tx_collection/missing_txs_tracker.d.ts +0 -32
  270. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +0 -1
  271. package/dest/services/tx_collection/missing_txs_tracker.js +0 -27
  272. package/src/mem_pools/tx_pool/README.md +0 -270
  273. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
  274. package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
  275. package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
  276. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -163
  277. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
  278. package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
  279. package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
  280. package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
  281. package/src/mem_pools/tx_pool/index.ts +0 -2
  282. package/src/mem_pools/tx_pool/priority.ts +0 -20
  283. package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
  284. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -321
  285. package/src/services/reqresp/protocols/block.ts +0 -37
  286. package/src/services/tx_collection/missing_txs_tracker.ts +0 -52
@@ -1,5 +1,5 @@
1
1
  import { TopicType, createTopicString } from '@aztec/stdlib/p2p';
2
- import { calculateMaxBlocksPerSlot } from '@aztec/stdlib/timetable';
2
+ import { createCheckpointTimingModel } from '@aztec/stdlib/timetable';
3
3
 
4
4
  import { createTopicScoreParams } from '@chainsafe/libp2p-gossipsub/score';
5
5
 
@@ -9,12 +9,18 @@ import { createTopicScoreParams } from '@chainsafe/libp2p-gossipsub/score';
9
9
  export type TopicScoringNetworkParams = {
10
10
  /** L2 slot duration in milliseconds */
11
11
  slotDurationMs: number;
12
+ /** L1 slot duration in seconds */
13
+ ethereumSlotDuration: number;
12
14
  /** Gossipsub heartbeat interval in milliseconds */
13
15
  heartbeatIntervalMs: number;
14
16
  /** Target committee size (number of validators expected to attest per slot) */
15
17
  targetCommitteeSize: number;
16
18
  /** Duration per block in milliseconds when building multiple blocks per slot. If undefined, single block mode. */
17
19
  blockDurationMs?: number;
20
+ /** Time budget in seconds reserved for L1 publishing. Defaults to ethereumSlotDuration. */
21
+ l1PublishingTime?: number;
22
+ /** One-way proposal/attestation propagation budget in seconds. */
23
+ p2pPropagationTime?: number;
18
24
  /** Expected number of block proposals per slot for scoring override. 0 disables scoring, undefined falls back to blocksPerSlot - 1. */
19
25
  expectedBlockProposalsPerSlot?: number;
20
26
  };
@@ -25,10 +31,32 @@ export type TopicScoringNetworkParams = {
25
31
  *
26
32
  * @param slotDurationMs - L2 slot duration in milliseconds
27
33
  * @param blockDurationMs - Duration per block in milliseconds (undefined = single block mode)
34
+ * @param opts - Shared checkpoint timing inputs used by the sequencer and validators
28
35
  * @returns Number of blocks per slot
29
36
  */
30
- export function calculateBlocksPerSlot(slotDurationMs: number, blockDurationMs: number | undefined): number {
31
- return calculateMaxBlocksPerSlot(slotDurationMs / 1000, blockDurationMs ? blockDurationMs / 1000 : undefined);
37
+ export function calculateBlocksPerSlot(
38
+ slotDurationMs: number,
39
+ blockDurationMs: number | undefined,
40
+ opts?: {
41
+ ethereumSlotDuration: number;
42
+ l1PublishingTime?: number;
43
+ p2pPropagationTime?: number;
44
+ },
45
+ ): number {
46
+ if (!opts) {
47
+ return createCheckpointTimingModel({
48
+ aztecSlotDuration: slotDurationMs / 1000,
49
+ blockDuration: blockDurationMs ? blockDurationMs / 1000 : undefined,
50
+ }).calculateMaxBlocksPerSlot();
51
+ }
52
+
53
+ return createCheckpointTimingModel({
54
+ aztecSlotDuration: slotDurationMs / 1000,
55
+ ethereumSlotDuration: opts.ethereumSlotDuration,
56
+ blockDuration: blockDurationMs ? blockDurationMs / 1000 : undefined,
57
+ l1PublishingTime: opts.l1PublishingTime ?? opts.ethereumSlotDuration,
58
+ p2pPropagationTime: opts.p2pPropagationTime,
59
+ }).calculateMaxBlocksPerSlot();
32
60
  }
33
61
 
34
62
  /**
@@ -279,7 +307,11 @@ export class TopicScoreParamsFactory {
279
307
  const { slotDurationMs, heartbeatIntervalMs, blockDurationMs } = params;
280
308
 
281
309
  // Compute values that are the same for all topics
282
- this.blocksPerSlot = calculateBlocksPerSlot(slotDurationMs, blockDurationMs);
310
+ this.blocksPerSlot = calculateBlocksPerSlot(slotDurationMs, blockDurationMs, {
311
+ ethereumSlotDuration: params.ethereumSlotDuration,
312
+ l1PublishingTime: params.l1PublishingTime,
313
+ p2pPropagationTime: params.p2pPropagationTime,
314
+ });
283
315
  this.heartbeatsPerSlot = slotDurationMs / heartbeatIntervalMs;
284
316
  this.invalidDecay = computeDecay(heartbeatIntervalMs, slotDurationMs, INVALID_DECAY_WINDOW_SLOTS);
285
317
 
@@ -18,6 +18,7 @@ export class P2PInstrumentation {
18
18
  private messagePrevalidationCount: UpDownCounter;
19
19
  private messageLatency: Histogram;
20
20
  private txReceivedCount: UpDownCounter;
21
+ private slowValidationCount: UpDownCounter;
21
22
 
22
23
  private aggLatencyHisto = new Map<TopicType, RecordableHistogram>();
23
24
  private aggValidationHisto = new Map<TopicType, RecordableHistogram>();
@@ -48,6 +49,15 @@ export class P2PInstrumentation {
48
49
 
49
50
  this.txReceivedCount = createUpDownCounterWithDefault(meter, Metrics.P2P_GOSSIP_TX_RECEIVED_COUNT);
50
51
 
52
+ this.slowValidationCount = createUpDownCounterWithDefault(meter, Metrics.P2P_GOSSIP_SLOW_VALIDATION_COUNT, {
53
+ [Attributes.TOPIC_NAME]: [
54
+ TopicType.tx,
55
+ TopicType.block_proposal,
56
+ TopicType.checkpoint_proposal,
57
+ TopicType.checkpoint_attestation,
58
+ ],
59
+ });
60
+
51
61
  this.aggLatencyMetrics = {
52
62
  avg: meter.createObservableGauge(Metrics.P2P_GOSSIP_AGG_MESSAGE_LATENCY_AVG),
53
63
  max: meter.createObservableGauge(Metrics.P2P_GOSSIP_AGG_MESSAGE_LATENCY_MAX),
@@ -87,6 +97,10 @@ export class P2PInstrumentation {
87
97
  this.txReceivedCount.add(count);
88
98
  }
89
99
 
100
+ public incSlowValidation(topicName: TopicType) {
101
+ this.slowValidationCount.add(1, { [Attributes.TOPIC_NAME]: topicName });
102
+ }
103
+
90
104
  public incMessagePrevalidationStatus(passed: boolean, topicName: TopicType | undefined) {
91
105
  this.messagePrevalidationCount.add(1, { [Attributes.TOPIC_NAME]: topicName, [Attributes.OK]: passed });
92
106
  }