@aztec/p2p 0.0.1-commit.0dc957cde → 0.0.1-commit.0ec55a70b

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 (41) hide show
  1. package/dest/client/factory.js +1 -1
  2. package/dest/config.d.ts +6 -2
  3. package/dest/config.d.ts.map +1 -1
  4. package/dest/config.js +11 -7
  5. package/dest/mem_pools/attestation_pool/mocks.d.ts +1 -1
  6. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  7. package/dest/mem_pools/attestation_pool/mocks.js +6 -4
  8. package/dest/mem_pools/instrumentation.d.ts +1 -1
  9. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  10. package/dest/mem_pools/instrumentation.js +17 -1
  11. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +5 -2
  12. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  13. package/dest/msg_validators/attestation_validator/attestation_validator.js +18 -2
  14. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +5 -3
  15. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -1
  16. package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +1 -1
  17. package/dest/msg_validators/clock_tolerance.d.ts +1 -1
  18. package/dest/msg_validators/clock_tolerance.d.ts.map +1 -1
  19. package/dest/msg_validators/clock_tolerance.js +14 -7
  20. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +4 -2
  21. package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
  22. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +4 -2
  23. package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
  24. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +6 -2
  25. package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
  26. package/dest/msg_validators/proposal_validator/proposal_validator.js +25 -1
  27. package/dest/services/libp2p/libp2p_service.d.ts +2 -2
  28. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  29. package/dest/services/libp2p/libp2p_service.js +21 -7
  30. package/package.json +14 -14
  31. package/src/client/factory.ts +1 -1
  32. package/src/config.ts +15 -6
  33. package/src/mem_pools/attestation_pool/mocks.ts +13 -8
  34. package/src/mem_pools/instrumentation.ts +5 -1
  35. package/src/msg_validators/attestation_validator/attestation_validator.ts +21 -1
  36. package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +9 -2
  37. package/src/msg_validators/clock_tolerance.ts +14 -7
  38. package/src/msg_validators/proposal_validator/block_proposal_validator.ts +8 -2
  39. package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +13 -2
  40. package/src/msg_validators/proposal_validator/proposal_validator.ts +35 -1
  41. package/src/services/libp2p/libp2p_service.ts +24 -6
@@ -80,7 +80,7 @@ export declare class LibP2PService extends WithTracer implements P2PService {
80
80
  private telemetry;
81
81
  protected logger: Logger;
82
82
  constructor(config: P2PConfig, node: PubSubLibp2p, peerDiscoveryService: PeerDiscoveryService, reqresp: ReqRespInterface, peerManager: PeerManagerInterface, mempools: MemPools, archiver: L2BlockSource & ContractDataSource, epochCache: EpochCacheInterface, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, blockMinFeesProvider: BlockMinFeesProvider, telemetry: TelemetryClient, logger?: Logger);
83
- updateConfig(config: Partial<P2PReqRespConfig>): void;
83
+ updateConfig(config: Partial<P2PReqRespConfig & Pick<P2PConfig, 'skipIncomingProposals'>>): void;
84
84
  /**
85
85
  * Creates an instance of the LibP2P service.
86
86
  * @param config - The configuration to use when creating the service.
@@ -239,4 +239,4 @@ export declare class LibP2PService extends WithTracer implements P2PService {
239
239
  private stopLibP2P;
240
240
  }
241
241
  export {};
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9saWJwMnAvbGlicDJwX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFL0UsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUE2QyxNQUFNLHVCQUF1QixDQUFDO0FBRy9GLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQVcsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2SCxPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyxVQUFVLEVBRWYsaUJBQWlCLEVBRWpCLFNBQVMsRUFJVixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFBRSxFQUFFLEVBQXdDLEtBQUssV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUlMLEtBQUssZUFBZSxFQUNwQixVQUFVLEVBRVgsTUFBTSx5QkFBeUIsQ0FBQztBQWNqQyxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQTRC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
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX3NlcnZpY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9saWJwMnAvbGlicDJwX3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFL0UsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUE2QyxNQUFNLHVCQUF1QixDQUFDO0FBRy9GLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQVcsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RSxPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2SCxPQUFPLEVBQ0wsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsS0FBSyxzQkFBc0IsRUFDM0IsS0FBSyxVQUFVLEVBRWYsaUJBQWlCLEVBRWpCLFNBQVMsRUFJVixNQUFNLG1CQUFtQixDQUFDO0FBRTNCLE9BQU8sRUFBRSxFQUFFLEVBQXdDLEtBQUssV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUYsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUlMLEtBQUssZUFBZSxFQUNwQixVQUFVLEVBRVgsTUFBTSx5QkFBeUIsQ0FBQztBQWNqQyxPQUFPLEVBQUUsS0FBSyxPQUFPLEVBQTRC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
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"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"}
@@ -372,7 +372,7 @@ function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
372
372
  }
373
373
  var _dec, _dec1, _dec2, _dec3, _dec4, _dec5, _dec6, _initProto;
374
374
  import { BlockNumber } from '@aztec/foundation/branded-types';
375
- import { maxBy } from '@aztec/foundation/collection';
375
+ import { maxBy, merge } from '@aztec/foundation/collection';
376
376
  import { createLibp2pComponentLogger, createLogger } from '@aztec/foundation/log';
377
377
  import { RunningPromise } from '@aztec/foundation/running-promise';
378
378
  import { Timer } from '@aztec/foundation/timer';
@@ -534,15 +534,21 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
534
534
  const proposalValidatorOpts = {
535
535
  txsPermitted: !config.disableTransactions,
536
536
  maxTxsPerBlock: config.validateMaxTxsPerBlock ?? config.validateMaxTxsPerCheckpoint,
537
- p2pPropagationTime
537
+ maxBlocksPerCheckpoint: config.maxBlocksPerCheckpoint,
538
+ p2pPropagationTime,
539
+ signatureContext: {
540
+ chainId: config.l1ChainId,
541
+ rollupAddress: config.l1Contracts.rollupAddress
542
+ }
538
543
  };
539
544
  this.blockProposalValidator = new BlockProposalValidator(epochCache, proposalValidatorOpts);
540
545
  this.checkpointProposalValidator = new CheckpointProposalValidator(epochCache, proposalValidatorOpts);
541
- this.checkpointAttestationValidator = config.fishermanMode ? new FishermanAttestationValidator(epochCache, mempools.attestationPool, telemetry, {
542
- l1PublishingTime: config.l1PublishingTime
543
- }) : new CheckpointAttestationValidator(epochCache, {
544
- l1PublishingTime: config.l1PublishingTime
545
- });
546
+ const attestationValidatorOpts = {
547
+ l1PublishingTime: config.l1PublishingTime,
548
+ p2pPropagationTime,
549
+ signatureContext: proposalValidatorOpts.signatureContext
550
+ };
551
+ this.checkpointAttestationValidator = config.fishermanMode ? new FishermanAttestationValidator(epochCache, mempools.attestationPool, telemetry, attestationValidatorOpts) : new CheckpointAttestationValidator(epochCache, attestationValidatorOpts);
546
552
  this.gossipSubEventHandler = this.handleGossipSubEvent.bind(this);
547
553
  this.blockReceivedCallback = async (block)=>{
548
554
  this.logger.warn(`Handler for block received not yet registered on P2P service. Received block ${block.blockNumber} for slot ${block.slotNumber} from peer.`, {
@@ -559,6 +565,7 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
559
565
  }
560
566
  updateConfig(config) {
561
567
  this.reqresp.updateConfig(config);
568
+ this.config = merge(this.config, config);
562
569
  }
563
570
  /**
564
571
  * Creates an instance of the LibP2P service.
@@ -995,6 +1002,13 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
995
1002
  }
996
1003
  // Process the message, optionally within a linked span for trace propagation
997
1004
  const processMessage = async ()=>{
1005
+ if (this.config.skipIncomingProposals && (msg.topic === this.topicStrings[TopicType.block_proposal] || msg.topic === this.topicStrings[TopicType.checkpoint_proposal])) {
1006
+ this.logger.warn(`Ignoring incoming proposal (skipIncomingProposals is set)`, {
1007
+ topic: msg.topic
1008
+ });
1009
+ this.node.services.pubsub.reportMessageValidationResult(msgId, source.toString(), TopicValidatorResult.Ignore);
1010
+ return;
1011
+ }
998
1012
  if (msg.topic === this.topicStrings[TopicType.tx]) {
999
1013
  await this.handleGossipedTx(p2pMessage.payload, msgId, source);
1000
1014
  } else if (msg.topic === this.topicStrings[TopicType.checkpoint_attestation]) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/p2p",
3
- "version": "0.0.1-commit.0dc957cde",
3
+ "version": "0.0.1-commit.0ec55a70b",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -67,17 +67,17 @@
67
67
  ]
68
68
  },
69
69
  "dependencies": {
70
- "@aztec/constants": "0.0.1-commit.0dc957cde",
71
- "@aztec/epoch-cache": "0.0.1-commit.0dc957cde",
72
- "@aztec/ethereum": "0.0.1-commit.0dc957cde",
73
- "@aztec/foundation": "0.0.1-commit.0dc957cde",
74
- "@aztec/kv-store": "0.0.1-commit.0dc957cde",
75
- "@aztec/noir-contracts.js": "0.0.1-commit.0dc957cde",
76
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.0dc957cde",
77
- "@aztec/protocol-contracts": "0.0.1-commit.0dc957cde",
78
- "@aztec/simulator": "0.0.1-commit.0dc957cde",
79
- "@aztec/stdlib": "0.0.1-commit.0dc957cde",
80
- "@aztec/telemetry-client": "0.0.1-commit.0dc957cde",
70
+ "@aztec/constants": "0.0.1-commit.0ec55a70b",
71
+ "@aztec/epoch-cache": "0.0.1-commit.0ec55a70b",
72
+ "@aztec/ethereum": "0.0.1-commit.0ec55a70b",
73
+ "@aztec/foundation": "0.0.1-commit.0ec55a70b",
74
+ "@aztec/kv-store": "0.0.1-commit.0ec55a70b",
75
+ "@aztec/noir-contracts.js": "0.0.1-commit.0ec55a70b",
76
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.0ec55a70b",
77
+ "@aztec/protocol-contracts": "0.0.1-commit.0ec55a70b",
78
+ "@aztec/simulator": "0.0.1-commit.0ec55a70b",
79
+ "@aztec/stdlib": "0.0.1-commit.0ec55a70b",
80
+ "@aztec/telemetry-client": "0.0.1-commit.0ec55a70b",
81
81
  "@chainsafe/libp2p-gossipsub": "13.0.0",
82
82
  "@chainsafe/libp2p-noise": "^15.0.0",
83
83
  "@chainsafe/libp2p-yamux": "^6.0.2",
@@ -104,8 +104,8 @@
104
104
  "xxhash-wasm": "^1.1.0"
105
105
  },
106
106
  "devDependencies": {
107
- "@aztec/archiver": "0.0.1-commit.0dc957cde",
108
- "@aztec/world-state": "0.0.1-commit.0dc957cde",
107
+ "@aztec/archiver": "0.0.1-commit.0ec55a70b",
108
+ "@aztec/world-state": "0.0.1-commit.0ec55a70b",
109
109
  "@jest/globals": "^30.0.0",
110
110
  "@types/jest": "^30.0.0",
111
111
  "@types/node": "^22.15.17",
@@ -76,7 +76,7 @@ export async function createP2PClient(
76
76
  const store = deps.store ?? (await createStore(P2P_STORE_NAME, 2, config, bindings));
77
77
  const archive = await createStore(P2P_ARCHIVE_STORE_NAME, 1, config, bindings);
78
78
  const peerStore = await createStore(P2P_PEER_STORE_NAME, 1, config, bindings);
79
- const attestationStore = await createStore(P2P_ATTESTATION_STORE_NAME, 1, config, bindings);
79
+ const attestationStore = await createStore(P2P_ATTESTATION_STORE_NAME, 2, config, bindings);
80
80
  const l1Constants = await archiver.getL1Constants();
81
81
 
82
82
  const rollupAddress = inputConfig.l1Contracts.rollupAddress.toString().toLowerCase().replace(/^0x/, '');
package/src/config.ts CHANGED
@@ -6,6 +6,7 @@ import {
6
6
  getConfigFromMappings,
7
7
  getDefaultConfig,
8
8
  numberConfigHelper,
9
+ optionalNumberConfigHelper,
9
10
  percentageConfigHelper,
10
11
  pickConfigMappings,
11
12
  secretStringConfigHelper,
@@ -46,6 +47,7 @@ export interface P2PConfig
46
47
  | 'l1PublishingTime'
47
48
  | 'maxTxsPerBlock'
48
49
  | 'attestationPropagationTime'
50
+ | 'maxBlocksPerCheckpoint'
49
51
  > {
50
52
  /** Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set. */
51
53
  validateMaxTxsPerBlock?: number;
@@ -216,6 +218,9 @@ export interface P2PConfig
216
218
 
217
219
  /** Minimum percentage fee increase required to replace an existing tx via RPC (0 = no bump). */
218
220
  priceBumpPercentage: bigint;
221
+
222
+ /** Drop incoming block and checkpoint proposals at the libp2p dispatch layer (for testing only) */
223
+ skipIncomingProposals?: boolean;
219
224
  }
220
225
 
221
226
  export const DEFAULT_P2P_PORT = 40400;
@@ -225,23 +230,23 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
225
230
  env: 'VALIDATOR_MAX_TX_PER_BLOCK',
226
231
  description:
227
232
  'Maximum transactions per block for validation. Overrides maxTxsPerBlock for gossip validation when set.',
228
- parseEnv: (val: string) => parseInt(val, 10),
233
+ ...optionalNumberConfigHelper(),
229
234
  },
230
235
  validateMaxTxsPerCheckpoint: {
231
236
  env: 'VALIDATOR_MAX_TX_PER_CHECKPOINT',
232
237
  description:
233
238
  'Maximum transactions per checkpoint for validation. Used as fallback for maxTxsPerBlock when that is not set.',
234
- parseEnv: (val: string) => parseInt(val, 10),
239
+ ...optionalNumberConfigHelper(),
235
240
  },
236
241
  validateMaxL2BlockGas: {
237
242
  env: 'VALIDATOR_MAX_L2_BLOCK_GAS',
238
243
  description: 'Maximum L2 gas per block for validation. When set, txs exceeding this limit are rejected.',
239
- parseEnv: (val: string) => parseInt(val, 10),
244
+ ...optionalNumberConfigHelper(),
240
245
  },
241
246
  validateMaxDABlockGas: {
242
247
  env: 'VALIDATOR_MAX_DA_BLOCK_GAS',
243
248
  description: 'Maximum DA gas per block for validation. When set, txs exceeding this limit are rejected.',
244
- parseEnv: (val: string) => parseInt(val, 10),
249
+ ...optionalNumberConfigHelper(),
245
250
  },
246
251
  p2pEnabled: {
247
252
  env: 'P2P_ENABLED',
@@ -443,7 +448,7 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
443
448
  },
444
449
  p2pStoreMapSizeKb: {
445
450
  env: 'P2P_STORE_MAP_SIZE_KB',
446
- parseEnv: (val: string) => +val,
451
+ ...optionalNumberConfigHelper(),
447
452
  description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb.',
448
453
  },
449
454
  txPublicSetupAllowListExtend: {
@@ -505,7 +510,7 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
505
510
  l1PublishingTime: {
506
511
  env: 'SEQ_L1_PUBLISHING_TIME_ALLOWANCE_IN_SLOT',
507
512
  description: 'How much time (in seconds) we allow in the slot for publishing the L1 tx (defaults to 1 L1 slot).',
508
- parseEnv: (val: string) => parseInt(val, 10),
513
+ ...optionalNumberConfigHelper(),
509
514
  },
510
515
  fishermanMode: {
511
516
  env: 'FISHERMAN_MODE',
@@ -518,6 +523,10 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
518
523
  'Broadcast block proposals even when a conflicting proposal for the same slot already exists in the pool (for testing purposes only).',
519
524
  ...booleanConfigHelper(false),
520
525
  },
526
+ skipIncomingProposals: {
527
+ description: 'Drop incoming block and checkpoint proposals at the libp2p dispatch layer (for testing only)',
528
+ ...booleanConfigHelper(false),
529
+ },
521
530
  minTxPoolAgeMs: {
522
531
  env: 'P2P_MIN_TX_POOL_AGE_MS',
523
532
  description: 'Minimum age (ms) a transaction must have been in the pool before it is eligible for block building.',
@@ -3,11 +3,12 @@ import type { Secp256k1Signer } from '@aztec/foundation/crypto/secp256k1-signer'
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import {
5
5
  CheckpointAttestation,
6
+ CheckpointProposal,
6
7
  ConsensusPayload,
7
- SignatureDomainSeparator,
8
- getHashedSignaturePayloadEthSignedMessage,
8
+ getHashedSignaturePayloadTypedData,
9
9
  } from '@aztec/stdlib/p2p';
10
10
  import { CheckpointHeader } from '@aztec/stdlib/rollup';
11
+ import { TEST_COORDINATION_SIGNATURE_CONTEXT } from '@aztec/stdlib/testing';
11
12
 
12
13
  import { type LocalAccount, generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
13
14
 
@@ -37,15 +38,19 @@ export const mockCheckpointAttestation = (
37
38
  feeAssetPriceModifier: bigint = 0n,
38
39
  ): CheckpointAttestation => {
39
40
  header = header ?? CheckpointHeader.random({ slotNumber: SlotNumber(slot) });
40
- const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier);
41
+ const payload = new ConsensusPayload(header, archive, feeAssetPriceModifier, TEST_COORDINATION_SIGNATURE_CONTEXT);
41
42
 
42
- const attestationHash = getHashedSignaturePayloadEthSignedMessage(
43
- payload,
44
- SignatureDomainSeparator.checkpointAttestation,
45
- );
43
+ const attestationHash = getHashedSignaturePayloadTypedData(payload);
46
44
  const attestationSignature = signer.sign(attestationHash);
47
45
 
48
- const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.checkpointProposal);
46
+ const proposal = new CheckpointProposal(
47
+ header,
48
+ archive,
49
+ feeAssetPriceModifier,
50
+ attestationSignature,
51
+ TEST_COORDINATION_SIGNATURE_CONTEXT,
52
+ );
53
+ const proposalHash = getHashedSignaturePayloadTypedData(proposal);
49
54
  const proposerSignature = signer.sign(proposalHash);
50
55
 
51
56
  return new CheckpointAttestation(payload, attestationSignature, proposerSignature);
@@ -100,7 +100,11 @@ export class PoolInstrumentation<PoolObject extends Gossipable> {
100
100
 
101
101
  this.addObjectCounter = createUpDownCounterWithDefault(this.meter, metricsLabels.itemsAdded);
102
102
 
103
- this.minedDelay = this.meter.createHistogram(metricsLabels.itemMinedDelay);
103
+ this.minedDelay = this.meter.createHistogram(metricsLabels.itemMinedDelay, {
104
+ advice: {
105
+ explicitBucketBoundaries: [100, 500, 1000, 5000, 10000, 30000, 60000, 300000, 600000, 1800000, 3600000],
106
+ },
107
+ });
104
108
 
105
109
  this.meter.addBatchObservableCallback(this.observeStats, [this.objectsInMempool]);
106
110
  }
@@ -3,9 +3,11 @@ import { NoCommitteeError } from '@aztec/ethereum/contracts';
3
3
  import { type Logger, createLogger } from '@aztec/foundation/log';
4
4
  import {
5
5
  type CheckpointAttestation,
6
+ type CoordinationSignatureContext,
6
7
  type P2PValidator,
7
8
  PeerErrorSeverity,
8
9
  type ValidationResult,
10
+ hasValidSignatureContext,
9
11
  } from '@aztec/stdlib/p2p';
10
12
 
11
13
  import { PipeliningWindow, isWithinClockTolerance } from '../clock_tolerance.js';
@@ -14,15 +16,22 @@ export class CheckpointAttestationValidator implements P2PValidator<CheckpointAt
14
16
  protected epochCache: EpochCacheInterface;
15
17
  protected logger: Logger;
16
18
  private readonly pipeliningWindow: PipeliningWindow;
19
+ protected readonly signatureContext: CoordinationSignatureContext;
17
20
 
18
21
  constructor(
19
22
  epochCache: EpochCacheInterface,
20
23
  opts: {
21
24
  l1PublishingTime?: number;
25
+ p2pPropagationTime?: number;
26
+ signatureContext: CoordinationSignatureContext;
22
27
  },
23
28
  ) {
24
29
  this.epochCache = epochCache;
25
- this.pipeliningWindow = new PipeliningWindow(epochCache, { l1PublishingTime: opts.l1PublishingTime });
30
+ this.pipeliningWindow = new PipeliningWindow(epochCache, {
31
+ l1PublishingTime: opts.l1PublishingTime,
32
+ p2pPropagationTime: opts.p2pPropagationTime,
33
+ });
34
+ this.signatureContext = opts.signatureContext;
26
35
  this.logger = createLogger('p2p:checkpoint-attestation-validator');
27
36
  }
28
37
 
@@ -30,6 +39,17 @@ export class CheckpointAttestationValidator implements P2PValidator<CheckpointAt
30
39
  const slotNumber = message.payload.header.slotNumber;
31
40
 
32
41
  try {
42
+ // Cross-chain replay check: reject attestations that carry a foreign signing domain.
43
+ if (!hasValidSignatureContext(message.payload, this.signatureContext)) {
44
+ this.logger.warn(`Rejecting checkpoint attestation with foreign signature context for slot ${slotNumber}`, {
45
+ chainId: message.payload.signatureContext.chainId,
46
+ rollupAddress: message.payload.signatureContext.rollupAddress.toString(),
47
+ expectedChainId: this.signatureContext.chainId,
48
+ expectedRollupAddress: this.signatureContext.rollupAddress.toString(),
49
+ });
50
+ return { result: 'reject', severity: PeerErrorSeverity.LowToleranceError };
51
+ }
52
+
33
53
  // Use target slots since proposals target pipeline slots (slot + 1 when pipelining).
34
54
  const { targetSlot, nextSlot } = this.epochCache.getTargetAndNextSlot();
35
55
 
@@ -1,5 +1,10 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import { type CheckpointAttestation, PeerErrorSeverity, type ValidationResult } from '@aztec/stdlib/p2p';
2
+ import {
3
+ type CheckpointAttestation,
4
+ type CoordinationSignatureContext,
5
+ PeerErrorSeverity,
6
+ type ValidationResult,
7
+ } from '@aztec/stdlib/p2p';
3
8
  import { Attributes, Metrics, type TelemetryClient, createUpDownCounterWithDefault } from '@aztec/telemetry-client';
4
9
 
5
10
  import type { AttestationPoolApi } from '../../mem_pools/attestation_pool/attestation_pool.js';
@@ -22,7 +27,9 @@ export class FishermanAttestationValidator extends CheckpointAttestationValidato
22
27
  telemetryClient: TelemetryClient,
23
28
  opts: {
24
29
  l1PublishingTime?: number;
25
- } = {},
30
+ p2pPropagationTime?: number;
31
+ signatureContext: CoordinationSignatureContext;
32
+ },
26
33
  ) {
27
34
  super(epochCache, opts);
28
35
  this.logger = this.logger.createChild('[FISHERMAN]');
@@ -53,17 +53,24 @@ export function isWithinClockTolerance(
53
53
  }
54
54
 
55
55
  /**
56
- * Checks if a message should be accepted under the pipelining grace period.
56
+ * Checks if a straggler message for the previous target slot should be accepted.
57
57
  *
58
- * When pipelining is enabled, `targetSlot = slotNow + 1`. A proposal built in slot N-1
59
- * for slot N arrives when validators are in slot N, so their `targetSlot = N+1`.
60
- * This function accepts proposals for the current wallclock slot if we're within the
61
- * first `windowSeconds` seconds of the slot (the pipelining grace period). - see stdlib/timetable/index.ts
58
+ * Under pipelining, proposals and attestations carry the target slot N. Most of the
59
+ * time the receiver is either still in the build slot N-1 (accepted via the main
60
+ * `slotNumber === targetSlot` match) or in the target slot N (accepted via
61
+ * `slotNumber === nextSlot` when pipelining is disabled, or again via `targetSlot`
62
+ * when the receiver itself is pipelining). Stragglers that arrive after the receiver
63
+ * has rolled past the target slot fall to this check: accept `messageSlot === slotNow`
64
+ * while we're still within the first `windowSeconds + clock-disparity` of the slot.
65
+ *
66
+ * Under the early-pipelining schedule `windowSeconds` is small (0 for proposals,
67
+ * `2*p2pPropagationTime` for attestations) since the proposer collects everything
68
+ * before the slot boundary.
62
69
  *
63
70
  * @param messageSlot - The slot number from the received message
64
71
  * @param epochCache - EpochCache to get timing and pipelining state
65
- * @param windowSeconds - The window grace period allowed for attestations into the next slot
66
- * @returns true if pipelining is enabled, the message is for the current slot, and we're within the grace period
72
+ * @param windowSeconds - How far into the current slot we still accept previous-target messages
73
+ * @returns true if pipelining is enabled, the message is for the current wallclock slot, and we're within the grace period
67
74
  */
68
75
  function isWithinPipeliningWindow(
69
76
  messageSlot: SlotNumber,
@@ -1,5 +1,5 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import type { BlockProposal, P2PValidator, ValidationResult } from '@aztec/stdlib/p2p';
2
+ import type { BlockProposal, CoordinationSignatureContext, P2PValidator, ValidationResult } from '@aztec/stdlib/p2p';
3
3
 
4
4
  import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
5
5
 
@@ -8,7 +8,13 @@ export class BlockProposalValidator implements P2PValidator<BlockProposal> {
8
8
 
9
9
  constructor(
10
10
  epochCache: EpochCacheInterface,
11
- opts: { txsPermitted: boolean; maxTxsPerBlock?: number; p2pPropagationTime?: number },
11
+ opts: {
12
+ txsPermitted: boolean;
13
+ maxTxsPerBlock?: number;
14
+ maxBlocksPerCheckpoint?: number;
15
+ p2pPropagationTime?: number;
16
+ signatureContext: CoordinationSignatureContext;
17
+ },
12
18
  ) {
13
19
  this.proposalValidator = new ProposalValidator(epochCache, opts, 'p2p:block_proposal_validator');
14
20
  }
@@ -1,5 +1,10 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
- import type { CheckpointProposal, P2PValidator, ValidationResult } from '@aztec/stdlib/p2p';
2
+ import type {
3
+ CheckpointProposal,
4
+ CoordinationSignatureContext,
5
+ P2PValidator,
6
+ ValidationResult,
7
+ } from '@aztec/stdlib/p2p';
3
8
 
4
9
  import { ProposalValidator } from '../proposal_validator/proposal_validator.js';
5
10
 
@@ -8,7 +13,13 @@ export class CheckpointProposalValidator implements P2PValidator<CheckpointPropo
8
13
 
9
14
  constructor(
10
15
  epochCache: EpochCacheInterface,
11
- opts: { txsPermitted: boolean; maxTxsPerBlock?: number; p2pPropagationTime?: number },
16
+ opts: {
17
+ txsPermitted: boolean;
18
+ maxTxsPerBlock?: number;
19
+ maxBlocksPerCheckpoint?: number;
20
+ p2pPropagationTime?: number;
21
+ signatureContext: CoordinationSignatureContext;
22
+ },
12
23
  ) {
13
24
  this.proposalValidator = new ProposalValidator(epochCache, opts, 'p2p:checkpoint_proposal_validator');
14
25
  }
@@ -4,8 +4,10 @@ import { type Logger, createLogger } from '@aztec/foundation/log';
4
4
  import {
5
5
  type BlockProposal,
6
6
  type CheckpointProposalCore,
7
+ type CoordinationSignatureContext,
7
8
  PeerErrorSeverity,
8
9
  type ValidationResult,
10
+ hasValidSignatureContext,
9
11
  } from '@aztec/stdlib/p2p';
10
12
 
11
13
  import { PipeliningWindow, isWithinClockTolerance } from '../clock_tolerance.js';
@@ -16,23 +18,44 @@ export class ProposalValidator {
16
18
  private logger: Logger;
17
19
  private txsPermitted: boolean;
18
20
  private maxTxsPerBlock?: number;
21
+ private maxBlocksPerCheckpoint?: number;
19
22
  private pipeliningWindow: PipeliningWindow;
23
+ private signatureContext: CoordinationSignatureContext;
20
24
 
21
25
  constructor(
22
26
  epochCache: EpochCacheInterface,
23
- opts: { txsPermitted: boolean; maxTxsPerBlock?: number; p2pPropagationTime?: number },
27
+ opts: {
28
+ txsPermitted: boolean;
29
+ maxTxsPerBlock?: number;
30
+ maxBlocksPerCheckpoint?: number;
31
+ p2pPropagationTime?: number;
32
+ signatureContext: CoordinationSignatureContext;
33
+ },
24
34
  loggerName: string,
25
35
  ) {
26
36
  this.epochCache = epochCache;
27
37
  this.txsPermitted = opts.txsPermitted;
28
38
  this.maxTxsPerBlock = opts.maxTxsPerBlock;
39
+ this.maxBlocksPerCheckpoint = opts.maxBlocksPerCheckpoint;
29
40
  this.pipeliningWindow = new PipeliningWindow(epochCache, { p2pPropagationTime: opts.p2pPropagationTime });
41
+ this.signatureContext = opts.signatureContext;
30
42
  this.logger = createLogger(loggerName);
31
43
  }
32
44
 
33
45
  /** Validates header-level fields: slot, signature, and proposer. */
34
46
  public async validate(proposal: BlockProposal | CheckpointProposalCore): Promise<ValidationResult> {
35
47
  try {
48
+ // Cross-chain replay check: reject proposals that carry a foreign signing domain.
49
+ if (!hasValidSignatureContext(proposal, this.signatureContext)) {
50
+ this.logger.warn(`Penalizing peer for proposal with foreign signature context`, {
51
+ chainId: proposal.signatureContext.chainId,
52
+ rollupAddress: proposal.signatureContext.rollupAddress.toString(),
53
+ expectedChainId: this.signatureContext.chainId,
54
+ expectedRollupAddress: this.signatureContext.rollupAddress.toString(),
55
+ });
56
+ return { result: 'reject', severity: PeerErrorSeverity.LowToleranceError };
57
+ }
58
+
36
59
  // Slot check: use target slots since proposals target pipeline slots (slot + 1 when pipelining).
37
60
  const { targetSlot, nextSlot } = this.epochCache.getTargetAndNextSlot();
38
61
 
@@ -68,6 +91,17 @@ export class ProposalValidator {
68
91
  return { result: 'reject', severity: PeerErrorSeverity.MidToleranceError };
69
92
  }
70
93
 
94
+ if (
95
+ this.maxBlocksPerCheckpoint !== undefined &&
96
+ 'indexWithinCheckpoint' in proposal &&
97
+ proposal.indexWithinCheckpoint >= this.maxBlocksPerCheckpoint
98
+ ) {
99
+ this.logger.warn(
100
+ `Penalizing peer for proposal with indexWithinCheckpoint ${proposal.indexWithinCheckpoint} >= max ${this.maxBlocksPerCheckpoint}`,
101
+ );
102
+ return { result: 'reject', severity: PeerErrorSeverity.MidToleranceError };
103
+ }
104
+
71
105
  return { result: 'accept' };
72
106
  } catch (e) {
73
107
  if (e instanceof NoCommitteeError) {