@aztec/p2p 0.74.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2

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 (217) hide show
  1. package/dest/bootstrap/bootstrap.js +41 -29
  2. package/dest/client/factory.js +8 -10
  3. package/dest/client/index.js +0 -1
  4. package/dest/client/p2p_client.js +513 -507
  5. package/dest/config.js +44 -39
  6. package/dest/errors/reqresp.error.js +6 -10
  7. package/dest/index.js +0 -1
  8. package/dest/mem_pools/attestation_pool/attestation_pool.js +6 -2
  9. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +64 -32
  10. package/dest/mem_pools/attestation_pool/index.js +0 -1
  11. package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +22 -19
  12. package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +22 -26
  13. package/dest/mem_pools/attestation_pool/mocks.js +10 -6
  14. package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.js +1 -2
  15. package/dest/mem_pools/epoch_proof_quote_pool/index.js +0 -1
  16. package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.js +5 -4
  17. package/dest/mem_pools/epoch_proof_quote_pool/test_utils.js +2 -3
  18. package/dest/mem_pools/index.js +1 -2
  19. package/dest/mem_pools/instrumentation.js +37 -42
  20. package/dest/mem_pools/interface.js +3 -2
  21. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +127 -134
  22. package/dest/mem_pools/tx_pool/index.js +0 -1
  23. package/dest/mem_pools/tx_pool/memory_tx_pool.js +45 -43
  24. package/dest/mem_pools/tx_pool/priority.js +1 -3
  25. package/dest/mem_pools/tx_pool/tx_pool.js +3 -2
  26. package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +107 -37
  27. package/dest/mocks/index.js +47 -38
  28. package/dest/msg_validators/attestation_validator/attestation_validator.js +3 -3
  29. package/dest/msg_validators/attestation_validator/index.js +0 -1
  30. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +2 -2
  31. package/dest/msg_validators/block_proposal_validator/index.js +0 -1
  32. package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.js +2 -2
  33. package/dest/msg_validators/epoch_proof_quote_validator/index.js +0 -1
  34. package/dest/msg_validators/index.js +0 -1
  35. package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +9 -11
  36. package/dest/msg_validators/tx_validator/block_header_validator.js +17 -12
  37. package/dest/msg_validators/tx_validator/data_validator.js +41 -32
  38. package/dest/msg_validators/tx_validator/double_spend_validator.js +22 -14
  39. package/dest/msg_validators/tx_validator/index.js +0 -1
  40. package/dest/msg_validators/tx_validator/metadata_validator.js +29 -26
  41. package/dest/msg_validators/tx_validator/tx_proof_validator.js +17 -12
  42. package/dest/services/data_store.js +57 -57
  43. package/dest/services/discv5/discV5_service.js +31 -23
  44. package/dest/services/dummy_service.js +40 -58
  45. package/dest/services/encoding.js +10 -9
  46. package/dest/services/index.js +0 -1
  47. package/dest/services/libp2p/libp2p_service.js +709 -695
  48. package/dest/services/peer-manager/metrics.js +14 -7
  49. package/dest/services/peer-manager/peer_manager.js +340 -342
  50. package/dest/services/peer-manager/peer_scoring.js +20 -18
  51. package/dest/services/reqresp/config.js +4 -5
  52. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +35 -28
  53. package/dest/services/reqresp/connection-sampler/connection_sampler.js +60 -59
  54. package/dest/services/reqresp/index.js +1 -3
  55. package/dest/services/reqresp/interface.js +25 -30
  56. package/dest/services/reqresp/metrics.js +23 -10
  57. package/dest/services/reqresp/protocols/block.js +1 -2
  58. package/dest/services/reqresp/protocols/goodbye.js +35 -40
  59. package/dest/services/reqresp/protocols/index.js +1 -3
  60. package/dest/services/reqresp/protocols/ping.js +1 -3
  61. package/dest/services/reqresp/protocols/status.js +1 -3
  62. package/dest/services/reqresp/protocols/tx.js +5 -8
  63. package/dest/services/reqresp/rate-limiter/index.js +0 -1
  64. package/dest/services/reqresp/rate-limiter/rate_limiter.js +42 -36
  65. package/dest/services/reqresp/rate-limiter/rate_limits.js +16 -17
  66. package/dest/services/reqresp/reqresp.js +461 -395
  67. package/dest/services/reqresp/status.js +51 -0
  68. package/dest/services/service.js +3 -4
  69. package/dest/services/types.js +16 -23
  70. package/dest/util.js +23 -34
  71. package/package.json +8 -8
  72. package/src/client/p2p_client.ts +159 -125
  73. package/src/mem_pools/index.ts +3 -3
  74. package/src/mem_pools/instrumentation.ts +3 -2
  75. package/src/services/reqresp/interface.ts +11 -0
  76. package/src/services/reqresp/rate-limiter/rate_limiter.ts +3 -1
  77. package/src/services/reqresp/rate-limiter/rate_limits.ts +2 -2
  78. package/src/services/reqresp/reqresp.ts +111 -24
  79. package/src/services/reqresp/status.ts +59 -0
  80. package/dest/bootstrap/bootstrap.d.ts +0 -38
  81. package/dest/bootstrap/bootstrap.d.ts.map +0 -1
  82. package/dest/client/factory.d.ts +0 -19
  83. package/dest/client/factory.d.ts.map +0 -1
  84. package/dest/client/index.d.ts +0 -3
  85. package/dest/client/index.d.ts.map +0 -1
  86. package/dest/client/p2p_client.d.ts +0 -321
  87. package/dest/client/p2p_client.d.ts.map +0 -1
  88. package/dest/config.d.ts +0 -171
  89. package/dest/config.d.ts.map +0 -1
  90. package/dest/errors/reqresp.error.d.ts +0 -28
  91. package/dest/errors/reqresp.error.d.ts.map +0 -1
  92. package/dest/index.d.ts +0 -9
  93. package/dest/index.d.ts.map +0 -1
  94. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +0 -57
  95. package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +0 -1
  96. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +0 -3
  97. package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +0 -1
  98. package/dest/mem_pools/attestation_pool/index.d.ts +0 -3
  99. package/dest/mem_pools/attestation_pool/index.d.ts.map +0 -1
  100. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -22
  101. package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
  102. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -17
  103. package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
  104. package/dest/mem_pools/attestation_pool/mocks.d.ts +0 -18
  105. package/dest/mem_pools/attestation_pool/mocks.d.ts.map +0 -1
  106. package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts +0 -7
  107. package/dest/mem_pools/epoch_proof_quote_pool/epoch_proof_quote_pool.d.ts.map +0 -1
  108. package/dest/mem_pools/epoch_proof_quote_pool/index.d.ts +0 -4
  109. package/dest/mem_pools/epoch_proof_quote_pool/index.d.ts.map +0 -1
  110. package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts +0 -12
  111. package/dest/mem_pools/epoch_proof_quote_pool/memory_epoch_proof_quote_pool.d.ts.map +0 -1
  112. package/dest/mem_pools/epoch_proof_quote_pool/test_utils.d.ts +0 -8
  113. package/dest/mem_pools/epoch_proof_quote_pool/test_utils.d.ts.map +0 -1
  114. package/dest/mem_pools/index.d.ts +0 -5
  115. package/dest/mem_pools/index.d.ts.map +0 -1
  116. package/dest/mem_pools/instrumentation.d.ts +0 -31
  117. package/dest/mem_pools/instrumentation.d.ts.map +0 -1
  118. package/dest/mem_pools/interface.d.ts +0 -13
  119. package/dest/mem_pools/interface.d.ts.map +0 -1
  120. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -66
  121. package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
  122. package/dest/mem_pools/tx_pool/index.d.ts +0 -4
  123. package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
  124. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -56
  125. package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
  126. package/dest/mem_pools/tx_pool/priority.d.ts +0 -8
  127. package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
  128. package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -66
  129. package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
  130. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
  131. package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
  132. package/dest/mocks/index.d.ts +0 -54
  133. package/dest/mocks/index.d.ts.map +0 -1
  134. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +0 -8
  135. package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +0 -1
  136. package/dest/msg_validators/attestation_validator/index.d.ts +0 -2
  137. package/dest/msg_validators/attestation_validator/index.d.ts.map +0 -1
  138. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -8
  139. package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
  140. package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
  141. package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
  142. package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.d.ts +0 -8
  143. package/dest/msg_validators/epoch_proof_quote_validator/epoch_proof_quote_validator.d.ts.map +0 -1
  144. package/dest/msg_validators/epoch_proof_quote_validator/index.d.ts +0 -2
  145. package/dest/msg_validators/epoch_proof_quote_validator/index.d.ts.map +0 -1
  146. package/dest/msg_validators/index.d.ts +0 -4
  147. package/dest/msg_validators/index.d.ts.map +0 -1
  148. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +0 -7
  149. package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +0 -1
  150. package/dest/msg_validators/tx_validator/block_header_validator.d.ts +0 -11
  151. package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +0 -1
  152. package/dest/msg_validators/tx_validator/data_validator.d.ts +0 -6
  153. package/dest/msg_validators/tx_validator/data_validator.d.ts.map +0 -1
  154. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +0 -12
  155. package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +0 -1
  156. package/dest/msg_validators/tx_validator/index.d.ts +0 -7
  157. package/dest/msg_validators/tx_validator/index.d.ts.map +0 -1
  158. package/dest/msg_validators/tx_validator/metadata_validator.d.ts +0 -10
  159. package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +0 -1
  160. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +0 -8
  161. package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +0 -1
  162. package/dest/services/data_store.d.ts +0 -27
  163. package/dest/services/data_store.d.ts.map +0 -1
  164. package/dest/services/discv5/discV5_service.d.ts +0 -36
  165. package/dest/services/discv5/discV5_service.d.ts.map +0 -1
  166. package/dest/services/dummy_service.d.ts +0 -82
  167. package/dest/services/dummy_service.d.ts.map +0 -1
  168. package/dest/services/encoding.d.ts +0 -31
  169. package/dest/services/encoding.d.ts.map +0 -1
  170. package/dest/services/index.d.ts +0 -3
  171. package/dest/services/index.d.ts.map +0 -1
  172. package/dest/services/libp2p/libp2p_service.d.ts +0 -225
  173. package/dest/services/libp2p/libp2p_service.d.ts.map +0 -1
  174. package/dest/services/peer-manager/metrics.d.ts +0 -12
  175. package/dest/services/peer-manager/metrics.d.ts.map +0 -1
  176. package/dest/services/peer-manager/peer_manager.d.ts +0 -76
  177. package/dest/services/peer-manager/peer_manager.d.ts.map +0 -1
  178. package/dest/services/peer-manager/peer_scoring.d.ts +0 -28
  179. package/dest/services/peer-manager/peer_scoring.d.ts.map +0 -1
  180. package/dest/services/reqresp/config.d.ts +0 -16
  181. package/dest/services/reqresp/config.d.ts.map +0 -1
  182. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -45
  183. package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
  184. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +0 -61
  185. package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +0 -1
  186. package/dest/services/reqresp/index.d.ts +0 -6
  187. package/dest/services/reqresp/index.d.ts.map +0 -1
  188. package/dest/services/reqresp/interface.d.ts +0 -107
  189. package/dest/services/reqresp/interface.d.ts.map +0 -1
  190. package/dest/services/reqresp/metrics.d.ts +0 -15
  191. package/dest/services/reqresp/metrics.d.ts.map +0 -1
  192. package/dest/services/reqresp/protocols/block.d.ts +0 -4
  193. package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
  194. package/dest/services/reqresp/protocols/goodbye.d.ts +0 -51
  195. package/dest/services/reqresp/protocols/goodbye.d.ts.map +0 -1
  196. package/dest/services/reqresp/protocols/index.d.ts +0 -9
  197. package/dest/services/reqresp/protocols/index.d.ts.map +0 -1
  198. package/dest/services/reqresp/protocols/ping.d.ts +0 -9
  199. package/dest/services/reqresp/protocols/ping.d.ts.map +0 -1
  200. package/dest/services/reqresp/protocols/status.d.ts +0 -9
  201. package/dest/services/reqresp/protocols/status.d.ts.map +0 -1
  202. package/dest/services/reqresp/protocols/tx.d.ts +0 -13
  203. package/dest/services/reqresp/protocols/tx.d.ts.map +0 -1
  204. package/dest/services/reqresp/rate-limiter/index.d.ts +0 -2
  205. package/dest/services/reqresp/rate-limiter/index.d.ts.map +0 -1
  206. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +0 -102
  207. package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +0 -1
  208. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +0 -3
  209. package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +0 -1
  210. package/dest/services/reqresp/reqresp.d.ts +0 -161
  211. package/dest/services/reqresp/reqresp.d.ts.map +0 -1
  212. package/dest/services/service.d.ts +0 -85
  213. package/dest/services/service.d.ts.map +0 -1
  214. package/dest/services/types.d.ts +0 -38
  215. package/dest/services/types.d.ts.map +0 -1
  216. package/dest/util.d.ts +0 -53
  217. package/dest/util.d.ts.map +0 -1
@@ -1,161 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- /// <reference types="node" resolution-mode="require"/>
3
- import { type Logger } from '@aztec/foundation/log';
4
- import { type TelemetryClient } from '@aztec/telemetry-client';
5
- import { type PeerId } from '@libp2p/interface';
6
- import { type Libp2p } from 'libp2p';
7
- import { type PeerScoring } from '../peer-manager/peer_scoring.js';
8
- import { type P2PReqRespConfig } from './config.js';
9
- import { type ReqRespSubProtocol, type ReqRespSubProtocolHandlers, type ReqRespSubProtocolValidators, type SubProtocolMap } from './interface.js';
10
- /**
11
- * The Request Response Service
12
- *
13
- * It allows nodes to request specific information from their peers, its use case covers recovering
14
- * information that was missed during a syncronisation or a gossip event.
15
- *
16
- * This service implements the request response sub protocol, it is heavily inspired from
17
- * ethereum implementations of the same name.
18
- *
19
- * Note, responses get compressed in streamHandler
20
- * so they get decompressed in readMessage
21
- *
22
- * see: https://github.com/ethereum/consensus-specs/blob/dev/specs/phase0/p2p-interface.md#the-reqresp-domain
23
- */
24
- export declare class ReqResp {
25
- private libp2p;
26
- private peerScoring;
27
- protected readonly logger: Logger;
28
- private overallRequestTimeoutMs;
29
- private individualRequestTimeoutMs;
30
- private subProtocolHandlers;
31
- private subProtocolValidators;
32
- private connectionSampler;
33
- private rateLimiter;
34
- private snappyTransform;
35
- private metrics;
36
- constructor(config: P2PReqRespConfig, libp2p: Libp2p, peerScoring: PeerScoring, telemetryClient?: TelemetryClient);
37
- get tracer(): import("@aztec/telemetry-client").Tracer;
38
- /**
39
- * Start the reqresp service
40
- */
41
- start(subProtocolHandlers: ReqRespSubProtocolHandlers, subProtocolValidators: ReqRespSubProtocolValidators): Promise<void>;
42
- /**
43
- * Stop the reqresp service
44
- */
45
- stop(): Promise<void>;
46
- /**
47
- * Send a request to peers, returns the first response
48
- *
49
- * @param subProtocol - The protocol being requested
50
- * @param request - The request to send
51
- * @returns - The response from the peer, otherwise undefined
52
- *
53
- * @description
54
- * This method attempts to send a request to all active peers using the specified sub-protocol.
55
- * It opens a stream with each peer, sends the request, and awaits a response.
56
- * If a valid response is received, it returns the response; otherwise, it continues to the next peer.
57
- * If no response is received from any peer, it returns undefined.
58
- *
59
- * The method performs the following steps:
60
- * - Sample a peer to send the request to.
61
- * - Opens a stream with the peer using the specified sub-protocol.
62
- *
63
- * When a response is received, it is validated using the given sub protocols response validator.
64
- * To see the interface for the response validator - see `interface.ts`
65
- *
66
- * Failing a response validation requests in a severe peer penalty, and will
67
- * prompt the node to continue to search to the next peer.
68
- * For example, a transaction request validator will check that the payload returned does in fact
69
- * match the txHash that was requested. A peer that fails this check an only be an extremely naughty peer.
70
- *
71
- * This entire operation is wrapped in an overall timeout, that is independent of the
72
- * peer it is requesting data from.
73
- *
74
- */
75
- sendRequest<SubProtocol extends ReqRespSubProtocol>(subProtocol: SubProtocol, request: InstanceType<SubProtocolMap[SubProtocol]['request']>): Promise<InstanceType<SubProtocolMap[SubProtocol]['response']> | undefined>;
76
- /**
77
- * Request multiple messages over the same sub protocol, balancing the requests across peers.
78
- *
79
- * @devnote
80
- * - The function prioritizes sending requests to free peers using a batch sampling strategy.
81
- * - If a peer fails to respond or returns an invalid response, it is removed from the sampling pool and replaced.
82
- * - The function stops retrying once all requests are processed, no active peers remain, or the maximum retry attempts are reached.
83
- * - Responses are validated using a custom validator for the sub-protocol.*
84
- *
85
- * Requests are sent in parallel to each peer, but multiple requests are sent to the same peer in series
86
- * - If a peer fails to respond or returns an invalid response, it is removed from the sampling pool and replaced.
87
- * - The function stops retrying once all requests are processed, no active peers remain, or the maximum retry attempts are reached.
88
- * - Responses are validated using a custom validator for the sub-protocol.*
89
- *
90
- * @param subProtocol
91
- * @param requests
92
- * @param timeoutMs
93
- * @param maxPeers
94
- * @returns
95
- *
96
- * @throws {CollectiveReqRespTimeoutError} - If the request batch exceeds the specified timeout (`timeoutMs`).
97
- */
98
- sendBatchRequest<SubProtocol extends ReqRespSubProtocol>(subProtocol: SubProtocol, requests: InstanceType<SubProtocolMap[SubProtocol]['request']>[], timeoutMs?: number, maxPeers?: number, maxRetryAttempts?: number): Promise<InstanceType<SubProtocolMap[SubProtocol]['response']>[]>;
99
- /**
100
- * Sends a request to a specific peer
101
- *
102
- * We first dial a particular protocol for the peer, this ensures that the peer knows
103
- * what to respond with
104
- *
105
- *
106
- * @param peerId - The peer to send the request to
107
- * @param subProtocol - The protocol to use to request
108
- * @param payload - The payload to send
109
- * @returns If the request is successful, the response is returned, otherwise undefined
110
- *
111
- * @description
112
- * This method attempts to open a stream with the specified peer, send the payload,
113
- * and await a response.
114
- * If an error occurs, it penalizes the peer and returns undefined.
115
- *
116
- * The method performs the following steps:
117
- * - Opens a stream with the peer using the specified sub-protocol.
118
- * - Sends the payload and awaits a response with a timeout.
119
- *
120
- * If the stream is not closed by the dialled peer, and a timeout occurs, then
121
- * the stream is closed on the requester's end and sender (us) updates its peer score
122
- */
123
- sendRequestToPeer(peerId: PeerId, subProtocol: ReqRespSubProtocol, payload: Buffer): Promise<Buffer | undefined>;
124
- /**
125
- * Handle a response error
126
- *
127
- * ReqResp errors are punished differently depending on the severity of the offense
128
- *
129
- * @param e - The error
130
- * @param peerId - The peer id
131
- * @param subProtocol - The sub protocol
132
- * @returns If the error is non pubishable, then undefined is returned, otherwise the peer is penalized
133
- */
134
- private handleResponseError;
135
- /**
136
- * Categorize the error and log it.
137
- */
138
- private categorizeError;
139
- /**
140
- * Read a message returned from a stream into a single buffer
141
- */
142
- private readMessage;
143
- /**
144
- * Stream Handler
145
- * Reads the incoming stream, determines the protocol, then triggers the appropriate handler
146
- *
147
- * @param param0 - The incoming stream data
148
- *
149
- * @description
150
- * An individual stream handler will be bound to each sub protocol, and handles returning data back
151
- * to the requesting peer.
152
- *
153
- * The sub protocol handler interface is defined within `interface.ts` and will be assigned to the
154
- * req resp service on start up.
155
- *
156
- * We check rate limits for each peer, note the peer will be penalised within the rate limiter implementation
157
- * if they exceed their peer specific limits.
158
- */
159
- private streamHandler;
160
- }
161
- //# sourceMappingURL=reqresp.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reqresp.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/reqresp.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,EAAc,KAAK,eAAe,EAAiC,MAAM,yBAAyB,CAAC;AAE1G,OAAO,EAA2B,KAAK,MAAM,EAAe,MAAM,mBAAmB,CAAC;AAEtF,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AASrC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,4BAA4B,EACjC,KAAK,cAAc,EAEpB,MAAM,gBAAgB,CAAC;AAIxB;;;;;;;;;;;;;GAaG;AACH,qBAAa,OAAO;IAmBhB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IAnBrB,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAElC,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,0BAA0B,CAAS;IAG3C,OAAO,CAAC,mBAAmB,CAA6D;IACxF,OAAO,CAAC,qBAAqB,CAAiE;IAE9F,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,WAAW,CAA6B;IAEhD,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,OAAO,CAAiB;gBAG9B,MAAM,EAAE,gBAAgB,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EAChC,eAAe,GAAE,eAAsC;IAgBzD,IAAI,MAAM,6CAET;IAED;;OAEG;IACG,KAAK,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,4BAA4B;IAiBhH;;OAEG;IACG,IAAI;IAoBV;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,WAAW,CAAC,WAAW,SAAS,kBAAkB,EACtD,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,GAC5D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IAuD7E;;;;;;;;;;;;;;;;;;;;;OAqBG;IAQG,gBAAgB,CAAC,WAAW,SAAS,kBAAkB,EAC3D,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAChE,SAAS,SAAQ,EACjB,QAAQ,SAAgC,EACxC,gBAAgB,SAAI,GACnB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;IA+GnE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IAKU,iBAAiB,CAC5B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAgC9B;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,eAAe;IA4CvB;;OAEG;YACW,WAAW;IASzB;;;;;;;;;;;;;;;OAeG;YAKW,aAAa;CAkC5B"}
@@ -1,85 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- import type { BlockAttestation, BlockProposal, Gossipable, PeerInfo } from '@aztec/circuit-types';
3
- import type { ENR } from '@chainsafe/enr';
4
- import type { PeerId } from '@libp2p/interface';
5
- import type EventEmitter from 'events';
6
- import { type ReqRespSubProtocol, type SubProtocolMap } from './reqresp/interface.js';
7
- export declare enum PeerDiscoveryState {
8
- RUNNING = "running",
9
- STOPPED = "stopped"
10
- }
11
- /**
12
- * The interface for a P2P service implementation.
13
- */
14
- export interface P2PService {
15
- /**
16
- * Starts the service.
17
- * @returns An empty promise.
18
- */
19
- start(): Promise<void>;
20
- /**
21
- * Stops the service.
22
- * @returns An empty promise.
23
- */
24
- stop(): Promise<void>;
25
- /**
26
- * Called to have the given transaction propagated through the P2P network.
27
- * @param message - The message to be propagated.
28
- */
29
- propagate<T extends Gossipable>(message: T): void;
30
- /**
31
- * Request information from peers via the request response protocol.
32
- *
33
- * @param protocol - The request response protocol to use
34
- * @param request - The request type, corresponding to the protocol
35
- * @returns The response type, corresponding to the protocol
36
- */
37
- sendRequest<Protocol extends ReqRespSubProtocol>(protocol: Protocol, request: InstanceType<SubProtocolMap[Protocol]['request']>): Promise<InstanceType<SubProtocolMap[Protocol]['response']> | undefined>;
38
- /**
39
- * Send a batch of requests to peers, and return the responses
40
- *
41
- * @param protocol - The request response protocol to use
42
- * @param requests - The requests to send to the peers
43
- * @returns The responses to the requests
44
- */
45
- sendBatchRequest<Protocol extends ReqRespSubProtocol>(protocol: Protocol, requests: InstanceType<SubProtocolMap[Protocol]['request']>[]): Promise<InstanceType<SubProtocolMap[Protocol]['response']>[] | undefined>;
46
- registerBlockReceivedCallback(callback: (block: BlockProposal) => Promise<BlockAttestation | undefined>): void;
47
- getEnr(): ENR | undefined;
48
- getPeers(includePending?: boolean): PeerInfo[];
49
- }
50
- /**
51
- * The interface for a peer discovery service implementation.
52
- */
53
- export interface PeerDiscoveryService extends EventEmitter {
54
- /**
55
- * Starts the service.
56
- * */
57
- start(): Promise<void>;
58
- /**
59
- * Stops the service.
60
- * */
61
- stop(): Promise<void>;
62
- /**
63
- * Gets all peers.
64
- * @returns An array of peer ENRs.
65
- */
66
- getAllPeers(): ENR[];
67
- /**
68
- * Runs findRandomNode query.
69
- */
70
- runRandomNodesQuery(): Promise<void>;
71
- /**
72
- * Checks if the given peer is a bootstrap peer.
73
- * @param peerId - The peer ID to check.
74
- * @returns True if the peer is a bootstrap peer.
75
- */
76
- isBootstrapPeer(peerId: PeerId): boolean;
77
- /**
78
- * Event emitted when a new peer is discovered.
79
- */
80
- on(event: 'peer:discovered', listener: (enr: ENR) => void): this;
81
- emit(event: 'peer:discovered', enr: ENR): boolean;
82
- getStatus(): PeerDiscoveryState;
83
- getEnr(): ENR | undefined;
84
- }
85
- //# sourceMappingURL=service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAElG,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAEtF,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAElD;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,SAAS,kBAAkB,EAC7C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GACzD,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE3E;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,SAAS,kBAAkB,EAClD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAC5D,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC;IAG7E,6BAA6B,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;IAE/G,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;IAE1B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD;;SAEK;IACL,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;SAEK;IACL,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,WAAW,IAAI,GAAG,EAAE,CAAC;IAErB;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAElD,SAAS,IAAI,kBAAkB,CAAC;IAEhC,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;CAC3B"}
@@ -1,38 +0,0 @@
1
- /***************************************************
2
- * Events
3
- ***************************************************/
4
- /**
5
- * Events emitted from the libp2p node.
6
- */
7
- export declare enum PeerEvent {
8
- DISCOVERED = "peer:discovered",
9
- CONNECTED = "peer:connect",
10
- DISCONNECTED = "peer:disconnect"
11
- }
12
- /**
13
- * Events emitted from the Discv5 service.
14
- */
15
- export declare enum Discv5Event {
16
- DISCOVERED = "discovered",
17
- ENR_ADDED = "enrAdded"
18
- }
19
- /**
20
- * Events emitted from the GossipSub protocol.
21
- */
22
- export declare enum GossipSubEvent {
23
- MESSAGE = "gossipsub:message"
24
- }
25
- /***************************************************
26
- * Types
27
- ***************************************************/
28
- /**
29
- * Aztec network specific types
30
- */
31
- export declare const AZTEC_ENR_KEY = "aztec_network";
32
- export declare enum AztecENR {
33
- devnet = 1,
34
- testnet = 2,
35
- mainnet = 3
36
- }
37
- export declare const AZTEC_NET = AztecENR.devnet;
38
- //# sourceMappingURL=types.d.ts.map
@@ -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;AACrD;;GAEG;AACH,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,oBAAY,QAAQ;IAClB,MAAM,IAAO;IACb,OAAO,IAAO;IACd,OAAO,IAAO;CACf;AAGD,eAAO,MAAM,SAAS,kBAAkB,CAAC"}
package/dest/util.d.ts DELETED
@@ -1,53 +0,0 @@
1
- import { type AztecAsyncKVStore } from '@aztec/kv-store';
2
- import { type DataStoreConfig } from '@aztec/kv-store/config';
3
- import type { GossipSub } from '@chainsafe/libp2p-gossipsub';
4
- import { type PeerId } from '@libp2p/interface';
5
- import { type ConnectionManager } from '@libp2p/interface-internal';
6
- import type { Libp2p } from 'libp2p';
7
- import { type P2PConfig } from './config.js';
8
- export interface PubSubLibp2p extends Libp2p {
9
- services: {
10
- pubsub: GossipSub;
11
- components: {
12
- connectionManager: ConnectionManager;
13
- };
14
- };
15
- }
16
- /**
17
- * Converts an address string to a multiaddr string.
18
- * Example usage:
19
- * const tcpAddr = '123.456.7.8:80' -> /ip4/123.456.7.8/tcp/80
20
- * const udpAddr = '[2001:db8::1]:8080' -> /ip6/2001:db8::1/udp/8080
21
- * @param address - The address string to convert. Has to be in the format <addr>:<port>.
22
- * @param protocol - The protocol to use in the multiaddr string.
23
- * @returns A multiaddr compliant string. */
24
- export declare function convertToMultiaddr(address: string, protocol: 'tcp' | 'udp'): string;
25
- /**
26
- * Splits an <address>:<port> string into its components.
27
- * @returns The ip6 or ip4 address & port separately
28
- */
29
- export declare function splitAddressPort(address: string, allowEmptyAddress: boolean): [string, string];
30
- /**
31
- * Queries the public IP address of the machine.
32
- */
33
- export declare function getPublicIp(): Promise<string>;
34
- export declare function resolveAddressIfNecessary(address: string): Promise<string>;
35
- export declare function configureP2PClientAddresses(_config: P2PConfig & DataStoreConfig): Promise<P2PConfig & DataStoreConfig>;
36
- /**
37
- * Get the peer id private key
38
- *
39
- * 1. Check if we have a peer id private key in the config
40
- * 2. If not, check we have a peer id private key persisted in the node
41
- * 3. If not, create a new one, then persist it in the node
42
- *
43
- */
44
- export declare function getPeerIdPrivateKey(config: {
45
- peerIdPrivateKey?: string;
46
- }, store: AztecAsyncKVStore): Promise<string>;
47
- /**
48
- * Create a libp2p peer ID from the private key.
49
- * @param privateKey - peer ID private key as hex string
50
- * @returns The peer ID.
51
- */
52
- export declare function createLibP2PPeerIdFromPrivateKey(privateKey: string): Promise<PeerId>;
53
- //# sourceMappingURL=util.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,KAAK,MAAM,EAAmB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC1C,QAAQ,EAAE;QACR,MAAM,EAAE,SAAS,CAAC;QAClB,UAAU,EAAE;YACV,iBAAiB,EAAE,iBAAiB,CAAC;SACtC,CAAC;KACH,CAAC;CACH;AAED;;;;;;;6CAO6C;AAC7C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CASnF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB9F;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAInD;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAYhF;AAcD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,SAAS,GAAG,eAAe,GACnC,OAAO,CAAC,SAAS,GAAG,eAAe,CAAC,CA6CtC;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAE,EACrC,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED;;;;GAIG;AACH,wBAAsB,gCAAgC,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F"}