@aztec-labs/p2p 6.0.0-nightly.20260829
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/README.md +134 -0
- package/dest/bootstrap/bootstrap.d.ts +39 -0
- package/dest/bootstrap/bootstrap.d.ts.map +1 -0
- package/dest/bootstrap/bootstrap.js +152 -0
- package/dest/client/factory.d.ts +32 -0
- package/dest/client/factory.d.ts.map +1 -0
- package/dest/client/factory.js +125 -0
- package/dest/client/index.d.ts +4 -0
- package/dest/client/index.d.ts.map +1 -0
- package/dest/client/index.js +3 -0
- package/dest/client/interface.d.ts +223 -0
- package/dest/client/interface.d.ts.map +1 -0
- package/dest/client/interface.js +9 -0
- package/dest/client/p2p_client.d.ts +202 -0
- package/dest/client/p2p_client.d.ts.map +1 -0
- package/dest/client/p2p_client.js +1051 -0
- package/dest/config.d.ts +295 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +458 -0
- package/dest/enr/generate-enr.d.ts +17 -0
- package/dest/enr/generate-enr.d.ts.map +1 -0
- package/dest/enr/generate-enr.js +52 -0
- package/dest/enr/index.d.ts +2 -0
- package/dest/enr/index.d.ts.map +1 -0
- package/dest/enr/index.js +1 -0
- 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/p2p-service.error.d.ts +9 -0
- package/dest/errors/p2p-service.error.d.ts.map +1 -0
- package/dest/errors/p2p-service.error.js +10 -0
- package/dest/errors/reqresp.error.d.ts +21 -0
- package/dest/errors/reqresp.error.d.ts.map +1 -0
- package/dest/errors/reqresp.error.js +23 -0
- package/dest/errors/tx-pool.error.d.ts +8 -0
- package/dest/errors/tx-pool.error.d.ts.map +1 -0
- package/dest/errors/tx-pool.error.js +9 -0
- package/dest/index.d.ts +11 -0
- package/dest/index.d.ts.map +1 -0
- package/dest/index.js +9 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +194 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.js +521 -0
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +3 -0
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +745 -0
- package/dest/mem_pools/attestation_pool/index.d.ts +2 -0
- package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/index.js +1 -0
- package/dest/mem_pools/attestation_pool/mocks.d.ts +242 -0
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -0
- package/dest/mem_pools/attestation_pool/mocks.js +33 -0
- package/dest/mem_pools/index.d.ts +4 -0
- package/dest/mem_pools/index.d.ts.map +1 -0
- package/dest/mem_pools/index.js +1 -0
- package/dest/mem_pools/instrumentation.d.ts +41 -0
- package/dest/mem_pools/instrumentation.d.ts.map +1 -0
- package/dest/mem_pools/instrumentation.js +120 -0
- package/dest/mem_pools/interface.d.ts +10 -0
- package/dest/mem_pools/interface.d.ts.map +1 -0
- package/dest/mem_pools/interface.js +3 -0
- package/dest/mem_pools/tx_pool_v2/archive/index.d.ts +2 -0
- package/dest/mem_pools/tx_pool_v2/archive/index.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/archive/index.js +1 -0
- package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts +48 -0
- package/dest/mem_pools/tx_pool_v2/archive/tx_archive.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/archive/tx_archive.js +112 -0
- package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts +104 -0
- package/dest/mem_pools/tx_pool_v2/deleted_pool.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/deleted_pool.js +251 -0
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts +47 -0
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/eviction_manager.js +128 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts +17 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +94 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +19 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +99 -0
- package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts +11 -0
- package/dest/mem_pools/tx_pool_v2/eviction/index.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/index.js +12 -0
- package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts +16 -0
- package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.js +64 -0
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +180 -0
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.js +25 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts +15 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.js +64 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts +17 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +92 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +16 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +79 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +20 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +75 -0
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +15 -0
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +19 -0
- package/dest/mem_pools/tx_pool_v2/index.d.ts +6 -0
- package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/index.js +5 -0
- package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts +25 -0
- package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/instrumentation.js +67 -0
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +243 -0
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/interfaces.js +11 -0
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +137 -0
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_metadata.js +223 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts +26 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_bench_metrics.js +70 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +122 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +368 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +75 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.js +218 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +122 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +1039 -0
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +17 -0
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/attestation_validator.js +111 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +24 -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 +75 -0
- package/dest/msg_validators/attestation_validator/index.d.ts +3 -0
- package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/index.js +2 -0
- package/dest/msg_validators/index.d.ts +4 -0
- package/dest/msg_validators/index.d.ts.map +1 -0
- package/dest/msg_validators/index.js +3 -0
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +10 -0
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -0
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.js +36 -0
- package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +16 -0
- package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -0
- package/dest/msg_validators/proposal_validator/block_proposal_validator.js +14 -0
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +16 -0
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -0
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +26 -0
- package/dest/msg_validators/proposal_validator/index.d.ts +4 -0
- package/dest/msg_validators/proposal_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/proposal_validator/index.js +3 -0
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +40 -0
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
- package/dest/msg_validators/proposal_validator/proposal_validator.js +186 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +7 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +25 -0
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +4 -0
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/allowed_public_setup.js +31 -0
- 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/archive_cache.d.ts +14 -0
- package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/archive_cache.js +22 -0
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +25 -0
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/block_header_validator.js +27 -0
- package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts +15 -0
- package/dest/msg_validators/tx_validator/cached_tx_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/cached_tx_validator.js +19 -0
- package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts +9 -0
- package/dest/msg_validators/tx_validator/contract_instance_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/contract_instance_validator.js +48 -0
- package/dest/msg_validators/tx_validator/data_validator.d.ts +9 -0
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/data_validator.js +114 -0
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +21 -0
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/double_spend_validator.js +36 -0
- package/dest/msg_validators/tx_validator/factory.d.ts +148 -0
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/factory.js +302 -0
- package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +10 -0
- package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/fee_payer_balance.js +24 -0
- package/dest/msg_validators/tx_validator/gas_limits_validator.d.ts +73 -0
- package/dest/msg_validators/tx_validator/gas_limits_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/gas_limits_validator.js +107 -0
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +65 -0
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/gas_validator.js +107 -0
- package/dest/msg_validators/tx_validator/index.d.ts +20 -0
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/index.js +19 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +15 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/metadata_validator.js +63 -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 +35 -0
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/phases_validator.js +141 -0
- package/dest/msg_validators/tx_validator/size_validator.d.ts +8 -0
- package/dest/msg_validators/tx_validator/size_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/size_validator.js +23 -0
- package/dest/msg_validators/tx_validator/test_utils.d.ts +17 -0
- package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/test_utils.js +22 -0
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +30 -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 +9 -0
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/tx_permitted_validator.js +24 -0
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +11 -0
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/tx_proof_validator.js +28 -0
- package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts +48 -0
- package/dest/msg_validators/tx_validator/tx_validation_cache.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/tx_validation_cache.js +68 -0
- package/dest/services/data_store.d.ts +27 -0
- package/dest/services/data_store.d.ts.map +1 -0
- package/dest/services/data_store.js +192 -0
- package/dest/services/discv5/discV5_service.d.ts +54 -0
- package/dest/services/discv5/discV5_service.d.ts.map +1 -0
- package/dest/services/discv5/discV5_service.js +337 -0
- package/dest/services/discv5/persisted_enr_store.d.ts +38 -0
- package/dest/services/discv5/persisted_enr_store.d.ts.map +1 -0
- package/dest/services/discv5/persisted_enr_store.js +145 -0
- package/dest/services/dummy_service.d.ts +150 -0
- package/dest/services/dummy_service.d.ts.map +1 -0
- package/dest/services/dummy_service.js +228 -0
- package/dest/services/encoding.d.ts +67 -0
- package/dest/services/encoding.d.ts.map +1 -0
- package/dest/services/encoding.js +152 -0
- package/dest/services/gossipsub/index.d.ts +3 -0
- package/dest/services/gossipsub/index.d.ts.map +1 -0
- package/dest/services/gossipsub/index.js +2 -0
- package/dest/services/gossipsub/scoring.d.ts +25 -0
- package/dest/services/gossipsub/scoring.d.ts.map +1 -0
- package/dest/services/gossipsub/scoring.js +27 -0
- package/dest/services/gossipsub/topic_score_params.d.ts +167 -0
- package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
- package/dest/services/gossipsub/topic_score_params.js +336 -0
- package/dest/services/index.d.ts +8 -0
- package/dest/services/index.d.ts.map +1 -0
- package/dest/services/index.js +7 -0
- package/dest/services/libp2p/instrumentation.d.ts +25 -0
- package/dest/services/libp2p/instrumentation.d.ts.map +1 -0
- package/dest/services/libp2p/instrumentation.js +143 -0
- package/dest/services/libp2p/libp2p_service.d.ts +250 -0
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -0
- package/dest/services/libp2p/libp2p_service.js +1983 -0
- package/dest/services/peer-manager/interface.d.ts +23 -0
- package/dest/services/peer-manager/interface.d.ts.map +1 -0
- package/dest/services/peer-manager/interface.js +1 -0
- package/dest/services/peer-manager/metrics.d.ts +23 -0
- package/dest/services/peer-manager/metrics.d.ts.map +1 -0
- package/dest/services/peer-manager/metrics.js +71 -0
- package/dest/services/peer-manager/peer_manager.d.ts +202 -0
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -0
- package/dest/services/peer-manager/peer_manager.js +1015 -0
- package/dest/services/peer-manager/peer_scoring.d.ts +65 -0
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -0
- package/dest/services/peer-manager/peer_scoring.js +239 -0
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts +44 -0
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.d.ts.map +1 -0
- package/dest/services/reqresp/batch-tx-requester/batch_tx_requester.js +534 -0
- package/dest/services/reqresp/batch-tx-requester/config.d.ts +17 -0
- package/dest/services/reqresp/batch-tx-requester/config.d.ts.map +1 -0
- package/dest/services/reqresp/batch-tx-requester/config.js +27 -0
- package/dest/services/reqresp/batch-tx-requester/interface.d.ts +50 -0
- package/dest/services/reqresp/batch-tx-requester/interface.d.ts.map +1 -0
- package/dest/services/reqresp/batch-tx-requester/interface.js +1 -0
- package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts +35 -0
- package/dest/services/reqresp/batch-tx-requester/missing_txs.d.ts.map +1 -0
- package/dest/services/reqresp/batch-tx-requester/missing_txs.js +136 -0
- package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts +62 -0
- package/dest/services/reqresp/batch-tx-requester/peer_collection.d.ts.map +1 -0
- package/dest/services/reqresp/batch-tx-requester/peer_collection.js +176 -0
- package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts +11 -0
- package/dest/services/reqresp/batch-tx-requester/tx_validator.d.ts.map +1 -0
- package/dest/services/reqresp/batch-tx-requester/tx_validator.js +7 -0
- package/dest/services/reqresp/config.d.ts +30 -0
- package/dest/services/reqresp/config.d.ts.map +1 -0
- package/dest/services/reqresp/config.js +45 -0
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +76 -0
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -0
- package/dest/services/reqresp/connection-sampler/connection_sampler.js +251 -0
- package/dest/services/reqresp/constants.d.ts +12 -0
- package/dest/services/reqresp/constants.d.ts.map +1 -0
- package/dest/services/reqresp/constants.js +7 -0
- package/dest/services/reqresp/index.d.ts +7 -0
- package/dest/services/reqresp/index.d.ts.map +1 -0
- package/dest/services/reqresp/index.js +5 -0
- package/dest/services/reqresp/interface.d.ts +174 -0
- package/dest/services/reqresp/interface.d.ts.map +1 -0
- package/dest/services/reqresp/interface.js +107 -0
- package/dest/services/reqresp/metrics.d.ts +16 -0
- package/dest/services/reqresp/metrics.d.ts.map +1 -0
- package/dest/services/reqresp/metrics.js +50 -0
- package/dest/services/reqresp/protocols/auth.d.ts +43 -0
- package/dest/services/reqresp/protocols/auth.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/auth.js +71 -0
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +35 -0
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block_txs/bitvector.js +88 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +13 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.js +60 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +75 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +139 -0
- package/dest/services/reqresp/protocols/block_txs/index.d.ts +4 -0
- package/dest/services/reqresp/protocols/block_txs/index.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block_txs/index.js +3 -0
- package/dest/services/reqresp/protocols/goodbye.d.ts +49 -0
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/goodbye.js +87 -0
- package/dest/services/reqresp/protocols/index.d.ts +10 -0
- package/dest/services/reqresp/protocols/index.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/index.js +8 -0
- package/dest/services/reqresp/protocols/ping.d.ts +7 -0
- package/dest/services/reqresp/protocols/ping.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/ping.js +7 -0
- package/dest/services/reqresp/protocols/status.d.ts +42 -0
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/status.js +78 -0
- package/dest/services/reqresp/protocols/tx.d.ts +29 -0
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/tx.js +66 -0
- package/dest/services/reqresp/rate-limiter/index.d.ts +2 -0
- package/dest/services/reqresp/rate-limiter/index.d.ts.map +1 -0
- package/dest/services/reqresp/rate-limiter/index.js +1 -0
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +105 -0
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -0
- package/dest/services/reqresp/rate-limiter/rate_limiter.js +194 -0
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +3 -0
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -0
- package/dest/services/reqresp/rate-limiter/rate_limits.js +64 -0
- package/dest/services/reqresp/reqresp.d.ts +107 -0
- package/dest/services/reqresp/reqresp.d.ts.map +1 -0
- package/dest/services/reqresp/reqresp.js +887 -0
- package/dest/services/reqresp/status.d.ts +37 -0
- package/dest/services/reqresp/status.d.ts.map +1 -0
- package/dest/services/reqresp/status.js +58 -0
- package/dest/services/service.d.ts +168 -0
- package/dest/services/service.d.ts.map +1 -0
- package/dest/services/service.js +5 -0
- package/dest/services/tx_collection/config.d.ts +25 -0
- package/dest/services/tx_collection/config.d.ts.map +1 -0
- package/dest/services/tx_collection/config.js +59 -0
- package/dest/services/tx_collection/file_store_tx_collection.d.ts +37 -0
- package/dest/services/tx_collection/file_store_tx_collection.d.ts.map +1 -0
- package/dest/services/tx_collection/file_store_tx_collection.js +127 -0
- package/dest/services/tx_collection/file_store_tx_source.d.ts +38 -0
- package/dest/services/tx_collection/file_store_tx_source.d.ts.map +1 -0
- package/dest/services/tx_collection/file_store_tx_source.js +100 -0
- package/dest/services/tx_collection/index.d.ts +4 -0
- package/dest/services/tx_collection/index.d.ts.map +1 -0
- package/dest/services/tx_collection/index.js +3 -0
- package/dest/services/tx_collection/instrumentation.d.ts +10 -0
- package/dest/services/tx_collection/instrumentation.d.ts.map +1 -0
- package/dest/services/tx_collection/instrumentation.js +30 -0
- package/dest/services/tx_collection/request_tracker.d.ts +53 -0
- package/dest/services/tx_collection/request_tracker.d.ts.map +1 -0
- package/dest/services/tx_collection/request_tracker.js +84 -0
- package/dest/services/tx_collection/tx_collection.d.ts +104 -0
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -0
- package/dest/services/tx_collection/tx_collection.js +356 -0
- package/dest/services/tx_collection/tx_collection_sink.d.ts +40 -0
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -0
- package/dest/services/tx_collection/tx_collection_sink.js +108 -0
- package/dest/services/tx_collection/tx_source.d.ts +24 -0
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -0
- package/dest/services/tx_collection/tx_source.js +56 -0
- package/dest/services/tx_file_store/config.d.ts +16 -0
- package/dest/services/tx_file_store/config.d.ts.map +1 -0
- package/dest/services/tx_file_store/config.js +22 -0
- package/dest/services/tx_file_store/index.d.ts +4 -0
- package/dest/services/tx_file_store/index.d.ts.map +1 -0
- package/dest/services/tx_file_store/index.js +3 -0
- package/dest/services/tx_file_store/instrumentation.d.ts +15 -0
- package/dest/services/tx_file_store/instrumentation.d.ts.map +1 -0
- package/dest/services/tx_file_store/instrumentation.js +29 -0
- package/dest/services/tx_file_store/tx_file_store.d.ts +46 -0
- package/dest/services/tx_file_store/tx_file_store.d.ts.map +1 -0
- package/dest/services/tx_file_store/tx_file_store.js +142 -0
- package/dest/services/tx_provider.d.ts +53 -0
- package/dest/services/tx_provider.d.ts.map +1 -0
- package/dest/services/tx_provider.js +223 -0
- package/dest/services/tx_provider_instrumentation.d.ts +16 -0
- package/dest/services/tx_provider_instrumentation.d.ts.map +1 -0
- package/dest/services/tx_provider_instrumentation.js +34 -0
- package/dest/test-helpers/generate-peer-id-private-keys.d.ts +7 -0
- package/dest/test-helpers/generate-peer-id-private-keys.d.ts.map +1 -0
- package/dest/test-helpers/generate-peer-id-private-keys.js +13 -0
- package/dest/test-helpers/get-ports.d.ts +7 -0
- package/dest/test-helpers/get-ports.d.ts.map +1 -0
- package/dest/test-helpers/get-ports.js +8 -0
- package/dest/test-helpers/index.d.ts +9 -0
- package/dest/test-helpers/index.d.ts.map +1 -0
- package/dest/test-helpers/index.js +8 -0
- package/dest/test-helpers/make-enrs.d.ts +16 -0
- package/dest/test-helpers/make-enrs.d.ts.map +1 -0
- package/dest/test-helpers/make-enrs.js +31 -0
- package/dest/test-helpers/make-test-p2p-clients.d.ts +63 -0
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -0
- package/dest/test-helpers/make-test-p2p-clients.js +140 -0
- package/dest/test-helpers/mock-pubsub.d.ts +109 -0
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -0
- package/dest/test-helpers/mock-pubsub.js +244 -0
- 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 +68 -0
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -0
- package/dest/test-helpers/reqresp-nodes.js +240 -0
- package/dest/test-helpers/test_tx_provider.d.ts +42 -0
- package/dest/test-helpers/test_tx_provider.d.ts.map +1 -0
- package/dest/test-helpers/test_tx_provider.js +44 -0
- package/dest/test-helpers/testbench-utils.d.ts +164 -0
- package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
- package/dest/test-helpers/testbench-utils.js +401 -0
- package/dest/testbench/p2p_client_testbench_worker.d.ts +26 -0
- package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -0
- package/dest/testbench/p2p_client_testbench_worker.js +364 -0
- package/dest/testbench/parse_log_file.d.ts +2 -0
- package/dest/testbench/parse_log_file.d.ts.map +1 -0
- package/dest/testbench/parse_log_file.js +131 -0
- package/dest/testbench/testbench.d.ts +2 -0
- package/dest/testbench/testbench.d.ts.map +1 -0
- package/dest/testbench/testbench.js +62 -0
- package/dest/testbench/worker_client_manager.d.ts +102 -0
- package/dest/testbench/worker_client_manager.d.ts.map +1 -0
- package/dest/testbench/worker_client_manager.js +492 -0
- package/dest/types/index.d.ts +34 -0
- package/dest/types/index.d.ts.map +1 -0
- package/dest/types/index.js +30 -0
- package/dest/util.d.ts +66 -0
- package/dest/util.d.ts.map +1 -0
- package/dest/util.js +167 -0
- package/dest/versioning.d.ts +9 -0
- package/dest/versioning.d.ts.map +1 -0
- package/dest/versioning.js +17 -0
- package/package.json +131 -0
- package/src/bootstrap/bootstrap.ts +178 -0
- package/src/client/factory.ts +282 -0
- package/src/client/index.ts +3 -0
- package/src/client/interface.ts +264 -0
- package/src/client/p2p_client.ts +846 -0
- package/src/client/test/p2p_client.batch_tx_requester.bench.README.md +197 -0
- package/src/config.ts +787 -0
- package/src/enr/generate-enr.ts +71 -0
- package/src/enr/index.ts +1 -0
- package/src/errors/attestation-pool.error.ts +13 -0
- package/src/errors/p2p-service.error.ts +11 -0
- package/src/errors/reqresp.error.ts +29 -0
- package/src/errors/tx-pool.error.ts +12 -0
- package/src/index.ts +11 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +648 -0
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +896 -0
- package/src/mem_pools/attestation_pool/index.ts +9 -0
- package/src/mem_pools/attestation_pool/mocks.ts +56 -0
- package/src/mem_pools/index.ts +3 -0
- package/src/mem_pools/instrumentation.ts +160 -0
- package/src/mem_pools/interface.ts +10 -0
- package/src/mem_pools/tx_pool_v2/README.md +283 -0
- package/src/mem_pools/tx_pool_v2/archive/index.ts +1 -0
- package/src/mem_pools/tx_pool_v2/archive/tx_archive.ts +130 -0
- package/src/mem_pools/tx_pool_v2/deleted_pool.ts +321 -0
- package/src/mem_pools/tx_pool_v2/eviction/eviction_manager.ts +160 -0
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +120 -0
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +126 -0
- package/src/mem_pools/tx_pool_v2/eviction/index.ts +28 -0
- package/src/mem_pools/tx_pool_v2/eviction/insufficient_fee_per_gas_eviction_rule.ts +67 -0
- package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +219 -0
- package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_mining_rule.ts +72 -0
- package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +99 -0
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +90 -0
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +99 -0
- package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +32 -0
- package/src/mem_pools/tx_pool_v2/index.ts +12 -0
- package/src/mem_pools/tx_pool_v2/instrumentation.ts +96 -0
- package/src/mem_pools/tx_pool_v2/interfaces.ts +274 -0
- package/src/mem_pools/tx_pool_v2/tx_metadata.ts +349 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_bench_metrics.ts +77 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +465 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +300 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1242 -0
- package/src/msg_validators/attestation_validator/README.md +49 -0
- package/src/msg_validators/attestation_validator/attestation_validator.ts +116 -0
- package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +107 -0
- package/src/msg_validators/attestation_validator/index.ts +2 -0
- package/src/msg_validators/index.ts +3 -0
- package/src/msg_validators/msg_seen_validator/msg_seen_validator.ts +36 -0
- package/src/msg_validators/proposal_validator/README.md +123 -0
- package/src/msg_validators/proposal_validator/block_proposal_validator.ts +37 -0
- package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +49 -0
- package/src/msg_validators/proposal_validator/index.ts +3 -0
- package/src/msg_validators/proposal_validator/proposal_validator.ts +198 -0
- package/src/msg_validators/tx_validator/README.md +137 -0
- package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +24 -0
- package/src/msg_validators/tx_validator/allowed_public_setup.ts +30 -0
- package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
- package/src/msg_validators/tx_validator/archive_cache.ts +28 -0
- package/src/msg_validators/tx_validator/block_header_validator.ts +38 -0
- package/src/msg_validators/tx_validator/cached_tx_validator.ts +31 -0
- package/src/msg_validators/tx_validator/contract_instance_validator.ts +56 -0
- package/src/msg_validators/tx_validator/data_validator.ts +173 -0
- package/src/msg_validators/tx_validator/double_spend_validator.ts +46 -0
- package/src/msg_validators/tx_validator/factory.ts +490 -0
- package/src/msg_validators/tx_validator/fee_payer_balance.ts +44 -0
- package/src/msg_validators/tx_validator/gas_limits_validator.ts +148 -0
- package/src/msg_validators/tx_validator/gas_validator.ts +149 -0
- package/src/msg_validators/tx_validator/index.ts +19 -0
- package/src/msg_validators/tx_validator/metadata_validator.ts +104 -0
- package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
- package/src/msg_validators/tx_validator/phases_validator.ts +173 -0
- package/src/msg_validators/tx_validator/size_validator.ts +22 -0
- package/src/msg_validators/tx_validator/test_utils.ts +43 -0
- package/src/msg_validators/tx_validator/timestamp_validator.ts +61 -0
- package/src/msg_validators/tx_validator/tx_permitted_validator.ts +22 -0
- package/src/msg_validators/tx_validator/tx_proof_validator.ts +26 -0
- package/src/msg_validators/tx_validator/tx_validation_cache.ts +100 -0
- package/src/services/data_store.ts +229 -0
- package/src/services/discv5/discV5_service.ts +413 -0
- package/src/services/discv5/persisted_enr_store.ts +157 -0
- package/src/services/dummy_service.ts +320 -0
- package/src/services/encoding.ts +170 -0
- package/src/services/gossipsub/README.md +663 -0
- package/src/services/gossipsub/index.ts +2 -0
- package/src/services/gossipsub/scoring.ts +37 -0
- package/src/services/gossipsub/topic_score_params.ts +477 -0
- package/src/services/index.ts +7 -0
- package/src/services/libp2p/instrumentation.ts +147 -0
- package/src/services/libp2p/libp2p_service.ts +1972 -0
- package/src/services/peer-manager/interface.ts +28 -0
- package/src/services/peer-manager/metrics.ts +90 -0
- package/src/services/peer-manager/peer_manager.ts +1221 -0
- package/src/services/peer-manager/peer_scoring.ts +265 -0
- package/src/services/reqresp/README.md +194 -0
- package/src/services/reqresp/batch-tx-requester/README.md +344 -0
- package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +659 -0
- package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
- package/src/services/reqresp/batch-tx-requester/interface.ts +60 -0
- package/src/services/reqresp/batch-tx-requester/missing_txs.ts +167 -0
- package/src/services/reqresp/batch-tx-requester/peer_collection.ts +248 -0
- package/src/services/reqresp/batch-tx-requester/tx_validator.ts +24 -0
- package/src/services/reqresp/config.ts +69 -0
- package/src/services/reqresp/connection-sampler/connection_sampler.ts +287 -0
- package/src/services/reqresp/constants.ts +14 -0
- package/src/services/reqresp/index.ts +6 -0
- package/src/services/reqresp/interface.ts +241 -0
- package/src/services/reqresp/metrics.ts +68 -0
- package/src/services/reqresp/protocols/auth.ts +83 -0
- package/src/services/reqresp/protocols/block_txs/bitvector.ts +107 -0
- package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +79 -0
- package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +170 -0
- package/src/services/reqresp/protocols/block_txs/index.ts +3 -0
- package/src/services/reqresp/protocols/goodbye.ts +102 -0
- package/src/services/reqresp/protocols/index.ts +9 -0
- package/src/services/reqresp/protocols/ping.ts +8 -0
- package/src/services/reqresp/protocols/status.ts +123 -0
- package/src/services/reqresp/protocols/tx.ts +76 -0
- package/src/services/reqresp/rate-limiter/index.ts +1 -0
- package/src/services/reqresp/rate-limiter/rate_limiter.ts +240 -0
- package/src/services/reqresp/rate-limiter/rate_limits.ts +65 -0
- package/src/services/reqresp/reqresp.ts +675 -0
- package/src/services/reqresp/status.ts +68 -0
- package/src/services/service.ts +219 -0
- package/src/services/tx_collection/config.ts +89 -0
- package/src/services/tx_collection/file_store_tx_collection.ts +153 -0
- package/src/services/tx_collection/file_store_tx_source.ts +129 -0
- package/src/services/tx_collection/index.ts +3 -0
- package/src/services/tx_collection/instrumentation.ts +35 -0
- package/src/services/tx_collection/request_tracker.ts +127 -0
- package/src/services/tx_collection/tx_collection.ts +467 -0
- package/src/services/tx_collection/tx_collection_sink.ts +124 -0
- package/src/services/tx_collection/tx_source.ts +61 -0
- package/src/services/tx_file_store/config.ts +37 -0
- package/src/services/tx_file_store/index.ts +3 -0
- package/src/services/tx_file_store/instrumentation.ts +42 -0
- package/src/services/tx_file_store/tx_file_store.ts +163 -0
- package/src/services/tx_provider.ts +237 -0
- package/src/services/tx_provider_instrumentation.ts +54 -0
- package/src/test-helpers/generate-peer-id-private-keys.ts +15 -0
- package/src/test-helpers/get-ports.ts +8 -0
- package/src/test-helpers/index.ts +8 -0
- package/src/test-helpers/make-enrs.ts +42 -0
- package/src/test-helpers/make-test-p2p-clients.ts +213 -0
- package/src/test-helpers/mock-pubsub.ts +325 -0
- package/src/test-helpers/mock-tx-helpers.ts +24 -0
- package/src/test-helpers/reqresp-nodes.ts +327 -0
- package/src/test-helpers/test_tx_provider.ts +68 -0
- package/src/test-helpers/testbench-utils.ts +465 -0
- package/src/testbench/README.md +20 -0
- package/src/testbench/p2p_client_testbench_worker.ts +553 -0
- package/src/testbench/parse_log_file.ts +174 -0
- package/src/testbench/testbench.ts +66 -0
- package/src/testbench/worker_client_manager.ts +621 -0
- package/src/types/index.ts +38 -0
- package/src/util.ts +230 -0
- package/src/versioning.ts +26 -0
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
import type { EpochCacheInterface } from '@aztec-labs/epoch-cache';
|
|
2
|
+
import { BlockNumber } from '@aztec-labs/foundation/branded-types';
|
|
3
|
+
import { type Logger, createLogger } from '@aztec-labs/foundation/log';
|
|
4
|
+
import { DateProvider } from '@aztec-labs/foundation/timer';
|
|
5
|
+
import type { AztecAsyncKVStore } from '@aztec-labs/kv-store';
|
|
6
|
+
import { AztecLMDBStoreV2, createStore } from '@aztec-labs/kv-store/lmdb-v2';
|
|
7
|
+
import type { BlockHash, L2BlockSource } from '@aztec-labs/stdlib/block';
|
|
8
|
+
import type { ChainConfig } from '@aztec-labs/stdlib/config';
|
|
9
|
+
import type { ContractDataSource } from '@aztec-labs/stdlib/contract';
|
|
10
|
+
import { type BlockMinFeesProvider, getNetworkTxGasLimits } from '@aztec-labs/stdlib/gas';
|
|
11
|
+
import type {
|
|
12
|
+
AztecNode,
|
|
13
|
+
ClientProtocolCircuitVerifier,
|
|
14
|
+
WorldStateSynchronizer,
|
|
15
|
+
} from '@aztec-labs/stdlib/interfaces/server';
|
|
16
|
+
import type { DataStoreConfig } from '@aztec-labs/stdlib/kv-store';
|
|
17
|
+
import { type TelemetryClient, getTelemetryClient } from '@aztec-labs/telemetry-client';
|
|
18
|
+
|
|
19
|
+
import { P2PClient } from '../client/p2p_client.js';
|
|
20
|
+
import type { P2PConfig } from '../config.js';
|
|
21
|
+
import { AttestationPool, type AttestationPoolApi } from '../mem_pools/attestation_pool/attestation_pool.js';
|
|
22
|
+
import type { MemPools } from '../mem_pools/interface.js';
|
|
23
|
+
import type { TxPoolV2 } from '../mem_pools/tx_pool_v2/interfaces.js';
|
|
24
|
+
import { AztecKVTxPoolV2 } from '../mem_pools/tx_pool_v2/tx_pool_v2.js';
|
|
25
|
+
import {
|
|
26
|
+
createCheckAllowedSetupCalls,
|
|
27
|
+
createTxValidatorForOnDemandReceivedTxs,
|
|
28
|
+
createTxValidatorForTransactionsEnteringPendingTxPool,
|
|
29
|
+
getDefaultAllowedSetupFunctions,
|
|
30
|
+
} from '../msg_validators/index.js';
|
|
31
|
+
import { TxValidationCache } from '../msg_validators/tx_validator/tx_validation_cache.js';
|
|
32
|
+
import { DummyP2PService } from '../services/dummy_service.js';
|
|
33
|
+
import { LibP2PService } from '../services/index.js';
|
|
34
|
+
import { createFileStoreTxSources } from '../services/tx_collection/file_store_tx_source.js';
|
|
35
|
+
import { TxCollection } from '../services/tx_collection/tx_collection.js';
|
|
36
|
+
import { NodeRpcTxSource, type TxSource, createNodeRpcTxSources } from '../services/tx_collection/tx_source.js';
|
|
37
|
+
import { TxFileStore } from '../services/tx_file_store/tx_file_store.js';
|
|
38
|
+
import { configureP2PClientAddresses, createLibP2PPeerIdFromPrivateKey, getPeerIdPrivateKey } from '../util.js';
|
|
39
|
+
|
|
40
|
+
export type P2PClientDeps = {
|
|
41
|
+
txPool?: TxPoolV2;
|
|
42
|
+
store?: AztecAsyncKVStore;
|
|
43
|
+
attestationPool?: AttestationPoolApi;
|
|
44
|
+
logger?: Logger;
|
|
45
|
+
txCollectionNodeSources?: TxSource[];
|
|
46
|
+
rpcTxProviders?: AztecNode[];
|
|
47
|
+
p2pServiceFactory?: (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService>;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export const P2P_STORE_NAME = 'p2p';
|
|
51
|
+
export const P2P_ARCHIVE_STORE_NAME = 'p2p-archive';
|
|
52
|
+
export const P2P_PEER_STORE_NAME = 'p2p-peers';
|
|
53
|
+
export const P2P_ATTESTATION_STORE_NAME = 'p2p-attestation';
|
|
54
|
+
|
|
55
|
+
export async function createP2PClient(
|
|
56
|
+
inputConfig: P2PConfig & DataStoreConfig & ChainConfig,
|
|
57
|
+
archiver: L2BlockSource & ContractDataSource,
|
|
58
|
+
proofVerifier: ClientProtocolCircuitVerifier,
|
|
59
|
+
worldStateSynchronizer: WorldStateSynchronizer,
|
|
60
|
+
epochCache: EpochCacheInterface,
|
|
61
|
+
blockMinFeesProvider: BlockMinFeesProvider,
|
|
62
|
+
packageVersion: string,
|
|
63
|
+
dateProvider: DateProvider = new DateProvider(),
|
|
64
|
+
telemetry: TelemetryClient = getTelemetryClient(),
|
|
65
|
+
deps: P2PClientDeps = {},
|
|
66
|
+
initialBlockHash: BlockHash,
|
|
67
|
+
) {
|
|
68
|
+
const config = await configureP2PClientAddresses({
|
|
69
|
+
...inputConfig,
|
|
70
|
+
dataStoreMapSizeKb: inputConfig.p2pStoreMapSizeKb ?? inputConfig.dataStoreMapSizeKb,
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
const logger = deps.logger ?? createLogger('p2p');
|
|
74
|
+
|
|
75
|
+
if (config.bootstrapNodes.length === 0) {
|
|
76
|
+
logger.warn(
|
|
77
|
+
'No bootstrap nodes have been provided. Set the BOOTSTRAP_NODES environment variable in order to join the P2P network',
|
|
78
|
+
);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const bindings = logger.getBindings();
|
|
82
|
+
// Schema version 4: L2 tips store resolves checkpoint tips from per-tip ids in l2_tip_checkpoints; the
|
|
83
|
+
// block->checkpoint mapping and checkpoint maps were dropped. Bumped to wipe stores whose tips predate
|
|
84
|
+
// per-tip ids, which would otherwise make getL2Tips throw on every read.
|
|
85
|
+
const store = deps.store ?? (await createStore(P2P_STORE_NAME, 4, config, bindings));
|
|
86
|
+
const archive = await createStore(P2P_ARCHIVE_STORE_NAME, 1, config, bindings);
|
|
87
|
+
const peerStore = await createStore(P2P_PEER_STORE_NAME, 1, config, bindings);
|
|
88
|
+
// Attestation store version 3: persisted proposal/attestation buffers embed the checkpoint header (which lost
|
|
89
|
+
// `inHash`) and the block-proposal wire format (which dropped its zeroed `inHash`), so pre-Fast-Inbox bytes no
|
|
90
|
+
// longer decode. Bumped to wipe stale pools; same no-migration policy as the archiver store.
|
|
91
|
+
const attestationStore = await createStore(P2P_ATTESTATION_STORE_NAME, 3, config, bindings);
|
|
92
|
+
const l1Constants = await archiver.getL1Constants();
|
|
93
|
+
|
|
94
|
+
const rollupAddress = inputConfig.rollupAddress.toString().toLowerCase().replace(/^0x/, '');
|
|
95
|
+
const txFileStoreBasePath = `aztec-${inputConfig.l1ChainId}-${inputConfig.rollupVersion}-0x${rollupAddress}`;
|
|
96
|
+
|
|
97
|
+
const allowedInSetup = [
|
|
98
|
+
...(await getDefaultAllowedSetupFunctions()),
|
|
99
|
+
...(inputConfig.txPublicSetupAllowListExtend ?? []),
|
|
100
|
+
];
|
|
101
|
+
const checkAllowedSetupCalls = createCheckAllowedSetupCalls(
|
|
102
|
+
archiver,
|
|
103
|
+
allowedInSetup,
|
|
104
|
+
() => epochCache.getEpochAndSlotInNextL1Slot().ts,
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
const txPool =
|
|
108
|
+
deps.txPool ??
|
|
109
|
+
new AztecKVTxPoolV2(
|
|
110
|
+
store,
|
|
111
|
+
archive,
|
|
112
|
+
{
|
|
113
|
+
l2BlockSource: archiver,
|
|
114
|
+
worldStateSynchronizer,
|
|
115
|
+
checkAllowedSetupCalls,
|
|
116
|
+
createTxValidator: async () => {
|
|
117
|
+
const currentBlockNumber = await archiver.getBlockNumber();
|
|
118
|
+
const { ts: nextSlotTimestamp } = epochCache.getEpochAndSlotInNextL1Slot();
|
|
119
|
+
const l1Constants = await archiver.getL1Constants();
|
|
120
|
+
const gasFees = await blockMinFeesProvider.getCurrentMinFees();
|
|
121
|
+
const networkTxGasLimits = getNetworkTxGasLimits(config, l1Constants);
|
|
122
|
+
return createTxValidatorForTransactionsEnteringPendingTxPool(
|
|
123
|
+
worldStateSynchronizer,
|
|
124
|
+
nextSlotTimestamp,
|
|
125
|
+
BlockNumber(currentBlockNumber + 1),
|
|
126
|
+
{
|
|
127
|
+
maxTxL2Gas: networkTxGasLimits.l2Gas,
|
|
128
|
+
maxTxDAGas: networkTxGasLimits.daGas,
|
|
129
|
+
},
|
|
130
|
+
gasFees,
|
|
131
|
+
);
|
|
132
|
+
},
|
|
133
|
+
blockMinFeesProvider,
|
|
134
|
+
},
|
|
135
|
+
telemetry,
|
|
136
|
+
{
|
|
137
|
+
maxPendingTxCount: config.maxPendingTxCount,
|
|
138
|
+
archivedTxLimit: config.archivedTxLimit,
|
|
139
|
+
minTxPoolAgeMs: config.minTxPoolAgeMs,
|
|
140
|
+
dropTransactionsProbability: config.dropTransactionsProbability,
|
|
141
|
+
priceBumpPercentage: config.priceBumpPercentage,
|
|
142
|
+
keepFinalizedTxsForSlots: config.keepFinalizedTxsForSlots,
|
|
143
|
+
},
|
|
144
|
+
dateProvider,
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
const mempools: MemPools = {
|
|
148
|
+
txPool,
|
|
149
|
+
attestationPool: deps.attestationPool ?? new AttestationPool(attestationStore, telemetry),
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
const txValidationCache =
|
|
153
|
+
config.txValidationCacheSize > 0 ? new TxValidationCache(config.txValidationCacheSize) : undefined;
|
|
154
|
+
|
|
155
|
+
const p2pService = await createP2PService(
|
|
156
|
+
config,
|
|
157
|
+
archiver,
|
|
158
|
+
proofVerifier,
|
|
159
|
+
worldStateSynchronizer,
|
|
160
|
+
epochCache,
|
|
161
|
+
blockMinFeesProvider,
|
|
162
|
+
store,
|
|
163
|
+
peerStore,
|
|
164
|
+
mempools,
|
|
165
|
+
deps.p2pServiceFactory,
|
|
166
|
+
packageVersion,
|
|
167
|
+
logger.createChild('libp2p_service'),
|
|
168
|
+
telemetry,
|
|
169
|
+
txValidationCache,
|
|
170
|
+
);
|
|
171
|
+
|
|
172
|
+
const txValidatorForTxCollection = createTxValidatorForOnDemandReceivedTxs(
|
|
173
|
+
proofVerifier,
|
|
174
|
+
config,
|
|
175
|
+
/*bindings=*/ undefined,
|
|
176
|
+
txValidationCache,
|
|
177
|
+
);
|
|
178
|
+
const nodeSources = [
|
|
179
|
+
...createNodeRpcTxSources(config.txCollectionNodeRpcUrls, txValidatorForTxCollection, config),
|
|
180
|
+
...(deps.rpcTxProviders ?? []).map(
|
|
181
|
+
(node, i) => new NodeRpcTxSource(node, txValidatorForTxCollection, `node-rpc-provider-${i}`),
|
|
182
|
+
),
|
|
183
|
+
...(deps.txCollectionNodeSources ?? []),
|
|
184
|
+
];
|
|
185
|
+
if (nodeSources.length > 0) {
|
|
186
|
+
logger.info(`Using ${nodeSources.length} node RPC sources for tx collection.`, {
|
|
187
|
+
nodes: nodeSources.map(n => n.getInfo()),
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
const fileStoreSources = await createFileStoreTxSources(
|
|
192
|
+
config.txCollectionFileStoreUrls,
|
|
193
|
+
txFileStoreBasePath,
|
|
194
|
+
txValidatorForTxCollection,
|
|
195
|
+
logger.createChild('file-store-tx-source'),
|
|
196
|
+
telemetry,
|
|
197
|
+
);
|
|
198
|
+
if (fileStoreSources.length > 0) {
|
|
199
|
+
logger.info(`Using ${fileStoreSources.length} file store sources for tx collection.`, {
|
|
200
|
+
stores: fileStoreSources.map(s => s.getInfo()),
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
const txCollection = new TxCollection(
|
|
205
|
+
p2pService.getBatchTxRequesterService(),
|
|
206
|
+
nodeSources,
|
|
207
|
+
l1Constants,
|
|
208
|
+
mempools.txPool,
|
|
209
|
+
config,
|
|
210
|
+
fileStoreSources,
|
|
211
|
+
dateProvider,
|
|
212
|
+
telemetry,
|
|
213
|
+
logger.createChild('tx-collection'),
|
|
214
|
+
);
|
|
215
|
+
|
|
216
|
+
const txFileStore = await TxFileStore.create(
|
|
217
|
+
mempools.txPool,
|
|
218
|
+
config,
|
|
219
|
+
txFileStoreBasePath,
|
|
220
|
+
logger.createChild('tx-file-store'),
|
|
221
|
+
telemetry,
|
|
222
|
+
);
|
|
223
|
+
|
|
224
|
+
return new P2PClient(
|
|
225
|
+
store,
|
|
226
|
+
archiver,
|
|
227
|
+
mempools,
|
|
228
|
+
p2pService,
|
|
229
|
+
txCollection,
|
|
230
|
+
txFileStore,
|
|
231
|
+
epochCache,
|
|
232
|
+
config,
|
|
233
|
+
dateProvider,
|
|
234
|
+
telemetry,
|
|
235
|
+
undefined,
|
|
236
|
+
initialBlockHash,
|
|
237
|
+
);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
async function createP2PService(
|
|
241
|
+
config: P2PConfig & DataStoreConfig,
|
|
242
|
+
archiver: L2BlockSource & ContractDataSource,
|
|
243
|
+
proofVerifier: ClientProtocolCircuitVerifier,
|
|
244
|
+
worldStateSynchronizer: WorldStateSynchronizer,
|
|
245
|
+
epochCache: EpochCacheInterface,
|
|
246
|
+
blockMinFeesProvider: BlockMinFeesProvider,
|
|
247
|
+
store: AztecAsyncKVStore,
|
|
248
|
+
peerStore: AztecLMDBStoreV2,
|
|
249
|
+
mempools: MemPools,
|
|
250
|
+
p2pServiceFactory: P2PClientDeps['p2pServiceFactory'],
|
|
251
|
+
packageVersion: string,
|
|
252
|
+
logger: Logger,
|
|
253
|
+
telemetry: TelemetryClient,
|
|
254
|
+
txValidationCache?: TxValidationCache,
|
|
255
|
+
) {
|
|
256
|
+
if (!config.p2pEnabled) {
|
|
257
|
+
logger.verbose('P2P is disabled. Using dummy P2P service.');
|
|
258
|
+
return new DummyP2PService();
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
logger.verbose('P2P is enabled. Using LibP2P service.');
|
|
262
|
+
|
|
263
|
+
// Create peer discovery service
|
|
264
|
+
const peerIdPrivateKey = await getPeerIdPrivateKey(config, store, logger);
|
|
265
|
+
const peerId = await createLibP2PPeerIdFromPrivateKey(peerIdPrivateKey.getValue());
|
|
266
|
+
|
|
267
|
+
const p2pService = await (p2pServiceFactory ?? LibP2PService.new)(config, peerId, {
|
|
268
|
+
packageVersion,
|
|
269
|
+
mempools,
|
|
270
|
+
l2BlockSource: archiver,
|
|
271
|
+
epochCache,
|
|
272
|
+
proofVerifier,
|
|
273
|
+
worldStateSynchronizer,
|
|
274
|
+
peerStore,
|
|
275
|
+
blockMinFeesProvider,
|
|
276
|
+
telemetry,
|
|
277
|
+
logger: logger.createChild(`libp2p_service`),
|
|
278
|
+
txValidationCache,
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
return p2pService;
|
|
282
|
+
}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import type { SlotNumber } from '@aztec-labs/foundation/branded-types';
|
|
2
|
+
import type { EthAddress, L2BlockId } from '@aztec-labs/stdlib/block';
|
|
3
|
+
import type { ITxProvider, P2PClient } from '@aztec-labs/stdlib/interfaces/server';
|
|
4
|
+
import type { BlockProposal, CheckpointAttestation, CheckpointProposal, TopicType } from '@aztec-labs/stdlib/p2p';
|
|
5
|
+
import type { BlockHeader, Tx, TxHash } from '@aztec-labs/stdlib/tx';
|
|
6
|
+
import type { PeerId } from '@libp2p/interface';
|
|
7
|
+
import type { ENR } from '@nethermindeth/enr';
|
|
8
|
+
|
|
9
|
+
import type { P2PConfig } from '../config.js';
|
|
10
|
+
import type { AuthRequest, StatusMessage } from '../services/index.js';
|
|
11
|
+
import type { ReqRespSubProtocol, ReqRespSubProtocolHandler } from '../services/reqresp/interface.js';
|
|
12
|
+
import type {
|
|
13
|
+
DuplicateAttestationInfo,
|
|
14
|
+
DuplicateProposalInfo,
|
|
15
|
+
OversizedProposalInfo,
|
|
16
|
+
P2PBlockReceivedCallback,
|
|
17
|
+
P2PCheckpointAttestationCallback,
|
|
18
|
+
P2PCheckpointReceivedCallback,
|
|
19
|
+
} from '../services/service.js';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Enum defining the possible states of the p2p client.
|
|
23
|
+
*/
|
|
24
|
+
export enum P2PClientState {
|
|
25
|
+
IDLE,
|
|
26
|
+
SYNCHING,
|
|
27
|
+
RUNNING,
|
|
28
|
+
STOPPED,
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* The synchronization status of the P2P client.
|
|
33
|
+
*/
|
|
34
|
+
export interface P2PSyncState {
|
|
35
|
+
/**
|
|
36
|
+
* The current state of the p2p client.
|
|
37
|
+
*/
|
|
38
|
+
state: P2PClientState;
|
|
39
|
+
/**
|
|
40
|
+
* The block number that the p2p client is synced to.
|
|
41
|
+
*/
|
|
42
|
+
syncedToL2Block: L2BlockId;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Interface of a P2P client.
|
|
47
|
+
**/
|
|
48
|
+
export type P2P = P2PClient & {
|
|
49
|
+
/**
|
|
50
|
+
* Broadcasts a block proposal to other peers.
|
|
51
|
+
*
|
|
52
|
+
* @param proposal - the block proposal
|
|
53
|
+
*/
|
|
54
|
+
broadcastProposal(proposal: BlockProposal): Promise<void>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Broadcasts a checkpoint proposal (last block in a checkpoint) to other peers.
|
|
58
|
+
*
|
|
59
|
+
* @param proposal - the checkpoint proposal
|
|
60
|
+
*/
|
|
61
|
+
broadcastCheckpointProposal(proposal: CheckpointProposal): Promise<void>;
|
|
62
|
+
|
|
63
|
+
/** Broadcasts checkpoint attestations to other peers. */
|
|
64
|
+
broadcastCheckpointAttestations(attestations: CheckpointAttestation[]): Promise<void>;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Registers a callback from the validator client that determines how to behave when
|
|
68
|
+
* foreign block proposals are received
|
|
69
|
+
*
|
|
70
|
+
* @param handler - A function taking a received block proposal and producing an attestation
|
|
71
|
+
*/
|
|
72
|
+
// REVIEW: https://github.com/AztecProtocol/aztec-packages/issues/7963
|
|
73
|
+
// ^ This pattern is not my favorite (md)
|
|
74
|
+
registerBlockProposalHandler(callback: P2PBlockReceivedCallback): void;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Registers a callback from the validator client that determines how to behave when
|
|
78
|
+
* foreign checkpoint proposals are received
|
|
79
|
+
*
|
|
80
|
+
* @param handler - A function taking a received checkpoint proposal and producing attestations
|
|
81
|
+
*/
|
|
82
|
+
registerValidatorCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Registers a callback that runs for ALL nodes (not just validators) when a checkpoint proposal is received.
|
|
86
|
+
* Used to set the proposed checkpoint number on the archiver so the sequencer can build on top of it.
|
|
87
|
+
*
|
|
88
|
+
* @param handler - A function taking a received checkpoint proposal
|
|
89
|
+
*/
|
|
90
|
+
registerAllNodesCheckpointProposalHandler(callback: P2PCheckpointReceivedCallback): void;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Registers a callback invoked when a duplicate proposal is detected (equivocation).
|
|
94
|
+
* The callback is triggered on the first duplicate (when count goes from 1 to 2).
|
|
95
|
+
*
|
|
96
|
+
* @param callback - Function called with info about the duplicate proposal
|
|
97
|
+
*/
|
|
98
|
+
registerDuplicateProposalCallback(callback: (info: DuplicateProposalInfo) => void): void;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Registers a callback invoked when an oversized block proposal (index at or beyond the consensus
|
|
102
|
+
* per-checkpoint block limit) is stored and re-broadcast as slashing evidence.
|
|
103
|
+
*
|
|
104
|
+
* @param callback - Function called with info about the oversized proposal
|
|
105
|
+
*/
|
|
106
|
+
registerOversizedProposalCallback(callback: (info: OversizedProposalInfo) => void): void;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Registers a callback invoked when a duplicate attestation is detected (equivocation).
|
|
110
|
+
* A validator signing attestations for different proposals at the same slot.
|
|
111
|
+
* The callback is triggered on the first duplicate (when count goes from 1 to 2).
|
|
112
|
+
*
|
|
113
|
+
* @param callback - Function called with info about the duplicate attestation
|
|
114
|
+
*/
|
|
115
|
+
registerDuplicateAttestationCallback(callback: (info: DuplicateAttestationInfo) => void): void;
|
|
116
|
+
|
|
117
|
+
/** Registers a callback invoked when a valid checkpoint attestation is accepted into the pool. */
|
|
118
|
+
registerCheckpointAttestationCallback(callback: P2PCheckpointAttestationCallback): void;
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Verifies the 'tx' and, if valid, adds it to local tx pool and forwards it to other peers.
|
|
122
|
+
* @param tx - The transaction.
|
|
123
|
+
**/
|
|
124
|
+
sendTx(tx: Tx): Promise<void>;
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Handles failed transaction execution by removing txs from the pool.
|
|
128
|
+
* @param txHashes - Hashes of the transactions that failed execution.
|
|
129
|
+
**/
|
|
130
|
+
handleFailedExecution(txHashes: TxHash[]): Promise<void>;
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Returns a transaction in the transaction pool by its hash.
|
|
134
|
+
* @param txHash - Hash of tx to return.
|
|
135
|
+
* @param opts - Set `includeProof: false` to skip loading the tx proof from the DB.
|
|
136
|
+
* @returns A single tx or undefined.
|
|
137
|
+
*/
|
|
138
|
+
getTxByHashFromPool(txHash: TxHash, opts?: { includeProof?: boolean }): Promise<Tx | undefined>;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Returns transactions in the transaction pool by hash.
|
|
142
|
+
* @param txHashes - Hashes of txs to return.
|
|
143
|
+
* @param opts - Set `includeProof: false` to skip loading tx proofs from the DB.
|
|
144
|
+
* @returns An array of txs or undefined.
|
|
145
|
+
*/
|
|
146
|
+
getTxsByHashFromPool(txHashes: TxHash[], opts?: { includeProof?: boolean }): Promise<(Tx | undefined)[]>;
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Checks if transactions exist in the pool
|
|
150
|
+
* @param txHashes - The hashes of the transactions to check for
|
|
151
|
+
* @returns True or False for each hash
|
|
152
|
+
*/
|
|
153
|
+
hasTxsInPool(txHashes: TxHash[]): Promise<boolean[]>;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Returns an archived transaction from the transaction pool by its hash.
|
|
157
|
+
* @param txHash - Hash of tx to return.
|
|
158
|
+
* @returns A single tx or undefined.
|
|
159
|
+
*/
|
|
160
|
+
getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Returns whether the given tx hash is flagged as pending, mined, or deleted.
|
|
164
|
+
* @param txHash - Hash of the tx to query.
|
|
165
|
+
* @returns Pending, mined, or deleted depending on its status, or undefined if not found.
|
|
166
|
+
*/
|
|
167
|
+
getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Returns an iterator over pending txs on the mempool.
|
|
171
|
+
* Set `includeProof: false` to skip loading tx proofs from the DB.
|
|
172
|
+
*/
|
|
173
|
+
iteratePendingTxs(opts?: { includeProof?: boolean }): AsyncIterableIterator<Tx>;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* Returns an iterator over pending txs that have been in the pool long enough to be eligible for block building.
|
|
177
|
+
* Set `includeProof: false` to skip loading tx proofs from the DB.
|
|
178
|
+
*/
|
|
179
|
+
iterateEligiblePendingTxs(opts?: { includeProof?: boolean }): AsyncIterableIterator<Tx>;
|
|
180
|
+
|
|
181
|
+
/** Returns the number of pending txs in the mempool. */
|
|
182
|
+
getPendingTxCount(): Promise<number>;
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Returns whether at least `minCount` pending txs have been in the pool long enough to be eligible for block
|
|
186
|
+
* building. Early-exits once the threshold is met instead of counting every eligible tx.
|
|
187
|
+
*/
|
|
188
|
+
hasEligiblePendingTxs(minCount: number): Promise<boolean>;
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Protects existing transactions by hash for a given slot.
|
|
192
|
+
* Returns hashes of transactions that weren't found in the pool.
|
|
193
|
+
* @param txHashes - Hashes of the transactions to protect.
|
|
194
|
+
* @param blockHeader - The block header providing slot context.
|
|
195
|
+
* @returns Hashes of transactions not found in the pool.
|
|
196
|
+
*/
|
|
197
|
+
protectTxs(txHashes: TxHash[], blockHeader: BlockHeader): Promise<TxHash[]>;
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Prepares the pool for a new slot.
|
|
201
|
+
* Unprotects transactions from earlier slots and validates them before
|
|
202
|
+
* returning to pending state.
|
|
203
|
+
* @param slotNumber - The slot number to prepare for
|
|
204
|
+
*/
|
|
205
|
+
prepareForSlot(slotNumber: SlotNumber): Promise<void>;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Starts the p2p client.
|
|
209
|
+
* @returns A promise signalling the completion of the block sync.
|
|
210
|
+
*/
|
|
211
|
+
start(): Promise<void>;
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Stops the p2p client.
|
|
215
|
+
* @returns A promise signalling the completion of the stop process.
|
|
216
|
+
*/
|
|
217
|
+
stop(): Promise<void>;
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Indicates if the p2p client is ready for transaction submission.
|
|
221
|
+
* @returns A boolean flag indicating readiness.
|
|
222
|
+
*/
|
|
223
|
+
isReady(): boolean;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Returns the current status of the p2p client.
|
|
227
|
+
*/
|
|
228
|
+
getStatus(): Promise<P2PSyncState>;
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Returns the ENR of this node, if any.
|
|
232
|
+
*/
|
|
233
|
+
getEnr(): ENR | undefined;
|
|
234
|
+
|
|
235
|
+
/** Identifies a p2p client. */
|
|
236
|
+
isP2PClient(): true;
|
|
237
|
+
|
|
238
|
+
/** Returns the tx provider used for fetching transactions. */
|
|
239
|
+
getTxProvider(): ITxProvider;
|
|
240
|
+
|
|
241
|
+
updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Validates a set of txs received in a block proposal.
|
|
245
|
+
* @throws InvalidBlockProposalTxsError - If any tx fails minimum integrity validation.
|
|
246
|
+
*/
|
|
247
|
+
validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
|
|
248
|
+
|
|
249
|
+
/** Clears the db. */
|
|
250
|
+
clear(): Promise<void>;
|
|
251
|
+
|
|
252
|
+
addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler): Promise<void>;
|
|
253
|
+
|
|
254
|
+
handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
|
|
255
|
+
|
|
256
|
+
/** Checks if any block proposals exist for the given slot. */
|
|
257
|
+
hasBlockProposalsForSlot(slot: SlotNumber): Promise<boolean>;
|
|
258
|
+
|
|
259
|
+
/** If node running this P2P stack is validator, passes in validator address to P2P layer */
|
|
260
|
+
registerThisValidatorAddresses(address: EthAddress[]): void;
|
|
261
|
+
|
|
262
|
+
/** Returns the number of peers in the GossipSub mesh for a given topic type. */
|
|
263
|
+
getGossipMeshPeerCount(topicType: TopicType): Promise<number>;
|
|
264
|
+
};
|