@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.
Files changed (53) hide show
  1. package/dest/client/index.d.ts +2 -2
  2. package/dest/client/index.d.ts.map +1 -1
  3. package/dest/client/index.js +43 -38
  4. package/dest/config.d.ts +49 -0
  5. package/dest/config.d.ts.map +1 -1
  6. package/dest/config.js +66 -2
  7. package/dest/index.d.ts +1 -0
  8. package/dest/index.d.ts.map +1 -1
  9. package/dest/index.js +2 -1
  10. package/dest/service/libp2p_service.d.ts +10 -11
  11. package/dest/service/libp2p_service.d.ts.map +1 -1
  12. package/dest/service/libp2p_service.js +103 -18
  13. package/dest/service/peer_manager.d.ts +9 -13
  14. package/dest/service/peer_manager.d.ts.map +1 -1
  15. package/dest/service/peer_manager.js +15 -1
  16. package/dest/service/peer_scoring.d.ts +32 -0
  17. package/dest/service/peer_scoring.d.ts.map +1 -0
  18. package/dest/service/peer_scoring.js +67 -0
  19. package/dest/tx_validator/aggregate_tx_validator.d.ts +7 -0
  20. package/dest/tx_validator/aggregate_tx_validator.d.ts.map +1 -0
  21. package/dest/tx_validator/aggregate_tx_validator.js +23 -0
  22. package/dest/tx_validator/data_validator.d.ts +6 -0
  23. package/dest/tx_validator/data_validator.d.ts.map +1 -0
  24. package/dest/tx_validator/data_validator.js +47 -0
  25. package/dest/tx_validator/double_spend_validator.d.ts +12 -0
  26. package/dest/tx_validator/double_spend_validator.d.ts.map +1 -0
  27. package/dest/tx_validator/double_spend_validator.js +53 -0
  28. package/dest/tx_validator/index.d.ts +6 -0
  29. package/dest/tx_validator/index.d.ts.map +1 -0
  30. package/dest/tx_validator/index.js +6 -0
  31. package/dest/tx_validator/metadata_validator.d.ts +10 -0
  32. package/dest/tx_validator/metadata_validator.d.ts.map +1 -0
  33. package/dest/tx_validator/metadata_validator.js +50 -0
  34. package/dest/tx_validator/tx_proof_validator.d.ts +9 -0
  35. package/dest/tx_validator/tx_proof_validator.d.ts.map +1 -0
  36. package/dest/tx_validator/tx_proof_validator.js +29 -0
  37. package/dest/util.d.ts +7 -0
  38. package/dest/util.d.ts.map +1 -1
  39. package/dest/util.js +1 -1
  40. package/package.json +6 -6
  41. package/src/client/index.ts +65 -47
  42. package/src/config.ts +127 -0
  43. package/src/index.ts +1 -0
  44. package/src/service/libp2p_service.ts +137 -24
  45. package/src/service/peer_manager.ts +23 -4
  46. package/src/service/peer_scoring.ts +81 -0
  47. package/src/tx_validator/aggregate_tx_validator.ts +24 -0
  48. package/src/tx_validator/data_validator.ts +61 -0
  49. package/src/tx_validator/double_spend_validator.ts +65 -0
  50. package/src/tx_validator/index.ts +5 -0
  51. package/src/tx_validator/metadata_validator.ts +61 -0
  52. package/src/tx_validator/tx_proof_validator.ts +28 -0
  53. package/src/util.ts +8 -0
@@ -1,4 +1,4 @@
1
- import { type L2BlockSource } from '@aztec/circuit-types';
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: (config: P2PConfig & DataStoreConfig, attestationsPool: AttestationPool, l2BlockSource: L2BlockSource, telemetry?: TelemetryClient, deps?: {
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,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,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,WAClB,SAAS,GAAG,eAAe,oBACjB,eAAe,iBAClB,aAAa,cACjB,eAAe,SACpB;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,YAAY,CAAA;CAAE,uBA6DhD,CAAC"}
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"}
@@ -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 (config, attestationsPool, l2BlockSource, telemetry = new NoopTelemetryClient(), deps = {}) => {
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 (config.p2pEnabled) {
16
- // If announceTcpAddress or announceUdpAddress are not provided, query for public IP if config allows
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBd0IsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFHbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXBELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRGLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLEtBQUssRUFDbEMsTUFBbUMsRUFDbkMsZ0JBQWlDLEVBQ2pDLGFBQTRCLEVBQzVCLFlBQTZCLElBQUksbUJBQW1CLEVBQUUsRUFDdEQsT0FBa0QsRUFBRSxFQUNwRCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEcsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLGFBQWEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFbEUsSUFBSSxV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
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
  */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAKxB,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;CAChC;AAED,eAAO,MAAM,iBAAiB,EAAE,kBAAkB,CAAC,SAAS,CAkF3D,CAAC;AAEF;;;GAGG;AACH,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"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsa0JBQWtCLEdBQ25CLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUF5Qix3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBcUY5RixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBa0M7SUFDOUQsVUFBVSxFQUFFO1FBQ1YsR0FBRyxFQUFFLGFBQWE7UUFDbEIsV0FBVyxFQUFFLCtEQUErRDtRQUM1RSxHQUFHLG1CQUFtQixFQUFFO0tBQ3pCO0lBQ0Qsb0JBQW9CLEVBQUU7UUFDcEIsR0FBRyxFQUFFLDZCQUE2QjtRQUNsQyxXQUFXLEVBQUUsb0RBQW9EO1FBQ2pFLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDO0tBQzNCO0lBQ0QsbUJBQW1CLEVBQUU7UUFDbkIsR0FBRyxFQUFFLDRCQUE0QjtRQUNqQyxXQUFXLEVBQUUsZ0RBQWdEO1FBQzdELEdBQUcsa0JBQWtCLENBQUMsSUFBSyxDQUFDO0tBQzdCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsR0FBRyxFQUFFLG1CQUFtQjtRQUN4QixXQUFXLEVBQUUsc0NBQXNDO1FBQ25ELEdBQUcsa0JBQWtCLENBQUMsSUFBSyxDQUFDO0tBQzdCO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsR0FBRyxFQUFFLGlCQUFpQjtRQUN0QixZQUFZLEVBQUUsZUFBZTtRQUM3QixXQUFXLEVBQUUsMERBQTBEO0tBQ3hFO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsR0FBRyxFQUFFLGlCQUFpQjtRQUN0QixZQUFZLEVBQUUsZUFBZTtRQUM3QixXQUFXLEVBQUUsMERBQTBEO0tBQ3hFO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixXQUFXLEVBQ1QsMkdBQTJHO0tBQzlHO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsR0FBRyxFQUFFLHVCQUF1QjtRQUM1QixXQUFXLEVBQ1QsMkdBQTJHO0tBQzlHO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsR0FBRyxFQUFFLHFCQUFxQjtRQUMxQixXQUFXLEVBQUUsd0VBQXdFO0tBQ3RGO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsR0FBRyxFQUFFLGlCQUFpQjtRQUN0QixRQUFRLEVBQUUsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ3pDLFdBQVcsRUFBRSxtRUFBbUU7S0FDakY7SUFDRCxtQkFBbUIsRUFBRTtRQUNuQixHQUFHLEVBQUUsaUJBQWlCO1FBQ3RCLFdBQVcsRUFBRSxnREFBZ0Q7UUFDN0QsWUFBWSxFQUFFLGNBQWM7S0FDN0I7SUFDRCxZQUFZLEVBQUU7UUFDWixHQUFHLEVBQUUsZUFBZTtRQUNwQixXQUFXLEVBQUUsNENBQTRDO1FBQ3pELEdBQUcsa0JBQWtCLENBQUMsRUFBRSxDQUFDO0tBQzFCO0lBQ0QsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLGVBQWU7UUFDcEIsV0FBVyxFQUFFLDRDQUE0QztRQUN6RCxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELGFBQWEsRUFBRTtRQUNiLEdBQUcsRUFBRSxnQkFBZ0I7UUFDckIsV0FBVyxFQUFFLGlGQUFpRjtLQUMvRjtJQUNELFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxrQkFBa0I7UUFDdkIsV0FBVyxFQUNULDBIQUEwSDtRQUM1SCxHQUFHLG1CQUFtQixFQUFFO0tBQ3pCO0lBQ0Qsc0JBQXNCLEVBQUU7UUFDdEIsR0FBRyxFQUFFLDZCQUE2QjtRQUNsQyxXQUFXLEVBQ1QsMEhBQTBIO1FBQzVILEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0tBQ3pCO0lBQ0QsR0FBRyx3QkFBd0I7Q0FDNUIsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxxQkFBcUIsQ0FBWSxpQkFBaUIsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFXRCxNQUFNLGtCQUFrQixHQUE2QjtJQUNuRCxvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCxjQUFjO0lBQ2Qsa0JBQWtCO0NBQ25CLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDIn0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixnQkFBZ0IsRUFDaEIsa0JBQWtCLEVBQ2xCLGtCQUFrQixHQUNuQixNQUFNLDBCQUEwQixDQUFDO0FBRWxDLE9BQU8sRUFBeUIsd0JBQXdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQWlKOUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWtDO0lBQzlELFVBQVUsRUFBRTtRQUNWLEdBQUcsRUFBRSxhQUFhO1FBQ2xCLFdBQVcsRUFBRSwrREFBK0Q7UUFDNUUsR0FBRyxtQkFBbUIsRUFBRTtLQUN6QjtJQUNELG9CQUFvQixFQUFFO1FBQ3BCLEdBQUcsRUFBRSw2QkFBNkI7UUFDbEMsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztLQUMzQjtJQUNELG1CQUFtQixFQUFFO1FBQ25CLEdBQUcsRUFBRSw0QkFBNEI7UUFDakMsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELFdBQVcsRUFBRTtRQUNYLEdBQUcsRUFBRSxtQkFBbUI7UUFDeEIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxHQUFHLGtCQUFrQixDQUFDLElBQUssQ0FBQztLQUM3QjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxpQkFBaUI7UUFDdEIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLEdBQUcsRUFBRSxpQkFBaUI7UUFDdEIsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLDBEQUEwRDtLQUN4RTtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLEdBQUcsRUFBRSx1QkFBdUI7UUFDNUIsV0FB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
package/dest/index.d.ts 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
+ export * from './tx_validator/index.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDBCQUEwQixDQUFDIn0=
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 { type GossipsubEvents } from '@chainsafe/libp2p-gossipsub';
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":"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"}
1
+ {"version":3,"file":"libp2p_service.d.ts","sourceRoot":"","sources":["../../src/service/libp2p_service.ts"],"names":[],"mappings":"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"}