@aztec-labs/p2p 6.0.0-rc.1 → 6.0.0-rc.2

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 (104) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +2 -2
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +4 -2
  4. package/dest/client/factory.d.ts +3 -3
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +6 -6
  7. package/dest/client/interface.d.ts +1 -1
  8. package/dest/client/p2p_client.d.ts +1 -1
  9. package/dest/client/p2p_client.js +1 -1
  10. package/dest/config.d.ts +11 -1
  11. package/dest/config.d.ts.map +1 -1
  12. package/dest/config.js +16 -0
  13. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +15 -3
  14. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  15. package/dest/mem_pools/attestation_pool/attestation_pool.js +15 -0
  16. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  17. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  18. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +21 -0
  19. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +6 -2
  20. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -1
  21. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +9 -0
  22. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +10 -8
  23. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -1
  24. package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +22 -11
  25. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +6 -2
  26. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
  27. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +2 -1
  28. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +11 -5
  29. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
  30. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +1 -1
  31. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
  32. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +111 -44
  33. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +1 -1
  34. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  35. package/dest/msg_validators/attestation_validator/attestation_validator.js +3 -24
  36. package/dest/msg_validators/epoch_cache_lookup.d.ts +18 -0
  37. package/dest/msg_validators/epoch_cache_lookup.d.ts.map +1 -0
  38. package/dest/msg_validators/epoch_cache_lookup.js +29 -0
  39. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +1 -1
  40. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  41. package/dest/msg_validators/proposal_validator/proposal_validator.js +80 -82
  42. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  43. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  44. package/dest/msg_validators/tx_validator/data_validator.js +4 -3
  45. package/dest/msg_validators/tx_validator/factory.d.ts +40 -11
  46. package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
  47. package/dest/msg_validators/tx_validator/factory.js +36 -5
  48. package/dest/msg_validators/tx_validator/gas_validator.d.ts +18 -10
  49. package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
  50. package/dest/msg_validators/tx_validator/gas_validator.js +37 -27
  51. package/dest/services/discv5/discV5_service.d.ts +2 -2
  52. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  53. package/dest/services/discv5/discV5_service.js +3 -1
  54. package/dest/services/libp2p/libp2p_service.d.ts +18 -9
  55. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  56. package/dest/services/libp2p/libp2p_service.js +127 -29
  57. package/dest/services/peer-manager/peer_manager.d.ts +1 -1
  58. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  59. package/dest/services/peer-manager/peer_manager.js +14 -0
  60. package/dest/services/tx_provider.d.ts +1 -1
  61. package/dest/services/tx_provider.d.ts.map +1 -1
  62. package/dest/services/tx_provider.js +3 -0
  63. package/dest/test-helpers/make-test-p2p-clients.d.ts +1 -1
  64. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  65. package/dest/test-helpers/make-test-p2p-clients.js +3 -1
  66. package/dest/test-helpers/mock-pubsub.js +1 -1
  67. package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
  68. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  69. package/dest/test-helpers/reqresp-nodes.js +3 -1
  70. package/dest/test-helpers/testbench-utils.d.ts +4 -2
  71. package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
  72. package/dest/test-helpers/testbench-utils.js +6 -0
  73. package/dest/testbench/p2p_client_testbench_worker.js +6 -2
  74. package/package.json +14 -14
  75. package/src/bootstrap/bootstrap.ts +3 -2
  76. package/src/client/factory.ts +7 -7
  77. package/src/client/interface.ts +1 -1
  78. package/src/client/p2p_client.ts +1 -1
  79. package/src/config.ts +11 -0
  80. package/src/mem_pools/attestation_pool/attestation_pool.ts +25 -0
  81. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +31 -0
  82. package/src/mem_pools/tx_pool_v2/README.md +1 -1
  83. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +13 -1
  84. package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +17 -9
  85. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +6 -1
  86. package/src/mem_pools/tx_pool_v2/interfaces.ts +10 -4
  87. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +95 -40
  88. package/src/msg_validators/attestation_validator/attestation_validator.ts +3 -23
  89. package/src/msg_validators/epoch_cache_lookup.ts +33 -0
  90. package/src/msg_validators/proposal_validator/README.md +3 -3
  91. package/src/msg_validators/proposal_validator/proposal_validator.ts +78 -77
  92. package/src/msg_validators/tx_validator/README.md +12 -8
  93. package/src/msg_validators/tx_validator/data_validator.ts +4 -3
  94. package/src/msg_validators/tx_validator/factory.ts +60 -14
  95. package/src/msg_validators/tx_validator/gas_validator.ts +46 -34
  96. package/src/services/discv5/discV5_service.ts +2 -1
  97. package/src/services/libp2p/libp2p_service.ts +138 -34
  98. package/src/services/peer-manager/peer_manager.ts +14 -0
  99. package/src/services/tx_provider.ts +3 -0
  100. package/src/test-helpers/make-test-p2p-clients.ts +5 -1
  101. package/src/test-helpers/mock-pubsub.ts +3 -3
  102. package/src/test-helpers/reqresp-nodes.ts +5 -1
  103. package/src/test-helpers/testbench-utils.ts +13 -1
  104. package/src/testbench/p2p_client_testbench_worker.ts +10 -2
@@ -177,6 +177,9 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
177
177
  ...missingTxHashes
178
178
  ].map(TxHash.fromString)));
179
179
  if (moreTxsFromPool.length > 0) {
180
+ for (const tx of moreTxsFromPool){
181
+ missingTxHashes.delete(tx.getTxHash().toString());
182
+ }
180
183
  this.instrumentation.incTxsFromMempool(moreTxsFromPool.length);
181
184
  this.log.debug(`Retrieved ${moreTxsFromPool.length} txs from pool retry for block proposal (${missingTxHashes.size} pending)`, {
182
185
  ...blockInfo,
@@ -60,4 +60,4 @@ export declare function makeTestP2PClients(numberOfPeers: number, testConfig: Ma
60
60
  enr: string;
61
61
  }[]>;
62
62
  export declare function startTestP2PClients(clients: P2PClient[]): Promise<void>;
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS10ZXN0LXAycC1jbGllbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL21ha2UtdGVzdC1wMnAtY2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFLdkUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUluRixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJdEUsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQWtDLE1BQU0sa0JBQWtCLENBQUM7QUFHN0YsTUFBTSxXQUFXLHdCQUF3QjtJQUN2QyxtQkFBbUIsRUFBRSxlQUFlLENBQUM7SUFDckMsVUFBVSxFQUFFLFFBQVEsQ0FBQztJQUNyQixjQUFjLEVBQUUsVUFBVSxDQUFDO0lBQzNCLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztJQUN2QyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUM3QixhQUFhLEVBQUUsU0FBUyxDQUFDO0lBQ3pCLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixvQkFBb0IsQ0FBQyxFQUFFLG9CQUFvQixDQUFDO0NBQzdDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQix5QkFBeUIsQ0FDN0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixJQUFJLEVBQUUsTUFBTSxFQUNaLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFDZixPQUFPLEVBQUUsd0JBQXdCLHNCQU1sQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFDWixLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQ2YsRUFDRSxrQkFBeUIsRUFDekIsYUFBYSxFQUNiLGtCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLE1BQXdDLEVBQ3pDLEVBQUUsd0JBQXdCLHNCQTRDNUI7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx3QkFBd0I7Ozs7O0tBdUMzRztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLHdCQUF3Qjs7Ozs7S0FnQ25HO0FBRUQsd0JBQXNCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBRzdEIn0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS10ZXN0LXAycC1jbGllbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL21ha2UtdGVzdC1wMnAtY2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sNEJBQTRCLENBQUM7QUFLdkUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUluRixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJdEUsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQWtDLE1BQU0sa0JBQWtCLENBQUM7QUFHN0YsTUFBTSxXQUFXLHdCQUF3QjtJQUN2QyxtQkFBbUIsRUFBRSxlQUFlLENBQUM7SUFDckMsVUFBVSxFQUFFLFFBQVEsQ0FBQztJQUNyQixjQUFjLEVBQUUsVUFBVSxDQUFDO0lBQzNCLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztJQUN2QyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUM3QixhQUFhLEVBQUUsU0FBUyxDQUFDO0lBQ3pCLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixvQkFBb0IsQ0FBQyxFQUFFLG9CQUFvQixDQUFDO0NBQzdDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQix5QkFBeUIsQ0FDN0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixJQUFJLEVBQUUsTUFBTSxFQUNaLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFDZixPQUFPLEVBQUUsd0JBQXdCLHNCQU1sQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFDWixLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQ2YsRUFDRSxrQkFBeUIsRUFDekIsYUFBYSxFQUNiLGtCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLE1BQXdDLEVBQ3pDLEVBQUUsd0JBQXdCLHNCQWdENUI7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx3QkFBd0I7Ozs7O0tBdUMzRztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLHdCQUF3Qjs7Ozs7S0FnQ25HO0FBRUQsd0JBQXNCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBRzdEIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"make-test-p2p-clients.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-test-p2p-clients.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAKvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAInF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAItE,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,kBAAkB,CAAC;AAG7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,eAAe,CAAC;IACrC,UAAU,EAAE,QAAQ,CAAC;IACrB,cAAc,EAAE,UAAU,CAAC;IAC3B,cAAc,EAAE,sBAAsB,CAAC;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,wBAAwB,sBAMlC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,EACE,kBAAyB,EACzB,aAAa,EACb,kBAAuB,EACvB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAwC,EACzC,EAAE,wBAAwB,sBA4C5B;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAuC3G;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAgCnG;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAG7D"}
1
+ {"version":3,"file":"make-test-p2p-clients.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-test-p2p-clients.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,4BAA4B,CAAC;AAKvE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAInF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAItE,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,kBAAkB,CAAC;AAG7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,eAAe,CAAC;IACrC,UAAU,EAAE,QAAQ,CAAC;IACrB,cAAc,EAAE,UAAU,CAAC;IAC3B,cAAc,EAAE,sBAAsB,CAAC;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,wBAAwB,sBAMlC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,EACE,kBAAyB,EACzB,aAAa,EACb,kBAAuB,EACvB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAwC,EACzC,EAAE,wBAAwB,sBAgD5B;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAuC3G;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAgCnG;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAG7D"}
@@ -50,7 +50,9 @@ import { AlwaysFalseCircuitVerifier, AlwaysTrueCircuitVerifier } from './reqresp
50
50
  const proofVerifier = alwaysTrueVerifier ? new AlwaysTrueCircuitVerifier() : new AlwaysFalseCircuitVerifier();
51
51
  const kvStore = await openTmpStore('test');
52
52
  const client = await createP2PClient(config, l2BlockSource, proofVerifier, mockWorldState, mockEpochCache, {
53
- getCurrentMinFees: ()=>Promise.resolve(GasFees.empty())
53
+ getNextBlockMinFees: ()=>Promise.resolve(GasFees.empty()),
54
+ getAdmissionMinFees: ()=>Promise.resolve(GasFees.empty()),
55
+ getL1ForwardMinFees: ()=>Promise.resolve(GasFees.empty())
54
56
  }, 'test-p2p-client', undefined, undefined, {
55
57
  txPool: mockTxPool,
56
58
  attestationPool: mockAttestationPool,
@@ -15,7 +15,7 @@ import { GossipSubEvent } from '../types/index.js';
15
15
  const peerManager = new DummyPeerManager(peerId, network);
16
16
  const reqresp = new MockReqResp(peerId, network);
17
17
  const peerDiscoveryService = new DummyPeerDiscoveryService();
18
- const service = new LibP2PService(config, libp2p, peerDiscoveryService, reqresp, peerManager, deps.mempools, deps.l2BlockSource, deps.epochCache, deps.proofVerifier, deps.worldStateSynchronizer, deps.blockMinFeesProvider, deps.telemetry, deps.logger);
18
+ const service = new LibP2PService(config, libp2p, peerDiscoveryService, reqresp, peerManager, deps.mempools, deps.l2BlockSource, deps.epochCache, deps.proofVerifier, deps.worldStateSynchronizer, deps.nextBlockMinFeesProvider, deps.telemetry, deps.logger);
19
19
  return Promise.resolve(service);
20
20
  };
21
21
  }
@@ -65,4 +65,4 @@ export declare function createBootstrapNodeFromPrivateKey(privateKey: string, po
65
65
  */
66
66
  export declare function getBootstrapNodeEnr(privateKey: string, port: number): Promise<SignableENR>;
67
67
  export declare function createBootstrapNode(port: number, telemetry?: TelemetryClient, chainConfig?: ChainConfig): Promise<BootstrapNode>;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC1ub2Rlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtaGVscGVycy9yZXFyZXNwLW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzFELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3ZCLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLDhCQUE4QixDQUFDO0FBTXhGLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQW9DLE1BQU0sUUFBUSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQThDLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFdkUsT0FBTyxFQUVMLEtBQUssMEJBQTBCLEVBQy9CLEtB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
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC1ub2Rlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtaGVscGVycy9yZXFyZXNwLW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSzFELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBb0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXRFLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3ZCLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLDhCQUE4QixDQUFDO0FBTXhGLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQW9DLE1BQU0sUUFBUSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxjQUFjLEVBQThDLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFdkUsT0FBTyxFQUVMLEtBQUssMEJBQTBCLEVBQy9CLEtB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
@@ -1 +1 @@
1
- {"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
@@ -113,7 +113,9 @@ import { getVersions } from '../versioning.js';
113
113
  p2pNode.services.pubsub.score.params.appSpecificWeight = APP_SPECIFIC_WEIGHT;
114
114
  p2pNode.services.pubsub.score.params.appSpecificScore = (peerId)=>peerManager.shouldDisableP2PGossip(peerId) ? -Infinity : peerManager.getPeerScore(peerId);
115
115
  return new LibP2PService(config, p2pNode, discoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, {
116
- getCurrentMinFees: ()=>Promise.resolve(GasFees.empty())
116
+ getNextBlockMinFees: ()=>Promise.resolve(GasFees.empty()),
117
+ getAdmissionMinFees: ()=>Promise.resolve(GasFees.empty()),
118
+ getL1ForwardMinFees: ()=>Promise.resolve(GasFees.empty())
117
119
  }, telemetry);
118
120
  }
119
121
  // Mock sub protocol handlers
@@ -1,5 +1,5 @@
1
1
  import type { EpochCacheInterface } from '@aztec-labs/epoch-cache';
2
- import type { CheckpointProposalHash } from '@aztec-labs/foundation/branded-types';
2
+ import type { BlockProposalHash, CheckpointProposalHash } from '@aztec-labs/foundation/branded-types';
3
3
  import { SlotNumber } from '@aztec-labs/foundation/branded-types';
4
4
  import type { Logger } from '@aztec-labs/foundation/log';
5
5
  import type { L2Block, L2BlockId } from '@aztec-labs/stdlib/block';
@@ -82,6 +82,8 @@ export declare class InMemoryAttestationPool {
82
82
  getCheckpointAttestationsForSlotAndProposal(_slot: SlotNumber, _proposalPayloadHash: CheckpointProposalHash): Promise<CheckpointAttestation[]>;
83
83
  tryAddCheckpointAttestation(_attestation: CheckpointAttestation): Promise<TryAddResult>;
84
84
  hasBlockProposalsForSlot(_slot: SlotNumber): Promise<boolean>;
85
+ hasBlockProposal(_slot: SlotNumber, _indexWithinCheckpoint: number, _payloadHash: BlockProposalHash): Promise<boolean>;
86
+ hasCheckpointProposal(_slot: SlotNumber, _payloadHash: CheckpointProposalHash): Promise<boolean>;
85
87
  isEmpty(): Promise<boolean>;
86
88
  resetState(): void;
87
89
  }
@@ -161,4 +163,4 @@ export declare function filterTxsByDistribution(allTxs: Tx[], peerIndex: number,
161
163
  * Ensures we return before the outer timeout while maintaining a minimum.
162
164
  */
163
165
  export declare function calculateInternalTimeout(timeoutMs: number): number;
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGJlbmNoLXV0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL3Rlc3RiZW5jaC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkYsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEcsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHdEU7Ozs7R0FJRztBQUNILHFCQUFhLGNBQWUsU0FBUSxZQUFhLFlBQVcsUUFBUTtJQUNsRSxPQUFPLENBQUMsU0FBUyxDQUF5QjtJQUMxQyxPQUFPLENBQUMsTUFBTSxDQUF1QjtJQUVyQyxTQUFTLENBQUMsTUFBTSxFQUFF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
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGJlbmNoLXV0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL3Rlc3RiZW5jaC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEcsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQy9FLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNHLE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3RGLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEcsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHdEU7Ozs7R0FJRztBQUNILHFCQUFhLGNBQWUsU0FBUSxZQUFhLFlBQVcsUUFBUTtJQUNsRSxPQUFPLENBQUMsU0FBUyxDQUF5QjtJQUMxQyxPQUFPLENBQUMsTUFBTSxDQUF1QjtJQUVyQyxTQUFTLENB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
@@ -1 +1 @@
1
- {"version":3,"file":"testbench-utils.d.ts","sourceRoot":"","sources":["../../src/test-helpers/testbench-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testbench-utils.d.ts","sourceRoot":"","sources":["../../src/test-helpers/testbench-utils.ts"],"names":[],"mappings":"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"}
@@ -241,6 +241,12 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
241
241
  hasBlockProposalsForSlot(_slot) {
242
242
  return Promise.resolve(false);
243
243
  }
244
+ hasBlockProposal(_slot, _indexWithinCheckpoint, _payloadHash) {
245
+ return Promise.resolve(false);
246
+ }
247
+ hasCheckpointProposal(_slot, _payloadHash) {
248
+ return Promise.resolve(false);
249
+ }
244
250
  isEmpty() {
245
251
  return Promise.resolve(this.proposals.size === 0 && this.checkpoints.size === 0);
246
252
  }
@@ -51,7 +51,9 @@ class TestLibP2PService extends LibP2PService {
51
51
  gossipMessageCount = 0;
52
52
  constructor(config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger = createLogger('p2p:test:libp2p_service'), disableTxValidation = true){
53
53
  super(config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, {
54
- getCurrentMinFees: ()=>Promise.resolve(GasFees.empty())
54
+ getNextBlockMinFees: ()=>Promise.resolve(GasFees.empty()),
55
+ getAdmissionMinFees: ()=>Promise.resolve(GasFees.empty()),
56
+ getL1ForwardMinFees: ()=>Promise.resolve(GasFees.empty())
55
57
  }, telemetry, logger);
56
58
  this.disableTxValidation = disableTxValidation;
57
59
  }
@@ -280,7 +282,9 @@ process.on('message', async (msg)=>{
280
282
  logger: workerLogger
281
283
  };
282
284
  const client = await createP2PClient(config, l2BlockSource, proofVerifier, worldState, epochCache, {
283
- getCurrentMinFees: ()=>Promise.resolve(GasFees.empty())
285
+ getNextBlockMinFees: ()=>Promise.resolve(GasFees.empty()),
286
+ getAdmissionMinFees: ()=>Promise.resolve(GasFees.empty()),
287
+ getL1ForwardMinFees: ()=>Promise.resolve(GasFees.empty())
284
288
  }, 'test-p2p-bench-worker', undefined, telemetry, deps, await l2BlockSource.getInitialHeader().hash());
285
289
  const testService = new TestLibP2PService(config, client.p2pService.node, client.p2pService.peerDiscoveryService, client.p2pService.reqresp, client.p2pService.peerManager, client.p2pService.mempools, client.p2pService.archiver, epochCache, proofVerifier, worldState, telemetry, workerLogger, true);
286
290
  client.p2pService = testService;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec-labs/p2p",
3
- "version": "6.0.0-rc.1",
3
+ "version": "6.0.0-rc.2",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -67,18 +67,18 @@
67
67
  ]
68
68
  },
69
69
  "dependencies": {
70
- "@aztec-labs/archiver": "6.0.0-rc.1",
71
- "@aztec-labs/constants": "6.0.0-rc.1",
72
- "@aztec-labs/epoch-cache": "6.0.0-rc.1",
73
- "@aztec-labs/ethereum": "6.0.0-rc.1",
74
- "@aztec-labs/foundation": "6.0.0-rc.1",
75
- "@aztec-labs/kv-store": "6.0.0-rc.1",
76
- "@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.1",
77
- "@aztec-labs/protocol-contracts": "6.0.0-rc.1",
78
- "@aztec-labs/simulator": "6.0.0-rc.1",
79
- "@aztec-labs/standard-contracts": "6.0.0-rc.1",
80
- "@aztec-labs/stdlib": "6.0.0-rc.1",
81
- "@aztec-labs/telemetry-client": "6.0.0-rc.1",
70
+ "@aztec-labs/archiver": "6.0.0-rc.2",
71
+ "@aztec-labs/constants": "6.0.0-rc.2",
72
+ "@aztec-labs/epoch-cache": "6.0.0-rc.2",
73
+ "@aztec-labs/ethereum": "6.0.0-rc.2",
74
+ "@aztec-labs/foundation": "6.0.0-rc.2",
75
+ "@aztec-labs/kv-store": "6.0.0-rc.2",
76
+ "@aztec-labs/noir-protocol-circuits-types": "6.0.0-rc.2",
77
+ "@aztec-labs/protocol-contracts": "6.0.0-rc.2",
78
+ "@aztec-labs/simulator": "6.0.0-rc.2",
79
+ "@aztec-labs/standard-contracts": "6.0.0-rc.2",
80
+ "@aztec-labs/stdlib": "6.0.0-rc.2",
81
+ "@aztec-labs/telemetry-client": "6.0.0-rc.2",
82
82
  "@chainsafe/libp2p-gossipsub": "13.0.0",
83
83
  "@chainsafe/libp2p-noise": "^15.0.0",
84
84
  "@chainsafe/libp2p-yamux": "^6.0.2",
@@ -104,7 +104,7 @@
104
104
  "tslib": "^2.4.0"
105
105
  },
106
106
  "devDependencies": {
107
- "@aztec-labs/world-state": "6.0.0-rc.1",
107
+ "@aztec-labs/world-state": "6.0.0-rc.2",
108
108
  "@jest/globals": "^30.0.0",
109
109
  "@types/jest": "^30.0.0",
110
110
  "@types/node": "^22.15.17",
@@ -7,7 +7,7 @@ import { type Multiaddr, multiaddr } from '@multiformats/multiaddr';
7
7
  import { Discv5, type Discv5EventEmitter } from '@nethermindeth/discv5';
8
8
  import { ENR, type SignableENR } from '@nethermindeth/enr';
9
9
 
10
- import type { BootnodeConfig } from '../config.js';
10
+ import { type BootnodeConfig, DISCV5_RATE_LIMITER_OPTS } from '../config.js';
11
11
  import { createBootnodeENRandPeerId } from '../enr/generate-enr.js';
12
12
  import { convertToMultiaddr, getPeerIdPrivateKey, getPublicIp } from '../util.js';
13
13
 
@@ -53,7 +53,7 @@ export class BootstrapNode implements P2PBootstrapApi {
53
53
  config.p2pBroadcastPort = p2pPort;
54
54
  }
55
55
 
56
- const listenAddrUdp = multiaddr(convertToMultiaddr(listenAddress, config.p2pBroadcastPort!, 'udp'));
56
+ const listenAddrUdp = multiaddr(convertToMultiaddr(listenAddress, p2pPort, 'udp'));
57
57
 
58
58
  const peerIdPrivateKey = await getPeerIdPrivateKey(config, this.store, this.logger);
59
59
 
@@ -77,6 +77,7 @@ export class BootstrapNode implements P2PBootstrapApi {
77
77
  allowUnverifiedSessions: true,
78
78
  },
79
79
  metricsRegistry,
80
+ rateLimiterOpts: DISCV5_RATE_LIMITER_OPTS,
80
81
  });
81
82
 
82
83
  this.node.on('multiaddrUpdated', (addr: Multiaddr) => {
@@ -7,7 +7,7 @@ import { AztecLMDBStoreV2, createStore } from '@aztec-labs/kv-store/lmdb-v2';
7
7
  import type { BlockHash, L2BlockSource } from '@aztec-labs/stdlib/block';
8
8
  import type { ChainConfig } from '@aztec-labs/stdlib/config';
9
9
  import type { ContractDataSource } from '@aztec-labs/stdlib/contract';
10
- import { type BlockMinFeesProvider, getNetworkTxGasLimits } from '@aztec-labs/stdlib/gas';
10
+ import { type TxAdmissionMinFeesProvider, getNetworkTxGasLimits } from '@aztec-labs/stdlib/gas';
11
11
  import type {
12
12
  AztecNode,
13
13
  ClientProtocolCircuitVerifier,
@@ -63,7 +63,7 @@ export async function createP2PClient(
63
63
  proofVerifier: ClientProtocolCircuitVerifier,
64
64
  worldStateSynchronizer: WorldStateSynchronizer,
65
65
  epochCache: EpochCacheInterface,
66
- blockMinFeesProvider: BlockMinFeesProvider,
66
+ nextBlockMinFeesProvider: TxAdmissionMinFeesProvider,
67
67
  packageVersion: string,
68
68
  dateProvider: DateProvider = new DateProvider(),
69
69
  telemetry: TelemetryClient = getTelemetryClient(),
@@ -121,7 +121,7 @@ export async function createP2PClient(
121
121
  const currentBlockNumber = await archiver.getBlockNumber();
122
122
  const { ts: nextSlotTimestamp } = epochCache.getEpochAndSlotInNextL1Slot();
123
123
  const l1Constants = await archiver.getL1Constants();
124
- const gasFees = await blockMinFeesProvider.getCurrentMinFees();
124
+ const gasFees = await nextBlockMinFeesProvider.getAdmissionMinFees();
125
125
  const networkTxGasLimits = getNetworkTxGasLimits(config, l1Constants);
126
126
  return createTxValidatorForTransactionsEnteringPendingTxPool(
127
127
  worldStateSynchronizer,
@@ -134,7 +134,7 @@ export async function createP2PClient(
134
134
  gasFees,
135
135
  );
136
136
  },
137
- blockMinFeesProvider,
137
+ nextBlockMinFeesProvider,
138
138
  },
139
139
  telemetry,
140
140
  {
@@ -162,7 +162,7 @@ export async function createP2PClient(
162
162
  proofVerifier,
163
163
  worldStateSynchronizer,
164
164
  epochCache,
165
- blockMinFeesProvider,
165
+ nextBlockMinFeesProvider,
166
166
  store,
167
167
  peerStore,
168
168
  mempools,
@@ -247,7 +247,7 @@ async function createP2PService(
247
247
  proofVerifier: ClientProtocolCircuitVerifier,
248
248
  worldStateSynchronizer: WorldStateSynchronizer,
249
249
  epochCache: EpochCacheInterface,
250
- blockMinFeesProvider: BlockMinFeesProvider,
250
+ nextBlockMinFeesProvider: TxAdmissionMinFeesProvider,
251
251
  store: AztecAsyncKVStore,
252
252
  peerStore: AztecLMDBStoreV2,
253
253
  mempools: MemPools,
@@ -276,7 +276,7 @@ async function createP2PService(
276
276
  proofVerifier,
277
277
  worldStateSynchronizer,
278
278
  peerStore,
279
- blockMinFeesProvider,
279
+ nextBlockMinFeesProvider,
280
280
  telemetry,
281
281
  logger: logger.createChild(`libp2p_service`),
282
282
  txValidationCache,
@@ -124,7 +124,7 @@ export type P2P = P2PClient & {
124
124
  sendTx(tx: Tx): Promise<void>;
125
125
 
126
126
  /**
127
- * Handles failed transaction execution by removing txs from the pool.
127
+ * Handles failed transaction execution by removing txs from the pool. Txs already mined are left in place.
128
128
  * @param txHashes - Hashes of the transactions that failed execution.
129
129
  **/
130
130
  handleFailedExecution(txHashes: TxHash[]): Promise<void>;
@@ -576,7 +576,7 @@ export class P2PClient extends WithTracer implements P2P {
576
576
  }
577
577
 
578
578
  /**
579
- * Handles failed transaction execution by removing txs from the pool.
579
+ * Handles failed transaction execution by removing txs from the pool. Txs already mined are left in place.
580
580
  * @param txHashes - Hashes of the transactions that failed execution.
581
581
  **/
582
582
  public async handleFailedExecution(txHashes: TxHash[]): Promise<void> {
package/src/config.ts CHANGED
@@ -281,6 +281,17 @@ export const DEFAULT_PUBLIC_IP_SERVICES: string[] = [
281
281
  'https://icanhazip.com/',
282
282
  ];
283
283
 
284
+ // Bound pre-auth packet decode per source IP so one host cannot force unbounded decoding
285
+ // on the discovery path. Responses to our own queries are exempt via the expected-response
286
+ // bypass. Limits sit well above any honest unsolicited burst, since an over-limit source is
287
+ // banned for the process lifetime.
288
+ export const DISCV5_RATE_LIMITER_OPTS = {
289
+ // ~5 packets/sec steady per source IP, burst 300.
290
+ byIPQuota: { replenishAllEvery: 60_000, maxTokens: 300 },
291
+ // ~100 packets/sec steady aggregate, burst 6000; backstop against many-IP floods.
292
+ globalQuota: { replenishAllEvery: 60_000, maxTokens: 6_000 },
293
+ };
294
+
284
295
  export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
285
296
  validateMaxTxsPerBlock: {
286
297
  env: 'VALIDATOR_MAX_TX_PER_BLOCK',
@@ -50,6 +50,8 @@ export type AttestationPoolApi = Pick<
50
50
  | 'getCheckpointAttestationsForSlot'
51
51
  | 'getCheckpointAttestationsForSlotAndProposal'
52
52
  | 'hasBlockProposalsForSlot'
53
+ | 'hasBlockProposal'
54
+ | 'hasCheckpointProposal'
53
55
  | 'isEmpty'
54
56
  >;
55
57
 
@@ -214,6 +216,29 @@ export class AttestationPool {
214
216
  return values.includes(value);
215
217
  }
216
218
 
219
+ /**
220
+ * True if the exact signed payload hash for a block proposal at (slot, index) is already stored,
221
+ * i.e. this exact content was already accepted. A different payload hash at the same position
222
+ * returns false, so equivocation still reaches tryAddBlockProposal.
223
+ */
224
+ public async hasBlockProposal(
225
+ slot: number,
226
+ indexWithinCheckpoint: number,
227
+ payloadHash: BlockProposalHash,
228
+ ): Promise<boolean> {
229
+ const positionKey = this.getBlockPositionKey(slot, indexWithinCheckpoint);
230
+ return await this.multimapHasValue(this.blockProposalHashesPerSlotAndIndex, positionKey, payloadHash);
231
+ }
232
+
233
+ /**
234
+ * True if the exact signed payload hash for a checkpoint proposal at `slot` is already stored. A
235
+ * different payload hash at the same slot returns false, so equivocation still reaches
236
+ * tryAddCheckpointProposal.
237
+ */
238
+ public async hasCheckpointProposal(slot: number, payloadHash: CheckpointProposalHash): Promise<boolean> {
239
+ return await this.multimapHasValue(this.checkpointProposalHashesPerSlot, slot, payloadHash);
240
+ }
241
+
217
242
  /**
218
243
  * Attempts to add a block proposal to the pool.
219
244
  *
@@ -286,6 +286,24 @@ export function describeAttestationPool(getAttestationPool: () => AttestationPoo
286
286
  expect(retrievedProposal!.getSender()?.toString()).toBe(signers[0].address.toString());
287
287
  });
288
288
 
289
+ it('hasBlockProposal is true only for the exact stored payload hash at a position', async () => {
290
+ const slotNumber = 420;
291
+ const proposal = await mockBlockProposalForPool(signers[0], slotNumber);
292
+ const other = await mockBlockProposalForPool(signers[1], slotNumber);
293
+ expect(proposal.getPayloadHash()).not.toEqual(other.getPayloadHash());
294
+
295
+ await ap.tryAddBlockProposal(proposal);
296
+
297
+ // Exact accepted content is recognized...
298
+ expect(
299
+ await ap.hasBlockProposal(proposal.slotNumber, proposal.indexWithinCheckpoint, proposal.getPayloadHash()),
300
+ ).toBe(true);
301
+ // ...but a different payload hash at the same position is not, so equivocation still takes the full path.
302
+ expect(await ap.hasBlockProposal(other.slotNumber, other.indexWithinCheckpoint, other.getPayloadHash())).toBe(
303
+ false,
304
+ );
305
+ });
306
+
289
307
  it('should retain an exact duplicate block proposal only once', async () => {
290
308
  const slotNumber = 420;
291
309
  const proposal = await mockBlockProposalForPool(signers[0], slotNumber);
@@ -412,6 +430,19 @@ export function describeAttestationPool(getAttestationPool: () => AttestationPoo
412
430
  expect(retrievedProposal!.getSender()?.toString()).toBe(signers[0].address.toString());
413
431
  });
414
432
 
433
+ it('hasCheckpointProposal is true only for the exact stored payload hash at a slot', async () => {
434
+ const slotNumber = 420;
435
+ const proposal = await mockCheckpointProposalForPool(signers[0], slotNumber);
436
+ const other = await mockCheckpointProposalForPool(signers[1], slotNumber);
437
+ expect(proposal.getPayloadHash()).not.toEqual(other.getPayloadHash());
438
+
439
+ await ap.tryAddCheckpointProposal(proposal);
440
+
441
+ expect(await ap.hasCheckpointProposal(proposal.slotNumber, proposal.getPayloadHash())).toBe(true);
442
+ // A different payload hash at the same slot is not stored, so equivocation still takes the full path.
443
+ expect(await ap.hasCheckpointProposal(other.slotNumber, other.getPayloadHash())).toBe(false);
444
+ });
445
+
415
446
  it('should treat distinct payloads at the same slot as equivocations (count = 2)', async () => {
416
447
  const slotNumber = 420;
417
448
  // Two proposals at the same slot but with different headers (distinct payloads).
@@ -90,7 +90,7 @@ State is derived by TxPoolIndices:
90
90
 
91
91
  ## Soft Deletion
92
92
 
93
- Deleted transactions are kept in the database for a grace period before being permanently removed. There are two soft-deletion mechanisms:
93
+ Deleted transactions are kept in the database for a grace period before being permanently removed. A soft-deleted tx that shows up in a block proposal or a mined block is resurrected from its retained data, with its metadata rebuilt as on hydration: `protectTxs` re-adds it as protected and `handleMinedBlock` re-adds it as mined. There are two soft-deletion mechanisms:
94
94
 
95
95
  ### Slot-Based Soft Deletion
96
96
 
@@ -1,4 +1,4 @@
1
- import type { BlockNumber } from '@aztec-labs/foundation/branded-types';
1
+ import type { BlockNumber, SlotNumber } from '@aztec-labs/foundation/branded-types';
2
2
  import type { Logger } from '@aztec-labs/foundation/log';
3
3
  import type { BlockHeader } from '@aztec-labs/stdlib/tx';
4
4
 
@@ -133,6 +133,18 @@ export class EvictionManager {
133
133
  await this.runPostEventRules(context);
134
134
  }
135
135
 
136
+ /**
137
+ * Runs post-event eviction when the pool is prepared for a new slot.
138
+ */
139
+ async evictAfterSlotPrepared(slotNumber: SlotNumber): Promise<void> {
140
+ const context: EvictionContext = {
141
+ event: EvictionEvent.SLOT_PREPARED,
142
+ slotNumber,
143
+ };
144
+
145
+ await this.runPostEventRules(context);
146
+ }
147
+
136
148
  /**
137
149
  * Updates configuration for all rules.
138
150
  */
@@ -1,24 +1,26 @@
1
1
  import { createLogger } from '@aztec-labs/foundation/log';
2
- import type { BlockMinFeesProvider } from '@aztec-labs/stdlib/gas';
2
+ import type { NextBlockMinFeesProvider } from '@aztec-labs/stdlib/gas';
3
3
 
4
4
  import type { EvictionContext, EvictionResult, EvictionRule, PoolOperations } from './interfaces.js';
5
5
  import { EvictionEvent } from './interfaces.js';
6
6
 
7
7
  /**
8
- * Eviction rule that removes transactions whose maxFeesPerGas no longer meets
9
- * the projected minimum gas fees after a new block is mined.
10
- * Uses the BlockMinFeesProvider (forward-looking) to get the projected minimum fees.
11
- * Only triggers on BLOCK_MINED events.
8
+ * Eviction rule that removes transactions whose maxFeesPerGas no longer meets the fee the next block will
9
+ * charge. Only triggers on SLOT_PREPARED events: the next-block fee is stable within a slot, so sweeping once
10
+ * per slot preparation covers the same ground as rescanning after every mined block.
11
+ *
12
+ * Skips the sweep when that fee cannot be resolved, rather than evicting against a stand-in price that would
13
+ * drop transactions which are in fact payable.
12
14
  */
13
15
  export class InsufficientFeePerGasEvictionRule implements EvictionRule {
14
16
  public readonly name = 'InsufficientFeePerGas';
15
17
 
16
18
  private log = createLogger('p2p:tx_pool_v2:insufficient_fee_per_gas_eviction_rule');
17
19
 
18
- constructor(private blockMinFeesProvider: BlockMinFeesProvider) {}
20
+ constructor(private nextBlockMinFeesProvider: NextBlockMinFeesProvider) {}
19
21
 
20
22
  async evict(context: EvictionContext, pool: PoolOperations): Promise<EvictionResult> {
21
- if (context.event !== EvictionEvent.BLOCK_MINED) {
23
+ if (context.event !== EvictionEvent.SLOT_PREPARED) {
22
24
  return {
23
25
  reason: 'insufficient_fee_per_gas',
24
26
  success: true,
@@ -27,7 +29,12 @@ export class InsufficientFeePerGasEvictionRule implements EvictionRule {
27
29
  }
28
30
 
29
31
  try {
30
- const gasFees = await this.blockMinFeesProvider.getCurrentMinFees();
32
+ const gasFees = await this.nextBlockMinFeesProvider.getNextBlockMinFees();
33
+ if (!gasFees) {
34
+ this.log.verbose(`Skipping the insufficient-fee sweep: cannot resolve the next block's min fee`);
35
+ return { reason: 'insufficient_fee_per_gas', success: true, txsEvicted: [] };
36
+ }
37
+
31
38
  const txsToEvict: string[] = [];
32
39
  const pendingTxs = pool.getPendingTxs();
33
40
 
@@ -43,8 +50,9 @@ export class InsufficientFeePerGasEvictionRule implements EvictionRule {
43
50
  }
44
51
 
45
52
  if (txsToEvict.length > 0) {
46
- this.log.info(`Evicted ${txsToEvict.length} txs with insufficient fee per gas after block mined`, {
53
+ this.log.info(`Evicted ${txsToEvict.length} txs with insufficient fee per gas preparing for a new slot`, {
47
54
  txsToEvict,
55
+ slotNumber: context.slotNumber,
48
56
  });
49
57
  await pool.deleteTxs(txsToEvict, this.name);
50
58
  }
@@ -1,4 +1,4 @@
1
- import type { BlockNumber } from '@aztec-labs/foundation/branded-types';
1
+ import type { BlockNumber, SlotNumber } from '@aztec-labs/foundation/branded-types';
2
2
  import type { BlockHeader, TxHash } from '@aztec-labs/stdlib/tx';
3
3
 
4
4
  import type { TxMetaData } from '../tx_metadata.js';
@@ -10,6 +10,7 @@ export const EvictionEvent = {
10
10
  TXS_ADDED: 'txs_added',
11
11
  BLOCK_MINED: 'block_mined',
12
12
  CHAIN_PRUNED: 'chain_pruned',
13
+ SLOT_PREPARED: 'slot_prepared',
13
14
  } as const;
14
15
 
15
16
  export type EvictionEventType = (typeof EvictionEvent)[keyof typeof EvictionEvent];
@@ -32,6 +33,10 @@ export type EvictionContext =
32
33
  block: BlockHeader;
33
34
  newNullifiers: string[];
34
35
  feePayers: string[];
36
+ }
37
+ | {
38
+ event: typeof EvictionEvent.SLOT_PREPARED;
39
+ slotNumber: SlotNumber;
35
40
  };
36
41
 
37
42
  /**