@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
@@ -1,6 +1,6 @@
1
1
  import type { EpochCacheInterface } from '@aztec/epoch-cache';
2
2
  import { BlockNumber, type SlotNumber } from '@aztec/foundation/branded-types';
3
- import { maxBy } from '@aztec/foundation/collection';
3
+ import { maxBy, merge } from '@aztec/foundation/collection';
4
4
  import { type Logger, createLibp2pComponentLogger, createLogger } from '@aztec/foundation/log';
5
5
  import { RunningPromise } from '@aztec/foundation/running-promise';
6
6
  import { Timer } from '@aztec/foundation/timer';
@@ -231,15 +231,23 @@ export class LibP2PService extends WithTracer implements P2PService {
231
231
  const proposalValidatorOpts = {
232
232
  txsPermitted: !config.disableTransactions,
233
233
  maxTxsPerBlock: config.validateMaxTxsPerBlock ?? config.validateMaxTxsPerCheckpoint,
234
+ maxBlocksPerCheckpoint: config.maxBlocksPerCheckpoint,
234
235
  p2pPropagationTime,
236
+ signatureContext: {
237
+ chainId: config.l1ChainId,
238
+ rollupAddress: config.l1Contracts.rollupAddress,
239
+ },
235
240
  };
236
241
  this.blockProposalValidator = new BlockProposalValidator(epochCache, proposalValidatorOpts);
237
242
  this.checkpointProposalValidator = new CheckpointProposalValidator(epochCache, proposalValidatorOpts);
243
+ const attestationValidatorOpts = {
244
+ l1PublishingTime: config.l1PublishingTime,
245
+ p2pPropagationTime,
246
+ signatureContext: proposalValidatorOpts.signatureContext,
247
+ };
238
248
  this.checkpointAttestationValidator = config.fishermanMode
239
- ? new FishermanAttestationValidator(epochCache, mempools.attestationPool, telemetry, {
240
- l1PublishingTime: config.l1PublishingTime,
241
- })
242
- : new CheckpointAttestationValidator(epochCache, { l1PublishingTime: config.l1PublishingTime });
249
+ ? new FishermanAttestationValidator(epochCache, mempools.attestationPool, telemetry, attestationValidatorOpts)
250
+ : new CheckpointAttestationValidator(epochCache, attestationValidatorOpts);
243
251
 
244
252
  this.gossipSubEventHandler = this.handleGossipSubEvent.bind(this);
245
253
 
@@ -264,8 +272,9 @@ export class LibP2PService extends WithTracer implements P2PService {
264
272
  };
265
273
  }
266
274
 
267
- public updateConfig(config: Partial<P2PReqRespConfig>) {
275
+ public updateConfig(config: Partial<P2PReqRespConfig & Pick<P2PConfig, 'skipIncomingProposals'>>) {
268
276
  this.reqresp.updateConfig(config);
277
+ this.config = merge(this.config, config);
269
278
  }
270
279
 
271
280
  /**
@@ -842,6 +851,15 @@ export class LibP2PService extends WithTracer implements P2PService {
842
851
 
843
852
  // Process the message, optionally within a linked span for trace propagation
844
853
  const processMessage = async () => {
854
+ if (
855
+ this.config.skipIncomingProposals &&
856
+ (msg.topic === this.topicStrings[TopicType.block_proposal] ||
857
+ msg.topic === this.topicStrings[TopicType.checkpoint_proposal])
858
+ ) {
859
+ this.logger.warn(`Ignoring incoming proposal (skipIncomingProposals is set)`, { topic: msg.topic });
860
+ this.node.services.pubsub.reportMessageValidationResult(msgId, source.toString(), TopicValidatorResult.Ignore);
861
+ return;
862
+ }
845
863
  if (msg.topic === this.topicStrings[TopicType.tx]) {
846
864
  await this.handleGossipedTx(p2pMessage.payload, msgId, source);
847
865
  } else if (msg.topic === this.topicStrings[TopicType.checkpoint_attestation]) {