@aztec/p2p 0.0.0-test.1 → 0.0.1-commit.017a351
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 +129 -3
- package/dest/bootstrap/bootstrap.d.ts +4 -3
- package/dest/bootstrap/bootstrap.d.ts.map +1 -1
- package/dest/bootstrap/bootstrap.js +34 -13
- package/dest/client/factory.d.ts +23 -12
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +106 -26
- package/dest/client/index.d.ts +2 -1
- package/dest/client/index.d.ts.map +1 -1
- package/dest/client/index.js +1 -0
- package/dest/client/interface.d.ts +192 -0
- package/dest/client/interface.d.ts.map +1 -0
- package/dest/client/interface.js +9 -0
- package/dest/client/p2p_client.d.ts +97 -221
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +818 -289
- package/dest/config.d.ts +235 -133
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +295 -36
- package/dest/enr/generate-enr.d.ts +11 -3
- package/dest/enr/generate-enr.d.ts.map +1 -1
- package/dest/enr/generate-enr.js +27 -5
- 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/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 +1 -20
- package/dest/errors/reqresp.error.d.ts.map +1 -1
- package/dest/errors/reqresp.error.js +0 -21
- 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 +5 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +3 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +165 -30
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.js +511 -3
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +2 -2
- 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 +680 -173
- package/dest/mem_pools/attestation_pool/index.d.ts +2 -3
- package/dest/mem_pools/attestation_pool/index.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/index.js +1 -2
- package/dest/mem_pools/attestation_pool/mocks.d.ts +234 -11
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/mocks.js +21 -21
- package/dest/mem_pools/index.d.ts +3 -3
- package/dest/mem_pools/index.d.ts.map +1 -1
- package/dest/mem_pools/index.js +1 -1
- package/dest/mem_pools/instrumentation.d.ts +18 -12
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +74 -41
- package/dest/mem_pools/interface.d.ts +6 -7
- package/dest/mem_pools/interface.d.ts.map +1 -1
- 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 +39 -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 +97 -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 +97 -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 +62 -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 +65 -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 +93 -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 +78 -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 +15 -0
- package/dest/mem_pools/tx_pool_v2/instrumentation.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/instrumentation.js +43 -0
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +218 -0
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -0
- package/dest/mem_pools/tx_pool_v2/interfaces.js +10 -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 +108 -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 +337 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +62 -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 +167 -0
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +78 -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 +914 -0
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +14 -6
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +106 -12
- 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 +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/clock_tolerance.d.ts +32 -0
- package/dest/msg_validators/clock_tolerance.d.ts.map +1 -0
- package/dest/msg_validators/clock_tolerance.js +90 -0
- package/dest/msg_validators/index.d.ts +2 -2
- package/dest/msg_validators/index.d.ts.map +1 -1
- package/dest/msg_validators/index.js +1 -1
- 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 +15 -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 +15 -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 +20 -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 +26 -0
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -0
- package/dest/msg_validators/proposal_validator/proposal_validator.js +150 -0
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +4 -4
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +11 -18
- 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 +20 -6
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.js +7 -6
- 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 +4 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/data_validator.js +94 -87
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +15 -6
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.js +24 -29
- package/dest/msg_validators/tx_validator/factory.d.ts +149 -0
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/factory.js +275 -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_validator.d.ts +108 -0
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/gas_validator.js +194 -0
- package/dest/msg_validators/tx_validator/index.d.ts +13 -1
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.js +12 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +10 -5
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.js +40 -21
- 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 +4 -2
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.js +10 -7
- 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 +1 -1
- package/dest/services/data_store.d.ts.map +1 -1
- package/dest/services/data_store.js +14 -10
- package/dest/services/discv5/discV5_service.d.ts +11 -9
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.js +92 -38
- package/dest/services/dummy_service.d.ts +77 -18
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +139 -12
- package/dest/services/encoding.d.ts +30 -7
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +88 -12
- 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 +21 -3
- package/dest/services/gossipsub/scoring.d.ts.map +1 -1
- package/dest/services/gossipsub/scoring.js +24 -7
- package/dest/services/gossipsub/topic_score_params.d.ts +184 -0
- package/dest/services/gossipsub/topic_score_params.d.ts.map +1 -0
- package/dest/services/gossipsub/topic_score_params.js +363 -0
- package/dest/services/index.d.ts +6 -1
- package/dest/services/index.d.ts.map +1 -1
- package/dest/services/index.js +5 -0
- package/dest/services/libp2p/instrumentation.d.ts +22 -0
- package/dest/services/libp2p/instrumentation.d.ts.map +1 -0
- package/dest/services/libp2p/instrumentation.js +136 -0
- package/dest/services/libp2p/libp2p_service.d.ts +165 -111
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +1517 -379
- 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 +14 -3
- package/dest/services/peer-manager/metrics.d.ts.map +1 -1
- package/dest/services/peer-manager/metrics.js +50 -12
- package/dest/services/peer-manager/peer_manager.d.ts +108 -24
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +583 -85
- package/dest/services/peer-manager/peer_scoring.d.ts +12 -2
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_scoring.js +99 -13
- 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 +13 -11
- package/dest/services/reqresp/config.d.ts.map +1 -1
- package/dest/services/reqresp/config.js +18 -4
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +32 -17
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/connection_sampler.js +154 -84
- 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 +3 -2
- package/dest/services/reqresp/index.d.ts.map +1 -1
- package/dest/services/reqresp/index.js +2 -1
- package/dest/services/reqresp/interface.d.ts +88 -30
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/interface.js +61 -38
- package/dest/services/reqresp/metrics.d.ts +6 -5
- package/dest/services/reqresp/metrics.d.ts.map +1 -1
- package/dest/services/reqresp/metrics.js +16 -21
- 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 +3 -5
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/goodbye.js +7 -7
- package/dest/services/reqresp/protocols/index.d.ts +3 -2
- package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/index.js +2 -1
- package/dest/services/reqresp/protocols/ping.d.ts +1 -3
- package/dest/services/reqresp/protocols/ping.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/status.d.ts +40 -7
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/status.js +76 -5
- package/dest/services/reqresp/protocols/tx.d.ts +20 -4
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/tx.js +52 -6
- package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +10 -7
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.js +20 -10
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.js +16 -6
- package/dest/services/reqresp/reqresp.d.ts +32 -91
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +695 -355
- package/dest/services/reqresp/status.d.ts +10 -4
- package/dest/services/reqresp/status.d.ts.map +1 -1
- package/dest/services/reqresp/status.js +9 -2
- package/dest/services/service.d.ts +76 -23
- package/dest/services/service.d.ts.map +1 -1
- 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 +50 -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 +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 +4 -1
- package/dest/test-helpers/index.d.ts.map +1 -1
- package/dest/test-helpers/index.js +3 -0
- package/dest/test-helpers/make-enrs.d.ts +1 -1
- package/dest/test-helpers/make-enrs.d.ts.map +1 -1
- package/dest/test-helpers/make-enrs.js +4 -5
- package/dest/test-helpers/make-test-p2p-clients.d.ts +35 -8
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/make-test-p2p-clients.js +89 -17
- package/dest/test-helpers/mock-pubsub.d.ts +99 -0
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -0
- package/dest/test-helpers/mock-pubsub.js +231 -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 +17 -15
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +73 -40
- 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 +161 -0
- package/dest/test-helpers/testbench-utils.d.ts.map +1 -0
- package/dest/test-helpers/testbench-utils.js +391 -0
- package/dest/testbench/p2p_client_testbench_worker.d.ts +26 -2
- package/dest/testbench/p2p_client_testbench_worker.d.ts.map +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +310 -95
- package/dest/testbench/parse_log_file.d.ts +1 -1
- package/dest/testbench/parse_log_file.js +4 -4
- package/dest/testbench/testbench.d.ts +1 -1
- package/dest/testbench/testbench.js +4 -4
- package/dest/testbench/worker_client_manager.d.ts +57 -11
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/testbench/worker_client_manager.js +283 -58
- package/dest/types/index.d.ts +4 -2
- package/dest/types/index.d.ts.map +1 -1
- package/dest/types/index.js +2 -0
- package/dest/util.d.ts +33 -20
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +98 -71
- package/dest/versioning.d.ts +6 -9
- package/dest/versioning.d.ts.map +1 -1
- package/dest/versioning.js +9 -25
- package/package.json +33 -27
- package/src/bootstrap/bootstrap.ts +42 -15
- package/src/client/factory.ts +242 -60
- package/src/client/index.ts +1 -0
- package/src/client/interface.ts +239 -0
- package/src/client/p2p_client.ts +527 -460
- package/src/client/test/p2p_client.batch_tx_requester.bench.README.md +197 -0
- package/src/config.ts +518 -127
- package/src/enr/generate-enr.ts +39 -6
- package/src/errors/attestation-pool.error.ts +13 -0
- package/src/errors/p2p-service.error.ts +11 -0
- package/src/errors/reqresp.error.ts +0 -25
- package/src/errors/tx-pool.error.ts +12 -0
- package/src/index.ts +5 -1
- package/src/mem_pools/attestation_pool/attestation_pool.ts +605 -29
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +828 -201
- package/src/mem_pools/attestation_pool/index.ts +9 -2
- package/src/mem_pools/attestation_pool/mocks.ts +32 -19
- package/src/mem_pools/index.ts +2 -2
- package/src/mem_pools/instrumentation.ts +79 -47
- package/src/mem_pools/interface.ts +5 -7
- 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 +112 -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 +122 -0
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +125 -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 +65 -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 +74 -0
- package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +101 -0
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +91 -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 +69 -0
- package/src/mem_pools/tx_pool_v2/interfaces.ts +250 -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 +430 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +238 -0
- package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +1090 -0
- package/src/msg_validators/attestation_validator/README.md +49 -0
- package/src/msg_validators/attestation_validator/attestation_validator.ts +105 -15
- package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +101 -0
- package/src/msg_validators/attestation_validator/index.ts +1 -0
- package/src/msg_validators/clock_tolerance.ts +121 -0
- package/src/msg_validators/index.ts +1 -1
- 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 +30 -0
- package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +41 -0
- package/src/msg_validators/proposal_validator/index.ts +3 -0
- package/src/msg_validators/proposal_validator/proposal_validator.ts +159 -0
- package/src/msg_validators/tx_validator/README.md +127 -0
- package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +8 -17
- 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 +23 -10
- 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 +138 -71
- package/src/msg_validators/tx_validator/double_spend_validator.ts +31 -23
- package/src/msg_validators/tx_validator/factory.ts +478 -0
- package/src/msg_validators/tx_validator/fee_payer_balance.ts +44 -0
- package/src/msg_validators/tx_validator/gas_validator.ts +268 -0
- package/src/msg_validators/tx_validator/index.ts +12 -0
- package/src/msg_validators/tx_validator/metadata_validator.ts +80 -24
- 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 +57 -0
- package/src/msg_validators/tx_validator/tx_permitted_validator.ts +22 -0
- package/src/msg_validators/tx_validator/tx_proof_validator.ts +16 -8
- package/src/msg_validators/tx_validator/tx_validation_cache.ts +101 -0
- package/src/services/data_store.ts +14 -19
- package/src/services/discv5/discV5_service.ts +118 -39
- package/src/services/dummy_service.ts +196 -20
- package/src/services/encoding.ts +95 -11
- package/src/services/gossipsub/README.md +641 -0
- package/src/services/gossipsub/index.ts +2 -0
- package/src/services/gossipsub/scoring.ts +29 -5
- package/src/services/gossipsub/topic_score_params.ts +519 -0
- package/src/services/index.ts +5 -0
- package/src/services/libp2p/instrumentation.ts +140 -0
- package/src/services/libp2p/libp2p_service.ts +1373 -438
- package/src/services/peer-manager/interface.ts +29 -0
- package/src/services/peer-manager/metrics.ts +62 -12
- package/src/services/peer-manager/peer_manager.ts +695 -83
- package/src/services/peer-manager/peer_scoring.ts +96 -7
- package/src/services/reqresp/README.md +215 -0
- package/src/services/reqresp/batch-tx-requester/README.md +344 -0
- package/src/services/reqresp/batch-tx-requester/batch_tx_requester.ts +660 -0
- package/src/services/reqresp/batch-tx-requester/config.ts +40 -0
- package/src/services/reqresp/batch-tx-requester/interface.ts +61 -0
- package/src/services/reqresp/batch-tx-requester/missing_txs.ts +168 -0
- package/src/services/reqresp/batch-tx-requester/peer_collection.ts +249 -0
- package/src/services/reqresp/batch-tx-requester/tx_validator.ts +24 -0
- package/src/services/reqresp/config.ts +27 -10
- package/src/services/reqresp/connection-sampler/connection_sampler.ts +166 -95
- package/src/services/reqresp/constants.ts +14 -0
- package/src/services/reqresp/index.ts +2 -0
- package/src/services/reqresp/interface.ts +116 -59
- package/src/services/reqresp/metrics.ts +39 -28
- 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 +80 -0
- package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +171 -0
- package/src/services/reqresp/protocols/block_txs/index.ts +3 -0
- package/src/services/reqresp/protocols/goodbye.ts +9 -7
- package/src/services/reqresp/protocols/index.ts +2 -1
- package/src/services/reqresp/protocols/status.ts +121 -5
- package/src/services/reqresp/protocols/tx.ts +56 -8
- package/src/services/reqresp/rate-limiter/rate_limiter.ts +25 -12
- package/src/services/reqresp/rate-limiter/rate_limits.ts +16 -6
- package/src/services/reqresp/reqresp.ts +397 -422
- package/src/services/reqresp/status.ts +12 -3
- package/src/services/service.ts +104 -28
- 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 +468 -0
- package/src/services/tx_collection/tx_collection_sink.ts +125 -0
- package/src/services/tx_collection/tx_source.ts +57 -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 +36 -0
- package/src/services/tx_file_store/tx_file_store.ts +163 -0
- package/src/services/tx_provider.ts +238 -0
- package/src/services/tx_provider_instrumentation.ts +54 -0
- package/src/test-helpers/index.ts +3 -0
- package/src/test-helpers/make-enrs.ts +4 -5
- package/src/test-helpers/make-test-p2p-clients.ts +117 -26
- package/src/test-helpers/mock-pubsub.ts +311 -0
- package/src/test-helpers/mock-tx-helpers.ts +24 -0
- package/src/test-helpers/reqresp-nodes.ts +101 -62
- package/src/test-helpers/test_tx_provider.ts +69 -0
- package/src/test-helpers/testbench-utils.ts +453 -0
- package/src/testbench/p2p_client_testbench_worker.ts +477 -95
- package/src/testbench/parse_log_file.ts +4 -4
- package/src/testbench/testbench.ts +4 -4
- package/src/testbench/worker_client_manager.ts +366 -63
- package/src/types/index.ts +2 -0
- package/src/util.ts +128 -93
- package/src/versioning.ts +11 -34
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +0 -22
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +0 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +0 -112
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +0 -17
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +0 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +0 -129
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +0 -66
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +0 -245
- package/dest/mem_pools/tx_pool/index.d.ts +0 -4
- package/dest/mem_pools/tx_pool/index.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/index.js +0 -3
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +0 -56
- 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 -141
- package/dest/mem_pools/tx_pool/priority.d.ts +0 -8
- package/dest/mem_pools/tx_pool/priority.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/priority.js +0 -10
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +0 -66
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/tx_pool.js +0 -3
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +0 -7
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +0 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +0 -169
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +0 -8
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +0 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +0 -21
- package/dest/msg_validators/block_proposal_validator/index.d.ts +0 -2
- package/dest/msg_validators/block_proposal_validator/index.d.ts.map +0 -1
- package/dest/msg_validators/block_proposal_validator/index.js +0 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +0 -45
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +0 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +0 -88
- package/dest/services/reqresp/protocols/block.d.ts +0 -4
- package/dest/services/reqresp/protocols/block.d.ts.map +0 -1
- package/dest/services/reqresp/protocols/block.js +0 -8
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +0 -159
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +0 -161
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +0 -309
- package/src/mem_pools/tx_pool/index.ts +0 -3
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +0 -174
- package/src/mem_pools/tx_pool/priority.ts +0 -13
- package/src/mem_pools/tx_pool/tx_pool.ts +0 -76
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +0 -130
- package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +0 -29
- package/src/msg_validators/block_proposal_validator/index.ts +0 -1
- package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +0 -94
- package/src/services/reqresp/protocols/block.ts +0 -15
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { unfreeze } from '@aztec/foundation/types';
|
|
2
|
-
import { GasFees } from '@aztec/stdlib/gas';
|
|
3
|
-
import { mockTx } from '@aztec/stdlib/testing';
|
|
4
|
-
/**
|
|
5
|
-
* Tests a TxPool implementation.
|
|
6
|
-
* @param getTxPool - Gets a fresh TxPool
|
|
7
|
-
*/ export function describeTxPool(getTxPool) {
|
|
8
|
-
let pool;
|
|
9
|
-
beforeEach(()=>{
|
|
10
|
-
pool = getTxPool();
|
|
11
|
-
});
|
|
12
|
-
it('Adds txs to the pool as pending', async ()=>{
|
|
13
|
-
const tx1 = await mockTx();
|
|
14
|
-
await pool.addTxs([
|
|
15
|
-
tx1
|
|
16
|
-
]);
|
|
17
|
-
const poolTx = await pool.getTxByHash(await tx1.getTxHash());
|
|
18
|
-
expect(await poolTx.getTxHash()).toEqual(await tx1.getTxHash());
|
|
19
|
-
await expect(pool.getTxStatus(await tx1.getTxHash())).resolves.toEqual('pending');
|
|
20
|
-
await expect(pool.getPendingTxHashes()).resolves.toEqual([
|
|
21
|
-
await tx1.getTxHash()
|
|
22
|
-
]);
|
|
23
|
-
});
|
|
24
|
-
it('Removes txs from the pool', async ()=>{
|
|
25
|
-
const tx1 = await mockTx();
|
|
26
|
-
await pool.addTxs([
|
|
27
|
-
tx1
|
|
28
|
-
]);
|
|
29
|
-
await pool.deleteTxs([
|
|
30
|
-
await tx1.getTxHash()
|
|
31
|
-
]);
|
|
32
|
-
await expect(pool.getTxByHash(await tx1.getTxHash())).resolves.toBeFalsy();
|
|
33
|
-
await expect(pool.getTxStatus(await tx1.getTxHash())).resolves.toBeUndefined();
|
|
34
|
-
});
|
|
35
|
-
it('Marks txs as mined', async ()=>{
|
|
36
|
-
const tx1 = await mockTx(1);
|
|
37
|
-
const tx2 = await mockTx(2);
|
|
38
|
-
await pool.addTxs([
|
|
39
|
-
tx1,
|
|
40
|
-
tx2
|
|
41
|
-
]);
|
|
42
|
-
await pool.markAsMined([
|
|
43
|
-
await tx1.getTxHash()
|
|
44
|
-
], 1);
|
|
45
|
-
await expect(pool.getTxByHash(await tx1.getTxHash())).resolves.toEqual(tx1);
|
|
46
|
-
await expect(pool.getTxStatus(await tx1.getTxHash())).resolves.toEqual('mined');
|
|
47
|
-
await expect(pool.getMinedTxHashes()).resolves.toEqual([
|
|
48
|
-
[
|
|
49
|
-
await tx1.getTxHash(),
|
|
50
|
-
1
|
|
51
|
-
]
|
|
52
|
-
]);
|
|
53
|
-
await expect(pool.getPendingTxHashes()).resolves.toEqual([
|
|
54
|
-
await tx2.getTxHash()
|
|
55
|
-
]);
|
|
56
|
-
});
|
|
57
|
-
it('Marks txs as pending after being mined', async ()=>{
|
|
58
|
-
const tx1 = await mockTx(1);
|
|
59
|
-
const tx2 = await mockTx(2);
|
|
60
|
-
await pool.addTxs([
|
|
61
|
-
tx1,
|
|
62
|
-
tx2
|
|
63
|
-
]);
|
|
64
|
-
await pool.markAsMined([
|
|
65
|
-
await tx1.getTxHash()
|
|
66
|
-
], 1);
|
|
67
|
-
await pool.markMinedAsPending([
|
|
68
|
-
await tx1.getTxHash()
|
|
69
|
-
]);
|
|
70
|
-
await expect(pool.getMinedTxHashes()).resolves.toEqual([]);
|
|
71
|
-
const pending = await pool.getPendingTxHashes();
|
|
72
|
-
expect(pending).toHaveLength(2);
|
|
73
|
-
expect(pending).toEqual(expect.arrayContaining([
|
|
74
|
-
await tx1.getTxHash(),
|
|
75
|
-
await tx2.getTxHash()
|
|
76
|
-
]));
|
|
77
|
-
});
|
|
78
|
-
it('Only marks txs as pending if they are known', async ()=>{
|
|
79
|
-
const tx1 = await mockTx(1);
|
|
80
|
-
// simulate a situation where not all peers have all the txs
|
|
81
|
-
const tx2 = await mockTx(2);
|
|
82
|
-
const someTxHashThatThisPeerDidNotSee = await tx2.getTxHash();
|
|
83
|
-
await pool.addTxs([
|
|
84
|
-
tx1
|
|
85
|
-
]);
|
|
86
|
-
// this peer knows that tx2 was mined, but it does not have the tx object
|
|
87
|
-
await pool.markAsMined([
|
|
88
|
-
await tx1.getTxHash(),
|
|
89
|
-
someTxHashThatThisPeerDidNotSee
|
|
90
|
-
], 1);
|
|
91
|
-
expect(await pool.getMinedTxHashes()).toEqual(expect.arrayContaining([
|
|
92
|
-
[
|
|
93
|
-
await tx1.getTxHash(),
|
|
94
|
-
1
|
|
95
|
-
],
|
|
96
|
-
[
|
|
97
|
-
someTxHashThatThisPeerDidNotSee,
|
|
98
|
-
1
|
|
99
|
-
]
|
|
100
|
-
]));
|
|
101
|
-
// reorg: both txs should now become available again
|
|
102
|
-
await pool.markMinedAsPending([
|
|
103
|
-
await tx1.getTxHash(),
|
|
104
|
-
someTxHashThatThisPeerDidNotSee
|
|
105
|
-
]);
|
|
106
|
-
await expect(pool.getMinedTxHashes()).resolves.toEqual([]);
|
|
107
|
-
await expect(pool.getPendingTxHashes()).resolves.toEqual([
|
|
108
|
-
await tx1.getTxHash()
|
|
109
|
-
]); // tx2 is not in the pool
|
|
110
|
-
});
|
|
111
|
-
it('Returns all transactions in the pool', async ()=>{
|
|
112
|
-
const tx1 = await mockTx(1);
|
|
113
|
-
const tx2 = await mockTx(2);
|
|
114
|
-
const tx3 = await mockTx(3);
|
|
115
|
-
await pool.addTxs([
|
|
116
|
-
tx1,
|
|
117
|
-
tx2,
|
|
118
|
-
tx3
|
|
119
|
-
]);
|
|
120
|
-
const poolTxs = await pool.getAllTxs();
|
|
121
|
-
expect(poolTxs).toHaveLength(3);
|
|
122
|
-
expect(poolTxs).toEqual(expect.arrayContaining([
|
|
123
|
-
tx1,
|
|
124
|
-
tx2,
|
|
125
|
-
tx3
|
|
126
|
-
]));
|
|
127
|
-
});
|
|
128
|
-
it('Returns all txHashes in the pool', async ()=>{
|
|
129
|
-
const tx1 = await mockTx(1);
|
|
130
|
-
const tx2 = await mockTx(2);
|
|
131
|
-
const tx3 = await mockTx(3);
|
|
132
|
-
await pool.addTxs([
|
|
133
|
-
tx1,
|
|
134
|
-
tx2,
|
|
135
|
-
tx3
|
|
136
|
-
]);
|
|
137
|
-
const poolTxHashes = await pool.getAllTxHashes();
|
|
138
|
-
expect(poolTxHashes).toHaveLength(3);
|
|
139
|
-
expect(poolTxHashes).toEqual(expect.arrayContaining([
|
|
140
|
-
await tx1.getTxHash(),
|
|
141
|
-
await tx2.getTxHash(),
|
|
142
|
-
await tx3.getTxHash()
|
|
143
|
-
]));
|
|
144
|
-
});
|
|
145
|
-
it('Returns pending tx hashes sorted by priority', async ()=>{
|
|
146
|
-
const withPriorityFee = (tx, fee)=>{
|
|
147
|
-
unfreeze(tx.data.constants.txContext.gasSettings).maxPriorityFeesPerGas = new GasFees(fee, fee);
|
|
148
|
-
return tx;
|
|
149
|
-
};
|
|
150
|
-
const tx1 = withPriorityFee(await mockTx(0), 1000);
|
|
151
|
-
const tx2 = withPriorityFee(await mockTx(1), 100);
|
|
152
|
-
const tx3 = withPriorityFee(await mockTx(2), 200);
|
|
153
|
-
const tx4 = withPriorityFee(await mockTx(3), 3000);
|
|
154
|
-
await pool.addTxs([
|
|
155
|
-
tx1,
|
|
156
|
-
tx2,
|
|
157
|
-
tx3,
|
|
158
|
-
tx4
|
|
159
|
-
]);
|
|
160
|
-
const poolTxHashes = await pool.getPendingTxHashes();
|
|
161
|
-
expect(poolTxHashes).toHaveLength(4);
|
|
162
|
-
expect(poolTxHashes).toEqual(await Promise.all([
|
|
163
|
-
tx4,
|
|
164
|
-
tx1,
|
|
165
|
-
tx3,
|
|
166
|
-
tx2
|
|
167
|
-
].map((tx)=>tx.getTxHash())));
|
|
168
|
-
});
|
|
169
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { EpochCacheInterface } from '@aztec/epoch-cache';
|
|
2
|
-
import { type BlockProposal, type P2PValidator, PeerErrorSeverity } from '@aztec/stdlib/p2p';
|
|
3
|
-
export declare class BlockProposalValidator implements P2PValidator<BlockProposal> {
|
|
4
|
-
private epochCache;
|
|
5
|
-
constructor(epochCache: EpochCacheInterface);
|
|
6
|
-
validate(block: BlockProposal): Promise<PeerErrorSeverity | undefined>;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=block_proposal_validator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block_proposal_validator.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/block_proposal_validator/block_proposal_validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7F,qBAAa,sBAAuB,YAAW,YAAY,CAAC,aAAa,CAAC;IACxE,OAAO,CAAC,UAAU,CAAsB;gBAE5B,UAAU,EAAE,mBAAmB;IAIrC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;CAkB7E"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { PeerErrorSeverity } from '@aztec/stdlib/p2p';
|
|
2
|
-
export class BlockProposalValidator {
|
|
3
|
-
epochCache;
|
|
4
|
-
constructor(epochCache){
|
|
5
|
-
this.epochCache = epochCache;
|
|
6
|
-
}
|
|
7
|
-
async validate(block) {
|
|
8
|
-
const { currentProposer, nextProposer, currentSlot, nextSlot } = await this.epochCache.getProposerInCurrentOrNextSlot();
|
|
9
|
-
// Check that the attestation is for the current or next slot
|
|
10
|
-
const slotNumberBigInt = block.payload.header.globalVariables.slotNumber.toBigInt();
|
|
11
|
-
if (slotNumberBigInt !== currentSlot && slotNumberBigInt !== nextSlot) {
|
|
12
|
-
return PeerErrorSeverity.HighToleranceError;
|
|
13
|
-
}
|
|
14
|
-
// Check that the block proposal is from the current or next proposer
|
|
15
|
-
const proposer = await block.getSender();
|
|
16
|
-
if (!proposer.equals(currentProposer) && !proposer.equals(nextProposer)) {
|
|
17
|
-
return PeerErrorSeverity.HighToleranceError;
|
|
18
|
-
}
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/msg_validators/block_proposal_validator/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './block_proposal_validator.js';
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import type { PeerId } from '@libp2p/interface';
|
|
2
|
-
import type { ConnectionSampler } from './connection_sampler.js';
|
|
3
|
-
/**
|
|
4
|
-
* Manages batches of peers for parallel request processing.
|
|
5
|
-
* Tracks active peers and provides deterministic peer assignment for requests.
|
|
6
|
-
*
|
|
7
|
-
* Example with 3 peers and 10 requests:
|
|
8
|
-
*
|
|
9
|
-
* Peers: [P1] [P2] [P3]
|
|
10
|
-
* ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
11
|
-
* Requests: 0,1,2,9 | 3,4,5 | 6,7,8
|
|
12
|
-
*
|
|
13
|
-
* Each peer handles a bucket of consecutive requests.
|
|
14
|
-
* If a peer fails, it is replaced while maintaining the same bucket.
|
|
15
|
-
*/
|
|
16
|
-
export declare class BatchConnectionSampler {
|
|
17
|
-
private readonly connectionSampler;
|
|
18
|
-
private readonly logger;
|
|
19
|
-
private readonly batch;
|
|
20
|
-
private readonly requestsPerPeer;
|
|
21
|
-
constructor(connectionSampler: ConnectionSampler, batchSize: number, maxPeers: number);
|
|
22
|
-
/**
|
|
23
|
-
* Gets the peer responsible for handling a specific request index
|
|
24
|
-
*
|
|
25
|
-
* @param index - The request index
|
|
26
|
-
* @returns The peer assigned to handle this request
|
|
27
|
-
*/
|
|
28
|
-
getPeerForRequest(index: number): PeerId | undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Removes a peer and replaces it with a new one, maintaining the same position
|
|
31
|
-
* in the batch array to keep request distribution consistent
|
|
32
|
-
*
|
|
33
|
-
* @param peerId - The peer to remove and replace
|
|
34
|
-
*/
|
|
35
|
-
removePeerAndReplace(peerId: PeerId): void;
|
|
36
|
-
/**
|
|
37
|
-
* Gets the number of active peers
|
|
38
|
-
*/
|
|
39
|
-
get activePeerCount(): number;
|
|
40
|
-
/**
|
|
41
|
-
* Gets the number of requests each peer is assigned to handle
|
|
42
|
-
*/
|
|
43
|
-
get requestsPerBucket(): number;
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=batch_connection_sampler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batch_connection_sampler.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/connection-sampler/batch_connection_sampler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;;;;;;;;;;;GAYG;AACH,qBAAa,sBAAsB;IAKrB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAJ9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwD;IAC/E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAEZ,iBAAiB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAetG;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUpD;;;;;OAKG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAmB1C;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;CACF"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
2
|
-
/**
|
|
3
|
-
* Manages batches of peers for parallel request processing.
|
|
4
|
-
* Tracks active peers and provides deterministic peer assignment for requests.
|
|
5
|
-
*
|
|
6
|
-
* Example with 3 peers and 10 requests:
|
|
7
|
-
*
|
|
8
|
-
* Peers: [P1] [P2] [P3]
|
|
9
|
-
* ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
|
|
10
|
-
* Requests: 0,1,2,9 | 3,4,5 | 6,7,8
|
|
11
|
-
*
|
|
12
|
-
* Each peer handles a bucket of consecutive requests.
|
|
13
|
-
* If a peer fails, it is replaced while maintaining the same bucket.
|
|
14
|
-
*/ export class BatchConnectionSampler {
|
|
15
|
-
connectionSampler;
|
|
16
|
-
logger;
|
|
17
|
-
batch;
|
|
18
|
-
requestsPerPeer;
|
|
19
|
-
constructor(connectionSampler, batchSize, maxPeers){
|
|
20
|
-
this.connectionSampler = connectionSampler;
|
|
21
|
-
this.logger = createLogger('p2p:reqresp:batch-connection-sampler');
|
|
22
|
-
this.batch = [];
|
|
23
|
-
if (maxPeers <= 0) {
|
|
24
|
-
throw new Error('Max peers cannot be 0');
|
|
25
|
-
}
|
|
26
|
-
if (batchSize <= 0) {
|
|
27
|
-
throw new Error('Batch size cannot be 0');
|
|
28
|
-
}
|
|
29
|
-
// Calculate how many requests each peer should handle, cannot be 0
|
|
30
|
-
this.requestsPerPeer = Math.max(1, Math.floor(batchSize / maxPeers));
|
|
31
|
-
// Sample initial peers
|
|
32
|
-
this.batch = this.connectionSampler.samplePeersBatch(maxPeers);
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Gets the peer responsible for handling a specific request index
|
|
36
|
-
*
|
|
37
|
-
* @param index - The request index
|
|
38
|
-
* @returns The peer assigned to handle this request
|
|
39
|
-
*/ getPeerForRequest(index) {
|
|
40
|
-
if (this.batch.length === 0) {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
// Calculate which peer bucket this index belongs to
|
|
44
|
-
const peerIndex = Math.floor(index / this.requestsPerPeer) % this.batch.length;
|
|
45
|
-
return this.batch[peerIndex];
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Removes a peer and replaces it with a new one, maintaining the same position
|
|
49
|
-
* in the batch array to keep request distribution consistent
|
|
50
|
-
*
|
|
51
|
-
* @param peerId - The peer to remove and replace
|
|
52
|
-
*/ removePeerAndReplace(peerId) {
|
|
53
|
-
const index = this.batch.findIndex((p)=>p === peerId);
|
|
54
|
-
if (index === -1) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
const excluding = new Map([
|
|
58
|
-
[
|
|
59
|
-
peerId.toString(),
|
|
60
|
-
true
|
|
61
|
-
]
|
|
62
|
-
]);
|
|
63
|
-
const newPeer = this.connectionSampler.getPeer(excluding);
|
|
64
|
-
if (newPeer) {
|
|
65
|
-
this.batch[index] = newPeer;
|
|
66
|
-
this.logger.trace(`Replaced peer ${peerId} with ${newPeer}`, {
|
|
67
|
-
peerId,
|
|
68
|
-
newPeer
|
|
69
|
-
});
|
|
70
|
-
} else {
|
|
71
|
-
// If we couldn't get a replacement, remove the peer and compact the array
|
|
72
|
-
this.batch.splice(index, 1);
|
|
73
|
-
this.logger.trace(`Removed peer ${peerId}`, {
|
|
74
|
-
peerId
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Gets the number of active peers
|
|
80
|
-
*/ get activePeerCount() {
|
|
81
|
-
return this.batch.length;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Gets the number of requests each peer is assigned to handle
|
|
85
|
-
*/ get requestsPerBucket() {
|
|
86
|
-
return this.requestsPerPeer;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../../src/services/reqresp/protocols/block.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEjE,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,yBAAyB,CAO3F"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
export function reqRespBlockHandler(l2BlockSource) {
|
|
3
|
-
return async (_peerId, msg)=>{
|
|
4
|
-
const blockNumber = Fr.fromBuffer(msg);
|
|
5
|
-
const foundBlock = await l2BlockSource.getBlock(Number(blockNumber));
|
|
6
|
-
return foundBlock ? foundBlock.toBuffer() : Buffer.alloc(0);
|
|
7
|
-
};
|
|
8
|
-
}
|
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
import { Fr } from '@aztec/foundation/fields';
|
|
2
|
-
import { toArray } from '@aztec/foundation/iterable';
|
|
3
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
4
|
-
import type { AztecAsyncKVStore, AztecAsyncMap, AztecAsyncMultiMap } from '@aztec/kv-store';
|
|
5
|
-
import { BlockAttestation } from '@aztec/stdlib/p2p';
|
|
6
|
-
import { type TelemetryClient, getTelemetryClient } from '@aztec/telemetry-client';
|
|
7
|
-
|
|
8
|
-
import { PoolInstrumentation, PoolName } from '../instrumentation.js';
|
|
9
|
-
import type { AttestationPool } from './attestation_pool.js';
|
|
10
|
-
|
|
11
|
-
export class KvAttestationPool implements AttestationPool {
|
|
12
|
-
private metrics: PoolInstrumentation<BlockAttestation>;
|
|
13
|
-
|
|
14
|
-
private attestations: AztecAsyncMap<string, Buffer>;
|
|
15
|
-
private proposalsForSlot: AztecAsyncMultiMap<string, string>;
|
|
16
|
-
private attestationsForProposal: AztecAsyncMultiMap<string, string>;
|
|
17
|
-
|
|
18
|
-
constructor(
|
|
19
|
-
private store: AztecAsyncKVStore,
|
|
20
|
-
telemetry: TelemetryClient = getTelemetryClient(),
|
|
21
|
-
private log = createLogger('aztec:attestation_pool'),
|
|
22
|
-
) {
|
|
23
|
-
this.attestations = store.openMap('attestations');
|
|
24
|
-
this.proposalsForSlot = store.openMultiMap('proposals_for_slot');
|
|
25
|
-
this.attestationsForProposal = store.openMultiMap('attestations_for_proposal');
|
|
26
|
-
|
|
27
|
-
this.metrics = new PoolInstrumentation(telemetry, PoolName.ATTESTATION_POOL);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
private getProposalKey(slot: number | bigint | Fr | string, proposalId: Fr | string | Buffer): string {
|
|
31
|
-
const slotStr = typeof slot === 'string' ? slot : new Fr(slot).toString();
|
|
32
|
-
const proposalIdStr =
|
|
33
|
-
typeof proposalId === 'string'
|
|
34
|
-
? proposalId
|
|
35
|
-
: Buffer.isBuffer(proposalId)
|
|
36
|
-
? Fr.fromBuffer(proposalId).toString()
|
|
37
|
-
: proposalId.toString();
|
|
38
|
-
|
|
39
|
-
return `${slotStr}-${proposalIdStr}`;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
private getAttestationKey(slot: number | bigint | Fr | string, proposalId: Fr | string, address: string): string {
|
|
43
|
-
return `${this.getProposalKey(slot, proposalId)}-${address}`;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
public async addAttestations(attestations: BlockAttestation[]): Promise<void> {
|
|
47
|
-
await this.store.transactionAsync(async () => {
|
|
48
|
-
for (const attestation of attestations) {
|
|
49
|
-
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
50
|
-
const proposalId = attestation.archive;
|
|
51
|
-
const address = (await attestation.getSender()).toString();
|
|
52
|
-
|
|
53
|
-
await this.attestations.set(this.getAttestationKey(slotNumber, proposalId, address), attestation.toBuffer());
|
|
54
|
-
|
|
55
|
-
await this.proposalsForSlot.set(slotNumber.toString(), proposalId.toString());
|
|
56
|
-
await this.attestationsForProposal.set(
|
|
57
|
-
this.getProposalKey(slotNumber, proposalId),
|
|
58
|
-
this.getAttestationKey(slotNumber, proposalId, address),
|
|
59
|
-
);
|
|
60
|
-
|
|
61
|
-
this.log.verbose(`Added attestation for slot ${slotNumber} from ${address}`);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
this.metrics.recordAddedObjects(attestations.length);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
public async getAttestationsForSlot(slot: bigint, proposalId: string): Promise<BlockAttestation[]> {
|
|
69
|
-
const attestationIds = await toArray(
|
|
70
|
-
this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)),
|
|
71
|
-
);
|
|
72
|
-
const attestations: BlockAttestation[] = [];
|
|
73
|
-
|
|
74
|
-
// alternatively iterate this.attestaions starting from slot-proposal-EthAddress.zero
|
|
75
|
-
for (const id of attestationIds) {
|
|
76
|
-
const buf = await this.attestations.getAsync(id);
|
|
77
|
-
|
|
78
|
-
if (!buf) {
|
|
79
|
-
// this should not happen unless we lost writes
|
|
80
|
-
throw new Error('Attestation not found ' + id);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const attestation = BlockAttestation.fromBuffer(buf);
|
|
84
|
-
attestations.push(attestation);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return attestations;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
public async deleteAttestationsOlderThan(oldestSlot: bigint): Promise<void> {
|
|
91
|
-
const olderThan = await toArray(this.proposalsForSlot.keysAsync({ end: new Fr(oldestSlot).toString() }));
|
|
92
|
-
for (const oldSlot of olderThan) {
|
|
93
|
-
await this.deleteAttestationsForSlot(BigInt(oldSlot));
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
public async deleteAttestationsForSlot(slot: bigint): Promise<void> {
|
|
98
|
-
const slotFr = new Fr(slot);
|
|
99
|
-
let numberOfAttestations = 0;
|
|
100
|
-
await this.store.transactionAsync(async () => {
|
|
101
|
-
const proposalIds = await toArray(this.proposalsForSlot.getValuesAsync(slotFr.toString()));
|
|
102
|
-
for (const proposalId of proposalIds) {
|
|
103
|
-
const attestations = await toArray(
|
|
104
|
-
this.attestationsForProposal.getValuesAsync(this.getProposalKey(slotFr, proposalId)),
|
|
105
|
-
);
|
|
106
|
-
|
|
107
|
-
numberOfAttestations += attestations.length;
|
|
108
|
-
for (const attestation of attestations) {
|
|
109
|
-
await this.attestations.delete(attestation);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
await this.attestationsForProposal.delete(this.getProposalKey(slotFr, proposalId));
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot}`);
|
|
117
|
-
this.metrics.recordRemovedObjects(numberOfAttestations);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
public async deleteAttestationsForSlotAndProposal(slot: bigint, proposalId: string): Promise<void> {
|
|
121
|
-
let numberOfAttestations = 0;
|
|
122
|
-
await this.store.transactionAsync(async () => {
|
|
123
|
-
const slotString = new Fr(slot).toString();
|
|
124
|
-
const attestations = await toArray(
|
|
125
|
-
this.attestationsForProposal.getValuesAsync(this.getProposalKey(slot, proposalId)),
|
|
126
|
-
);
|
|
127
|
-
|
|
128
|
-
numberOfAttestations += attestations.length;
|
|
129
|
-
for (const attestation of attestations) {
|
|
130
|
-
await this.attestations.delete(attestation);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
await this.proposalsForSlot.deleteValue(slotString, proposalId);
|
|
134
|
-
await this.attestationsForProposal.delete(this.getProposalKey(slotString, proposalId));
|
|
135
|
-
});
|
|
136
|
-
|
|
137
|
-
this.log.verbose(`Removed ${numberOfAttestations} attestations for slot ${slot} and proposal ${proposalId}`);
|
|
138
|
-
this.metrics.recordRemovedObjects(numberOfAttestations);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
public async deleteAttestations(attestations: BlockAttestation[]): Promise<void> {
|
|
142
|
-
await this.store.transactionAsync(async () => {
|
|
143
|
-
for (const attestation of attestations) {
|
|
144
|
-
const slotNumber = attestation.payload.header.globalVariables.slotNumber;
|
|
145
|
-
const proposalId = attestation.archive;
|
|
146
|
-
const address = (await attestation.getSender()).toString();
|
|
147
|
-
|
|
148
|
-
await this.attestations.delete(this.getAttestationKey(slotNumber, proposalId, address));
|
|
149
|
-
await this.attestationsForProposal.deleteValue(
|
|
150
|
-
this.getProposalKey(slotNumber, proposalId),
|
|
151
|
-
this.getAttestationKey(slotNumber, proposalId, address),
|
|
152
|
-
);
|
|
153
|
-
|
|
154
|
-
this.log.debug(`Deleted attestation for slot ${slotNumber} from ${address}`);
|
|
155
|
-
}
|
|
156
|
-
});
|
|
157
|
-
this.metrics.recordRemovedObjects(attestations.length);
|
|
158
|
-
}
|
|
159
|
-
}
|