@aztec/p2p 3.0.0-nightly.20251023 → 3.0.0-nightly.20251025

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 (37) hide show
  1. package/dest/client/factory.js +1 -1
  2. package/dest/client/p2p_client.d.ts.map +1 -1
  3. package/dest/client/p2p_client.js +7 -2
  4. package/dest/config.d.ts +4 -4
  5. package/dest/config.js +2 -2
  6. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  7. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +1 -2
  8. package/dest/mem_pools/attestation_pool/mocks.js +1 -1
  9. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  10. package/dest/msg_validators/attestation_validator/attestation_validator.js +4 -0
  11. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +4 -1
  12. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
  13. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +8 -1
  14. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  15. package/dest/services/libp2p/libp2p_service.js +7 -11
  16. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  17. package/dest/services/tx_collection/fast_tx_collection.js +6 -1
  18. package/dest/services/tx_collection/tx_collection.d.ts +2 -1
  19. package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
  20. package/dest/services/tx_collection/tx_collection.js +3 -2
  21. package/dest/services/tx_provider.d.ts +1 -1
  22. package/dest/services/tx_provider.d.ts.map +1 -1
  23. package/dest/services/tx_provider.js +7 -3
  24. package/dest/test-helpers/reqresp-nodes.js +1 -1
  25. package/package.json +14 -14
  26. package/src/client/factory.ts +1 -1
  27. package/src/client/p2p_client.ts +7 -2
  28. package/src/config.ts +4 -4
  29. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +1 -2
  30. package/src/mem_pools/attestation_pool/mocks.ts +1 -1
  31. package/src/msg_validators/attestation_validator/attestation_validator.ts +4 -0
  32. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +11 -1
  33. package/src/services/libp2p/libp2p_service.ts +13 -25
  34. package/src/services/tx_collection/fast_tx_collection.ts +3 -1
  35. package/src/services/tx_collection/tx_collection.ts +3 -2
  36. package/src/services/tx_provider.ts +3 -2
  37. package/src/test-helpers/reqresp-nodes.ts +1 -1
@@ -18,7 +18,7 @@ export const P2P_ATTESTATION_STORE_NAME = 'p2p-attestation';
18
18
  export async function createP2PClient(clientType, inputConfig, archiver, proofVerifier, worldStateSynchronizer, epochCache, packageVersion, dateProvider = new DateProvider(), telemetry = getTelemetryClient(), deps = {}) {
19
19
  const config = await configureP2PClientAddresses({
20
20
  ...inputConfig,
21
- dataStoreMapSizeKB: inputConfig.p2pStoreMapSizeKb ?? inputConfig.dataStoreMapSizeKB
21
+ dataStoreMapSizeKb: inputConfig.p2pStoreMapSizeKb ?? inputConfig.dataStoreMapSizeKb
22
22
  });
23
23
  const logger = deps.logger ?? createLogger('p2p');
24
24
  if (config.bootstrapNodes.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
@@ -69,7 +69,13 @@ import { P2PClientState } from './interface.js';
69
69
  const constants = this.txCollection.getConstants();
70
70
  const nextSlotTimestampSeconds = Number(getTimestampForSlot(block.slotNumber.toBigInt() + 1n, constants));
71
71
  const deadline = new Date(nextSlotTimestampSeconds * 1000);
72
- await this.txProvider.getTxsForBlockProposal(block, {
72
+ const parentBlock = await this.l2BlockSource.getBlockHeaderByArchive(block.payload.header.lastArchiveRoot);
73
+ if (!parentBlock) {
74
+ this.log.debug(`Cannot collect txs for proposal as parent block not found`);
75
+ return;
76
+ }
77
+ const blockNumber = parentBlock.getBlockNumber() + 1;
78
+ await this.txProvider.getTxsForBlockProposal(block, blockNumber, {
73
79
  pinnedPeer: sender,
74
80
  deadline
75
81
  });
@@ -683,7 +689,6 @@ import { P2PClientState } from './interface.js';
683
689
  }
684
690
  _ts_decorate([
685
691
  trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
686
- [Attributes.BLOCK_NUMBER]: proposal.blockNumber,
687
692
  [Attributes.SLOT_NUMBER]: proposal.slotNumber.toNumber(),
688
693
  [Attributes.BLOCK_ARCHIVE]: proposal.archive.toString(),
689
694
  [Attributes.P2P_ID]: (await proposal.p2pMessageIdentifier()).toString()
package/dest/config.d.ts CHANGED
@@ -77,7 +77,7 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
77
77
  privatePeers: string[];
78
78
  /** A list of preferred peers. */
79
79
  preferredPeers: string[];
80
- /** The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKB. */
80
+ /** The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb. */
81
81
  p2pStoreMapSizeKb?: number;
82
82
  /** Which calls are allowed in the public setup phase of a tx. */
83
83
  txPublicSetupAllowList: AllowedElement[];
@@ -115,13 +115,13 @@ export declare function getP2PDefaultConfig(): P2PConfig;
115
115
  /**
116
116
  * Required P2P config values for a bootstrap node.
117
117
  */
118
- export type BootnodeConfig = Pick<P2PConfig, 'p2pIp' | 'p2pPort' | 'p2pBroadcastPort' | 'peerIdPrivateKey' | 'peerIdPrivateKeyPath' | 'bootstrapNodes' | 'listenAddress' | 'queryForIp'> & Required<Pick<P2PConfig, 'p2pIp' | 'p2pPort'>> & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKB'> & Pick<ChainConfig, 'l1ChainId'>;
118
+ export type BootnodeConfig = Pick<P2PConfig, 'p2pIp' | 'p2pPort' | 'p2pBroadcastPort' | 'peerIdPrivateKey' | 'peerIdPrivateKeyPath' | 'bootstrapNodes' | 'listenAddress' | 'queryForIp'> & Required<Pick<P2PConfig, 'p2pIp' | 'p2pPort'>> & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'> & Pick<ChainConfig, 'l1ChainId'>;
119
119
  export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
120
120
  l1ChainId: unknown;
121
121
  rollupVersion: unknown;
122
122
  l1Contracts: unknown;
123
123
  dataDirectory: unknown;
124
- dataStoreMapSizeKB: unknown;
124
+ dataStoreMapSizeKb: unknown;
125
125
  overallRequestTimeoutMs: unknown;
126
126
  individualRequestTimeoutMs: unknown;
127
127
  p2pOptimisticNegotiation: unknown;
@@ -184,7 +184,7 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
184
184
  dropTransactions: unknown;
185
185
  dropTransactionsProbability: unknown;
186
186
  txPoolDeleteTxsAfterReorg: unknown;
187
- }, "p2pPort" | "p2pBroadcastPort" | "p2pIp" | "listenAddress" | "peerIdPrivateKey" | "peerIdPrivateKeyPath" | "bootstrapNodes" | "queryForIp" | "l1ChainId" | "dataDirectory" | "dataStoreMapSizeKB">>;
187
+ }, "p2pPort" | "p2pBroadcastPort" | "p2pIp" | "listenAddress" | "peerIdPrivateKey" | "peerIdPrivateKeyPath" | "bootstrapNodes" | "queryForIp" | "l1ChainId" | "dataDirectory" | "dataStoreMapSizeKb">>;
188
188
  /**
189
189
  * Parses a string to a list of allowed elements.
190
190
  * Each encoded is expected to be of one of the following formats
package/dest/config.js CHANGED
@@ -197,7 +197,7 @@ export const p2pConfigMappings = {
197
197
  p2pStoreMapSizeKb: {
198
198
  env: 'P2P_STORE_MAP_SIZE_KB',
199
199
  parseEnv: (val)=>val ? +val : undefined,
200
- description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKB.'
200
+ description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb.'
201
201
  },
202
202
  txPublicSetupAllowList: {
203
203
  env: 'TX_PUBLIC_SETUP_ALLOWLIST',
@@ -276,7 +276,7 @@ const bootnodeConfigKeys = [
276
276
  'peerIdPrivateKey',
277
277
  'peerIdPrivateKeyPath',
278
278
  'dataDirectory',
279
- 'dataStoreMapSizeKB',
279
+ 'dataStoreMapSizeKb',
280
280
  'bootstrapNodes',
281
281
  'l1ChainId',
282
282
  'queryForIp'
@@ -1 +1 @@
1
- {"version":3,"file":"attestation_pool_test_suite.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/attestation_pool_test_suite.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,wBAAgB,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,eAAe,QAsWhF"}
1
+ {"version":3,"file":"attestation_pool_test_suite.d.ts","sourceRoot":"","sources":["../../../src/mem_pools/attestation_pool/attestation_pool_test_suite.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,wBAAgB,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,eAAe,QAqWhF"}
@@ -26,7 +26,6 @@ export function describeAttestationPool(getAttestationPool) {
26
26
  return signers.map((signer)=>mockAttestation(signer, slotNumber, archive));
27
27
  };
28
28
  const mockBlockProposal = (signer, slotNumber, archive = Fr.random())=>{
29
- const blockNumber = 1;
30
29
  const header = makeL2BlockHeader(1, 2, slotNumber);
31
30
  const payload = new ConsensusPayload(header.toCheckpointHeader(), archive, header.state);
32
31
  const hash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
@@ -35,7 +34,7 @@ export function describeAttestationPool(getAttestationPool) {
35
34
  TxHash.random(),
36
35
  TxHash.random()
37
36
  ]; // Mock tx hashes
38
- return new BlockProposalClass(blockNumber, payload, signature, txHashes);
37
+ return new BlockProposalClass(payload, signature, txHashes);
39
38
  };
40
39
  // We compare buffers as the objects can have cached values attached to them which are not serialised
41
40
  // using array containing as the kv store does not respect insertion order
@@ -23,5 +23,5 @@ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
23
23
  const attestationSignature = signer.sign(attestationHash);
24
24
  const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
25
25
  const proposerSignature = signer.sign(proposalHash);
26
- return new BlockAttestation(header.globalVariables.blockNumber, payload, attestationSignature, proposerSignature);
26
+ return new BlockAttestation(payload, attestationSignature, proposerSignature);
27
27
  };
@@ -1 +1 @@
1
- {"version":3,"file":"attestation_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/attestation_validator/attestation_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEhG,qBAAa,oBAAqB,YAAW,YAAY,CAAC,gBAAgB,CAAC;IACzE,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,MAAM,CAAS;gBAEX,UAAU,EAAE,mBAAmB;IAKrC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;CAoDlF"}
1
+ {"version":3,"file":"attestation_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/attestation_validator/attestation_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEhG,qBAAa,oBAAqB,YAAW,YAAY,CAAC,gBAAgB,CAAC;IACzE,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,MAAM,CAAS;gBAEX,UAAU,EAAE,mBAAmB;IAKrC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;CAwDlF"}
@@ -34,6 +34,10 @@ export class AttestationValidator {
34
34
  this.logger.warn(`No proposer defined for slot ${slotNumberBigInt}`);
35
35
  return PeerErrorSeverity.HighToleranceError;
36
36
  }
37
+ if (!proposer) {
38
+ this.logger.warn(`Invalid proposer signature in attestation for slot ${slotNumberBigInt}`);
39
+ return PeerErrorSeverity.LowToleranceError;
40
+ }
37
41
  if (!proposer.equals(expectedProposer)) {
38
42
  this.logger.warn(`Proposer signature mismatch in attestation. ` + `Expected ${expectedProposer?.toString() ?? 'none'} but got ${proposer.toString()} for slot ${slotNumberBigInt}`);
39
43
  return PeerErrorSeverity.HighToleranceError;
@@ -3,7 +3,10 @@ import { type BlockProposal, type P2PValidator, PeerErrorSeverity } from '@aztec
3
3
  export declare class BlockProposalValidator implements P2PValidator<BlockProposal> {
4
4
  private epochCache;
5
5
  private logger;
6
- constructor(epochCache: EpochCacheInterface);
6
+ private txsPermitted;
7
+ constructor(epochCache: EpochCacheInterface, opts: {
8
+ txsPermitted: boolean;
9
+ });
7
10
  validate(block: BlockProposal): Promise<PeerErrorSeverity | undefined>;
8
11
  }
9
12
  //# sourceMappingURL=block_proposal_validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"block_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/block_proposal_validator/block_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7F,qBAAa,sBAAuB,YAAW,YAAY,CAAC,aAAa,CAAC;IACxE,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,MAAM,CAAS;gBAEX,UAAU,EAAE,mBAAmB;IAKrC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;CAwD7E"}
1
+ {"version":3,"file":"block_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/block_proposal_validator/block_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7F,qBAAa,sBAAuB,YAAW,YAAY,CAAC,aAAa,CAAC;IACxE,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAU;gBAElB,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE;IAMtE,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;CAgE7E"}
@@ -4,8 +4,10 @@ import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
4
4
  export class BlockProposalValidator {
5
5
  epochCache;
6
6
  logger;
7
- constructor(epochCache){
7
+ txsPermitted;
8
+ constructor(epochCache, opts){
8
9
  this.epochCache = epochCache;
10
+ this.txsPermitted = opts.txsPermitted;
9
11
  this.logger = createLogger('p2p:block_proposal_validator');
10
12
  }
11
13
  async validate(block) {
@@ -16,6 +18,11 @@ export class BlockProposalValidator {
16
18
  this.logger.debug(`Penalizing peer for block proposal with invalid signature`);
17
19
  return PeerErrorSeverity.MidToleranceError;
18
20
  }
21
+ // Check if transactions are permitted when the proposal contains transaction hashes
22
+ if (!this.txsPermitted && block.txHashes.length > 0) {
23
+ this.logger.debug(`Penalizing peer for block proposal with ${block.txHashes.length} transaction(s) when transactions are not permitted`);
24
+ return PeerErrorSeverity.MidToleranceError;
25
+ }
19
26
  const { currentProposer, nextProposer, currentSlot, nextSlot } = await this.epochCache.getProposerAttesterAddressInCurrentOrNextSlot();
20
27
  // Check that the attestation is for the current or next slot
21
28
  const slotNumberBigInt = block.payload.header.slotNumber.toBigInt();
@@ -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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"}
@@ -94,7 +94,9 @@ import { P2PInstrumentation } from './instrumentation.js';
94
94
  this.topicStrings[TopicType.block_proposal] = createTopicString(TopicType.block_proposal, this.protocolVersion);
95
95
  this.topicStrings[TopicType.block_attestation] = createTopicString(TopicType.block_attestation, this.protocolVersion);
96
96
  this.attestationValidator = new AttestationValidator(epochCache);
97
- this.blockProposalValidator = new BlockProposalValidator(epochCache);
97
+ this.blockProposalValidator = new BlockProposalValidator(epochCache, {
98
+ txsPermitted: !config.disableTransactions
99
+ });
98
100
  this.gossipSubEventHandler = this.handleGossipSubEvent.bind(this);
99
101
  this.blockReceivedCallback = async (block)=>{
100
102
  this.logger.debug(`Handler not yet registered: Block received callback not set. Received block for slot ${block.slotNumber.toNumber()} from peer.`, {
@@ -546,11 +548,10 @@ import { P2PInstrumentation } from './instrumentation.js';
546
548
  if (!result || !attestation) {
547
549
  return;
548
550
  }
549
- this.logger.debug(`Received attestation for block ${attestation.blockNumber} slot ${attestation.slotNumber.toNumber()} from external peer ${source.toString()}`, {
551
+ this.logger.debug(`Received attestation for slot ${attestation.slotNumber.toNumber()} from external peer ${source.toString()}`, {
550
552
  p2pMessageIdentifier: await attestation.p2pMessageIdentifier(),
551
553
  slot: attestation.slotNumber.toNumber(),
552
554
  archive: attestation.archive.toString(),
553
- block: attestation.blockNumber,
554
555
  source: source.toString()
555
556
  });
556
557
  await this.mempools.attestationPool.addAttestations([
@@ -580,11 +581,10 @@ import { P2PInstrumentation } from './instrumentation.js';
580
581
  async processValidBlockProposal(block, sender) {
581
582
  const slot = block.slotNumber.toBigInt();
582
583
  const previousSlot = slot - 1n;
583
- this.logger.verbose(`Received block ${block.blockNumber} for slot ${slot} from external peer ${sender.toString()}.`, {
584
+ this.logger.verbose(`Received block proposal for slot ${slot} from external peer ${sender.toString()}.`, {
584
585
  p2pMessageIdentifier: await block.p2pMessageIdentifier(),
585
586
  slot: block.slotNumber.toNumber(),
586
587
  archive: block.archive.toString(),
587
- block: block.blockNumber,
588
588
  source: sender.toString()
589
589
  });
590
590
  const attestationsForPreviousSlot = await this.mempools.attestationPool?.getAttestationsForSlot(previousSlot);
@@ -599,11 +599,10 @@ import { P2PInstrumentation } from './instrumentation.js';
599
599
  // The attestation can be undefined if no handler is registered / the validator deems the block invalid
600
600
  if (attestations?.length) {
601
601
  for (const attestation of attestations){
602
- this.logger.verbose(`Broadcasting attestation for block ${attestation.blockNumber} slot ${attestation.slotNumber.toNumber()}`, {
602
+ this.logger.verbose(`Broadcasting attestation for slot ${attestation.slotNumber.toNumber()}`, {
603
603
  p2pMessageIdentifier: await attestation.p2pMessageIdentifier(),
604
604
  slot: attestation.slotNumber.toNumber(),
605
- archive: attestation.archive.toString(),
606
- block: attestation.blockNumber
605
+ archive: attestation.archive.toString()
607
606
  });
608
607
  await this.broadcastAttestation(attestation);
609
608
  }
@@ -900,7 +899,6 @@ import { P2PInstrumentation } from './instrumentation.js';
900
899
  }
901
900
  _ts_decorate([
902
901
  trackSpan('Libp2pService.processValidBlockProposal', async (block)=>({
903
- [Attributes.BLOCK_NUMBER]: block.blockNumber,
904
902
  [Attributes.SLOT_NUMBER]: block.slotNumber.toNumber(),
905
903
  [Attributes.BLOCK_ARCHIVE]: block.archive.toString(),
906
904
  [Attributes.P2P_ID]: await block.p2pMessageIdentifier().then((i)=>i.toString())
@@ -908,7 +906,6 @@ _ts_decorate([
908
906
  ], LibP2PService.prototype, "processValidBlockProposal", null);
909
907
  _ts_decorate([
910
908
  trackSpan('Libp2pService.broadcastAttestation', async (attestation)=>({
911
- [Attributes.BLOCK_NUMBER]: attestation.blockNumber,
912
909
  [Attributes.SLOT_NUMBER]: attestation.payload.header.slotNumber.toNumber(),
913
910
  [Attributes.BLOCK_ARCHIVE]: attestation.archive.toString(),
914
911
  [Attributes.P2P_ID]: await attestation.p2pMessageIdentifier().then((i)=>i.toString())
@@ -931,7 +928,6 @@ _ts_decorate([
931
928
  ], LibP2PService.prototype, "validatePropagatedTx", null);
932
929
  _ts_decorate([
933
930
  trackSpan('Libp2pService.validateAttestation', async (_, attestation)=>({
934
- [Attributes.BLOCK_NUMBER]: attestation.blockNumber,
935
931
  [Attributes.SLOT_NUMBER]: attestation.payload.header.slotNumber.toNumber(),
936
932
  [Attributes.BLOCK_ARCHIVE]: attestation.archive.toString(),
937
933
  [Attributes.P2P_ID]: await attestation.p2pMessageIdentifier().then((i)=>i.toString())
@@ -1 +1 @@
1
- {"version":3,"file":"fast_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/fast_tx_collection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAsB,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IARb,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAa;gBAGjD,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EACnD,KAAK,EAAE,QAAQ,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAkD;IAGpD,IAAI;IAKV,yBAAyB;IAInB,cAAc,CACzB,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAC7B,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;cA0C/B,WAAW,CACzB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAiDzE;;;;;OAKG;YACW,oBAAoB;YAYpB,mBAAmB;YAiFnB,qBAAqB;IA6CnC;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE;IA0BzB;;;OAGG;IACI,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAS7D;;;OAGG;IACI,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAQ/D"}
1
+ {"version":3,"file":"fast_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/fast_tx_collection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAsB,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IARb,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAa;gBAGjD,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EACnD,KAAK,EAAE,QAAQ,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAkD;IAGpD,IAAI;IAKV,yBAAyB;IAInB,cAAc,CACzB,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAC7B,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;cA4C/B,WAAW,CACzB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAiDzE;;;;;OAKG;YACW,oBAAoB;YAYpB,mBAAmB;YAiFnB,qBAAqB;IA6CnC;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE;IA0BzB;;;OAGG;IACI,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAS7D;;;OAGG;IACI,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;CAQ/D"}
@@ -42,7 +42,12 @@ export class FastTxCollection {
42
42
  });
43
43
  return [];
44
44
  }
45
- const blockInfo = input.type === 'proposal' ? input.blockProposal.toBlockInfo() : input.block.toBlockInfo();
45
+ const blockInfo = input.type === 'proposal' ? {
46
+ ...input.blockProposal.toBlockInfo(),
47
+ blockNumber: input.blockNumber
48
+ } : {
49
+ ...input.block.toBlockInfo()
50
+ };
46
51
  // This promise is used to await for the collection to finish during the main collectFast method.
47
52
  // It gets resolved in `foundTxs` when all txs have been collected, or rejected if the request is aborted or hits the deadline.
48
53
  const promise = promiseWithResolvers();
@@ -26,6 +26,7 @@ export type FastCollectionRequestInput = {
26
26
  } | {
27
27
  type: 'proposal';
28
28
  blockProposal: BlockProposal;
29
+ blockNumber: number;
29
30
  };
30
31
  export type FastCollectionRequest = FastCollectionRequestInput & {
31
32
  missingTxHashes: Set<string>;
@@ -77,7 +78,7 @@ export declare class TxCollection {
77
78
  /** Starts collecting the given tx hashes for the given L2Block in the slow loop */
78
79
  startCollecting(block: L2Block, txHashes: TxHash[]): void;
79
80
  /** Collects the set of txs for the given block proposal as fast as possible */
80
- collectFastForProposal(blockProposal: BlockProposal, txHashes: TxHash[] | string[], opts: {
81
+ collectFastForProposal(blockProposal: BlockProposal, blockNumber: number, txHashes: TxHash[] | string[], opts: {
81
82
  deadline: Date;
82
83
  pinnedPeer?: PeerId;
83
84
  }): Promise<Tx[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/tx_collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/tx_collection.ts"],"names":[],"mappings":"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"}
@@ -81,10 +81,11 @@ import { TxCollectionSink } from './tx_collection_sink.js';
81
81
  /** Starts collecting the given tx hashes for the given L2Block in the slow loop */ startCollecting(block, txHashes) {
82
82
  return this.slowCollection.startCollecting(block, txHashes);
83
83
  }
84
- /** Collects the set of txs for the given block proposal as fast as possible */ collectFastForProposal(blockProposal, txHashes, opts) {
84
+ /** Collects the set of txs for the given block proposal as fast as possible */ collectFastForProposal(blockProposal, blockNumber, txHashes, opts) {
85
85
  return this.collectFastFor({
86
86
  type: 'proposal',
87
- blockProposal
87
+ blockProposal,
88
+ blockNumber
88
89
  }, txHashes, opts);
89
90
  }
90
91
  /** Collects the set of txs for the given mined block as fast as possible */ collectFastForBlock(block, txHashes, opts) {
@@ -26,7 +26,7 @@ export declare class TxProvider implements ITxProvider {
26
26
  missingTxs: TxHash[];
27
27
  }>;
28
28
  /** Gathers txs from the tx pool, proposal body, remote rpc nodes, and reqresp. */
29
- getTxsForBlockProposal(blockProposal: BlockProposal, opts: {
29
+ getTxsForBlockProposal(blockProposal: BlockProposal, blockNumber: number, opts: {
30
30
  pinnedPeer: PeerId | undefined;
31
31
  deadline: Date;
32
32
  }): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"tx_provider.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAA8B,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAI1C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IANb,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC;gBAG3C,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACxC,GAAG,GAAE,MAAyC,EACtD,MAAM,GAAE,eAAsC;IAKhD,sDAAsD;IACzC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAoB9F,kFAAkF;IAC3E,sBAAsB,CAC3B,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,GACvD,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAS/C,mEAAmE;IAC5D,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;YAS/F,2BAA2B;IAgCzC,OAAO,CAAC,QAAQ;YAKF,oBAAoB;IAsFlC,OAAO,CAAC,mBAAmB;YAOb,kBAAkB;CAOjC"}
1
+ {"version":3,"file":"tx_provider.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAA8B,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAI1C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,GAAG;IANb,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC;gBAG3C,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EACxC,GAAG,GAAE,MAAyC,EACtD,MAAM,GAAE,eAAsC;IAKhD,sDAAsD;IACzC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAoB9F,kFAAkF;IAC3E,sBAAsB,CAC3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,GACvD,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAS/C,mEAAmE;IAC5D,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;YAS/F,2BAA2B;IAgCzC,OAAO,CAAC,QAAQ;YAKF,oBAAoB;IAsFlC,OAAO,CAAC,mBAAmB;YAOb,kBAAkB;CAOjC"}
@@ -40,11 +40,15 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
40
40
  missingTxs
41
41
  };
42
42
  }
43
- /** Gathers txs from the tx pool, proposal body, remote rpc nodes, and reqresp. */ getTxsForBlockProposal(blockProposal, opts) {
43
+ /** Gathers txs from the tx pool, proposal body, remote rpc nodes, and reqresp. */ getTxsForBlockProposal(blockProposal, blockNumber, opts) {
44
44
  return this.getOrderedTxsFromAllSources({
45
45
  type: 'proposal',
46
- blockProposal
47
- }, blockProposal.toBlockInfo(), blockProposal.txHashes, {
46
+ blockProposal,
47
+ blockNumber
48
+ }, {
49
+ ...blockProposal.toBlockInfo(),
50
+ blockNumber
51
+ }, blockProposal.txHashes, {
48
52
  ...opts,
49
53
  pinnedPeer: opts.pinnedPeer
50
54
  });
@@ -205,7 +205,7 @@ export function createBootstrapNodeConfig(privateKey, port, chainConfig) {
205
205
  p2pPort: port,
206
206
  peerIdPrivateKey: new SecretValue(privateKey),
207
207
  dataDirectory: undefined,
208
- dataStoreMapSizeKB: 0,
208
+ dataStoreMapSizeKb: 0,
209
209
  bootstrapNodes: [],
210
210
  listenAddress: '127.0.0.1',
211
211
  queryForIp: false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/p2p",
3
- "version": "3.0.0-nightly.20251023",
3
+ "version": "3.0.0-nightly.20251025",
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": "3.0.0-nightly.20251023",
71
- "@aztec/epoch-cache": "3.0.0-nightly.20251023",
72
- "@aztec/ethereum": "3.0.0-nightly.20251023",
73
- "@aztec/foundation": "3.0.0-nightly.20251023",
74
- "@aztec/kv-store": "3.0.0-nightly.20251023",
75
- "@aztec/noir-contracts.js": "3.0.0-nightly.20251023",
76
- "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251023",
77
- "@aztec/protocol-contracts": "3.0.0-nightly.20251023",
78
- "@aztec/simulator": "3.0.0-nightly.20251023",
79
- "@aztec/stdlib": "3.0.0-nightly.20251023",
80
- "@aztec/telemetry-client": "3.0.0-nightly.20251023",
70
+ "@aztec/constants": "3.0.0-nightly.20251025",
71
+ "@aztec/epoch-cache": "3.0.0-nightly.20251025",
72
+ "@aztec/ethereum": "3.0.0-nightly.20251025",
73
+ "@aztec/foundation": "3.0.0-nightly.20251025",
74
+ "@aztec/kv-store": "3.0.0-nightly.20251025",
75
+ "@aztec/noir-contracts.js": "3.0.0-nightly.20251025",
76
+ "@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251025",
77
+ "@aztec/protocol-contracts": "3.0.0-nightly.20251025",
78
+ "@aztec/simulator": "3.0.0-nightly.20251025",
79
+ "@aztec/stdlib": "3.0.0-nightly.20251025",
80
+ "@aztec/telemetry-client": "3.0.0-nightly.20251025",
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": "3.0.0-nightly.20251023",
108
- "@aztec/world-state": "3.0.0-nightly.20251023",
107
+ "@aztec/archiver": "3.0.0-nightly.20251025",
108
+ "@aztec/world-state": "3.0.0-nightly.20251025",
109
109
  "@jest/globals": "^30.0.0",
110
110
  "@types/jest": "^30.0.0",
111
111
  "@types/node": "^22.15.17",
@@ -51,7 +51,7 @@ export async function createP2PClient<T extends P2PClientType>(
51
51
  ) {
52
52
  const config = await configureP2PClientAddresses({
53
53
  ...inputConfig,
54
- dataStoreMapSizeKB: inputConfig.p2pStoreMapSizeKb ?? inputConfig.dataStoreMapSizeKB,
54
+ dataStoreMapSizeKb: inputConfig.p2pStoreMapSizeKb ?? inputConfig.dataStoreMapSizeKb,
55
55
  });
56
56
 
57
57
  const logger = deps.logger ?? createLogger('p2p');
@@ -123,7 +123,13 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
123
123
  const constants = this.txCollection.getConstants();
124
124
  const nextSlotTimestampSeconds = Number(getTimestampForSlot(block.slotNumber.toBigInt() + 1n, constants));
125
125
  const deadline = new Date(nextSlotTimestampSeconds * 1000);
126
- await this.txProvider.getTxsForBlockProposal(block, { pinnedPeer: sender, deadline });
126
+ const parentBlock = await this.l2BlockSource.getBlockHeaderByArchive(block.payload.header.lastArchiveRoot);
127
+ if (!parentBlock) {
128
+ this.log.debug(`Cannot collect txs for proposal as parent block not found`);
129
+ return;
130
+ }
131
+ const blockNumber = parentBlock.getBlockNumber() + 1;
132
+ await this.txProvider.getTxsForBlockProposal(block, blockNumber, { pinnedPeer: sender, deadline });
127
133
  return undefined;
128
134
  });
129
135
 
@@ -365,7 +371,6 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
365
371
  }
366
372
 
367
373
  @trackSpan('p2pClient.broadcastProposal', async proposal => ({
368
- [Attributes.BLOCK_NUMBER]: proposal.blockNumber,
369
374
  [Attributes.SLOT_NUMBER]: proposal.slotNumber.toNumber(),
370
375
  [Attributes.BLOCK_ARCHIVE]: proposal.archive.toString(),
371
376
  [Attributes.P2P_ID]: (await proposal.p2pMessageIdentifier()).toString(),
package/src/config.ts CHANGED
@@ -127,7 +127,7 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig, TxCollectionCo
127
127
  /** A list of preferred peers. */
128
128
  preferredPeers: string[];
129
129
 
130
- /** The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKB. */
130
+ /** The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb. */
131
131
  p2pStoreMapSizeKb?: number;
132
132
 
133
133
  /** Which calls are allowed in the public setup phase of a tx. */
@@ -360,7 +360,7 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
360
360
  p2pStoreMapSizeKb: {
361
361
  env: 'P2P_STORE_MAP_SIZE_KB',
362
362
  parseEnv: (val: string | undefined) => (val ? +val : undefined),
363
- description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKB.',
363
+ description: 'The maximum possible size of the P2P DB in KB. Overwrites the general dataStoreMapSizeKb.',
364
364
  },
365
365
  txPublicSetupAllowList: {
366
366
  env: 'TX_PUBLIC_SETUP_ALLOWLIST',
@@ -452,7 +452,7 @@ export type BootnodeConfig = Pick<
452
452
  | 'queryForIp'
453
453
  > &
454
454
  Required<Pick<P2PConfig, 'p2pIp' | 'p2pPort'>> &
455
- Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKB'> &
455
+ Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKb'> &
456
456
  Pick<ChainConfig, 'l1ChainId'>;
457
457
 
458
458
  const bootnodeConfigKeys: (keyof BootnodeConfig)[] = [
@@ -463,7 +463,7 @@ const bootnodeConfigKeys: (keyof BootnodeConfig)[] = [
463
463
  'peerIdPrivateKey',
464
464
  'peerIdPrivateKeyPath',
465
465
  'dataDirectory',
466
- 'dataStoreMapSizeKB',
466
+ 'dataStoreMapSizeKb',
467
467
  'bootstrapNodes',
468
468
  'l1ChainId',
469
469
  'queryForIp',
@@ -41,7 +41,6 @@ export function describeAttestationPool(getAttestationPool: () => AttestationPoo
41
41
  };
42
42
 
43
43
  const mockBlockProposal = (signer: Secp256k1Signer, slotNumber: number, archive: Fr = Fr.random()): BlockProposal => {
44
- const blockNumber = 1;
45
44
  const header = makeL2BlockHeader(1, 2, slotNumber);
46
45
  const payload = new ConsensusPayload(header.toCheckpointHeader(), archive, header.state);
47
46
 
@@ -50,7 +49,7 @@ export function describeAttestationPool(getAttestationPool: () => AttestationPoo
50
49
 
51
50
  const txHashes = [TxHash.random(), TxHash.random()]; // Mock tx hashes
52
51
 
53
- return new BlockProposalClass(blockNumber, payload, signature, txHashes);
52
+ return new BlockProposalClass(payload, signature, txHashes);
54
53
  };
55
54
 
56
55
  // We compare buffers as the objects can have cached values attached to them which are not serialised
@@ -41,5 +41,5 @@ export const mockAttestation = (
41
41
  const proposalHash = getHashedSignaturePayloadEthSignedMessage(payload, SignatureDomainSeparator.blockProposal);
42
42
  const proposerSignature = signer.sign(proposalHash);
43
43
 
44
- return new BlockAttestation(header.globalVariables.blockNumber, payload, attestationSignature, proposerSignature);
44
+ return new BlockAttestation(payload, attestationSignature, proposerSignature);
45
45
  };
@@ -46,6 +46,10 @@ export class AttestationValidator implements P2PValidator<BlockAttestation> {
46
46
  this.logger.warn(`No proposer defined for slot ${slotNumberBigInt}`);
47
47
  return PeerErrorSeverity.HighToleranceError;
48
48
  }
49
+ if (!proposer) {
50
+ this.logger.warn(`Invalid proposer signature in attestation for slot ${slotNumberBigInt}`);
51
+ return PeerErrorSeverity.LowToleranceError;
52
+ }
49
53
  if (!proposer.equals(expectedProposer)) {
50
54
  this.logger.warn(
51
55
  `Proposer signature mismatch in attestation. ` +
@@ -6,9 +6,11 @@ import { type BlockProposal, type P2PValidator, PeerErrorSeverity } from '@aztec
6
6
  export class BlockProposalValidator implements P2PValidator<BlockProposal> {
7
7
  private epochCache: EpochCacheInterface;
8
8
  private logger: Logger;
9
+ private txsPermitted: boolean;
9
10
 
10
- constructor(epochCache: EpochCacheInterface) {
11
+ constructor(epochCache: EpochCacheInterface, opts: { txsPermitted: boolean }) {
11
12
  this.epochCache = epochCache;
13
+ this.txsPermitted = opts.txsPermitted;
12
14
  this.logger = createLogger('p2p:block_proposal_validator');
13
15
  }
14
16
 
@@ -21,6 +23,14 @@ export class BlockProposalValidator implements P2PValidator<BlockProposal> {
21
23
  return PeerErrorSeverity.MidToleranceError;
22
24
  }
23
25
 
26
+ // Check if transactions are permitted when the proposal contains transaction hashes
27
+ if (!this.txsPermitted && block.txHashes.length > 0) {
28
+ this.logger.debug(
29
+ `Penalizing peer for block proposal with ${block.txHashes.length} transaction(s) when transactions are not permitted`,
30
+ );
31
+ return PeerErrorSeverity.MidToleranceError;
32
+ }
33
+
24
34
  const { currentProposer, nextProposer, currentSlot, nextSlot } =
25
35
  await this.epochCache.getProposerAttesterAddressInCurrentOrNextSlot();
26
36
 
@@ -170,7 +170,7 @@ export class LibP2PService<T extends P2PClientType = P2PClientType.Full> extends
170
170
  );
171
171
 
172
172
  this.attestationValidator = new AttestationValidator(epochCache);
173
- this.blockProposalValidator = new BlockProposalValidator(epochCache);
173
+ this.blockProposalValidator = new BlockProposalValidator(epochCache, { txsPermitted: !config.disableTransactions });
174
174
 
175
175
  this.gossipSubEventHandler = this.handleGossipSubEvent.bind(this);
176
176
 
@@ -756,12 +756,11 @@ export class LibP2PService<T extends P2PClientType = P2PClientType.Full> extends
756
756
  return;
757
757
  }
758
758
  this.logger.debug(
759
- `Received attestation for block ${attestation.blockNumber} slot ${attestation.slotNumber.toNumber()} from external peer ${source.toString()}`,
759
+ `Received attestation for slot ${attestation.slotNumber.toNumber()} from external peer ${source.toString()}`,
760
760
  {
761
761
  p2pMessageIdentifier: await attestation.p2pMessageIdentifier(),
762
762
  slot: attestation.slotNumber.toNumber(),
763
763
  archive: attestation.archive.toString(),
764
- block: attestation.blockNumber,
765
764
  source: source.toString(),
766
765
  },
767
766
  );
@@ -794,7 +793,6 @@ export class LibP2PService<T extends P2PClientType = P2PClientType.Full> extends
794
793
 
795
794
  // REVIEW: callback pattern https://github.com/AztecProtocol/aztec-packages/issues/7963
796
795
  @trackSpan('Libp2pService.processValidBlockProposal', async block => ({
797
- [Attributes.BLOCK_NUMBER]: block.blockNumber,
798
796
  [Attributes.SLOT_NUMBER]: block.slotNumber.toNumber(),
799
797
  [Attributes.BLOCK_ARCHIVE]: block.archive.toString(),
800
798
  [Attributes.P2P_ID]: await block.p2pMessageIdentifier().then(i => i.toString()),
@@ -802,16 +800,12 @@ export class LibP2PService<T extends P2PClientType = P2PClientType.Full> extends
802
800
  private async processValidBlockProposal(block: BlockProposal, sender: PeerId) {
803
801
  const slot = block.slotNumber.toBigInt();
804
802
  const previousSlot = slot - 1n;
805
- this.logger.verbose(
806
- `Received block ${block.blockNumber} for slot ${slot} from external peer ${sender.toString()}.`,
807
- {
808
- p2pMessageIdentifier: await block.p2pMessageIdentifier(),
809
- slot: block.slotNumber.toNumber(),
810
- archive: block.archive.toString(),
811
- block: block.blockNumber,
812
- source: sender.toString(),
813
- },
814
- );
803
+ this.logger.verbose(`Received block proposal for slot ${slot} from external peer ${sender.toString()}.`, {
804
+ p2pMessageIdentifier: await block.p2pMessageIdentifier(),
805
+ slot: block.slotNumber.toNumber(),
806
+ archive: block.archive.toString(),
807
+ source: sender.toString(),
808
+ });
815
809
  const attestationsForPreviousSlot = await this.mempools.attestationPool?.getAttestationsForSlot(previousSlot);
816
810
  if (attestationsForPreviousSlot !== undefined) {
817
811
  this.logger.verbose(`Received ${attestationsForPreviousSlot.length} attestations for slot ${previousSlot}`);
@@ -826,15 +820,11 @@ export class LibP2PService<T extends P2PClientType = P2PClientType.Full> extends
826
820
  // The attestation can be undefined if no handler is registered / the validator deems the block invalid
827
821
  if (attestations?.length) {
828
822
  for (const attestation of attestations) {
829
- this.logger.verbose(
830
- `Broadcasting attestation for block ${attestation.blockNumber} slot ${attestation.slotNumber.toNumber()}`,
831
- {
832
- p2pMessageIdentifier: await attestation.p2pMessageIdentifier(),
833
- slot: attestation.slotNumber.toNumber(),
834
- archive: attestation.archive.toString(),
835
- block: attestation.blockNumber,
836
- },
837
- );
823
+ this.logger.verbose(`Broadcasting attestation for slot ${attestation.slotNumber.toNumber()}`, {
824
+ p2pMessageIdentifier: await attestation.p2pMessageIdentifier(),
825
+ slot: attestation.slotNumber.toNumber(),
826
+ archive: attestation.archive.toString(),
827
+ });
838
828
  await this.broadcastAttestation(attestation);
839
829
  }
840
830
  }
@@ -845,7 +835,6 @@ export class LibP2PService<T extends P2PClientType = P2PClientType.Full> extends
845
835
  * @param attestation - The attestation to broadcast.
846
836
  */
847
837
  @trackSpan('Libp2pService.broadcastAttestation', async attestation => ({
848
- [Attributes.BLOCK_NUMBER]: attestation.blockNumber,
849
838
  [Attributes.SLOT_NUMBER]: attestation.payload.header.slotNumber.toNumber(),
850
839
  [Attributes.BLOCK_ARCHIVE]: attestation.archive.toString(),
851
840
  [Attributes.P2P_ID]: await attestation.p2pMessageIdentifier().then(i => i.toString()),
@@ -1140,7 +1129,6 @@ export class LibP2PService<T extends P2PClientType = P2PClientType.Full> extends
1140
1129
  * @returns True if the attestation is valid, false otherwise.
1141
1130
  */
1142
1131
  @trackSpan('Libp2pService.validateAttestation', async (_, attestation) => ({
1143
- [Attributes.BLOCK_NUMBER]: attestation.blockNumber,
1144
1132
  [Attributes.SLOT_NUMBER]: attestation.payload.header.slotNumber.toNumber(),
1145
1133
  [Attributes.BLOCK_ARCHIVE]: attestation.archive.toString(),
1146
1134
  [Attributes.P2P_ID]: await attestation.p2pMessageIdentifier().then(i => i.toString()),
@@ -55,7 +55,9 @@ export class FastTxCollection {
55
55
  }
56
56
 
57
57
  const blockInfo: L2BlockInfo =
58
- input.type === 'proposal' ? input.blockProposal.toBlockInfo() : input.block.toBlockInfo();
58
+ input.type === 'proposal'
59
+ ? { ...input.blockProposal.toBlockInfo(), blockNumber: input.blockNumber }
60
+ : { ...input.block.toBlockInfo() };
59
61
 
60
62
  // This promise is used to await for the collection to finish during the main collectFast method.
61
63
  // It gets resolved in `foundTxs` when all txs have been collected, or rejected if the request is aborted or hits the deadline.
@@ -25,7 +25,7 @@ export type MissingTxInfo = { blockNumber: number; deadline: Date; readyForReqRe
25
25
 
26
26
  export type FastCollectionRequestInput =
27
27
  | { type: 'block'; block: L2Block }
28
- | { type: 'proposal'; blockProposal: BlockProposal };
28
+ | { type: 'proposal'; blockProposal: BlockProposal; blockNumber: number };
29
29
 
30
30
  export type FastCollectionRequest = FastCollectionRequestInput & {
31
31
  missingTxHashes: Set<string>;
@@ -152,10 +152,11 @@ export class TxCollection {
152
152
  /** Collects the set of txs for the given block proposal as fast as possible */
153
153
  public collectFastForProposal(
154
154
  blockProposal: BlockProposal,
155
+ blockNumber: number,
155
156
  txHashes: TxHash[] | string[],
156
157
  opts: { deadline: Date; pinnedPeer?: PeerId },
157
158
  ) {
158
- return this.collectFastFor({ type: 'proposal', blockProposal }, txHashes, opts);
159
+ return this.collectFastFor({ type: 'proposal', blockProposal, blockNumber }, txHashes, opts);
159
160
  }
160
161
 
161
162
  /** Collects the set of txs for the given mined block as fast as possible */
@@ -55,11 +55,12 @@ export class TxProvider implements ITxProvider {
55
55
  /** Gathers txs from the tx pool, proposal body, remote rpc nodes, and reqresp. */
56
56
  public getTxsForBlockProposal(
57
57
  blockProposal: BlockProposal,
58
+ blockNumber: number,
58
59
  opts: { pinnedPeer: PeerId | undefined; deadline: Date },
59
60
  ): Promise<{ txs: Tx[]; missingTxs: TxHash[] }> {
60
61
  return this.getOrderedTxsFromAllSources(
61
- { type: 'proposal', blockProposal },
62
- blockProposal.toBlockInfo(),
62
+ { type: 'proposal', blockProposal, blockNumber },
63
+ { ...blockProposal.toBlockInfo(), blockNumber },
63
64
  blockProposal.txHashes,
64
65
  { ...opts, pinnedPeer: opts.pinnedPeer },
65
66
  );
@@ -288,7 +288,7 @@ export function createBootstrapNodeConfig(privateKey: string, port: number, chai
288
288
  p2pPort: port,
289
289
  peerIdPrivateKey: new SecretValue(privateKey),
290
290
  dataDirectory: undefined,
291
- dataStoreMapSizeKB: 0,
291
+ dataStoreMapSizeKb: 0,
292
292
  bootstrapNodes: [],
293
293
  listenAddress: '127.0.0.1',
294
294
  queryForIp: false,