@aztec/p2p 0.76.4 → 0.77.0-testnet-ignition.21

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 (241) hide show
  1. package/dest/bootstrap/bootstrap.d.ts +2 -2
  2. package/dest/bootstrap/bootstrap.d.ts.map +1 -1
  3. package/dest/bootstrap/bootstrap.js +55 -41
  4. package/dest/client/factory.d.ts +8 -6
  5. package/dest/client/factory.d.ts.map +1 -1
  6. package/dest/client/factory.js +8 -10
  7. package/dest/client/index.js +0 -1
  8. package/dest/client/p2p_client.d.ts +7 -4
  9. package/dest/client/p2p_client.d.ts.map +1 -1
  10. package/dest/client/p2p_client.js +492 -514
  11. package/dest/config.d.ts +8 -10
  12. package/dest/config.d.ts.map +1 -1
  13. package/dest/config.js +54 -47
  14. package/dest/enr/generate-enr.d.ts +9 -0
  15. package/dest/enr/generate-enr.d.ts.map +1 -0
  16. package/dest/enr/generate-enr.js +30 -0
  17. package/dest/enr/index.d.ts +2 -0
  18. package/dest/enr/index.d.ts.map +1 -0
  19. package/dest/enr/index.js +1 -0
  20. package/dest/errors/reqresp.error.js +6 -10
  21. package/dest/index.js +0 -1
  22. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +1 -1
  23. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
  24. package/dest/mem_pools/attestation_pool/attestation_pool.js +6 -2
  25. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
  26. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
  27. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +65 -33
  28. package/dest/mem_pools/attestation_pool/index.js +0 -1
  29. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +3 -3
  30. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
  31. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +23 -20
  32. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +2 -2
  33. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
  34. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +22 -26
  35. package/dest/mem_pools/attestation_pool/mocks.d.ts +3 -2
  36. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
  37. package/dest/mem_pools/attestation_pool/mocks.js +12 -7
  38. package/dest/mem_pools/index.d.ts +2 -2
  39. package/dest/mem_pools/index.d.ts.map +1 -1
  40. package/dest/mem_pools/index.js +1 -2
  41. package/dest/mem_pools/instrumentation.d.ts +1 -1
  42. package/dest/mem_pools/instrumentation.d.ts.map +1 -1
  43. package/dest/mem_pools/instrumentation.js +35 -39
  44. package/dest/mem_pools/interface.d.ts +3 -3
  45. package/dest/mem_pools/interface.d.ts.map +1 -1
  46. package/dest/mem_pools/interface.js +3 -2
  47. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +2 -2
  48. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
  49. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +129 -136
  50. package/dest/mem_pools/tx_pool/index.js +0 -1
  51. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +2 -2
  52. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
  53. package/dest/mem_pools/tx_pool/memory_tx_pool.js +46 -44
  54. package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
  55. package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
  56. package/dest/mem_pools/tx_pool/priority.js +1 -3
  57. package/dest/mem_pools/tx_pool/tx_pool.d.ts +1 -1
  58. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
  59. package/dest/mem_pools/tx_pool/tx_pool.js +3 -2
  60. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
  61. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
  62. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +109 -39
  63. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +2 -2
  64. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
  65. package/dest/msg_validators/attestation_validator/attestation_validator.js +4 -4
  66. package/dest/msg_validators/attestation_validator/index.js +0 -1
  67. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +2 -2
  68. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
  69. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +3 -3
  70. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  71. package/dest/msg_validators/index.js +0 -1
  72. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
  73. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
  74. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +9 -11
  75. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +2 -2
  76. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
  77. package/dest/msg_validators/tx_validator/block_header_validator.js +18 -13
  78. package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
  79. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
  80. package/dest/msg_validators/tx_validator/data_validator.js +102 -33
  81. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -1
  82. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
  83. package/dest/msg_validators/tx_validator/double_spend_validator.js +34 -20
  84. package/dest/msg_validators/tx_validator/index.js +0 -1
  85. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +2 -2
  86. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
  87. package/dest/msg_validators/tx_validator/metadata_validator.js +30 -27
  88. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +2 -1
  89. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
  90. package/dest/msg_validators/tx_validator/tx_proof_validator.js +17 -12
  91. package/dest/services/data_store.js +57 -57
  92. package/dest/services/discv5/discV5_service.d.ts +2 -0
  93. package/dest/services/discv5/discV5_service.d.ts.map +1 -1
  94. package/dest/services/discv5/discV5_service.js +64 -36
  95. package/dest/services/dummy_service.d.ts +4 -2
  96. package/dest/services/dummy_service.d.ts.map +1 -1
  97. package/dest/services/dummy_service.js +41 -59
  98. package/dest/services/encoding.d.ts +3 -3
  99. package/dest/services/encoding.d.ts.map +1 -1
  100. package/dest/services/encoding.js +10 -9
  101. package/dest/services/gossipsub/scoring.d.ts +7 -0
  102. package/dest/services/gossipsub/scoring.d.ts.map +1 -0
  103. package/dest/services/gossipsub/scoring.js +10 -0
  104. package/dest/services/index.js +0 -1
  105. package/dest/services/libp2p/libp2p_service.d.ts +10 -33
  106. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  107. package/dest/services/libp2p/libp2p_service.js +682 -673
  108. package/dest/services/peer-manager/metrics.js +14 -7
  109. package/dest/services/peer-manager/peer_manager.d.ts +24 -6
  110. package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
  111. package/dest/services/peer-manager/peer_manager.js +390 -340
  112. package/dest/services/peer-manager/peer_scoring.d.ts +3 -3
  113. package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
  114. package/dest/services/peer-manager/peer_scoring.js +21 -19
  115. package/dest/services/reqresp/config.js +4 -5
  116. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +2 -2
  117. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
  118. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +35 -28
  119. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -1
  120. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
  121. package/dest/services/reqresp/connection-sampler/connection_sampler.js +67 -61
  122. package/dest/services/reqresp/index.js +1 -3
  123. package/dest/services/reqresp/interface.d.ts +2 -2
  124. package/dest/services/reqresp/interface.d.ts.map +1 -1
  125. package/dest/services/reqresp/interface.js +27 -31
  126. package/dest/services/reqresp/metrics.d.ts +1 -1
  127. package/dest/services/reqresp/metrics.d.ts.map +1 -1
  128. package/dest/services/reqresp/metrics.js +23 -10
  129. package/dest/services/reqresp/protocols/block.d.ts +2 -2
  130. package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
  131. package/dest/services/reqresp/protocols/block.js +1 -2
  132. package/dest/services/reqresp/protocols/goodbye.d.ts +5 -5
  133. package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
  134. package/dest/services/reqresp/protocols/goodbye.js +36 -41
  135. package/dest/services/reqresp/protocols/index.js +1 -3
  136. package/dest/services/reqresp/protocols/ping.js +1 -3
  137. package/dest/services/reqresp/protocols/status.js +1 -3
  138. package/dest/services/reqresp/protocols/tx.d.ts +3 -3
  139. package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
  140. package/dest/services/reqresp/protocols/tx.js +6 -9
  141. package/dest/services/reqresp/rate-limiter/index.js +0 -1
  142. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +9 -9
  143. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
  144. package/dest/services/reqresp/rate-limiter/rate_limiter.js +53 -46
  145. package/dest/services/reqresp/rate-limiter/rate_limits.js +16 -17
  146. package/dest/services/reqresp/reqresp.d.ts +4 -4
  147. package/dest/services/reqresp/reqresp.d.ts.map +1 -1
  148. package/dest/services/reqresp/reqresp.js +467 -464
  149. package/dest/services/reqresp/status.js +16 -17
  150. package/dest/services/service.d.ts +3 -2
  151. package/dest/services/service.d.ts.map +1 -1
  152. package/dest/services/service.js +3 -4
  153. package/dest/test-helpers/generate-peer-id-private-keys.js +2 -4
  154. package/dest/test-helpers/get-ports.js +3 -3
  155. package/dest/test-helpers/index.js +0 -1
  156. package/dest/test-helpers/make-enrs.d.ts +1 -1
  157. package/dest/test-helpers/make-enrs.d.ts.map +1 -1
  158. package/dest/test-helpers/make-enrs.js +3 -6
  159. package/dest/test-helpers/make-test-p2p-clients.d.ts +7 -6
  160. package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
  161. package/dest/test-helpers/make-test-p2p-clients.js +10 -12
  162. package/dest/test-helpers/reqresp-nodes.d.ts +18 -7
  163. package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
  164. package/dest/test-helpers/reqresp-nodes.js +64 -40
  165. package/dest/testbench/p2p_client_testbench_worker.js +61 -45
  166. package/dest/testbench/parse_log_file.d.ts +2 -0
  167. package/dest/testbench/parse_log_file.d.ts.map +1 -0
  168. package/dest/testbench/parse_log_file.js +131 -0
  169. package/dest/testbench/testbench.d.ts +2 -0
  170. package/dest/testbench/testbench.d.ts.map +1 -0
  171. package/dest/testbench/testbench.js +141 -0
  172. package/dest/{services/types.d.ts → types/index.d.ts} +1 -1
  173. package/dest/types/index.d.ts.map +1 -0
  174. package/dest/types/index.js +28 -0
  175. package/dest/util.d.ts +5 -5
  176. package/dest/util.d.ts.map +1 -1
  177. package/dest/util.js +23 -34
  178. package/dest/versioning.d.ts +3 -3
  179. package/dest/versioning.d.ts.map +1 -1
  180. package/dest/versioning.js +7 -12
  181. package/package.json +15 -13
  182. package/src/bootstrap/bootstrap.ts +30 -17
  183. package/src/client/factory.ts +9 -12
  184. package/src/client/p2p_client.ts +13 -24
  185. package/src/config.ts +14 -15
  186. package/src/enr/generate-enr.ts +39 -0
  187. package/src/enr/index.ts +1 -0
  188. package/src/mem_pools/attestation_pool/attestation_pool.ts +1 -1
  189. package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +4 -3
  190. package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +3 -3
  191. package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +2 -2
  192. package/src/mem_pools/attestation_pool/mocks.ts +5 -5
  193. package/src/mem_pools/index.ts +2 -2
  194. package/src/mem_pools/instrumentation.ts +4 -3
  195. package/src/mem_pools/interface.ts +3 -3
  196. package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +4 -4
  197. package/src/mem_pools/tx_pool/memory_tx_pool.ts +3 -3
  198. package/src/mem_pools/tx_pool/priority.ts +1 -1
  199. package/src/mem_pools/tx_pool/tx_pool.ts +1 -1
  200. package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +4 -3
  201. package/src/msg_validators/attestation_validator/attestation_validator.ts +2 -2
  202. package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +2 -2
  203. package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +1 -1
  204. package/src/msg_validators/tx_validator/block_header_validator.ts +2 -2
  205. package/src/msg_validators/tx_validator/data_validator.ts +57 -4
  206. package/src/msg_validators/tx_validator/double_spend_validator.ts +17 -12
  207. package/src/msg_validators/tx_validator/metadata_validator.ts +2 -2
  208. package/src/msg_validators/tx_validator/tx_proof_validator.ts +2 -6
  209. package/src/services/discv5/discV5_service.ts +33 -8
  210. package/src/services/dummy_service.ts +4 -2
  211. package/src/services/encoding.ts +3 -3
  212. package/src/services/gossipsub/scoring.ts +13 -0
  213. package/src/services/libp2p/libp2p_service.ts +124 -146
  214. package/src/services/peer-manager/peer_manager.ts +71 -13
  215. package/src/services/peer-manager/peer_scoring.ts +3 -3
  216. package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +2 -2
  217. package/src/services/reqresp/connection-sampler/connection_sampler.ts +9 -3
  218. package/src/services/reqresp/interface.ts +4 -3
  219. package/src/services/reqresp/metrics.ts +1 -1
  220. package/src/services/reqresp/protocols/block.ts +3 -3
  221. package/src/services/reqresp/protocols/goodbye.ts +7 -7
  222. package/src/services/reqresp/protocols/tx.ts +5 -5
  223. package/src/services/reqresp/rate-limiter/rate_limiter.ts +22 -18
  224. package/src/services/reqresp/reqresp.ts +18 -11
  225. package/src/services/service.ts +3 -2
  226. package/src/test-helpers/make-enrs.ts +1 -1
  227. package/src/test-helpers/make-test-p2p-clients.ts +9 -7
  228. package/src/test-helpers/reqresp-nodes.ts +32 -18
  229. package/src/testbench/p2p_client_testbench_worker.ts +16 -9
  230. package/src/testbench/parse_log_file.ts +175 -0
  231. package/src/testbench/testbench.ts +157 -0
  232. package/src/util.ts +5 -5
  233. package/src/versioning.ts +7 -7
  234. package/dest/services/libp2p/libp2p_logger.d.ts +0 -7
  235. package/dest/services/libp2p/libp2p_logger.d.ts.map +0 -1
  236. package/dest/services/libp2p/libp2p_logger.js +0 -67
  237. package/dest/services/types.d.ts.map +0 -1
  238. package/dest/services/types.js +0 -35
  239. package/src/services/libp2p/libp2p_logger.ts +0 -78
  240. package/src/testbench/scripts/run_testbench.sh +0 -7
  241. /package/src/{services/types.ts → types/index.ts} +0 -0
@@ -0,0 +1,157 @@
1
+ import { EthAddress } from '@aztec/foundation/eth-address';
2
+ import { createLogger } from '@aztec/foundation/log';
3
+ import { sleep } from '@aztec/foundation/sleep';
4
+ import type { ChainConfig } from '@aztec/stdlib/config';
5
+ import { ClientIvcProof } from '@aztec/stdlib/proofs';
6
+ import { mockTx } from '@aztec/stdlib/testing';
7
+
8
+ import { type ChildProcess, fork } from 'child_process';
9
+ import path from 'path';
10
+ import { fileURLToPath } from 'url';
11
+
12
+ import { type P2PConfig, getP2PDefaultConfig } from '../config.js';
13
+ import { generatePeerIdPrivateKeys } from '../test-helpers/generate-peer-id-private-keys.js';
14
+ import { getPorts } from '../test-helpers/get-ports.js';
15
+ import { makeEnrs } from '../test-helpers/make-enrs.js';
16
+
17
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
18
+ const workerPath = path.join(__dirname, '../../dest/testbench/p2p_client_testbench_worker.js');
19
+ const logger = createLogger('testbench');
20
+
21
+ let processes: ChildProcess[] = [];
22
+
23
+ const testChainConfig: ChainConfig = {
24
+ l1ChainId: 31337,
25
+ version: 1,
26
+ l1Contracts: {
27
+ rollupAddress: EthAddress.random(),
28
+ },
29
+ };
30
+
31
+ /**
32
+ * Cleanup function to kill all child processes
33
+ */
34
+ async function cleanup() {
35
+ logger.info('Cleaning up processes...');
36
+ await Promise.all(
37
+ processes.map(
38
+ proc =>
39
+ new Promise<void>(resolve => {
40
+ proc.once('exit', () => resolve());
41
+ proc.send({ type: 'STOP' });
42
+ }),
43
+ ),
44
+ );
45
+ process.exit(0);
46
+ }
47
+
48
+ // Handle cleanup on process termination
49
+ process.on('SIGINT', () => void cleanup());
50
+ process.on('SIGTERM', () => void cleanup());
51
+
52
+ /**
53
+ * Creates a number of worker clients in separate processes
54
+ * All are configured to connect to each other and overrided with the test specific config
55
+ *
56
+ * @param numberOfClients - The number of clients to create
57
+ * @param p2pConfig - The P2P config to use for the clients
58
+ * @returns The ENRs of the created clients
59
+ */
60
+ async function makeWorkerClients(numberOfClients: number, p2pConfig: Partial<P2PConfig>) {
61
+ const peerIdPrivateKeys = generatePeerIdPrivateKeys(numberOfClients);
62
+ const ports = await getPorts(numberOfClients);
63
+ const peerEnrs = await makeEnrs(peerIdPrivateKeys, ports, testChainConfig);
64
+
65
+ processes = [];
66
+ const readySignals: Promise<void>[] = [];
67
+ for (let i = 0; i < numberOfClients; i++) {
68
+ logger.info(`Creating client ${i}`);
69
+ const addr = `127.0.0.1:${ports[i]}`;
70
+ const listenAddr = `0.0.0.0:${ports[i]}`;
71
+
72
+ // Maximum seed with 10 other peers to allow peer discovery to connect them at a smoother rate
73
+ const otherNodes = peerEnrs.filter((_, ind) => ind < Math.min(i, 10));
74
+
75
+ const config: P2PConfig & Partial<ChainConfig> = {
76
+ ...getP2PDefaultConfig(),
77
+ p2pEnabled: true,
78
+ peerIdPrivateKey: peerIdPrivateKeys[i],
79
+ tcpListenAddress: listenAddr,
80
+ udpListenAddress: listenAddr,
81
+ tcpAnnounceAddress: addr,
82
+ udpAnnounceAddress: addr,
83
+ bootstrapNodes: [...otherNodes],
84
+ ...p2pConfig,
85
+ };
86
+
87
+ const childProcess = fork(workerPath);
88
+ childProcess.send({ type: 'START', config, clientIndex: i });
89
+
90
+ // Wait for ready signal
91
+ readySignals.push(
92
+ new Promise((resolve, reject) => {
93
+ childProcess.once('message', (msg: any) => {
94
+ if (msg.type === 'READY') {
95
+ resolve(undefined);
96
+ }
97
+ if (msg.type === 'ERROR') {
98
+ reject(new Error(msg.error));
99
+ }
100
+ });
101
+ }),
102
+ );
103
+
104
+ processes.push(childProcess);
105
+ }
106
+ // Wait for peers to all connect with each other
107
+ await sleep(4000);
108
+
109
+ // Wait for all peers to be booted up
110
+ await Promise.all(readySignals);
111
+
112
+ return peerEnrs;
113
+ }
114
+
115
+ async function main() {
116
+ try {
117
+ // Read configuration file name from command line args
118
+ const configFile = process.argv[2];
119
+ if (!configFile) {
120
+ throw new Error('Configuration file must be provided as first argument');
121
+ }
122
+
123
+ const configPath = path.join(__dirname, '../../testbench/configurations', configFile);
124
+ const config = await import(configPath, { assert: { type: 'json' } });
125
+ const testConfig = { ...testChainConfig, ...config.default };
126
+ const numberOfClients = config.default.numberOfClients;
127
+
128
+ // Setup clients in separate processes
129
+ await makeWorkerClients(numberOfClients, testConfig);
130
+
131
+ // wait a bit longer for all peers to be ready
132
+ await sleep(5000);
133
+ logger.info('Workers Ready');
134
+
135
+ // Send tx from client 0
136
+ const tx = await mockTx(1, {
137
+ clientIvcProof: ClientIvcProof.random(),
138
+ });
139
+ processes[0].send({ type: 'SEND_TX', tx: tx.toBuffer() });
140
+ logger.info('Transaction sent from client 0');
141
+
142
+ // Give time for message propagation
143
+ await sleep(30000);
144
+ logger.info('Checking message propagation results');
145
+
146
+ await cleanup();
147
+ } catch (error) {
148
+ logger.error('Test failed with error:', error);
149
+ await cleanup();
150
+ process.exit(1);
151
+ }
152
+ }
153
+
154
+ main().catch(error => {
155
+ logger.error('Unhandled error:', error);
156
+ cleanup().catch(() => process.exit(1));
157
+ });
package/src/util.ts CHANGED
@@ -1,15 +1,15 @@
1
- import { type AztecAsyncKVStore } from '@aztec/kv-store';
2
- import { type DataStoreConfig } from '@aztec/kv-store/config';
1
+ import type { AztecAsyncKVStore } from '@aztec/kv-store';
2
+ import type { DataStoreConfig } from '@aztec/kv-store/config';
3
3
 
4
4
  import type { GossipSub } from '@chainsafe/libp2p-gossipsub';
5
5
  import { generateKeyPair, marshalPrivateKey, unmarshalPrivateKey } from '@libp2p/crypto/keys';
6
- import { type PeerId, type PrivateKey } from '@libp2p/interface';
7
- import { type ConnectionManager } from '@libp2p/interface-internal';
6
+ import type { PeerId, PrivateKey } from '@libp2p/interface';
7
+ import type { ConnectionManager } from '@libp2p/interface-internal';
8
8
  import { createFromPrivKey } from '@libp2p/peer-id-factory';
9
9
  import { resolve } from 'dns/promises';
10
10
  import type { Libp2p } from 'libp2p';
11
11
 
12
- import { type P2PConfig } from './config.js';
12
+ import type { P2PConfig } from './config.js';
13
13
 
14
14
  export interface PubSubLibp2p extends Libp2p {
15
15
  services: {
package/src/versioning.ts CHANGED
@@ -1,18 +1,18 @@
1
+ import { toBufferBE } from '@aztec/foundation/bigint-buffer';
2
+ import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vk-tree';
3
+ import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
4
+ import type { ChainConfig } from '@aztec/stdlib/config';
1
5
  import {
2
6
  type ComponentsVersions,
3
7
  checkCompressedComponentVersion,
4
8
  compressComponentVersions,
5
9
  getComponentsVersionsFromConfig,
6
- } from '@aztec/circuit-types';
7
- import { type ChainConfig } from '@aztec/circuit-types/config';
8
- import { toBufferBE } from '@aztec/foundation/bigint-buffer';
9
- import { getVKTreeRoot } from '@aztec/noir-protocol-circuits-types/vks';
10
- import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
10
+ } from '@aztec/stdlib/versioning';
11
11
 
12
- import { type SignableENR } from '@chainsafe/enr';
12
+ import type { SignableENR } from '@chainsafe/enr';
13
13
  import xxhashFactory from 'xxhash-wasm';
14
14
 
15
- import { AZTEC_ENR_KEY } from './services/types.js';
15
+ import { AZTEC_ENR_KEY } from './types/index.js';
16
16
 
17
17
  const USE_XX_HASH = false; // Enable to reduce the size of the ENR record for production
18
18
  const XX_HASH_LEN = 8;
@@ -1,7 +0,0 @@
1
- import { type ComponentLogger } from '@libp2p/interface';
2
- /**
3
- * Creates a libp2p compatible logger that wraps our pino logger.
4
- * This adapter implements the ComponentLogger interface required by libp2p.
5
- */
6
- export declare function createLibp2pComponentLogger(namespace: string, fixedTerms?: {}): ComponentLogger;
7
- //# sourceMappingURL=libp2p_logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"libp2p_logger.d.ts","sourceRoot":"","sources":["../../../src/services/libp2p/libp2p_logger.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,eAAe,EAAe,MAAM,mBAAmB,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,KAAK,GAAG,eAAe,CAI/F"}
@@ -1,67 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
- /**
3
- * Creates a libp2p compatible logger that wraps our pino logger.
4
- * This adapter implements the ComponentLogger interface required by libp2p.
5
- */
6
- export function createLibp2pComponentLogger(namespace, fixedTerms = {}) {
7
- return {
8
- forComponent: (component) => createLibp2pLogger(`${namespace}:${component}`, fixedTerms),
9
- };
10
- }
11
- function createLibp2pLogger(component, fixedTerms = {}) {
12
- const logger = createLogger(component, fixedTerms);
13
- // Default log level is trace as this is super super noisy
14
- const logFn = (formatter, ...args) => {
15
- // Handle %p format specifier by manually replacing with args
16
- if (typeof formatter === 'string' && args.length > 0) {
17
- // Handle %p, %a, %s and %d format specifiers
18
- const parts = formatter.split(/(%p|%a|%s|%d)/);
19
- let result = parts[0];
20
- let argIndex = 0;
21
- for (let i = 1; i < parts.length; i += 2) {
22
- if (argIndex < args.length) {
23
- result += String(args[argIndex]) + (parts[i + 1] || '');
24
- argIndex++;
25
- }
26
- }
27
- formatter = result;
28
- // Only keep non-format args as data
29
- args = args.slice(argIndex);
30
- }
31
- // Handle object args by spreading them, but only if they weren't used in formatting
32
- if (args.length === 1 && typeof args[0] === 'object') {
33
- logger.trace(formatter, args[0]);
34
- }
35
- else if (args.length > 0) {
36
- // If we have remaining args after formatting, pass them as data
37
- logger.trace(formatter, { _args: args });
38
- }
39
- else {
40
- logger.trace(formatter);
41
- }
42
- };
43
- return Object.assign(logFn, {
44
- enabled: logger.isLevelEnabled('debug'),
45
- error(...args) {
46
- const [msg, ...rest] = args;
47
- logger.error(msg, ...rest);
48
- },
49
- debug(...args) {
50
- const [msg, ...rest] = args;
51
- logger.debug(msg, ...rest);
52
- },
53
- info(...args) {
54
- const [msg, ...rest] = args;
55
- logger.info(msg, ...rest);
56
- },
57
- warn(...args) {
58
- const [msg, ...rest] = args;
59
- logger.warn(msg, ...rest);
60
- },
61
- trace(...args) {
62
- const [msg, ...rest] = args;
63
- logger.trace(msg, ...rest);
64
- },
65
- });
66
- }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicDJwX2xvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9saWJwMnAvbGlicDJwX2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFJckQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDJCQUEyQixDQUFDLFNBQWlCLEVBQUUsVUFBVSxHQUFHLEVBQUU7SUFDNUUsT0FBTztRQUNMLFlBQVksRUFBRSxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsU0FBUyxJQUFJLFNBQVMsRUFBRSxFQUFFLFVBQVUsQ0FBQztLQUNqRyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsU0FBaUIsRUFBRSxVQUFVLEdBQUcsRUFBRTtJQUM1RCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRW5ELDBEQUEwRDtJQUMxRCxNQUFNLEtBQUssR0FBRyxDQUFDLFNBQWMsRUFBRSxHQUFHLElBQVcsRUFBRSxFQUFFO1FBQy9DLDZEQUE2RDtRQUM3RCxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JELDZDQUE2QztZQUM3QyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQy9DLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFFakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUN6QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFB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
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/services/types.ts"],"names":[],"mappings":"AAAA;;qDAEqD;AAErD;;GAEG;AACH,oBAAY,SAAS;IACnB,UAAU,oBAAoB;IAC9B,SAAS,iBAAiB;IAC1B,YAAY,oBAAoB;CACjC;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,UAAU,eAAe;IACzB,SAAS,aAAa;CACvB;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,OAAO,sBAAsB;CAC9B;AAED;;qDAEqD;AAErD;;GAEG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC"}
@@ -1,35 +0,0 @@
1
- /***************************************************
2
- * Events
3
- ***************************************************/
4
- /**
5
- * Events emitted from the libp2p node.
6
- */
7
- export var PeerEvent;
8
- (function (PeerEvent) {
9
- PeerEvent["DISCOVERED"] = "peer:discovered";
10
- PeerEvent["CONNECTED"] = "peer:connect";
11
- PeerEvent["DISCONNECTED"] = "peer:disconnect";
12
- })(PeerEvent || (PeerEvent = {}));
13
- /**
14
- * Events emitted from the Discv5 service.
15
- */
16
- export var Discv5Event;
17
- (function (Discv5Event) {
18
- Discv5Event["DISCOVERED"] = "discovered";
19
- Discv5Event["ENR_ADDED"] = "enrAdded";
20
- })(Discv5Event || (Discv5Event = {}));
21
- /**
22
- * Events emitted from the GossipSub protocol.
23
- */
24
- export var GossipSubEvent;
25
- (function (GossipSubEvent) {
26
- GossipSubEvent["MESSAGE"] = "gossipsub:message";
27
- })(GossipSubEvent || (GossipSubEvent = {}));
28
- /***************************************************
29
- * Types
30
- ***************************************************/
31
- /**
32
- * Aztec network specific types
33
- */
34
- export const AZTEC_ENR_KEY = 'aztec';
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O3FEQUVxRDtBQUVyRDs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDbkIsMkNBQThCLENBQUE7SUFDOUIsdUNBQTBCLENBQUE7SUFDMUIsNkNBQWdDLENBQUE7QUFDbEMsQ0FBQyxFQUpXLFNBQVMsS0FBVCxTQUFTLFFBSXBCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLHdDQUF5QixDQUFBO0lBQ3pCLHFDQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFIVyxXQUFXLEtBQVgsV0FBVyxRQUd0QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFOLElBQVksY0FFWDtBQUZELFdBQVksY0FBYztJQUN4QiwrQ0FBNkIsQ0FBQTtBQUMvQixDQUFDLEVBRlcsY0FBYyxLQUFkLGNBQWMsUUFFekI7QUFFRDs7cURBRXFEO0FBRXJEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyJ9
@@ -1,78 +0,0 @@
1
- import { createLogger } from '@aztec/foundation/log';
2
-
3
- import { type ComponentLogger, type Logger } from '@libp2p/interface';
4
-
5
- /**
6
- * Creates a libp2p compatible logger that wraps our pino logger.
7
- * This adapter implements the ComponentLogger interface required by libp2p.
8
- */
9
- export function createLibp2pComponentLogger(namespace: string, fixedTerms = {}): ComponentLogger {
10
- return {
11
- forComponent: (component: string) => createLibp2pLogger(`${namespace}:${component}`, fixedTerms),
12
- };
13
- }
14
-
15
- function createLibp2pLogger(component: string, fixedTerms = {}): Logger {
16
- const logger = createLogger(component, fixedTerms);
17
-
18
- // Default log level is trace as this is super super noisy
19
- const logFn = (formatter: any, ...args: any[]) => {
20
- // Handle %p format specifier by manually replacing with args
21
- if (typeof formatter === 'string' && args.length > 0) {
22
- // Handle %p, %a, %s and %d format specifiers
23
- const parts = formatter.split(/(%p|%a|%s|%d)/);
24
- let result = parts[0];
25
- let argIndex = 0;
26
-
27
- for (let i = 1; i < parts.length; i += 2) {
28
- if (argIndex < args.length) {
29
- result += String(args[argIndex]) + (parts[i + 1] || '');
30
- argIndex++;
31
- }
32
- }
33
-
34
- formatter = result;
35
- // Only keep non-format args as data
36
- args = args.slice(argIndex);
37
- }
38
-
39
- // Handle object args by spreading them, but only if they weren't used in formatting
40
- if (args.length === 1 && typeof args[0] === 'object') {
41
- logger.trace(formatter, args[0]);
42
- } else if (args.length > 0) {
43
- // If we have remaining args after formatting, pass them as data
44
- logger.trace(formatter, { _args: args });
45
- } else {
46
- logger.trace(formatter);
47
- }
48
- };
49
-
50
- return Object.assign(logFn, {
51
- enabled: logger.isLevelEnabled('debug'),
52
-
53
- error(...args: any[]) {
54
- const [msg, ...rest] = args;
55
- logger.error(msg as string, ...rest);
56
- },
57
-
58
- debug(...args: any[]) {
59
- const [msg, ...rest] = args;
60
- logger.debug(msg as string, ...rest);
61
- },
62
-
63
- info(...args: any[]) {
64
- const [msg, ...rest] = args;
65
- logger.info(msg as string, ...rest);
66
- },
67
-
68
- warn(...args: any[]) {
69
- const [msg, ...rest] = args;
70
- logger.warn(msg as string, ...rest);
71
- },
72
-
73
- trace(...args: any[]) {
74
- const [msg, ...rest] = args;
75
- logger.trace(msg as string, ...rest);
76
- },
77
- });
78
- }
@@ -1,7 +0,0 @@
1
- ## Test bench
2
- # Run the testbench and pipe the output into a file
3
- # Usage: ./run_testbench.sh <outputfile>
4
-
5
- outputfile=$1
6
-
7
- LOG_LEVEL="debug; trace: .*gossipsub" yarn test testbench.test.ts 2>&1 | pino-pretty > $outputfile
File without changes