@aztec/p2p 0.0.1-commit.e0f15ab9b → 0.0.1-commit.e304674f1
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.d.ts +1 -1
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +5 -4
- package/dest/client/interface.d.ts +9 -2
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +3 -2
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +21 -8
- package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +14 -3
- package/dest/errors/p2p-service.error.d.ts +9 -0
- package/dest/errors/p2p-service.error.d.ts.map +1 -0
- package/dest/errors/p2p-service.error.js +10 -0
- package/dest/index.d.ts +1 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +0 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.js +3 -2
- package/dest/mem_pools/index.d.ts +1 -2
- package/dest/mem_pools/index.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.js +5 -1
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.js +11 -9
- package/dest/services/dummy_service.d.ts +5 -3
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +5 -1
- package/dest/services/libp2p/libp2p_service.d.ts +12 -17
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +25 -59
- package/dest/services/peer-manager/peer_manager.d.ts +6 -2
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +18 -6
- package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_scoring.js +32 -10
- package/dest/services/reqresp/interface.d.ts +1 -9
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/interface.js +0 -11
- package/dest/services/reqresp/metrics.d.ts +1 -1
- package/dest/services/reqresp/metrics.d.ts.map +1 -1
- package/dest/services/reqresp/metrics.js +0 -1
- package/dest/services/reqresp/protocols/index.d.ts +1 -2
- package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/index.js +0 -1
- package/dest/services/reqresp/protocols/tx.d.ts +1 -1
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/tx.js +1 -3
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +5 -4
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -8
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.js +0 -10
- package/dest/services/reqresp/reqresp.js +1 -1
- package/dest/services/service.d.ts +5 -2
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/tx_collection/file_store_tx_source.d.ts +5 -4
- package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
- package/dest/services/tx_collection/file_store_tx_source.js +39 -29
- package/dest/services/tx_collection/tx_source.d.ts +6 -5
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_source.js +9 -7
- package/dest/test-helpers/reqresp-nodes.d.ts +1 -1
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +0 -2
- package/dest/test-helpers/testbench-utils.d.ts +1 -1
- package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
- package/dest/test-helpers/testbench-utils.js +1 -0
- package/dest/testbench/p2p_client_testbench_worker.js +63 -12
- package/dest/testbench/worker_client_manager.d.ts +8 -1
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/testbench/worker_client_manager.js +49 -1
- package/package.json +14 -14
- package/src/client/factory.ts +7 -2
- package/src/client/interface.ts +9 -1
- package/src/client/p2p_client.ts +23 -8
- package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +15 -3
- package/src/errors/p2p-service.error.ts +11 -0
- package/src/index.ts +0 -1
- package/src/mem_pools/attestation_pool/attestation_pool.ts +4 -2
- package/src/mem_pools/index.ts +0 -3
- package/src/mem_pools/tx_pool_v2/tx_metadata.ts +7 -1
- package/src/msg_validators/proposal_validator/README.md +1 -1
- package/src/msg_validators/tx_validator/gas_validator.ts +25 -9
- package/src/services/dummy_service.ts +7 -2
- package/src/services/libp2p/libp2p_service.ts +30 -62
- package/src/services/peer-manager/peer_manager.ts +21 -6
- package/src/services/peer-manager/peer_scoring.ts +27 -5
- package/src/services/reqresp/interface.ts +0 -11
- package/src/services/reqresp/metrics.ts +0 -1
- package/src/services/reqresp/protocols/index.ts +0 -1
- package/src/services/reqresp/protocols/tx.ts +1 -3
- package/src/services/reqresp/rate-limiter/rate_limiter.ts +13 -9
- package/src/services/reqresp/rate-limiter/rate_limits.ts +0 -10
- package/src/services/reqresp/reqresp.ts +1 -1
- package/src/services/service.ts +6 -1
- package/src/services/tx_collection/file_store_tx_source.ts +43 -31
- package/src/services/tx_collection/tx_source.ts +8 -7
- package/src/test-helpers/reqresp-nodes.ts +0 -2
- package/src/test-helpers/testbench-utils.ts +1 -0
- package/src/testbench/p2p_client_testbench_worker.ts +67 -9
- package/src/testbench/worker_client_manager.ts +55 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -125
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -596
- package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +0 -32
- package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +0 -112
- package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +0 -157
- package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +0 -52
- package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts +0 -16
- package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.js +0 -123
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +0 -17
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +0 -84
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +0 -19
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +0 -78
- package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +0 -26
- package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +0 -84
- package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts +0 -25
- package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.js +0 -57
- package/dest/mem_pools/tx_pool/index.d.ts +0 -3
- package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/index.js +0 -2
- package/dest/mem_pools/tx_pool/priority.d.ts +0 -12
- package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/priority.js +0 -15
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -127
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -402
- package/dest/services/reqresp/protocols/block.d.ts +0 -9
- package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
- package/dest/services/reqresp/protocols/block.js +0 -32
- package/src/mem_pools/tx_pool/README.md +0 -270
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -746
- package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +0 -132
- package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +0 -208
- package/src/mem_pools/tx_pool/eviction/fee_payer_balance_eviction_rule.ts +0 -163
- package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +0 -104
- package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +0 -93
- package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +0 -106
- package/src/mem_pools/tx_pool/eviction/nullifier_conflict_pre_add_rule.ts +0 -75
- package/src/mem_pools/tx_pool/index.ts +0 -2
- package/src/mem_pools/tx_pool/priority.ts +0 -20
- package/src/mem_pools/tx_pool/tx_pool.ts +0 -141
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -321
- package/src/services/reqresp/protocols/block.ts +0 -37
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { partitionAsync } from '@aztec/foundation/collection';
|
|
1
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
3
|
import { Timer } from '@aztec/foundation/timer';
|
|
3
4
|
import { createReadOnlyFileStore } from '@aztec/stdlib/file-store';
|
|
@@ -7,15 +8,17 @@ import { Metrics, getTelemetryClient } from '@aztec/telemetry-client';
|
|
|
7
8
|
fileStore;
|
|
8
9
|
baseUrl;
|
|
9
10
|
basePath;
|
|
11
|
+
txValidator;
|
|
10
12
|
log;
|
|
11
13
|
downloadsSuccess;
|
|
12
14
|
downloadsFailed;
|
|
13
15
|
downloadDuration;
|
|
14
16
|
downloadSize;
|
|
15
|
-
constructor(fileStore, baseUrl, basePath, log, telemetry){
|
|
17
|
+
constructor(fileStore, baseUrl, basePath, txValidator, log, telemetry){
|
|
16
18
|
this.fileStore = fileStore;
|
|
17
19
|
this.baseUrl = baseUrl;
|
|
18
20
|
this.basePath = basePath;
|
|
21
|
+
this.txValidator = txValidator;
|
|
19
22
|
this.log = log;
|
|
20
23
|
const meter = telemetry.getMeter('file-store-tx-source');
|
|
21
24
|
this.downloadsSuccess = meter.createUpDownCounter(Metrics.TX_FILE_STORE_DOWNLOADS_SUCCESS);
|
|
@@ -30,14 +33,14 @@ import { Metrics, getTelemetryClient } from '@aztec/telemetry-client';
|
|
|
30
33
|
* @param log - Optional logger.
|
|
31
34
|
* @param telemetry - Optional telemetry client.
|
|
32
35
|
* @returns The FileStoreTxSource instance, or undefined if creation fails.
|
|
33
|
-
*/ static async create(url, basePath, log = createLogger('p2p:file_store_tx_source'), telemetry = getTelemetryClient()) {
|
|
36
|
+
*/ static async create(url, basePath, txValidator, log = createLogger('p2p:file_store_tx_source'), telemetry = getTelemetryClient()) {
|
|
34
37
|
try {
|
|
35
38
|
const fileStore = await createReadOnlyFileStore(url, log);
|
|
36
39
|
if (!fileStore) {
|
|
37
40
|
log.warn(`Failed to create file store for URL: ${url}`);
|
|
38
41
|
return undefined;
|
|
39
42
|
}
|
|
40
|
-
return new FileStoreTxSource(fileStore, url, basePath, log, telemetry);
|
|
43
|
+
return new FileStoreTxSource(fileStore, url, basePath, txValidator, log, telemetry);
|
|
41
44
|
} catch (err) {
|
|
42
45
|
log.warn(`Error creating file store for URL: ${url}`, {
|
|
43
46
|
error: err
|
|
@@ -49,31 +52,38 @@ import { Metrics, getTelemetryClient } from '@aztec/telemetry-client';
|
|
|
49
52
|
return `file-store:${this.baseUrl}`;
|
|
50
53
|
}
|
|
51
54
|
async getTxsByHash(txHashes) {
|
|
52
|
-
const
|
|
55
|
+
const results = await Promise.all(txHashes.map(async (txHash)=>{
|
|
56
|
+
const path = `${this.basePath}/txs/${txHash.toString()}.bin`;
|
|
57
|
+
const timer = new Timer();
|
|
58
|
+
try {
|
|
59
|
+
const buffer = await this.fileStore.read(path);
|
|
60
|
+
const tx = Tx.fromBuffer(buffer);
|
|
61
|
+
return {
|
|
62
|
+
tx,
|
|
63
|
+
downloadDuration: timer.ms(),
|
|
64
|
+
downloadSize: buffer.length
|
|
65
|
+
};
|
|
66
|
+
} catch {
|
|
67
|
+
this.downloadsFailed.add(1);
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
}));
|
|
71
|
+
const txs = results.filter((tx)=>tx !== undefined);
|
|
72
|
+
const [validTxs, invalidTxs] = await partitionAsync(txs, async ({ tx, downloadDuration, downloadSize })=>{
|
|
73
|
+
const valid = await this.txValidator.validateTx(tx);
|
|
74
|
+
if (valid.result === 'valid') {
|
|
75
|
+
this.downloadsSuccess.add(1);
|
|
76
|
+
this.downloadDuration.record(Math.ceil(downloadDuration));
|
|
77
|
+
this.downloadSize.record(downloadSize);
|
|
78
|
+
return true;
|
|
79
|
+
} else {
|
|
80
|
+
this.downloadsFailed.add(1);
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
53
84
|
return {
|
|
54
|
-
validTxs:
|
|
55
|
-
|
|
56
|
-
const timer = new Timer();
|
|
57
|
-
try {
|
|
58
|
-
const buffer = await this.fileStore.read(path);
|
|
59
|
-
const tx = Tx.fromBuffer(buffer);
|
|
60
|
-
if (await tx.validateTxHash() && txHash.equals(tx.txHash)) {
|
|
61
|
-
this.downloadsSuccess.add(1);
|
|
62
|
-
this.downloadDuration.record(Math.ceil(timer.ms()));
|
|
63
|
-
this.downloadSize.record(buffer.length);
|
|
64
|
-
return tx;
|
|
65
|
-
} else {
|
|
66
|
-
invalidTxHashes.push(tx.txHash.toString());
|
|
67
|
-
this.downloadsFailed.add(1);
|
|
68
|
-
return undefined;
|
|
69
|
-
}
|
|
70
|
-
} catch {
|
|
71
|
-
// Tx not found or error reading - return undefined
|
|
72
|
-
this.downloadsFailed.add(1);
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
}))).filter((tx)=>tx !== undefined),
|
|
76
|
-
invalidTxHashes: invalidTxHashes
|
|
85
|
+
validTxs: validTxs.map(({ tx })=>tx),
|
|
86
|
+
invalidTxHashes: invalidTxs.map(({ tx })=>tx.getTxHash().toString())
|
|
77
87
|
};
|
|
78
88
|
}
|
|
79
89
|
}
|
|
@@ -84,7 +94,7 @@ import { Metrics, getTelemetryClient } from '@aztec/telemetry-client';
|
|
|
84
94
|
* @param log - Optional logger.
|
|
85
95
|
* @param telemetry - Optional telemetry client.
|
|
86
96
|
* @returns Array of successfully created FileStoreTxSource instances.
|
|
87
|
-
*/ export async function createFileStoreTxSources(urls, basePath, log = createLogger('p2p:file_store_tx_source'), telemetry = getTelemetryClient()) {
|
|
88
|
-
const sources = await Promise.all(urls.map((url)=>FileStoreTxSource.create(url, basePath, log, telemetry)));
|
|
97
|
+
*/ export async function createFileStoreTxSources(urls, basePath, txValidator, log = createLogger('p2p:file_store_tx_source'), telemetry = getTelemetryClient()) {
|
|
98
|
+
const sources = await Promise.all(urls.map((url)=>FileStoreTxSource.create(url, basePath, txValidator, log, telemetry)));
|
|
89
99
|
return sources.filter((s)=>s !== undefined);
|
|
90
100
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
2
2
|
import { type AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
3
|
-
import type { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
3
|
+
import type { Tx, TxHash, TxValidator } from '@aztec/stdlib/tx';
|
|
4
4
|
import { type ComponentsVersions } from '@aztec/stdlib/versioning';
|
|
5
5
|
export type TxSourceCollectionResult = {
|
|
6
6
|
validTxs: Tx[];
|
|
@@ -12,12 +12,13 @@ export interface TxSource {
|
|
|
12
12
|
}
|
|
13
13
|
export declare class NodeRpcTxSource implements TxSource {
|
|
14
14
|
private readonly client;
|
|
15
|
+
private readonly txValidator;
|
|
15
16
|
private readonly info;
|
|
16
|
-
constructor(client: Pick<AztecNode, 'getTxsByHash'>, info: string);
|
|
17
|
-
static fromUrl(nodeUrl: string, versions: ComponentsVersions): NodeRpcTxSource;
|
|
17
|
+
constructor(client: Pick<AztecNode, 'getTxsByHash'>, txValidator: TxValidator, info: string);
|
|
18
|
+
static fromUrl(nodeUrl: string, txValidator: TxValidator, versions: ComponentsVersions): NodeRpcTxSource;
|
|
18
19
|
getInfo(): string;
|
|
19
20
|
getTxsByHash(txHashes: TxHash[]): Promise<TxSourceCollectionResult>;
|
|
20
21
|
private verifyTxs;
|
|
21
22
|
}
|
|
22
|
-
export declare function createNodeRpcTxSources(urls: string[], chainConfig: ChainConfig): NodeRpcTxSource[];
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
export declare function createNodeRpcTxSources(urls: string[], txValidator: TxValidator, chainConfig: ChainConfig): NodeRpcTxSource[];
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfc291cmNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi90eF9zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF5QixNQUFNLGlDQUFpQyxDQUFDO0FBQ3hGLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQW1DLE1BQU0sMEJBQTBCLENBQUM7QUFHcEcsTUFBTSxNQUFNLHdCQUF3QixHQUFHO0lBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxDQUFBO0NBQUUsQ0FBQztBQUVyRixNQUFNLFdBQVcsUUFBUTtJQUN2QixPQUFPLElBQUksTUFBTSxDQUFDO0lBQ2xCLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLHdCQUF3QixDQUFDLENBQUM7Q0FDckU7QUFFRCxxQkFBYSxlQUFnQixZQUFXLFFBQVE7SUFFNUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNO0lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUM1QixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUk7SUFIdkIsWUFDbUIsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLEVBQ3ZDLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLElBQUksRUFBRSxNQUFNLEVBQzNCO0lBRUosT0FBYyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsR0FBRyxlQUFlLENBRzlHO0lBRU0sT0FBTyxXQUViO0lBRVksWUFBWSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FFL0U7WUFFYSxTQUFTO0NBZ0J4QjtBQUVELHdCQUFnQixzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxxQkFHeEcifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_source.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/tx_source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"tx_source.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/tx_source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,iCAAiC,CAAC;AACxF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,KAAK,kBAAkB,EAAmC,MAAM,0BAA0B,CAAC;AAGpG,MAAM,MAAM,wBAAwB,GAAG;IAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAErF,MAAM,WAAW,QAAQ;IACvB,OAAO,IAAI,MAAM,CAAC;IAClB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACrE;AAED,qBAAa,eAAgB,YAAW,QAAQ;IAE5C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHvB,YACmB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EACvC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EAC3B;IAEJ,OAAc,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,kBAAkB,GAAG,eAAe,CAG9G;IAEM,OAAO,WAEb;IAEY,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAE/E;YAEa,SAAS;CAgBxB;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,qBAGxG"}
|
|
@@ -5,18 +5,20 @@ import { getComponentsVersionsFromConfig } from '@aztec/stdlib/versioning';
|
|
|
5
5
|
import { makeTracedFetch } from '@aztec/telemetry-client';
|
|
6
6
|
export class NodeRpcTxSource {
|
|
7
7
|
client;
|
|
8
|
+
txValidator;
|
|
8
9
|
info;
|
|
9
|
-
constructor(client, info){
|
|
10
|
+
constructor(client, txValidator, info){
|
|
10
11
|
this.client = client;
|
|
12
|
+
this.txValidator = txValidator;
|
|
11
13
|
this.info = info;
|
|
12
14
|
}
|
|
13
|
-
static fromUrl(nodeUrl, versions) {
|
|
15
|
+
static fromUrl(nodeUrl, txValidator, versions) {
|
|
14
16
|
const client = createAztecNodeClient(nodeUrl, versions, makeTracedFetch([
|
|
15
17
|
1,
|
|
16
18
|
2,
|
|
17
19
|
3
|
|
18
20
|
], false));
|
|
19
|
-
return new NodeRpcTxSource(client, nodeUrl);
|
|
21
|
+
return new NodeRpcTxSource(client, txValidator, nodeUrl);
|
|
20
22
|
}
|
|
21
23
|
getInfo() {
|
|
22
24
|
return this.info;
|
|
@@ -29,8 +31,8 @@ export class NodeRpcTxSource {
|
|
|
29
31
|
const validTxs = [];
|
|
30
32
|
const invalidTxHashes = [];
|
|
31
33
|
await Promise.all(txs.map(async (tx)=>{
|
|
32
|
-
const
|
|
33
|
-
if (
|
|
34
|
+
const validation = await this.txValidator.validateTx(tx);
|
|
35
|
+
if (validation.result === 'valid') {
|
|
34
36
|
validTxs.push(tx);
|
|
35
37
|
} else {
|
|
36
38
|
invalidTxHashes.push(tx.getTxHash().toString());
|
|
@@ -42,7 +44,7 @@ export class NodeRpcTxSource {
|
|
|
42
44
|
};
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
|
-
export function createNodeRpcTxSources(urls, chainConfig) {
|
|
47
|
+
export function createNodeRpcTxSources(urls, txValidator, chainConfig) {
|
|
46
48
|
const versions = getComponentsVersionsFromConfig(chainConfig, protocolContractsHash, getVKTreeRoot());
|
|
47
|
-
return urls.map((url)=>NodeRpcTxSource.fromUrl(url, versions));
|
|
49
|
+
return urls.map((url)=>NodeRpcTxSource.fromUrl(url, txValidator, versions));
|
|
48
50
|
}
|
|
@@ -66,4 +66,4 @@ export declare function createBootstrapNodeFromPrivateKey(privateKey: string, po
|
|
|
66
66
|
*/
|
|
67
67
|
export declare function getBootstrapNodeEnr(privateKey: string, port: number): Promise<SignableENR>;
|
|
68
68
|
export declare function createBootstrapNode(port: number, telemetry?: TelemetryClient, chainConfig?: ChainConfig): Promise<BootstrapNode>;
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxcmVzcC1ub2Rlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtaGVscGVycy9yZXFyZXNwLW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3JELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUNWLDZCQUE2QixFQUM3QiwwQkFBMEIsRUFDMUIsc0JBQXNCLEVBQ3ZCLE1BQU0saUNBQWlDLENBQUM7QUFFekMsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBT25GLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQW9DLE1BQU0sUUFBUSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQWEsTUFBTSxjQUFjLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV2RSxPQUFPLEVBRUwsS0FBSywwQkFBMEIsRUFDL0IsS0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAAoB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EACV,6BAA6B,EAC7B,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAOnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,KAAK,MAAM,EAAoC,MAAM,QAAQ,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AAEvE,OAAO,EAEL,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EAElC,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,KAAK,UAAU,EAA2E,MAAM,YAAY,CAAC;AAGtH;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,GAAE,MAAM,EAAO,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,eAAe,GAAE,OAAe,EAChC,KAAK,GAAE,OAAc,GACpB,OAAO,CAAC,UAAU,CAAC,CAqCrB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,aAAa,sBAAe,EAC5B,QAAQ,EAAE,aAAa,GAAG,kBAAkB,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,eAAe,EAC1B,IAAI,GAAE,MAAU,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,GAAE,WAA8B,0BAuD5C;AAED;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAGF,eAAO,MAAM,0BAA0B,EAAE,
|
|
1
|
+
{"version":3,"file":"reqresp-nodes.d.ts","sourceRoot":"","sources":["../../src/test-helpers/reqresp-nodes.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,7 +113,6 @@ export const MOCK_SUB_PROTOCOL_HANDLERS = {
|
|
|
113
113
|
[ReqRespSubProtocol.STATUS]: (_msg)=>Promise.resolve(Buffer.from('status')),
|
|
114
114
|
[ReqRespSubProtocol.TX]: (_msg)=>Promise.resolve(Buffer.from('tx')),
|
|
115
115
|
[ReqRespSubProtocol.GOODBYE]: (_msg)=>Promise.resolve(Buffer.from('goodbye')),
|
|
116
|
-
[ReqRespSubProtocol.BLOCK]: (_msg)=>Promise.resolve(Buffer.from('block')),
|
|
117
116
|
[ReqRespSubProtocol.AUTH]: (_msg)=>Promise.resolve(Buffer.from('auth')),
|
|
118
117
|
[ReqRespSubProtocol.BLOCK_TXS]: (_msg)=>Promise.resolve(Buffer.from('block_txs'))
|
|
119
118
|
};
|
|
@@ -124,7 +123,6 @@ export const MOCK_SUB_PROTOCOL_VALIDATORS = {
|
|
|
124
123
|
[ReqRespSubProtocol.STATUS]: noopValidator,
|
|
125
124
|
[ReqRespSubProtocol.TX]: noopValidator,
|
|
126
125
|
[ReqRespSubProtocol.GOODBYE]: noopValidator,
|
|
127
|
-
[ReqRespSubProtocol.BLOCK]: noopValidator,
|
|
128
126
|
[ReqRespSubProtocol.AUTH]: noopValidator,
|
|
129
127
|
[ReqRespSubProtocol.BLOCK_TXS]: noopValidator
|
|
130
128
|
};
|
|
@@ -160,4 +160,4 @@ export declare function filterTxsByDistribution(allTxs: Tx[], peerIndex: number,
|
|
|
160
160
|
* Ensures we return before the outer timeout while maintaining a minimum.
|
|
161
161
|
*/
|
|
162
162
|
export declare function calculateInternalTimeout(timeoutMs: number): number;
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGJlbmNoLXV0aWxzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL3Rlc3RiZW5jaC11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFDVixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdkIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsS0FBSyxXQUFXLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhFLE9BQU8sWUFBWSxNQUFNLFFBQVEsQ0FBQztBQUVsQyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN0RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BHLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBR3RFOzs7O0dBSUc7QUFDSCxxQkFBYSxjQUFlLFNBQVEsWUFBYSxZQUFXLFFBQVE7SUFDbEUsT0FBTyxDQUFDLFNBQVMsQ0FBeUI7SUFDMUMsT0FBTyxDQUFDLE1BQU0sQ0FBdUI7SUFFckMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUU5QjtJQUVELE1BQU0sQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testbench-utils.d.ts","sourceRoot":"","sources":["../../src/test-helpers/testbench-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"testbench-utils.d.ts","sourceRoot":"","sources":["../../src/test-helpers/testbench-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -249,6 +249,7 @@ import { RateLimitStatus } from '../services/reqresp/rate-limiter/rate_limiter.j
|
|
|
249
249
|
nowMs: 0n
|
|
250
250
|
}),
|
|
251
251
|
isProposerPipeliningEnabled: ()=>false,
|
|
252
|
+
pipeliningOffset: ()=>0,
|
|
252
253
|
computeProposerIndex: ()=>0n,
|
|
253
254
|
getCurrentAndNextSlot: ()=>({
|
|
254
255
|
currentSlot: SlotNumber.ZERO,
|
|
@@ -110,6 +110,21 @@ function installUnlimitedRateLimits(client) {
|
|
|
110
110
|
rateLimiter.getRateLimits = ()=>UNLIMITED_RATE_LIMIT_QUOTA;
|
|
111
111
|
rateLimiter.allow = ()=>RateLimitStatus.Allowed;
|
|
112
112
|
}
|
|
113
|
+
/** Resets peer scores to prevent cross-case contamination in benchmarks. */ function resetPeerScores(client) {
|
|
114
|
+
const peerManager = client.p2pService.peerManager;
|
|
115
|
+
const peerScoring = peerManager?.peerScoring;
|
|
116
|
+
if (peerScoring?.resetAllScores) {
|
|
117
|
+
peerScoring.resetAllScores();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** Returns the number of connected peers for connectivity checks. */ function getConnectedPeerCount(client) {
|
|
121
|
+
const p2pService = client.p2pService;
|
|
122
|
+
const connectionSampler = p2pService?.reqresp?.getConnectionSampler?.();
|
|
123
|
+
if (connectionSampler?.getPeerListSortedByConnectionCountAsc) {
|
|
124
|
+
return connectionSampler.getPeerListSortedByConnectionCountAsc().length;
|
|
125
|
+
}
|
|
126
|
+
return 0;
|
|
127
|
+
}
|
|
113
128
|
async function runAggregatorBenchmark(client, blockProposal, collectorType, timeoutMs, pinnedPeerId, pinnedPeerIndex, logger, expectedPeerCount) {
|
|
114
129
|
let timer = new Timer();
|
|
115
130
|
try {
|
|
@@ -188,6 +203,35 @@ let workerAttestationPool = null;
|
|
|
188
203
|
let workerConfig = null;
|
|
189
204
|
let workerLogger = null;
|
|
190
205
|
let kvStore = null;
|
|
206
|
+
async function stopWorker() {
|
|
207
|
+
try {
|
|
208
|
+
if (workerClient) {
|
|
209
|
+
await workerClient.stop();
|
|
210
|
+
workerClient = null;
|
|
211
|
+
}
|
|
212
|
+
} catch (e) {
|
|
213
|
+
workerLogger?.error('Error stopping worker client', e);
|
|
214
|
+
}
|
|
215
|
+
try {
|
|
216
|
+
if (kvStore?.close) {
|
|
217
|
+
await kvStore.close();
|
|
218
|
+
kvStore = null;
|
|
219
|
+
}
|
|
220
|
+
} catch (e) {
|
|
221
|
+
workerLogger?.error('Error closing kv store', e);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
function gracefulExit(code = 0) {
|
|
225
|
+
try {
|
|
226
|
+
if (process.connected) {
|
|
227
|
+
process.disconnect();
|
|
228
|
+
}
|
|
229
|
+
} catch {
|
|
230
|
+
// IPC channel already closed
|
|
231
|
+
}
|
|
232
|
+
// Safety fallback if lingering handles prevent the event loop from draining
|
|
233
|
+
setTimeout(()=>process.exit(code), 5000).unref();
|
|
234
|
+
}
|
|
191
235
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
192
236
|
process.on('message', async (msg)=>{
|
|
193
237
|
const { type, config: rawConfig, clientIndex } = msg;
|
|
@@ -238,13 +282,8 @@ process.on('message', async (msg)=>{
|
|
|
238
282
|
const cmd = msg;
|
|
239
283
|
switch(cmd.type){
|
|
240
284
|
case 'STOP':
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
244
|
-
if (kvStore?.close) {
|
|
245
|
-
await kvStore.close();
|
|
246
|
-
}
|
|
247
|
-
process.exit(0);
|
|
285
|
+
await stopWorker();
|
|
286
|
+
gracefulExit(0);
|
|
248
287
|
break;
|
|
249
288
|
case 'SEND_TX':
|
|
250
289
|
if (workerClient) {
|
|
@@ -254,6 +293,12 @@ process.on('message', async (msg)=>{
|
|
|
254
293
|
});
|
|
255
294
|
}
|
|
256
295
|
break;
|
|
296
|
+
case 'GET_PEER_COUNT':
|
|
297
|
+
process.send({
|
|
298
|
+
type: 'PEER_COUNT',
|
|
299
|
+
count: workerClient ? getConnectedPeerCount(workerClient) : 0
|
|
300
|
+
});
|
|
301
|
+
break;
|
|
257
302
|
case 'BENCH_REQRESP':
|
|
258
303
|
{
|
|
259
304
|
const benchCmd = cmd;
|
|
@@ -270,6 +315,7 @@ process.on('message', async (msg)=>{
|
|
|
270
315
|
// Reset state before each benchmark run to avoid cross-run contamination
|
|
271
316
|
workerTxPool.resetState();
|
|
272
317
|
workerAttestationPool.resetState();
|
|
318
|
+
resetPeerScores(workerClient);
|
|
273
319
|
installUnlimitedRateLimits(workerClient);
|
|
274
320
|
const allTxs = await generateDeterministicTxs(benchCmd.txCount, benchCmd.seed, workerConfig);
|
|
275
321
|
const txHashes = allTxs.map((tx)=>tx.getTxHash());
|
|
@@ -293,10 +339,15 @@ process.on('message', async (msg)=>{
|
|
|
293
339
|
}
|
|
294
340
|
}
|
|
295
341
|
} catch (err) {
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
342
|
+
try {
|
|
343
|
+
process.send({
|
|
344
|
+
type: 'ERROR',
|
|
345
|
+
error: err.message
|
|
346
|
+
});
|
|
347
|
+
} catch {
|
|
348
|
+
// IPC channel may be closed
|
|
349
|
+
}
|
|
350
|
+
await stopWorker();
|
|
351
|
+
gracefulExit(1);
|
|
301
352
|
}
|
|
302
353
|
});
|
|
@@ -78,6 +78,13 @@ declare class WorkerClientManager {
|
|
|
78
78
|
* Cleans up all worker processes with timeout and force kill if needed
|
|
79
79
|
*/
|
|
80
80
|
cleanup(): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Checks that the aggregator (client 0) has sufficient peer connections before running a benchmark.
|
|
83
|
+
* This prevents benchmark cases from starting with degraded connectivity after a previous case
|
|
84
|
+
* caused connection failures.
|
|
85
|
+
*/
|
|
86
|
+
waitForConnectivity(minPeers: number, timeoutMs?: number): Promise<number>;
|
|
87
|
+
private getPeerCount;
|
|
81
88
|
/**
|
|
82
89
|
* Run a req/resp benchmark across all worker clients.
|
|
83
90
|
*
|
|
@@ -95,4 +102,4 @@ declare class WorkerClientManager {
|
|
|
95
102
|
export { WorkerClientManager, testChainConfig };
|
|
96
103
|
export type { DistributionPattern, CollectorType } from './p2p_client_testbench_worker.js';
|
|
97
104
|
export { COLLECTOR_DISPLAY_NAMES } from './p2p_client_testbench_worker.js';
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX2NsaWVudF9tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3dvcmtlcl9jbGllbnRfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFLeEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUtuRSxPQUFPLEtBQUssRUFHVixhQUFhLEVBQ2IsbUJBQW1CLEVBQ3BCLE1BQU0sa0NBQWtDLENBQUM7QUFRMUMsUUFBQSxNQUFNLGVBQWUsRUFBRSxXQU10QixDQUFDO0FBRUYsTUFBTSxXQUFXLHNCQUFzQjtJQUNyQyxPQUFPLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFlBQVksRUFBRSxtQkFBbUIsQ0FBQztJQUNsQyxhQUFhLEVBQUUsYUFBYSxDQUFDO0lBQzdCLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3pCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDZjtBQUVELE1BQU0sV0FBVyxzQkFBc0I7SUFDckMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixZQUFZLEVBQUUsbUJBQW1CLENBQUM7SUFDbEMsU0FBUyxFQUFFLGFBQWEsQ0FBQztJQUN6QixVQUFVLEVBQUUsTUFBTSxDQUFDO0lBQ25CLFlBQVksRUFBRSxNQUFNLENBQUM7SUFDckIsT0FBTyxFQUFFLE9BQU8sQ0FBQztJQUNqQixLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDaEI7QUFFRCxjQUFNLG1CQUFtQjtJQUNoQixTQUFTLEVBQUUsWUFBWSxFQUFFLENBQU07SUFDL0IsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDakMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFNO0lBQ3hCLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBTTtJQUNyQixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDOUIsT0FBTyxDQUFDLFNBQVMsQ0FBcUI7SUFDdEMsT0FBTyxDQUFDLE1BQU0sQ0FBUztJQUN2QixPQUFPLENBQUMsdUJBQXVCLENBQWdCO0lBRS9DLFlBQVksTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUd4RDtJQUVELE9BQU8sU0FJTjtJQUVEOzs7Ozs7O09BT0c7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0lBb0IxQjs7O09BR0c7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0lBa0cxQjs7Ozs7OztPQU9HO0lBQ0csaUJBQWlCLENBQ3JCLGVBQWUsRUFBRSxNQUFNLEVBQ3ZCLE9BQU8sR0FBRTtRQUNQLGFBQWEsQ0FBQyxFQUFFLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakMsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3ZCLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUNuQixZQUFZLENBQUMsRUFBRSxNQUFNLENBQUM7S0FDbEIscUJBK0RQO0lBRUQsNEJBQTRCLFNBRTNCO0lBRUQsa0NBQWtDLFdBRWpDO0lBRUQ7Ozs7O09BS0c7SUFDRyxVQUFVLENBQUMsV0FBVyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkE4Q3BEO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsZ0JBQWdCO0lBcUN4Qjs7T0FFRztJQUNHLE9BQU8sa0JBZ0NaO0lBRUQ7Ozs7T0FJRztJQUNHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxHQUFFLE1BQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBa0J2RjtJQUVELE9BQU8sQ0FBQyxZQUFZO0lBOEJwQjs7Ozs7Ozs7O09BU0c7SUFDRyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBdUV6RjtJQUVELE9BQU8sQ0FBQyxpQkFBaUI7SUFrQ3pCLE9BQU8sQ0FBQyxrQkFBa0I7Q0FpQzNCO0FBRUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxDQUFDO0FBQ2hELFlBQVksRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker_client_manager.d.ts","sourceRoot":"","sources":["../../src/testbench/worker_client_manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAKnE,OAAO,KAAK,EAGV,aAAa,EACb,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAQ1C,QAAA,MAAM,eAAe,EAAE,WAMtB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,cAAM,mBAAmB;IAChB,SAAS,EAAE,YAAY,EAAE,CAAM;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,KAAK,EAAE,MAAM,EAAE,CAAM;IACrB,OAAO,EAAE,MAAM,EAAE,CAAM;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,YAAY,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAGxD;IAED,OAAO,
|
|
1
|
+
{"version":3,"file":"worker_client_manager.d.ts","sourceRoot":"","sources":["../../src/testbench/worker_client_manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,eAAe,CAAC;AAKxD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAKnE,OAAO,KAAK,EAGV,aAAa,EACb,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAQ1C,QAAA,MAAM,eAAe,EAAE,WAMtB,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,cAAM,mBAAmB;IAChB,SAAS,EAAE,YAAY,EAAE,CAAM;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,KAAK,EAAE,MAAM,EAAE,CAAM;IACrB,OAAO,EAAE,MAAM,EAAE,CAAM;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,YAAY,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAGxD;IAED,OAAO,SAIN;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAkG1B;;;;;;;OAOG;IACG,iBAAiB,CACrB,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE;QACP,aAAa,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KAClB,qBA+DP;IAED,4BAA4B,SAE3B;IAED,kCAAkC,WAEjC;IAED;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBA8CpD;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAqCxB;;OAEG;IACG,OAAO,kBAgCZ;IAED;;;;OAIG;IACG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,MAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBvF;IAED,OAAO,CAAC,YAAY;IA8BpB;;;;;;;;;OASG;IACG,mBAAmB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuEzF;IAED,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,kBAAkB;CAiC3B;AAED,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC"}
|
|
@@ -37,7 +37,6 @@ class WorkerClientManager {
|
|
|
37
37
|
destroy() {
|
|
38
38
|
this.cleanup().catch((error)=>{
|
|
39
39
|
this.logger.error('Failed to cleanup worker client manager', error);
|
|
40
|
-
process.exit(1);
|
|
41
40
|
});
|
|
42
41
|
}
|
|
43
42
|
/**
|
|
@@ -318,6 +317,55 @@ class WorkerClientManager {
|
|
|
318
317
|
this.logger.info('All worker processes cleaned up');
|
|
319
318
|
}
|
|
320
319
|
/**
|
|
320
|
+
* Checks that the aggregator (client 0) has sufficient peer connections before running a benchmark.
|
|
321
|
+
* This prevents benchmark cases from starting with degraded connectivity after a previous case
|
|
322
|
+
* caused connection failures.
|
|
323
|
+
*/ async waitForConnectivity(minPeers, timeoutMs = 15_000) {
|
|
324
|
+
const waitInterval = 1000;
|
|
325
|
+
let waited = 0;
|
|
326
|
+
while(waited < timeoutMs){
|
|
327
|
+
const count = await this.getPeerCount(0, 5000);
|
|
328
|
+
if (count >= minPeers) {
|
|
329
|
+
this.logger.info(`Connectivity check passed: ${count}/${minPeers} peers connected`);
|
|
330
|
+
return count;
|
|
331
|
+
}
|
|
332
|
+
this.logger.debug(`Waiting for connectivity: ${count}/${minPeers} (waited ${waited}ms)`);
|
|
333
|
+
await sleep(waitInterval);
|
|
334
|
+
waited += waitInterval;
|
|
335
|
+
}
|
|
336
|
+
const finalCount = await this.getPeerCount(0, 5000);
|
|
337
|
+
this.logger.warn(`Connectivity check: only ${finalCount}/${minPeers} peers after ${timeoutMs}ms`);
|
|
338
|
+
return finalCount;
|
|
339
|
+
}
|
|
340
|
+
getPeerCount(clientIndex, timeoutMs) {
|
|
341
|
+
return new Promise((resolve)=>{
|
|
342
|
+
let resolved = false;
|
|
343
|
+
const handler = (msg)=>{
|
|
344
|
+
if (resolved) {
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
if (msg.type === 'PEER_COUNT') {
|
|
348
|
+
resolved = true;
|
|
349
|
+
clearTimeout(timeout);
|
|
350
|
+
this.processes[clientIndex].off('message', handler);
|
|
351
|
+
resolve(msg.count);
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
const timeout = setTimeout(()=>{
|
|
355
|
+
if (resolved) {
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
resolved = true;
|
|
359
|
+
this.processes[clientIndex].off('message', handler);
|
|
360
|
+
resolve(0);
|
|
361
|
+
}, timeoutMs);
|
|
362
|
+
this.processes[clientIndex].on('message', handler);
|
|
363
|
+
this.processes[clientIndex].send({
|
|
364
|
+
type: 'GET_PEER_COUNT'
|
|
365
|
+
});
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
/**
|
|
321
369
|
* Run a req/resp benchmark across all worker clients.
|
|
322
370
|
*
|
|
323
371
|
* This sends a BENCH_REQRESP command to all workers:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/p2p",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.e304674f1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -67,17 +67,17 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/constants": "0.0.1-commit.
|
|
71
|
-
"@aztec/epoch-cache": "0.0.1-commit.
|
|
72
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
73
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
74
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
75
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
76
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
77
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
78
|
-
"@aztec/simulator": "0.0.1-commit.
|
|
79
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
80
|
-
"@aztec/telemetry-client": "0.0.1-commit.
|
|
70
|
+
"@aztec/constants": "0.0.1-commit.e304674f1",
|
|
71
|
+
"@aztec/epoch-cache": "0.0.1-commit.e304674f1",
|
|
72
|
+
"@aztec/ethereum": "0.0.1-commit.e304674f1",
|
|
73
|
+
"@aztec/foundation": "0.0.1-commit.e304674f1",
|
|
74
|
+
"@aztec/kv-store": "0.0.1-commit.e304674f1",
|
|
75
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.e304674f1",
|
|
76
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.e304674f1",
|
|
77
|
+
"@aztec/protocol-contracts": "0.0.1-commit.e304674f1",
|
|
78
|
+
"@aztec/simulator": "0.0.1-commit.e304674f1",
|
|
79
|
+
"@aztec/stdlib": "0.0.1-commit.e304674f1",
|
|
80
|
+
"@aztec/telemetry-client": "0.0.1-commit.e304674f1",
|
|
81
81
|
"@chainsafe/libp2p-gossipsub": "13.0.0",
|
|
82
82
|
"@chainsafe/libp2p-noise": "^15.0.0",
|
|
83
83
|
"@chainsafe/libp2p-yamux": "^6.0.2",
|
|
@@ -104,8 +104,8 @@
|
|
|
104
104
|
"xxhash-wasm": "^1.1.0"
|
|
105
105
|
},
|
|
106
106
|
"devDependencies": {
|
|
107
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
108
|
-
"@aztec/world-state": "0.0.1-commit.
|
|
107
|
+
"@aztec/archiver": "0.0.1-commit.e304674f1",
|
|
108
|
+
"@aztec/world-state": "0.0.1-commit.e304674f1",
|
|
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
|
@@ -19,6 +19,7 @@ import type { TxPoolV2 } from '../mem_pools/tx_pool_v2/interfaces.js';
|
|
|
19
19
|
import { AztecKVTxPoolV2 } from '../mem_pools/tx_pool_v2/tx_pool_v2.js';
|
|
20
20
|
import {
|
|
21
21
|
createCheckAllowedSetupCalls,
|
|
22
|
+
createTxValidatorForReqResponseReceivedTxs,
|
|
22
23
|
createTxValidatorForTransactionsEnteringPendingTxPool,
|
|
23
24
|
getDefaultAllowedSetupFunctions,
|
|
24
25
|
} from '../msg_validators/index.js';
|
|
@@ -148,9 +149,12 @@ export async function createP2PClient(
|
|
|
148
149
|
telemetry,
|
|
149
150
|
);
|
|
150
151
|
|
|
152
|
+
const txValidatorForTxCollection = createTxValidatorForReqResponseReceivedTxs(proofVerifier, config);
|
|
151
153
|
const nodeSources = [
|
|
152
|
-
...createNodeRpcTxSources(config.txCollectionNodeRpcUrls, config),
|
|
153
|
-
...(deps.rpcTxProviders ?? []).map(
|
|
154
|
+
...createNodeRpcTxSources(config.txCollectionNodeRpcUrls, txValidatorForTxCollection, config),
|
|
155
|
+
...(deps.rpcTxProviders ?? []).map(
|
|
156
|
+
(node, i) => new NodeRpcTxSource(node, txValidatorForTxCollection, `node-rpc-provider-${i}`),
|
|
157
|
+
),
|
|
154
158
|
...(deps.txCollectionNodeSources ?? []),
|
|
155
159
|
];
|
|
156
160
|
if (nodeSources.length > 0) {
|
|
@@ -162,6 +166,7 @@ export async function createP2PClient(
|
|
|
162
166
|
const fileStoreSources = await createFileStoreTxSources(
|
|
163
167
|
config.txCollectionFileStoreUrls,
|
|
164
168
|
txFileStoreBasePath,
|
|
169
|
+
txValidatorForTxCollection,
|
|
165
170
|
logger.createChild('file-store-tx-source'),
|
|
166
171
|
telemetry,
|
|
167
172
|
);
|
package/src/client/interface.ts
CHANGED
|
@@ -82,7 +82,15 @@ export type P2P = P2PClient & {
|
|
|
82
82
|
*
|
|
83
83
|
* @param handler - A function taking a received checkpoint proposal and producing attestations
|
|
84
84
|
*/
|
|
85
|
-
|
|
85
|
+
registerValidatorCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Registers a callback that runs for ALL nodes (not just validators) when a checkpoint proposal is received.
|
|
89
|
+
* Used to set the proposed checkpoint number on the archiver so the sequencer can build on top of it.
|
|
90
|
+
*
|
|
91
|
+
* @param handler - A function taking a received checkpoint proposal
|
|
92
|
+
*/
|
|
93
|
+
registerAllNodesCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
|
|
86
94
|
|
|
87
95
|
/**
|
|
88
96
|
* Registers a callback invoked when a duplicate proposal is detected (equivocation).
|