@aztec/p2p 0.0.0-test.1 → 0.0.1-commit.5476d83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bootstrap/bootstrap.d.ts +1 -1
- package/dest/bootstrap/bootstrap.d.ts.map +1 -1
- package/dest/bootstrap/bootstrap.js +22 -9
- package/dest/client/factory.d.ts +14 -4
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +60 -24
- 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 +157 -0
- package/dest/client/interface.d.ts.map +1 -0
- package/dest/client/interface.js +9 -0
- package/dest/client/p2p_client.d.ts +72 -187
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +373 -177
- package/dest/config.d.ts +151 -125
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +183 -34
- 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/reqresp.error.d.ts +1 -1
- package/dest/errors/reqresp.error.d.ts.map +1 -1
- package/dest/index.d.ts +4 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -0
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +68 -8
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +214 -63
- package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +21 -6
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +126 -25
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +19 -6
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +111 -21
- package/dest/mem_pools/attestation_pool/mocks.d.ts +225 -5
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/mocks.js +9 -15
- package/dest/mem_pools/index.d.ts +1 -1
- package/dest/mem_pools/instrumentation.d.ts +10 -12
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +35 -38
- package/dest/mem_pools/interface.d.ts +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +62 -13
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.js +469 -97
- package/dest/mem_pools/tx_pool/index.d.ts +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +34 -10
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +133 -36
- package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
- package/dest/mem_pools/tx_pool/priority.js +1 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +65 -9
- package/dest/mem_pools/tx_pool/tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/tx_pool_test_suite.js +264 -39
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -2
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +45 -9
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +67 -0
- package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
- package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/index.js +1 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +6 -2
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +73 -12
- package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
- package/dest/msg_validators/index.d.ts +1 -1
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +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/tx_validator/aggregate_tx_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +3 -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 +27 -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 +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.js +4 -4
- package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/data_validator.js +56 -86
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -3
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.js +21 -27
- package/dest/msg_validators/tx_validator/factory.d.ts +15 -0
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/factory.js +74 -0
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +11 -0
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/gas_validator.js +115 -0
- package/dest/msg_validators/tx_validator/index.d.ts +8 -1
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.js +7 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +8 -4
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.js +39 -20
- package/dest/msg_validators/tx_validator/phases_validator.d.ts +14 -0
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/phases_validator.js +93 -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 +12 -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 +8 -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 +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.js +6 -5
- package/dest/services/data_store.d.ts +1 -1
- package/dest/services/data_store.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.d.ts +10 -9
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.js +63 -36
- package/dest/services/dummy_service.d.ts +50 -11
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +88 -5
- package/dest/services/encoding.d.ts +26 -7
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +73 -5
- package/dest/services/gossipsub/scoring.d.ts +1 -1
- package/dest/services/index.d.ts +5 -1
- package/dest/services/index.d.ts.map +1 -1
- package/dest/services/index.js +4 -0
- package/dest/services/libp2p/instrumentation.d.ts +20 -0
- package/dest/services/libp2p/instrumentation.d.ts.map +1 -0
- package/dest/services/libp2p/instrumentation.js +164 -0
- package/dest/services/libp2p/libp2p_service.d.ts +78 -89
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +698 -246
- 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 +6 -2
- package/dest/services/peer-manager/metrics.d.ts.map +1 -1
- package/dest/services/peer-manager/metrics.js +22 -2
- package/dest/services/peer-manager/peer_manager.d.ts +102 -22
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +549 -72
- package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_scoring.js +40 -2
- package/dest/services/reqresp/config.d.ts +11 -9
- package/dest/services/reqresp/config.d.ts.map +1 -1
- package/dest/services/reqresp/config.js +18 -4
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +2 -2
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.js +10 -6
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +31 -17
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/connection_sampler.js +142 -84
- 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 +73 -24
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/interface.js +45 -26
- package/dest/services/reqresp/metrics.d.ts +1 -1
- package/dest/services/reqresp/metrics.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/auth.d.ts +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.d.ts +6 -1
- package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block.js +28 -5
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +30 -0
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -0
- package/dest/services/reqresp/protocols/block_txs/bitvector.js +75 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +11 -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 +39 -0
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +47 -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 +75 -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 -1
- package/dest/services/reqresp/protocols/index.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/index.js +2 -0
- 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 +39 -7
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/status.js +72 -5
- package/dest/services/reqresp/protocols/tx.d.ts +13 -2
- package/dest/services/reqresp/protocols/tx.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/tx.js +34 -6
- package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +6 -4
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.js +10 -2
- 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 +21 -1
- package/dest/services/reqresp/reqresp.d.ts +24 -66
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +298 -207
- 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 +23 -19
- 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 +58 -0
- package/dest/services/tx_collection/fast_tx_collection.d.ts +50 -0
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -0
- package/dest/services/tx_collection/fast_tx_collection.js +300 -0
- package/dest/services/tx_collection/index.d.ts +3 -0
- package/dest/services/tx_collection/index.d.ts.map +1 -0
- package/dest/services/tx_collection/index.js +2 -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 +34 -0
- package/dest/services/tx_collection/slow_tx_collection.d.ts +52 -0
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -0
- package/dest/services/tx_collection/slow_tx_collection.js +177 -0
- package/dest/services/tx_collection/tx_collection.d.ts +109 -0
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -0
- package/dest/services/tx_collection/tx_collection.js +128 -0
- package/dest/services/tx_collection/tx_collection_sink.d.ts +30 -0
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -0
- package/dest/services/tx_collection/tx_collection_sink.js +111 -0
- package/dest/services/tx_collection/tx_source.d.ts +18 -0
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -0
- package/dest/services/tx_collection/tx_source.js +31 -0
- package/dest/services/tx_provider.d.ts +49 -0
- package/dest/services/tx_provider.d.ts.map +1 -0
- package/dest/services/tx_provider.js +210 -0
- package/dest/services/tx_provider_instrumentation.d.ts +13 -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 +2 -1
- package/dest/test-helpers/index.d.ts.map +1 -1
- package/dest/test-helpers/index.js +1 -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 +33 -5
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/make-test-p2p-clients.js +86 -16
- package/dest/test-helpers/mock-pubsub.d.ts +59 -0
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -0
- package/dest/test-helpers/mock-pubsub.js +130 -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 +15 -11
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +62 -28
- package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +103 -29
- 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 +1 -6
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/testbench/worker_client_manager.js +11 -19
- 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 +24 -16
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +75 -69
- package/dest/versioning.d.ts +4 -4
- package/dest/versioning.d.ts.map +1 -1
- package/dest/versioning.js +8 -3
- package/package.json +32 -27
- package/src/bootstrap/bootstrap.ts +27 -11
- package/src/client/factory.ts +136 -45
- package/src/client/index.ts +1 -0
- package/src/client/interface.ts +198 -0
- package/src/client/p2p_client.ts +469 -330
- package/src/config.ts +305 -134
- package/src/enr/generate-enr.ts +39 -6
- package/src/errors/attestation-pool.error.ts +13 -0
- package/src/index.ts +4 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +75 -7
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +264 -65
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +173 -34
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +156 -30
- package/src/mem_pools/attestation_pool/mocks.ts +11 -10
- package/src/mem_pools/instrumentation.ts +43 -44
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +549 -108
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +153 -44
- package/src/mem_pools/tx_pool/priority.ts +1 -1
- package/src/mem_pools/tx_pool/tx_pool.ts +67 -8
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +217 -34
- package/src/msg_validators/attestation_validator/attestation_validator.ts +54 -11
- package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +91 -0
- package/src/msg_validators/attestation_validator/index.ts +1 -0
- package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +82 -14
- package/src/msg_validators/msg_seen_validator/msg_seen_validator.ts +36 -0
- package/src/msg_validators/tx_validator/allowed_public_setup.ts +35 -0
- package/src/msg_validators/tx_validator/archive_cache.ts +28 -0
- package/src/msg_validators/tx_validator/block_header_validator.ts +4 -4
- package/src/msg_validators/tx_validator/data_validator.ts +81 -69
- package/src/msg_validators/tx_validator/double_spend_validator.ts +19 -17
- package/src/msg_validators/tx_validator/factory.ts +109 -0
- package/src/msg_validators/tx_validator/gas_validator.ts +134 -0
- package/src/msg_validators/tx_validator/index.ts +7 -0
- package/src/msg_validators/tx_validator/metadata_validator.ts +58 -21
- package/src/msg_validators/tx_validator/phases_validator.ts +116 -0
- package/src/msg_validators/tx_validator/test_utils.ts +43 -0
- package/src/msg_validators/tx_validator/timestamp_validator.ts +46 -0
- package/src/msg_validators/tx_validator/tx_permitted_validator.ts +17 -0
- package/src/msg_validators/tx_validator/tx_proof_validator.ts +6 -5
- package/src/services/discv5/discV5_service.ts +84 -38
- package/src/services/dummy_service.ts +147 -9
- package/src/services/encoding.ts +80 -5
- package/src/services/index.ts +4 -0
- package/src/services/libp2p/instrumentation.ts +167 -0
- package/src/services/libp2p/libp2p_service.ts +866 -294
- package/src/services/peer-manager/interface.ts +29 -0
- package/src/services/peer-manager/metrics.ts +26 -1
- package/src/services/peer-manager/peer_manager.ts +654 -78
- package/src/services/peer-manager/peer_scoring.ts +46 -3
- package/src/services/reqresp/config.ts +26 -9
- package/src/services/reqresp/connection-sampler/batch_connection_sampler.ts +12 -6
- package/src/services/reqresp/connection-sampler/connection_sampler.ts +148 -95
- package/src/services/reqresp/index.ts +2 -0
- package/src/services/reqresp/interface.ts +91 -36
- package/src/services/reqresp/metrics.ts +4 -1
- package/src/services/reqresp/protocols/auth.ts +83 -0
- package/src/services/reqresp/protocols/block.ts +24 -3
- package/src/services/reqresp/protocols/block_txs/bitvector.ts +90 -0
- package/src/services/reqresp/protocols/block_txs/block_txs_handler.ts +53 -0
- package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +79 -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 -0
- package/src/services/reqresp/protocols/status.ts +117 -5
- package/src/services/reqresp/protocols/tx.ts +35 -6
- package/src/services/reqresp/rate-limiter/rate_limiter.ts +12 -3
- package/src/services/reqresp/rate-limiter/rate_limits.ts +21 -1
- package/src/services/reqresp/reqresp.ts +387 -256
- package/src/services/reqresp/status.ts +12 -3
- package/src/services/service.ts +45 -21
- package/src/services/tx_collection/config.ts +84 -0
- package/src/services/tx_collection/fast_tx_collection.ts +340 -0
- package/src/services/tx_collection/index.ts +2 -0
- package/src/services/tx_collection/instrumentation.ts +43 -0
- package/src/services/tx_collection/slow_tx_collection.ts +233 -0
- package/src/services/tx_collection/tx_collection.ts +215 -0
- package/src/services/tx_collection/tx_collection_sink.ts +129 -0
- package/src/services/tx_collection/tx_source.ts +37 -0
- package/src/services/tx_provider.ts +216 -0
- package/src/services/tx_provider_instrumentation.ts +44 -0
- package/src/test-helpers/index.ts +1 -0
- package/src/test-helpers/make-enrs.ts +4 -5
- package/src/test-helpers/make-test-p2p-clients.ts +111 -21
- package/src/test-helpers/mock-pubsub.ts +188 -0
- package/src/test-helpers/mock-tx-helpers.ts +24 -0
- package/src/test-helpers/reqresp-nodes.ts +86 -35
- package/src/testbench/p2p_client_testbench_worker.ts +151 -25
- package/src/testbench/parse_log_file.ts +4 -4
- package/src/testbench/testbench.ts +4 -4
- package/src/testbench/worker_client_manager.ts +17 -23
- package/src/types/index.ts +2 -0
- package/src/util.ts +105 -91
- package/src/versioning.ts +11 -4
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { timesParallel } from '@aztec/foundation/collection';
|
|
2
|
+
import { SecretValue } from '@aztec/foundation/config';
|
|
3
|
+
import { createLogger } from '@aztec/foundation/log';
|
|
2
4
|
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
3
5
|
import { emptyChainConfig } from '@aztec/stdlib/config';
|
|
6
|
+
import { compressComponentVersions } from '@aztec/stdlib/versioning';
|
|
4
7
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
5
|
-
import { SignableENR } from '@chainsafe/enr';
|
|
6
8
|
import { gossipsub } from '@chainsafe/libp2p-gossipsub';
|
|
7
9
|
import { noise } from '@chainsafe/libp2p-noise';
|
|
8
10
|
import { yamux } from '@chainsafe/libp2p-yamux';
|
|
@@ -11,15 +13,19 @@ import { identify } from '@libp2p/identify';
|
|
|
11
13
|
import { createSecp256k1PeerId } from '@libp2p/peer-id-factory';
|
|
12
14
|
import { tcp } from '@libp2p/tcp';
|
|
13
15
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
16
|
+
import { SignableENR } from '@nethermindeth/enr';
|
|
14
17
|
import getPort from 'get-port';
|
|
15
18
|
import { createLibp2p } from 'libp2p';
|
|
16
19
|
import { BootstrapNode } from '../bootstrap/bootstrap.js';
|
|
17
20
|
import { DiscV5Service } from '../services/discv5/discV5_service.js';
|
|
18
21
|
import { LibP2PService } from '../services/libp2p/libp2p_service.js';
|
|
22
|
+
import { PeerManager } from '../services/peer-manager/peer_manager.js';
|
|
23
|
+
import { PeerScoring } from '../services/peer-manager/peer_scoring.js';
|
|
19
24
|
import { ReqRespSubProtocol, noopValidator } from '../services/reqresp/interface.js';
|
|
20
|
-
import { pingHandler
|
|
25
|
+
import { pingHandler } from '../services/reqresp/protocols/index.js';
|
|
21
26
|
import { ReqResp } from '../services/reqresp/reqresp.js';
|
|
22
27
|
import { convertToMultiaddr, createLibP2PPeerIdFromPrivateKey } from '../util.js';
|
|
28
|
+
import { getVersions } from '../versioning.js';
|
|
23
29
|
/**
|
|
24
30
|
* Creates a libp2p node, pre configured.
|
|
25
31
|
* @param boostrapAddrs - an optional list of bootstrap addresses
|
|
@@ -30,10 +36,10 @@ import { convertToMultiaddr, createLibP2PPeerIdFromPrivateKey } from '../util.js
|
|
|
30
36
|
start,
|
|
31
37
|
addresses: {
|
|
32
38
|
listen: [
|
|
33
|
-
`/ip4/
|
|
39
|
+
`/ip4/127.0.0.1/tcp/${port}`
|
|
34
40
|
],
|
|
35
41
|
announce: [
|
|
36
|
-
`/ip4/
|
|
42
|
+
`/ip4/127.0.0.1/tcp/${port}`
|
|
37
43
|
]
|
|
38
44
|
},
|
|
39
45
|
connectionEncryption: [
|
|
@@ -73,34 +79,42 @@ import { convertToMultiaddr, createLibP2PPeerIdFromPrivateKey } from '../util.js
|
|
|
73
79
|
* P2P functionality is operational, however everything else is default
|
|
74
80
|
*
|
|
75
81
|
*
|
|
76
|
-
*/ export async function createTestLibP2PService(clientType, boostrapAddrs = [],
|
|
82
|
+
*/ export async function createTestLibP2PService(clientType, boostrapAddrs = [], archiver, worldStateSynchronizer, epochCache, mempools, telemetry, port = 0, peerId, chainConfig = emptyChainConfig) {
|
|
77
83
|
peerId = peerId ?? await createSecp256k1PeerId();
|
|
78
84
|
const config = {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
tcpListenAddress: `0.0.0.0:${port}`,
|
|
82
|
-
udpListenAddress: `0.0.0.0:${port}`,
|
|
85
|
+
p2pIp: `127.0.0.1`,
|
|
86
|
+
p2pPort: port,
|
|
83
87
|
bootstrapNodes: boostrapAddrs,
|
|
84
88
|
peerCheckIntervalMS: 1000,
|
|
85
89
|
maxPeerCount: 5,
|
|
86
90
|
p2pEnabled: true,
|
|
87
|
-
peerIdPrivateKey: Buffer.from(peerId.privateKey).toString('hex'),
|
|
91
|
+
peerIdPrivateKey: new SecretValue(Buffer.from(peerId.privateKey).toString('hex')),
|
|
88
92
|
bootstrapNodeEnrVersionCheck: false,
|
|
89
93
|
...chainConfig
|
|
90
94
|
};
|
|
91
|
-
const discoveryService = new DiscV5Service(peerId, config, telemetry);
|
|
95
|
+
const discoveryService = new DiscV5Service(peerId, config, 'test-reqresp-node', telemetry);
|
|
92
96
|
const proofVerifier = new AlwaysTrueCircuitVerifier();
|
|
93
97
|
// No bootstrap nodes provided as the libp2p service will register them in the constructor
|
|
94
98
|
const p2pNode = await createLibp2pNode([], peerId, port, /*enable gossip */ true, /**start */ false);
|
|
95
|
-
|
|
99
|
+
// Duplicated setup code from Libp2pService.new
|
|
100
|
+
const peerScoring = new PeerScoring(config);
|
|
101
|
+
const reqresp = new ReqResp(config, p2pNode, peerScoring);
|
|
102
|
+
const versions = getVersions(config);
|
|
103
|
+
const protocolVersion = compressComponentVersions(versions);
|
|
104
|
+
const peerManager = new PeerManager(p2pNode, discoveryService, config, telemetry, createLogger(`p2p:peer_manager`), peerScoring, reqresp, worldStateSynchronizer, protocolVersion, epochCache);
|
|
105
|
+
p2pNode.services.pubsub.score.params.appSpecificWeight = 10;
|
|
106
|
+
p2pNode.services.pubsub.score.params.appSpecificScore = (peerId)=>peerManager.shouldDisableP2PGossip(peerId) ? -Infinity : peerManager.getPeerScore(peerId);
|
|
107
|
+
return new LibP2PService(clientType, config, p2pNode, discoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry);
|
|
96
108
|
}
|
|
97
109
|
// Mock sub protocol handlers
|
|
98
110
|
export const MOCK_SUB_PROTOCOL_HANDLERS = {
|
|
99
111
|
[ReqRespSubProtocol.PING]: pingHandler,
|
|
100
|
-
[ReqRespSubProtocol.STATUS]:
|
|
112
|
+
[ReqRespSubProtocol.STATUS]: (_msg)=>Promise.resolve(Buffer.from('status')),
|
|
101
113
|
[ReqRespSubProtocol.TX]: (_msg)=>Promise.resolve(Buffer.from('tx')),
|
|
102
114
|
[ReqRespSubProtocol.GOODBYE]: (_msg)=>Promise.resolve(Buffer.from('goodbye')),
|
|
103
|
-
[ReqRespSubProtocol.BLOCK]: (_msg)=>Promise.resolve(Buffer.from('block'))
|
|
115
|
+
[ReqRespSubProtocol.BLOCK]: (_msg)=>Promise.resolve(Buffer.from('block')),
|
|
116
|
+
[ReqRespSubProtocol.AUTH]: (_msg)=>Promise.resolve(Buffer.from('auth')),
|
|
117
|
+
[ReqRespSubProtocol.BLOCK_TXS]: (_msg)=>Promise.resolve(Buffer.from('block_txs'))
|
|
104
118
|
};
|
|
105
119
|
// By default, all requests are valid
|
|
106
120
|
// If you want to test an invalid response, you can override the validator
|
|
@@ -109,13 +123,15 @@ export const MOCK_SUB_PROTOCOL_VALIDATORS = {
|
|
|
109
123
|
[ReqRespSubProtocol.STATUS]: noopValidator,
|
|
110
124
|
[ReqRespSubProtocol.TX]: noopValidator,
|
|
111
125
|
[ReqRespSubProtocol.GOODBYE]: noopValidator,
|
|
112
|
-
[ReqRespSubProtocol.BLOCK]: noopValidator
|
|
126
|
+
[ReqRespSubProtocol.BLOCK]: noopValidator,
|
|
127
|
+
[ReqRespSubProtocol.AUTH]: noopValidator,
|
|
128
|
+
[ReqRespSubProtocol.BLOCK_TXS]: noopValidator
|
|
113
129
|
};
|
|
114
130
|
/**
|
|
115
131
|
* @param numberOfNodes - the number of nodes to create
|
|
116
132
|
* @returns An array of the created nodes
|
|
117
|
-
*/ export const createNodes = (peerScoring, numberOfNodes)=>{
|
|
118
|
-
return timesParallel(numberOfNodes, ()=>createReqResp(peerScoring));
|
|
133
|
+
*/ export const createNodes = (peerScoring, numberOfNodes, rateLimits = {})=>{
|
|
134
|
+
return timesParallel(numberOfNodes, ()=>createReqResp(peerScoring, rateLimits));
|
|
119
135
|
};
|
|
120
136
|
export const startNodes = async (nodes, subProtocolHandlers = MOCK_SUB_PROTOCOL_HANDLERS, subProtocolValidators = MOCK_SUB_PROTOCOL_VALIDATORS)=>{
|
|
121
137
|
for (const node of nodes){
|
|
@@ -130,13 +146,15 @@ export const stopNodes = async (nodes)=>{
|
|
|
130
146
|
await Promise.all(stopPromises);
|
|
131
147
|
};
|
|
132
148
|
// Create a req resp node, exposing the underlying p2p node
|
|
133
|
-
export const createReqResp = async (peerScoring)=>{
|
|
149
|
+
export const createReqResp = async (peerScoring, rateLimits = {})=>{
|
|
134
150
|
const p2p = await createLibp2pNode();
|
|
135
151
|
const config = {
|
|
136
152
|
overallRequestTimeoutMs: 4000,
|
|
137
|
-
individualRequestTimeoutMs: 2000
|
|
153
|
+
individualRequestTimeoutMs: 2000,
|
|
154
|
+
dialTimeoutMs: 1000,
|
|
155
|
+
p2pOptimisticNegotiation: false
|
|
138
156
|
};
|
|
139
|
-
const req = new ReqResp(config, p2p, peerScoring);
|
|
157
|
+
const req = new ReqResp(config, p2p, peerScoring, undefined, rateLimits);
|
|
140
158
|
return {
|
|
141
159
|
p2p,
|
|
142
160
|
req
|
|
@@ -156,25 +174,41 @@ export const connectToPeers = async (nodes)=>{
|
|
|
156
174
|
};
|
|
157
175
|
// Mock circuit verifier for testing - reimplementation from bb to avoid dependency
|
|
158
176
|
export class AlwaysTrueCircuitVerifier {
|
|
177
|
+
stop() {
|
|
178
|
+
return Promise.resolve();
|
|
179
|
+
}
|
|
159
180
|
verifyProof(_tx) {
|
|
160
|
-
return Promise.resolve(
|
|
181
|
+
return Promise.resolve({
|
|
182
|
+
valid: true,
|
|
183
|
+
durationMs: 0,
|
|
184
|
+
totalDurationMs: 0
|
|
185
|
+
});
|
|
161
186
|
}
|
|
162
187
|
}
|
|
163
188
|
export class AlwaysFalseCircuitVerifier {
|
|
189
|
+
stop() {
|
|
190
|
+
return Promise.resolve();
|
|
191
|
+
}
|
|
164
192
|
verifyProof(_tx) {
|
|
165
|
-
return Promise.resolve(
|
|
193
|
+
return Promise.resolve({
|
|
194
|
+
valid: false,
|
|
195
|
+
durationMs: 0,
|
|
196
|
+
totalDurationMs: 0
|
|
197
|
+
});
|
|
166
198
|
}
|
|
167
199
|
}
|
|
168
200
|
// Bootnodes
|
|
169
201
|
export function createBootstrapNodeConfig(privateKey, port, chainConfig) {
|
|
170
202
|
return {
|
|
171
203
|
l1ChainId: chainConfig.l1ChainId,
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
peerIdPrivateKey: privateKey,
|
|
204
|
+
p2pIp: '127.0.0.1',
|
|
205
|
+
p2pPort: port,
|
|
206
|
+
peerIdPrivateKey: new SecretValue(privateKey),
|
|
175
207
|
dataDirectory: undefined,
|
|
176
|
-
|
|
177
|
-
bootstrapNodes: []
|
|
208
|
+
dataStoreMapSizeKb: 0,
|
|
209
|
+
bootstrapNodes: [],
|
|
210
|
+
listenAddress: '127.0.0.1',
|
|
211
|
+
queryForIp: false
|
|
178
212
|
};
|
|
179
213
|
}
|
|
180
214
|
export function createBootstrapNodeFromPrivateKey(privateKey, port, telemetry = getTelemetryClient(), chainConfig = emptyChainConfig) {
|
|
@@ -189,7 +223,7 @@ export function createBootstrapNodeFromPrivateKey(privateKey, port, telemetry =
|
|
|
189
223
|
*/ export async function getBootstrapNodeEnr(privateKey, port) {
|
|
190
224
|
const peerId = await createLibP2PPeerIdFromPrivateKey(privateKey);
|
|
191
225
|
const enr = SignableENR.createFromPeerId(peerId);
|
|
192
|
-
const listenAddrUdp = multiaddr(convertToMultiaddr(
|
|
226
|
+
const listenAddrUdp = multiaddr(convertToMultiaddr('127.0.0.1', port, 'udp'));
|
|
193
227
|
enr.setLocationMultiaddr(listenAddrUdp);
|
|
194
228
|
return enr;
|
|
195
229
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudF90ZXN0YmVuY2hfd29ya2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3AycF9jbGllbnRfdGVzdGJlbmNoX3dvcmtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -3,19 +3,25 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Used when running testbench commands
|
|
5
5
|
*/ import { MockL2BlockSource } from '@aztec/archiver/test';
|
|
6
|
+
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
6
7
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
7
8
|
import { createLogger } from '@aztec/foundation/log';
|
|
8
9
|
import { sleep } from '@aztec/foundation/sleep';
|
|
9
10
|
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
10
|
-
import { P2PClientType } from '@aztec/stdlib/p2p';
|
|
11
|
+
import { P2PClientType, P2PMessage } from '@aztec/stdlib/p2p';
|
|
11
12
|
import { Tx, TxStatus } from '@aztec/stdlib/tx';
|
|
13
|
+
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
14
|
+
import { TopicValidatorResult } from '@libp2p/interface';
|
|
15
|
+
import EventEmitter from 'events';
|
|
12
16
|
import { createP2PClient } from '../index.js';
|
|
17
|
+
import { LibP2PService } from '../services/libp2p/libp2p_service.js';
|
|
13
18
|
import { AlwaysTrueCircuitVerifier } from '../test-helpers/reqresp-nodes.js';
|
|
14
19
|
// Simple mock implementation
|
|
15
20
|
function mockTxPool() {
|
|
16
21
|
// Mock all methods
|
|
17
|
-
|
|
18
|
-
|
|
22
|
+
const pool = {
|
|
23
|
+
isEmpty: ()=>Promise.resolve(false),
|
|
24
|
+
addTxs: ()=>Promise.resolve(1),
|
|
19
25
|
getTxByHash: ()=>Promise.resolve(undefined),
|
|
20
26
|
getArchivedTxByHash: ()=>Promise.resolve(undefined),
|
|
21
27
|
markAsMined: ()=>Promise.resolve(),
|
|
@@ -24,39 +30,117 @@ function mockTxPool() {
|
|
|
24
30
|
getAllTxs: ()=>Promise.resolve([]),
|
|
25
31
|
getAllTxHashes: ()=>Promise.resolve([]),
|
|
26
32
|
getPendingTxHashes: ()=>Promise.resolve([]),
|
|
33
|
+
getPendingTxCount: ()=>Promise.resolve(0),
|
|
27
34
|
getMinedTxHashes: ()=>Promise.resolve([]),
|
|
28
|
-
getTxStatus: ()=>Promise.resolve(TxStatus.PENDING)
|
|
35
|
+
getTxStatus: ()=>Promise.resolve(TxStatus.PENDING),
|
|
36
|
+
getTxsByHash: ()=>Promise.resolve([]),
|
|
37
|
+
hasTxs: ()=>Promise.resolve([]),
|
|
38
|
+
hasTx: ()=>Promise.resolve(false),
|
|
39
|
+
updateConfig: ()=>{},
|
|
40
|
+
markTxsAsNonEvictable: ()=>Promise.resolve(),
|
|
41
|
+
cleanupDeletedMinedTxs: ()=>Promise.resolve(0)
|
|
29
42
|
};
|
|
43
|
+
return Object.assign(new EventEmitter(), pool);
|
|
30
44
|
}
|
|
31
45
|
function mockAttestationPool() {
|
|
32
46
|
return {
|
|
47
|
+
isEmpty: ()=>Promise.resolve(false),
|
|
33
48
|
addAttestations: ()=>Promise.resolve(),
|
|
34
49
|
deleteAttestations: ()=>Promise.resolve(),
|
|
35
50
|
deleteAttestationsOlderThan: ()=>Promise.resolve(),
|
|
36
51
|
deleteAttestationsForSlot: ()=>Promise.resolve(),
|
|
37
52
|
deleteAttestationsForSlotAndProposal: ()=>Promise.resolve(),
|
|
38
|
-
getAttestationsForSlot: ()=>Promise.resolve([])
|
|
53
|
+
getAttestationsForSlot: ()=>Promise.resolve([]),
|
|
54
|
+
getAttestationsForSlotAndProposal: ()=>Promise.resolve([]),
|
|
55
|
+
addBlockProposal: ()=>Promise.resolve(),
|
|
56
|
+
getBlockProposal: ()=>Promise.resolve(undefined),
|
|
57
|
+
hasBlockProposal: ()=>Promise.resolve(false),
|
|
58
|
+
hasAttestation: ()=>Promise.resolve(false),
|
|
59
|
+
canAddProposal: ()=>Promise.resolve(true),
|
|
60
|
+
canAddAttestation: ()=>Promise.resolve(true)
|
|
39
61
|
};
|
|
40
62
|
}
|
|
41
63
|
function mockEpochCache() {
|
|
42
64
|
return {
|
|
43
|
-
getCommittee: ()=>Promise.resolve(
|
|
65
|
+
getCommittee: ()=>Promise.resolve({
|
|
66
|
+
committee: [],
|
|
67
|
+
seed: 1n,
|
|
68
|
+
epoch: EpochNumber.ZERO
|
|
69
|
+
}),
|
|
44
70
|
getProposerIndexEncoding: ()=>'0x',
|
|
45
71
|
getEpochAndSlotNow: ()=>({
|
|
46
|
-
epoch:
|
|
47
|
-
slot:
|
|
72
|
+
epoch: EpochNumber.ZERO,
|
|
73
|
+
slot: SlotNumber.ZERO,
|
|
48
74
|
ts: 0n
|
|
49
75
|
}),
|
|
50
76
|
computeProposerIndex: ()=>0n,
|
|
51
|
-
|
|
77
|
+
getProposerAttesterAddressInCurrentOrNextSlot: ()=>Promise.resolve({
|
|
52
78
|
currentProposer: EthAddress.ZERO,
|
|
53
79
|
nextProposer: EthAddress.ZERO,
|
|
54
|
-
currentSlot:
|
|
55
|
-
nextSlot:
|
|
80
|
+
currentSlot: SlotNumber.ZERO,
|
|
81
|
+
nextSlot: SlotNumber.ZERO
|
|
82
|
+
}),
|
|
83
|
+
getEpochAndSlotInNextL1Slot: ()=>({
|
|
84
|
+
epoch: EpochNumber.ZERO,
|
|
85
|
+
slot: SlotNumber.ZERO,
|
|
86
|
+
ts: 0n,
|
|
87
|
+
now: 0n
|
|
56
88
|
}),
|
|
57
|
-
isInCommittee: ()=>Promise.resolve(false)
|
|
89
|
+
isInCommittee: ()=>Promise.resolve(false),
|
|
90
|
+
getRegisteredValidators: ()=>Promise.resolve([]),
|
|
91
|
+
filterInCommittee: ()=>Promise.resolve([])
|
|
58
92
|
};
|
|
59
93
|
}
|
|
94
|
+
function mockWorldStateSynchronizer() {
|
|
95
|
+
return {
|
|
96
|
+
status: ()=>Promise.resolve({
|
|
97
|
+
syncSummary: {
|
|
98
|
+
latestBlockNumber: 0,
|
|
99
|
+
latestBlockHash: '',
|
|
100
|
+
finalizedBlockNumber: 0,
|
|
101
|
+
treesAreSynched: false,
|
|
102
|
+
oldestHistoricBlockNumber: 0
|
|
103
|
+
}
|
|
104
|
+
})
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
class TestLibP2PService extends LibP2PService {
|
|
108
|
+
disableTxValidation;
|
|
109
|
+
gossipMessageCount = 0;
|
|
110
|
+
constructor(clientType, config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger = createLogger('p2p:test:libp2p_service'), disableTxValidation = true){
|
|
111
|
+
super(clientType, config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger);
|
|
112
|
+
this.disableTxValidation = disableTxValidation;
|
|
113
|
+
}
|
|
114
|
+
getGossipMessageCount() {
|
|
115
|
+
return this.gossipMessageCount;
|
|
116
|
+
}
|
|
117
|
+
setDisableTxValidation(disable) {
|
|
118
|
+
this.disableTxValidation = disable;
|
|
119
|
+
}
|
|
120
|
+
async handleGossipedTx(payload, msgId, source) {
|
|
121
|
+
if (this.disableTxValidation) {
|
|
122
|
+
const p2pMessage = P2PMessage.fromMessageData(payload);
|
|
123
|
+
const tx = Tx.fromBuffer(p2pMessage.payload);
|
|
124
|
+
this.node.services.pubsub.reportMessageValidationResult(msgId, source.toString(), TopicValidatorResult.Accept);
|
|
125
|
+
const txHash = tx.getTxHash();
|
|
126
|
+
const txHashString = txHash.toString();
|
|
127
|
+
this.logger.verbose(`Received tx ${txHashString} from external peer ${source.toString()}.`);
|
|
128
|
+
await this.mempools.txPool.addTxs([
|
|
129
|
+
tx
|
|
130
|
+
]);
|
|
131
|
+
} else {
|
|
132
|
+
await super.handleGossipedTx(payload, msgId, source);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
async handleNewGossipMessage(msg, msgId, source) {
|
|
136
|
+
this.gossipMessageCount++;
|
|
137
|
+
process.send({
|
|
138
|
+
type: 'GOSSIP_RECEIVED',
|
|
139
|
+
count: this.gossipMessageCount
|
|
140
|
+
});
|
|
141
|
+
await super.handleNewGossipMessage(msg, msgId, source);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
60
144
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
61
145
|
process.on('message', async (msg)=>{
|
|
62
146
|
const { type, config, clientIndex } = msg;
|
|
@@ -65,33 +149,23 @@ process.on('message', async (msg)=>{
|
|
|
65
149
|
const txPool = mockTxPool();
|
|
66
150
|
const attestationPool = mockAttestationPool();
|
|
67
151
|
const epochCache = mockEpochCache();
|
|
68
|
-
const worldState =
|
|
152
|
+
const worldState = mockWorldStateSynchronizer();
|
|
69
153
|
const l2BlockSource = new MockL2BlockSource();
|
|
70
|
-
await l2BlockSource.createBlocks(100);
|
|
71
154
|
const proofVerifier = new AlwaysTrueCircuitVerifier();
|
|
72
155
|
const kvStore = await openTmpStore(`test-${clientIndex}`);
|
|
73
156
|
const logger = createLogger(`p2p:${clientIndex}`);
|
|
157
|
+
const telemetry = getTelemetryClient();
|
|
74
158
|
const deps = {
|
|
75
159
|
txPool,
|
|
76
160
|
attestationPool,
|
|
77
161
|
store: kvStore,
|
|
78
162
|
logger
|
|
79
163
|
};
|
|
80
|
-
const client = await createP2PClient(P2PClientType.Full, config, l2BlockSource, proofVerifier, worldState, epochCache, undefined, deps);
|
|
81
|
-
// Create
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
process.send({
|
|
86
|
-
type: 'GOSSIP_RECEIVED',
|
|
87
|
-
count: gossipMessageCount
|
|
88
|
-
});
|
|
89
|
-
return client.p2pService.constructor.prototype.handleNewGossipMessage.apply(client.p2pService, [
|
|
90
|
-
msg,
|
|
91
|
-
msgId,
|
|
92
|
-
source
|
|
93
|
-
]);
|
|
94
|
-
};
|
|
164
|
+
const client = await createP2PClient(P2PClientType.Full, config, l2BlockSource, proofVerifier, worldState, epochCache, 'test-p2p-bench-worker', undefined, telemetry, deps);
|
|
165
|
+
// Create test service with validation disabled
|
|
166
|
+
const testService = new TestLibP2PService(P2PClientType.Full, config, client.p2pService.node, client.p2pService.peerDiscoveryService, client.p2pService.mempools, client.p2pService.reqresp, client.p2pService.peerManager, client.p2pService.archiver, epochCache, proofVerifier, worldState, telemetry, logger, true);
|
|
167
|
+
// Replace the existing p2pService with our test version
|
|
168
|
+
client.p2pService = testService;
|
|
95
169
|
await client.start();
|
|
96
170
|
// Wait until the client is ready
|
|
97
171
|
for(let i = 0; i < 100; i++){
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfbG9nX2ZpbGUuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0YmVuY2gvcGFyc2VfbG9nX2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -14,7 +14,7 @@ function getTimestamp(line) {
|
|
|
14
14
|
return parseInt(timestampMatch[1], 10);
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
|
-
* Parses a single log line. If the line contains an "
|
|
17
|
+
* Parses a single log line. If the line contains an "Received tx" event,
|
|
18
18
|
* it extracts the timestamp and the peer ID.
|
|
19
19
|
*/ function parseReceivedTx(line) {
|
|
20
20
|
if (!line.includes('Received tx')) {
|
|
@@ -26,9 +26,9 @@ function getTimestamp(line) {
|
|
|
26
26
|
logger.error('No timestamp found in received tx log');
|
|
27
27
|
return null;
|
|
28
28
|
}
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
const peerIdMatch = line.match(/p2p:(\d+)
|
|
29
|
+
// Extract the peer ID from the log line
|
|
30
|
+
// Example format: "module":"p2p:1","msg":"Received tx 0x0feeafa65f25fd8d613fe4aca44fd65fe41c149ef1941e2019d40925c40748f9 from external peer 16Uiu2HAm8w4oxXF3TwDKoGL9U66thMXWqCgPnb2CgkYwmUqFCWbC."
|
|
31
|
+
const peerIdMatch = line.match(/"module":"p2p:(\d+)"/);
|
|
32
32
|
if (!peerIdMatch) {
|
|
33
33
|
logger.error('No peer Number found in received tx log');
|
|
34
34
|
return null;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGJlbmNoLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3Rlc3RiZW5jaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { sleep } from '@aztec/foundation/sleep';
|
|
3
|
-
import {
|
|
3
|
+
import { ChonkProof } from '@aztec/stdlib/proofs';
|
|
4
4
|
import { mockTx } from '@aztec/stdlib/testing';
|
|
5
5
|
import assert from 'assert';
|
|
6
6
|
import path from 'path';
|
|
@@ -17,7 +17,7 @@ async function main() {
|
|
|
17
17
|
}
|
|
18
18
|
const configPath = path.join(__dirname, '../../testbench/configurations', configFile);
|
|
19
19
|
const config = await import(configPath, {
|
|
20
|
-
|
|
20
|
+
with: {
|
|
21
21
|
type: 'json'
|
|
22
22
|
}
|
|
23
23
|
});
|
|
@@ -34,7 +34,7 @@ async function main() {
|
|
|
34
34
|
logger.info('Workers Ready');
|
|
35
35
|
// Send tx from client 0
|
|
36
36
|
const tx = await mockTx(1, {
|
|
37
|
-
|
|
37
|
+
chonkProof: ChonkProof.random()
|
|
38
38
|
});
|
|
39
39
|
workerClientManager.processes[0].send({
|
|
40
40
|
type: 'SEND_TX',
|
|
@@ -42,7 +42,7 @@ async function main() {
|
|
|
42
42
|
});
|
|
43
43
|
logger.info('Transaction sent from client 0');
|
|
44
44
|
// Give time for message propagation
|
|
45
|
-
await sleep(
|
|
45
|
+
await sleep(10000);
|
|
46
46
|
logger.info('Checking message propagation results');
|
|
47
47
|
// Check message propagation results
|
|
48
48
|
const numberOfClientsThatReceivedMessage = workerClientManager.numberOfClientsThatReceivedMessage();
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
1
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
2
|
import type { ChainConfig } from '@aztec/stdlib/config';
|
|
4
3
|
import { type ChildProcess } from 'child_process';
|
|
@@ -14,10 +13,6 @@ declare class WorkerClientManager {
|
|
|
14
13
|
private messageReceivedByClient;
|
|
15
14
|
constructor(logger: Logger, p2pConfig: Partial<P2PConfig>);
|
|
16
15
|
destroy(): void;
|
|
17
|
-
/**
|
|
18
|
-
* Creates address strings from a port
|
|
19
|
-
*/
|
|
20
|
-
private getAddresses;
|
|
21
16
|
/**
|
|
22
17
|
* Creates a client configuration object
|
|
23
18
|
*/
|
|
@@ -53,4 +48,4 @@ declare class WorkerClientManager {
|
|
|
53
48
|
cleanup(): Promise<void>;
|
|
54
49
|
}
|
|
55
50
|
export { WorkerClientManager, testChainConfig };
|
|
56
|
-
//# sourceMappingURL=
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyX2NsaWVudF9tYW5hZ2VyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdGJlbmNoL3dvcmtlcl9jbGllbnRfbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFJeEQsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQVFuRSxRQUFBLE1BQU0sZUFBZSxFQUFFLFdBTXRCLENBQUM7QUFFRixjQUFNLG1CQUFtQjtJQUNoQixTQUFTLEVBQUUsWUFBWSxFQUFFLENBQU07SUFDL0IsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLENBQU07SUFDakMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFNO0lBQ3hCLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBTTtJQUM1QixPQUFPLENBQUMsU0FBUyxDQUFxQjtJQUN0QyxPQUFPLENBQUMsTUFBTSxDQUFTO0lBQ3ZCLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBZ0I7SUFFL0MsWUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLEVBR3hEO0lBRUQsT0FBTyxTQUtOO0lBRUQ7O09BRUc7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0lBaUIxQjs7T0FFRztJQUNILE9BQU8sQ0FBQyxrQkFBa0I7SUFvRDFCOzs7Ozs7T0FNRztJQUNHLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxNQUFNLHFCQXlDOUM7SUFFRCw0QkFBNEIsU0FFM0I7SUFFRCxrQ0FBa0MsV0FFakM7SUFFRDs7Ozs7T0FLRztJQUNHLFVBQVUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQTRDcEQ7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxnQkFBZ0I7SUFzQ3hCOztPQUVHO0lBQ0csT0FBTyxrQkFnQ1o7Q0FDRjtBQUVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker_client_manager.d.ts","sourceRoot":"","sources":["../../src/testbench/worker_client_manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"worker_client_manager.d.ts","sourceRoot":"","sources":["../../src/testbench/worker_client_manager.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,KAAK,YAAY,EAAQ,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,cAAc,CAAC;AAQnE,QAAA,MAAM,eAAe,EAAE,WAMtB,CAAC;AAEF,cAAM,mBAAmB;IAChB,SAAS,EAAE,YAAY,EAAE,CAAM;IAC/B,iBAAiB,EAAE,MAAM,EAAE,CAAM;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,KAAK,EAAE,MAAM,EAAE,CAAM;IAC5B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,uBAAuB,CAAgB;IAE/C,YAAY,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,EAGxD;IAED,OAAO,SAKN;IAED;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoD1B;;;;;;OAMG;IACG,iBAAiB,CAAC,eAAe,EAAE,MAAM,qBAyC9C;IAED,4BAA4B,SAE3B;IAED,kCAAkC,WAEjC;IAED;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBA4CpD;IAED;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsCxB;;OAEG;IACG,OAAO,kBAgCZ;CACF;AAED,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { SecretValue } from '@aztec/foundation/config';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import { sleep } from '@aztec/foundation/sleep';
|
|
3
4
|
import { fork } from 'child_process';
|
|
@@ -11,7 +12,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
11
12
|
const workerPath = path.join(__dirname, '../../dest/testbench/p2p_client_testbench_worker.js');
|
|
12
13
|
const testChainConfig = {
|
|
13
14
|
l1ChainId: 31337,
|
|
14
|
-
|
|
15
|
+
rollupVersion: 1,
|
|
15
16
|
l1Contracts: {
|
|
16
17
|
rollupAddress: EthAddress.random()
|
|
17
18
|
}
|
|
@@ -35,25 +36,15 @@ class WorkerClientManager {
|
|
|
35
36
|
});
|
|
36
37
|
}
|
|
37
38
|
/**
|
|
38
|
-
* Creates address strings from a port
|
|
39
|
-
*/ getAddresses(port) {
|
|
40
|
-
return {
|
|
41
|
-
addr: `127.0.0.1:${port}`,
|
|
42
|
-
listenAddr: `0.0.0.0:${port}`
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
39
|
* Creates a client configuration object
|
|
47
40
|
*/ createClientConfig(clientIndex, port, otherNodes) {
|
|
48
|
-
const { addr, listenAddr } = this.getAddresses(port);
|
|
49
41
|
return {
|
|
50
42
|
...getP2PDefaultConfig(),
|
|
51
43
|
p2pEnabled: true,
|
|
52
|
-
peerIdPrivateKey: this.peerIdPrivateKeys[clientIndex],
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
udpAnnounceAddress: addr,
|
|
44
|
+
peerIdPrivateKey: new SecretValue(this.peerIdPrivateKeys[clientIndex]),
|
|
45
|
+
listenAddress: '127.0.0.1',
|
|
46
|
+
p2pIp: '127.0.0.1',
|
|
47
|
+
p2pPort: port,
|
|
57
48
|
bootstrapNodes: [
|
|
58
49
|
...otherNodes
|
|
59
50
|
],
|
|
@@ -177,6 +168,7 @@ class WorkerClientManager {
|
|
|
177
168
|
this.peerEnrs[clientIndex] = await makeEnr(this.peerIdPrivateKeys[clientIndex], newPort, testChainConfig);
|
|
178
169
|
// Maximum seed with 10 other peers to allow peer discovery to connect them at a smoother rate
|
|
179
170
|
const otherNodes = this.peerEnrs.filter((_, ind)=>ind !== clientIndex && ind < Math.min(this.peerEnrs.length, 10));
|
|
171
|
+
this.logger.info(`Changing port for client ${clientIndex} to ${newPort} with other nodes `, otherNodes);
|
|
180
172
|
const config = this.createClientConfig(clientIndex, newPort, otherNodes);
|
|
181
173
|
const [childProcess, readySignal] = this.spawnWorkerProcess(config, clientIndex);
|
|
182
174
|
this.processes[clientIndex] = childProcess;
|
|
@@ -207,7 +199,7 @@ class WorkerClientManager {
|
|
|
207
199
|
} catch (e) {
|
|
208
200
|
this.logger.error(`Error force killing process ${index}:`, e);
|
|
209
201
|
}
|
|
210
|
-
},
|
|
202
|
+
}, 5000); // 5 second timeout for graceful exit
|
|
211
203
|
// Listen for process exit
|
|
212
204
|
process1.once('exit', ()=>{
|
|
213
205
|
clearTimeout(forceKillTimeout);
|
|
@@ -218,7 +210,7 @@ class WorkerClientManager {
|
|
|
218
210
|
process1.send({
|
|
219
211
|
type: 'STOP'
|
|
220
212
|
});
|
|
221
|
-
} catch
|
|
213
|
+
} catch {
|
|
222
214
|
// If sending the message fails, force kill immediately
|
|
223
215
|
clearTimeout(forceKillTimeout);
|
|
224
216
|
try {
|
|
@@ -248,12 +240,12 @@ class WorkerClientManager {
|
|
|
248
240
|
if (!p.killed) {
|
|
249
241
|
p.kill('SIGKILL');
|
|
250
242
|
}
|
|
251
|
-
} catch
|
|
243
|
+
} catch {
|
|
252
244
|
// Ignore errors when force killing
|
|
253
245
|
}
|
|
254
246
|
});
|
|
255
247
|
resolve();
|
|
256
|
-
},
|
|
248
|
+
}, 10000); // 10 second timeout for all processes
|
|
257
249
|
})
|
|
258
250
|
]);
|
|
259
251
|
} catch (error) {
|
package/dest/types/index.d.ts
CHANGED
|
@@ -14,7 +14,8 @@ export declare enum PeerEvent {
|
|
|
14
14
|
*/
|
|
15
15
|
export declare enum Discv5Event {
|
|
16
16
|
DISCOVERED = "discovered",
|
|
17
|
-
ENR_ADDED = "enrAdded"
|
|
17
|
+
ENR_ADDED = "enrAdded",
|
|
18
|
+
MULTIADDR_UPDATED = "multiaddrUpdated"
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* Events emitted from the GossipSub protocol.
|
|
@@ -29,4 +30,5 @@ export declare enum GossipSubEvent {
|
|
|
29
30
|
* Aztec network specific types
|
|
30
31
|
*/
|
|
31
32
|
export declare const AZTEC_ENR_KEY = "aztec";
|
|
32
|
-
|
|
33
|
+
export declare const AZTEC_ENR_CLIENT_VERSION_KEY = "ver";
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7cURBRXFEO0FBRXJEOztHQUVHO0FBQ0gsb0JBQVksU0FBUztJQUNuQixVQUFVLG9CQUFvQjtJQUM5QixTQUFTLGlCQUFpQjtJQUMxQixZQUFZLG9CQUFvQjtDQUNqQztBQUVEOztHQUVHO0FBQ0gsb0JBQVksV0FBVztJQUNyQixVQUFVLGVBQWU7SUFDekIsU0FBUyxhQUFhO0lBQ3RCLGlCQUFpQixxQkFBcUI7Q0FDdkM7QUFFRDs7R0FFRztBQUNILG9CQUFZLGNBQWM7SUFDeEIsT0FBTyxzQkFBc0I7Q0FDOUI7QUFFRDs7cURBRXFEO0FBRXJEOztHQUVHO0FBQ0gsZUFBTyxNQUFNLGFBQWEsVUFBVSxDQUFDO0FBQ3JDLGVBQU8sTUFBTSw0QkFBNEIsUUFBUSxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;qDAEqD;AAErD;;GAEG;AACH,oBAAY,SAAS;IACnB,UAAU,oBAAoB;IAC9B,SAAS,iBAAiB;IAC1B,YAAY,oBAAoB;CACjC;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,UAAU,eAAe;IACzB,SAAS,aAAa;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;qDAEqD;AAErD;;GAEG;AACH,oBAAY,SAAS;IACnB,UAAU,oBAAoB;IAC9B,SAAS,iBAAiB;IAC1B,YAAY,oBAAoB;CACjC;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,UAAU,eAAe;IACzB,SAAS,aAAa;IACtB,iBAAiB,qBAAqB;CACvC;AAED;;GAEG;AACH,oBAAY,cAAc;IACxB,OAAO,sBAAsB;CAC9B;AAED;;qDAEqD;AAErD;;GAEG;AACH,eAAO,MAAM,aAAa,UAAU,CAAC;AACrC,eAAO,MAAM,4BAA4B,QAAQ,CAAC"}
|
package/dest/types/index.js
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
*/ export var Discv5Event = /*#__PURE__*/ function(Discv5Event) {
|
|
14
14
|
Discv5Event["DISCOVERED"] = "discovered";
|
|
15
15
|
Discv5Event["ENR_ADDED"] = "enrAdded";
|
|
16
|
+
Discv5Event["MULTIADDR_UPDATED"] = "multiaddrUpdated";
|
|
16
17
|
return Discv5Event;
|
|
17
18
|
}({});
|
|
18
19
|
/**
|
|
@@ -26,3 +27,4 @@
|
|
|
26
27
|
***************************************************/ /**
|
|
27
28
|
* Aztec network specific types
|
|
28
29
|
*/ export const AZTEC_ENR_KEY = 'aztec';
|
|
30
|
+
export const AZTEC_ENR_CLIENT_VERSION_KEY = 'ver';
|