@aztec/p2p 4.0.0-nightly.20250907 → 4.0.0-nightly.20260107
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/bootstrap/bootstrap.d.ts +1 -1
- package/dest/bootstrap/bootstrap.d.ts.map +1 -1
- package/dest/bootstrap/bootstrap.js +14 -4
- package/dest/client/factory.d.ts +3 -2
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +9 -5
- package/dest/client/index.d.ts +1 -1
- package/dest/client/interface.d.ts +8 -6
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +12 -35
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +457 -61
- package/dest/config.d.ts +67 -61
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +28 -15
- package/dest/enr/generate-enr.d.ts +2 -2
- package/dest/enr/generate-enr.d.ts.map +1 -1
- package/dest/enr/generate-enr.js +1 -1
- package/dest/enr/index.d.ts +1 -1
- package/dest/errors/attestation-pool.error.d.ts +7 -0
- package/dest/errors/attestation-pool.error.d.ts.map +1 -0
- package/dest/errors/attestation-pool.error.js +12 -0
- package/dest/errors/reqresp.error.d.ts +1 -1
- package/dest/errors/reqresp.error.d.ts.map +1 -1
- package/dest/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +43 -6
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +72 -46
- package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +15 -6
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +73 -18
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +13 -6
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +69 -11
- package/dest/mem_pools/attestation_pool/mocks.d.ts +226 -5
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/mocks.js +9 -7
- package/dest/mem_pools/index.d.ts +1 -1
- package/dest/mem_pools/instrumentation.d.ts +9 -1
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +38 -2
- package/dest/mem_pools/interface.d.ts +3 -4
- package/dest/mem_pools/interface.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +39 -58
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +314 -317
- package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts +18 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_manager.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_manager.js +56 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts +83 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_strategy.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/eviction_strategy.js +5 -0
- package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts +15 -0
- package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.js +88 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts +17 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.js +84 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts +19 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.js +76 -0
- package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts +26 -0
- package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool/eviction/low_priority_eviction_rule.js +84 -0
- package/dest/mem_pools/tx_pool/index.d.ts +1 -2
- package/dest/mem_pools/tx_pool/index.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/index.js +0 -1
- package/dest/mem_pools/tx_pool/priority.d.ts +5 -1
- package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/priority.js +6 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +28 -9
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
- 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 +155 -25
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -2
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +32 -5
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +67 -0
- package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
- package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/index.js +1 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +5 -2
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +44 -12
- package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
- package/dest/msg_validators/index.d.ts +1 -1
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
- package/dest/msg_validators/tx_validator/archive_cache.d.ts +2 -2
- package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.js +1 -1
- package/dest/msg_validators/tx_validator/factory.d.ts +4 -3
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.js +11 -5
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.d.ts +2 -1
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.js +1 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -6
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.js +6 -24
- package/dest/msg_validators/tx_validator/phases_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.js +3 -1
- package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
- package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +13 -0
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/timestamp_validator.js +32 -0
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
- package/dest/services/data_store.d.ts +1 -1
- package/dest/services/data_store.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.d.ts +3 -3
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.js +2 -2
- package/dest/services/dummy_service.d.ts +2 -2
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/encoding.d.ts +25 -4
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +74 -6
- package/dest/services/gossipsub/scoring.d.ts +1 -1
- package/dest/services/index.d.ts +1 -1
- package/dest/services/libp2p/instrumentation.d.ts +3 -1
- package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
- package/dest/services/libp2p/instrumentation.js +9 -2
- package/dest/services/libp2p/libp2p_service.d.ts +32 -72
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +796 -171
- package/dest/services/peer-manager/interface.d.ts +1 -1
- package/dest/services/peer-manager/metrics.d.ts +8 -1
- package/dest/services/peer-manager/metrics.d.ts.map +1 -1
- package/dest/services/peer-manager/metrics.js +28 -0
- package/dest/services/peer-manager/peer_manager.d.ts +1 -32
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +412 -21
- package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_scoring.js +40 -2
- package/dest/services/reqresp/config.d.ts +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -4
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/index.d.ts +1 -1
- package/dest/services/reqresp/interface.d.ts +2 -11
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/interface.js +1 -18
- package/dest/services/reqresp/metrics.d.ts +1 -1
- package/dest/services/reqresp/metrics.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/auth.d.ts +2 -2
- package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/auth.js +2 -2
- package/dest/services/reqresp/protocols/block.d.ts +1 -1
- package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block.js +3 -2
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +1 -1
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +4 -6
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +1 -1
- package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/index.d.ts +1 -1
- package/dest/services/reqresp/protocols/ping.d.ts +1 -1
- package/dest/services/reqresp/protocols/status.d.ts +6 -5
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/status.js +4 -3
- package/dest/services/reqresp/protocols/tx.d.ts +2 -3
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
- package/dest/services/reqresp/reqresp.d.ts +1 -41
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +416 -34
- package/dest/services/reqresp/status.d.ts +2 -2
- package/dest/services/reqresp/status.d.ts.map +1 -1
- package/dest/services/service.d.ts +2 -2
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/tx_collection/config.d.ts +1 -1
- package/dest/services/tx_collection/config.js +1 -1
- package/dest/services/tx_collection/fast_tx_collection.d.ts +4 -9
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/fast_tx_collection.js +6 -1
- package/dest/services/tx_collection/index.d.ts +1 -1
- package/dest/services/tx_collection/instrumentation.d.ts +1 -1
- package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.d.ts +6 -7
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.js +2 -1
- package/dest/services/tx_collection/tx_collection.d.ts +12 -11
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection.js +3 -2
- package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection_sink.js +34 -4
- package/dest/services/tx_collection/tx_source.d.ts +1 -1
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_source.js +2 -2
- package/dest/services/tx_provider.d.ts +6 -4
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider.js +19 -6
- package/dest/services/tx_provider_instrumentation.d.ts +5 -2
- package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
- package/dest/services/tx_provider_instrumentation.js +14 -1
- package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
- package/dest/test-helpers/get-ports.d.ts +1 -1
- package/dest/test-helpers/get-ports.d.ts.map +1 -1
- package/dest/test-helpers/index.d.ts +1 -1
- package/dest/test-helpers/make-enrs.d.ts +1 -1
- package/dest/test-helpers/make-enrs.js +1 -1
- package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- 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-tx-helpers.d.ts +12 -0
- package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -0
- package/dest/test-helpers/mock-tx-helpers.js +19 -0
- package/dest/test-helpers/reqresp-nodes.d.ts +3 -3
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +4 -3
- package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +17 -9
- package/dest/testbench/parse_log_file.d.ts +1 -1
- package/dest/testbench/testbench.d.ts +1 -1
- package/dest/testbench/testbench.js +2 -2
- package/dest/testbench/worker_client_manager.d.ts +1 -1
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/types/index.d.ts +1 -1
- package/dest/util.d.ts +2 -1
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +11 -2
- package/dest/versioning.d.ts +2 -2
- package/dest/versioning.d.ts.map +1 -1
- package/dest/versioning.js +2 -2
- package/package.json +21 -21
- package/src/bootstrap/bootstrap.ts +15 -4
- package/src/client/factory.ts +21 -12
- package/src/client/interface.ts +8 -5
- package/src/client/p2p_client.ts +97 -88
- package/src/config.ts +42 -21
- package/src/enr/generate-enr.ts +1 -1
- package/src/errors/attestation-pool.error.ts +13 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +46 -5
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +89 -48
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +107 -24
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +98 -19
- package/src/mem_pools/attestation_pool/mocks.ts +11 -8
- package/src/mem_pools/instrumentation.ts +46 -0
- package/src/mem_pools/interface.ts +2 -4
- package/src/mem_pools/tx_pool/README.md +255 -0
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +368 -360
- package/src/mem_pools/tx_pool/eviction/eviction_manager.ts +71 -0
- package/src/mem_pools/tx_pool/eviction/eviction_strategy.ts +93 -0
- package/src/mem_pools/tx_pool/eviction/insufficient_fee_payer_balance_rule.ts +108 -0
- package/src/mem_pools/tx_pool/eviction/invalid_txs_after_mining_rule.ts +104 -0
- package/src/mem_pools/tx_pool/eviction/invalid_txs_after_reorg_rule.ts +91 -0
- package/src/mem_pools/tx_pool/eviction/low_priority_eviction_rule.ts +106 -0
- package/src/mem_pools/tx_pool/index.ts +0 -1
- package/src/mem_pools/tx_pool/priority.ts +8 -1
- package/src/mem_pools/tx_pool/tx_pool.ts +28 -8
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +131 -18
- package/src/msg_validators/attestation_validator/attestation_validator.ts +41 -6
- package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +91 -0
- package/src/msg_validators/attestation_validator/index.ts +1 -0
- package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +53 -12
- package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
- package/src/msg_validators/tx_validator/block_header_validator.ts +2 -2
- package/src/msg_validators/tx_validator/double_spend_validator.ts +1 -1
- package/src/msg_validators/tx_validator/factory.ts +13 -6
- package/src/msg_validators/tx_validator/index.ts +1 -0
- package/src/msg_validators/tx_validator/metadata_validator.ts +8 -42
- package/src/msg_validators/tx_validator/phases_validator.ts +3 -1
- package/src/msg_validators/tx_validator/test_utils.ts +1 -1
- package/src/msg_validators/tx_validator/timestamp_validator.ts +47 -0
- package/src/services/discv5/discV5_service.ts +2 -2
- package/src/services/dummy_service.ts +1 -1
- package/src/services/encoding.ts +81 -6
- package/src/services/libp2p/instrumentation.ts +10 -1
- package/src/services/libp2p/libp2p_service.ts +430 -165
- package/src/services/peer-manager/metrics.ts +32 -0
- package/src/services/peer-manager/peer_manager.ts +24 -14
- package/src/services/peer-manager/peer_scoring.ts +46 -3
- package/src/services/reqresp/interface.ts +1 -22
- package/src/services/reqresp/protocols/auth.ts +2 -2
- package/src/services/reqresp/protocols/block.ts +3 -2
- package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +1 -1
- package/src/services/reqresp/protocols/status.ts +9 -8
- package/src/services/reqresp/protocols/tx.ts +1 -2
- package/src/services/reqresp/reqresp.ts +15 -11
- package/src/services/service.ts +1 -1
- package/src/services/tx_collection/config.ts +1 -1
- package/src/services/tx_collection/fast_tx_collection.ts +8 -5
- package/src/services/tx_collection/slow_tx_collection.ts +7 -6
- package/src/services/tx_collection/tx_collection.ts +12 -10
- package/src/services/tx_collection/tx_collection_sink.ts +34 -3
- package/src/services/tx_collection/tx_source.ts +2 -2
- package/src/services/tx_provider.ts +26 -9
- package/src/services/tx_provider_instrumentation.ts +19 -2
- package/src/test-helpers/make-enrs.ts +1 -1
- package/src/test-helpers/mock-pubsub.ts +1 -1
- package/src/test-helpers/mock-tx-helpers.ts +24 -0
- package/src/test-helpers/reqresp-nodes.ts +4 -3
- package/src/testbench/p2p_client_testbench_worker.ts +14 -6
- package/src/testbench/testbench.ts +2 -2
- package/src/util.ts +12 -2
- package/src/versioning.ts +3 -3
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -68
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +0 -160
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -199
|
@@ -1,10 +1,377 @@
|
|
|
1
1
|
// @attribution: lodestar impl for inspiration
|
|
2
|
-
function
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
function applyDecs2203RFactory() {
|
|
3
|
+
function createAddInitializerMethod(initializers, decoratorFinishedRef) {
|
|
4
|
+
return function addInitializer(initializer) {
|
|
5
|
+
assertNotFinished(decoratorFinishedRef, "addInitializer");
|
|
6
|
+
assertCallable(initializer, "An initializer");
|
|
7
|
+
initializers.push(initializer);
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
function memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value) {
|
|
11
|
+
var kindStr;
|
|
12
|
+
switch(kind){
|
|
13
|
+
case 1:
|
|
14
|
+
kindStr = "accessor";
|
|
15
|
+
break;
|
|
16
|
+
case 2:
|
|
17
|
+
kindStr = "method";
|
|
18
|
+
break;
|
|
19
|
+
case 3:
|
|
20
|
+
kindStr = "getter";
|
|
21
|
+
break;
|
|
22
|
+
case 4:
|
|
23
|
+
kindStr = "setter";
|
|
24
|
+
break;
|
|
25
|
+
default:
|
|
26
|
+
kindStr = "field";
|
|
27
|
+
}
|
|
28
|
+
var ctx = {
|
|
29
|
+
kind: kindStr,
|
|
30
|
+
name: isPrivate ? "#" + name : name,
|
|
31
|
+
static: isStatic,
|
|
32
|
+
private: isPrivate,
|
|
33
|
+
metadata: metadata
|
|
34
|
+
};
|
|
35
|
+
var decoratorFinishedRef = {
|
|
36
|
+
v: false
|
|
37
|
+
};
|
|
38
|
+
ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef);
|
|
39
|
+
var get, set;
|
|
40
|
+
if (kind === 0) {
|
|
41
|
+
if (isPrivate) {
|
|
42
|
+
get = desc.get;
|
|
43
|
+
set = desc.set;
|
|
44
|
+
} else {
|
|
45
|
+
get = function() {
|
|
46
|
+
return this[name];
|
|
47
|
+
};
|
|
48
|
+
set = function(v) {
|
|
49
|
+
this[name] = v;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
} else if (kind === 2) {
|
|
53
|
+
get = function() {
|
|
54
|
+
return desc.value;
|
|
55
|
+
};
|
|
56
|
+
} else {
|
|
57
|
+
if (kind === 1 || kind === 3) {
|
|
58
|
+
get = function() {
|
|
59
|
+
return desc.get.call(this);
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
if (kind === 1 || kind === 4) {
|
|
63
|
+
set = function(v) {
|
|
64
|
+
desc.set.call(this, v);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
ctx.access = get && set ? {
|
|
69
|
+
get: get,
|
|
70
|
+
set: set
|
|
71
|
+
} : get ? {
|
|
72
|
+
get: get
|
|
73
|
+
} : {
|
|
74
|
+
set: set
|
|
75
|
+
};
|
|
76
|
+
try {
|
|
77
|
+
return dec(value, ctx);
|
|
78
|
+
} finally{
|
|
79
|
+
decoratorFinishedRef.v = true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function assertNotFinished(decoratorFinishedRef, fnName) {
|
|
83
|
+
if (decoratorFinishedRef.v) {
|
|
84
|
+
throw new Error("attempted to call " + fnName + " after decoration was finished");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function assertCallable(fn, hint) {
|
|
88
|
+
if (typeof fn !== "function") {
|
|
89
|
+
throw new TypeError(hint + " must be a function");
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function assertValidReturnValue(kind, value) {
|
|
93
|
+
var type = typeof value;
|
|
94
|
+
if (kind === 1) {
|
|
95
|
+
if (type !== "object" || value === null) {
|
|
96
|
+
throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
|
|
97
|
+
}
|
|
98
|
+
if (value.get !== undefined) {
|
|
99
|
+
assertCallable(value.get, "accessor.get");
|
|
100
|
+
}
|
|
101
|
+
if (value.set !== undefined) {
|
|
102
|
+
assertCallable(value.set, "accessor.set");
|
|
103
|
+
}
|
|
104
|
+
if (value.init !== undefined) {
|
|
105
|
+
assertCallable(value.init, "accessor.init");
|
|
106
|
+
}
|
|
107
|
+
} else if (type !== "function") {
|
|
108
|
+
var hint;
|
|
109
|
+
if (kind === 0) {
|
|
110
|
+
hint = "field";
|
|
111
|
+
} else if (kind === 10) {
|
|
112
|
+
hint = "class";
|
|
113
|
+
} else {
|
|
114
|
+
hint = "method";
|
|
115
|
+
}
|
|
116
|
+
throw new TypeError(hint + " decorators must return a function or void 0");
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata) {
|
|
120
|
+
var decs = decInfo[0];
|
|
121
|
+
var desc, init, value;
|
|
122
|
+
if (isPrivate) {
|
|
123
|
+
if (kind === 0 || kind === 1) {
|
|
124
|
+
desc = {
|
|
125
|
+
get: decInfo[3],
|
|
126
|
+
set: decInfo[4]
|
|
127
|
+
};
|
|
128
|
+
} else if (kind === 3) {
|
|
129
|
+
desc = {
|
|
130
|
+
get: decInfo[3]
|
|
131
|
+
};
|
|
132
|
+
} else if (kind === 4) {
|
|
133
|
+
desc = {
|
|
134
|
+
set: decInfo[3]
|
|
135
|
+
};
|
|
136
|
+
} else {
|
|
137
|
+
desc = {
|
|
138
|
+
value: decInfo[3]
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
} else if (kind !== 0) {
|
|
142
|
+
desc = Object.getOwnPropertyDescriptor(base, name);
|
|
143
|
+
}
|
|
144
|
+
if (kind === 1) {
|
|
145
|
+
value = {
|
|
146
|
+
get: desc.get,
|
|
147
|
+
set: desc.set
|
|
148
|
+
};
|
|
149
|
+
} else if (kind === 2) {
|
|
150
|
+
value = desc.value;
|
|
151
|
+
} else if (kind === 3) {
|
|
152
|
+
value = desc.get;
|
|
153
|
+
} else if (kind === 4) {
|
|
154
|
+
value = desc.set;
|
|
155
|
+
}
|
|
156
|
+
var newValue, get, set;
|
|
157
|
+
if (typeof decs === "function") {
|
|
158
|
+
newValue = memberDec(decs, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
|
|
159
|
+
if (newValue !== void 0) {
|
|
160
|
+
assertValidReturnValue(kind, newValue);
|
|
161
|
+
if (kind === 0) {
|
|
162
|
+
init = newValue;
|
|
163
|
+
} else if (kind === 1) {
|
|
164
|
+
init = newValue.init;
|
|
165
|
+
get = newValue.get || value.get;
|
|
166
|
+
set = newValue.set || value.set;
|
|
167
|
+
value = {
|
|
168
|
+
get: get,
|
|
169
|
+
set: set
|
|
170
|
+
};
|
|
171
|
+
} else {
|
|
172
|
+
value = newValue;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
} else {
|
|
176
|
+
for(var i = decs.length - 1; i >= 0; i--){
|
|
177
|
+
var dec = decs[i];
|
|
178
|
+
newValue = memberDec(dec, name, desc, initializers, kind, isStatic, isPrivate, metadata, value);
|
|
179
|
+
if (newValue !== void 0) {
|
|
180
|
+
assertValidReturnValue(kind, newValue);
|
|
181
|
+
var newInit;
|
|
182
|
+
if (kind === 0) {
|
|
183
|
+
newInit = newValue;
|
|
184
|
+
} else if (kind === 1) {
|
|
185
|
+
newInit = newValue.init;
|
|
186
|
+
get = newValue.get || value.get;
|
|
187
|
+
set = newValue.set || value.set;
|
|
188
|
+
value = {
|
|
189
|
+
get: get,
|
|
190
|
+
set: set
|
|
191
|
+
};
|
|
192
|
+
} else {
|
|
193
|
+
value = newValue;
|
|
194
|
+
}
|
|
195
|
+
if (newInit !== void 0) {
|
|
196
|
+
if (init === void 0) {
|
|
197
|
+
init = newInit;
|
|
198
|
+
} else if (typeof init === "function") {
|
|
199
|
+
init = [
|
|
200
|
+
init,
|
|
201
|
+
newInit
|
|
202
|
+
];
|
|
203
|
+
} else {
|
|
204
|
+
init.push(newInit);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (kind === 0 || kind === 1) {
|
|
211
|
+
if (init === void 0) {
|
|
212
|
+
init = function(instance, init) {
|
|
213
|
+
return init;
|
|
214
|
+
};
|
|
215
|
+
} else if (typeof init !== "function") {
|
|
216
|
+
var ownInitializers = init;
|
|
217
|
+
init = function(instance, init) {
|
|
218
|
+
var value = init;
|
|
219
|
+
for(var i = 0; i < ownInitializers.length; i++){
|
|
220
|
+
value = ownInitializers[i].call(instance, value);
|
|
221
|
+
}
|
|
222
|
+
return value;
|
|
223
|
+
};
|
|
224
|
+
} else {
|
|
225
|
+
var originalInitializer = init;
|
|
226
|
+
init = function(instance, init) {
|
|
227
|
+
return originalInitializer.call(instance, init);
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
ret.push(init);
|
|
231
|
+
}
|
|
232
|
+
if (kind !== 0) {
|
|
233
|
+
if (kind === 1) {
|
|
234
|
+
desc.get = value.get;
|
|
235
|
+
desc.set = value.set;
|
|
236
|
+
} else if (kind === 2) {
|
|
237
|
+
desc.value = value;
|
|
238
|
+
} else if (kind === 3) {
|
|
239
|
+
desc.get = value;
|
|
240
|
+
} else if (kind === 4) {
|
|
241
|
+
desc.set = value;
|
|
242
|
+
}
|
|
243
|
+
if (isPrivate) {
|
|
244
|
+
if (kind === 1) {
|
|
245
|
+
ret.push(function(instance, args) {
|
|
246
|
+
return value.get.call(instance, args);
|
|
247
|
+
});
|
|
248
|
+
ret.push(function(instance, args) {
|
|
249
|
+
return value.set.call(instance, args);
|
|
250
|
+
});
|
|
251
|
+
} else if (kind === 2) {
|
|
252
|
+
ret.push(value);
|
|
253
|
+
} else {
|
|
254
|
+
ret.push(function(instance, args) {
|
|
255
|
+
return value.call(instance, args);
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
} else {
|
|
259
|
+
Object.defineProperty(base, name, desc);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function applyMemberDecs(Class, decInfos, metadata) {
|
|
264
|
+
var ret = [];
|
|
265
|
+
var protoInitializers;
|
|
266
|
+
var staticInitializers;
|
|
267
|
+
var existingProtoNonFields = new Map();
|
|
268
|
+
var existingStaticNonFields = new Map();
|
|
269
|
+
for(var i = 0; i < decInfos.length; i++){
|
|
270
|
+
var decInfo = decInfos[i];
|
|
271
|
+
if (!Array.isArray(decInfo)) continue;
|
|
272
|
+
var kind = decInfo[1];
|
|
273
|
+
var name = decInfo[2];
|
|
274
|
+
var isPrivate = decInfo.length > 3;
|
|
275
|
+
var isStatic = kind >= 5;
|
|
276
|
+
var base;
|
|
277
|
+
var initializers;
|
|
278
|
+
if (isStatic) {
|
|
279
|
+
base = Class;
|
|
280
|
+
kind = kind - 5;
|
|
281
|
+
staticInitializers = staticInitializers || [];
|
|
282
|
+
initializers = staticInitializers;
|
|
283
|
+
} else {
|
|
284
|
+
base = Class.prototype;
|
|
285
|
+
protoInitializers = protoInitializers || [];
|
|
286
|
+
initializers = protoInitializers;
|
|
287
|
+
}
|
|
288
|
+
if (kind !== 0 && !isPrivate) {
|
|
289
|
+
var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields;
|
|
290
|
+
var existingKind = existingNonFields.get(name) || 0;
|
|
291
|
+
if (existingKind === true || existingKind === 3 && kind !== 4 || existingKind === 4 && kind !== 3) {
|
|
292
|
+
throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name);
|
|
293
|
+
} else if (!existingKind && kind > 2) {
|
|
294
|
+
existingNonFields.set(name, kind);
|
|
295
|
+
} else {
|
|
296
|
+
existingNonFields.set(name, true);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, metadata);
|
|
300
|
+
}
|
|
301
|
+
pushInitializers(ret, protoInitializers);
|
|
302
|
+
pushInitializers(ret, staticInitializers);
|
|
303
|
+
return ret;
|
|
304
|
+
}
|
|
305
|
+
function pushInitializers(ret, initializers) {
|
|
306
|
+
if (initializers) {
|
|
307
|
+
ret.push(function(instance) {
|
|
308
|
+
for(var i = 0; i < initializers.length; i++){
|
|
309
|
+
initializers[i].call(instance);
|
|
310
|
+
}
|
|
311
|
+
return instance;
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
function applyClassDecs(targetClass, classDecs, metadata) {
|
|
316
|
+
if (classDecs.length > 0) {
|
|
317
|
+
var initializers = [];
|
|
318
|
+
var newClass = targetClass;
|
|
319
|
+
var name = targetClass.name;
|
|
320
|
+
for(var i = classDecs.length - 1; i >= 0; i--){
|
|
321
|
+
var decoratorFinishedRef = {
|
|
322
|
+
v: false
|
|
323
|
+
};
|
|
324
|
+
try {
|
|
325
|
+
var nextNewClass = classDecs[i](newClass, {
|
|
326
|
+
kind: "class",
|
|
327
|
+
name: name,
|
|
328
|
+
addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef),
|
|
329
|
+
metadata
|
|
330
|
+
});
|
|
331
|
+
} finally{
|
|
332
|
+
decoratorFinishedRef.v = true;
|
|
333
|
+
}
|
|
334
|
+
if (nextNewClass !== undefined) {
|
|
335
|
+
assertValidReturnValue(10, nextNewClass);
|
|
336
|
+
newClass = nextNewClass;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
return [
|
|
340
|
+
defineMetadata(newClass, metadata),
|
|
341
|
+
function() {
|
|
342
|
+
for(var i = 0; i < initializers.length; i++){
|
|
343
|
+
initializers[i].call(newClass);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
];
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
function defineMetadata(Class, metadata) {
|
|
350
|
+
return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), {
|
|
351
|
+
configurable: true,
|
|
352
|
+
enumerable: true,
|
|
353
|
+
value: metadata
|
|
354
|
+
});
|
|
355
|
+
}
|
|
356
|
+
return function applyDecs2203R(targetClass, memberDecs, classDecs, parentClass) {
|
|
357
|
+
if (parentClass !== void 0) {
|
|
358
|
+
var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")];
|
|
359
|
+
}
|
|
360
|
+
var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata);
|
|
361
|
+
var e = applyMemberDecs(targetClass, memberDecs, metadata);
|
|
362
|
+
if (!classDecs.length) defineMetadata(targetClass, metadata);
|
|
363
|
+
return {
|
|
364
|
+
e: e,
|
|
365
|
+
get c () {
|
|
366
|
+
return applyClassDecs(targetClass, classDecs, metadata);
|
|
367
|
+
}
|
|
368
|
+
};
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
|
|
372
|
+
return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
|
|
7
373
|
}
|
|
374
|
+
var _dec, _dec1, _dec2, _initProto;
|
|
8
375
|
import { compactArray } from '@aztec/foundation/collection';
|
|
9
376
|
import { AbortError, TimeoutError } from '@aztec/foundation/error';
|
|
10
377
|
import { createLogger } from '@aztec/foundation/log';
|
|
@@ -17,10 +384,20 @@ import { SnappyTransform } from '../encoding.js';
|
|
|
17
384
|
import { DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS, DEFAULT_REQRESP_DIAL_TIMEOUT_MS } from './config.js';
|
|
18
385
|
import { BatchConnectionSampler } from './connection-sampler/batch_connection_sampler.js';
|
|
19
386
|
import { ConnectionSampler, RandomSampler } from './connection-sampler/connection_sampler.js';
|
|
20
|
-
import {
|
|
387
|
+
import { DEFAULT_SUB_PROTOCOL_VALIDATORS, ReqRespSubProtocol, responseFromBuffer } from './interface.js';
|
|
21
388
|
import { ReqRespMetrics } from './metrics.js';
|
|
22
389
|
import { RateLimitStatus, RequestResponseRateLimiter, prettyPrintRateLimitStatus } from './rate-limiter/rate_limiter.js';
|
|
23
390
|
import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqRespStatus } from './status.js';
|
|
391
|
+
_dec = trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
|
|
392
|
+
[Attributes.P2P_REQ_RESP_PROTOCOL]: subProtocol,
|
|
393
|
+
[Attributes.P2P_REQ_RESP_BATCH_REQUESTS_COUNT]: requests.length
|
|
394
|
+
})), _dec1 = trackSpan('ReqResp.sendRequestToPeer', (peerId, subProtocol, _)=>({
|
|
395
|
+
[Attributes.P2P_ID]: peerId.toString(),
|
|
396
|
+
[Attributes.P2P_REQ_RESP_PROTOCOL]: subProtocol
|
|
397
|
+
})), _dec2 = trackSpan('ReqResp.streamHandler', (protocol, { connection })=>({
|
|
398
|
+
[Attributes.P2P_REQ_RESP_PROTOCOL]: protocol,
|
|
399
|
+
[Attributes.P2P_ID]: connection.remotePeer.toString()
|
|
400
|
+
}));
|
|
24
401
|
/**
|
|
25
402
|
* The Request Response Service
|
|
26
403
|
*
|
|
@@ -38,9 +415,27 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
38
415
|
libp2p;
|
|
39
416
|
peerScoring;
|
|
40
417
|
logger;
|
|
418
|
+
static{
|
|
419
|
+
({ e: [_initProto] } = _apply_decs_2203_r(this, [
|
|
420
|
+
[
|
|
421
|
+
_dec,
|
|
422
|
+
2,
|
|
423
|
+
"sendBatchRequest"
|
|
424
|
+
],
|
|
425
|
+
[
|
|
426
|
+
_dec1,
|
|
427
|
+
2,
|
|
428
|
+
"sendRequestToPeer"
|
|
429
|
+
],
|
|
430
|
+
[
|
|
431
|
+
_dec2,
|
|
432
|
+
2,
|
|
433
|
+
"streamHandler"
|
|
434
|
+
]
|
|
435
|
+
], []));
|
|
436
|
+
}
|
|
41
437
|
individualRequestTimeoutMs;
|
|
42
438
|
dialTimeoutMs;
|
|
43
|
-
// Warning, if the `start` function is not called as the parent class constructor, then the default sub protocol handlers will be used ( not good )
|
|
44
439
|
subProtocolHandlers;
|
|
45
440
|
subProtocolValidators;
|
|
46
441
|
connectionSampler;
|
|
@@ -51,10 +446,10 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
51
446
|
this.libp2p = libp2p;
|
|
52
447
|
this.peerScoring = peerScoring;
|
|
53
448
|
this.logger = logger;
|
|
54
|
-
this.individualRequestTimeoutMs = DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS;
|
|
449
|
+
this.individualRequestTimeoutMs = (_initProto(this), DEFAULT_INDIVIDUAL_REQUEST_TIMEOUT_MS);
|
|
55
450
|
this.dialTimeoutMs = DEFAULT_REQRESP_DIAL_TIMEOUT_MS;
|
|
56
|
-
this.subProtocolHandlers =
|
|
57
|
-
this.subProtocolValidators =
|
|
451
|
+
this.subProtocolHandlers = {};
|
|
452
|
+
this.subProtocolValidators = {};
|
|
58
453
|
this.updateConfig(config);
|
|
59
454
|
this.rateLimiter = new RequestResponseRateLimiter(peerScoring, rateLimits);
|
|
60
455
|
// Connection sampler is used to sample our connected peers
|
|
@@ -76,10 +471,11 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
76
471
|
/**
|
|
77
472
|
* Start the reqresp service
|
|
78
473
|
*/ async start(subProtocolHandlers, subProtocolValidators) {
|
|
79
|
-
this.subProtocolHandlers
|
|
80
|
-
this.subProtocolValidators
|
|
474
|
+
Object.assign(this.subProtocolHandlers, subProtocolHandlers);
|
|
475
|
+
Object.assign(this.subProtocolValidators, subProtocolValidators);
|
|
81
476
|
// Register all protocol handlers
|
|
82
|
-
for (const subProtocol of Object.keys(
|
|
477
|
+
for (const subProtocol of Object.keys(subProtocolHandlers)){
|
|
478
|
+
this.logger.debug(`Registering handler for sub protocol ${subProtocol}`);
|
|
83
479
|
await this.libp2p.handle(subProtocol, (data)=>void this.streamHandler(subProtocol, data).catch((err)=>this.logger.error(`Error on libp2p subprotocol ${subProtocol} handler`, err)));
|
|
84
480
|
}
|
|
85
481
|
this.rateLimiter.start();
|
|
@@ -87,6 +483,7 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
87
483
|
async addSubProtocol(subProtocol, handler, validator = DEFAULT_SUB_PROTOCOL_VALIDATORS[subProtocol]) {
|
|
88
484
|
this.subProtocolHandlers[subProtocol] = handler;
|
|
89
485
|
this.subProtocolValidators[subProtocol] = validator;
|
|
486
|
+
this.logger.debug(`Registering handler for sub protocol ${subProtocol}`);
|
|
90
487
|
await this.libp2p.handle(subProtocol, (data)=>void this.streamHandler(subProtocol, data).catch((err)=>this.logger.error(`Error on libp2p subprotocol ${subProtocol} handler`, err)));
|
|
91
488
|
}
|
|
92
489
|
/**
|
|
@@ -128,7 +525,7 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
128
525
|
*
|
|
129
526
|
* @throws {CollectiveReqRespTimeoutError} - If the request batch exceeds the specified timeout (`timeoutMs`).
|
|
130
527
|
*/ async sendBatchRequest(subProtocol, requests, pinnedPeer, timeoutMs = 10000, maxPeers = Math.max(10, Math.ceil(requests.length / 3)), maxRetryAttempts = 3) {
|
|
131
|
-
const responseValidator = this.subProtocolValidators[subProtocol];
|
|
528
|
+
const responseValidator = this.subProtocolValidators[subProtocol] ?? DEFAULT_SUB_PROTOCOL_VALIDATORS[subProtocol];
|
|
132
529
|
const responses = new Array(requests.length);
|
|
133
530
|
const requestBuffers = requests.map((req)=>req.toBuffer());
|
|
134
531
|
const requestFunction = async (signal)=>{
|
|
@@ -361,7 +758,7 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
361
758
|
}
|
|
362
759
|
}
|
|
363
760
|
const messageData = Buffer.concat(chunks);
|
|
364
|
-
const message = this.snappyTransform.
|
|
761
|
+
const message = this.snappyTransform.inboundTransformData(messageData);
|
|
365
762
|
return {
|
|
366
763
|
status: status ?? ReqRespStatus.UNKNOWN,
|
|
367
764
|
data: message
|
|
@@ -445,6 +842,9 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
445
842
|
*
|
|
446
843
|
* */ async processStream(protocol, { stream, connection }) {
|
|
447
844
|
const handler = this.subProtocolHandlers[protocol];
|
|
845
|
+
if (!handler) {
|
|
846
|
+
throw new Error(`No handler defined for reqresp subprotocol ${protocol}`);
|
|
847
|
+
}
|
|
448
848
|
const snappy = this.snappyTransform;
|
|
449
849
|
const SUCCESS = Uint8Array.of(ReqRespStatus.SUCCESS);
|
|
450
850
|
await pipeline(stream.source, async function*(source) {
|
|
@@ -458,7 +858,7 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
458
858
|
}
|
|
459
859
|
stream.metadata.written = true; // Mark the stream as written to;
|
|
460
860
|
yield SUCCESS;
|
|
461
|
-
yield snappy.
|
|
861
|
+
yield snappy.outboundTransformData(response);
|
|
462
862
|
}
|
|
463
863
|
}, stream.sink);
|
|
464
864
|
}
|
|
@@ -583,21 +983,3 @@ import { ReqRespStatus, ReqRespStatusError, parseStatusChunk, prettyPrintReqResp
|
|
|
583
983
|
return PeerErrorSeverity.HighToleranceError;
|
|
584
984
|
}
|
|
585
985
|
}
|
|
586
|
-
_ts_decorate([
|
|
587
|
-
trackSpan('ReqResp.sendBatchRequest', (subProtocol, requests)=>({
|
|
588
|
-
[Attributes.P2P_REQ_RESP_PROTOCOL]: subProtocol,
|
|
589
|
-
[Attributes.P2P_REQ_RESP_BATCH_REQUESTS_COUNT]: requests.length
|
|
590
|
-
}))
|
|
591
|
-
], ReqResp.prototype, "sendBatchRequest", null);
|
|
592
|
-
_ts_decorate([
|
|
593
|
-
trackSpan('ReqResp.sendRequestToPeer', (peerId, subProtocol, _)=>({
|
|
594
|
-
[Attributes.P2P_ID]: peerId.toString(),
|
|
595
|
-
[Attributes.P2P_REQ_RESP_PROTOCOL]: subProtocol
|
|
596
|
-
}))
|
|
597
|
-
], ReqResp.prototype, "sendRequestToPeer", null);
|
|
598
|
-
_ts_decorate([
|
|
599
|
-
trackSpan('ReqResp.streamHandler', (protocol, { connection })=>({
|
|
600
|
-
[Attributes.P2P_REQ_RESP_PROTOCOL]: protocol,
|
|
601
|
-
[Attributes.P2P_ID]: connection.remotePeer.toString()
|
|
602
|
-
}))
|
|
603
|
-
], ReqResp.prototype, "streamHandler", null);
|
|
@@ -33,5 +33,5 @@ export declare function parseStatusChunk(chunk: Uint8Array): ReqRespStatus;
|
|
|
33
33
|
* @param status
|
|
34
34
|
* @returns
|
|
35
35
|
*/
|
|
36
|
-
export declare function prettyPrintReqRespStatus(status: ReqRespStatus): "
|
|
37
|
-
//# sourceMappingURL=
|
|
36
|
+
export declare function prettyPrintReqRespStatus(status: ReqRespStatus): "BADLY_FORMED_REQUEST" | "FAILURE" | "INTERNAL_ERROR" | "RATE_LIMIT_EXCEEDED" | "SUCCESS" | "UNKNOWN" | undefined;
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmVxcmVzcC9zdGF0dXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxvQkFBWSxhQUFhO0lBQ3ZCLE9BQU8sSUFBSTtJQUNYLG1CQUFtQixJQUFJO0lBQ3ZCLG9CQUFvQixJQUFJO0lBQ3hCLGNBQWMsSUFBSTtJQUNsQixTQUFTLElBQUk7SUFDYixPQUFPLE1BQU07SUFDYixPQUFPLE1BQU07Q0FDZDtBQUVELE1BQU0sTUFBTSx5QkFBeUIsR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV0RixxQkFBYSxrQkFBbUIsU0FBUSxLQUFLO0lBQzNDOztPQUVHO0lBQ0gsUUFBUSxDQUFDLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQztJQUUzQyxZQUFZLE1BQU0sRUFBRSx5QkFBeUIsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUFFLEtBQUssQ0FBQyxFQUFFLEtBQUssQ0FBQTtLQUFFLEVBR3ZFO0NBQ0Y7QUFFRDs7Ozs7O0dBTUc7QUFDSCx3QkFBZ0IsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxhQUFhLENBV2pFO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQix3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsYUFBYSxxSEFlN0QifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,aAAa;IACvB,OAAO,IAAI;IACX,mBAAmB,IAAI;IACvB,oBAAoB,IAAI;IACxB,cAAc,IAAI;IAClB,SAAS,IAAI;IACb,OAAO,MAAM;IACb,OAAO,MAAM;CACd;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;AAEtF,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/services/reqresp/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,aAAa;IACvB,OAAO,IAAI;IACX,mBAAmB,IAAI;IACvB,oBAAoB,IAAI;IACxB,cAAc,IAAI;IAClB,SAAS,IAAI;IACb,OAAO,MAAM;IACb,OAAO,MAAM;CACd;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;AAEtF,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,yBAAyB,CAAC;IAE3C,YAAY,MAAM,EAAE,yBAAyB,EAAE,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,EAGvE;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,CAWjE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,aAAa,qHAe7D"}
|
|
@@ -2,8 +2,8 @@ import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
|
2
2
|
import type { PeerInfo } from '@aztec/stdlib/interfaces/server';
|
|
3
3
|
import type { BlockAttestation, BlockProposal, Gossipable } from '@aztec/stdlib/p2p';
|
|
4
4
|
import type { Tx } from '@aztec/stdlib/tx';
|
|
5
|
-
import type { ENR } from '@chainsafe/enr';
|
|
6
5
|
import type { PeerId } from '@libp2p/interface';
|
|
6
|
+
import type { ENR } from '@nethermindeth/enr';
|
|
7
7
|
import type EventEmitter from 'events';
|
|
8
8
|
import type { P2PReqRespConfig } from './reqresp/config.js';
|
|
9
9
|
import type { StatusMessage } from './reqresp/index.js';
|
|
@@ -88,4 +88,4 @@ export interface PeerDiscoveryService extends EventEmitter {
|
|
|
88
88
|
getEnr(): ENR | undefined;
|
|
89
89
|
bootstrapNodeEnrs: ENR[];
|
|
90
90
|
}
|
|
91
|
-
//# sourceMappingURL=
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JGLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRXZDLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQ1Ysa0JBQWtCLEVBQ2xCLHlCQUF5QixFQUN6Qiw0QkFBNEIsRUFDNUIsY0FBYyxFQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdFLG9CQUFZLGtCQUFrQjtJQUM1QixPQUFPLFlBQVk7SUFDbkIsT0FBTyxZQUFZO0NBQ3BCO0FBRUQsTUFBTSxNQUFNLHdCQUF3QixHQUFHLENBQ3JDLEtBQUssRUFBRSxhQUFhLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEtBQ1gsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsU0FBUyxDQUFDLENBQUM7QUFFN0MsTUFBTSxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxLQUFLLE9BQU8sQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUM7QUFFbkg7O0dBRUc7QUFDSCxNQUFNLFdBQVcsVUFBVTtJQUN6Qjs7O09BR0c7SUFDSCxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZCOzs7T0FHRztJQUNILElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFdEI7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLENBQUMsU0FBUyxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0Q7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQUMsUUFBUSxTQUFTLGtCQUFrQixFQUNsRCxRQUFRLEVBQUUsUUFBUSxFQUNsQixRQUFRLEVBQUUsWUFBWSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQzdELFlBQVksQ0FBQyxFQUFFLE1BQU0sRUFDckIsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUNsQixRQUFRLENBQUMsRUFBRSxNQUFNLEVBQ2pCLGdCQUFnQixDQUFDLEVBQUUsTUFBTSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUdqRSw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO0lBRXhFLE1BQU0sSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDO0lBRTFCLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLEdBQUcsUUFBUSxFQUFFLENBQUM7SUFFL0MsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbkMscUJBQXFCLENBQ25CLFdBQVcsRUFBRSxrQkFBa0IsRUFDL0IsT0FBTyxFQUFFLHlCQUF5QixFQUNsQyxTQUFTLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxrQkFBa0IsQ0FBQyxHQUMzRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakIseUJBQXlCLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUU1RixZQUFZLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUV0RCw0RkFBNEY7SUFDNUYsOEJBQThCLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQztDQUM3RDtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLG9CQUFxQixTQUFRLFlBQVk7SUFDeEQ7O1NBRUs7SUFDTCxLQUFLLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXZCOztTQUVLO0lBQ0wsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV0Qjs7O09BR0c7SUFDSCxZQUFZLElBQUksR0FBRyxFQUFFLENBQUM7SUFFdEI7O09BRUc7SUFDSCxtQkFBbUIsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckM7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUV6Qzs7T0FFRztJQUNILEVBQUUsQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBSyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2pFLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUM7SUFFbEQsU0FBUyxJQUFJLGtCQUFrQixDQUFDO0lBRWhDLE1BQU0sSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDO0lBRTFCLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxDQUFDO0NBQzFCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,YAAY,MAAM,QAAQ,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE7E,oBAAY,kBAAkB;IAC5B,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,gBAAgB,EAAE,GAAG,SAAS,CAAC,CAAC;AAE7C,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;AAEnH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;OAGG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,CAAC,SAAS,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3D;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,SAAS,kBAAkB,EAClD,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAC7D,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IAGjE,6BAA6B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAExE,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;IAE1B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,QAAQ,EAAE,CAAC;IAE/C,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,qBAAqB,CACnB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,yBAAyB,EAClC,SAAS,CAAC,EAAE,4BAA4B,CAAC,kBAAkB,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,yBAAyB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE5F,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;IAEtD,4FAA4F;IAC5F,8BAA8B,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD;;SAEK;IACL,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;SAEK;IACL,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB;;;OAGG;IACH,YAAY,IAAI,GAAG,EAAE,CAAC;IAEtB;;OAEG;IACH,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IACjE,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;IAElD,SAAS,IAAI,kBAAkB,CAAC;IAEhC,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC;IAE1B,iBAAiB,EAAE,GAAG,EAAE,CAAC;CAC1B"}
|
|
@@ -22,4 +22,4 @@ export type TxCollectionConfig = {
|
|
|
22
22
|
txCollectionNodeRpcMaxBatchSize: number;
|
|
23
23
|
};
|
|
24
24
|
export declare const txCollectionConfigMappings: ConfigMappingsType<TxCollectionConfig>;
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssa0JBQWtCLEVBQTJDLE1BQU0sMEJBQTBCLENBQUM7QUFHNUcsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLG9FQUFvRTtJQUNwRSwyQ0FBMkMsRUFBRSxNQUFNLENBQUM7SUFDcEQsaURBQWlEO0lBQ2pELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxzQ0FBc0M7SUFDdEMsaUNBQWlDLEVBQUUsTUFBTSxDQUFDO0lBQzFDLHFFQUFxRTtJQUNyRSxnQ0FBZ0MsRUFBRSxNQUFNLENBQUM7SUFDekMsd0RBQXdEO0lBQ3hELCtCQUErQixFQUFFLE1BQU0sQ0FBQztJQUN4QyxnR0FBZ0c7SUFDaEcseUNBQXlDLEVBQUUsT0FBTyxDQUFDO0lBQ25ELDJGQUEyRjtJQUMzRiw4QkFBOEIsRUFBRSxNQUFNLENBQUM7SUFDdkMsNkVBQTZFO0lBQzdFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLG1GQUFtRjtJQUNuRiwwQ0FBMEMsRUFBRSxNQUFNLENBQUM7SUFDbkQsOEVBQThFO0lBQzlFLCtCQUErQixFQUFFLE1BQU0sQ0FBQztDQUN6QyxDQUFDO0FBRUYsZUFBTyxNQUFNLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDLGtCQUFrQixDQXlEN0UsQ0FBQyJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { booleanConfigHelper, numberConfigHelper } from '@aztec/foundation/config';
|
|
2
|
-
import { MAX_RPC_TXS_LEN } from '@aztec/stdlib/interfaces/
|
|
2
|
+
import { MAX_RPC_TXS_LEN } from '@aztec/stdlib/interfaces/api-limit';
|
|
3
3
|
export const txCollectionConfigMappings = {
|
|
4
4
|
txCollectionFastNodesTimeoutBeforeReqRespMs: {
|
|
5
5
|
env: 'TX_COLLECTION_FAST_NODES_TIMEOUT_BEFORE_REQ_RESP_MS',
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { type Logger } from '@aztec/foundation/log';
|
|
2
3
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
3
4
|
import type { BlockProposal } from '@aztec/stdlib/p2p';
|
|
@@ -28,12 +29,6 @@ export declare class FastTxCollection {
|
|
|
28
29
|
deadline: Date;
|
|
29
30
|
pinnedPeer?: PeerId;
|
|
30
31
|
}): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* Starts collecting txs from all configured nodes. We send `txCollectionFastMaxParallelRequestsPerNode` requests
|
|
33
|
-
* in parallel to each node. We keep track of the number of attempts made to collect each tx, so we can prioritize
|
|
34
|
-
* the txs that have been requested less often whenever we need to send a new batch of requests. We ensure that no
|
|
35
|
-
* tx is requested more than once at the same time to the same node.
|
|
36
|
-
*/
|
|
37
32
|
private collectFastFromNodes;
|
|
38
33
|
private collectFastFromNode;
|
|
39
34
|
private collectFastViaReqResp;
|
|
@@ -46,11 +41,11 @@ export declare class FastTxCollection {
|
|
|
46
41
|
* Stop collecting all txs for blocks less than or requal to the block number specified.
|
|
47
42
|
* To be called when we no longer care about gathering txs up to a certain block, eg when they become proven or finalized.
|
|
48
43
|
*/
|
|
49
|
-
stopCollectingForBlocksUpTo(blockNumber:
|
|
44
|
+
stopCollectingForBlocksUpTo(blockNumber: BlockNumber): void;
|
|
50
45
|
/**
|
|
51
46
|
* Stop collecting all txs for blocks greater than the block number specified.
|
|
52
47
|
* To be called when there is a chain prune and previously mined txs are no longer relevant.
|
|
53
48
|
*/
|
|
54
|
-
stopCollectingForBlocksAfter(blockNumber:
|
|
49
|
+
stopCollectingForBlocksAfter(blockNumber: BlockNumber): void;
|
|
55
50
|
}
|
|
56
|
-
//# sourceMappingURL=
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFzdF90eF9jb2xsZWN0aW9uLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvdHhfY29sbGVjdGlvbi9mYXN0X3R4X2NvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUlsRSxPQUFPLEVBQUUsWUFBWSxFQUFXLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3RELE9BQU8sS0FBSyxFQUFFLHFCQUFxQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxxQkFBYSxnQkFBZ0I7SUFLekIsT0FBTyxDQUFDLE9BQU87SUFDZixPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsWUFBWTtJQUNwQixPQUFPLENBQUMsR0FBRztJQVJiLFNBQVMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQWE7SUFFM0QsWUFDVSxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDLEVBQ25ELEtBQUssRUFBRSxRQUFRLEVBQUUsRUFDakIsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLE1BQU0sRUFBRSxrQkFBa0IsRUFDMUIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLEdBQUcsR0FBRSxNQUFrRCxFQUM3RDtJQUVTLElBQUksa0JBR2hCO0lBRU0seUJBQXlCLCtCQUUvQjtJQUVZLGNBQWMsQ0FDekIsS0FBSyxFQUFFLDBCQUEwQixFQUNqQyxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQzdCLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkEwQzlDO0lBRUQsVUFBZ0IsV0FBVyxDQUN6QixPQUFPLEVBQUUscUJBQXFCLEVBQzlCLElBQUksRUFBRTtRQUFFLFFBQVEsQ0FBQyxFQUFFLGFBQWEsQ0FBQztRQUFDLFFBQVEsRUFBRSxJQUFJLENBQUM7UUFBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUE7S0FBRSxpQkErQ3hFO1lBUWEsb0JBQW9CO1lBWXBCLG1CQUFtQjtZQWlGbkIscUJBQXFCO0lBNkNuQzs7O09BR0c7SUFDSSxRQUFRLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxRQXdCeEI7SUFFRDs7O09BR0c7SUFDSSwyQkFBMkIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FPakU7SUFFRDs7O09BR0c7SUFDSSw0QkFBNEIsQ0FBQyxXQUFXLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FPbEU7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fast_tx_collection.d.ts","sourceRoot":"","sources":["../../../src/services/tx_collection/fast_tx_collection.ts"],"names":[],"mappings":"
|
|
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;AAEhD,OAAO,EAAE,KAAK,gBAAgB,EAAsB,MAAM,yBAAyB,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,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;IAKzB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;IARb,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAa;IAE3D,YACU,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,EACnD,KAAK,EAAE,QAAQ,EAAE,EACjB,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,GAAE,YAAiC,EAC/C,GAAG,GAAE,MAAkD,EAC7D;IAES,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;IA6CnC;;;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"}
|
|
@@ -42,7 +42,12 @@ export class FastTxCollection {
|
|
|
42
42
|
});
|
|
43
43
|
return [];
|
|
44
44
|
}
|
|
45
|
-
const blockInfo = input.type === 'proposal' ?
|
|
45
|
+
const blockInfo = input.type === 'proposal' ? {
|
|
46
|
+
...input.blockProposal.toBlockInfo(),
|
|
47
|
+
blockNumber: input.blockNumber
|
|
48
|
+
} : {
|
|
49
|
+
...input.block.toBlockInfo()
|
|
50
|
+
};
|
|
46
51
|
// This promise is used to await for the collection to finish during the main collectFast method.
|
|
47
52
|
// It gets resolved in `foundTxs` when all txs have been collected, or rejected if the request is aborted or hits the deadline.
|
|
48
53
|
const promise = promiseWithResolvers();
|