@aztec/p2p 0.0.1-commit.6d63667d → 0.0.1-commit.86469d5

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 (140) hide show
  1. package/dest/client/factory.d.ts +1 -1
  2. package/dest/client/factory.d.ts.map +1 -1
  3. package/dest/client/factory.js +1 -3
  4. package/dest/client/p2p_client.d.ts +2 -4
  5. package/dest/client/p2p_client.d.ts.map +1 -1
  6. package/dest/client/p2p_client.js +2 -6
  7. package/dest/config.d.ts +3 -9
  8. package/dest/config.d.ts.map +1 -1
  9. package/dest/config.js +1 -3
  10. package/dest/services/index.d.ts +1 -2
  11. package/dest/services/index.d.ts.map +1 -1
  12. package/dest/services/index.js +0 -1
  13. package/dest/services/libp2p/libp2p_service.d.ts +4 -4
  14. package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
  15. package/dest/services/libp2p/libp2p_service.js +8 -4
  16. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +4 -4
  17. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
  18. package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +8 -8
  19. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +5 -6
  20. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -1
  21. package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +11 -16
  22. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +10 -15
  23. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
  24. package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +11 -12
  25. package/dest/services/tx_collection/config.d.ts +3 -3
  26. package/dest/services/tx_collection/config.js +3 -3
  27. package/dest/services/tx_collection/fast_tx_collection.d.ts +5 -4
  28. package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
  29. package/dest/services/tx_collection/fast_tx_collection.js +14 -10
  30. package/dest/services/tx_collection/index.d.ts +1 -1
  31. package/dest/services/tx_collection/proposal_tx_collector.d.ts +12 -12
  32. package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
  33. package/dest/services/tx_collection/proposal_tx_collector.js +5 -4
  34. package/package.json +14 -14
  35. package/src/client/factory.ts +0 -4
  36. package/src/client/p2p_client.ts +0 -5
  37. package/src/config.ts +1 -8
  38. package/src/services/index.ts +0 -1
  39. package/src/services/libp2p/libp2p_service.ts +8 -12
  40. package/src/services/reqresp/batch-tx-requester/README.md +7 -7
  41. package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +11 -11
  42. package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +14 -22
  43. package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +15 -21
  44. package/src/services/tx_collection/config.ts +6 -6
  45. package/src/services/tx_collection/fast_tx_collection.ts +24 -14
  46. package/src/services/tx_collection/index.ts +1 -1
  47. package/src/services/tx_collection/proposal_tx_collector.ts +14 -12
  48. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +0 -2
  49. package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +0 -1
  50. package/dest/mem_pools/tx_pool_v2/archive/index.js +0 -1
  51. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +0 -43
  52. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +0 -1
  53. package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +0 -103
  54. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +0 -47
  55. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +0 -1
  56. package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +0 -119
  57. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +0 -17
  58. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +0 -1
  59. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +0 -90
  60. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +0 -19
  61. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +0 -1
  62. package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +0 -89
  63. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +0 -10
  64. package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +0 -1
  65. package/dest/mem_pools/tx_pool_v2/eviction/index.js +0 -11
  66. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +0 -131
  67. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +0 -1
  68. package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +0 -17
  69. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +0 -15
  70. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +0 -1
  71. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +0 -63
  72. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +0 -17
  73. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +0 -1
  74. package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +0 -91
  75. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +0 -16
  76. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +0 -1
  77. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +0 -70
  78. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +0 -20
  79. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +0 -1
  80. package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +0 -63
  81. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +0 -15
  82. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +0 -1
  83. package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +0 -19
  84. package/dest/mem_pools/tx_pool_v2/index.d.ts +0 -5
  85. package/dest/mem_pools/tx_pool_v2/index.d.ts.map +0 -1
  86. package/dest/mem_pools/tx_pool_v2/index.js +0 -4
  87. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +0 -197
  88. package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +0 -1
  89. package/dest/mem_pools/tx_pool_v2/interfaces.js +0 -6
  90. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +0 -71
  91. package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +0 -1
  92. package/dest/mem_pools/tx_pool_v2/tx_metadata.js +0 -95
  93. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +0 -26
  94. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +0 -1
  95. package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +0 -70
  96. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +0 -99
  97. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +0 -1
  98. package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +0 -332
  99. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +0 -55
  100. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +0 -1
  101. package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +0 -156
  102. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +0 -69
  103. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +0 -1
  104. package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +0 -748
  105. package/dest/services/tx_file_store/config.d.ts +0 -18
  106. package/dest/services/tx_file_store/config.d.ts.map +0 -1
  107. package/dest/services/tx_file_store/config.js +0 -26
  108. package/dest/services/tx_file_store/index.d.ts +0 -4
  109. package/dest/services/tx_file_store/index.d.ts.map +0 -1
  110. package/dest/services/tx_file_store/index.js +0 -3
  111. package/dest/services/tx_file_store/instrumentation.d.ts +0 -15
  112. package/dest/services/tx_file_store/instrumentation.d.ts.map +0 -1
  113. package/dest/services/tx_file_store/instrumentation.js +0 -29
  114. package/dest/services/tx_file_store/tx_file_store.d.ts +0 -47
  115. package/dest/services/tx_file_store/tx_file_store.d.ts.map +0 -1
  116. package/dest/services/tx_file_store/tx_file_store.js +0 -149
  117. package/src/mem_pools/tx_pool_v2/README.md +0 -209
  118. package/src/mem_pools/tx_pool_v2/archive/index.ts +0 -1
  119. package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +0 -120
  120. package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +0 -147
  121. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +0 -118
  122. package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +0 -111
  123. package/src/mem_pools/tx_pool_v2/eviction/index.ts +0 -23
  124. package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +0 -164
  125. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +0 -74
  126. package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +0 -101
  127. package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +0 -86
  128. package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +0 -72
  129. package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +0 -31
  130. package/src/mem_pools/tx_pool_v2/index.ts +0 -11
  131. package/src/mem_pools/tx_pool_v2/interfaces.ts +0 -227
  132. package/src/mem_pools/tx_pool_v2/tx_metadata.ts +0 -161
  133. package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +0 -77
  134. package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +0 -417
  135. package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +0 -212
  136. package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +0 -882
  137. package/src/services/tx_file_store/config.ts +0 -43
  138. package/src/services/tx_file_store/index.ts +0 -3
  139. package/src/services/tx_file_store/instrumentation.ts +0 -36
  140. package/src/services/tx_file_store/tx_file_store.ts +0 -173
@@ -6,10 +6,9 @@ import { BlockTxsRequest, BlockTxsResponse } from './block_txs_reqresp.js';
6
6
  /**
7
7
  * Handler for block txs requests
8
8
  * @param attestationPool - the attestation pool to check for block proposals
9
- * @param archiver - the archiver to look up blocks by archive root
10
- * @param txPool - the tx pool to fetch transactions from
9
+ * @param mempools - the mempools containing the tx pool
11
10
  * @returns the BlockTxs request handler
12
- */ export function reqRespBlockTxsHandler(attestationPool, archiver, txPool) {
11
+ */ export function reqRespBlockTxsHandler(attestationPool, txPool) {
13
12
  /**
14
13
  * Handler for block txs requests
15
14
  * @param msg - the block txs request message
@@ -24,32 +23,28 @@ import { BlockTxsRequest, BlockTxsResponse } from './block_txs_reqresp.js';
24
23
  cause: err
25
24
  });
26
25
  }
27
- // First try attestation pool, then fall back to archiver
28
- let txHashes = (await attestationPool.getBlockProposal(request.archiveRoot.toString()))?.txHashes;
29
- if (!txHashes) {
30
- txHashes = (await archiver.getL2BlockByArchive(request.archiveRoot))?.body.txEffects.map((effect)=>effect.txHash);
31
- }
26
+ const blockProposal = await attestationPool.getBlockProposal(request.archiveRoot.toString());
32
27
  let requestedTxsHashes;
33
28
  if (request.txHashes.length > 0) {
34
29
  requestedTxsHashes = request.txHashes;
35
30
  }
36
- // This is scenario in which we don't have this block the peer is requesting from us
31
+ // This is scenario in which we don't have this block proposal the peer is requesting from us
37
32
  // But peer has sent requested tx hashes, so we can send them the transactions
38
- if (!txHashes && requestedTxsHashes !== undefined) {
33
+ if (!blockProposal && requestedTxsHashes !== undefined) {
39
34
  const responseTxs = (await txPool.getTxsByHash(requestedTxsHashes)).filter((tx)=>!!tx);
40
35
  const response = new BlockTxsResponse(Fr.zero(), new TxArray(...responseTxs), BitVector.init(0, []));
41
36
  return response.toBuffer();
42
37
  }
43
- // If we don't have this block and peer has not sent requested tx hashes
44
- if (!txHashes) {
38
+ // If don't have this block proposal and peer has not sent requested tx hashes
39
+ if (!blockProposal) {
45
40
  throw new ReqRespStatusError(ReqRespStatus.NOT_FOUND);
46
41
  }
47
- const txsAvailableInPool = await txPool.hasTxs(txHashes);
48
- // Map txs in the pool to their indices in the block
42
+ const txsAvailableInPool = await txPool.hasTxs(blockProposal.txHashes);
43
+ //Map txs in the pool to their indices in the block proposal
49
44
  const availableIndices = txsAvailableInPool.map((hasTx, idx)=>hasTx ? idx : -1).filter((idx)=>idx !== -1);
50
- const responseBitVector = BitVector.init(txHashes.length, availableIndices);
45
+ const responseBitVector = BitVector.init(blockProposal.txHashes.length, availableIndices);
51
46
  const requestedIndices = new Set(request.txIndices.getTrueIndices());
52
- requestedTxsHashes = txHashes.filter((_, idx)=>requestedIndices.has(idx));
47
+ requestedTxsHashes = blockProposal.txHashes.filter((_, idx)=>requestedIndices.has(idx));
53
48
  const responseTxs = (await txPool.getTxsByHash(requestedTxsHashes)).filter((tx)=>!!tx);
54
49
  const response = new BlockTxsResponse(request.archiveRoot, new TxArray(...responseTxs), responseBitVector);
55
50
  return response.toBuffer();
@@ -1,12 +1,8 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { BufferReader } from '@aztec/foundation/serialize';
3
- import { TxArray, type TxHash, TxHashArray } from '@aztec/stdlib/tx';
3
+ import type { BlockProposal } from '@aztec/stdlib/p2p';
4
+ import { TxArray, TxHash, TxHashArray } from '@aztec/stdlib/tx';
4
5
  import { BitVector } from './bitvector.js';
5
- /** Minimal interface for a block source that provides tx hashes and an archive root. */
6
- export interface BlockTxsSource {
7
- txHashes: TxHash[];
8
- archive: Fr;
9
- }
10
6
  /**
11
7
  * Request message for requesting specific transactions from a block
12
8
  */
@@ -16,16 +12,15 @@ export declare class BlockTxsRequest {
16
12
  readonly txIndices: BitVector;
17
13
  constructor(archiveRoot: Fr, txHashes: TxHashArray, txIndices: BitVector);
18
14
  /**
19
- * Creates new BlockTxsRequest given a block txs source and missing tx hashes.
15
+ * Creates new BlockTxsRequest given proposal and missing tx hashes
20
16
  *
21
- * @param blockTxsSource - The block or proposal for which we are making the request
22
- * @param missingTxHashes - Tx hashes from the source we are missing
23
- * @param includeFullTxHashes - Whether to include full list of missing tx hashes in the request or just Bitvector indices
17
+ * @param: blockProposal - The block proposal for which we are making request
18
+ * @param: missingTxHashes - Tx hashes from the proposal we are missing
19
+ * @param: includeFullTxHashes - Whether to include full list of missing tx hashes in the request or just Bitvector indices
24
20
  *
25
- * @returns undefined if there were no missingTxHashes matching the source hashes, otherwise
26
- * returns new BlockTxsRequest
27
- */
28
- static fromTxsSourceAndMissingTxs(blockTxsSource: BlockTxsSource, missingTxHashes: TxHash[], includeFullTxHashes?: boolean): BlockTxsRequest | undefined;
21
+ * @returns undefined if there were no missingTxHashes matching BlockProposal hashes, otherwise
22
+ * returns new BlockTxsRequest*/
23
+ static fromBlockProposalAndMissingTxs(blockProposal: BlockProposal, missingTxHashes: TxHash[], includeFullTxHashes?: boolean): BlockTxsRequest | undefined;
29
24
  /**
30
25
  * Deserializes the BlockTxRequest object from a Buffer
31
26
  * @param buffer - Buffer or BufferReader object to deserialize
@@ -61,4 +56,4 @@ export declare class BlockTxsResponse {
61
56
  toBuffer(): Buffer;
62
57
  static empty(): BlockTxsResponse;
63
58
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX3JlcXJlc3AuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX3JlcXJlc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0Msd0ZBQXdGO0FBQ3hGLE1BQU0sV0FBVyxjQUFjO0lBQzdCLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNuQixPQUFPLEVBQUUsRUFBRSxDQUFDO0NBQ2I7QUFFRDs7R0FFRztBQUNILHFCQUFhLGVBQWU7SUFHeEIsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBRXhCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsV0FBVztJQUs5QixRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVM7SUFUL0IsWUFFVyxXQUFXLEVBQUUsRUFBRSxFQUVmLFFBQVEsRUFBRSxXQUFXLEVBS3JCLFNBQVMsRUFBRSxTQUFTLEVBQzNCO0lBRUo7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUMvQixjQUFjLEVBQUUsY0FBYyxFQUM5QixlQUFlLEVBQUUsTUFBTSxFQUFFLEVBQ3pCLG1CQUFtQixVQUFRLEdBQzFCLGVBQWUsR0FBRyxTQUFTLENBb0I3QjtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLGVBQWUsQ0FPaEU7SUFFRDs7O09BR0c7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtDQUNGO0FBRUQ7O0dBRUc7QUFDSCxxQkFBYSxnQkFBZ0I7SUFFekIsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBQ3hCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTztJQUdyQixRQUFRLENBQUMsU0FBUyxFQUFFLFNBQVM7SUFML0IsWUFDVyxXQUFXLEVBQUUsRUFBRSxFQUNmLEdBQUcsRUFBRSxPQUFPLEVBR1osU0FBUyxFQUFFLFNBQVMsRUFDM0I7SUFFSjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxnQkFBZ0IsQ0FPakU7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsSUFBSSxNQUFNLENBRWpCO0lBRUQsTUFBTSxDQUFDLEtBQUssSUFBSSxnQkFBZ0IsQ0FFL0I7Q0FDRiJ9
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfdHhzX3JlcXJlc3AuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL3Byb3RvY29scy9ibG9ja190eHMvYmxvY2tfdHhzX3JlcXJlc3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQXFCLE1BQU0sNkJBQTZCLENBQUM7QUFDOUUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDOztHQUVHO0FBQ0gscUJBQWEsZUFBZTtJQUd4QixRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUU7SUFFeEIsUUFBUSxDQUFDLFFBQVEsRUFBRSxXQUFXO0lBSzlCLFFBQVEsQ0FBQyxTQUFTLEVBQUUsU0FBUztJQVQvQixZQUVXLFdBQVcsRUFBRSxFQUFFLEVBRWYsUUFBUSxFQUFFLFdBQVcsRUFLckIsU0FBUyxFQUFFLFNBQVMsRUFDM0I7SUFFSjs7Ozs7Ozs7b0NBUWdDO0lBQ2hDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FDbkMsYUFBYSxFQUFFLGFBQWEsRUFDNUIsZUFBZSxFQUFFLE1BQU0sRUFBRSxFQUN6QixtQkFBbUIsVUFBUSxHQUMxQixlQUFlLEdBQUcsU0FBUyxDQW9CN0I7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksR0FBRyxlQUFlLENBT2hFO0lBRUQ7OztPQUdHO0lBQ0gsUUFBUSxJQUFJLE1BQU0sQ0FFakI7Q0FDRjtBQUVEOztHQUVHO0FBQ0gscUJBQWEsZ0JBQWdCO0lBRXpCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtJQUN4QixRQUFRLENBQUMsR0FBRyxFQUFFLE9BQU87SUFHckIsUUFBUSxDQUFDLFNBQVMsRUFBRSxTQUFTO0lBTC9CLFlBQ1csV0FBVyxFQUFFLEVBQUUsRUFDZixHQUFHLEVBQUUsT0FBTyxFQUdaLFNBQVMsRUFBRSxTQUFTLEVBQzNCO0lBRUo7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsZ0JBQWdCLENBT2pFO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxLQUFLLElBQUksZ0JBQWdCLENBRS9CO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"block_txs_reqresp.d.ts","sourceRoot":"","sources":["../../../../../src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,OAAO,EAAE,KAAK,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,wFAAwF;AACxF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,EAAE,CAAC;CACb;AAED;;GAEG;AACH,qBAAa,eAAe;IAGxB,QAAQ,CAAC,WAAW,EAAE,EAAE;IAExB,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAK9B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAT/B,YAEW,WAAW,EAAE,EAAE,EAEf,QAAQ,EAAE,WAAW,EAKrB,SAAS,EAAE,SAAS,EAC3B;IAEJ;;;;;;;;;OASG;IACH,MAAM,CAAC,0BAA0B,CAC/B,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,MAAM,EAAE,EACzB,mBAAmB,UAAQ,GAC1B,eAAe,GAAG,SAAS,CAoB7B;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,CAOhE;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAEjB;CACF;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,QAAQ,CAAC,WAAW,EAAE,EAAE;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO;IAGrB,QAAQ,CAAC,SAAS,EAAE,SAAS;IAL/B,YACW,WAAW,EAAE,EAAE,EACf,GAAG,EAAE,OAAO,EAGZ,SAAS,EAAE,SAAS,EAC3B;IAEJ;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAOjE;IAED;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;CACF"}
1
+ {"version":3,"file":"block_txs_reqresp.d.ts","sourceRoot":"","sources":["../../../../../src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAqB,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,qBAAa,eAAe;IAGxB,QAAQ,CAAC,WAAW,EAAE,EAAE;IAExB,QAAQ,CAAC,QAAQ,EAAE,WAAW;IAK9B,QAAQ,CAAC,SAAS,EAAE,SAAS;IAT/B,YAEW,WAAW,EAAE,EAAE,EAEf,QAAQ,EAAE,WAAW,EAKrB,SAAS,EAAE,SAAS,EAC3B;IAEJ;;;;;;;;oCAQgC;IAChC,MAAM,CAAC,8BAA8B,CACnC,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,MAAM,EAAE,EACzB,mBAAmB,UAAQ,GAC1B,eAAe,GAAG,SAAS,CAoB7B;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,eAAe,CAOhE;IAED;;;OAGG;IACH,QAAQ,IAAI,MAAM,CAEjB;CACF;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAEzB,QAAQ,CAAC,WAAW,EAAE,EAAE;IACxB,QAAQ,CAAC,GAAG,EAAE,OAAO;IAGrB,QAAQ,CAAC,SAAS,EAAE,SAAS;IAL/B,YACW,WAAW,EAAE,EAAE,EACf,GAAG,EAAE,OAAO,EAGZ,SAAS,EAAE,SAAS,EAC3B;IAEJ;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAOjE;IAED;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAE/B;CACF"}
@@ -20,27 +20,26 @@ import { BitVector } from './bitvector.js';
20
20
  this.txIndices = txIndices;
21
21
  }
22
22
  /**
23
- * Creates new BlockTxsRequest given a block txs source and missing tx hashes.
23
+ * Creates new BlockTxsRequest given proposal and missing tx hashes
24
24
  *
25
- * @param blockTxsSource - The block or proposal for which we are making the request
26
- * @param missingTxHashes - Tx hashes from the source we are missing
27
- * @param includeFullTxHashes - Whether to include full list of missing tx hashes in the request or just Bitvector indices
25
+ * @param: blockProposal - The block proposal for which we are making request
26
+ * @param: missingTxHashes - Tx hashes from the proposal we are missing
27
+ * @param: includeFullTxHashes - Whether to include full list of missing tx hashes in the request or just Bitvector indices
28
28
  *
29
- * @returns undefined if there were no missingTxHashes matching the source hashes, otherwise
30
- * returns new BlockTxsRequest
31
- */ static fromTxsSourceAndMissingTxs(blockTxsSource, missingTxHashes, includeFullTxHashes = false) {
29
+ * @returns undefined if there were no missingTxHashes matching BlockProposal hashes, otherwise
30
+ * returns new BlockTxsRequest*/ static fromBlockProposalAndMissingTxs(blockProposal, missingTxHashes, includeFullTxHashes = false) {
32
31
  if (missingTxHashes.length === 0) {
33
32
  return undefined; // No missing txs to request
34
33
  }
35
34
  const missingHashesSet = new Set(missingTxHashes.map((t)=>t.toString()));
36
- // We cannot request txs that are not part of the block
37
- if (!missingHashesSet.isSubsetOf(new Set(blockTxsSource.txHashes.map((t)=>t.toString())))) {
35
+ // We cannot request txs that are not part of the block proposal
36
+ if (!missingHashesSet.isSubsetOf(new Set(blockProposal.txHashes.map((t)=>t.toString())))) {
38
37
  return undefined;
39
38
  }
40
- const missingIndices = blockTxsSource.txHashes.map((hash, idx)=>missingHashesSet.has(hash.toString()) ? idx : -1).filter((i)=>i != -1);
41
- const requestBitVector = BitVector.init(blockTxsSource.txHashes.length, missingIndices);
39
+ const missingIndices = blockProposal.txHashes.map((hash, idx)=>missingHashesSet.has(hash.toString()) ? idx : -1).filter((i)=>i != -1);
40
+ const requestBitVector = BitVector.init(blockProposal.txHashes.length, missingIndices);
42
41
  const hashes = includeFullTxHashes ? new TxHashArray(...missingTxHashes) : new TxHashArray();
43
- return new BlockTxsRequest(blockTxsSource.archive, hashes, requestBitVector);
42
+ return new BlockTxsRequest(blockProposal.archive, hashes, requestBitVector);
44
43
  }
45
44
  /**
46
45
  * Deserializes the BlockTxRequest object from a Buffer
@@ -1,5 +1,5 @@
1
1
  import { type ConfigMappingsType } from '@aztec/foundation/config';
2
- export type MissingTxsCollectorType = 'new' | 'old';
2
+ export type ProposalTxCollectorType = 'new' | 'old';
3
3
  export type TxCollectionConfig = {
4
4
  /** How long to wait before starting reqresp for fast collection */
5
5
  txCollectionFastNodesTimeoutBeforeReqRespMs: number;
@@ -21,8 +21,8 @@ export type TxCollectionConfig = {
21
21
  txCollectionFastMaxParallelRequestsPerNode: number;
22
22
  /** Maximum number of transactions to request from a node in a single batch */
23
23
  txCollectionNodeRpcMaxBatchSize: number;
24
- /** Which collector implementation to use for missing txs collection */
25
- txCollectionMissingTxsCollectorType: MissingTxsCollectorType;
24
+ /** Which collector implementation to use for proposal tx collection */
25
+ txCollectionProposalTxCollectorType: ProposalTxCollectorType;
26
26
  };
27
27
  export declare const txCollectionConfigMappings: ConfigMappingsType<TxCollectionConfig>;
28
28
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLEtBQUssa0JBQWtCLEVBSXhCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsTUFBTSxNQUFNLHVCQUF1QixHQUFHLEtBQUssR0FBRyxLQUFLLENBQUM7QUFFcEQsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLG9FQUFvRTtJQUNwRSwyQ0FBMkMsRUFBRSxNQUFNLENBQUM7SUFDcEQsaURBQWlEO0lBQ2pELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxzQ0FBc0M7SUFDdEMsaUNBQWlDLEVBQUUsTUFBTSxDQUFDO0lBQzFDLHFFQUFxRTtJQUNyRSxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDekMsd0RBQXdEO0lBQ3hELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxnR0FBZ0c7SUFDaEcseUNBQXlDLEVBQUUsT0FBTyxDQUFDO0lBQ25ELDJGQUEyRjtJQUMzRiw4QkFBOEIsRUFBRSxNQUFNLENBQUM7SUFDdkMsNkVBQTZFO0lBQzdFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLG1GQUFtRjtJQUNuRiwwQ0FBMEMsRUFBRSxNQUFNLENBQUM7SUFDbkQsOEVBQThFO0lBQzlFLCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4Qyx1RUFBdUU7SUFDdkUsbUNBQW1DLEVBQUUsdUJBQXVCLENBQUM7Q0FDOUQsQ0FBQztBQUVGLGVBQU8sTUFBTSwwQkFBMEIsRUFBRSxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0E4RDdFLENBQUMifQ==
@@ -55,9 +55,9 @@ export const txCollectionConfigMappings = {
55
55
  description: 'Maximum number of transactions to request from a node in a single batch',
56
56
  ...numberConfigHelper(MAX_RPC_TXS_LEN)
57
57
  },
58
- txCollectionMissingTxsCollectorType: {
59
- env: 'TX_COLLECTION_MISSING_TXS_COLLECTOR_TYPE',
60
- description: 'Which collector implementation to use for missing txs collection (new or old)',
58
+ txCollectionProposalTxCollectorType: {
59
+ env: 'TX_COLLECTION_PROPOSAL_TX_COLLECTOR_TYPE',
60
+ description: 'Which collector implementation to use for proposal tx collection (new or old)',
61
61
  ...enumConfigHelper([
62
62
  'new',
63
63
  'old'
@@ -6,19 +6,20 @@ import { type Tx, TxHash } from '@aztec/stdlib/tx';
6
6
  import type { PeerId } from '@libp2p/interface';
7
7
  import type { BatchTxRequesterLibP2PService } from '../reqresp/batch-tx-requester/interface.js';
8
8
  import type { TxCollectionConfig } from './config.js';
9
- import { type MissingTxsCollector } from './proposal_tx_collector.js';
9
+ import { type ProposalTxCollector } from './proposal_tx_collector.js';
10
10
  import type { FastCollectionRequest, FastCollectionRequestInput } from './tx_collection.js';
11
11
  import type { TxCollectionSink } from './tx_collection_sink.js';
12
12
  import type { TxSource } from './tx_source.js';
13
13
  export declare class FastTxCollection {
14
+ private p2pService;
14
15
  private nodes;
15
16
  private txCollectionSink;
16
17
  private config;
17
18
  private dateProvider;
18
19
  private log;
19
20
  protected requests: Set<FastCollectionRequest>;
20
- private missingTxsCollector;
21
- constructor(p2pService: BatchTxRequesterLibP2PService, nodes: TxSource[], txCollectionSink: TxCollectionSink, config: TxCollectionConfig, dateProvider?: DateProvider, log?: Logger, missingTxsCollector?: MissingTxsCollector);
21
+ private proposalTxCollector;
22
+ constructor(p2pService: BatchTxRequesterLibP2PService, nodes: TxSource[], txCollectionSink: TxCollectionSink, config: TxCollectionConfig, dateProvider?: DateProvider, log?: Logger, proposalTxCollector?: ProposalTxCollector);
22
23
  stop(): Promise<void>;
23
24
  getFastCollectionRequests(): Set<FastCollectionRequest>;
24
25
  collectFastFor(input: FastCollectionRequestInput, txHashes: TxHash[] | string[], opts: {
@@ -49,4 +50,4 @@ export declare class FastTxCollection {
49
50
  */
50
51
  stopCollectingForBlocksAfter(blockNumber: BlockNumber): void;
51
52
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdF90eF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9mYXN0X3R4X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEcsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUVMLEtBQUssbUJBQW1CLEVBRXpCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLHFCQUFhLGdCQUFnQjtJQU96QixPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsR0FBRztJQVRiLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQWE7SUFDM0QsT0FBTyxDQUFDLG1CQUFtQixDQUFzQjtJQUVqRCxZQUNFLFVBQVUsRUFBRSw2QkFBNkIsRUFDakMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUNqQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsTUFBTSxFQUFFLGtCQUFrQixFQUMxQixZQUFZLEdBQUUsWUFBaUMsRUFDL0MsR0FBRyxHQUFFLE1BQWtELEVBQy9ELG1CQUFtQixDQUFDLEVBQUUsbUJBQW1CLEVBUzFDO0lBRVksSUFBSSxrQkFHaEI7SUFFTSx5QkFBeUIsK0JBRS9CO0lBRVksY0FBYyxDQUN6QixLQUFLLEVBQUUsMEJBQTBCLEVBQ2pDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFDN0IsSUFBSSxFQUFFO1FBQUUsUUFBUSxFQUFFLElBQUksQ0FBQztRQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLGlCQTBDOUM7SUFFRCxVQUFnQixXQUFXLENBQ3pCLE9BQU8sRUFBRSxxQkFBcUIsRUFDOUIsSUFBSSxFQUFFO1FBQUUsUUFBUSxDQUFDLEVBQUUsYUFBYSxDQUFDO1FBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztRQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLGlCQStDeEU7WUFRYSxvQkFBb0I7WUFZcEIsbUJBQW1CO1lBaUZuQixxQkFBcUI7SUE0Q25DOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBd0J4QjtJQUVEOzs7T0FHRztJQUNJLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU9qRTtJQUVEOzs7T0FHRztJQUNJLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU9sRTtDQUNGIn0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdF90eF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9mYXN0X3R4X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUlsRSxPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFHaEcsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUVMLEtBQUssbUJBQW1CLEVBRXpCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLHFCQUFhLGdCQUFnQjtJQU16QixPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsR0FBRztJQVRiLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQWE7SUFDM0QsT0FBTyxDQUFDLG1CQUFtQixDQUFzQjtJQUVqRCxZQUNVLFVBQVUsRUFBRSw2QkFBNkIsRUFDekMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUNqQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFDbEMsTUFBTSxFQUFFLGtCQUFrQixFQUMxQixZQUFZLEdBQUUsWUFBaUMsRUFDL0MsR0FBRyxHQUFFLE1BQWtELEVBQy9ELG1CQUFtQixDQUFDLEVBQUUsbUJBQW1CLEVBUzFDO0lBRVksSUFBSSxrQkFHaEI7SUFFTSx5QkFBeUIsK0JBRS9CO0lBRVksY0FBYyxDQUN6QixLQUFLLEVBQUUsMEJBQTBCLEVBQ2pDLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFDN0IsSUFBSSxFQUFFO1FBQUUsUUFBUSxFQUFFLElBQUksQ0FBQztRQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLGlCQTBDOUM7SUFFRCxVQUFnQixXQUFXLENBQ3pCLE9BQU8sRUFBRSxxQkFBcUIsRUFDOUIsSUFBSSxFQUFFO1FBQUUsUUFBUSxDQUFDLEVBQUUsYUFBYSxDQUFDO1FBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztRQUFDLFVBQVUsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLGlCQStDeEU7WUFRYSxvQkFBb0I7WUFZcEIsbUJBQW1CO1lBaUZuQixxQkFBcUI7SUFtRG5DOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBd0J4QjtJQUVEOzs7T0FHRztJQUNJLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU9qRTtJQUVEOzs7T0FHRztJQUNJLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU9sRTtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fast_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/fast_tx_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,gBAAgB;IAOzB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IATb,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAa;IAC3D,OAAO,CAAC,mBAAmB,CAAsB;IAEjD,YACE,UAAU,EAAE,6BAA6B,EACjC,KAAK,EAAE,QAAQ,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAkD,EAC/D,mBAAmB,CAAC,EAAE,mBAAmB,EAS1C;IAEY,IAAI,kBAGhB;IAEM,yBAAyB,+BAE/B;IAEY,cAAc,CACzB,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAC7B,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA0C9C;IAED,UAAgB,WAAW,CACzB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA+CxE;YAQa,oBAAoB;YAYpB,mBAAmB;YAiFnB,qBAAqB;IA4CnC;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,QAwBxB;IAED;;;OAGG;IACI,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOjE;IAED;;;OAGG;IACI,4BAA4B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOlE;CACF"}
1
+ {"version":3,"file":"fast_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/fast_tx_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAIlE,OAAO,EAAE,YAAY,EAAW,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAGhG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,qBAAa,gBAAgB;IAMzB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IATb,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAa;IAC3D,OAAO,CAAC,mBAAmB,CAAsB;IAEjD,YACU,UAAU,EAAE,6BAA6B,EACzC,KAAK,EAAE,QAAQ,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAkD,EAC/D,mBAAmB,CAAC,EAAE,mBAAmB,EAS1C;IAEY,IAAI,kBAGhB;IAEM,yBAAyB,+BAE/B;IAEY,cAAc,CACzB,KAAK,EAAE,0BAA0B,EACjC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAC7B,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA0C9C;IAED,UAAgB,WAAW,CACzB,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,iBA+CxE;YAQa,oBAAoB;YAYpB,mBAAmB;YAiFnB,qBAAqB;IAmDnC;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,QAwBxB;IAED;;;OAGG;IACI,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOjE;IAED;;;OAGG;IACI,4BAA4B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOlE;CACF"}
@@ -1,12 +1,16 @@
1
1
  import { times } from '@aztec/foundation/collection';
2
2
  import { AbortError, TimeoutError } from '@aztec/foundation/error';
3
3
  import { createLogger } from '@aztec/foundation/log';
4
+ import { boundInclusive } from '@aztec/foundation/number';
4
5
  import { promiseWithResolvers } from '@aztec/foundation/promise';
5
6
  import { sleep } from '@aztec/foundation/sleep';
6
7
  import { DateProvider, elapsed } from '@aztec/foundation/timer';
7
8
  import { TxHash } from '@aztec/stdlib/tx';
9
+ import { ReqRespSubProtocol } from '../reqresp/interface.js';
10
+ import { chunkTxHashesRequest } from '../reqresp/protocols/tx.js';
8
11
  import { BatchTxRequesterCollector, SendBatchRequestCollector } from './proposal_tx_collector.js';
9
12
  export class FastTxCollection {
13
+ p2pService;
10
14
  nodes;
11
15
  txCollectionSink;
12
16
  config;
@@ -14,8 +18,9 @@ export class FastTxCollection {
14
18
  log;
15
19
  // eslint-disable-next-line aztec-custom/no-non-primitive-in-collections
16
20
  requests;
17
- missingTxsCollector;
18
- constructor(p2pService, nodes, txCollectionSink, config, dateProvider = new DateProvider(), log = createLogger('p2p:tx_collection_service'), missingTxsCollector){
21
+ proposalTxCollector;
22
+ constructor(p2pService, nodes, txCollectionSink, config, dateProvider = new DateProvider(), log = createLogger('p2p:tx_collection_service'), proposalTxCollector){
23
+ this.p2pService = p2pService;
19
24
  this.nodes = nodes;
20
25
  this.txCollectionSink = txCollectionSink;
21
26
  this.config = config;
@@ -23,8 +28,8 @@ export class FastTxCollection {
23
28
  this.log = log;
24
29
  this.requests = new Set();
25
30
  const batchTxRequesterConfig = this.config;
26
- const missingTxsCollectorType = this.config.txCollectionMissingTxsCollectorType;
27
- this.missingTxsCollector = missingTxsCollector ?? (missingTxsCollectorType === 'old' ? new SendBatchRequestCollector(p2pService) : new BatchTxRequesterCollector(p2pService, log, dateProvider, undefined, batchTxRequesterConfig));
31
+ const proposalCollectorType = this.config.txCollectionProposalTxCollectorType;
32
+ this.proposalTxCollector = proposalTxCollector ?? (proposalCollectorType === 'old' ? new SendBatchRequestCollector(p2pService) : new BatchTxRequesterCollector(p2pService, log, dateProvider, undefined, batchTxRequesterConfig));
28
33
  }
29
34
  async stop() {
30
35
  this.requests.forEach((request)=>request.promise.reject(new AbortError(`Stopped collection service`)));
@@ -212,6 +217,8 @@ export class FastTxCollection {
212
217
  async collectFastViaReqResp(request, opts) {
213
218
  const timeoutMs = +request.deadline - this.dateProvider.now();
214
219
  const pinnedPeer = opts.pinnedPeer;
220
+ const maxPeers = boundInclusive(Math.ceil(request.missingTxHashes.size / 2), 8, 32);
221
+ const maxRetryAttempts = 5;
215
222
  const blockInfo = request.blockInfo;
216
223
  const slotNumber = blockInfo.slotNumber;
217
224
  if (timeoutMs < 100) {
@@ -229,13 +236,10 @@ export class FastTxCollection {
229
236
  try {
230
237
  await this.txCollectionSink.collect(async (txHashes)=>{
231
238
  if (request.type === 'proposal') {
232
- return await this.missingTxsCollector.collectTxs(txHashes, request.blockProposal, pinnedPeer, timeoutMs);
239
+ return await this.proposalTxCollector.collectTxs(txHashes, request.blockProposal, pinnedPeer, timeoutMs);
233
240
  } else if (request.type === 'block') {
234
- const blockTxsSource = {
235
- txHashes: request.block.body.txEffects.map((e)=>e.txHash),
236
- archive: request.block.archive.root
237
- };
238
- return await this.missingTxsCollector.collectTxs(txHashes, blockTxsSource, pinnedPeer, timeoutMs);
241
+ const txs = await this.p2pService.reqResp.sendBatchRequest(ReqRespSubProtocol.TX, chunkTxHashesRequest(txHashes), pinnedPeer, timeoutMs, maxPeers, maxRetryAttempts);
242
+ return txs.flat();
239
243
  } else {
240
244
  throw new Error(`Unknown request type: ${request.type}`);
241
245
  }
@@ -1,4 +1,4 @@
1
1
  export { TxCollection, type FastCollectionRequestInput } from './tx_collection.js';
2
2
  export { type TxSource, createNodeRpcTxSources, NodeRpcTxSource } from './tx_source.js';
3
- export { type MissingTxsCollector, BatchTxRequesterCollector, SendBatchRequestCollector, } from './proposal_tx_collector.js';
3
+ export { type ProposalTxCollector, BatchTxRequesterCollector, SendBatchRequestCollector, } from './proposal_tx_collector.js';
4
4
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy90eF9jb2xsZWN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSywwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RixPQUFPLEVBQ0wsS0FBSyxtQkFBbUIsRUFDeEIseUJBQXlCLEVBQ3pCLHlCQUF5QixHQUMxQixNQUFNLDRCQUE0QixDQUFDIn0=
@@ -1,48 +1,48 @@
1
1
  import type { Logger } from '@aztec/foundation/log';
2
2
  import type { DateProvider } from '@aztec/foundation/timer';
3
+ import type { BlockProposal } from '@aztec/stdlib/p2p';
3
4
  import type { Tx, TxHash } from '@aztec/stdlib/tx';
4
5
  import type { PeerId } from '@libp2p/interface';
5
6
  import type { BatchTxRequesterConfig } from '../reqresp/batch-tx-requester/config.js';
6
7
  import type { BatchTxRequesterLibP2PService } from '../reqresp/batch-tx-requester/interface.js';
7
8
  import type { IBatchRequestTxValidator } from '../reqresp/batch-tx-requester/tx_validator.js';
8
- import { type BlockTxsSource } from '../reqresp/index.js';
9
9
  /**
10
- * Strategy interface for collecting missing transactions for a block or proposal.
10
+ * Strategy interface for collecting transactions for block proposals.
11
11
  * Allows swapping between different tx collection implementations for benchmarking.
12
12
  */
13
- export interface MissingTxsCollector {
13
+ export interface ProposalTxCollector {
14
14
  /**
15
- * Collect missing transactions for a block or proposal.
15
+ * Collect transactions for a block proposal.
16
16
  * @param txHashes - The transaction hashes to collect
17
- * @param blockTxsSource - The block or proposal containing the transactions
18
- * @param pinnedPeer - Optional peer expected to have the transactions
17
+ * @param blockProposal - The block proposal containing the transactions
18
+ * @param pinnedPeer - Optional peer that sent the proposal (expected to have all txs)
19
19
  * @param timeoutMs - Timeout in milliseconds
20
20
  * @returns The collected transactions
21
21
  */
22
- collectTxs(txHashes: TxHash[], blockTxsSource: BlockTxsSource, pinnedPeer: PeerId | undefined, timeoutMs: number): Promise<Tx[]>;
22
+ collectTxs(txHashes: TxHash[], blockProposal: BlockProposal, pinnedPeer: PeerId | undefined, timeoutMs: number): Promise<Tx[]>;
23
23
  }
24
24
  /**
25
25
  * Collects transactions using the BatchTxRequester implementation.
26
26
  * This uses a smart/dumb peer strategy with parallel workers.
27
27
  */
28
- export declare class BatchTxRequesterCollector implements MissingTxsCollector {
28
+ export declare class BatchTxRequesterCollector implements ProposalTxCollector {
29
29
  private p2pService;
30
30
  private log;
31
31
  private dateProvider;
32
32
  private txValidator?;
33
33
  private batchTxRequesterConfig?;
34
34
  constructor(p2pService: BatchTxRequesterLibP2PService, log: Logger, dateProvider: DateProvider, txValidator?: IBatchRequestTxValidator | undefined, batchTxRequesterConfig?: Partial<BatchTxRequesterConfig> | undefined);
35
- collectTxs(txHashes: TxHash[], blockTxsSource: BlockTxsSource, pinnedPeer: PeerId | undefined, timeoutMs: number): Promise<Tx[]>;
35
+ collectTxs(txHashes: TxHash[], blockProposal: BlockProposal, pinnedPeer: PeerId | undefined, timeoutMs: number): Promise<Tx[]>;
36
36
  }
37
37
  /**
38
38
  * Collects transactions using the sendBatchRequest implementation from ReqResp.
39
39
  * This is the original implementation that balances requests across peers.
40
40
  */
41
- export declare class SendBatchRequestCollector implements MissingTxsCollector {
41
+ export declare class SendBatchRequestCollector implements ProposalTxCollector {
42
42
  private p2pService;
43
43
  private maxPeers;
44
44
  private maxRetryAttempts;
45
45
  constructor(p2pService: BatchTxRequesterLibP2PService, maxPeers?: number, maxRetryAttempts?: number);
46
- collectTxs(txHashes: TxHash[], _blockTxsSource: BlockTxsSource, pinnedPeer: PeerId | undefined, timeoutMs: number): Promise<Tx[]>;
46
+ collectTxs(txHashes: TxHash[], _blockProposal: BlockProposal, pinnedPeer: PeerId | undefined, timeoutMs: number): Promise<Tx[]>;
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdHhfY29sbGVjdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9wcm9wb3NhbF90eF9jb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEYsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxLQUFLLGNBQWMsRUFBNEMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRzs7O0dBR0c7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDOzs7Ozs7O09BT0c7SUFDSCxVQUFVLENBQ1IsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUNsQixjQUFjLEVBQUUsY0FBYyxFQUM5QixVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDOUIsU0FBUyxFQUFFLE1BQU0sR0FDaEIsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Q0FDbEI7QUFFRDs7O0dBR0c7QUFDSCxxQkFBYSx5QkFBMEIsWUFBVyxtQkFBbUI7SUFFakUsT0FBTyxDQUFDLFVBQVU7SUFDbEIsT0FBTyxDQUFDLEdBQUc7SUFDWCxPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsV0FBVyxDQUFDO0lBQ3BCLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztJQUxqQyxZQUNVLFVBQVUsRUFBRSw2QkFBNkIsRUFDekMsR0FBRyxFQUFFLE1BQU0sRUFDWCxZQUFZLEVBQUUsWUFBWSxFQUMxQixXQUFXLENBQUMsc0NBQTBCLEVBQ3RDLHNCQUFzQixDQUFDLDZDQUFpQyxFQUM5RDtJQUVFLFVBQVUsQ0FDZCxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQ2xCLGNBQWMsRUFBRSxjQUFjLEVBQzlCLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM5QixTQUFTLEVBQUUsTUFBTSxHQUNoQixPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0EwQmY7Q0FDRjtBQUtEOzs7R0FHRztBQUNILHFCQUFhLHlCQUEwQixZQUFXLG1CQUFtQjtJQUVqRSxPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMsUUFBUTtJQUNoQixPQUFPLENBQUMsZ0JBQWdCO0lBSDFCLFlBQ1UsVUFBVSxFQUFFLDZCQUE2QixFQUN6QyxRQUFRLEdBQUUsTUFBMEIsRUFDcEMsZ0JBQWdCLEdBQUUsTUFBbUMsRUFDM0Q7SUFFRSxVQUFVLENBQ2QsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUNsQixlQUFlLEVBQUUsY0FBYyxFQUMvQixVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsRUFDOUIsU0FBUyxFQUFFLE1BQU0sR0FDaEIsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBV2Y7Q0FDRiJ9
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcG9zYWxfdHhfY29sbGVjdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9wcm9wb3NhbF90eF9jb2xsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sS0FBSyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdEYsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNoRyxPQUFPLEtBQUssRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBSTlGOzs7R0FHRztBQUNILE1BQU0sV0FBVyxtQkFBbUI7SUFDbEM7Ozs7Ozs7T0FPRztJQUNILFVBQVUsQ0FDUixRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQ2xCLGFBQWEsRUFBRSxhQUFhLEVBQzVCLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM5QixTQUFTLEVBQUUsTUFBTSxHQUNoQixPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztDQUNsQjtBQUVEOzs7R0FHRztBQUNILHFCQUFhLHlCQUEwQixZQUFXLG1CQUFtQjtJQUVqRSxPQUFPLENBQUMsVUFBVTtJQUNsQixPQUFPLENBQUMsR0FBRztJQUNYLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxXQUFXLENBQUM7SUFDcEIsT0FBTyxDQUFDLHNCQUFzQixDQUFDO0lBTGpDLFlBQ1UsVUFBVSxFQUFFLDZCQUE2QixFQUN6QyxHQUFHLEVBQUUsTUFBTSxFQUNYLFlBQVksRUFBRSxZQUFZLEVBQzFCLFdBQVcsQ0FBQyxzQ0FBMEIsRUFDdEMsc0JBQXNCLENBQUMsNkNBQWlDLEVBQzlEO0lBRUUsVUFBVSxDQUNkLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFDbEIsYUFBYSxFQUFFLGFBQWEsRUFDNUIsVUFBVSxFQUFFLE1BQU0sR0FBRyxTQUFTLEVBQzlCLFNBQVMsRUFBRSxNQUFNLEdBQ2hCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQTBCZjtDQUNGO0FBS0Q7OztHQUdHO0FBQ0gscUJBQWEseUJBQTBCLFlBQVcsbUJBQW1CO0lBRWpFLE9BQU8sQ0FBQyxVQUFVO0lBQ2xCLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFIMUIsWUFDVSxVQUFVLEVBQUUsNkJBQTZCLEVBQ3pDLFFBQVEsR0FBRSxNQUEwQixFQUNwQyxnQkFBZ0IsR0FBRSxNQUFtQyxFQUMzRDtJQUVFLFVBQVUsQ0FDZCxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQ2xCLGNBQWMsRUFBRSxhQUFhLEVBQzdCLFVBQVUsRUFBRSxNQUFNLEdBQUcsU0FBUyxFQUM5QixTQUFTLEVBQUUsTUFBTSxHQUNoQixPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FXZjtDQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"proposal_tx_collector.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/proposal_tx_collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,KAAK,cAAc,EAA4C,MAAM,qBAAqB,CAAC;AAEpG;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IAEjE,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,sBAAsB,CAAC;IALjC,YACU,UAAU,EAAE,6BAA6B,EACzC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,YAAY,EAC1B,WAAW,CAAC,sCAA0B,EACtC,sBAAsB,CAAC,6CAAiC,EAC9D;IAEE,UAAU,CACd,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,EAAE,EAAE,CAAC,CA0Bf;CACF;AAKD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IAEjE,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,gBAAgB;IAH1B,YACU,UAAU,EAAE,6BAA6B,EACzC,QAAQ,GAAE,MAA0B,EACpC,gBAAgB,GAAE,MAAmC,EAC3D;IAEE,UAAU,CACd,QAAQ,EAAE,MAAM,EAAE,EAClB,eAAe,EAAE,cAAc,EAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,EAAE,EAAE,CAAC,CAWf;CACF"}
1
+ {"version":3,"file":"proposal_tx_collector.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/proposal_tx_collector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAChG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAI9F;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,UAAU,CACR,QAAQ,EAAE,MAAM,EAAE,EAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IAEjE,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,WAAW,CAAC;IACpB,OAAO,CAAC,sBAAsB,CAAC;IALjC,YACU,UAAU,EAAE,6BAA6B,EACzC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,YAAY,EAC1B,WAAW,CAAC,sCAA0B,EACtC,sBAAsB,CAAC,6CAAiC,EAC9D;IAEE,UAAU,CACd,QAAQ,EAAE,MAAM,EAAE,EAClB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,EAAE,EAAE,CAAC,CA0Bf;CACF;AAKD;;;GAGG;AACH,qBAAa,yBAA0B,YAAW,mBAAmB;IAEjE,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,gBAAgB;IAH1B,YACU,UAAU,EAAE,6BAA6B,EACzC,QAAQ,GAAE,MAA0B,EACpC,gBAAgB,GAAE,MAAmC,EAC3D;IAEE,UAAU,CACd,QAAQ,EAAE,MAAM,EAAE,EAClB,cAAc,EAAE,aAAa,EAC7B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,EAAE,EAAE,CAAC,CAWf;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { BatchTxRequester } from '../reqresp/batch-tx-requester/batch_tx_requester.js';
2
- import { ReqRespSubProtocol, chunkTxHashesRequest } from '../reqresp/index.js';
2
+ import { ReqRespSubProtocol } from '../reqresp/interface.js';
3
+ import { chunkTxHashesRequest } from '../reqresp/protocols/tx.js';
3
4
  /**
4
5
  * Collects transactions using the BatchTxRequester implementation.
5
6
  * This uses a smart/dumb peer strategy with parallel workers.
@@ -16,9 +17,9 @@ import { ReqRespSubProtocol, chunkTxHashesRequest } from '../reqresp/index.js';
16
17
  this.txValidator = txValidator;
17
18
  this.batchTxRequesterConfig = batchTxRequesterConfig;
18
19
  }
19
- async collectTxs(txHashes, blockTxsSource, pinnedPeer, timeoutMs) {
20
+ async collectTxs(txHashes, blockProposal, pinnedPeer, timeoutMs) {
20
21
  const { batchTxRequesterSmartParallelWorkerCount: smartParallelWorkerCount, batchTxRequesterDumbParallelWorkerCount: dumbParallelWorkerCount, batchTxRequesterTxBatchSize: txBatchSize, batchTxRequesterBadPeerThreshold: badPeerThreshold } = this.batchTxRequesterConfig ?? {};
21
- const batchRequester = new BatchTxRequester(txHashes, blockTxsSource, pinnedPeer, timeoutMs, this.p2pService, this.log, this.dateProvider, {
22
+ const batchRequester = new BatchTxRequester(txHashes, blockProposal, pinnedPeer, timeoutMs, this.p2pService, this.log, this.dateProvider, {
22
23
  smartParallelWorkerCount,
23
24
  dumbParallelWorkerCount,
24
25
  txBatchSize,
@@ -42,7 +43,7 @@ const DEFAULT_MAX_RETRY_ATTEMPTS = 3;
42
43
  this.maxPeers = maxPeers;
43
44
  this.maxRetryAttempts = maxRetryAttempts;
44
45
  }
45
- async collectTxs(txHashes, _blockTxsSource, pinnedPeer, timeoutMs) {
46
+ async collectTxs(txHashes, _blockProposal, pinnedPeer, timeoutMs) {
46
47
  const txs = await this.p2pService.reqResp.sendBatchRequest(ReqRespSubProtocol.TX, chunkTxHashesRequest(txHashes), pinnedPeer, timeoutMs, this.maxPeers, this.maxRetryAttempts);
47
48
  return txs.flat();
48
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/p2p",
3
- "version": "0.0.1-commit.6d63667d",
3
+ "version": "0.0.1-commit.86469d5",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -67,17 +67,17 @@
67
67
  ]
68
68
  },
69
69
  "dependencies": {
70
- "@aztec/constants": "0.0.1-commit.6d63667d",
71
- "@aztec/epoch-cache": "0.0.1-commit.6d63667d",
72
- "@aztec/ethereum": "0.0.1-commit.6d63667d",
73
- "@aztec/foundation": "0.0.1-commit.6d63667d",
74
- "@aztec/kv-store": "0.0.1-commit.6d63667d",
75
- "@aztec/noir-contracts.js": "0.0.1-commit.6d63667d",
76
- "@aztec/noir-protocol-circuits-types": "0.0.1-commit.6d63667d",
77
- "@aztec/protocol-contracts": "0.0.1-commit.6d63667d",
78
- "@aztec/simulator": "0.0.1-commit.6d63667d",
79
- "@aztec/stdlib": "0.0.1-commit.6d63667d",
80
- "@aztec/telemetry-client": "0.0.1-commit.6d63667d",
70
+ "@aztec/constants": "0.0.1-commit.86469d5",
71
+ "@aztec/epoch-cache": "0.0.1-commit.86469d5",
72
+ "@aztec/ethereum": "0.0.1-commit.86469d5",
73
+ "@aztec/foundation": "0.0.1-commit.86469d5",
74
+ "@aztec/kv-store": "0.0.1-commit.86469d5",
75
+ "@aztec/noir-contracts.js": "0.0.1-commit.86469d5",
76
+ "@aztec/noir-protocol-circuits-types": "0.0.1-commit.86469d5",
77
+ "@aztec/protocol-contracts": "0.0.1-commit.86469d5",
78
+ "@aztec/simulator": "0.0.1-commit.86469d5",
79
+ "@aztec/stdlib": "0.0.1-commit.86469d5",
80
+ "@aztec/telemetry-client": "0.0.1-commit.86469d5",
81
81
  "@chainsafe/libp2p-gossipsub": "13.0.0",
82
82
  "@chainsafe/libp2p-noise": "^15.0.0",
83
83
  "@chainsafe/libp2p-yamux": "^6.0.2",
@@ -104,8 +104,8 @@
104
104
  "xxhash-wasm": "^1.1.0"
105
105
  },
106
106
  "devDependencies": {
107
- "@aztec/archiver": "0.0.1-commit.6d63667d",
108
- "@aztec/world-state": "0.0.1-commit.6d63667d",
107
+ "@aztec/archiver": "0.0.1-commit.86469d5",
108
+ "@aztec/world-state": "0.0.1-commit.86469d5",
109
109
  "@jest/globals": "^30.0.0",
110
110
  "@types/jest": "^30.0.0",
111
111
  "@types/node": "^22.15.17",
@@ -21,7 +21,6 @@ import { DummyP2PService } from '../services/dummy_service.js';
21
21
  import { LibP2PService } from '../services/index.js';
22
22
  import { TxCollection } from '../services/tx_collection/tx_collection.js';
23
23
  import { type TxSource, createNodeRpcTxSources } from '../services/tx_collection/tx_source.js';
24
- import { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
25
24
  import { configureP2PClientAddresses, createLibP2PPeerIdFromPrivateKey, getPeerIdPrivateKey } from '../util.js';
26
25
 
27
26
  export type P2PClientDeps<T extends P2PClientType> = {
@@ -117,8 +116,6 @@ export async function createP2PClient<T extends P2PClientType>(
117
116
  logger.createChild('tx-collection'),
118
117
  );
119
118
 
120
- const txFileStore = await TxFileStore.create(mempools.txPool, config, logger.createChild('tx-file-store'), telemetry);
121
-
122
119
  return new P2PClient(
123
120
  clientType,
124
121
  store,
@@ -126,7 +123,6 @@ export async function createP2PClient<T extends P2PClientType>(
126
123
  mempools,
127
124
  p2pService,
128
125
  txCollection,
129
- txFileStore,
130
126
  config,
131
127
  dateProvider,
132
128
  telemetry,
@@ -41,7 +41,6 @@ import {
41
41
  import { chunkTxHashesRequest } from '../services/reqresp/protocols/tx.js';
42
42
  import type { P2PBlockReceivedCallback, P2PCheckpointReceivedCallback, P2PService } from '../services/service.js';
43
43
  import { TxCollection } from '../services/tx_collection/tx_collection.js';
44
- import type { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
45
44
  import { TxProvider } from '../services/tx_provider.js';
46
45
  import { type P2P, P2PClientState, type P2PSyncState } from './interface.js';
47
46
 
@@ -91,7 +90,6 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
91
90
  mempools: MemPools,
92
91
  private p2pService: P2PService,
93
92
  private txCollection: TxCollection,
94
- private txFileStore: TxFileStore | undefined,
95
93
  config: Partial<P2PConfig> = {},
96
94
  private _dateProvider: DateProvider = new DateProvider(),
97
95
  private telemetry: TelemetryClient = getTelemetryClient(),
@@ -276,7 +274,6 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
276
274
 
277
275
  this.blockStream!.start();
278
276
  await this.txCollection.start();
279
- this.txFileStore?.start();
280
277
  return this.syncPromise;
281
278
  }
282
279
 
@@ -309,8 +306,6 @@ export class P2PClient<T extends P2PClientType = P2PClientType.Full>
309
306
  this.log.debug('Stopping p2p client...');
310
307
  await tryStop(this.txCollection);
311
308
  this.log.debug('Stopped tx collection service');
312
- await this.txFileStore?.stop();
313
- this.log.debug('Stopped tx file store');
314
309
  await this.p2pService.stop();
315
310
  this.log.debug('Stopped p2p service');
316
311
  await this.blockStream?.stop();
package/src/config.ts CHANGED
@@ -21,17 +21,11 @@ import {
21
21
  } from './services/reqresp/batch-tx-requester/config.js';
22
22
  import { type P2PReqRespConfig, p2pReqRespConfigMappings } from './services/reqresp/config.js';
23
23
  import { type TxCollectionConfig, txCollectionConfigMappings } from './services/tx_collection/config.js';
24
- import { type TxFileStoreConfig, txFileStoreConfigMappings } from './services/tx_file_store/config.js';
25
24
 
26
25
  /**
27
26
  * P2P client configuration values.
28
27
  */
29
- export interface P2PConfig
30
- extends P2PReqRespConfig,
31
- BatchTxRequesterConfig,
32
- ChainConfig,
33
- TxCollectionConfig,
34
- TxFileStoreConfig {
28
+ export interface P2PConfig extends P2PReqRespConfig, BatchTxRequesterConfig, ChainConfig, TxCollectionConfig {
35
29
  /** A flag dictating whether the P2P subsystem should be enabled. */
36
30
  p2pEnabled: boolean;
37
31
 
@@ -445,7 +439,6 @@ export const p2pConfigMappings: ConfigMappingsType<P2PConfig> = {
445
439
  ...batchTxRequesterConfigMappings,
446
440
  ...chainConfigMappings,
447
441
  ...txCollectionConfigMappings,
448
- ...txFileStoreConfigMappings,
449
442
  };
450
443
 
451
444
  /**
@@ -3,5 +3,4 @@ export * from './libp2p/libp2p_service.js';
3
3
  export * from './tx_provider.js';
4
4
  export * from './dummy_service.js';
5
5
  export * from './reqresp/index.js';
6
- export * from './tx_file_store/index.js';
7
6
  export * from './tx_collection/index.js';