@aztec/p2p 0.55.0 → 0.55.1
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/index.d.ts +2 -2
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +43 -38
- package/dest/config.d.ts +49 -0
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +66 -2
- package/dest/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -1
- package/dest/service/libp2p_service.d.ts +10 -11
- package/dest/service/libp2p_service.d.ts.map +1 -1
- package/dest/service/libp2p_service.js +103 -18
- package/dest/service/peer_manager.d.ts +9 -13
- package/dest/service/peer_manager.d.ts.map +1 -1
- package/dest/service/peer_manager.js +15 -1
- package/dest/service/peer_scoring.d.ts +32 -0
- package/dest/service/peer_scoring.d.ts.map +1 -0
- package/dest/service/peer_scoring.js +67 -0
- package/dest/tx_validator/aggregate_tx_validator.d.ts +7 -0
- package/dest/tx_validator/aggregate_tx_validator.d.ts.map +1 -0
- package/dest/tx_validator/aggregate_tx_validator.js +23 -0
- package/dest/tx_validator/data_validator.d.ts +6 -0
- package/dest/tx_validator/data_validator.d.ts.map +1 -0
- package/dest/tx_validator/data_validator.js +47 -0
- package/dest/tx_validator/double_spend_validator.d.ts +12 -0
- package/dest/tx_validator/double_spend_validator.d.ts.map +1 -0
- package/dest/tx_validator/double_spend_validator.js +53 -0
- package/dest/tx_validator/index.d.ts +6 -0
- package/dest/tx_validator/index.d.ts.map +1 -0
- package/dest/tx_validator/index.js +6 -0
- package/dest/tx_validator/metadata_validator.d.ts +10 -0
- package/dest/tx_validator/metadata_validator.d.ts.map +1 -0
- package/dest/tx_validator/metadata_validator.js +50 -0
- package/dest/tx_validator/tx_proof_validator.d.ts +9 -0
- package/dest/tx_validator/tx_proof_validator.d.ts.map +1 -0
- package/dest/tx_validator/tx_proof_validator.js +29 -0
- package/dest/util.d.ts +7 -0
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +1 -1
- package/package.json +6 -6
- package/src/client/index.ts +65 -47
- package/src/config.ts +127 -0
- package/src/index.ts +1 -0
- package/src/service/libp2p_service.ts +137 -24
- package/src/service/peer_manager.ts +23 -4
- package/src/service/peer_scoring.ts +81 -0
- package/src/tx_validator/aggregate_tx_validator.ts +24 -0
- package/src/tx_validator/data_validator.ts +61 -0
- package/src/tx_validator/double_spend_validator.ts +65 -0
- package/src/tx_validator/index.ts +5 -0
- package/src/tx_validator/metadata_validator.ts +61 -0
- package/src/tx_validator/tx_proof_validator.ts +28 -0
- package/src/util.ts +8 -0
package/dest/client/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { ClientProtocolCircuitVerifier, L2BlockSource, WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
2
2
|
import { type AztecKVStore } from '@aztec/kv-store';
|
|
3
3
|
import { type DataStoreConfig } from '@aztec/kv-store/utils';
|
|
4
4
|
import { type TelemetryClient } from '@aztec/telemetry-client';
|
|
@@ -7,7 +7,7 @@ import { P2PClient } from '../client/p2p_client.js';
|
|
|
7
7
|
import { type P2PConfig } from '../config.js';
|
|
8
8
|
import { type TxPool } from '../tx_pool/index.js';
|
|
9
9
|
export * from './p2p_client.js';
|
|
10
|
-
export declare const createP2PClient: (
|
|
10
|
+
export declare const createP2PClient: (_config: P2PConfig & DataStoreConfig, attestationsPool: AttestationPool, l2BlockSource: L2BlockSource, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, telemetry?: TelemetryClient, deps?: {
|
|
11
11
|
txPool?: TxPool;
|
|
12
12
|
store?: AztecKVStore;
|
|
13
13
|
}) => Promise<P2PClient>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEjH,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,KAAK,eAAe,EAAe,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGjE,cAAc,iBAAiB,CAAC;AAEhC,eAAO,MAAM,eAAe,YACjB,SAAS,GAAG,eAAe,oBAClB,eAAe,iBAClB,aAAa,iBACb,6BAA6B,0BACpB,sBAAsB,cACnC,eAAe,SACpB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,YAAY,CAAA;CAAE,uBA8BhD,CAAC"}
|
package/dest/client/index.js
CHANGED
|
@@ -8,53 +8,58 @@ import { LibP2PService, createLibP2PPeerId } from '../service/index.js';
|
|
|
8
8
|
import { AztecKVTxPool } from '../tx_pool/index.js';
|
|
9
9
|
import { getPublicIp, resolveAddressIfNecessary, splitAddressPort } from '../util.js';
|
|
10
10
|
export * from './p2p_client.js';
|
|
11
|
-
export const createP2PClient = async (
|
|
11
|
+
export const createP2PClient = async (_config, attestationsPool, l2BlockSource, proofVerifier, worldStateSynchronizer, telemetry = new NoopTelemetryClient(), deps = {}) => {
|
|
12
|
+
let config = { ..._config };
|
|
12
13
|
const store = deps.store ?? (await createStore('p2p', config, createDebugLogger('aztec:p2p:lmdb')));
|
|
13
14
|
const txPool = deps.txPool ?? new AztecKVTxPool(store, telemetry);
|
|
14
15
|
let p2pService;
|
|
15
|
-
if (
|
|
16
|
-
|
|
17
|
-
const { tcpAnnounceAddress: configTcpAnnounceAddress, udpAnnounceAddress: configUdpAnnounceAddress, queryForIp, } = config;
|
|
18
|
-
config.tcpAnnounceAddress = configTcpAnnounceAddress
|
|
19
|
-
? await resolveAddressIfNecessary(configTcpAnnounceAddress)
|
|
20
|
-
: undefined;
|
|
21
|
-
config.udpAnnounceAddress = configUdpAnnounceAddress
|
|
22
|
-
? await resolveAddressIfNecessary(configUdpAnnounceAddress)
|
|
23
|
-
: undefined;
|
|
24
|
-
// create variable for re-use if needed
|
|
25
|
-
let publicIp;
|
|
26
|
-
// check if no announce IP was provided
|
|
27
|
-
const splitTcpAnnounceAddress = splitAddressPort(configTcpAnnounceAddress || '', true);
|
|
28
|
-
if (splitTcpAnnounceAddress.length == 2 && splitTcpAnnounceAddress[0] === '') {
|
|
29
|
-
if (queryForIp) {
|
|
30
|
-
publicIp = await getPublicIp();
|
|
31
|
-
const tcpAnnounceAddress = `${publicIp}:${splitTcpAnnounceAddress[1]}`;
|
|
32
|
-
config.tcpAnnounceAddress = tcpAnnounceAddress;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
throw new Error(`Invalid announceTcpAddress provided: ${configTcpAnnounceAddress}. Expected format: <addr>:<port>`);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
const splitUdpAnnounceAddress = splitAddressPort(configUdpAnnounceAddress || '', true);
|
|
39
|
-
if (splitUdpAnnounceAddress.length == 2 && splitUdpAnnounceAddress[0] === '') {
|
|
40
|
-
// If announceUdpAddress is not provided, use announceTcpAddress
|
|
41
|
-
if (!queryForIp && config.tcpAnnounceAddress) {
|
|
42
|
-
config.udpAnnounceAddress = config.tcpAnnounceAddress;
|
|
43
|
-
}
|
|
44
|
-
else if (queryForIp) {
|
|
45
|
-
const udpPublicIp = publicIp || (await getPublicIp());
|
|
46
|
-
const udpAnnounceAddress = `${udpPublicIp}:${splitUdpAnnounceAddress[1]}`;
|
|
47
|
-
config.udpAnnounceAddress = udpAnnounceAddress;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
16
|
+
if (_config.p2pEnabled) {
|
|
17
|
+
config = await configureP2PClientAddresses(_config);
|
|
50
18
|
// Create peer discovery service
|
|
51
19
|
const peerId = await createLibP2PPeerId(config.peerIdPrivateKey);
|
|
52
20
|
const discoveryService = new DiscV5Service(peerId, config);
|
|
53
|
-
p2pService = await LibP2PService.new(config, discoveryService, peerId, txPool, attestationsPool, store);
|
|
21
|
+
p2pService = await LibP2PService.new(config, discoveryService, peerId, txPool, attestationsPool, l2BlockSource, proofVerifier, worldStateSynchronizer, store);
|
|
54
22
|
}
|
|
55
23
|
else {
|
|
56
24
|
p2pService = new DummyP2PService();
|
|
57
25
|
}
|
|
58
26
|
return new P2PClient(store, l2BlockSource, txPool, attestationsPool, p2pService, config.keepProvenTxsInPoolFor);
|
|
59
27
|
};
|
|
60
|
-
|
|
28
|
+
async function configureP2PClientAddresses(_config) {
|
|
29
|
+
const config = { ..._config };
|
|
30
|
+
const { tcpAnnounceAddress: configTcpAnnounceAddress, udpAnnounceAddress: configUdpAnnounceAddress, queryForIp, } = config;
|
|
31
|
+
config.tcpAnnounceAddress = configTcpAnnounceAddress
|
|
32
|
+
? await resolveAddressIfNecessary(configTcpAnnounceAddress)
|
|
33
|
+
: undefined;
|
|
34
|
+
config.udpAnnounceAddress = configUdpAnnounceAddress
|
|
35
|
+
? await resolveAddressIfNecessary(configUdpAnnounceAddress)
|
|
36
|
+
: undefined;
|
|
37
|
+
// create variable for re-use if needed
|
|
38
|
+
let publicIp;
|
|
39
|
+
// check if no announce IP was provided
|
|
40
|
+
const splitTcpAnnounceAddress = splitAddressPort(configTcpAnnounceAddress || '', true);
|
|
41
|
+
if (splitTcpAnnounceAddress.length == 2 && splitTcpAnnounceAddress[0] === '') {
|
|
42
|
+
if (queryForIp) {
|
|
43
|
+
publicIp = await getPublicIp();
|
|
44
|
+
const tcpAnnounceAddress = `${publicIp}:${splitTcpAnnounceAddress[1]}`;
|
|
45
|
+
config.tcpAnnounceAddress = tcpAnnounceAddress;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new Error(`Invalid announceTcpAddress provided: ${configTcpAnnounceAddress}. Expected format: <addr>:<port>`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const splitUdpAnnounceAddress = splitAddressPort(configUdpAnnounceAddress || '', true);
|
|
52
|
+
if (splitUdpAnnounceAddress.length == 2 && splitUdpAnnounceAddress[0] === '') {
|
|
53
|
+
// If announceUdpAddress is not provided, use announceTcpAddress
|
|
54
|
+
if (!queryForIp && config.tcpAnnounceAddress) {
|
|
55
|
+
config.udpAnnounceAddress = config.tcpAnnounceAddress;
|
|
56
|
+
}
|
|
57
|
+
else if (queryForIp) {
|
|
58
|
+
const udpPublicIp = publicIp || (await getPublicIp());
|
|
59
|
+
const udpAnnounceAddress = `${udpPublicIp}:${splitUdpAnnounceAddress[1]}`;
|
|
60
|
+
config.udpAnnounceAddress = udpAnnounceAddress;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return config;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBd0IsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXBELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRGLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFDbEMsT0FBb0MsRUFDcEMsZ0JBQWlDLEVBQ2pDLGFBQTRCLEVBQzVCLGFBQTRDLEVBQzVDLHNCQUE4QyxFQUM5QyxZQUE2QixJQUFJLG1CQUFtQixFQUFFLEVBQ3RELE9BQWtELEVBQUUsRUFDcEQsRUFBRTtJQUNGLElBQUksTUFBTSxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRyxNQUFNLE1BQU0sR0FBRyxJ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
|
package/dest/config.d.ts
CHANGED
|
@@ -66,6 +66,54 @@ export interface P2PConfig extends P2PReqRespConfig {
|
|
|
66
66
|
queryForIp: boolean;
|
|
67
67
|
/** How many blocks have to pass after a block is proven before its txs are deleted (zero to delete immediately once proven) */
|
|
68
68
|
keepProvenTxsInPoolFor: number;
|
|
69
|
+
/**
|
|
70
|
+
* The interval of the gossipsub heartbeat to perform maintenance tasks.
|
|
71
|
+
*/
|
|
72
|
+
gossipsubInterval: number;
|
|
73
|
+
/**
|
|
74
|
+
* The D parameter for the gossipsub protocol.
|
|
75
|
+
*/
|
|
76
|
+
gossipsubD: number;
|
|
77
|
+
/**
|
|
78
|
+
* The Dlo parameter for the gossipsub protocol.
|
|
79
|
+
*/
|
|
80
|
+
gossipsubDlo: number;
|
|
81
|
+
/**
|
|
82
|
+
* The Dhi parameter for the gossipsub protocol.
|
|
83
|
+
*/
|
|
84
|
+
gossipsubDhi: number;
|
|
85
|
+
/**
|
|
86
|
+
* The number of gossipsub interval message cache windows to keep.
|
|
87
|
+
*/
|
|
88
|
+
gossipsubMcacheLength: number;
|
|
89
|
+
/**
|
|
90
|
+
* How many message cache windows to include when gossiping with other pears.
|
|
91
|
+
*/
|
|
92
|
+
gossipsubMcacheGossip: number;
|
|
93
|
+
/**
|
|
94
|
+
* The 'age' (in # of L2 blocks) of a processed tx after which we heavily penalize a peer for re-sending it.
|
|
95
|
+
*/
|
|
96
|
+
severePeerPenaltyBlockLength: number;
|
|
97
|
+
/**
|
|
98
|
+
* The weight of the tx topic for the gossipsub protocol. This determines how much the score for this specific topic contributes to the overall peer score.
|
|
99
|
+
*/
|
|
100
|
+
gossipsubTxTopicWeight: number;
|
|
101
|
+
/**
|
|
102
|
+
* This is the weight applied to the penalty for delivering invalid messages.
|
|
103
|
+
*/
|
|
104
|
+
gossipsubTxInvalidMessageDeliveriesWeight: number;
|
|
105
|
+
/**
|
|
106
|
+
* determines how quickly the penalty for invalid message deliveries decays over time. Between 0 and 1.
|
|
107
|
+
*/
|
|
108
|
+
gossipsubTxInvalidMessageDeliveriesDecay: number;
|
|
109
|
+
/**
|
|
110
|
+
* The values for the peer scoring system. Passed as a comma separated list of values in order: low, mid, high tolerance errors.
|
|
111
|
+
*/
|
|
112
|
+
peerPenaltyValues: number[];
|
|
113
|
+
/**
|
|
114
|
+
* The chain id of the L1 chain.
|
|
115
|
+
*/
|
|
116
|
+
l1ChainId: number;
|
|
69
117
|
}
|
|
70
118
|
export declare const p2pConfigMappings: ConfigMappingsType<P2PConfig>;
|
|
71
119
|
/**
|
|
@@ -73,6 +121,7 @@ export declare const p2pConfigMappings: ConfigMappingsType<P2PConfig>;
|
|
|
73
121
|
* @returns The config values for p2p client.
|
|
74
122
|
*/
|
|
75
123
|
export declare function getP2PConfigEnvVars(): P2PConfig;
|
|
124
|
+
export declare function getP2PDefaultConfig(): P2PConfig;
|
|
76
125
|
/**
|
|
77
126
|
* Required P2P config values for a bootstrap node.
|
|
78
127
|
*/
|
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,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAMxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,6BAA6B,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB,+HAA+H;IAC/H,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;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,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,4BAA4B,EAAE,MAAM,CAAC;IAErC;;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;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAgJ3D,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,oBAAoB,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAC5E,GACC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAUhD,eAAO,MAAM,sBAAsB,uIAA4D,CAAC"}
|
package/dest/config.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { booleanConfigHelper, getConfigFromMappings, numberConfigHelper, pickConfigMappings, } from '@aztec/foundation/config';
|
|
1
|
+
import { booleanConfigHelper, getConfigFromMappings, getDefaultConfig, numberConfigHelper, pickConfigMappings, } from '@aztec/foundation/config';
|
|
2
2
|
import { p2pReqRespConfigMappings } from './service/reqresp/config.js';
|
|
3
3
|
export const p2pConfigMappings = {
|
|
4
4
|
p2pEnabled: {
|
|
@@ -77,6 +77,67 @@ export const p2pConfigMappings = {
|
|
|
77
77
|
description: 'How many blocks have to pass after a block is proven before its txs are deleted (zero to delete immediately once proven)',
|
|
78
78
|
...numberConfigHelper(0),
|
|
79
79
|
},
|
|
80
|
+
gossipsubInterval: {
|
|
81
|
+
env: 'P2P_GOSSIPSUB_INTERVAL_MS',
|
|
82
|
+
description: 'The interval of the gossipsub heartbeat to perform maintenance tasks.',
|
|
83
|
+
...numberConfigHelper(1000),
|
|
84
|
+
},
|
|
85
|
+
gossipsubD: {
|
|
86
|
+
env: 'P2P_GOSSIPSUB_D',
|
|
87
|
+
description: 'The D parameter for the gossipsub protocol.',
|
|
88
|
+
...numberConfigHelper(8),
|
|
89
|
+
},
|
|
90
|
+
gossipsubDlo: {
|
|
91
|
+
env: 'P2P_GOSSIPSUB_DLO',
|
|
92
|
+
description: 'The Dlo parameter for the gossipsub protocol.',
|
|
93
|
+
...numberConfigHelper(4),
|
|
94
|
+
},
|
|
95
|
+
gossipsubDhi: {
|
|
96
|
+
env: 'P2P_GOSSIPSUB_DHI',
|
|
97
|
+
description: 'The Dhi parameter for the gossipsub protocol.',
|
|
98
|
+
...numberConfigHelper(12),
|
|
99
|
+
},
|
|
100
|
+
gossipsubMcacheLength: {
|
|
101
|
+
env: 'P2P_GOSSIPSUB_MCACHE_LENGTH',
|
|
102
|
+
description: 'The number of gossipsub interval message cache windows to keep.',
|
|
103
|
+
...numberConfigHelper(5),
|
|
104
|
+
},
|
|
105
|
+
gossipsubMcacheGossip: {
|
|
106
|
+
env: 'P2P_GOSSIPSUB_MCACHE_GOSSIP',
|
|
107
|
+
description: 'How many message cache windows to include when gossiping with other pears.',
|
|
108
|
+
...numberConfigHelper(3),
|
|
109
|
+
},
|
|
110
|
+
gossipsubTxTopicWeight: {
|
|
111
|
+
env: 'P2P_GOSSIPSUB_TX_TOPIC_WEIGHT',
|
|
112
|
+
description: 'The weight of the tx topic for the gossipsub protocol.',
|
|
113
|
+
...numberConfigHelper(1),
|
|
114
|
+
},
|
|
115
|
+
gossipsubTxInvalidMessageDeliveriesWeight: {
|
|
116
|
+
env: 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_WEIGHT',
|
|
117
|
+
description: 'The weight of the tx invalid message deliveries for the gossipsub protocol.',
|
|
118
|
+
...numberConfigHelper(-20),
|
|
119
|
+
},
|
|
120
|
+
gossipsubTxInvalidMessageDeliveriesDecay: {
|
|
121
|
+
env: 'P2P_GOSSIPSUB_TX_INVALID_MESSAGE_DELIVERIES_DECAY',
|
|
122
|
+
description: 'Determines how quickly the penalty for invalid message deliveries decays over time. Between 0 and 1.',
|
|
123
|
+
...numberConfigHelper(0.5),
|
|
124
|
+
},
|
|
125
|
+
peerPenaltyValues: {
|
|
126
|
+
env: 'P2P_PEER_PENALTY_VALUES',
|
|
127
|
+
parseEnv: (val) => val.split(',').map(Number),
|
|
128
|
+
description: 'The values for the peer scoring system. Passed as a comma separated list of values in order: low, mid, high tolerance errors.',
|
|
129
|
+
defaultValue: [2, 10, 50],
|
|
130
|
+
},
|
|
131
|
+
severePeerPenaltyBlockLength: {
|
|
132
|
+
env: 'P2P_SEVERE_PEER_PENALTY_BLOCK_LENGTH',
|
|
133
|
+
description: 'The "age" (in L2 blocks) of a tx after which we heavily penalize a peer for sending it.',
|
|
134
|
+
...numberConfigHelper(30),
|
|
135
|
+
},
|
|
136
|
+
l1ChainId: {
|
|
137
|
+
env: 'L1_CHAIN_ID',
|
|
138
|
+
description: 'The chain id of the L1 chain.',
|
|
139
|
+
...numberConfigHelper(31337),
|
|
140
|
+
},
|
|
80
141
|
...p2pReqRespConfigMappings,
|
|
81
142
|
};
|
|
82
143
|
/**
|
|
@@ -86,6 +147,9 @@ export const p2pConfigMappings = {
|
|
|
86
147
|
export function getP2PConfigEnvVars() {
|
|
87
148
|
return getConfigFromMappings(p2pConfigMappings);
|
|
88
149
|
}
|
|
150
|
+
export function getP2PDefaultConfig() {
|
|
151
|
+
return getDefaultConfig(p2pConfigMappings);
|
|
152
|
+
}
|
|
89
153
|
const bootnodeConfigKeys = [
|
|
90
154
|
'udpAnnounceAddress',
|
|
91
155
|
'peerIdPrivateKey',
|
|
@@ -94,4 +158,4 @@ const bootnodeConfigKeys = [
|
|
|
94
158
|
'udpListenAddress',
|
|
95
159
|
];
|
|
96
160
|
export const bootnodeConfigMappings = pickConfigMappings(p2pConfigMappings, bootnodeConfigKeys);
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBeUIsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWlKOUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWtDO0lBQzlELFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxhQUFhO1FBQ2xCLFdBQVcsRUFBRSwrREFBK0Q7UUFDNUUsR0FBRyxtQkFBbUIsRUFBRTtLQUN6QjtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELG1CQUFtQixFQUFFO1FBQ25CLEdBQUcsRUFBRSw0QkFBNEI7UUFDakMsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxpQkFBaUI7UUFDdEIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxpQkFBaUI7UUFDdEIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsV0FB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
|
package/dest/index.d.ts
CHANGED
package/dest/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC"}
|
package/dest/index.js
CHANGED
|
@@ -4,4 +4,5 @@ export * from './tx_pool/index.js';
|
|
|
4
4
|
export * from './attestation_pool/index.js';
|
|
5
5
|
export * from './service/index.js';
|
|
6
6
|
export * from './bootstrap/bootstrap.js';
|
|
7
|
-
|
|
7
|
+
export * from './tx_validator/index.js';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMseUJBQXlCLENBQUMifQ==
|
|
@@ -1,20 +1,14 @@
|
|
|
1
|
-
import { BlockAttestation, BlockProposal, type Gossipable } from '@aztec/circuit-types';
|
|
1
|
+
import { BlockAttestation, BlockProposal, type ClientProtocolCircuitVerifier, type Gossipable, type L2BlockSource, type WorldStateSynchronizer } from '@aztec/circuit-types';
|
|
2
2
|
import type { AztecKVStore } from '@aztec/kv-store';
|
|
3
3
|
import { type ENR } from '@chainsafe/enr';
|
|
4
|
-
import {
|
|
5
|
-
import type { PeerId, PubSub } from '@libp2p/interface';
|
|
4
|
+
import type { PeerId } from '@libp2p/interface';
|
|
6
5
|
import '@libp2p/kad-dht';
|
|
7
|
-
import { type Libp2p } from 'libp2p';
|
|
8
6
|
import { type AttestationPool } from '../attestation_pool/attestation_pool.js';
|
|
9
7
|
import { type P2PConfig } from '../config.js';
|
|
10
8
|
import { type TxPool } from '../tx_pool/index.js';
|
|
9
|
+
import { type PubSubLibp2p } from '../util.js';
|
|
11
10
|
import { type ReqRespSubProtocol, type ReqRespSubProtocolHandlers, type SubProtocolMap } from './reqresp/interface.js';
|
|
12
11
|
import type { P2PService, PeerDiscoveryService } from './service.js';
|
|
13
|
-
export interface PubSubLibp2p extends Libp2p {
|
|
14
|
-
services: {
|
|
15
|
-
pubsub: PubSub<GossipsubEvents>;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
12
|
/**
|
|
19
13
|
* Create a libp2p peer ID from the private key if provided, otherwise creates a new random ID.
|
|
20
14
|
* @param privateKey - Optional peer ID private key as hex string
|
|
@@ -30,6 +24,9 @@ export declare class LibP2PService implements P2PService {
|
|
|
30
24
|
private peerDiscoveryService;
|
|
31
25
|
private txPool;
|
|
32
26
|
private attestationPool;
|
|
27
|
+
private l2BlockSource;
|
|
28
|
+
private proofVerifier;
|
|
29
|
+
private worldStateSynchronizer;
|
|
33
30
|
private requestResponseHandlers;
|
|
34
31
|
private logger;
|
|
35
32
|
private jobQueue;
|
|
@@ -42,7 +39,7 @@ export declare class LibP2PService implements P2PService {
|
|
|
42
39
|
* @returns The attestation for the block, if any.
|
|
43
40
|
*/
|
|
44
41
|
private blockReceivedCallback;
|
|
45
|
-
constructor(config: P2PConfig, node: PubSubLibp2p, peerDiscoveryService: PeerDiscoveryService, txPool: TxPool, attestationPool: AttestationPool, requestResponseHandlers?: ReqRespSubProtocolHandlers, logger?: import("@aztec/foundation/log").Logger);
|
|
42
|
+
constructor(config: P2PConfig, node: PubSubLibp2p, peerDiscoveryService: PeerDiscoveryService, txPool: TxPool, attestationPool: AttestationPool, l2BlockSource: L2BlockSource, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, requestResponseHandlers?: ReqRespSubProtocolHandlers, logger?: import("@aztec/foundation/log").Logger);
|
|
46
43
|
/**
|
|
47
44
|
* Starts the LibP2P service.
|
|
48
45
|
* @returns An empty promise.
|
|
@@ -59,7 +56,7 @@ export declare class LibP2PService implements P2PService {
|
|
|
59
56
|
* @param txPool - The transaction pool to be accessed by the service.
|
|
60
57
|
* @returns The new service.
|
|
61
58
|
*/
|
|
62
|
-
static new(config: P2PConfig, peerDiscoveryService: PeerDiscoveryService, peerId: PeerId, txPool: TxPool, attestationPool: AttestationPool, store: AztecKVStore): Promise<LibP2PService>;
|
|
59
|
+
static new(config: P2PConfig, peerDiscoveryService: PeerDiscoveryService, peerId: PeerId, txPool: TxPool, attestationPool: AttestationPool, l2BlockSource: L2BlockSource, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, store: AztecKVStore): Promise<LibP2PService>;
|
|
63
60
|
/**
|
|
64
61
|
* Send Request via the ReqResp service
|
|
65
62
|
* The subprotocol defined will determine the request and response types
|
|
@@ -114,6 +111,8 @@ export declare class LibP2PService implements P2PService {
|
|
|
114
111
|
*/
|
|
115
112
|
propagate<T extends Gossipable>(message: T): void;
|
|
116
113
|
private processTxFromPeer;
|
|
114
|
+
private validateTx;
|
|
115
|
+
getPeerScore(peerId: PeerId): number;
|
|
117
116
|
private sendToPeers;
|
|
118
117
|
private stopLibP2P;
|
|
119
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../src/service/libp2p_service.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../src/service/libp2p_service.ts"],"names":[],"mappings":"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"}
|