@aztec/p2p 3.0.0-nightly.20251024 → 3.0.0-nightly.20251026
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.
- package/dest/client/factory.js +1 -1
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +7 -2
- package/dest/config.d.ts +4 -4
- package/dest/config.js +2 -2
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +1 -2
- package/dest/mem_pools/attestation_pool/mocks.js +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +4 -0
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +4 -10
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/fast_tx_collection.js +6 -1
- package/dest/services/tx_collection/tx_collection.d.ts +2 -1
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection.js +3 -2
- package/dest/services/tx_provider.d.ts +1 -1
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider.js +7 -3
- package/dest/test-helpers/reqresp-nodes.js +1 -1
- package/package.json +14 -14
- package/src/client/factory.ts +1 -1
- package/src/client/p2p_client.ts +7 -2
- package/src/config.ts +4 -4
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +1 -2
- package/src/mem_pools/attestation_pool/mocks.ts +1 -1
- package/src/msg_validators/attestation_validator/attestation_validator.ts +4 -0
- package/src/services/libp2p/libp2p_service.ts +12 -24
- package/src/services/tx_collection/fast_tx_collection.ts +3 -1
- package/src/services/tx_collection/tx_collection.ts +3 -2
- package/src/services/tx_provider.ts +3 -2
- package/src/test-helpers/reqresp-nodes.ts +1 -1
package/dest/client/factory.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
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
|
|
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' | '
|
|
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
|
-
|
|
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" | "
|
|
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
|
|
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
|
-
'
|
|
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,
|
|
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(
|
|
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(
|
|
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;
|
|
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;
|
|
@@ -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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"}
|
|
@@ -548,11 +548,10 @@ import { P2PInstrumentation } from './instrumentation.js';
|
|
|
548
548
|
if (!result || !attestation) {
|
|
549
549
|
return;
|
|
550
550
|
}
|
|
551
|
-
this.logger.debug(`Received attestation for
|
|
551
|
+
this.logger.debug(`Received attestation for slot ${attestation.slotNumber.toNumber()} from external peer ${source.toString()}`, {
|
|
552
552
|
p2pMessageIdentifier: await attestation.p2pMessageIdentifier(),
|
|
553
553
|
slot: attestation.slotNumber.toNumber(),
|
|
554
554
|
archive: attestation.archive.toString(),
|
|
555
|
-
block: attestation.blockNumber,
|
|
556
555
|
source: source.toString()
|
|
557
556
|
});
|
|
558
557
|
await this.mempools.attestationPool.addAttestations([
|
|
@@ -582,11 +581,10 @@ import { P2PInstrumentation } from './instrumentation.js';
|
|
|
582
581
|
async processValidBlockProposal(block, sender) {
|
|
583
582
|
const slot = block.slotNumber.toBigInt();
|
|
584
583
|
const previousSlot = slot - 1n;
|
|
585
|
-
this.logger.verbose(`Received block
|
|
584
|
+
this.logger.verbose(`Received block proposal for slot ${slot} from external peer ${sender.toString()}.`, {
|
|
586
585
|
p2pMessageIdentifier: await block.p2pMessageIdentifier(),
|
|
587
586
|
slot: block.slotNumber.toNumber(),
|
|
588
587
|
archive: block.archive.toString(),
|
|
589
|
-
block: block.blockNumber,
|
|
590
588
|
source: sender.toString()
|
|
591
589
|
});
|
|
592
590
|
const attestationsForPreviousSlot = await this.mempools.attestationPool?.getAttestationsForSlot(previousSlot);
|
|
@@ -601,11 +599,10 @@ import { P2PInstrumentation } from './instrumentation.js';
|
|
|
601
599
|
// The attestation can be undefined if no handler is registered / the validator deems the block invalid
|
|
602
600
|
if (attestations?.length) {
|
|
603
601
|
for (const attestation of attestations){
|
|
604
|
-
this.logger.verbose(`Broadcasting attestation for
|
|
602
|
+
this.logger.verbose(`Broadcasting attestation for slot ${attestation.slotNumber.toNumber()}`, {
|
|
605
603
|
p2pMessageIdentifier: await attestation.p2pMessageIdentifier(),
|
|
606
604
|
slot: attestation.slotNumber.toNumber(),
|
|
607
|
-
archive: attestation.archive.toString()
|
|
608
|
-
block: attestation.blockNumber
|
|
605
|
+
archive: attestation.archive.toString()
|
|
609
606
|
});
|
|
610
607
|
await this.broadcastAttestation(attestation);
|
|
611
608
|
}
|
|
@@ -902,7 +899,6 @@ import { P2PInstrumentation } from './instrumentation.js';
|
|
|
902
899
|
}
|
|
903
900
|
_ts_decorate([
|
|
904
901
|
trackSpan('Libp2pService.processValidBlockProposal', async (block)=>({
|
|
905
|
-
[Attributes.BLOCK_NUMBER]: block.blockNumber,
|
|
906
902
|
[Attributes.SLOT_NUMBER]: block.slotNumber.toNumber(),
|
|
907
903
|
[Attributes.BLOCK_ARCHIVE]: block.archive.toString(),
|
|
908
904
|
[Attributes.P2P_ID]: await block.p2pMessageIdentifier().then((i)=>i.toString())
|
|
@@ -910,7 +906,6 @@ _ts_decorate([
|
|
|
910
906
|
], LibP2PService.prototype, "processValidBlockProposal", null);
|
|
911
907
|
_ts_decorate([
|
|
912
908
|
trackSpan('Libp2pService.broadcastAttestation', async (attestation)=>({
|
|
913
|
-
[Attributes.BLOCK_NUMBER]: attestation.blockNumber,
|
|
914
909
|
[Attributes.SLOT_NUMBER]: attestation.payload.header.slotNumber.toNumber(),
|
|
915
910
|
[Attributes.BLOCK_ARCHIVE]: attestation.archive.toString(),
|
|
916
911
|
[Attributes.P2P_ID]: await attestation.p2pMessageIdentifier().then((i)=>i.toString())
|
|
@@ -933,7 +928,6 @@ _ts_decorate([
|
|
|
933
928
|
], LibP2PService.prototype, "validatePropagatedTx", null);
|
|
934
929
|
_ts_decorate([
|
|
935
930
|
trackSpan('Libp2pService.validateAttestation', async (_, attestation)=>({
|
|
936
|
-
[Attributes.BLOCK_NUMBER]: attestation.blockNumber,
|
|
937
931
|
[Attributes.SLOT_NUMBER]: attestation.payload.header.slotNumber.toNumber(),
|
|
938
932
|
[Attributes.BLOCK_ARCHIVE]: attestation.archive.toString(),
|
|
939
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;
|
|
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' ?
|
|
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":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,KAAK,oBAAoB,EAAkB,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,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,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;AAErG,MAAM,MAAM,aAAa,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9F,MAAM,MAAM,0BAA0B,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,aAAa,EAAE,aAAa,CAAA;CAAE,CAAC;
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
3
|
+
"version": "3.0.0-nightly.20251026",
|
|
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.
|
|
71
|
-
"@aztec/epoch-cache": "3.0.0-nightly.
|
|
72
|
-
"@aztec/ethereum": "3.0.0-nightly.
|
|
73
|
-
"@aztec/foundation": "3.0.0-nightly.
|
|
74
|
-
"@aztec/kv-store": "3.0.0-nightly.
|
|
75
|
-
"@aztec/noir-contracts.js": "3.0.0-nightly.
|
|
76
|
-
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.
|
|
77
|
-
"@aztec/protocol-contracts": "3.0.0-nightly.
|
|
78
|
-
"@aztec/simulator": "3.0.0-nightly.
|
|
79
|
-
"@aztec/stdlib": "3.0.0-nightly.
|
|
80
|
-
"@aztec/telemetry-client": "3.0.0-nightly.
|
|
70
|
+
"@aztec/constants": "3.0.0-nightly.20251026",
|
|
71
|
+
"@aztec/epoch-cache": "3.0.0-nightly.20251026",
|
|
72
|
+
"@aztec/ethereum": "3.0.0-nightly.20251026",
|
|
73
|
+
"@aztec/foundation": "3.0.0-nightly.20251026",
|
|
74
|
+
"@aztec/kv-store": "3.0.0-nightly.20251026",
|
|
75
|
+
"@aztec/noir-contracts.js": "3.0.0-nightly.20251026",
|
|
76
|
+
"@aztec/noir-protocol-circuits-types": "3.0.0-nightly.20251026",
|
|
77
|
+
"@aztec/protocol-contracts": "3.0.0-nightly.20251026",
|
|
78
|
+
"@aztec/simulator": "3.0.0-nightly.20251026",
|
|
79
|
+
"@aztec/stdlib": "3.0.0-nightly.20251026",
|
|
80
|
+
"@aztec/telemetry-client": "3.0.0-nightly.20251026",
|
|
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.
|
|
108
|
-
"@aztec/world-state": "3.0.0-nightly.
|
|
107
|
+
"@aztec/archiver": "3.0.0-nightly.20251026",
|
|
108
|
+
"@aztec/world-state": "3.0.0-nightly.20251026",
|
|
109
109
|
"@jest/globals": "^30.0.0",
|
|
110
110
|
"@types/jest": "^30.0.0",
|
|
111
111
|
"@types/node": "^22.15.17",
|
package/src/client/factory.ts
CHANGED
|
@@ -51,7 +51,7 @@ export async function createP2PClient<T extends P2PClientType>(
|
|
|
51
51
|
) {
|
|
52
52
|
const config = await configureP2PClientAddresses({
|
|
53
53
|
...inputConfig,
|
|
54
|
-
|
|
54
|
+
dataStoreMapSizeKb: inputConfig.p2pStoreMapSizeKb ?? inputConfig.dataStoreMapSizeKb,
|
|
55
55
|
});
|
|
56
56
|
|
|
57
57
|
const logger = deps.logger ?? createLogger('p2p');
|
package/src/client/p2p_client.ts
CHANGED
|
@@ -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.
|
|
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
|
|
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
|
|
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' | '
|
|
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
|
-
'
|
|
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(
|
|
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(
|
|
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. ` +
|
|
@@ -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
|
|
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
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
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
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
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'
|
|
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
|
-
|
|
291
|
+
dataStoreMapSizeKb: 0,
|
|
292
292
|
bootstrapNodes: [],
|
|
293
293
|
listenAddress: '127.0.0.1',
|
|
294
294
|
queryForIp: false,
|