@aztec/p2p 0.80.0 → 0.81.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/bootstrap/bootstrap.d.ts.map +1 -1
- package/dest/bootstrap/bootstrap.js +5 -5
- package/dest/client/p2p_client.d.ts +2 -1
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +14 -3
- package/dest/config.d.ts +11 -16
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +13 -17
- package/dest/enr/generate-enr.d.ts +1 -1
- package/dest/enr/generate-enr.d.ts.map +1 -1
- package/dest/enr/generate-enr.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 +13 -7
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/data_validator.js +5 -5
- package/dest/msg_validators/tx_validator/tx_proof_validator.js +2 -2
- package/dest/services/discv5/discV5_service.d.ts +4 -3
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.js +36 -21
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +8 -11
- package/dest/test-helpers/make-enrs.d.ts.map +1 -1
- package/dest/test-helpers/make-enrs.js +3 -4
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/make-test-p2p-clients.js +2 -6
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +7 -8
- package/dest/testbench/worker_client_manager.d.ts +0 -4
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/testbench/worker_client_manager.js +3 -13
- package/dest/types/index.d.ts +2 -1
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +1 -0
- package/dest/util.d.ts +2 -7
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +12 -57
- package/package.json +10 -10
- package/src/bootstrap/bootstrap.ts +6 -5
- package/src/client/p2p_client.ts +24 -6
- package/src/config.ts +24 -32
- package/src/enr/generate-enr.ts +3 -2
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +12 -7
- package/src/msg_validators/tx_validator/data_validator.ts +9 -7
- package/src/msg_validators/tx_validator/tx_proof_validator.ts +2 -2
- package/src/services/discv5/discV5_service.ts +36 -23
- package/src/services/libp2p/libp2p_service.ts +8 -9
- package/src/test-helpers/make-enrs.ts +3 -4
- package/src/test-helpers/make-test-p2p-clients.ts +2 -7
- package/src/test-helpers/reqresp-nodes.ts +6 -7
- package/src/testbench/worker_client_manager.ts +8 -17
- package/src/types/index.ts +1 -0
- package/src/util.ts +12 -72
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAKjD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,IAAI,CAAC,CAA0C;IACvD,OAAO,CAAC,MAAM,CAAC,CAAS;gBAGd,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,eAAe,EAC1B,MAAM,yCAAgC;IAGhD;;;;OAIG;IACU,KAAK,CAAC,MAAM,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAInF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAKjD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,IAAI,CAAC,CAA0C;IACvD,OAAO,CAAC,MAAM,CAAC,CAAS;gBAGd,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,eAAe,EAC1B,MAAM,yCAAgC;IAGhD;;;;OAIG;IACU,KAAK,CAAC,MAAM,EAAE,cAAc;IAoEzC;;;OAGG;IACU,IAAI;IAOjB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACI,SAAS;IAKT,MAAM;IAKN,aAAa;IAKb,eAAe;CAIvB"}
|
|
@@ -24,13 +24,13 @@ import { convertToMultiaddr, getPeerIdPrivateKey } from '../util.js';
|
|
|
24
24
|
* @param config - A partial P2P configuration. No need for TCP values as well as aztec node specific values.
|
|
25
25
|
* @returns An empty promise.
|
|
26
26
|
*/ async start(config) {
|
|
27
|
-
const {
|
|
28
|
-
const listenAddrUdp = multiaddr(convertToMultiaddr(
|
|
29
|
-
if (!
|
|
30
|
-
throw new Error('You need to provide a
|
|
27
|
+
const { p2pIp, p2pPort, listenAddress } = config;
|
|
28
|
+
const listenAddrUdp = multiaddr(convertToMultiaddr(listenAddress, p2pPort, 'udp'));
|
|
29
|
+
if (!p2pIp) {
|
|
30
|
+
throw new Error('You need to provide a P2P IP address.');
|
|
31
31
|
}
|
|
32
32
|
const peerIdPrivateKey = await getPeerIdPrivateKey(config, this.store);
|
|
33
|
-
const { enr: ourEnr, peerId } = await createBootnodeENRandPeerId(peerIdPrivateKey,
|
|
33
|
+
const { enr: ourEnr, peerId } = await createBootnodeENRandPeerId(peerIdPrivateKey, p2pIp, p2pPort, config.l1ChainId);
|
|
34
34
|
this.peerId = peerId;
|
|
35
35
|
this.logger.debug(`Starting bootstrap node ${peerId} listening on ${listenAddrUdp.toString()}`);
|
|
36
36
|
const metricsRegistry = new OtelMetricsAdapter(this.telemetry);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
2
2
|
import type { L2BlockId, L2BlockSource, L2BlockStreamEvent, L2Tips } from '@aztec/stdlib/block';
|
|
3
3
|
import type { P2PApi, PeerInfo, ProverCoordination } from '@aztec/stdlib/interfaces/server';
|
|
4
|
-
import
|
|
4
|
+
import { BlockAttestation, type BlockProposal, type P2PClientType } from '@aztec/stdlib/p2p';
|
|
5
5
|
import type { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
6
6
|
import { type TelemetryClient, WithTracer } from '@aztec/telemetry-client';
|
|
7
7
|
import type { ENR } from '@chainsafe/enr';
|
|
@@ -281,6 +281,7 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
|
|
|
281
281
|
* @returns Empty promise.
|
|
282
282
|
*/
|
|
283
283
|
private markTxsAsMinedFromBlocks;
|
|
284
|
+
private addAttestationsToPool;
|
|
284
285
|
/**
|
|
285
286
|
* Deletes txs from these blocks.
|
|
286
287
|
* @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAsC,MAAM,iBAAiB,CAAC;AAC7F,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
6
6
|
}
|
|
7
7
|
import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
8
8
|
import { createLogger } from '@aztec/foundation/log';
|
|
9
|
+
import { BlockAttestation, ConsensusPayload } from '@aztec/stdlib/p2p';
|
|
9
10
|
import { Attributes, TraceableL2BlockStream, WithTracer, getTelemetryClient, trackSpan } from '@aztec/telemetry-client';
|
|
10
11
|
import { getP2PDefaultConfig } from '../config.js';
|
|
11
12
|
import { ReqRespSubProtocol } from '../services/reqresp/interface.js';
|
|
@@ -391,6 +392,15 @@ import { ReqRespSubProtocol } from '../services/reqresp/interface.js';
|
|
|
391
392
|
await this.txPool.markAsMined(txHashes, block.number);
|
|
392
393
|
}
|
|
393
394
|
}
|
|
395
|
+
async addAttestationsToPool(blocks) {
|
|
396
|
+
const attestations = blocks.flatMap((block)=>{
|
|
397
|
+
const payload = ConsensusPayload.fromBlock(block.block);
|
|
398
|
+
return block.signatures.filter((sig)=>!sig.isEmpty).map((signature)=>new BlockAttestation(payload, signature));
|
|
399
|
+
});
|
|
400
|
+
await this.attestationPool?.addAttestations(attestations);
|
|
401
|
+
const slots = blocks.map((b)=>b.block.header.getSlot()).sort((a, b)=>Number(a - b));
|
|
402
|
+
this.log.debug(`Added ${attestations.length} attestations for slots ${slots[0]}-${slots.at(-1)} to the pool`);
|
|
403
|
+
}
|
|
394
404
|
/**
|
|
395
405
|
* Deletes txs from these blocks.
|
|
396
406
|
* @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
|
|
@@ -410,9 +420,10 @@ import { ReqRespSubProtocol } from '../services/reqresp/interface.js';
|
|
|
410
420
|
if (!blocks.length) {
|
|
411
421
|
return Promise.resolve();
|
|
412
422
|
}
|
|
413
|
-
await this.markTxsAsMinedFromBlocks(blocks);
|
|
414
|
-
|
|
415
|
-
|
|
423
|
+
await this.markTxsAsMinedFromBlocks(blocks.map((b)=>b.block));
|
|
424
|
+
await this.addAttestationsToPool(blocks);
|
|
425
|
+
const lastBlockNum = blocks.at(-1).block.number;
|
|
426
|
+
await Promise.all(blocks.map(async (block)=>this.synchedBlockHashes.set(block.block.number, (await block.block.hash()).toString())));
|
|
416
427
|
await this.synchedLatestBlockNumber.set(lastBlockNum);
|
|
417
428
|
this.log.verbose(`Synched to latest block ${lastBlockNum}`);
|
|
418
429
|
await this.startServiceIfSynched();
|
package/dest/config.d.ts
CHANGED
|
@@ -31,21 +31,17 @@ export interface P2PConfig extends P2PReqRespConfig, ChainConfig {
|
|
|
31
31
|
*/
|
|
32
32
|
l2QueueSize: number;
|
|
33
33
|
/**
|
|
34
|
-
* The
|
|
34
|
+
* The port for the P2P service.
|
|
35
35
|
*/
|
|
36
|
-
|
|
36
|
+
p2pPort: number;
|
|
37
37
|
/**
|
|
38
|
-
* The
|
|
38
|
+
* The IP address for the P2P service.
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
p2pIp?: string;
|
|
41
41
|
/**
|
|
42
|
-
* The listen address
|
|
42
|
+
* The listen address.
|
|
43
43
|
*/
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* The listen address for UDP.
|
|
47
|
-
*/
|
|
48
|
-
udpListenAddress: string;
|
|
44
|
+
listenAddress: string;
|
|
49
45
|
/**
|
|
50
46
|
* An optional peer id private key. If blank, will generate a random key.
|
|
51
47
|
*/
|
|
@@ -139,7 +135,7 @@ export declare function getP2PDefaultConfig(): P2PConfig;
|
|
|
139
135
|
/**
|
|
140
136
|
* Required P2P config values for a bootstrap node.
|
|
141
137
|
*/
|
|
142
|
-
export type BootnodeConfig = Pick<P2PConfig, '
|
|
138
|
+
export type BootnodeConfig = Pick<P2PConfig, 'p2pIp' | 'p2pPort' | 'peerIdPrivateKey' | 'bootstrapNodes' | 'listenAddress'> & Required<Pick<P2PConfig, 'p2pIp' | 'p2pPort'>> & Pick<DataStoreConfig, 'dataDirectory' | 'dataStoreMapSizeKB'> & Pick<ChainConfig, 'l1ChainId'>;
|
|
143
139
|
export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
|
|
144
140
|
l1ChainId: unknown;
|
|
145
141
|
version: unknown;
|
|
@@ -154,10 +150,9 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
|
|
|
154
150
|
debugDisableColocationPenalty: unknown;
|
|
155
151
|
peerCheckIntervalMS: unknown;
|
|
156
152
|
l2QueueSize: unknown;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
udpListenAddress: unknown;
|
|
153
|
+
p2pPort: unknown;
|
|
154
|
+
p2pIp: unknown;
|
|
155
|
+
listenAddress: unknown;
|
|
161
156
|
peerIdPrivateKey: unknown;
|
|
162
157
|
bootstrapNodes: unknown;
|
|
163
158
|
bootstrapNodeEnrVersionCheck: unknown;
|
|
@@ -181,5 +176,5 @@ export declare const bootnodeConfigMappings: ConfigMappingsType<Pick<{
|
|
|
181
176
|
peerPenaltyValues: unknown;
|
|
182
177
|
archivedTxLimit: unknown;
|
|
183
178
|
trustedPeers: unknown;
|
|
184
|
-
}, "
|
|
179
|
+
}, "p2pPort" | "p2pIp" | "listenAddress" | "peerIdPrivateKey" | "bootstrapNodes" | "l1ChainId" | "dataDirectory" | "dataStoreMapSizeKB">>;
|
|
185
180
|
//# sourceMappingURL=config.d.ts.map
|
package/dest/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,8BAA8B,CAAC;AAE/F;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,gBAAgB,EAAE,WAAW;IAC9D;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,6BAA6B,EAAE,OAAO,CAAC;IAEvC;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,KAAK,WAAW,EAAuB,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,8BAA8B,CAAC;AAE/F;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,gBAAgB,EAAE,WAAW;IAC9D;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,6BAA6B,EAAE,OAAO,CAAC;IAEvC;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,sEAAsE;IACtE,4BAA4B,EAAE,OAAO,CAAC;IAEtC,iGAAiG;IACjG,yBAAyB,EAAE,OAAO,CAAC;IAEnC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,+HAA+H;IAC/H,sBAAsB,EAAE,MAAM,CAAC;IAE/B,+CAA+C;IAC/C,yBAAyB,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,kCAAkC,EAAE,MAAM,CAAC;IAE3C;;OAEG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,yCAAyC,EAAE,MAAM,CAAC;IAElD;;OAEG;IACH,wCAAwC,EAAE,MAAM,CAAC;IAEjD;;OAEG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAE5B,sIAAsI;IACtI,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAuK3D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED,wBAAgB,mBAAmB,IAAI,SAAS,CAE/C;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,SAAS,EACT,OAAO,GAAG,SAAS,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,eAAe,CAC9E,GACC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,CAAC,CAAC,GAC9C,IAAI,CAAC,eAAe,EAAE,eAAe,GAAG,oBAAoB,CAAC,GAC7D,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAYjC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yIAGlC,CAAC"}
|
package/dest/config.js
CHANGED
|
@@ -28,23 +28,19 @@ export const p2pConfigMappings = {
|
|
|
28
28
|
description: 'Size of queue of L2 blocks to store.',
|
|
29
29
|
...numberConfigHelper(1_000)
|
|
30
30
|
},
|
|
31
|
-
|
|
32
|
-
env: '
|
|
33
|
-
defaultValue: '0.0.0.0
|
|
34
|
-
description: 'The listen address
|
|
31
|
+
listenAddress: {
|
|
32
|
+
env: 'P2P_LISTEN_ADDR',
|
|
33
|
+
defaultValue: '0.0.0.0',
|
|
34
|
+
description: 'The listen address. ipv4 address.'
|
|
35
35
|
},
|
|
36
|
-
|
|
37
|
-
env: '
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
p2pPort: {
|
|
37
|
+
env: 'P2P_PORT',
|
|
38
|
+
description: 'The port for the P2P service.',
|
|
39
|
+
...numberConfigHelper(40400)
|
|
40
40
|
},
|
|
41
|
-
|
|
42
|
-
env: '
|
|
43
|
-
description: 'The
|
|
44
|
-
},
|
|
45
|
-
udpAnnounceAddress: {
|
|
46
|
-
env: 'P2P_UDP_ANNOUNCE_ADDR',
|
|
47
|
-
description: 'The announce address for UDP. Format: <IP_ADDRESS>:<PORT>. Leave IP_ADDRESS blank to query for public IP.'
|
|
41
|
+
p2pIp: {
|
|
42
|
+
env: 'P2P_IP',
|
|
43
|
+
description: 'The IP address for the P2P service. ipv4 address.'
|
|
48
44
|
},
|
|
49
45
|
peerIdPrivateKey: {
|
|
50
46
|
env: 'PEER_ID_PRIVATE_KEY',
|
|
@@ -184,9 +180,9 @@ export function getP2PDefaultConfig() {
|
|
|
184
180
|
return getDefaultConfig(p2pConfigMappings);
|
|
185
181
|
}
|
|
186
182
|
const bootnodeConfigKeys = [
|
|
187
|
-
'
|
|
183
|
+
'p2pIp',
|
|
184
|
+
'p2pPort',
|
|
188
185
|
'peerIdPrivateKey',
|
|
189
|
-
'udpListenAddress',
|
|
190
186
|
'dataDirectory',
|
|
191
187
|
'dataStoreMapSizeKB',
|
|
192
188
|
'bootstrapNodes',
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LogFn } from '@aztec/foundation/log';
|
|
2
2
|
import { SignableENR } from '@chainsafe/enr';
|
|
3
3
|
import type { PeerId } from '@libp2p/interface';
|
|
4
|
-
export declare function createBootnodeENRandPeerId(privateKey: string,
|
|
4
|
+
export declare function createBootnodeENRandPeerId(privateKey: string, p2pIp: string, p2pPort: number, l1ChainId: number): Promise<{
|
|
5
5
|
enr: SignableENR;
|
|
6
6
|
peerId: PeerId;
|
|
7
7
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-enr.d.ts","sourceRoot":"","sources":["../../src/enr/generate-enr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAO,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAOhD,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,
|
|
1
|
+
{"version":3,"file":"generate-enr.d.ts","sourceRoot":"","sources":["../../src/enr/generate-enr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGnD,OAAO,EAAO,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAOhD,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,GAAG,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAa/C;AAED,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,iBAQrD"}
|
package/dest/enr/generate-enr.js
CHANGED
|
@@ -4,10 +4,10 @@ import { multiaddr } from '@multiformats/multiaddr';
|
|
|
4
4
|
import { AZTEC_ENR_KEY } from '../types/index.js';
|
|
5
5
|
import { convertToMultiaddr, createLibP2PPeerIdFromPrivateKey } from '../util.js';
|
|
6
6
|
import { setAztecEnrKey } from '../versioning.js';
|
|
7
|
-
export async function createBootnodeENRandPeerId(privateKey,
|
|
7
|
+
export async function createBootnodeENRandPeerId(privateKey, p2pIp, p2pPort, l1ChainId) {
|
|
8
8
|
const peerId = await createLibP2PPeerIdFromPrivateKey(privateKey);
|
|
9
9
|
const enr = SignableENR.createFromPeerId(peerId);
|
|
10
|
-
const publicAddr = multiaddr(convertToMultiaddr(
|
|
10
|
+
const publicAddr = multiaddr(convertToMultiaddr(p2pIp, p2pPort, 'udp'));
|
|
11
11
|
enr.setLocationMultiaddr(publicAddr);
|
|
12
12
|
const config = {
|
|
13
13
|
...emptyChainConfig,
|
|
@@ -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":"AASA,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":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAK7D,wBAAgB,uBAAuB,CAAC,kBAAkB,EAAE,MAAM,eAAe,QA4NhF"}
|
|
@@ -47,7 +47,7 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
47
47
|
const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), archive.toString());
|
|
48
48
|
expect(retreivedAttestationsAfterDelete.length).toBe(0);
|
|
49
49
|
});
|
|
50
|
-
it('
|
|
50
|
+
it('should handle duplicate proposals in a slot', async ()=>{
|
|
51
51
|
const slotNumber = 420;
|
|
52
52
|
const archive = Fr.random();
|
|
53
53
|
const txs = [
|
|
@@ -64,14 +64,20 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
64
64
|
for(let i = 0; i < NUMBER_OF_SIGNERS_PER_TEST; i++){
|
|
65
65
|
attestations.push(await mockAttestation(signer, slotNumber, archive, txs));
|
|
66
66
|
}
|
|
67
|
+
// Add them to store and check we end up with only one
|
|
67
68
|
await ap.addAttestations(attestations);
|
|
68
69
|
const retreivedAttestations = await ap.getAttestationsForSlot(BigInt(slotNumber), archive.toString());
|
|
69
70
|
expect(retreivedAttestations.length).toBe(1);
|
|
70
71
|
expect(retreivedAttestations[0].toBuffer()).toEqual(attestations[0].toBuffer());
|
|
71
72
|
expect(retreivedAttestations[0].payload.txHashes).toEqual(txs);
|
|
72
73
|
expect((await retreivedAttestations[0].getSender()).toString()).toEqual(signer.address.toString());
|
|
74
|
+
// Try adding them on another operation and check they are still not duplicated
|
|
75
|
+
await ap.addAttestations([
|
|
76
|
+
attestations[0]
|
|
77
|
+
]);
|
|
78
|
+
expect(await ap.getAttestationsForSlot(BigInt(slotNumber), archive.toString())).toHaveLength(1);
|
|
73
79
|
});
|
|
74
|
-
it('
|
|
80
|
+
it('should store attestations by differing slot', async ()=>{
|
|
75
81
|
const slotNumbers = [
|
|
76
82
|
1,
|
|
77
83
|
2,
|
|
@@ -89,7 +95,7 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
89
95
|
expect(retreivedAttestations[0].payload.header.globalVariables.slotNumber).toEqual(slot);
|
|
90
96
|
}
|
|
91
97
|
});
|
|
92
|
-
it('
|
|
98
|
+
it('should store attestations by differing slot and archive', async ()=>{
|
|
93
99
|
const slotNumbers = [
|
|
94
100
|
1,
|
|
95
101
|
1,
|
|
@@ -113,7 +119,7 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
113
119
|
expect(retreivedAttestations[0].payload.header.globalVariables.slotNumber).toEqual(slot);
|
|
114
120
|
}
|
|
115
121
|
});
|
|
116
|
-
it('
|
|
122
|
+
it('should delete attestations', async ()=>{
|
|
117
123
|
const slotNumber = 420;
|
|
118
124
|
const archive = Fr.random();
|
|
119
125
|
const attestations = await Promise.all(signers.map((signer)=>mockAttestation(signer, slotNumber, archive)));
|
|
@@ -128,7 +134,7 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
128
134
|
const gottenAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
|
|
129
135
|
expect(gottenAfterDelete.length).toBe(0);
|
|
130
136
|
});
|
|
131
|
-
it('
|
|
137
|
+
it('should blanket delete attestations per slot', async ()=>{
|
|
132
138
|
const slotNumber = 420;
|
|
133
139
|
const archive = Fr.random();
|
|
134
140
|
const attestations = await Promise.all(signers.map((signer)=>mockAttestation(signer, slotNumber, archive)));
|
|
@@ -141,7 +147,7 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
141
147
|
const retreivedAttestationsAfterDelete = await ap.getAttestationsForSlot(BigInt(slotNumber), proposalId);
|
|
142
148
|
expect(retreivedAttestationsAfterDelete.length).toBe(0);
|
|
143
149
|
});
|
|
144
|
-
it('
|
|
150
|
+
it('should blanket delete attestations per slot and proposal', async ()=>{
|
|
145
151
|
const slotNumber = 420;
|
|
146
152
|
const archive = Fr.random();
|
|
147
153
|
const attestations = await Promise.all(signers.map((signer)=>mockAttestation(signer, slotNumber, archive)));
|
|
@@ -165,7 +171,7 @@ export function describeAttestationPool(getAttestationPool) {
|
|
|
165
171
|
expect(retreivedAttestationsAfterDeleteForOtherProposal.length).toBe(NUMBER_OF_SIGNERS_PER_TEST);
|
|
166
172
|
compareAttestations(retreivedAttestationsAfterDeleteForOtherProposal, attestations2);
|
|
167
173
|
});
|
|
168
|
-
it('
|
|
174
|
+
it('should delete attestations older than a given slot', async ()=>{
|
|
169
175
|
const slotNumbers = [
|
|
170
176
|
1,
|
|
171
177
|
2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/data_validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEjF,qBAAa,eAAgB,YAAW,WAAW,CAAC,EAAE,CAAC;;IAG/C,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"data_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/tx_validator/data_validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEjF,qBAAa,eAAgB,YAAW,WAAW,CAAC,EAAE,CAAC;;IAG/C,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAoGtD"}
|
|
@@ -14,7 +14,7 @@ export class DataTxValidator {
|
|
|
14
14
|
...tx.data.getNonRevertiblePublicCallRequests()
|
|
15
15
|
];
|
|
16
16
|
if (callRequests.length !== tx.enqueuedPublicFunctionCalls.length) {
|
|
17
|
-
this.#log.warn(`Rejecting tx ${Tx.getHash(tx)} because of mismatch number of execution requests for public calls. Expected ${callRequests.length}. Got ${tx.enqueuedPublicFunctionCalls.length}.`);
|
|
17
|
+
this.#log.warn(`Rejecting tx ${await Tx.getHash(tx)} because of mismatch number of execution requests for public calls. Expected ${callRequests.length}. Got ${tx.enqueuedPublicFunctionCalls.length}.`);
|
|
18
18
|
return {
|
|
19
19
|
result: 'invalid',
|
|
20
20
|
reason: [
|
|
@@ -60,7 +60,7 @@ export class DataTxValidator {
|
|
|
60
60
|
const contractClassLogsHashes = tx.data.getNonEmptyContractClassLogsHashes();
|
|
61
61
|
const hashedContractClasslogs = await Promise.all(tx.contractClassLogs.map((l)=>l.hash()));
|
|
62
62
|
if (contractClassLogsHashes.length !== hashedContractClasslogs.length) {
|
|
63
|
-
this.#log.warn(`Rejecting tx ${Tx.getHash(tx)} because of mismatched number of contract class logs. Expected ${contractClassLogsHashes.length}. Got ${hashedContractClasslogs.length}.`);
|
|
63
|
+
this.#log.warn(`Rejecting tx ${await Tx.getHash(tx)} because of mismatched number of contract class logs. Expected ${contractClassLogsHashes.length}. Got ${hashedContractClasslogs.length}.`);
|
|
64
64
|
return {
|
|
65
65
|
result: 'invalid',
|
|
66
66
|
reason: [
|
|
@@ -73,7 +73,7 @@ export class DataTxValidator {
|
|
|
73
73
|
if (!logHash.value.equals(hashedLog)) {
|
|
74
74
|
if (hashedContractClasslogs.some((l)=>logHash.value.equals(l))) {
|
|
75
75
|
const matchingLogIndex = hashedContractClasslogs.findIndex((l)=>logHash.value.equals(l));
|
|
76
|
-
this.#log.warn(`Rejecting tx ${Tx.getHash(tx)} because of mismatched contract class logs indices. Expected ${i} from the kernel's log hashes. Got ${matchingLogIndex} in the tx.`);
|
|
76
|
+
this.#log.warn(`Rejecting tx ${await Tx.getHash(tx)} because of mismatched contract class logs indices. Expected ${i} from the kernel's log hashes. Got ${matchingLogIndex} in the tx.`);
|
|
77
77
|
return {
|
|
78
78
|
result: 'invalid',
|
|
79
79
|
reason: [
|
|
@@ -81,7 +81,7 @@ export class DataTxValidator {
|
|
|
81
81
|
]
|
|
82
82
|
};
|
|
83
83
|
} else {
|
|
84
|
-
this.#log.warn(`Rejecting tx ${Tx.getHash(tx)} because of mismatched contract class logs. Expected hash ${logHash.value} from the kernels. Got ${hashedLog} in the tx.`);
|
|
84
|
+
this.#log.warn(`Rejecting tx ${await Tx.getHash(tx)} because of mismatched contract class logs. Expected hash ${logHash.value} from the kernels. Got ${hashedLog} in the tx.`);
|
|
85
85
|
return {
|
|
86
86
|
result: 'invalid',
|
|
87
87
|
reason: [
|
|
@@ -91,7 +91,7 @@ export class DataTxValidator {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
if (logHash.logHash.length !== tx.contractClassLogs[i].getEmittedLength()) {
|
|
94
|
-
this.#log.warn(`Rejecting tx ${Tx.getHash(tx)} because of mismatched contract class logs length. Expected ${logHash.logHash.length} from the kernel's log hashes. Got ${tx.contractClassLogs[i].getEmittedLength()} in the tx.`);
|
|
94
|
+
this.#log.warn(`Rejecting tx ${await Tx.getHash(tx)} because of mismatched contract class logs length. Expected ${logHash.logHash.length} from the kernel's log hashes. Got ${tx.contractClassLogs[i].getEmittedLength()} in the tx.`);
|
|
95
95
|
return {
|
|
96
96
|
result: 'invalid',
|
|
97
97
|
reason: [
|
|
@@ -9,7 +9,7 @@ export class TxProofValidator {
|
|
|
9
9
|
}
|
|
10
10
|
async validateTx(tx) {
|
|
11
11
|
if (!await this.verifier.verifyProof(tx)) {
|
|
12
|
-
this.#log.warn(`Rejecting tx ${Tx.getHash(tx)} for invalid proof`);
|
|
12
|
+
this.#log.warn(`Rejecting tx ${await Tx.getHash(tx)} for invalid proof`);
|
|
13
13
|
return {
|
|
14
14
|
result: 'invalid',
|
|
15
15
|
reason: [
|
|
@@ -17,7 +17,7 @@ export class TxProofValidator {
|
|
|
17
17
|
]
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
this.#log.trace(`Accepted ${Tx.getHash(tx)} with valid proof`);
|
|
20
|
+
this.#log.trace(`Accepted ${await Tx.getHash(tx)} with valid proof`);
|
|
21
21
|
return {
|
|
22
22
|
result: 'valid'
|
|
23
23
|
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
3
|
+
import { type IDiscv5CreateOptions } from '@chainsafe/discv5';
|
|
3
4
|
import { ENR } from '@chainsafe/enr';
|
|
4
5
|
import type { PeerId } from '@libp2p/interface';
|
|
5
6
|
import EventEmitter from 'events';
|
|
@@ -18,14 +19,14 @@ export declare class DiscV5Service extends EventEmitter implements PeerDiscovery
|
|
|
18
19
|
private enr;
|
|
19
20
|
/** Version identifiers. */
|
|
20
21
|
private versions;
|
|
21
|
-
/** UDP listen addr */
|
|
22
|
-
private listenMultiAddrUdp;
|
|
23
22
|
private currentState;
|
|
24
23
|
readonly bootstrapNodes: string[];
|
|
25
24
|
private bootstrapNodePeerIds;
|
|
26
25
|
private bootstrapNodeEnrs;
|
|
27
26
|
private startTime;
|
|
28
|
-
|
|
27
|
+
private handlers;
|
|
28
|
+
constructor(peerId: PeerId, config: P2PConfig, telemetry?: TelemetryClient, logger?: import("@aztec/foundation/log").Logger, configOverrides?: Partial<IDiscv5CreateOptions>);
|
|
29
|
+
private onMultiaddrUpdated;
|
|
29
30
|
start(): Promise<void>;
|
|
30
31
|
runRandomNodesQuery(): Promise<void>;
|
|
31
32
|
getAllPeers(): ENR[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discV5_service.d.ts","sourceRoot":"","sources":["../../../src/services/discv5/discV5_service.ts"],"names":[],"mappings":";AAGA,OAAO,EAAsB,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"discV5_service.d.ts","sourceRoot":"","sources":["../../../src/services/discv5/discV5_service.ts"],"names":[],"mappings":";AAGA,OAAO,EAAsB,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEvG,OAAO,EAAmC,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,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;AAIjD,OAAO,EAAE,KAAK,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAI9E;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAa,YAAW,oBAAoB;IAyB3E,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,MAAM;IA3BhB,0BAA0B;IAC1B,OAAO,CAAC,MAAM,CAA8B;IAE5C,0BAA0B;IAC1B,OAAO,CAAC,GAAG,CAAc;IAEzB,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAqB;IAErC,OAAO,CAAC,YAAY,CAA8B;IAElD,SAAgB,cAAc,EAAE,MAAM,EAAE,CAAM;IAC9C,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,iBAAiB,CAAa;IAEtC,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,QAAQ,CAId;gBAGQ,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,SAAS,EACzB,SAAS,GAAE,eAAsC,EACzC,MAAM,yCAAqC,EACnD,eAAe,GAAE,OAAO,CAAC,oBAAoB,CAAM;IAgErD,OAAO,CAAC,kBAAkB;IAOb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuCtB,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;YAUpB,UAAU;IAOxB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,WAAW;CA0BpB"}
|
|
@@ -20,42 +20,47 @@ const delayBeforeStart = 2000; // 2sec
|
|
|
20
20
|
/** The Discv5 instance */ discv5;
|
|
21
21
|
/** This instance's ENR */ enr;
|
|
22
22
|
/** Version identifiers. */ versions;
|
|
23
|
-
/** UDP listen addr */ listenMultiAddrUdp;
|
|
24
23
|
currentState;
|
|
25
24
|
bootstrapNodes;
|
|
26
25
|
bootstrapNodePeerIds;
|
|
27
26
|
bootstrapNodeEnrs;
|
|
28
27
|
startTime;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
28
|
+
handlers;
|
|
29
|
+
constructor(peerId, config, telemetry = getTelemetryClient(), logger = createLogger('p2p:discv5_service'), configOverrides = {}){
|
|
30
|
+
super(), this.peerId = peerId, this.config = config, this.logger = logger, this.currentState = PeerDiscoveryState.STOPPED, this.bootstrapNodes = [], this.bootstrapNodePeerIds = [], this.bootstrapNodeEnrs = [], this.startTime = 0, this.handlers = {
|
|
31
|
+
onMultiaddrUpdated: this.onMultiaddrUpdated.bind(this),
|
|
32
|
+
onDiscovered: this.onDiscovered.bind(this),
|
|
33
|
+
onEnrAdded: this.onEnrAdded.bind(this)
|
|
34
|
+
};
|
|
35
|
+
const { p2pIp, p2pPort, bootstrapNodes } = config;
|
|
32
36
|
this.bootstrapNodes = bootstrapNodes ?? [];
|
|
33
37
|
this.bootstrapNodeEnrs = this.bootstrapNodes.map((x)=>ENR.decodeTxt(x));
|
|
34
38
|
// create ENR from PeerId
|
|
35
39
|
this.enr = SignableENR.createFromPeerId(peerId);
|
|
36
40
|
// Add aztec identification to ENR
|
|
37
41
|
this.versions = setAztecEnrKey(this.enr, config);
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
const bindAddrs = {
|
|
43
|
+
ip4: multiaddr(convertToMultiaddr(config.listenAddress, p2pPort, 'udp'))
|
|
44
|
+
};
|
|
45
|
+
if (p2pIp) {
|
|
46
|
+
const multiAddrTcp = multiaddr(`${convertToMultiaddr(p2pIp, p2pPort, 'tcp')}/p2p/${peerId.toString()}`);
|
|
47
|
+
// if no udp announce address is provided, use the tcp announce address
|
|
48
|
+
const multiAddrUdp = multiaddr(`${convertToMultiaddr(p2pIp, p2pPort, 'udp')}/p2p/${peerId.toString()}`);
|
|
49
|
+
// set location multiaddr in ENR record
|
|
50
|
+
this.enr.setLocationMultiaddr(multiAddrUdp);
|
|
51
|
+
this.enr.setLocationMultiaddr(multiAddrTcp);
|
|
40
52
|
}
|
|
41
|
-
const multiAddrTcp = multiaddr(`${convertToMultiaddr(tcpAnnounceAddress, 'tcp')}/p2p/${peerId.toString()}`);
|
|
42
|
-
// if no udp announce address is provided, use the tcp announce address
|
|
43
|
-
const multiAddrUdp = multiaddr(`${convertToMultiaddr(udpAnnounceAddress || tcpAnnounceAddress, 'udp')}/p2p/${peerId.toString()}`);
|
|
44
|
-
this.listenMultiAddrUdp = multiaddr(convertToMultiaddr(udpListenAddress, 'udp'));
|
|
45
|
-
// set location multiaddr in ENR record
|
|
46
|
-
this.enr.setLocationMultiaddr(multiAddrUdp);
|
|
47
|
-
this.enr.setLocationMultiaddr(multiAddrTcp);
|
|
48
53
|
const metricsRegistry = new OtelMetricsAdapter(telemetry);
|
|
49
54
|
this.discv5 = Discv5.create({
|
|
50
55
|
enr: this.enr,
|
|
51
56
|
peerId,
|
|
52
|
-
bindAddrs
|
|
53
|
-
ip4: this.listenMultiAddrUdp
|
|
54
|
-
},
|
|
57
|
+
bindAddrs,
|
|
55
58
|
config: {
|
|
56
59
|
lookupTimeout: 2000,
|
|
57
60
|
requestTimeout: 2000,
|
|
58
|
-
allowUnverifiedSessions: true
|
|
61
|
+
allowUnverifiedSessions: true,
|
|
62
|
+
enrUpdate: !p2pIp ? true : false,
|
|
63
|
+
...configOverrides.config
|
|
59
64
|
},
|
|
60
65
|
metricsRegistry
|
|
61
66
|
});
|
|
@@ -77,8 +82,17 @@ const delayBeforeStart = 2000; // 2sec
|
|
|
77
82
|
return origOnEstablished(...args);
|
|
78
83
|
}
|
|
79
84
|
};
|
|
80
|
-
this.discv5.on(Discv5Event.DISCOVERED, this.onDiscovered
|
|
81
|
-
this.discv5.on(Discv5Event.ENR_ADDED, this.onEnrAdded
|
|
85
|
+
this.discv5.on(Discv5Event.DISCOVERED, this.handlers.onDiscovered);
|
|
86
|
+
this.discv5.on(Discv5Event.ENR_ADDED, this.handlers.onEnrAdded);
|
|
87
|
+
this.discv5.on(Discv5Event.MULTIADDR_UPDATED, this.handlers.onMultiaddrUpdated);
|
|
88
|
+
}
|
|
89
|
+
onMultiaddrUpdated(m) {
|
|
90
|
+
// We want to update our tcp port to match the udp port
|
|
91
|
+
const multiAddrTcp = multiaddr(convertToMultiaddr(m.nodeAddress().address, this.config.p2pPort, 'tcp'));
|
|
92
|
+
this.enr.setLocationMultiaddr(multiAddrTcp);
|
|
93
|
+
this.logger.info('Multiaddr updated', {
|
|
94
|
+
multiaddr: multiaddr.toString()
|
|
95
|
+
});
|
|
82
96
|
}
|
|
83
97
|
async start() {
|
|
84
98
|
if (this.currentState === PeerDiscoveryState.RUNNING) {
|
|
@@ -148,8 +162,9 @@ const delayBeforeStart = 2000; // 2sec
|
|
|
148
162
|
return this.bootstrapNodePeerIds.some((node)=>node.equals(peerId));
|
|
149
163
|
}
|
|
150
164
|
async stop() {
|
|
151
|
-
await this.discv5.off(Discv5Event.DISCOVERED, this.onDiscovered);
|
|
152
|
-
await this.discv5.off(Discv5Event.ENR_ADDED, this.onEnrAdded);
|
|
165
|
+
await this.discv5.off(Discv5Event.DISCOVERED, this.handlers.onDiscovered);
|
|
166
|
+
await this.discv5.off(Discv5Event.ENR_ADDED, this.handlers.onEnrAdded);
|
|
167
|
+
await this.discv5.off(Discv5Event.MULTIADDR_UPDATED, this.handlers.onMultiaddrUpdated);
|
|
153
168
|
await this.discv5.stop();
|
|
154
169
|
this.currentState = PeerDiscoveryState.STOPPED;
|
|
155
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACvH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,UAAU,EACf,aAAa,EAKd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAkC,KAAK,eAAe,EAAE,UAAU,EAAa,MAAM,yBAAyB,CAAC;AAEtH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAa1C,OAAO,EAAgB,KAAK,MAAM,EAAwB,MAAM,mBAAmB,CAAC;AAEpF,OAAO,iBAAiB,CAAC;AAKzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAS7D,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,eAAe,CAAC;AAMtE,OAAO,EAAmC,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGnH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAiBtE;;GAEG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,aAAa,CAAE,SAAQ,UAAW,YAAW,UAAU;IAuBxF,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,MAAM;IAhChB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,uBAAuB,CAAC,CAAiB;IAGjD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,sBAAsB,CAAyB;IAGhD,OAAO,EAAE,OAAO,CAAC;IAGxB,OAAO,CAAC,eAAe,CAAgB;IAEvC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAkE;gBAGrF,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,YAAY,EAClB,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,aAAa,EAAE,aAAa,EACpC,UAAU,EAAE,mBAAmB,EACvB,aAAa,EAAE,6BAA6B,EAC5C,sBAAsB,EAAE,sBAAsB,EACtD,SAAS,EAAE,eAAe,EAClB,MAAM,yCAAqC;IAmCrD;;;;;OAKG;WACiB,GAAG,CAAC,CAAC,SAAS,aAAa,EAC7C,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,SAAS,EACjB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,mBAAmB,EAC/B,aAAa,EAAE,6BAA6B,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,eAAe,EAC1B,MAAM,yCAAqC;
|
|
1
|
+
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,6BAA6B,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACvH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,UAAU,EACf,aAAa,EAKd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAkC,KAAK,eAAe,EAAE,UAAU,EAAa,MAAM,yBAAyB,CAAC;AAEtH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAa1C,OAAO,EAAgB,KAAK,MAAM,EAAwB,MAAM,mBAAmB,CAAC;AAEpF,OAAO,iBAAiB,CAAC;AAKzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAS7D,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,eAAe,CAAC;AAMtE,OAAO,EAAmC,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGnH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAiBtE;;GAEG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,aAAa,CAAE,SAAQ,UAAW,YAAW,UAAU;IAuBxF,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,aAAa;IAErB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,MAAM;IAhChB,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,uBAAuB,CAAC,CAAiB;IAGjD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,sBAAsB,CAAyB;IAGhD,OAAO,EAAE,OAAO,CAAC;IAGxB,OAAO,CAAC,eAAe,CAAgB;IAEvC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAkE;gBAGrF,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,YAAY,EAClB,oBAAoB,EAAE,oBAAoB,EAC1C,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,aAAa,EAAE,aAAa,EACpC,UAAU,EAAE,mBAAmB,EACvB,aAAa,EAAE,6BAA6B,EAC5C,sBAAsB,EAAE,sBAAsB,EACtD,SAAS,EAAE,eAAe,EAClB,MAAM,yCAAqC;IAmCrD;;;;;OAKG;WACiB,GAAG,CAAC,CAAC,SAAS,aAAa,EAC7C,UAAU,EAAE,CAAC,EACb,MAAM,EAAE,SAAS,EACjB,oBAAoB,EAAE,oBAAoB,EAC1C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,mBAAmB,EAC/B,aAAa,EAAE,6BAA6B,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,eAAe,EAC1B,MAAM,yCAAqC;IAwH7C;;;OAGG;IACU,KAAK;IAgElB;;;OAGG;IACU,IAAI;IAqBV,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE;IAIrD,OAAO,CAAC,oBAAoB;IAa5B;;;;;;;;;OASG;IACH,WAAW,CAAC,WAAW,SAAS,kBAAkB,EAChD,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAC5D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IAI7E;;;;;OAKG;IACH,gBAAgB,CAAC,WAAW,SAAS,kBAAkB,EACrD,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAC/D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;IAI/E;;;OAGG;IACI,MAAM,IAAI,GAAG,GAAG,SAAS;IAIzB,6BAA6B,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAK9G;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;;;;OAKG;YACW,cAAc;IAS5B;;;;OAIG;YACW,sBAAsB;YActB,uBAAuB;YAoBvB,gBAAgB;IAiB9B;;;;OAIG;YACW,0BAA0B;YA+B1B,oBAAoB;YAyBpB,yBAAyB;IA4BvC;;;OAGG;YAOW,oBAAoB;IAIlC;;;OAGG;IACU,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,CAAC;IAYvD;;;;;;;;;;;;;OAaG;YAIW,mBAAmB;YAuBnB,oBAAoB;IAoBlC;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IA2B/B;;;;;OAKG;YACW,cAAc;IA8B5B;;;;;;;;;;OAUG;YACW,wBAAwB;IAuBtC;;;;;OAKG;IAOU,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAUjG;;;;;OAKG;IAIU,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAUnF,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;YAI7B,WAAW;YAcX,UAAU;CAYzB"}
|
|
@@ -89,10 +89,8 @@ import { ReqResp } from '../reqresp/reqresp.js';
|
|
|
89
89
|
* @param txPool - The transaction pool to be accessed by the service.
|
|
90
90
|
* @returns The new service.
|
|
91
91
|
*/ static async new(clientType, config, peerDiscoveryService, peerId, mempools, l2BlockSource, epochCache, proofVerifier, worldStateSynchronizer, store, telemetry, logger = createLogger('p2p:libp2p_service')) {
|
|
92
|
-
const {
|
|
93
|
-
const bindAddrTcp = convertToMultiaddr(
|
|
94
|
-
// We know tcpAnnounceAddress cannot be null here because we set it or throw when setting up the service.
|
|
95
|
-
const announceAddrTcp = convertToMultiaddr(tcpAnnounceAddress, 'tcp');
|
|
92
|
+
const { p2pPort, maxPeerCount, listenAddress } = config;
|
|
93
|
+
const bindAddrTcp = convertToMultiaddr(listenAddress, p2pPort, 'tcp');
|
|
96
94
|
const datastore = new AztecDatastore(store);
|
|
97
95
|
const otelMetricsAdapter = new OtelMetricsAdapter(telemetry);
|
|
98
96
|
const bootstrapNodes = peerDiscoveryService.bootstrapNodes;
|
|
@@ -112,9 +110,7 @@ import { ReqResp } from '../reqresp/reqresp.js';
|
|
|
112
110
|
listen: [
|
|
113
111
|
bindAddrTcp
|
|
114
112
|
],
|
|
115
|
-
announce: [
|
|
116
|
-
announceAddrTcp
|
|
117
|
-
]
|
|
113
|
+
announce: []
|
|
118
114
|
},
|
|
119
115
|
transports: [
|
|
120
116
|
tcp({
|
|
@@ -208,11 +204,11 @@ import { ReqResp } from '../reqresp/reqresp.js';
|
|
|
208
204
|
throw new Error('P2P service already started');
|
|
209
205
|
}
|
|
210
206
|
// Get listen & announce addresses for logging
|
|
211
|
-
const {
|
|
212
|
-
if (!
|
|
207
|
+
const { p2pIp, p2pPort } = this.config;
|
|
208
|
+
if (!p2pIp) {
|
|
213
209
|
throw new Error('Announce address not provided.');
|
|
214
210
|
}
|
|
215
|
-
const announceTcpMultiaddr = convertToMultiaddr(
|
|
211
|
+
const announceTcpMultiaddr = convertToMultiaddr(p2pIp, p2pPort, 'tcp');
|
|
216
212
|
// Start job queue, peer discovery service and libp2p node
|
|
217
213
|
this.jobQueue.start();
|
|
218
214
|
await this.peerManager.initializeTrustedPeers();
|
|
@@ -246,7 +242,8 @@ import { ReqResp } from '../reqresp/reqresp.js';
|
|
|
246
242
|
};
|
|
247
243
|
await this.reqresp.start(requestResponseHandlers, reqrespSubProtocolValidators);
|
|
248
244
|
this.logger.info(`Started P2P service`, {
|
|
249
|
-
listen:
|
|
245
|
+
listen: this.config.listenAddress,
|
|
246
|
+
port: this.config.p2pPort,
|
|
250
247
|
announce: announceTcpMultiaddr,
|
|
251
248
|
peerId: this.node.peerId.toString()
|
|
252
249
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-enrs.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-enrs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQxD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,qBAM5F;AAED;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"make-enrs.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-enrs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAQxD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,qBAM5F;AAED;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,mBAcrF"}
|