@aztec/p2p 0.69.1 → 0.71.0
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.map +1 -1
- package/dest/client/factory.js +6 -5
- package/dest/client/p2p_client.d.ts +16 -2
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +17 -9
- package/dest/config.d.ts +3 -0
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +6 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +3 -2
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +3 -2
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts +1 -1
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts.map +1 -1
- package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.js +3 -2
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +20 -5
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +134 -55
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +2 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +11 -3
- package/dest/mem_pools/tx_pool/priority.d.ts +8 -0
- package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/priority.js +12 -0
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +7 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +19 -3
- package/dest/mocks/index.d.ts.map +1 -1
- package/dest/mocks/index.js +4 -4
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +11 -0
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/block_header_validator.js +21 -0
- package/dest/msg_validators/tx_validator/index.d.ts +1 -0
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.js +2 -1
- package/dest/services/discv5/discV5_service.d.ts +1 -1
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.js +3 -3
- package/package.json +7 -7
- package/src/client/factory.ts +5 -13
- package/src/client/p2p_client.ts +27 -9
- package/src/config.ts +9 -0
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +2 -2
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +2 -2
- package/src/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.ts +2 -2
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +161 -53
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +11 -3
- package/src/mem_pools/tx_pool/priority.ts +13 -0
- package/src/mem_pools/tx_pool/tx_pool.ts +8 -1
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +27 -5
- package/src/mocks/index.ts +3 -4
- package/src/msg_validators/tx_validator/block_header_validator.ts +25 -0
- package/src/msg_validators/tx_validator/index.ts +1 -0
- package/src/services/discv5/discV5_service.ts +2 -2
package/dest/mocks/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { openTmpStore } from '@aztec/kv-store/lmdb';
|
|
2
|
-
import {
|
|
2
|
+
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
3
3
|
import { gossipsub } from '@chainsafe/libp2p-gossipsub';
|
|
4
4
|
import { noise } from '@chainsafe/libp2p-noise';
|
|
5
5
|
import { yamux } from '@chainsafe/libp2p-yamux';
|
|
@@ -161,11 +161,11 @@ export function createBootstrapNodeConfig(privateKey, port) {
|
|
|
161
161
|
dataStoreMapSizeKB: 0,
|
|
162
162
|
};
|
|
163
163
|
}
|
|
164
|
-
export function createBootstrapNodeFromPrivateKey(privateKey, port, telemetry =
|
|
164
|
+
export function createBootstrapNodeFromPrivateKey(privateKey, port, telemetry = getTelemetryClient()) {
|
|
165
165
|
const config = createBootstrapNodeConfig(privateKey, port);
|
|
166
166
|
return startBootstrapNode(config, telemetry);
|
|
167
167
|
}
|
|
168
|
-
export async function createBootstrapNode(port, telemetry =
|
|
168
|
+
export async function createBootstrapNode(port, telemetry = getTelemetryClient()) {
|
|
169
169
|
const peerId = await createSecp256k1PeerId();
|
|
170
170
|
const config = createBootstrapNodeConfig(Buffer.from(peerId.privateKey).toString('hex'), port);
|
|
171
171
|
return startBootstrapNode(config, telemetry);
|
|
@@ -177,4 +177,4 @@ async function startBootstrapNode(config, telemetry) {
|
|
|
177
177
|
await bootstrapNode.start(config);
|
|
178
178
|
return bootstrapNode;
|
|
179
179
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBd0Isa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxPQUFPLE1BQU0sVUFBVSxDQUFDO0FBQy9CLE9BQU8sRUFBbUMsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUNMLGFBQWEsRUFHYixlQUFlLEVBQ2YsZUFBZSxFQUNmLGFBQWEsR0FDZCxNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUd6RDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLEtB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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type AnyTx, type TxValidationResult, type TxValidator } from '@aztec/circuit-types';
|
|
2
|
+
import { type Fr } from '@aztec/circuits.js';
|
|
3
|
+
export interface ArchiveSource {
|
|
4
|
+
getArchiveIndices: (archives: Fr[]) => Promise<(bigint | undefined)[]>;
|
|
5
|
+
}
|
|
6
|
+
export declare class BlockHeaderTxValidator<T extends AnyTx> implements TxValidator<T> {
|
|
7
|
+
#private;
|
|
8
|
+
constructor(archiveSource: ArchiveSource);
|
|
9
|
+
validateTx(tx: T): Promise<TxValidationResult>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=block_header_validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block_header_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/block_header_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAM,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACjG,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;CACxE;AAED,qBAAa,sBAAsB,CAAC,CAAC,SAAS,KAAK,CAAE,YAAW,WAAW,CAAC,CAAC,CAAC;;gBAIhE,aAAa,EAAE,aAAa;IAIlC,UAAU,CAAC,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAQrD"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
var _BlockHeaderTxValidator_log, _BlockHeaderTxValidator_archiveSource;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { Tx } from '@aztec/circuit-types';
|
|
4
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
+
export class BlockHeaderTxValidator {
|
|
6
|
+
constructor(archiveSource) {
|
|
7
|
+
_BlockHeaderTxValidator_log.set(this, createLogger('p2p:tx_validator:tx_block_header'));
|
|
8
|
+
_BlockHeaderTxValidator_archiveSource.set(this, void 0);
|
|
9
|
+
__classPrivateFieldSet(this, _BlockHeaderTxValidator_archiveSource, archiveSource, "f");
|
|
10
|
+
}
|
|
11
|
+
async validateTx(tx) {
|
|
12
|
+
const [index] = await __classPrivateFieldGet(this, _BlockHeaderTxValidator_archiveSource, "f").getArchiveIndices([tx.data.constants.historicalHeader.hash()]);
|
|
13
|
+
if (index === undefined) {
|
|
14
|
+
__classPrivateFieldGet(this, _BlockHeaderTxValidator_log, "f").warn(`Rejecting tx ${Tx.getHash(tx)} for referencing an unknown block header`);
|
|
15
|
+
return { result: 'invalid', reason: ['Block header not found'] };
|
|
16
|
+
}
|
|
17
|
+
return { result: 'valid' };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
_BlockHeaderTxValidator_log = new WeakMap(), _BlockHeaderTxValidator_archiveSource = new WeakMap();
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfaGVhZGVyX3ZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tc2dfdmFsaWRhdG9ycy90eF92YWxpZGF0b3IvYmxvY2tfaGVhZGVyX3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQTZDLE1BQU0sc0JBQXNCLENBQUM7QUFFakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTXJELE1BQU0sT0FBTyxzQkFBc0I7SUFJakMsWUFBWSxhQUE0QjtRQUh4QyxzQ0FBTyxZQUFZLENBQUMsa0NBQWtDLENBQUMsRUFBQztRQUN4RCx3REFBOEI7UUFHNUIsdUJBQUEsSUFBSSx5Q0FBa0IsYUFBYSxNQUFBLENBQUM7SUFDdEMsQ0FBQztJQUVELEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBSztRQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSx1QkFBQSxJQUFJLDZDQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekcsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsdUJBQUEsSUFBSSxtQ0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsMENBQTBDLENBQUMsQ0FBQztZQUN6RixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7UUFDbkUsQ0FBQztRQUNELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
|
|
@@ -3,4 +3,5 @@ export * from './data_validator.js';
|
|
|
3
3
|
export * from './double_spend_validator.js';
|
|
4
4
|
export * from './metadata_validator.js';
|
|
5
5
|
export * from './tx_proof_validator.js';
|
|
6
|
-
|
|
6
|
+
export * from './block_header_validator.js';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbXNnX3ZhbGlkYXRvcnMvdHhfdmFsaWRhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDIn0=
|
|
@@ -21,7 +21,7 @@ export declare class DiscV5Service extends EventEmitter implements PeerDiscovery
|
|
|
21
21
|
private bootstrapNodes;
|
|
22
22
|
private bootstrapNodePeerIds;
|
|
23
23
|
private startTime;
|
|
24
|
-
constructor(peerId: PeerId, config: P2PConfig, telemetry
|
|
24
|
+
constructor(peerId: PeerId, config: P2PConfig, telemetry?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger);
|
|
25
25
|
start(): Promise<void>;
|
|
26
26
|
runRandomNodesQuery(): Promise<void>;
|
|
27
27
|
getAllPeers(): ENR[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discV5_service.d.ts","sourceRoot":"","sources":["../../../src/services/discv5/discV5_service.ts"],"names":[],"mappings":";AAEA,OAAO,EAAsB,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"discV5_service.d.ts","sourceRoot":"","sources":["../../../src/services/discv5/discV5_service.ts"],"names":[],"mappings":";AAEA,OAAO,EAAsB,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAGvG,OAAO,EAAE,GAAG,EAAe,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,KAAK,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAK9E;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAa,YAAW,oBAAoB;IAkB3E,OAAO,CAAC,MAAM;IAGd,OAAO,CAAC,MAAM;IApBhB,0BAA0B;IAC1B,OAAO,CAAC,MAAM,CAA8B;IAE5C,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAc;IAEzB,sBAAsB;IACtB,OAAO,CAAC,kBAAkB,CAAY;IAEtC,OAAO,CAAC,YAAY,CAA8B;IAElD,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,oBAAoB,CAAgB;IAE5C,OAAO,CAAC,SAAS,CAAK;gBAGZ,MAAM,EAAE,MAAM,EACtB,MAAM,EAAE,SAAS,EACjB,SAAS,GAAE,eAAsC,EACzC,MAAM,yCAAqC;IA2CxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BtB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB1C,WAAW,IAAI,GAAG,EAAE;IAIpB,MAAM,IAAI,GAAG;IAIb,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,kBAAkB;IAI/B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIlC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YASpB,UAAU;IAOxB,OAAO,CAAC,YAAY;CAWrB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { sleep } from '@aztec/foundation/sleep';
|
|
3
|
-
import { OtelMetricsAdapter } from '@aztec/telemetry-client';
|
|
3
|
+
import { OtelMetricsAdapter, getTelemetryClient } from '@aztec/telemetry-client';
|
|
4
4
|
import { Discv5 } from '@chainsafe/discv5';
|
|
5
5
|
import { ENR, SignableENR } from '@chainsafe/enr';
|
|
6
6
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
@@ -13,7 +13,7 @@ const delayBeforeStart = 2000; // 2sec
|
|
|
13
13
|
* Peer discovery service using Discv5.
|
|
14
14
|
*/
|
|
15
15
|
export class DiscV5Service extends EventEmitter {
|
|
16
|
-
constructor(peerId, config, telemetry, logger = createLogger('p2p:discv5_service')) {
|
|
16
|
+
constructor(peerId, config, telemetry = getTelemetryClient(), logger = createLogger('p2p:discv5_service')) {
|
|
17
17
|
super();
|
|
18
18
|
this.peerId = peerId;
|
|
19
19
|
this.logger = logger;
|
|
@@ -136,4 +136,4 @@ export class DiscV5Service extends EventEmitter {
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY1Y1X3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvZGlzY3Y1L2Rpc2NWNV9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUF3QixrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZHLE9BQU8sRUFBRSxNQUFNLEVBQTJCLE1BQU0sbUJBQW1CLENBQUM7QUFDcEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRCxPQUFPLEVBQWtCLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BFLE9BQU8sWUFBWSxNQUFNLFFBQVEsQ0FBQztBQUdsQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUE2QixrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9FLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTztBQUV0Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxhQUFjLFNBQVEsWUFBWTtJQWlCN0MsWUFDVSxNQUFjLEVBQ3RCLE1BQWlCLEVBQ2pCLFlBQTZCLGtCQUFrQixFQUFFLEVBQ3pDLFNBQVMsWUFBWSxDQUFDLG9CQUFvQixDQUFDO1FBRW5ELEtBQUssRUFBRSxDQUFDO1FBTEEsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUdkLFdBQU0sR0FBTixNQUFNLENBQXFDO1FBWDdDLGlCQUFZLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDO1FBRzFD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/p2p",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.71.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -63,12 +63,12 @@
|
|
|
63
63
|
]
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@aztec/circuit-types": "0.
|
|
67
|
-
"@aztec/circuits.js": "0.
|
|
68
|
-
"@aztec/epoch-cache": "0.
|
|
69
|
-
"@aztec/foundation": "0.
|
|
70
|
-
"@aztec/kv-store": "0.
|
|
71
|
-
"@aztec/telemetry-client": "0.
|
|
66
|
+
"@aztec/circuit-types": "0.71.0",
|
|
67
|
+
"@aztec/circuits.js": "0.71.0",
|
|
68
|
+
"@aztec/epoch-cache": "0.71.0",
|
|
69
|
+
"@aztec/foundation": "0.71.0",
|
|
70
|
+
"@aztec/kv-store": "0.71.0",
|
|
71
|
+
"@aztec/telemetry-client": "0.71.0",
|
|
72
72
|
"@chainsafe/discv5": "9.0.0",
|
|
73
73
|
"@chainsafe/enr": "3.0.0",
|
|
74
74
|
"@chainsafe/libp2p-gossipsub": "13.0.0",
|
package/src/client/factory.ts
CHANGED
|
@@ -9,8 +9,7 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
9
9
|
import { type AztecKVStore } from '@aztec/kv-store';
|
|
10
10
|
import { type DataStoreConfig } from '@aztec/kv-store/config';
|
|
11
11
|
import { createStore } from '@aztec/kv-store/lmdb';
|
|
12
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
13
|
-
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
12
|
+
import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
|
|
14
13
|
|
|
15
14
|
import { P2PClient } from '../client/p2p_client.js';
|
|
16
15
|
import { type P2PConfig } from '../config.js';
|
|
@@ -39,15 +38,16 @@ export const createP2PClient = async <T extends P2PClientType>(
|
|
|
39
38
|
proofVerifier: ClientProtocolCircuitVerifier,
|
|
40
39
|
worldStateSynchronizer: WorldStateSynchronizer,
|
|
41
40
|
epochCache: EpochCache,
|
|
42
|
-
telemetry: TelemetryClient =
|
|
41
|
+
telemetry: TelemetryClient = getTelemetryClient(),
|
|
43
42
|
deps: P2PClientDeps<T> = {},
|
|
44
43
|
) => {
|
|
45
44
|
let config = { ..._config };
|
|
46
45
|
const logger = createLogger('p2p');
|
|
47
46
|
const store = deps.store ?? (await createStore('p2p', config, createLogger('p2p:lmdb')));
|
|
47
|
+
const archive = await createStore('p2p-archive', config, createLogger('p2p-archive:lmdb'));
|
|
48
48
|
|
|
49
49
|
const mempools: MemPools<T> = {
|
|
50
|
-
txPool: deps.txPool ?? new AztecKVTxPool(store, telemetry),
|
|
50
|
+
txPool: deps.txPool ?? new AztecKVTxPool(store, archive, telemetry, config.archivedTxLimit),
|
|
51
51
|
epochProofQuotePool: deps.epochProofQuotePool ?? new MemoryEpochProofQuotePool(telemetry),
|
|
52
52
|
attestationPool:
|
|
53
53
|
clientType === P2PClientType.Full
|
|
@@ -85,13 +85,5 @@ export const createP2PClient = async <T extends P2PClientType>(
|
|
|
85
85
|
logger.verbose('P2P is disabled. Using dummy P2P service');
|
|
86
86
|
p2pService = new DummyP2PService();
|
|
87
87
|
}
|
|
88
|
-
return new P2PClient(
|
|
89
|
-
clientType,
|
|
90
|
-
store,
|
|
91
|
-
l2BlockSource,
|
|
92
|
-
mempools,
|
|
93
|
-
p2pService,
|
|
94
|
-
config.keepProvenTxsInPoolFor,
|
|
95
|
-
telemetry,
|
|
96
|
-
);
|
|
88
|
+
return new P2PClient(clientType, store, l2BlockSource, mempools, p2pService, config, telemetry);
|
|
97
89
|
};
|
package/src/client/p2p_client.ts
CHANGED
|
@@ -21,13 +21,13 @@ import {
|
|
|
21
21
|
type TelemetryClient,
|
|
22
22
|
TraceableL2BlockStream,
|
|
23
23
|
WithTracer,
|
|
24
|
+
getTelemetryClient,
|
|
24
25
|
trackSpan,
|
|
25
26
|
} from '@aztec/telemetry-client';
|
|
26
|
-
import { NoopTelemetryClient } from '@aztec/telemetry-client/noop';
|
|
27
27
|
|
|
28
28
|
import { type ENR } from '@chainsafe/enr';
|
|
29
29
|
|
|
30
|
-
import {
|
|
30
|
+
import { type P2PConfig, getP2PDefaultConfig } from '../config.js';
|
|
31
31
|
import { type AttestationPool } from '../mem_pools/attestation_pool/attestation_pool.js';
|
|
32
32
|
import { type EpochProofQuotePool } from '../mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.js';
|
|
33
33
|
import { type MemPools } from '../mem_pools/interface.js';
|
|
@@ -135,6 +135,13 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApi<T> & {
|
|
|
135
135
|
*/
|
|
136
136
|
getTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
137
137
|
|
|
138
|
+
/**
|
|
139
|
+
* Returns an archived transaction from the transaction pool by its hash.
|
|
140
|
+
* @param txHash - Hash of tx to return.
|
|
141
|
+
* @returns A single tx or undefined.
|
|
142
|
+
*/
|
|
143
|
+
getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
144
|
+
|
|
138
145
|
/**
|
|
139
146
|
* Returns whether the given tx hash is flagged as pending or mined.
|
|
140
147
|
* @param txHash - Hash of the tx to query.
|
|
@@ -209,6 +216,8 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
|
|
|
209
216
|
|
|
210
217
|
/** How many slots to keep attestations for. */
|
|
211
218
|
private keepAttestationsInPoolFor: number;
|
|
219
|
+
/** How many slots to keep proven txs for. */
|
|
220
|
+
private keepProvenTxsFor: number;
|
|
212
221
|
|
|
213
222
|
private blockStream;
|
|
214
223
|
|
|
@@ -227,14 +236,17 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
|
|
|
227
236
|
private l2BlockSource: L2BlockSource,
|
|
228
237
|
mempools: MemPools<T>,
|
|
229
238
|
private p2pService: P2PService,
|
|
230
|
-
|
|
231
|
-
telemetry: TelemetryClient =
|
|
239
|
+
config: Partial<P2PConfig> = {},
|
|
240
|
+
telemetry: TelemetryClient = getTelemetryClient(),
|
|
232
241
|
private log = createLogger('p2p'),
|
|
233
242
|
) {
|
|
234
243
|
super(telemetry, 'P2PClient');
|
|
235
244
|
|
|
236
|
-
const { blockCheckIntervalMS, blockRequestBatchSize, keepAttestationsInPoolFor } =
|
|
237
|
-
|
|
245
|
+
const { keepProvenTxsInPoolFor, blockCheckIntervalMS, blockRequestBatchSize, keepAttestationsInPoolFor } = {
|
|
246
|
+
...getP2PDefaultConfig(),
|
|
247
|
+
...config,
|
|
248
|
+
};
|
|
249
|
+
this.keepProvenTxsFor = keepProvenTxsInPoolFor;
|
|
238
250
|
this.keepAttestationsInPoolFor = keepAttestationsInPoolFor;
|
|
239
251
|
|
|
240
252
|
const tracer = telemetry.getTracer('P2PL2BlockStream');
|
|
@@ -380,9 +392,6 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
|
|
|
380
392
|
this.log.debug(`Block ${syncedLatestBlock} (proven ${syncedProvenBlock}) already beyond current block`);
|
|
381
393
|
}
|
|
382
394
|
|
|
383
|
-
// publish any txs in TxPool after its doing initial sync
|
|
384
|
-
this.syncPromise = this.syncPromise.then(() => this.publishStoredTxs());
|
|
385
|
-
|
|
386
395
|
this.blockStream.start();
|
|
387
396
|
this.log.verbose(`Started block downloader from block ${syncedLatestBlock}`);
|
|
388
397
|
|
|
@@ -526,6 +535,15 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
|
|
|
526
535
|
return this.requestTxByHash(txHash);
|
|
527
536
|
}
|
|
528
537
|
|
|
538
|
+
/**
|
|
539
|
+
* Returns an archived transaction in the transaction pool by its hash.
|
|
540
|
+
* @param txHash - Hash of the archived transaction to look for.
|
|
541
|
+
* @returns A single tx or undefined.
|
|
542
|
+
*/
|
|
543
|
+
getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined> {
|
|
544
|
+
return Promise.resolve(this.txPool.getArchivedTxByHash(txHash));
|
|
545
|
+
}
|
|
546
|
+
|
|
529
547
|
/**
|
|
530
548
|
* Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
|
|
531
549
|
* @param tx - The tx to verify.
|
package/src/config.ts
CHANGED
|
@@ -154,6 +154,9 @@ export interface P2PConfig extends P2PReqRespConfig {
|
|
|
154
154
|
* The chain id of the L1 chain.
|
|
155
155
|
*/
|
|
156
156
|
l1ChainId: number;
|
|
157
|
+
|
|
158
|
+
/** Limit of transactions to archive in the tx pool. Once the archived tx limit is reached, the oldest archived txs will be purged. */
|
|
159
|
+
archivedTxLimit: number;
|
|
157
160
|
}
|
|
158
161
|
|
|
159
162
|
export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
|
|
@@ -305,6 +308,12 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
|
|
|
305
308
|
description: 'The number of blocks to fetch in a single batch.',
|
|
306
309
|
...numberConfigHelper(20),
|
|
307
310
|
},
|
|
311
|
+
archivedTxLimit: {
|
|
312
|
+
env: 'P2P_ARCHIVED_TX_LIMIT',
|
|
313
|
+
description:
|
|
314
|
+
'The number of transactions that will be archived. If the limit is set to 0 then archiving will be disabled.',
|
|
315
|
+
...numberConfigHelper(0),
|
|
316
|
+
},
|
|
308
317
|
...p2pReqRespConfigMappings,
|
|
309
318
|
};
|
|
310
319
|
|
|
@@ -2,7 +2,7 @@ import { BlockAttestation } from '@aztec/circuit-types';
|
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { type AztecKVStore, type AztecMapWithSize, type AztecMultiMap } from '@aztec/kv-store';
|
|
5
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
5
|
+
import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
|
|
6
6
|
|
|
7
7
|
import { PoolInstrumentation, PoolName } from '../instrumentation.js';
|
|
8
8
|
import { type AttestationPool } from './attestation_pool.js';
|
|
@@ -15,7 +15,7 @@ export class KvAttestationPool implements AttestationPool {
|
|
|
15
15
|
|
|
16
16
|
constructor(
|
|
17
17
|
private store: AztecKVStore,
|
|
18
|
-
telemetry: TelemetryClient,
|
|
18
|
+
telemetry: TelemetryClient = getTelemetryClient(),
|
|
19
19
|
private log = createLogger('aztec:attestation_pool'),
|
|
20
20
|
) {
|
|
21
21
|
this.attestations = store.openMultiMap('attestations');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type BlockAttestation } from '@aztec/circuit-types';
|
|
2
2
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
+
import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
|
|
4
4
|
|
|
5
5
|
import { PoolInstrumentation, PoolName } from '../instrumentation.js';
|
|
6
6
|
import { type AttestationPool } from './attestation_pool.js';
|
|
@@ -10,7 +10,7 @@ export class InMemoryAttestationPool implements AttestationPool {
|
|
|
10
10
|
|
|
11
11
|
private attestations: Map</*slot=*/ bigint, Map</*proposalId*/ string, Map</*address=*/ string, BlockAttestation>>>;
|
|
12
12
|
|
|
13
|
-
constructor(telemetry: TelemetryClient, private log = createLogger('p2p:attestation_pool')) {
|
|
13
|
+
constructor(telemetry: TelemetryClient = getTelemetryClient(), private log = createLogger('p2p:attestation_pool')) {
|
|
14
14
|
this.attestations = new Map();
|
|
15
15
|
this.metrics = new PoolInstrumentation(telemetry, PoolName.ATTESTATION_POOL);
|
|
16
16
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type EpochProofQuote } from '@aztec/circuit-types';
|
|
2
|
-
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
2
|
+
import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
|
|
3
3
|
|
|
4
4
|
import { PoolInstrumentation, PoolName } from '../instrumentation.js';
|
|
5
5
|
import { type EpochProofQuotePool } from './epoch_proof_quote_pool.js';
|
|
@@ -8,7 +8,7 @@ export class MemoryEpochProofQuotePool implements EpochProofQuotePool {
|
|
|
8
8
|
private quotes: Map<bigint, EpochProofQuote[]>;
|
|
9
9
|
private metrics: PoolInstrumentation<EpochProofQuote>;
|
|
10
10
|
|
|
11
|
-
constructor(telemetry: TelemetryClient) {
|
|
11
|
+
constructor(telemetry: TelemetryClient = getTelemetryClient()) {
|
|
12
12
|
this.quotes = new Map();
|
|
13
13
|
this.metrics = new PoolInstrumentation(telemetry, PoolName.EPOCH_PROOF_QUOTE_POOL);
|
|
14
14
|
}
|