@aztec/p2p 0.0.1-commit.cf93bcc56 → 0.0.1-commit.d0fcfb7f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/client/factory.d.ts +4 -5
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +20 -26
- package/dest/client/interface.d.ts +8 -13
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +7 -13
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +35 -86
- package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +6 -7
- package/dest/config.d.ts +29 -10
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +80 -31
- package/dest/mem_pools/tx_pool/priority.d.ts +2 -2
- package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/priority.js +4 -4
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +3 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +2 -0
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +7 -1
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +10 -6
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +8 -6
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +2 -2
- package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/index.js +1 -1
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +10 -6
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/interfaces.js +2 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +38 -7
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.js +74 -16
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +9 -10
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +5 -3
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +2 -2
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +5 -3
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +169 -141
- package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -4
- package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -4
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -8
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/proposal_validator.js +48 -36
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
- package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
- package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
- package/dest/msg_validators/tx_validator/factory.d.ts +125 -6
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.js +226 -58
- package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
- package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +67 -3
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.js +104 -37
- package/dest/msg_validators/tx_validator/index.d.ts +3 -1
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.js +2 -0
- package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
- package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
- package/dest/msg_validators/tx_validator/phases_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.js +44 -23
- package/dest/services/dummy_service.d.ts +4 -4
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +4 -4
- package/dest/services/encoding.d.ts +2 -2
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +7 -7
- package/dest/services/gossipsub/topic_score_params.d.ts +18 -6
- package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -1
- package/dest/services/gossipsub/topic_score_params.js +32 -10
- package/dest/services/libp2p/libp2p_service.d.ts +16 -13
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +92 -93
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +4 -3
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -1
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +5 -9
- package/dest/services/reqresp/batch-tx-requester/interface.d.ts +2 -6
- package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -1
- package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +10 -13
- package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -1
- package/dest/services/reqresp/batch-tx-requester/missing_txs.js +25 -46
- package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
- package/dest/services/service.d.ts +5 -3
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/tx_collection/fast_tx_collection.d.ts +1 -1
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/fast_tx_collection.js +39 -33
- package/dest/services/tx_collection/file_store_tx_collection.d.ts +1 -1
- package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/file_store_tx_collection.js +4 -2
- package/dest/services/tx_collection/file_store_tx_source.d.ts +4 -4
- package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -1
- package/dest/services/tx_collection/file_store_tx_source.js +27 -16
- package/dest/services/tx_collection/missing_txs_tracker.d.ts +32 -0
- package/dest/services/tx_collection/missing_txs_tracker.d.ts.map +1 -0
- package/dest/services/tx_collection/missing_txs_tracker.js +27 -0
- package/dest/services/tx_collection/proposal_tx_collector.d.ts +7 -6
- package/dest/services/tx_collection/proposal_tx_collector.d.ts.map +1 -1
- package/dest/services/tx_collection/proposal_tx_collector.js +5 -4
- package/dest/services/tx_collection/slow_tx_collection.d.ts +2 -2
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.js +10 -8
- package/dest/services/tx_collection/tx_collection.d.ts +5 -4
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection_sink.d.ts +6 -5
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection_sink.js +13 -22
- package/dest/services/tx_collection/tx_source.d.ts +8 -3
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_source.js +19 -2
- package/dest/services/tx_provider.d.ts +3 -3
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider.js +4 -4
- package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/make-test-p2p-clients.js +1 -2
- package/dest/test-helpers/mock-pubsub.d.ts +4 -4
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
- package/dest/test-helpers/mock-pubsub.js +8 -2
- package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +2 -2
- package/dest/test-helpers/testbench-utils.d.ts +5 -3
- package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
- package/dest/test-helpers/testbench-utils.js +3 -2
- package/dest/testbench/p2p_client_testbench_worker.d.ts +2 -2
- package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +13 -12
- package/dest/testbench/worker_client_manager.d.ts +3 -1
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/testbench/worker_client_manager.js +4 -1
- package/dest/util.d.ts +2 -2
- package/dest/util.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/client/factory.ts +28 -46
- package/src/client/interface.ts +8 -13
- package/src/client/p2p_client.ts +35 -113
- package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +19 -10
- package/src/config.ts +115 -33
- package/src/mem_pools/tx_pool/priority.ts +4 -4
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +3 -1
- package/src/mem_pools/tx_pool_v2/README.md +9 -1
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +1 -1
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -0
- package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +11 -1
- package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +2 -2
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +10 -6
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +15 -6
- package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +2 -1
- package/src/mem_pools/tx_pool_v2/index.ts +1 -1
- package/src/mem_pools/tx_pool_v2/interfaces.ts +8 -5
- package/src/mem_pools/tx_pool_v2/tx_metadata.ts +102 -17
- package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +11 -11
- package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +3 -3
- package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +178 -141
- package/src/msg_validators/proposal_validator/block_proposal_validator.ts +14 -4
- package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +20 -7
- package/src/msg_validators/proposal_validator/proposal_validator.ts +63 -40
- package/src/msg_validators/tx_validator/README.md +115 -0
- package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -3
- package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
- package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
- package/src/msg_validators/tx_validator/factory.ts +366 -77
- package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
- package/src/msg_validators/tx_validator/gas_validator.ts +123 -27
- package/src/msg_validators/tx_validator/index.ts +2 -0
- package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
- package/src/msg_validators/tx_validator/phases_validator.ts +51 -26
- package/src/services/dummy_service.ts +6 -6
- package/src/services/encoding.ts +5 -6
- package/src/services/gossipsub/README.md +29 -14
- package/src/services/gossipsub/topic_score_params.ts +49 -13
- package/src/services/libp2p/libp2p_service.ts +106 -101
- package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +6 -6
- package/src/services/reqresp/batch-tx-requester/interface.ts +1 -5
- package/src/services/reqresp/batch-tx-requester/missing_txs.ts +23 -71
- package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
- package/src/services/service.ts +11 -2
- package/src/services/tx_collection/fast_tx_collection.ts +51 -30
- package/src/services/tx_collection/file_store_tx_collection.ts +7 -3
- package/src/services/tx_collection/file_store_tx_source.ts +32 -19
- package/src/services/tx_collection/missing_txs_tracker.ts +52 -0
- package/src/services/tx_collection/proposal_tx_collector.ts +8 -7
- package/src/services/tx_collection/slow_tx_collection.ts +8 -9
- package/src/services/tx_collection/tx_collection.ts +4 -3
- package/src/services/tx_collection/tx_collection_sink.ts +15 -29
- package/src/services/tx_collection/tx_source.ts +22 -3
- package/src/services/tx_provider.ts +2 -2
- package/src/test-helpers/make-test-p2p-clients.ts +0 -2
- package/src/test-helpers/mock-pubsub.ts +13 -6
- package/src/test-helpers/reqresp-nodes.ts +2 -5
- package/src/test-helpers/testbench-utils.ts +3 -2
- package/src/testbench/p2p_client_testbench_worker.ts +21 -17
- package/src/testbench/worker_client_manager.ts +11 -4
- package/src/util.ts +7 -1
- package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
- package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
- package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
- package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
|
@@ -4,24 +4,20 @@ import type { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
|
4
4
|
import type { PeerId } from '@libp2p/interface';
|
|
5
5
|
import type { ConnectionSampler } from '../connection-sampler/connection_sampler.js';
|
|
6
6
|
import type { ReqRespInterface } from '../interface.js';
|
|
7
|
-
import type { MissingTxMetadata } from './missing_txs.js';
|
|
8
7
|
import type { IPeerCollection } from './peer_collection.js';
|
|
9
8
|
import type { BatchRequestTxValidatorConfig, IBatchRequestTxValidator } from './tx_validator.js';
|
|
10
9
|
export interface IPeerPenalizer {
|
|
11
10
|
penalizePeer(peerId: PeerId, penalty: PeerErrorSeverity): void;
|
|
12
11
|
}
|
|
13
12
|
export interface ITxMetadataCollection {
|
|
14
|
-
size: number;
|
|
15
|
-
values(): IterableIterator<MissingTxMetadata>;
|
|
16
13
|
getMissingTxHashes(): Set<string>;
|
|
14
|
+
markFetched(peerId: PeerId, tx: Tx): boolean;
|
|
17
15
|
getTxsToRequestFromThePeer(peer: PeerId): TxHash[];
|
|
18
16
|
markRequested(txHash: TxHash): void;
|
|
19
17
|
markInFlightBySmartPeer(txHash: TxHash): void;
|
|
20
18
|
markNotInFlightBySmartPeer(txHash: TxHash): void;
|
|
21
19
|
alreadyFetched(txHash: TxHash): boolean;
|
|
22
|
-
markFetched(peerId: PeerId, tx: Tx): boolean;
|
|
23
20
|
markPeerHas(peerId: PeerId, txHashes: TxHash[]): void;
|
|
24
|
-
getFetchedTxs(): Tx[];
|
|
25
21
|
}
|
|
26
22
|
/**
|
|
27
23
|
* Interface for BatchTxRequester dependencies that can be injected from upstream
|
|
@@ -47,4 +43,4 @@ export interface BatchTxRequesterOptions {
|
|
|
47
43
|
/** Optional tx validator for testing - if not provided, one is created from p2pService.txValidatorConfig */
|
|
48
44
|
txValidator?: IBatchRequestTxValidator;
|
|
49
45
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9iYXRjaC10eC1yZXF1ZXN0ZXIvaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSw2QkFBNkIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWpHLE1BQU0sV0FBVyxjQUFjO0lBQzdCLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Q0FDaEU7QUFFRCxNQUFNLFdBQVcscUJBQXFCO0lBQ3BDLGtCQUFrQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUM3QywwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ25ELGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNwQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUM5QywwQkFBMEIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNqRCxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUM7SUFFeEMsV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztDQUN2RDtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLDZCQUE2QjtJQUM1QyxzREFBc0Q7SUFDdEQsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFFLGdEQUFnRDtJQUNoRCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsdUNBQXVDLENBQUMsQ0FBQztJQUNwRixzREFBc0Q7SUFDdEQsaUJBQWlCLEVBQUUsNkJBQTZCLENBQUM7SUFDakQsd0NBQXdDO0lBQ3hDLFdBQVcsRUFBRSxjQUFjLENBQUM7Q0FDN0I7QUFFRCxNQUFNLFdBQVcsdUJBQXVCO0lBQ3RDLHdCQUF3QixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2xDLHVCQUF1QixDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2pDLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUUxQixTQUFTLENBQUMsRUFBRSxVQUFVLENBQUM7SUFDdkIsY0FBYyxDQUFDLEVBQUUsZUFBZSxDQUFDO0lBQ2pDLFdBQVcsQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUMxQiw0R0FBNEc7SUFDNUcsV0FBVyxDQUFDLEVBQUUsd0JBQXdCLENBQUM7Q0FDeEMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAChE;AAED,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAC7C,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACnD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACjD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAExC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACvD;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,sDAAsD;IACtD,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,mBAAmB,CAAC,CAAC;IAC1E,gDAAgD;IAChD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,uCAAuC,CAAC,CAAC;IACpF,sDAAsD;IACtD,iBAAiB,EAAE,6BAA6B,CAAC;IACjD,wCAAwC;IACxC,WAAW,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4GAA4G;IAC5G,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC"}
|
|
@@ -1,30 +1,26 @@
|
|
|
1
1
|
import { type Tx, TxHash } from '@aztec/stdlib/tx';
|
|
2
2
|
import type { PeerId } from '@libp2p/interface';
|
|
3
|
+
import type { IMissingTxsTracker } from '../../tx_collection/missing_txs_tracker.js';
|
|
3
4
|
import type { ITxMetadataCollection } from './interface.js';
|
|
4
|
-
|
|
5
|
-
readonly txHash:
|
|
6
|
-
fetched: boolean;
|
|
5
|
+
declare class MissingTxMetadata {
|
|
6
|
+
readonly txHash: string;
|
|
7
7
|
requestedCount: number;
|
|
8
8
|
inFlightCount: number;
|
|
9
9
|
tx: Tx | undefined;
|
|
10
10
|
readonly peers: Set<string>;
|
|
11
|
-
constructor(txHash:
|
|
11
|
+
constructor(txHash: string, requestedCount?: number, inFlightCount?: number, tx?: Tx | undefined, peers?: Set<string>);
|
|
12
12
|
markAsRequested(): void;
|
|
13
13
|
markInFlight(): void;
|
|
14
14
|
markNotInFlight(): void;
|
|
15
15
|
isInFlight(): boolean;
|
|
16
|
-
markAsFetched(peerId: PeerId, tx: Tx): boolean;
|
|
17
|
-
toString(): `0x${string}`;
|
|
18
16
|
}
|
|
19
|
-
export declare class MissingTxMetadataCollection
|
|
17
|
+
export declare class MissingTxMetadataCollection implements ITxMetadataCollection {
|
|
18
|
+
private missingTxsTracker;
|
|
20
19
|
private readonly txBatchSize;
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
private txMetadata;
|
|
21
|
+
constructor(missingTxsTracker: IMissingTxsTracker, txBatchSize?: number);
|
|
23
22
|
getPrioritizingNotInFlightAndLowerRequestCount(txs: string[]): MissingTxMetadata[];
|
|
24
|
-
getFetchedTxHashes(): Set<string>;
|
|
25
23
|
getMissingTxHashes(): Set<string>;
|
|
26
|
-
getInFlightTxHashes(): Set<string>;
|
|
27
|
-
getFetchedTxs(): Tx[];
|
|
28
24
|
getTxsPeerHas(peer: PeerId): Set<string>;
|
|
29
25
|
getTxsToRequestFromThePeer(peer: PeerId): TxHash[];
|
|
30
26
|
markRequested(txHash: TxHash): void;
|
|
@@ -34,4 +30,5 @@ export declare class MissingTxMetadataCollection extends Map<string, MissingTxMe
|
|
|
34
30
|
markFetched(peerId: PeerId, tx: Tx): boolean;
|
|
35
31
|
markPeerHas(peerId: PeerId, txHash: TxHash[]): void;
|
|
36
32
|
}
|
|
37
|
-
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzc2luZ190eHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9yZXFyZXNwL2JhdGNoLXR4LXJlcXVlc3Rlci9taXNzaW5nX3R4cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFbkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUVyRixPQUFPLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELGNBQU0saUJBQWlCO2FBRUgsTUFBTSxFQUFFLE1BQU07SUFDdkIsY0FBYztJQUNkLGFBQWE7SUFDYixFQUFFLEVBQUUsRUFBRSxHQUFHLFNBQVM7YUFDVCxLQUFLO0lBTHZCLFlBQ2tCLE1BQU0sRUFBRSxNQUFNLEVBQ3ZCLGNBQWMsU0FBSSxFQUNsQixhQUFhLFNBQUksRUFDakIsRUFBRSxHQUFFLEVBQUUsR0FBRyxTQUFxQixFQUNyQixLQUFLLGNBQW9CLEVBQ3ZDO0lBRUcsZUFBZSxTQUVyQjtJQUVNLFlBQVksU0FFbEI7SUFFTSxlQUFlLFNBRXJCO0lBRU0sVUFBVSxJQUFJLE9BQU8sQ0FFM0I7Q0FDRjtBQU9ELHFCQUFhLDJCQUE0QixZQUFXLHFCQUFxQjtJQUlyRSxPQUFPLENBQUMsaUJBQWlCO0lBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVztJQUo5QixPQUFPLENBQUMsVUFBVSxDQUF3QztJQUUxRCxZQUNVLGlCQUFpQixFQUFFLGtCQUFrQixFQUM1QixXQUFXLEdBQUUsTUFBaUQsRUFHaEY7SUFFTSw4Q0FBOEMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsQ0FleEY7SUFFTSxrQkFBa0IsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBRXZDO0lBRU0sYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQVc5QztJQUVNLDBCQUEwQixDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBdUJ4RDtJQUVNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxRQUVsQztJQU9NLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxNQUFNLFFBRTVDO0lBTU0sMEJBQTBCLENBQUMsTUFBTSxFQUFFLE1BQU0sUUFFL0M7SUFFTSxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBRTdDO0lBRU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBY2xEO0lBRU0sV0FBVyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQVVsRDtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"missing_txs.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/missing_txs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"missing_txs.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/batch-tx-requester/missing_txs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,cAAM,iBAAiB;aAEH,MAAM,EAAE,MAAM;IACvB,cAAc;IACd,aAAa;IACb,EAAE,EAAE,EAAE,GAAG,SAAS;aACT,KAAK;IALvB,YACkB,MAAM,EAAE,MAAM,EACvB,cAAc,SAAI,EAClB,aAAa,SAAI,EACjB,EAAE,GAAE,EAAE,GAAG,SAAqB,EACrB,KAAK,cAAoB,EACvC;IAEG,eAAe,SAErB;IAEM,YAAY,SAElB;IAEM,eAAe,SAErB;IAEM,UAAU,IAAI,OAAO,CAE3B;CACF;AAOD,qBAAa,2BAA4B,YAAW,qBAAqB;IAIrE,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJ9B,OAAO,CAAC,UAAU,CAAwC;IAE1D,YACU,iBAAiB,EAAE,kBAAkB,EAC5B,WAAW,GAAE,MAAiD,EAGhF;IAEM,8CAA8C,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAexF;IAEM,kBAAkB,IAAI,GAAG,CAAC,MAAM,CAAC,CAEvC;IAEM,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAW9C;IAEM,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBxD;IAEM,aAAa,CAAC,MAAM,EAAE,MAAM,QAElC;IAOM,uBAAuB,CAAC,MAAM,EAAE,MAAM,QAE5C;IAMM,0BAA0B,CAAC,MAAM,EAAE,MAAM,QAE/C;IAEM,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7C;IAEM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,OAAO,CAclD;IAEM,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAUlD;CACF"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
2
2
|
import { DEFAULT_BATCH_TX_REQUESTER_TX_BATCH_SIZE } from './config.js';
|
|
3
|
-
|
|
3
|
+
class MissingTxMetadata {
|
|
4
4
|
txHash;
|
|
5
|
-
fetched;
|
|
6
5
|
requestedCount;
|
|
7
6
|
inFlightCount;
|
|
8
7
|
tx;
|
|
9
8
|
peers;
|
|
10
|
-
constructor(txHash,
|
|
9
|
+
constructor(txHash, requestedCount = 0, inFlightCount = 0, tx = undefined, peers = new Set()){
|
|
11
10
|
this.txHash = txHash;
|
|
12
|
-
this.fetched = fetched;
|
|
13
11
|
this.requestedCount = requestedCount;
|
|
14
12
|
this.inFlightCount = inFlightCount;
|
|
15
13
|
this.tx = tx;
|
|
@@ -27,34 +25,23 @@ export class MissingTxMetadata {
|
|
|
27
25
|
isInFlight() {
|
|
28
26
|
return this.inFlightCount > 0;
|
|
29
27
|
}
|
|
30
|
-
//Returns true if this is the first time we mark it as fetched
|
|
31
|
-
markAsFetched(peerId, tx) {
|
|
32
|
-
if (this.fetched) {
|
|
33
|
-
return false;
|
|
34
|
-
}
|
|
35
|
-
this.fetched = true;
|
|
36
|
-
this.tx = tx;
|
|
37
|
-
this.peers.add(peerId.toString());
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
toString() {
|
|
41
|
-
return this.txHash.toString();
|
|
42
|
-
}
|
|
43
28
|
}
|
|
44
29
|
/*
|
|
45
30
|
* Single source or truth for transactions we are fetching
|
|
46
31
|
* This could be better optimized but given expected count of missing txs (N < 100)
|
|
47
32
|
* At the moment there is no need for it. And benefit is that we have everything in single store
|
|
48
|
-
* */ export class MissingTxMetadataCollection
|
|
33
|
+
* */ export class MissingTxMetadataCollection {
|
|
34
|
+
missingTxsTracker;
|
|
49
35
|
txBatchSize;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
36
|
+
txMetadata;
|
|
37
|
+
constructor(missingTxsTracker, txBatchSize = DEFAULT_BATCH_TX_REQUESTER_TX_BATCH_SIZE){
|
|
38
|
+
this.missingTxsTracker = missingTxsTracker;
|
|
39
|
+
this.txBatchSize = txBatchSize;
|
|
40
|
+
this.txMetadata = new Map();
|
|
41
|
+
missingTxsTracker.missingTxHashes.forEach((hash)=>this.txMetadata.set(hash, new MissingTxMetadata(hash)));
|
|
55
42
|
}
|
|
56
43
|
getPrioritizingNotInFlightAndLowerRequestCount(txs) {
|
|
57
|
-
const filtered = Array.from(this.values()).filter((txMeta)=>txs.includes(txMeta.txHash.toString()));
|
|
44
|
+
const filtered = Array.from(this.txMetadata.values()).filter((txMeta)=>txs.includes(txMeta.txHash.toString()));
|
|
58
45
|
const [notInFlight, inFlight] = filtered.reduce((buckets, tx)=>{
|
|
59
46
|
tx.isInFlight() ? buckets[1].push(tx) : buckets[0].push(tx);
|
|
60
47
|
return buckets;
|
|
@@ -69,22 +56,13 @@ export class MissingTxMetadata {
|
|
|
69
56
|
...inFlight
|
|
70
57
|
];
|
|
71
58
|
}
|
|
72
|
-
getFetchedTxHashes() {
|
|
73
|
-
return new Set(this.values().filter((t)=>t.fetched).map((t)=>t.txHash.toString()));
|
|
74
|
-
}
|
|
75
59
|
getMissingTxHashes() {
|
|
76
|
-
return
|
|
77
|
-
}
|
|
78
|
-
getInFlightTxHashes() {
|
|
79
|
-
return new Set(this.values().filter((t)=>t.isInFlight()).map((t)=>t.txHash.toString()));
|
|
80
|
-
}
|
|
81
|
-
getFetchedTxs() {
|
|
82
|
-
return Array.from(this.values().map((t)=>t.tx).filter((t)=>!!t));
|
|
60
|
+
return this.missingTxsTracker.missingTxHashes;
|
|
83
61
|
}
|
|
84
62
|
getTxsPeerHas(peer) {
|
|
85
63
|
const peerIdStr = peer.toString();
|
|
86
64
|
const txsPeerHas = new Set();
|
|
87
|
-
this.values().forEach((txMeta)=>{
|
|
65
|
+
this.txMetadata.values().forEach((txMeta)=>{
|
|
88
66
|
if (txMeta.peers.has(peerIdStr)) {
|
|
89
67
|
txsPeerHas.add(txMeta.txHash.toString());
|
|
90
68
|
}
|
|
@@ -93,42 +71,42 @@ export class MissingTxMetadata {
|
|
|
93
71
|
}
|
|
94
72
|
getTxsToRequestFromThePeer(peer) {
|
|
95
73
|
const txsPeerHas = this.getTxsPeerHas(peer);
|
|
96
|
-
const
|
|
97
|
-
const txsToRequest = txsPeerHas.
|
|
74
|
+
const missingTxHashes = this.getMissingTxHashes();
|
|
75
|
+
const txsToRequest = txsPeerHas.intersection(missingTxHashes);
|
|
98
76
|
if (txsToRequest.size >= this.txBatchSize) {
|
|
99
|
-
return this.getPrioritizingNotInFlightAndLowerRequestCount(Array.from(txsToRequest)).map((t)=>t.txHash).slice(0, this.txBatchSize);
|
|
77
|
+
return this.getPrioritizingNotInFlightAndLowerRequestCount(Array.from(txsToRequest)).map((t)=>TxHash.fromString(t.txHash)).slice(0, this.txBatchSize);
|
|
100
78
|
}
|
|
101
79
|
// Otherwise fill the txs to request till txBatchSize with random txs we are missing
|
|
102
80
|
// Who knows, maybe we get lucky and peer received these txs in the meantime
|
|
103
81
|
const countToFill = this.txBatchSize - txsToRequest.size;
|
|
104
|
-
const txsToFill = this.getPrioritizingNotInFlightAndLowerRequestCount(Array.from(this.getMissingTxHashes().difference(txsToRequest))).slice(0, countToFill).map((t)=>t.txHash);
|
|
82
|
+
const txsToFill = this.getPrioritizingNotInFlightAndLowerRequestCount(Array.from(this.getMissingTxHashes().difference(txsToRequest))).slice(0, countToFill).map((t)=>TxHash.fromString(t.txHash));
|
|
105
83
|
return [
|
|
106
84
|
...Array.from(txsToRequest).map((t)=>TxHash.fromString(t)),
|
|
107
85
|
...txsToFill
|
|
108
86
|
];
|
|
109
87
|
}
|
|
110
88
|
markRequested(txHash) {
|
|
111
|
-
this.get(txHash.toString())?.markAsRequested();
|
|
89
|
+
this.txMetadata.get(txHash.toString())?.markAsRequested();
|
|
112
90
|
}
|
|
113
91
|
/*
|
|
114
92
|
* This should be called only when requesting tx from smart peer
|
|
115
93
|
* Because the smart peer should return this tx, whereas
|
|
116
94
|
* "dumb" peer might return it, or might not - we don't know
|
|
117
95
|
* */ markInFlightBySmartPeer(txHash) {
|
|
118
|
-
this.get(txHash.toString())?.markInFlight();
|
|
96
|
+
this.txMetadata.get(txHash.toString())?.markInFlight();
|
|
119
97
|
}
|
|
120
98
|
/*
|
|
121
99
|
* This should be called only when requesting tx from smart peer
|
|
122
100
|
* Because the smart peer should return this tx, whereas
|
|
123
101
|
* "dumb" peer might return it, or might not - we don't know*/ markNotInFlightBySmartPeer(txHash) {
|
|
124
|
-
this.get(txHash.toString())?.markNotInFlight();
|
|
102
|
+
this.txMetadata.get(txHash.toString())?.markNotInFlight();
|
|
125
103
|
}
|
|
126
104
|
alreadyFetched(txHash) {
|
|
127
|
-
return this.
|
|
105
|
+
return !this.missingTxsTracker.isMissing(txHash.toString());
|
|
128
106
|
}
|
|
129
107
|
markFetched(peerId, tx) {
|
|
130
108
|
const txHashStr = tx.txHash.toString();
|
|
131
|
-
const txMeta = this.get(txHashStr);
|
|
109
|
+
const txMeta = this.txMetadata.get(txHashStr);
|
|
132
110
|
if (!txMeta) {
|
|
133
111
|
//TODO: what to do about peer which sent txs we didn't request?
|
|
134
112
|
// 1. don't request from it in the scope of this batch request
|
|
@@ -137,12 +115,13 @@ export class MissingTxMetadata {
|
|
|
137
115
|
//
|
|
138
116
|
return false;
|
|
139
117
|
}
|
|
140
|
-
|
|
118
|
+
txMeta.peers.add(peerId.toString());
|
|
119
|
+
return this.missingTxsTracker.markFetched(tx);
|
|
141
120
|
}
|
|
142
121
|
markPeerHas(peerId, txHash) {
|
|
143
122
|
const peerIdStr = peerId.toString();
|
|
144
123
|
txHash.map((t)=>t.toString()).forEach((txh)=>{
|
|
145
|
-
const txMeta = this.get(txh);
|
|
124
|
+
const txMeta = this.txMetadata.get(txh);
|
|
146
125
|
if (txMeta) {
|
|
147
126
|
txMeta.peers.add(peerIdStr);
|
|
148
127
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createTxValidatorForReqResponseReceivedTxs } from '../../../msg_validators/index.js';
|
|
2
2
|
export class BatchRequestTxValidator {
|
|
3
3
|
config;
|
|
4
4
|
txValidator;
|
|
@@ -13,7 +13,7 @@ export class BatchRequestTxValidator {
|
|
|
13
13
|
return await Promise.all(txs.map((tx)=>this.validateRequestedTx(tx)));
|
|
14
14
|
}
|
|
15
15
|
static createRequestedTxValidator(config) {
|
|
16
|
-
return
|
|
16
|
+
return createTxValidatorForReqResponseReceivedTxs(config.proofVerifier, {
|
|
17
17
|
l1ChainId: config.l1ChainId,
|
|
18
18
|
rollupVersion: config.rollupVersion
|
|
19
19
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SlotNumber } from '@aztec/foundation/branded-types';
|
|
2
2
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
3
|
import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
|
|
4
|
-
import type { BlockProposal, CheckpointAttestation, CheckpointProposalCore, Gossipable } from '@aztec/stdlib/p2p';
|
|
4
|
+
import type { BlockProposal, CheckpointAttestation, CheckpointProposalCore, Gossipable, TopicType } from '@aztec/stdlib/p2p';
|
|
5
5
|
import type { Tx } from '@aztec/stdlib/tx';
|
|
6
6
|
import type { PeerId } from '@libp2p/interface';
|
|
7
7
|
import type { ENR } from '@nethermindeth/enr';
|
|
@@ -93,7 +93,9 @@ export interface P2PService {
|
|
|
93
93
|
registerDuplicateAttestationCallback(callback: P2PDuplicateAttestationCallback): void;
|
|
94
94
|
getEnr(): ENR | undefined;
|
|
95
95
|
getPeers(includePending?: boolean): PeerInfo[];
|
|
96
|
-
|
|
96
|
+
/** Returns the number of peers in the GossipSub mesh for a given topic type. */
|
|
97
|
+
getGossipMeshPeerCount(topicType: TopicType): number;
|
|
98
|
+
validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
|
|
97
99
|
addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
|
|
98
100
|
handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
|
|
99
101
|
updateConfig(config: Partial<P2PReqRespConfig>): void;
|
|
@@ -138,4 +140,4 @@ export interface PeerDiscoveryService extends EventEmitter {
|
|
|
138
140
|
getEnr(): ENR | undefined;
|
|
139
141
|
bootstrapNodeEnrs: ENR[];
|
|
140
142
|
}
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLFNBQVMsRUFDVixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRXZDLE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0YsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFDVixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixjQUFjLEVBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0Usb0JBQVksa0JBQWtCO0lBQzVCLE9BQU8sWUFBWTtJQUNuQixPQUFPLFlBQVk7Q0FDcEI7QUFFRDs7OztHQUlHO0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,4 +51,4 @@ export declare class FastTxCollection {
|
|
|
51
51
|
*/
|
|
52
52
|
stopCollectingForBlocksAfter(blockNumber: BlockNumber): void;
|
|
53
53
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdF90eF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9mYXN0X3R4X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRSxPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hELE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEcsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEQsT0FBTyxFQUVMLEtBQUssbUJBQW1CLEVBRXpCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxLQUFLLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RixPQUFPLEtBQUssRUFBZ0IsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxxQkFBYSxnQkFBZ0I7SUFPekIsT0FBTyxDQUFDLEtBQUs7SUFDYixPQUFPLENBQUMsZ0JBQWdCO0lBQ3hCLE9BQU8sQ0FBQyxNQUFNO0lBQ2QsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLEdBQUc7SUFUYixTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFhO0lBQzNELE9BQU8sQ0FBQyxtQkFBbUIsQ0FBc0I7SUFFakQsWUFDRSxVQUFVLEVBQUUsNkJBQTZCLEVBQ2pDLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFDakIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLE1BQU0sRUFBRSxrQkFBa0IsRUFDMUIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLEdBQUcsR0FBRSxNQUFrRCxFQUMvRCxtQkFBbUIsQ0FBQyxFQUFFLG1CQUFtQixFQVMxQztJQUVZLElBQUksa0JBR2hCO0lBRU0seUJBQXlCLCtCQUUvQjtJQUVZLGNBQWMsQ0FDekIsS0FBSyxFQUFFLDBCQUEwQixFQUNqQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQzdCLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkEwQzlDO0lBRUQsVUFBZ0IsV0FBVyxDQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQzlCLElBQUksRUFBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkErQ3hFO1lBUWEsb0JBQW9CO1lBZ0JwQixtQkFBbUI7WUF5Rm5CLHFCQUFxQjtJQXlEbkMseUdBQXlHO0lBQ3pHLE9BQU8sQ0FBQyxhQUFhO0lBUXJCOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLFFBc0J4QjtJQUVEOzs7T0FHRztJQUNJLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU9qRTtJQUVEOzs7T0FHRztJQUNJLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxXQUFXLEdBQUcsSUFBSSxDQU9sRTtDQUNGIn0=
|
|
@@ -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;
|
|
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;AAEtD,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,KAAK,EAAgB,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,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;YAgBpB,mBAAmB;YAyFnB,qBAAqB;IAyDnC,yGAAyG;IACzG,OAAO,CAAC,aAAa;IAQrB;;;OAGG;IACI,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,QAsBxB;IAED;;;OAGG;IACI,2BAA2B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOjE;IAED;;;OAGG;IACI,4BAA4B,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAOlE;CACF"}
|
|
@@ -5,6 +5,7 @@ import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
|
5
5
|
import { sleep } from '@aztec/foundation/sleep';
|
|
6
6
|
import { DateProvider, elapsed } from '@aztec/foundation/timer';
|
|
7
7
|
import { TxHash } from '@aztec/stdlib/tx';
|
|
8
|
+
import { MissingTxsTracker } from './missing_txs_tracker.js';
|
|
8
9
|
import { BatchTxRequesterCollector, SendBatchRequestCollector } from './proposal_tx_collector.js';
|
|
9
10
|
export class FastTxCollection {
|
|
10
11
|
nodes;
|
|
@@ -56,30 +57,27 @@ export class FastTxCollection {
|
|
|
56
57
|
...input,
|
|
57
58
|
blockInfo,
|
|
58
59
|
promise,
|
|
59
|
-
|
|
60
|
-
missingTxHashes: new Set(txHashes.map((t)=>t.toString())),
|
|
60
|
+
missingTxTracker: MissingTxsTracker.fromArray(txHashes),
|
|
61
61
|
deadline: opts.deadline
|
|
62
62
|
};
|
|
63
63
|
const [duration] = await elapsed(()=>this.collectFast(request, {
|
|
64
64
|
...opts
|
|
65
65
|
}));
|
|
66
66
|
clearTimeout(timeoutTimer);
|
|
67
|
-
this.log.verbose(`Collected ${request.
|
|
67
|
+
this.log.verbose(`Collected ${request.missingTxTracker.collectedTxs.length} txs out of ${txHashes.length} for ${input.type} at slot ${blockInfo.slotNumber}`, {
|
|
68
68
|
...blockInfo,
|
|
69
69
|
duration,
|
|
70
70
|
requestType: input.type,
|
|
71
71
|
missingTxs: [
|
|
72
|
-
...request.missingTxHashes
|
|
72
|
+
...request.missingTxTracker.missingTxHashes
|
|
73
73
|
]
|
|
74
74
|
});
|
|
75
|
-
return
|
|
76
|
-
...request.foundTxs.values()
|
|
77
|
-
];
|
|
75
|
+
return request.missingTxTracker.collectedTxs;
|
|
78
76
|
}
|
|
79
77
|
async collectFast(request, opts) {
|
|
80
78
|
this.requests.add(request);
|
|
81
79
|
const { blockInfo } = request;
|
|
82
|
-
this.log.debug(`Starting fast collection of ${request.
|
|
80
|
+
this.log.debug(`Starting fast collection of ${request.missingTxTracker.numberOfMissingTxs} txs for ${request.type} at slot ${blockInfo.slotNumber}`, {
|
|
83
81
|
...blockInfo,
|
|
84
82
|
requestType: request.type,
|
|
85
83
|
deadline: opts.deadline
|
|
@@ -95,7 +93,7 @@ export class FastTxCollection {
|
|
|
95
93
|
waitBeforeReqResp
|
|
96
94
|
]);
|
|
97
95
|
// If we have collected all txs, we can stop here
|
|
98
|
-
if (request.
|
|
96
|
+
if (request.missingTxTracker.allFetched()) {
|
|
99
97
|
this.log.debug(`All txs collected for slot ${blockInfo.slotNumber} without reqresp`, blockInfo);
|
|
100
98
|
return;
|
|
101
99
|
}
|
|
@@ -114,9 +112,7 @@ export class FastTxCollection {
|
|
|
114
112
|
const logCtx = {
|
|
115
113
|
...blockInfo,
|
|
116
114
|
errorMessage: err instanceof Error ? err.message : undefined,
|
|
117
|
-
missingTxs:
|
|
118
|
-
...request.missingTxHashes
|
|
119
|
-
].map((txHash)=>txHash.toString())
|
|
115
|
+
missingTxs: request.missingTxTracker.missingTxHashes.values().map((txHash)=>txHash.toString())
|
|
120
116
|
};
|
|
121
117
|
if (err instanceof Error && err.name === 'TimeoutError') {
|
|
122
118
|
this.log.warn(`Timed out collecting txs for ${request.type} at slot ${blockInfo.slotNumber}`, logCtx);
|
|
@@ -142,7 +138,7 @@ export class FastTxCollection {
|
|
|
142
138
|
}
|
|
143
139
|
// Keep a shared priority queue of all txs pending to be requested, sorted by the number of attempts made to collect them.
|
|
144
140
|
const attemptsPerTx = [
|
|
145
|
-
...request.missingTxHashes
|
|
141
|
+
...request.missingTxTracker.missingTxHashes
|
|
146
142
|
].map((txHash)=>({
|
|
147
143
|
txHash,
|
|
148
144
|
attempts: 0,
|
|
@@ -152,7 +148,7 @@ export class FastTxCollection {
|
|
|
152
148
|
await Promise.allSettled(this.nodes.map((node)=>this.collectFastFromNode(request, node, attemptsPerTx, opts)));
|
|
153
149
|
}
|
|
154
150
|
async collectFastFromNode(request, node, attemptsPerTx, opts) {
|
|
155
|
-
const notFinished = ()=>this.dateProvider.now() <= +opts.deadline && request.
|
|
151
|
+
const notFinished = ()=>this.dateProvider.now() <= +opts.deadline && !request.missingTxTracker.allFetched() && this.requests.has(request);
|
|
156
152
|
const maxParallelRequests = this.config.txCollectionFastMaxParallelRequestsPerNode;
|
|
157
153
|
const maxBatchSize = this.config.txCollectionNodeRpcMaxBatchSize;
|
|
158
154
|
const activeRequestsToThisNode = new Set(); // Track the txs being actively requested to this node
|
|
@@ -166,7 +162,7 @@ export class FastTxCollection {
|
|
|
166
162
|
const txToRequest = attemptsPerTx[index++];
|
|
167
163
|
if (!txToRequest) {
|
|
168
164
|
break;
|
|
169
|
-
} else if (!request.
|
|
165
|
+
} else if (!request.missingTxTracker.isMissing(txToRequest.txHash)) {
|
|
170
166
|
// Mark as found if it was found somewhere else, we'll then remove it from the array.
|
|
171
167
|
// We don't delete it now since 'array.splice' is pretty expensive, so we do it after sorting.
|
|
172
168
|
txToRequest.found = true;
|
|
@@ -190,8 +186,15 @@ export class FastTxCollection {
|
|
|
190
186
|
if (batch.length === 0) {
|
|
191
187
|
return;
|
|
192
188
|
}
|
|
189
|
+
const txHashes = batch.map(({ txHash })=>txHash);
|
|
193
190
|
// Collect this batch from the node
|
|
194
|
-
await this.txCollectionSink.collect(
|
|
191
|
+
await this.txCollectionSink.collect(async ()=>{
|
|
192
|
+
const result = await node.getTxsByHash(txHashes.map(TxHash.fromString));
|
|
193
|
+
for (const tx of result.validTxs){
|
|
194
|
+
request.missingTxTracker.markFetched(tx);
|
|
195
|
+
}
|
|
196
|
+
return result;
|
|
197
|
+
}, txHashes, {
|
|
195
198
|
description: `fast ${node.getInfo()}`,
|
|
196
199
|
node: node.getInfo(),
|
|
197
200
|
method: 'fast-node-rpc',
|
|
@@ -222,25 +225,30 @@ export class FastTxCollection {
|
|
|
222
225
|
});
|
|
223
226
|
return;
|
|
224
227
|
}
|
|
225
|
-
this.log.debug(`Starting fast reqresp for ${request.
|
|
228
|
+
this.log.debug(`Starting fast reqresp for ${request.missingTxTracker.numberOfMissingTxs} txs for ${request.type} at slot ${blockInfo.slotNumber}`, {
|
|
226
229
|
...blockInfo,
|
|
227
230
|
timeoutMs,
|
|
228
231
|
pinnedPeer
|
|
229
232
|
});
|
|
230
233
|
try {
|
|
231
|
-
await this.txCollectionSink.collect(async (
|
|
234
|
+
await this.txCollectionSink.collect(async ()=>{
|
|
235
|
+
let result;
|
|
232
236
|
if (request.type === 'proposal') {
|
|
233
|
-
|
|
237
|
+
result = await this.missingTxsCollector.collectTxs(request.missingTxTracker, request.blockProposal, pinnedPeer, timeoutMs);
|
|
234
238
|
} else if (request.type === 'block') {
|
|
235
239
|
const blockTxsSource = {
|
|
236
240
|
txHashes: request.block.body.txEffects.map((e)=>e.txHash),
|
|
237
241
|
archive: request.block.archive.root
|
|
238
242
|
};
|
|
239
|
-
|
|
243
|
+
result = await this.missingTxsCollector.collectTxs(request.missingTxTracker, blockTxsSource, pinnedPeer, timeoutMs);
|
|
240
244
|
} else {
|
|
241
245
|
throw new Error(`Unknown request type: ${request.type}`);
|
|
242
246
|
}
|
|
243
|
-
|
|
247
|
+
return {
|
|
248
|
+
validTxs: result,
|
|
249
|
+
invalidTxHashes: []
|
|
250
|
+
};
|
|
251
|
+
}, Array.from(request.missingTxTracker.missingTxHashes), {
|
|
244
252
|
description: `reqresp for slot ${slotNumber}`,
|
|
245
253
|
method: 'fast-req-resp',
|
|
246
254
|
...opts,
|
|
@@ -249,7 +257,7 @@ export class FastTxCollection {
|
|
|
249
257
|
} catch (err) {
|
|
250
258
|
this.log.error(`Error sending fast reqresp request for txs`, err, {
|
|
251
259
|
txs: [
|
|
252
|
-
...request.missingTxHashes
|
|
260
|
+
...request.missingTxTracker.missingTxHashes
|
|
253
261
|
],
|
|
254
262
|
...blockInfo
|
|
255
263
|
});
|
|
@@ -276,22 +284,20 @@ export class FastTxCollection {
|
|
|
276
284
|
for (const tx of txs){
|
|
277
285
|
const txHash = tx.txHash.toString();
|
|
278
286
|
// Remove the tx hash from the missing set, and add it to the found set.
|
|
279
|
-
if (request.
|
|
280
|
-
request.missingTxHashes.delete(txHash);
|
|
281
|
-
request.foundTxs.set(txHash, tx);
|
|
287
|
+
if (request.missingTxTracker.markFetched(tx)) {
|
|
282
288
|
this.log.trace(`Found tx ${txHash} for fast collection request`, {
|
|
283
289
|
...request.blockInfo,
|
|
284
290
|
txHash: tx.txHash.toString(),
|
|
285
291
|
type: request.type
|
|
286
292
|
});
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
293
|
+
}
|
|
294
|
+
// If we found all txs for this request, we resolve the promise
|
|
295
|
+
if (request.missingTxTracker.allFetched()) {
|
|
296
|
+
this.log.trace(`All txs found for fast collection request`, {
|
|
297
|
+
...request.blockInfo,
|
|
298
|
+
type: request.type
|
|
299
|
+
});
|
|
300
|
+
request.promise.resolve();
|
|
295
301
|
}
|
|
296
302
|
}
|
|
297
303
|
}
|
|
@@ -50,4 +50,4 @@ export declare class FileStoreTxCollection {
|
|
|
50
50
|
private waitForWake;
|
|
51
51
|
private sleepOrWake;
|
|
52
52
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZV9zdG9yZV90eF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9maWxlX3N0b3JlX3R4X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBR2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUUsMERBQTBEO0FBQzFELE1BQU0sTUFBTSx5QkFBeUIsR0FBRztJQUN0QyxXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDdEIsWUFBWSxFQUFFLE1BQU0sQ0FBQztDQUN0QixDQUFDO0FBV0Y7Ozs7O0dBS0c7QUFDSCxxQkFBYSxxQkFBcUI7SUFjOUIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPO0lBQ3hCLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO0lBQ2pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTTtJQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVk7SUFDN0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHO0lBakJ0QixrRUFBa0U7SUFDbEUsT0FBTyxDQUFDLE9BQU8sQ0FBdUM7SUFFdEQsa0RBQWtEO0lBQ2xELE9BQU8sQ0FBQyxPQUFPLENBQXVCO0lBRXRDLDBDQUEwQztJQUMxQyxPQUFPLENBQUMsT0FBTyxDQUFTO0lBRXhCLHNGQUFzRjtJQUN0RixPQUFPLENBQUMsVUFBVSxDQUE2QjtJQUUvQyxZQUNtQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsRUFDNUIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLE1BQU0sRUFBRSx5QkFBeUIsRUFDakMsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLEdBQUcsR0FBRSxNQUFxRCxFQUc1RTtJQUVELHFDQUFxQztJQUM5QixLQUFLLElBQUksSUFBSSxDQVNuQjtJQUVELDBDQUEwQztJQUM3QixJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQU1qQztJQUVELHdEQUF3RDtJQUNqRCxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksR0FBRyxJQUFJLENBc0J0RjtJQUVELDhEQUE4RDtJQUN2RCxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FJL0I7SUFFRCxrQ0FBa0M7SUFDM0IsWUFBWSxJQUFJLElBQUksQ0FFMUI7WUFFYSxVQUFVO0lBa0N4QixxR0FBcUc7SUFDckcsT0FBTyxDQUFDLGFBQWE7SUE4QnJCLDZGQUE2RjtJQUM3RixPQUFPLENBQUMsWUFBWTtJQVFwQiw4REFBOEQ7SUFDOUQsT0FBTyxDQUFDLElBQUk7WUFNRSxXQUFXO1lBS1gsV0FBVztDQUcxQiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file_store_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/file_store_tx_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,0DAA0D;AAC1D,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAWF;;;;;GAKG;AACH,qBAAa,qBAAqB;IAc9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAjBtB,kEAAkE;IAClE,OAAO,CAAC,OAAO,CAAuC;IAEtD,kDAAkD;IAClD,OAAO,CAAC,OAAO,CAAuB;IAEtC,0CAA0C;IAC1C,OAAO,CAAC,OAAO,CAAS;IAExB,sFAAsF;IACtF,OAAO,CAAC,UAAU,CAA6B;IAE/C,YACmB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,yBAAyB,EACjC,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAqD,EAG5E;IAED,qCAAqC;IAC9B,KAAK,IAAI,IAAI,CASnB;IAED,0CAA0C;IAC7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjC;IAED,wDAAwD;IACjD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,CAsBtF;IAED,8DAA8D;IACvD,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAI/B;IAED,kCAAkC;IAC3B,YAAY,IAAI,IAAI,CAE1B;YAEa,UAAU;
|
|
1
|
+
{"version":3,"file":"file_store_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/file_store_tx_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,0DAA0D;AAC1D,MAAM,MAAM,yBAAyB,GAAG;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAWF;;;;;GAKG;AACH,qBAAa,qBAAqB;IAc9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAjBtB,kEAAkE;IAClE,OAAO,CAAC,OAAO,CAAuC;IAEtD,kDAAkD;IAClD,OAAO,CAAC,OAAO,CAAuB;IAEtC,0CAA0C;IAC1C,OAAO,CAAC,OAAO,CAAS;IAExB,sFAAsF;IACtF,OAAO,CAAC,UAAU,CAA6B;IAE/C,YACmB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,yBAAyB,EACjC,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAqD,EAG5E;IAED,qCAAqC;IAC9B,KAAK,IAAI,IAAI,CASnB;IAED,0CAA0C;IAC7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjC;IAED,wDAAwD;IACjD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,CAsBtF;IAED,8DAA8D;IACvD,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,CAI/B;IAED,kCAAkC;IAC3B,YAAY,IAAI,IAAI,CAE1B;YAEa,UAAU;IAkCxB,qGAAqG;IACrG,OAAO,CAAC,aAAa;IA8BrB,6FAA6F;IAC7F,OAAO,CAAC,YAAY;IAQpB,8DAA8D;IAC9D,OAAO,CAAC,IAAI;YAME,WAAW;YAKX,WAAW;CAG1B"}
|
|
@@ -89,8 +89,10 @@ import { TxHash } from '@aztec/stdlib/tx';
|
|
|
89
89
|
entry.attempts++;
|
|
90
90
|
entry.lastAttemptTime = this.dateProvider.now();
|
|
91
91
|
try {
|
|
92
|
-
const result = await this.txCollectionSink.collect((
|
|
93
|
-
|
|
92
|
+
const result = await this.txCollectionSink.collect(()=>source.getTxsByHash([
|
|
93
|
+
TxHash.fromString(entry.txHash)
|
|
94
|
+
]), [
|
|
95
|
+
entry.txHash
|
|
94
96
|
], {
|
|
95
97
|
description: `file-store ${source.getInfo()}`,
|
|
96
98
|
method: 'file-store',
|