@aztec/p2p 0.0.1-commit.cd76b27 → 0.0.1-commit.ce4f8c4f2

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 (267) hide show
  1. package/README.md +129 -3
  2. package/dest/client/factory.d.ts +5 -6
  3. package/dest/client/factory.d.ts.map +1 -1
  4. package/dest/client/factory.js +28 -26
  5. package/dest/client/interface.d.ts +6 -13
  6. package/dest/client/interface.d.ts.map +1 -1
  7. package/dest/client/p2p_client.d.ts +5 -13
  8. package/dest/client/p2p_client.d.ts.map +1 -1
  9. package/dest/client/p2p_client.js +25 -92
  10. package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +4 -5
  11. package/dest/config.d.ts +33 -15
  12. package/dest/config.d.ts.map +1 -1
  13. package/dest/config.js +86 -37
  14. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +4 -4
  15. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  16. package/dest/mem_pools/attestation_pool/attestation_pool.js +8 -4
  17. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +6 -6
  18. package/dest/mem_pools/instrumentation.d.ts +4 -2
  19. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  20. package/dest/mem_pools/instrumentation.js +16 -14
  21. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  22. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  23. package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +2 -1
  24. package/dest/mem_pools/tx_pool/priority.d.ts +2 -2
  25. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  26. package/dest/mem_pools/tx_pool/priority.js +4 -4
  27. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  28. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  29. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +3 -1
  30. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +1 -1
  31. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -1
  32. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +3 -2
  33. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
  34. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
  35. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +2 -0
  36. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +7 -1
  37. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  38. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
  39. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
  40. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
  41. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +10 -6
  42. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +1 -1
  43. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
  44. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +8 -6
  45. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +2 -2
  46. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
  47. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +2 -2
  48. package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
  49. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
  50. package/dest/mem_pools/tx_pool_v2/index.js +1 -1
  51. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +15 -9
  52. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool_v2/interfaces.js +3 -1
  54. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +48 -11
  55. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
  56. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +81 -17
  57. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
  58. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
  59. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +26 -44
  60. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +5 -3
  61. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
  62. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +6 -0
  63. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +3 -2
  64. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  65. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +196 -151
  66. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +1 -1
  67. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  68. package/dest/msg_validators/attestation_validator/attestation_validator.js +5 -4
  69. package/dest/msg_validators/clock_tolerance.d.ts +1 -1
  70. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  71. package/dest/msg_validators/clock_tolerance.js +4 -3
  72. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -4
  73. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  74. package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
  75. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -4
  76. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  77. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
  78. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -8
  79. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  80. package/dest/msg_validators/proposal_validator/proposal_validator.js +53 -41
  81. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +2 -2
  82. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  83. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
  84. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
  85. package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
  86. package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
  87. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
  88. package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
  89. package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
  90. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
  91. package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
  92. package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
  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 +35 -2
  96. package/dest/msg_validators/tx_validator/factory.d.ts +133 -6
  97. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  98. package/dest/msg_validators/tx_validator/factory.js +247 -60
  99. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
  100. package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
  101. package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
  102. package/dest/msg_validators/tx_validator/gas_validator.d.ts +67 -3
  103. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  104. package/dest/msg_validators/tx_validator/gas_validator.js +104 -37
  105. package/dest/msg_validators/tx_validator/index.d.ts +3 -1
  106. package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
  107. package/dest/msg_validators/tx_validator/index.js +2 -0
  108. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +1 -1
  109. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  110. package/dest/msg_validators/tx_validator/metadata_validator.js +4 -4
  111. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
  112. package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
  113. package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
  114. package/dest/msg_validators/tx_validator/phases_validator.d.ts +22 -2
  115. package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
  116. package/dest/msg_validators/tx_validator/phases_validator.js +72 -24
  117. package/dest/services/discv5/discV5_service.d.ts +1 -1
  118. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  119. package/dest/services/discv5/discV5_service.js +4 -2
  120. package/dest/services/dummy_service.d.ts +2 -3
  121. package/dest/services/dummy_service.d.ts.map +1 -1
  122. package/dest/services/dummy_service.js +1 -4
  123. package/dest/services/encoding.d.ts +6 -2
  124. package/dest/services/encoding.d.ts.map +1 -1
  125. package/dest/services/encoding.js +14 -8
  126. package/dest/services/libp2p/libp2p_service.d.ts +20 -20
  127. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  128. package/dest/services/libp2p/libp2p_service.js +221 -143
  129. package/dest/services/peer-manager/metrics.d.ts +3 -1
  130. package/dest/services/peer-manager/metrics.d.ts.map +1 -1
  131. package/dest/services/peer-manager/metrics.js +6 -0
  132. package/dest/services/peer-manager/peer_manager.d.ts +1 -1
  133. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  134. package/dest/services/peer-manager/peer_manager.js +6 -3
  135. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +11 -8
  136. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  137. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +82 -101
  138. package/dest/services/reqresp/batch-tx-requester/interface.d.ts +3 -2
  139. package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
  140. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +5 -4
  141. package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
  142. package/dest/services/reqresp/batch-tx-requester/missing_txs.js +13 -7
  143. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +19 -11
  144. package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -1
  145. package/dest/services/reqresp/batch-tx-requester/peer_collection.js +52 -15
  146. package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
  147. package/dest/services/reqresp/reqresp.d.ts +1 -1
  148. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  149. package/dest/services/reqresp/reqresp.js +19 -10
  150. package/dest/services/service.d.ts +8 -2
  151. package/dest/services/service.d.ts.map +1 -1
  152. package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -4
  153. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  154. package/dest/services/tx_collection/fast_tx_collection.js +57 -73
  155. package/dest/services/tx_collection/proposal_tx_collector.d.ts +6 -7
  156. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  157. package/dest/services/tx_collection/proposal_tx_collector.js +4 -4
  158. package/dest/services/tx_collection/request_tracker.d.ts +53 -0
  159. package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
  160. package/dest/services/tx_collection/request_tracker.js +84 -0
  161. package/dest/services/tx_collection/slow_tx_collection.js +1 -1
  162. package/dest/services/tx_collection/tx_collection.d.ts +3 -6
  163. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  164. package/dest/services/tx_provider.d.ts +3 -3
  165. package/dest/services/tx_provider.d.ts.map +1 -1
  166. package/dest/services/tx_provider.js +4 -4
  167. package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
  168. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  169. package/dest/test-helpers/make-test-p2p-clients.js +1 -2
  170. package/dest/test-helpers/mock-pubsub.d.ts +7 -3
  171. package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
  172. package/dest/test-helpers/mock-pubsub.js +11 -3
  173. package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
  174. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  175. package/dest/test-helpers/reqresp-nodes.js +2 -2
  176. package/dest/test-helpers/testbench-utils.d.ts +2 -2
  177. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  178. package/dest/test-helpers/testbench-utils.js +22 -3
  179. package/dest/testbench/p2p_client_testbench_worker.js +10 -9
  180. package/dest/testbench/worker_client_manager.d.ts +3 -1
  181. package/dest/testbench/worker_client_manager.d.ts.map +1 -1
  182. package/dest/testbench/worker_client_manager.js +6 -2
  183. package/dest/util.d.ts +9 -4
  184. package/dest/util.d.ts.map +1 -1
  185. package/dest/util.js +2 -9
  186. package/package.json +14 -14
  187. package/src/client/factory.ts +45 -45
  188. package/src/client/interface.ts +5 -19
  189. package/src/client/p2p_client.ts +26 -122
  190. package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +5 -8
  191. package/src/config.ts +125 -43
  192. package/src/mem_pools/attestation_pool/attestation_pool.ts +8 -7
  193. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +6 -6
  194. package/src/mem_pools/instrumentation.ts +17 -13
  195. package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +2 -1
  196. package/src/mem_pools/tx_pool/priority.ts +4 -4
  197. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +3 -1
  198. package/src/mem_pools/tx_pool_v2/README.md +9 -1
  199. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +3 -2
  200. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -0
  201. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +11 -1
  202. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +2 -2
  203. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +10 -6
  204. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +15 -6
  205. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +2 -1
  206. package/src/mem_pools/tx_pool_v2/index.ts +1 -1
  207. package/src/mem_pools/tx_pool_v2/interfaces.ts +16 -8
  208. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +115 -20
  209. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +29 -43
  210. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +17 -2
  211. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +207 -154
  212. package/src/msg_validators/attestation_validator/README.md +49 -0
  213. package/src/msg_validators/attestation_validator/attestation_validator.ts +5 -4
  214. package/src/msg_validators/clock_tolerance.ts +4 -3
  215. package/src/msg_validators/proposal_validator/README.md +123 -0
  216. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +14 -4
  217. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +20 -7
  218. package/src/msg_validators/proposal_validator/proposal_validator.ts +69 -45
  219. package/src/msg_validators/tx_validator/README.md +119 -0
  220. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -3
  221. package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
  222. package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
  223. package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
  224. package/src/msg_validators/tx_validator/data_validator.ts +42 -1
  225. package/src/msg_validators/tx_validator/factory.ts +394 -78
  226. package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
  227. package/src/msg_validators/tx_validator/gas_validator.ts +123 -27
  228. package/src/msg_validators/tx_validator/index.ts +2 -0
  229. package/src/msg_validators/tx_validator/metadata_validator.ts +12 -4
  230. package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
  231. package/src/msg_validators/tx_validator/phases_validator.ts +82 -27
  232. package/src/services/discv5/discV5_service.ts +4 -2
  233. package/src/services/dummy_service.ts +1 -5
  234. package/src/services/encoding.ts +14 -7
  235. package/src/services/libp2p/libp2p_service.ts +235 -166
  236. package/src/services/peer-manager/metrics.ts +7 -0
  237. package/src/services/peer-manager/peer_manager.ts +7 -3
  238. package/src/services/reqresp/README.md +229 -0
  239. package/src/services/reqresp/batch-tx-requester/README.md +46 -7
  240. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +78 -111
  241. package/src/services/reqresp/batch-tx-requester/interface.ts +2 -1
  242. package/src/services/reqresp/batch-tx-requester/missing_txs.ts +13 -6
  243. package/src/services/reqresp/batch-tx-requester/peer_collection.ts +68 -24
  244. package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
  245. package/src/services/reqresp/reqresp.ts +22 -12
  246. package/src/services/service.ts +8 -1
  247. package/src/services/tx_collection/fast_tx_collection.ts +57 -83
  248. package/src/services/tx_collection/proposal_tx_collector.ts +8 -13
  249. package/src/services/tx_collection/request_tracker.ts +127 -0
  250. package/src/services/tx_collection/slow_tx_collection.ts +1 -1
  251. package/src/services/tx_collection/tx_collection.ts +3 -5
  252. package/src/services/tx_provider.ts +2 -2
  253. package/src/test-helpers/make-test-p2p-clients.ts +1 -3
  254. package/src/test-helpers/mock-pubsub.ts +12 -6
  255. package/src/test-helpers/reqresp-nodes.ts +3 -6
  256. package/src/test-helpers/testbench-utils.ts +30 -4
  257. package/src/testbench/p2p_client_testbench_worker.ts +7 -12
  258. package/src/testbench/worker_client_manager.ts +13 -5
  259. package/src/util.ts +9 -13
  260. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
  261. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
  262. package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
  263. package/dest/services/tx_collection/missing_txs_tracker.d.ts +0 -32
  264. package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +0 -1
  265. package/dest/services/tx_collection/missing_txs_tracker.js +0 -27
  266. package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
  267. package/src/services/tx_collection/missing_txs_tracker.ts +0 -52
@@ -378,13 +378,10 @@ import { RunningPromise } from '@aztec/foundation/promise';
378
378
  import { DateProvider } from '@aztec/foundation/timer';
379
379
  import { L2TipsKVStore } from '@aztec/kv-store/stores';
380
380
  import { L2BlockStream } from '@aztec/stdlib/block';
381
- import { getTimestampForSlot } from '@aztec/stdlib/epoch-helpers';
382
381
  import { tryStop } from '@aztec/stdlib/interfaces/server';
383
382
  import { Attributes, WithTracer, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
384
383
  import { getP2PDefaultConfig } from '../config.js';
385
384
  import { TxPoolError } from '../errors/tx-pool.error.js';
386
- import { ReqRespSubProtocol } from '../services/reqresp/interface.js';
387
- import { chunkTxHashesRequest } from '../services/reqresp/protocols/tx.js';
388
385
  import { TxProvider } from '../services/tx_provider.js';
389
386
  import { P2PClientState } from './interface.js';
390
387
  _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
@@ -439,7 +436,7 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
439
436
  validatorAddresses;
440
437
  /** Tracks the last slot for which we called prepareForSlot */ lastSlotProcessed;
441
438
  /** Polls for slot changes and calls prepareForSlot on the tx pool */ slotMonitor;
442
- constructor(_clientType, store, l2BlockSource, mempools, p2pService, txCollection, txFileStore, epochCache, config = {}, _dateProvider = new DateProvider(), telemetry = getTelemetryClient(), log = createLogger('p2p')){
439
+ constructor(store, l2BlockSource, mempools, p2pService, txCollection, txFileStore, epochCache, config = {}, _dateProvider = new DateProvider(), telemetry = getTelemetryClient(), log = createLogger('p2p')){
443
440
  super(telemetry, 'P2PClient'), this.store = store, this.l2BlockSource = l2BlockSource, this.p2pService = p2pService, this.txCollection = txCollection, this.txFileStore = txFileStore, this.epochCache = epochCache, this._dateProvider = _dateProvider, this.telemetry = telemetry, this.log = log, this.currentState = (_initProto(this), P2PClientState.IDLE), this.syncPromise = Promise.resolve(), this.syncResolve = undefined, this.latestBlockNumberAtStart = -1, this.provenBlockNumberAtStart = -1, this.finalizedBlockNumberAtStart = -1, this.validatorAddresses = [], this.lastSlotProcessed = SlotNumber.ZERO;
444
441
  this.config = {
445
442
  ...getP2PDefaultConfig(),
@@ -448,29 +445,6 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
448
445
  this.txPool = mempools.txPool;
449
446
  this.attestationPool = mempools.attestationPool;
450
447
  this.txProvider = new TxProvider(this.txCollection, this.txPool, this, this.log.createChild('tx-provider'), this.telemetry);
451
- // Default to collecting all txs when we see a valid proposal
452
- // This can be overridden by the validator client to validate, and it will call getTxsForBlockProposal on its own
453
- // Note: Validators do NOT attest to individual blocks - attestations are only for checkpoint proposals.
454
- // TODO(palla/txs): We should not trigger a request for txs on a proposal before fully validating it. We need to bring
455
- // validator-client code into here so we can validate a proposal is reasonable.
456
- this.registerBlockProposalHandler(async (block, sender)=>{
457
- this.log.debug(`Received block proposal from ${sender.toString()}`);
458
- // TODO(palla/txs): Need to subtract validatorReexecuteDeadlineMs from this deadline (see ValidatorClient.getReexecutionDeadline)
459
- const constants = this.txCollection.getConstants();
460
- const nextSlotTimestampSeconds = Number(getTimestampForSlot(SlotNumber(block.slotNumber + 1), constants));
461
- const deadline = new Date(nextSlotTimestampSeconds * 1000);
462
- const parentBlock = await this.l2BlockSource.getBlockHeaderByArchive(block.blockHeader.lastArchive.root);
463
- if (!parentBlock) {
464
- this.log.debug(`Cannot collect txs for proposal as parent block not found`);
465
- return false;
466
- }
467
- const blockNumber = BlockNumber(parentBlock.getBlockNumber() + 1);
468
- await this.txProvider.getTxsForBlockProposal(block, blockNumber, {
469
- pinnedPeer: sender,
470
- deadline
471
- });
472
- return true;
473
- });
474
448
  this.l2Tips = new L2TipsKVStore(store, 'p2p_client');
475
449
  this.synchedLatestSlot = store.openSingleton('p2p_pool_last_l2_slot');
476
450
  }
@@ -697,23 +671,6 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
697
671
  registerDuplicateAttestationCallback(callback) {
698
672
  this.p2pService.registerDuplicateAttestationCallback(callback);
699
673
  }
700
- /**
701
- * Uses the batched Request Response protocol to request a set of transactions from the network.
702
- */ async requestTxsByHash(txHashes, pinnedPeerId) {
703
- const timeoutMs = 8000; // Longer timeout for now
704
- const maxRetryAttempts = 10; // Keep retrying within the timeout
705
- const requests = chunkTxHashesRequest(txHashes);
706
- const maxPeers = Math.min(Math.ceil(requests.length / 3), 10);
707
- const txBatches = await this.p2pService.sendBatchRequest(ReqRespSubProtocol.TX, requests, pinnedPeerId, timeoutMs, maxPeers, maxRetryAttempts);
708
- const txs = txBatches.flat();
709
- if (txs.length > 0) {
710
- await this.txPool.addPendingTxs(txs);
711
- }
712
- const txHashesStr = txHashes.map((tx)=>tx.toString()).join(', ');
713
- this.log.debug(`Requested txs ${txHashesStr} (${txs.length} / ${txHashes.length}) from peers`);
714
- // We return all transactions, even the not found ones to the caller, such they can handle missing items themselves.
715
- return txs;
716
- }
717
674
  async getPendingTxs(limit, after) {
718
675
  if (limit !== undefined && limit <= 0) {
719
676
  throw new TypeError('limit must be greater than 0');
@@ -769,42 +726,6 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
769
726
  return this.txPool.hasTxs(txHashes);
770
727
  }
771
728
  /**
772
- * Returns transactions in the transaction pool by hash.
773
- * If a transaction is not in the pool, it will be requested from the network.
774
- * @param txHashes - Hashes of the transactions to look for.
775
- * @returns The txs found, or undefined if not found in the order requested.
776
- */ async getTxsByHash(txHashes, pinnedPeerId) {
777
- const txs = await Promise.all(txHashes.map((txHash)=>this.txPool.getTxByHash(txHash)));
778
- const missingTxHashes = txs.map((tx, index)=>[
779
- tx,
780
- index
781
- ]).filter(([tx, _index])=>!tx).map(([_tx, index])=>txHashes[index]);
782
- if (missingTxHashes.length === 0) {
783
- return txs;
784
- }
785
- const missingTxs = await this.requestTxsByHash(missingTxHashes, pinnedPeerId);
786
- // TODO: optimize
787
- // Merge the found txs in order
788
- const mergingTxs = txHashes.map((txHash)=>{
789
- // Is it in the txs list from the mempool?
790
- for (const tx of txs){
791
- if (tx !== undefined && tx.getTxHash().equals(txHash)) {
792
- return tx;
793
- }
794
- }
795
- // Is it in the fetched missing txs?
796
- // Note: this is an O(n^2) operation, but we expect the number of missing txs to be small.
797
- for (const tx of missingTxs){
798
- if (tx.getTxHash().equals(txHash)) {
799
- return tx;
800
- }
801
- }
802
- // Otherwise return undefined
803
- return undefined;
804
- });
805
- return mergingTxs;
806
- }
807
- /**
808
729
  * Returns an archived transaction in the transaction pool by its hash.
809
730
  * @param txHash - Hash of the archived transaction to look for.
810
731
  * @returns A single tx or undefined.
@@ -970,26 +891,38 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
970
891
  });
971
892
  }
972
893
  /**
973
- * Returns true if the prune crossed a checkpoint boundary.
974
- * If the old and new checkpoint numbers are the same, the prune is within a single checkpoint.
975
- * If they differ, the prune spans across checkpoints (epoch prune).
894
+ * Returns true if the prune is an epoch prune (new checkpoint number is less than old).
895
+ * If the checkpoint number stays the same or increases, the prune is within a checkpoint.
976
896
  */ async isEpochPrune(newCheckpoint) {
977
897
  const tips = await this.l2Tips.getL2Tips();
978
898
  const oldCheckpointNumber = tips.checkpointed.checkpoint.number;
979
- if (oldCheckpointNumber <= CheckpointNumber.ZERO) {
899
+ if (oldCheckpointNumber <= CheckpointNumber.INITIAL) {
980
900
  return false;
981
901
  }
982
- const isEpochPrune = oldCheckpointNumber !== newCheckpoint.number;
983
- this.log.info(`Detected epoch prune: ${isEpochPrune}. Old checkpoint: ${oldCheckpointNumber}, new checkpoint: ${newCheckpoint.number}`);
902
+ const newCheckpointNumber = newCheckpoint.number;
903
+ // We check that the new checkpoint number is less than the old checkpoint number in order to consider it an epoch prune.
904
+ // To be more certain that it is an epoch prune, we will check that at least 2 checkpoints were removed.
905
+ // This means we should avoid thinking checkpoints removed by L1 re-orgs are epoch prunes
906
+ const thresholdForEpochPrune = CheckpointNumber(oldCheckpointNumber - 2);
907
+ const isEpochPrune = newCheckpointNumber <= thresholdForEpochPrune;
908
+ if (isEpochPrune) {
909
+ this.log.info(`Detected epoch prune to ${newCheckpointNumber}`, {
910
+ oldCheckpointNumber,
911
+ newCheckpointNumber,
912
+ thresholdForEpochPrune
913
+ });
914
+ }
984
915
  return isEpochPrune;
985
916
  }
986
917
  /** Checks if the slot has changed and calls prepareForSlot if so. */ async maybeCallPrepareForSlot() {
987
- const { currentSlot } = this.epochCache.getCurrentAndNextSlot();
988
- if (currentSlot <= this.lastSlotProcessed) {
918
+ // If we have a pending checkpoint available, we want to prepare the target slot - otherwise we prepare the current slot
919
+ // Knowledege of pending checkpoints is in the PR above
920
+ const { targetSlot } = this.epochCache.getTargetAndNextSlot();
921
+ if (targetSlot <= this.lastSlotProcessed) {
989
922
  return;
990
923
  }
991
- this.lastSlotProcessed = currentSlot;
992
- await this.txPool.prepareForSlot(currentSlot);
924
+ this.lastSlotProcessed = targetSlot;
925
+ await this.txPool.prepareForSlot(targetSlot);
993
926
  }
994
927
  async startServiceIfSynched() {
995
928
  if (this.currentState !== P2PClientState.SYNCHING) {
@@ -1020,8 +953,8 @@ _dec = trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
1020
953
  this.currentState = newState;
1021
954
  this.log.debug(`Moved from state ${P2PClientState[oldState]} to ${P2PClientState[this.currentState]}`);
1022
955
  }
1023
- validate(txs) {
1024
- return this.p2pService.validate(txs);
956
+ validateTxsReceivedInBlockProposal(txs) {
957
+ return this.p2pService.validateTxsReceivedInBlockProposal(txs);
1025
958
  }
1026
959
  /**
1027
960
  * Protects existing transactions by hash for a given slot.
@@ -4,12 +4,11 @@ import { createLogger } from '@aztec/foundation/log';
4
4
  import { sleep } from '@aztec/foundation/sleep';
5
5
  import { DateProvider, Timer, executeTimeout } from '@aztec/foundation/timer';
6
6
  import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
7
- import { P2PClientType } from '@aztec/stdlib/p2p';
8
7
  import { getTelemetryClient } from '@aztec/telemetry-client';
9
8
  import { peerIdFromString } from '@libp2p/peer-id';
10
9
  import { BatchTxRequesterCollector, SendBatchRequestCollector } from '../../../services/index.js';
11
10
  import { RateLimitStatus } from '../../../services/reqresp/rate-limiter/rate_limiter.js';
12
- import { MissingTxsTracker } from '../../../services/tx_collection/missing_txs_tracker.js';
11
+ import { RequestTracker } from '../../../services/tx_collection/request_tracker.js';
13
12
  import { AlwaysTrueCircuitVerifier, BENCHMARK_CONSTANTS, InMemoryAttestationPool, InMemoryTxPool, UNLIMITED_RATE_LIMIT_QUOTA, calculateInternalTimeout, createMockEpochCache, createMockWorldStateSynchronizer } from '../../../test-helpers/index.js';
14
13
  import { createP2PClient } from '../../index.js';
15
14
  import { deserializeBlockProposal, deserializeTx, deserializeTxHash } from './proposal_tx_collector_worker_protocol.js';
@@ -83,7 +82,7 @@ async function startClient(config, clientIndex) {
83
82
  store: kvStore,
84
83
  logger
85
84
  };
86
- client = await createP2PClient(P2PClientType.Full, config, l2BlockSource, proofVerifier, worldState, epochCache, 'proposal-tx-collector-bench-worker', new DateProvider(), telemetry, deps);
85
+ client = await createP2PClient(config, l2BlockSource, proofVerifier, worldState, epochCache, 'proposal-tx-collector-bench-worker', new DateProvider(), telemetry, deps);
87
86
  await client.start();
88
87
  installUnlimitedRateLimits();
89
88
  for(let i = 0; i < 120; i++){
@@ -162,11 +161,11 @@ async function runCollector(cmd) {
162
161
  try {
163
162
  if (collectorType === 'batch-requester') {
164
163
  const collector = new BatchTxRequesterCollector(p2pService, logger, new DateProvider(), noopTxValidator);
165
- const fetched = await executeTimeout((_signal)=>collector.collectTxs(MissingTxsTracker.fromArray(parsedTxHashes), parsedProposal, pinnedPeer, internalTimeoutMs), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
164
+ const fetched = await executeTimeout((_signal)=>collector.collectTxs(RequestTracker.create(parsedTxHashes, new Date(Date.now() + internalTimeoutMs)), parsedProposal, pinnedPeer), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
166
165
  fetchedCount = fetched.length;
167
166
  } else {
168
167
  const collector = new SendBatchRequestCollector(p2pService, BENCHMARK_CONSTANTS.FIXED_MAX_PEERS, BENCHMARK_CONSTANTS.FIXED_MAX_RETRY_ATTEMPTS);
169
- const fetched = await executeTimeout((_signal)=>collector.collectTxs(MissingTxsTracker.fromArray(parsedTxHashes), parsedProposal, pinnedPeer, internalTimeoutMs), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
168
+ const fetched = await executeTimeout((_signal)=>collector.collectTxs(RequestTracker.create(parsedTxHashes, new Date(Date.now() + internalTimeoutMs)), parsedProposal, pinnedPeer), timeoutMs, ()=>new Error(`Collector timed out after ${timeoutMs}ms`));
170
169
  fetchedCount = fetched.length;
171
170
  }
172
171
  } catch (err) {
package/dest/config.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type ConfigMappingsType, SecretValue } from '@aztec/foundation/config';
2
- import { type DataStoreConfig } from '@aztec/kv-store/config';
3
2
  import { type AllowedElement, type ChainConfig, type SequencerConfig } from '@aztec/stdlib/config';
3
+ import { type DataStoreConfig } from '@aztec/stdlib/kv-store';
4
4
  import { type BatchTxRequesterConfig } from './services/reqresp/batch-tx-requester/config.js';
5
5
  import { type P2PReqRespConfig } from './services/reqresp/config.js';
6
6
  import { type TxCollectionConfig } from './services/tx_collection/config.js';
@@ -8,7 +8,15 @@ import { type TxFileStoreConfig } from './services/tx_file_store/config.js';
8
8
  /**
9
9
  * P2P client configuration values.
10
10
  */
11
- export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, ChainConfig, TxCollectionConfig, TxFileStoreConfig, Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot'> {
11
+ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, ChainConfig, TxCollectionConfig, TxFileStoreConfig, Pick<SequencerConfig, 'blockDurationMs' | 'expectedBlockProposalsPerSlot' | 'maxTxsPerBlock'> {
12
+ /** Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set. */
13
+ validateMaxTxsPerBlock?: number;
14
+ /** Maximum transactions per checkpoint for validation. Used as fallback for maxTxsPerBlock when that is not set. */
15
+ validateMaxTxsPerCheckpoint?: number;
16
+ /** Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected. */
17
+ validateMaxL2BlockGas?: number;
18
+ /** Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected. */
19
+ validateMaxDABlockGas?: number;
12
20
  /** A flag dictating whether the P2P subsystem should be enabled. */
13
21
  p2pEnabled: boolean;
14
22
  /** The frequency in which to check for new L2 blocks. */
@@ -21,6 +29,8 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
21
29
  debugDisableColocationPenalty: boolean;
22
30
  /** The frequency in which to check for new peers. */
23
31
  peerCheckIntervalMS: number;
32
+ /** How long to ban a peer after it fails MAX_DIAL_ATTEMPTS dials. */
33
+ peerFailedBanTimeMs: number;
24
34
  /** Size of queue of L2 blocks to store. */
25
35
  l2QueueSize: number;
26
36
  /** The port for the P2P service. */
@@ -83,8 +93,8 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
83
93
  preferredPeers: string[];
84
94
  /** The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb. */
85
95
  p2pStoreMapSizeKb?: number;
86
- /** Which calls are allowed in the public setup phase of a tx. */
87
- txPublicSetupAllowList: AllowedElement[];
96
+ /** Additional entries to extend the default setup allow list. */
97
+ txPublicSetupAllowListExtend: AllowedElement[];
88
98
  /** The maximum number of pending txs before evicting lower priority txs. */
89
99
  maxPendingTxCount: number;
90
100
  /** The node's seen message ID cache size */
@@ -99,9 +109,7 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
99
109
  p2pMaxFailedAuthAttemptsAllowed: number;
100
110
  /** Whether transactions are disabled for this node. This means transactions will be rejected at the RPC and P2P layers. */
101
111
  disableTransactions: boolean;
102
- /** True to simulate discarding transactions. - For testing purposes only*/
103
- dropTransactions: boolean;
104
- /** The probability that a transaction is discarded. - For testing purposes only */
112
+ /** The probability that a transaction is discarded (0 = disabled). - For testing purposes only */
105
113
  dropTransactionsProbability: number;
106
114
  /** Whether to delete transactions from the pool after a reorg instead of moving them back to pending. */
107
115
  txPoolDeleteTxsAfterReorg: boolean;
@@ -113,6 +121,8 @@ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, Cha
113
121
  broadcastEquivocatedProposals?: boolean;
114
122
  /** Minimum age (ms) a transaction must have been in the pool before it's eligible for block building. */
115
123
  minTxPoolAgeMs: number;
124
+ /** Minimum percentage fee increase required to replace an existing tx via RPC (0 = no bump). */
125
+ priceBumpPercentage: bigint;
116
126
  }
117
127
  export declare const DEFAULT_P2P_PORT = 40400;
118
128
  export declare const p2pConfigMappings: ConfigMappingsType<P2PConfig>;
@@ -146,7 +156,6 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
146
156
  dialTimeoutMs: unknown;
147
157
  disableTransactions: unknown;
148
158
  doubleSpendSeverePeerPenaltyWindow: unknown;
149
- dropTransactions: unknown;
150
159
  dropTransactionsProbability: unknown;
151
160
  expectedBlockProposalsPerSlot: unknown;
152
161
  fishermanMode: unknown;
@@ -169,6 +178,7 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
169
178
  listenAddress: unknown;
170
179
  maxPeerCount: unknown;
171
180
  maxPendingTxCount: unknown;
181
+ maxTxsPerBlock: unknown;
172
182
  minTxPoolAgeMs: unknown;
173
183
  overallRequestTimeoutMs: unknown;
174
184
  p2pAllowOnlyValidators: unknown;
@@ -182,10 +192,12 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
182
192
  p2pPort: unknown;
183
193
  p2pStoreMapSizeKb: unknown;
184
194
  peerCheckIntervalMS: unknown;
195
+ peerFailedBanTimeMs: unknown;
185
196
  peerIdPrivateKey: unknown;
186
197
  peerIdPrivateKeyPath: unknown;
187
198
  peerPenaltyValues: unknown;
188
199
  preferredPeers: unknown;
200
+ priceBumpPercentage: unknown;
189
201
  privatePeers: unknown;
190
202
  queryForIp: unknown;
191
203
  rollupVersion: unknown;
@@ -217,18 +229,24 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
217
229
  txFileStoreUploadConcurrency: unknown;
218
230
  txFileStoreUrl: unknown;
219
231
  txPoolDeleteTxsAfterReorg: unknown;
220
- txPublicSetupAllowList: unknown;
232
+ txPublicSetupAllowListExtend: unknown;
233
+ validateMaxDABlockGas: unknown;
234
+ validateMaxL2BlockGas: unknown;
235
+ validateMaxTxsPerBlock: unknown;
236
+ validateMaxTxsPerCheckpoint: unknown;
221
237
  }, "bootstrapNodes" | "dataDirectory" | "dataStoreMapSizeKb" | "l1ChainId" | "listenAddress" | "p2pBroadcastPort" | "p2pIp" | "p2pPort" | "peerIdPrivateKey" | "peerIdPrivateKeyPath" | "queryForIp">>;
222
238
  /**
223
239
  * Parses a string to a list of allowed elements.
224
- * Each encoded is expected to be of one of the following formats
225
- * `I:${address}`
226
- * `I:${address}:${selector}`
227
- * `C:${classId}`
228
- * `C:${classId}:${selector}`
240
+ * Each entry is expected to be of one of the following formats:
241
+ * `I:${address}:${selector}` — instance (contract address) with function selector
242
+ * `C:${classId}:${selector}` — class with function selector
243
+ *
244
+ * An optional flags segment can be appended after the selector:
245
+ * `I:${address}:${selector}:${flags}` or `C:${classId}:${selector}:${flags}`
246
+ * where flags is a `+`-separated list of: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
229
247
  *
230
248
  * @param value The string to parse
231
249
  * @returns A list of allowed elements
232
250
  */
233
251
  export declare function parseAllowList(value: string): AllowedElement[];
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBUVosTUFBTSwwQkFBMEIsQ0FBQztBQUVsQyxPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFHbEYsT0FBTyxFQUNMLEtBQUssY0FBYyxFQUNuQixLQUFLLFdBQVcsRUFDaEIsS0FBSyxlQUFlLEVBR3JCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQTRCLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQThCLE1BQU0sb0NBQW9DLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQTZCLE1BQU0sb0NBQW9DLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsU0FDZixTQUFRLGdCQUFnQixFQUN0QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsR0FBRywrQkFBK0IsQ0FBQztJQUM1RSxvRUFBb0U7SUFDcEUsVUFBVSxFQUFFLE9BQU8sQ0FBQztJQUVwQix5REFBeUQ7SUFDekQsb0JBQW9CLEVBQUUsTUFBTSxDQUFDO0lBRTdCLHdEQUF3RDtJQUN4RCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFFNUIsdURBQXVEO0lBQ3ZELHFCQUFxQixFQUFFLE1BQU0sQ0FBQztJQUU5QixvRUFBb0U7SUFDcEUsNkJBQTZCLEVBQUUsT0FBTyxDQUFDO0lBRXZDLHFEQUFxRDtJQUNyRCxtQkFBbUIsRUFBRSxNQUFNLENBQUM7SUFFNUIsMkNBQTJDO0lB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
252
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxLQUFLLGtCQUFrQixFQUN2QixXQUFXLEVBU1osTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQ0wsS0FBSyxjQUFjLEVBQ25CLEtBQUssV0FBVyxFQUNoQixLQUFLLGVBQWUsRUFHckIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsS0FBSyxlQUFlLEVBQXNCLE1BQU0sd0JBQXdCLENBQUM7QUFFbEYsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTVCLE1BQU0saURBQWlELENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQTRCLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQThCLE1BQU0sb0NBQW9DLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssaUJBQWlCLEVBQTZCLE1BQU0sb0NBQW9DLENBQUM7QUFFdkc7O0dBRUc7QUFDSCxNQUFNLFdBQVcsU0FDZixTQUFRLGdCQUFnQixFQUN0QixzQkFBc0IsRUFDdEIsV0FBVyxFQUNYLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsR0FBRywrQkFBK0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUMvRiw4R0FBOEc7SUFDOUcsc0JBQXNCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFaEMsb0hBQW9IO0lBQ3BILDJCQUEyQixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBRXJDLGdHQUFnRztJQUNoRyxxQkFBcUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUUvQixnR0FBZ0c7SUFDaEcscUJBQXFCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFFL0Isb0VBQW9FO0lBQ3BFLFVBQVUsRUFBRSxPQUFPLENBQUM7SUFFcEIseURBQXlEO0lBQ3pELG9CQUFv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
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dest/config.js CHANGED
@@ -1,15 +1,35 @@
1
- import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, percentageConfigHelper, pickConfigMappings, secretStringConfigHelper } from '@aztec/foundation/config';
1
+ import { bigintConfigHelper, booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, percentageConfigHelper, pickConfigMappings, secretStringConfigHelper } from '@aztec/foundation/config';
2
2
  import { Fr } from '@aztec/foundation/curves/bn254';
3
- import { dataConfigMappings } from '@aztec/kv-store/config';
4
3
  import { FunctionSelector } from '@aztec/stdlib/abi/function-selector';
5
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
6
5
  import { chainConfigMappings, sharedSequencerConfigMappings } from '@aztec/stdlib/config';
6
+ import { dataConfigMappings } from '@aztec/stdlib/kv-store';
7
7
  import { batchTxRequesterConfigMappings } from './services/reqresp/batch-tx-requester/config.js';
8
8
  import { p2pReqRespConfigMappings } from './services/reqresp/config.js';
9
9
  import { txCollectionConfigMappings } from './services/tx_collection/config.js';
10
10
  import { txFileStoreConfigMappings } from './services/tx_file_store/config.js';
11
11
  export const DEFAULT_P2P_PORT = 40400;
12
12
  export const p2pConfigMappings = {
13
+ validateMaxTxsPerBlock: {
14
+ env: 'VALIDATOR_MAX_TX_PER_BLOCK',
15
+ description: 'Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set.',
16
+ parseEnv: (val)=>val ? parseInt(val, 10) : undefined
17
+ },
18
+ validateMaxTxsPerCheckpoint: {
19
+ env: 'VALIDATOR_MAX_TX_PER_CHECKPOINT',
20
+ description: 'Maximum transactions per checkpoint for validation. Used as fallback for maxTxsPerBlock when that is not set.',
21
+ parseEnv: (val)=>val ? parseInt(val, 10) : undefined
22
+ },
23
+ validateMaxL2BlockGas: {
24
+ env: 'VALIDATOR_MAX_L2_BLOCK_GAS',
25
+ description: 'Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected.',
26
+ parseEnv: (val)=>val ? parseInt(val, 10) : undefined
27
+ },
28
+ validateMaxDABlockGas: {
29
+ env: 'VALIDATOR_MAX_DA_BLOCK_GAS',
30
+ description: 'Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected.',
31
+ parseEnv: (val)=>val ? parseInt(val, 10) : undefined
32
+ },
13
33
  p2pEnabled: {
14
34
  env: 'P2P_ENABLED',
15
35
  description: 'A flag dictating whether the P2P subsystem should be enabled.',
@@ -40,6 +60,11 @@ export const p2pConfigMappings = {
40
60
  description: 'The frequency in which to check for new peers.',
41
61
  ...numberConfigHelper(30_000)
42
62
  },
63
+ peerFailedBanTimeMs: {
64
+ env: 'P2P_PEER_FAILED_BAN_TIME_MS',
65
+ description: 'How long to ban a peer after it fails maximum dial attempts.',
66
+ ...numberConfigHelper(5 * 60 * 1000)
67
+ },
43
68
  l2QueueSize: {
44
69
  env: 'P2P_L2_QUEUE_SIZE',
45
70
  description: 'Size of queue of L2 blocks to store.',
@@ -206,11 +231,11 @@ export const p2pConfigMappings = {
206
231
  parseEnv: (val)=>val ? +val : undefined,
207
232
  description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb.'
208
233
  },
209
- txPublicSetupAllowList: {
234
+ txPublicSetupAllowListExtend: {
210
235
  env: 'TX_PUBLIC_SETUP_ALLOWLIST',
211
236
  parseEnv: (val)=>parseAllowList(val),
212
- description: 'The list of functions calls allowed to run in setup',
213
- printDefault: ()=>'AuthRegistry, FeeJuice.increase_public_balance, Token.increase_public_balance, FPC.prepare_fee'
237
+ description: 'Additional entries to extend the default setup allow list. Format: I:address:selector[:flags],C:classId:selector[:flags]. Flags: os (onlySelf), rn (rejectNullMsgSender), cl=N (calldataLength), joined with +.',
238
+ printDefault: ()=>'Default: AuthRegistry._set_authorized, AuthRegistry.set_authorized, FeeJuice._increase_public_balance'
214
239
  },
215
240
  maxPendingTxCount: {
216
241
  env: 'P2P_MAX_PENDING_TX_COUNT',
@@ -239,11 +264,6 @@ export const p2pConfigMappings = {
239
264
  description: 'Number of auth attempts to allow before peer is banned. Number is inclusive',
240
265
  ...numberConfigHelper(3)
241
266
  },
242
- dropTransactions: {
243
- env: 'P2P_DROP_TX',
244
- description: 'True to simulate discarding transactions. - For testing purposes only',
245
- ...booleanConfigHelper(false)
246
- },
247
267
  dropTransactionsProbability: {
248
268
  env: 'P2P_DROP_TX_CHANCE',
249
269
  description: 'The probability that a transaction is discarded (0 - 1). - For testing purposes only',
@@ -278,6 +298,11 @@ export const p2pConfigMappings = {
278
298
  description: 'Minimum age (ms) a transaction must have been in the pool before it is eligible for block building.',
279
299
  ...numberConfigHelper(2_000)
280
300
  },
301
+ priceBumpPercentage: {
302
+ env: 'P2P_RPC_PRICE_BUMP_PERCENTAGE',
303
+ description: 'Minimum percentage fee increase required to replace an existing tx via RPC. Even at 0%, replacement still requires paying at least 1 unit more.',
304
+ ...bigintConfigHelper(10n)
305
+ },
281
306
  ...sharedSequencerConfigMappings,
282
307
  ...p2pReqRespConfigMappings,
283
308
  ...batchTxRequesterConfigMappings,
@@ -312,13 +337,37 @@ export const bootnodeConfigMappings = pickConfigMappings({
312
337
  ...dataConfigMappings,
313
338
  ...chainConfigMappings
314
339
  }, bootnodeConfigKeys);
340
+ /**
341
+ * Parses a `+`-separated flags string into validation properties for an allow list entry.
342
+ * Supported flags: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
343
+ */ function parseFlags(flags, entry) {
344
+ const result = {};
345
+ for (const flag of flags.split('+')){
346
+ if (flag === 'os') {
347
+ result.onlySelf = true;
348
+ } else if (flag === 'rn') {
349
+ result.rejectNullMsgSender = true;
350
+ } else if (flag.startsWith('cl=')) {
351
+ const n = parseInt(flag.slice(3), 10);
352
+ if (isNaN(n) || n < 0) {
353
+ throw new Error(`Invalid allow list entry "${entry}": invalid calldataLength in flag "${flag}". Expected a non-negative integer.`);
354
+ }
355
+ result.calldataLength = n;
356
+ } else {
357
+ throw new Error(`Invalid allow list entry "${entry}": unknown flag "${flag}". Supported flags: os, rn, cl=N.`);
358
+ }
359
+ }
360
+ return result;
361
+ }
315
362
  /**
316
363
  * Parses a string to a list of allowed elements.
317
- * Each encoded is expected to be of one of the following formats
318
- * `I:${address}`
319
- * `I:${address}:${selector}`
320
- * `C:${classId}`
321
- * `C:${classId}:${selector}`
364
+ * Each entry is expected to be of one of the following formats:
365
+ * `I:${address}:${selector}` — instance (contract address) with function selector
366
+ * `C:${classId}:${selector}` — class with function selector
367
+ *
368
+ * An optional flags segment can be appended after the selector:
369
+ * `I:${address}:${selector}:${flags}` or `C:${classId}:${selector}:${flags}`
370
+ * where flags is a `+`-separated list of: `os` (onlySelf), `rn` (rejectNullMsgSender), `cl=N` (calldataLength).
322
371
  *
323
372
  * @param value The string to parse
324
373
  * @returns A list of allowed elements
@@ -328,30 +377,30 @@ export const bootnodeConfigMappings = pickConfigMappings({
328
377
  return entries;
329
378
  }
330
379
  for (const val of value.split(',')){
331
- const [typeString, identifierString, selectorString] = val.split(':');
332
- const selector = selectorString !== undefined ? FunctionSelector.fromString(selectorString) : undefined;
380
+ const trimmed = val.trim();
381
+ if (!trimmed) {
382
+ continue;
383
+ }
384
+ const [typeString, identifierString, selectorString, flagsString] = trimmed.split(':');
385
+ if (!selectorString) {
386
+ throw new Error(`Invalid allow list entry "${trimmed}": selector is required. Expected format: I:address:selector or C:classId:selector`);
387
+ }
388
+ const selector = FunctionSelector.fromString(selectorString);
389
+ const flags = flagsString ? parseFlags(flagsString, trimmed) : {};
333
390
  if (typeString === 'I') {
334
- if (selector) {
335
- entries.push({
336
- address: AztecAddress.fromString(identifierString),
337
- selector
338
- });
339
- } else {
340
- entries.push({
341
- address: AztecAddress.fromString(identifierString)
342
- });
343
- }
391
+ entries.push({
392
+ address: AztecAddress.fromString(identifierString),
393
+ selector,
394
+ ...flags
395
+ });
344
396
  } else if (typeString === 'C') {
345
- if (selector) {
346
- entries.push({
347
- classId: Fr.fromHexString(identifierString),
348
- selector
349
- });
350
- } else {
351
- entries.push({
352
- classId: Fr.fromHexString(identifierString)
353
- });
354
- }
397
+ entries.push({
398
+ classId: Fr.fromHexString(identifierString),
399
+ selector,
400
+ ...flags
401
+ });
402
+ } else {
403
+ throw new Error(`Invalid allow list entry "${trimmed}": unknown type "${typeString}". Expected "I" (instance) or "C" (class).`);
355
404
  }
356
405
  }
357
406
  return entries;
@@ -14,10 +14,10 @@ export type TryAddResult = {
14
14
  * - tryAddCheckpointAttestation: attestations by this signer for this slot */
15
15
  count: number;
16
16
  };
17
- export declare const MAX_CHECKPOINT_PROPOSALS_PER_SLOT = 5;
18
- export declare const MAX_BLOCK_PROPOSALS_PER_POSITION = 3;
17
+ export declare const MAX_CHECKPOINT_PROPOSALS_PER_SLOT = 2;
18
+ export declare const MAX_BLOCK_PROPOSALS_PER_POSITION = 2;
19
19
  /** Maximum attestations a single signer can make per slot before being rejected. */
20
- export declare const MAX_ATTESTATIONS_PER_SLOT_AND_SIGNER = 3;
20
+ export declare const MAX_ATTESTATIONS_PER_SLOT_AND_SIGNER = 2;
21
21
  /** Public API interface for attestation pools. Used for typing mocks and test implementations. */
22
22
  export type AttestationPoolApi = Pick<AttestationPool, 'tryAddBlockProposal' | 'getBlockProposal' | 'tryAddCheckpointProposal' | 'getCheckpointProposal' | 'addOwnCheckpointAttestations' | 'tryAddCheckpointAttestation' | 'deleteOlderThan' | 'getCheckpointAttestationsForSlot' | 'getCheckpointAttestationsForSlotAndProposal' | 'hasBlockProposalsForSlot' | 'isEmpty'>;
23
23
  /**
@@ -149,4 +149,4 @@ export declare class AttestationPool {
149
149
  }
150
150
  /** Creates an AttestationPool backed by a temporary store for testing. */
151
151
  export declare function createTestAttestationPool(telemetry?: TelemetryClient): Promise<AttestationPool>;
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUlwRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUVyQixLQUFLLHNCQUFzQixFQUM1QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUluRiw0RUFBNEU7QUFDNUUsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixpQ0FBaUM7SUFDakMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNmLDZDQUE2QztJQUM3QyxhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQ3ZCOzs7bUZBRytFO0lBQy9FLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYsZUFBTyxNQUFNLGlDQUFpQyxJQUFJLENBQUM7QUFDbkQsZUFBTyxNQUFNLGdDQUFnQyxJQUFJLENBQUM7QUFDbEQsb0ZBQW9GO0FBQ3BGLGVBQU8sTUFBTSxvQ0FBb0MsSUFBSSxDQUFDO0FBRXRELGtHQUFrRztBQUNsRyxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUNuQyxlQUFlLEVBQ2IscUJBQXFCLEdBQ3JCLGtCQUFrQixHQUNsQiwwQkFBMEIsR0FDMUIsdUJBQXVCLEdBQ3ZCLDhCQUE4QixHQUM5Qiw2QkFBNkIsR0FDN0IsaUJBQWlCLEdBQ2pCLGtDQUFrQyxHQUNsQyw2Q0FBNkMsR0FDN0MsMEJBQTBCLEdBQzFCLFNBQVMsQ0FDWixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxxQkFBYSxlQUFlO0lBMEJ4QixPQUFP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
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0ZXN0YXRpb25fcG9vbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21lbV9wb29scy9hdHRlc3RhdGlvbl9wb29sL2F0dGVzdGF0aW9uX3Bvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QixVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUlwRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RixPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUVyQixLQUFLLHNCQUFzQixFQUM1QixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUluRiw0RUFBNEU7QUFDNUUsTUFBTSxNQUFNLFlBQVksR0FBRztJQUN6QixpQ0FBaUM7SUFDakMsS0FBSyxFQUFFLE9BQU8sQ0FBQztJQUNmLDZDQUE2QztJQUM3QyxhQUFhLEVBQUUsT0FBTyxDQUFDO0lBQ3ZCOzs7bUZBRytFO0lBQy9FLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYsZUFBTyxNQUFNLGlDQUFpQyxJQUFJLENBQUM7QUFDbkQsZUFBTyxNQUFNLGdDQUFnQyxJQUFJLENBQUM7QUFDbEQsb0ZBQW9GO0FBQ3BGLGVBQU8sTUFBTSxvQ0FBb0MsSUFBSSxDQUFDO0FBRXRELGtHQUFrRztBQUNsRyxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUNuQyxlQUFlLEVBQ2IscUJBQXFCLEdBQ3JCLGtCQUFrQixHQUNsQiwwQkFBMEIsR0FDMUIsdUJBQXVCLEdBQ3ZCLDhCQUE4QixHQUM5Qiw2QkFBNkIsR0FDN0IsaUJBQWlCLEdBQ2pCLGtDQUFrQyxHQUNsQyw2Q0FBNkMsR0FDN0MsMEJBQTBCLEdBQzFCLFNBQVMsQ0FDWixDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxxQkFBYSxlQUFlO0lBMEJ4QixPQUFP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
@@ -1 +1 @@
1
- {"version":3,"file":"attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/attestation_pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attestation_pool.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/attestation_pool.ts"],"names":[],"mappings":"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"}