@aztec/p2p 3.0.0-canary.a9708bd → 3.0.0-devnet.2-patch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/bootstrap/bootstrap.d.ts +1 -1
- package/dest/bootstrap/bootstrap.d.ts.map +1 -1
- package/dest/bootstrap/bootstrap.js +14 -4
- package/dest/client/factory.d.ts +2 -1
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +8 -3
- package/dest/client/index.d.ts +1 -1
- package/dest/client/interface.d.ts +8 -6
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +11 -34
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +68 -46
- package/dest/config.d.ts +65 -56
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +21 -5
- package/dest/enr/generate-enr.d.ts +2 -2
- package/dest/enr/generate-enr.d.ts.map +1 -1
- package/dest/enr/generate-enr.js +1 -1
- package/dest/enr/index.d.ts +1 -1
- package/dest/errors/attestation-pool.error.d.ts +7 -0
- package/dest/errors/attestation-pool.error.d.ts.map +1 -0
- package/dest/errors/attestation-pool.error.js +12 -0
- package/dest/errors/reqresp.error.d.ts +1 -1
- package/dest/errors/reqresp.error.d.ts.map +1 -1
- package/dest/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts +43 -6
- package/dest/mem_pools/attestation_pool/attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/attestation_pool_test_suite.js +72 -46
- package/dest/mem_pools/attestation_pool/index.d.ts +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts +15 -6
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/kv_attestation_pool.js +73 -18
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts +13 -6
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/memory_attestation_pool.js +69 -11
- package/dest/mem_pools/attestation_pool/mocks.d.ts +226 -5
- package/dest/mem_pools/attestation_pool/mocks.d.ts.map +1 -1
- package/dest/mem_pools/attestation_pool/mocks.js +9 -7
- package/dest/mem_pools/index.d.ts +1 -1
- package/dest/mem_pools/instrumentation.d.ts +3 -1
- package/dest/mem_pools/instrumentation.d.ts.map +1 -1
- package/dest/mem_pools/instrumentation.js +11 -2
- package/dest/mem_pools/interface.d.ts +1 -1
- package/dest/mem_pools/tx_pool/aztec_kv_tx_pool.d.ts +17 -40
- 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 +103 -44
- package/dest/mem_pools/tx_pool/index.d.ts +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts +19 -6
- package/dest/mem_pools/tx_pool/memory_tx_pool.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/memory_tx_pool.js +88 -9
- package/dest/mem_pools/tx_pool/priority.d.ts +1 -1
- package/dest/mem_pools/tx_pool/tx_pool.d.ts +21 -6
- 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 +132 -7
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts +4 -2
- package/dest/msg_validators/attestation_validator/attestation_validator.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/attestation_validator.js +32 -5
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts +20 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.d.ts.map +1 -0
- package/dest/msg_validators/attestation_validator/fisherman_attestation_validator.js +67 -0
- package/dest/msg_validators/attestation_validator/index.d.ts +2 -1
- package/dest/msg_validators/attestation_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/attestation_validator/index.js +1 -0
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts +5 -2
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/block_proposal_validator/block_proposal_validator.js +56 -9
- package/dest/msg_validators/block_proposal_validator/index.d.ts +1 -1
- package/dest/msg_validators/index.d.ts +1 -1
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts +1 -1
- package/dest/msg_validators/msg_seen_validator/msg_seen_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +1 -1
- package/dest/msg_validators/tx_validator/archive_cache.d.ts +2 -2
- package/dest/msg_validators/tx_validator/archive_cache.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/block_header_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/block_header_validator.js +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/data_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/double_spend_validator.js +1 -1
- package/dest/msg_validators/tx_validator/factory.d.ts +4 -3
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.js +11 -5
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.d.ts +2 -1
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.js +1 -0
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts +3 -6
- package/dest/msg_validators/tx_validator/metadata_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/metadata_validator.js +6 -24
- package/dest/msg_validators/tx_validator/phases_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.js +3 -1
- package/dest/msg_validators/tx_validator/test_utils.d.ts +2 -2
- package/dest/msg_validators/tx_validator/test_utils.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts +13 -0
- package/dest/msg_validators/tx_validator/timestamp_validator.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/timestamp_validator.js +32 -0
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/tx_permitted_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts +1 -1
- package/dest/msg_validators/tx_validator/tx_proof_validator.d.ts.map +1 -1
- package/dest/services/data_store.d.ts +1 -1
- package/dest/services/data_store.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.d.ts +3 -3
- package/dest/services/discv5/discV5_service.d.ts.map +1 -1
- package/dest/services/discv5/discV5_service.js +2 -2
- package/dest/services/dummy_service.d.ts +2 -2
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/encoding.d.ts +25 -4
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +74 -6
- package/dest/services/gossipsub/scoring.d.ts +1 -1
- package/dest/services/index.d.ts +1 -1
- package/dest/services/libp2p/instrumentation.d.ts +3 -1
- package/dest/services/libp2p/instrumentation.d.ts.map +1 -1
- package/dest/services/libp2p/instrumentation.js +9 -2
- package/dest/services/libp2p/libp2p_service.d.ts +29 -69
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +375 -133
- package/dest/services/peer-manager/interface.d.ts +1 -1
- package/dest/services/peer-manager/metrics.d.ts +3 -1
- package/dest/services/peer-manager/metrics.d.ts.map +1 -1
- package/dest/services/peer-manager/metrics.js +11 -0
- package/dest/services/peer-manager/peer_manager.d.ts +1 -32
- package/dest/services/peer-manager/peer_manager.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_manager.js +27 -12
- package/dest/services/peer-manager/peer_scoring.d.ts +7 -2
- package/dest/services/peer-manager/peer_scoring.d.ts.map +1 -1
- package/dest/services/peer-manager/peer_scoring.js +40 -2
- package/dest/services/reqresp/config.d.ts +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts +1 -1
- package/dest/services/reqresp/connection-sampler/batch_connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts +1 -4
- package/dest/services/reqresp/connection-sampler/connection_sampler.d.ts.map +1 -1
- package/dest/services/reqresp/index.d.ts +1 -1
- package/dest/services/reqresp/interface.d.ts +2 -11
- package/dest/services/reqresp/interface.d.ts.map +1 -1
- package/dest/services/reqresp/interface.js +1 -18
- package/dest/services/reqresp/metrics.d.ts +1 -1
- package/dest/services/reqresp/metrics.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/auth.d.ts +2 -2
- package/dest/services/reqresp/protocols/auth.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/auth.js +2 -2
- package/dest/services/reqresp/protocols/block.d.ts +1 -1
- package/dest/services/reqresp/protocols/block.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block.js +3 -2
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts +1 -1
- package/dest/services/reqresp/protocols/block_txs/bitvector.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_handler.d.ts +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts +4 -6
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/block_txs/block_txs_reqresp.js +1 -1
- package/dest/services/reqresp/protocols/block_txs/index.d.ts +1 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts +1 -1
- package/dest/services/reqresp/protocols/goodbye.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/index.d.ts +1 -1
- package/dest/services/reqresp/protocols/ping.d.ts +1 -1
- package/dest/services/reqresp/protocols/status.d.ts +6 -5
- package/dest/services/reqresp/protocols/status.d.ts.map +1 -1
- package/dest/services/reqresp/protocols/status.js +4 -3
- package/dest/services/reqresp/protocols/tx.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/index.d.ts +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts +2 -2
- package/dest/services/reqresp/rate-limiter/rate_limiter.d.ts.map +1 -1
- package/dest/services/reqresp/rate-limiter/rate_limits.d.ts +1 -1
- package/dest/services/reqresp/reqresp.d.ts +1 -41
- package/dest/services/reqresp/reqresp.d.ts.map +1 -1
- package/dest/services/reqresp/reqresp.js +14 -10
- package/dest/services/reqresp/status.d.ts +2 -2
- package/dest/services/reqresp/status.d.ts.map +1 -1
- package/dest/services/service.d.ts +2 -2
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/tx_collection/config.d.ts +1 -1
- package/dest/services/tx_collection/fast_tx_collection.d.ts +4 -9
- package/dest/services/tx_collection/fast_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/fast_tx_collection.js +6 -1
- package/dest/services/tx_collection/index.d.ts +1 -1
- package/dest/services/tx_collection/instrumentation.d.ts +1 -1
- package/dest/services/tx_collection/instrumentation.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.d.ts +6 -7
- package/dest/services/tx_collection/slow_tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/slow_tx_collection.js +2 -1
- package/dest/services/tx_collection/tx_collection.d.ts +12 -11
- package/dest/services/tx_collection/tx_collection.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection.js +3 -2
- package/dest/services/tx_collection/tx_collection_sink.d.ts +3 -3
- package/dest/services/tx_collection/tx_collection_sink.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_collection_sink.js +34 -4
- package/dest/services/tx_collection/tx_source.d.ts +1 -1
- package/dest/services/tx_collection/tx_source.d.ts.map +1 -1
- package/dest/services/tx_collection/tx_source.js +2 -2
- package/dest/services/tx_provider.d.ts +5 -4
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider.js +8 -4
- package/dest/services/tx_provider_instrumentation.d.ts +1 -1
- package/dest/services/tx_provider_instrumentation.d.ts.map +1 -1
- package/dest/test-helpers/generate-peer-id-private-keys.d.ts +1 -1
- package/dest/test-helpers/get-ports.d.ts +1 -1
- package/dest/test-helpers/get-ports.d.ts.map +1 -1
- package/dest/test-helpers/index.d.ts +1 -1
- package/dest/test-helpers/make-enrs.d.ts +1 -1
- package/dest/test-helpers/make-enrs.js +1 -1
- package/dest/test-helpers/make-test-p2p-clients.d.ts +2 -2
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/mock-pubsub.d.ts +4 -4
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
- package/dest/test-helpers/mock-tx-helpers.d.ts +12 -0
- package/dest/test-helpers/mock-tx-helpers.d.ts.map +1 -0
- package/dest/test-helpers/mock-tx-helpers.js +19 -0
- package/dest/test-helpers/reqresp-nodes.d.ts +2 -2
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +4 -3
- package/dest/testbench/p2p_client_testbench_worker.d.ts +1 -1
- package/dest/testbench/p2p_client_testbench_worker.js +16 -9
- package/dest/testbench/parse_log_file.d.ts +1 -1
- package/dest/testbench/testbench.d.ts +1 -1
- package/dest/testbench/testbench.js +2 -2
- package/dest/testbench/worker_client_manager.d.ts +1 -1
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/types/index.d.ts +1 -1
- package/dest/util.d.ts +2 -1
- package/dest/util.d.ts.map +1 -1
- package/dest/util.js +11 -2
- package/dest/versioning.d.ts +2 -2
- package/dest/versioning.d.ts.map +1 -1
- package/dest/versioning.js +2 -2
- package/package.json +21 -21
- package/src/bootstrap/bootstrap.ts +15 -4
- package/src/client/factory.ts +17 -3
- package/src/client/interface.ts +8 -5
- package/src/client/p2p_client.ts +88 -74
- package/src/config.ts +33 -6
- package/src/enr/generate-enr.ts +1 -1
- package/src/errors/attestation-pool.error.ts +13 -0
- package/src/mem_pools/attestation_pool/attestation_pool.ts +46 -5
- package/src/mem_pools/attestation_pool/attestation_pool_test_suite.ts +89 -48
- package/src/mem_pools/attestation_pool/kv_attestation_pool.ts +107 -24
- package/src/mem_pools/attestation_pool/memory_attestation_pool.ts +98 -19
- package/src/mem_pools/attestation_pool/mocks.ts +11 -8
- package/src/mem_pools/instrumentation.ts +13 -0
- package/src/mem_pools/tx_pool/aztec_kv_tx_pool.ts +116 -48
- package/src/mem_pools/tx_pool/memory_tx_pool.ts +98 -12
- package/src/mem_pools/tx_pool/tx_pool.ts +20 -5
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +115 -7
- package/src/msg_validators/attestation_validator/attestation_validator.ts +41 -6
- package/src/msg_validators/attestation_validator/fisherman_attestation_validator.ts +91 -0
- package/src/msg_validators/attestation_validator/index.ts +1 -0
- package/src/msg_validators/block_proposal_validator/block_proposal_validator.ts +63 -18
- package/src/msg_validators/tx_validator/archive_cache.ts +1 -1
- package/src/msg_validators/tx_validator/block_header_validator.ts +2 -2
- package/src/msg_validators/tx_validator/double_spend_validator.ts +1 -1
- package/src/msg_validators/tx_validator/factory.ts +13 -6
- package/src/msg_validators/tx_validator/index.ts +1 -0
- package/src/msg_validators/tx_validator/metadata_validator.ts +8 -42
- package/src/msg_validators/tx_validator/phases_validator.ts +3 -1
- package/src/msg_validators/tx_validator/test_utils.ts +1 -1
- package/src/msg_validators/tx_validator/timestamp_validator.ts +47 -0
- package/src/services/discv5/discV5_service.ts +2 -2
- package/src/services/dummy_service.ts +1 -1
- package/src/services/encoding.ts +81 -6
- package/src/services/libp2p/instrumentation.ts +10 -1
- package/src/services/libp2p/libp2p_service.ts +427 -157
- package/src/services/peer-manager/metrics.ts +10 -0
- package/src/services/peer-manager/peer_manager.ts +22 -14
- package/src/services/peer-manager/peer_scoring.ts +46 -3
- package/src/services/reqresp/interface.ts +1 -22
- package/src/services/reqresp/protocols/auth.ts +2 -2
- package/src/services/reqresp/protocols/block.ts +3 -2
- package/src/services/reqresp/protocols/block_txs/block_txs_reqresp.ts +1 -1
- package/src/services/reqresp/protocols/status.ts +9 -8
- package/src/services/reqresp/reqresp.ts +15 -11
- package/src/services/service.ts +1 -1
- package/src/services/tx_collection/fast_tx_collection.ts +8 -5
- package/src/services/tx_collection/slow_tx_collection.ts +7 -6
- package/src/services/tx_collection/tx_collection.ts +12 -10
- package/src/services/tx_collection/tx_collection_sink.ts +34 -3
- package/src/services/tx_collection/tx_source.ts +2 -2
- package/src/services/tx_provider.ts +9 -7
- package/src/test-helpers/make-enrs.ts +1 -1
- package/src/test-helpers/mock-tx-helpers.ts +24 -0
- package/src/test-helpers/reqresp-nodes.ts +3 -2
- package/src/testbench/p2p_client_testbench_worker.ts +12 -5
- package/src/testbench/testbench.ts +2 -2
- package/src/util.ts +12 -2
- package/src/versioning.ts +3 -3
|
@@ -35,4 +35,4 @@ export declare class BootstrapNode implements P2PBootstrapApi {
|
|
|
35
35
|
getEncodedEnr(): Promise<any>;
|
|
36
36
|
getRoutingTable(): Promise<any>;
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vdHN0cmFwLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYm9vdHN0cmFwL2Jvb3RzdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBc0IsS0FBSyxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUtoRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkQ7O0dBRUc7QUFDSCxxQkFBYSxhQUFjLFlBQVcsZUFBZTtJQUtqRCxPQUFPLENBQUMsS0FBSztJQUNiLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxNQUFNO0lBTmhCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBaUM7SUFDOUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFTO0lBRXhCLFlBQ1UsS0FBSyxFQUFFLGlCQUFpQixFQUN4QixTQUFTLEVBQUUsZUFBZSxFQUMxQixNQUFNLHlDQUFnQyxFQUM1QztJQUVKOzs7O09BSUc7SUFDVSxLQUFLLENBQUMsTUFBTSxFQUFFLGNBQWMsaUJBaUZ4QztJQUVEOzs7T0FHRztJQUNVLElBQUksa0JBS2hCO0lBRUQsT0FBTyxDQUFDLGlCQUFpQjtJQU16QixPQUFPLENBQUMsWUFBWTtJQU1wQjs7O09BR0c7SUFDSSxTQUFTLFdBR2Y7SUFFTSxNQUFNLFFBR1o7SUFFTSxhQUFhLGlCQUduQjtJQUVNLGVBQWUsaUJBR3JCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD;;GAEG;AACH,qBAAa,aAAc,YAAW,eAAe;IAKjD,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,MAAM;IANhB,OAAO,CAAC,IAAI,CAAC,CAAiC;IAC9C,OAAO,CAAC,MAAM,CAAC,CAAS;IAExB,YACU,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,eAAe,EAC1B,MAAM,yCAAgC,EAC5C;IAEJ;;;;OAIG;IACU,KAAK,CAAC,MAAM,EAAE,cAAc,iBAiFxC;IAED;;;OAGG;IACU,IAAI,kBAKhB;IAED,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;IAMpB;;;OAGG;IACI,SAAS,WAGf;IAEM,MAAM,QAGZ;IAEM,aAAa,iBAGnB;IAEM,eAAe,iBAGrB;CACF"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createLogger } from '@aztec/foundation/log';
|
|
2
2
|
import { OtelMetricsAdapter } from '@aztec/telemetry-client';
|
|
3
|
-
import { Discv5 } from '@chainsafe/discv5';
|
|
4
|
-
import { ENR } from '@chainsafe/enr';
|
|
5
3
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
4
|
+
import { Discv5 } from '@nethermindeth/discv5';
|
|
5
|
+
import { ENR } from '@nethermindeth/enr';
|
|
6
6
|
import { createBootnodeENRandPeerId } from '../enr/generate-enr.js';
|
|
7
|
-
import { convertToMultiaddr, getPeerIdPrivateKey } from '../util.js';
|
|
7
|
+
import { convertToMultiaddr, getPeerIdPrivateKey, getPublicIp } from '../util.js';
|
|
8
8
|
/**
|
|
9
9
|
* Encapsulates a 'Bootstrap' node, used for the purpose of assisting new joiners in acquiring peers.
|
|
10
10
|
*/ export class BootstrapNode {
|
|
@@ -24,7 +24,17 @@ import { convertToMultiaddr, getPeerIdPrivateKey } from '../util.js';
|
|
|
24
24
|
* @param config - A partial P2P configuration. No need for TCP values as well as aztec node specific values.
|
|
25
25
|
* @returns An empty promise.
|
|
26
26
|
*/ async start(config) {
|
|
27
|
-
const {
|
|
27
|
+
const { p2pPort, listenAddress, p2pBroadcastPort, queryForIp } = config;
|
|
28
|
+
let p2pIp = config.p2pIp;
|
|
29
|
+
this.logger.info(`Starting bootstrap node with config: ${JSON.stringify(config)}`);
|
|
30
|
+
if (!p2pIp) {
|
|
31
|
+
if (queryForIp) {
|
|
32
|
+
this.logger.info('Querying for public IP address...');
|
|
33
|
+
const publicIp = await getPublicIp();
|
|
34
|
+
p2pIp = publicIp;
|
|
35
|
+
this.logger.info(`Found public IP address: ${publicIp}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
28
38
|
if (!p2pIp) {
|
|
29
39
|
throw new Error('You need to provide a P2P IP address.');
|
|
30
40
|
}
|
package/dest/client/factory.d.ts
CHANGED
|
@@ -26,5 +26,6 @@ export type P2PClientDeps<T extends P2PClientType> = {
|
|
|
26
26
|
export declare const P2P_STORE_NAME = "p2p";
|
|
27
27
|
export declare const P2P_ARCHIVE_STORE_NAME = "p2p-archive";
|
|
28
28
|
export declare const P2P_PEER_STORE_NAME = "p2p-peers";
|
|
29
|
+
export declare const P2P_ATTESTATION_STORE_NAME = "p2p-attestation";
|
|
29
30
|
export declare function createP2PClient<T extends P2PClientType>(clientType: T, inputConfig: P2PConfig & DataStoreConfig & ChainConfig, archiver: L2BlockSource & ContractDataSource, proofVerifier: ClientProtocolCircuitVerifier, worldStateSynchronizer: WorldStateSynchronizer, epochCache: EpochCacheInterface, packageVersion: string, dateProvider?: DateProvider, telemetry?: TelemetryClient, deps?: P2PClientDeps<T>): Promise<P2PClient<T>>;
|
|
30
|
-
//# sourceMappingURL=
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFzQixNQUFNLHlCQUF5QixDQUFDO0FBRW5GLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFHekYsT0FBTyxFQUFpQixLQUFLLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQTBCLE1BQU0sd0NBQXdDLENBQUM7QUFHL0YsTUFBTSxNQUFNLGFBQWEsQ0FBQyxDQUFDLFNBQVMsYUFBYSxJQUFJO0lBQ25ELE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixLQUFLLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUMxQixlQUFlLENBQUMsRUFBRSxDQUFDLFNBQVMsYUFBYSxDQUFDLElBQUksR0FBRyxlQUFlLEdBQUcsU0FBUyxDQUFDO0lBQzdFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQix1QkFBdUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0NBQ3ZHLENBQUM7QUFFRixlQUFPLE1BQU0sY0FBYyxRQUFRLENBQUM7QUFDcEMsZUFBTyxNQUFNLHNCQUFzQixnQkFBZ0IsQ0FBQztBQUNwRCxlQUFPLE1BQU0sbUJBQW1CLGNBQWMsQ0FBQztBQUMvQyxlQUFPLE1BQU0sMEJBQTBCLG9CQUFvQixDQUFDO0FBRTVELHdCQUFzQixlQUFlLENBQUMsQ0FBQyxTQUFTLGFBQWEsRUFDM0QsVUFBVSxFQUFFLENBQUMsRUFDYixXQUFXLEVBQUUsU0FBUyxHQUFHLGVBQWUsR0FBRyxXQUFXLEVBQ3RELFFBQVEsRUFBRSxhQUFhLEdBQUcsa0JBQWtCLEVBQzVDLGFBQWEsRUFBRSw2QkFBNkIsRUFDNUMsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQzlDLFVBQVUsRUFBRSxtQkFBbUIsRUFDL0IsY0FBYyxFQUFFLE1BQU0sRUFDdEIsWUFBWSxHQUFFLFlBQWlDLEVBQy9DLFNBQVMsR0FBRSxlQUFzQyxFQUNqRCxJQUFJLEdBQUUsYUFBYSxDQUFDLENBQUMsQ0FBTSx5QkF5RjVCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/client/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAGzF,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,wCAAwC,CAAC;AAG/F,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,SAAS,aAAa,CAAC,IAAI,GAAG,eAAe,GAAG,SAAS,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACvG,CAAC;AAEF,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,mBAAmB,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/client/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAGzF,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,wCAAwC,CAAC;AAG/F,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,aAAa,IAAI;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,SAAS,aAAa,CAAC,IAAI,GAAG,eAAe,GAAG,SAAS,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC;IACrC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACvG,CAAC;AAEF,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,sBAAsB,gBAAgB,CAAC;AACpD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAC/C,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAE5D,wBAAsB,eAAe,CAAC,CAAC,SAAS,aAAa,EAC3D,UAAU,EAAE,CAAC,EACb,WAAW,EAAE,SAAS,GAAG,eAAe,GAAG,WAAW,EACtD,QAAQ,EAAE,aAAa,GAAG,kBAAkB,EAC5C,aAAa,EAAE,6BAA6B,EAC5C,sBAAsB,EAAE,sBAAsB,EAC9C,UAAU,EAAE,mBAAmB,EAC/B,cAAc,EAAE,MAAM,EACtB,YAAY,GAAE,YAAiC,EAC/C,SAAS,GAAE,eAAsC,EACjD,IAAI,GAAE,aAAa,CAAC,CAAC,CAAM,yBAyF5B"}
|
package/dest/client/factory.js
CHANGED
|
@@ -4,7 +4,7 @@ import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
|
4
4
|
import { P2PClientType } from '@aztec/stdlib/p2p';
|
|
5
5
|
import { getTelemetryClient } from '@aztec/telemetry-client';
|
|
6
6
|
import { P2PClient } from '../client/p2p_client.js';
|
|
7
|
-
import {
|
|
7
|
+
import { KvAttestationPool } from '../mem_pools/attestation_pool/kv_attestation_pool.js';
|
|
8
8
|
import { AztecKVTxPool } from '../mem_pools/tx_pool/index.js';
|
|
9
9
|
import { DummyP2PService } from '../services/dummy_service.js';
|
|
10
10
|
import { LibP2PService } from '../services/index.js';
|
|
@@ -14,22 +14,27 @@ import { configureP2PClientAddresses, createLibP2PPeerIdFromPrivateKey, getPeerI
|
|
|
14
14
|
export const P2P_STORE_NAME = 'p2p';
|
|
15
15
|
export const P2P_ARCHIVE_STORE_NAME = 'p2p-archive';
|
|
16
16
|
export const P2P_PEER_STORE_NAME = 'p2p-peers';
|
|
17
|
+
export const P2P_ATTESTATION_STORE_NAME = 'p2p-attestation';
|
|
17
18
|
export async function createP2PClient(clientType, inputConfig, archiver, proofVerifier, worldStateSynchronizer, epochCache, packageVersion, dateProvider = new DateProvider(), telemetry = getTelemetryClient(), deps = {}) {
|
|
18
19
|
const config = await configureP2PClientAddresses({
|
|
19
20
|
...inputConfig,
|
|
20
|
-
|
|
21
|
+
dataStoreMapSizeKb: inputConfig.p2pStoreMapSizeKb ?? inputConfig.dataStoreMapSizeKb
|
|
21
22
|
});
|
|
22
23
|
const logger = deps.logger ?? createLogger('p2p');
|
|
24
|
+
if (config.bootstrapNodes.length === 0) {
|
|
25
|
+
logger.warn('No bootstrap nodes have been provided. Set the BOOTSTRAP_NODES environment variable in order to join the P2P network');
|
|
26
|
+
}
|
|
23
27
|
const store = deps.store ?? await createStore(P2P_STORE_NAME, 2, config, createLogger('p2p:lmdb-v2'));
|
|
24
28
|
const archive = await createStore(P2P_ARCHIVE_STORE_NAME, 1, config, createLogger('p2p-archive:lmdb-v2'));
|
|
25
29
|
const peerStore = await createStore(P2P_PEER_STORE_NAME, 1, config, createLogger('p2p-peer:lmdb-v2'));
|
|
30
|
+
const attestationStore = await createStore(P2P_ATTESTATION_STORE_NAME, 1, config, createLogger('p2p-attestation:lmdb-v2'));
|
|
26
31
|
const l1Constants = await archiver.getL1Constants();
|
|
27
32
|
const mempools = {
|
|
28
33
|
txPool: deps.txPool ?? new AztecKVTxPool(store, archive, worldStateSynchronizer, telemetry, {
|
|
29
34
|
maxTxPoolSize: config.maxTxPoolSize,
|
|
30
35
|
archivedTxLimit: config.archivedTxLimit
|
|
31
36
|
}),
|
|
32
|
-
attestationPool: clientType === P2PClientType.Full ? deps.attestationPool ?? new
|
|
37
|
+
attestationPool: clientType === P2PClientType.Full ? deps.attestationPool ?? new KvAttestationPool(attestationStore, telemetry) : undefined
|
|
33
38
|
};
|
|
34
39
|
const p2pService = await createP2PService(config, clientType, archiver, proofVerifier, worldStateSynchronizer, epochCache, store, peerStore, mempools, deps.p2pServiceFactory, packageVersion, logger.createChild('libp2p_service'), telemetry);
|
|
35
40
|
const nodeSources = [
|
package/dest/client/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './p2p_client.js';
|
|
2
2
|
export * from './factory.js';
|
|
3
3
|
export * from './interface.js';
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGllbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGdCQUFnQixDQUFDIn0=
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { EthAddress, L2BlockId } from '@aztec/stdlib/block';
|
|
2
2
|
import type { P2PApiFull } from '@aztec/stdlib/interfaces/server';
|
|
3
|
-
import type { BlockProposal, P2PClientType } from '@aztec/stdlib/p2p';
|
|
3
|
+
import type { BlockAttestation, BlockProposal, P2PClientType } from '@aztec/stdlib/p2p';
|
|
4
4
|
import type { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
5
|
-
import type { ENR } from '@chainsafe/enr';
|
|
6
5
|
import type { PeerId } from '@libp2p/interface';
|
|
6
|
+
import type { ENR } from '@nethermindeth/enr';
|
|
7
7
|
import type { P2PConfig } from '../config.js';
|
|
8
8
|
import type { AuthRequest, StatusMessage } from '../services/index.js';
|
|
9
9
|
import type { ReqRespSubProtocol, ReqRespSubProtocolHandler, ReqRespSubProtocolValidators } from '../services/reqresp/interface.js';
|
|
@@ -40,6 +40,8 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
|
|
|
40
40
|
* @param proposal - the block proposal
|
|
41
41
|
*/
|
|
42
42
|
broadcastProposal(proposal: BlockProposal): Promise<void>;
|
|
43
|
+
/** Broadcasts block attestations to other peers. */
|
|
44
|
+
broadcastAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
43
45
|
/**
|
|
44
46
|
* Registers a callback from the validator client that determines how to behave when
|
|
45
47
|
* foreign block proposals are received
|
|
@@ -103,11 +105,11 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
|
|
|
103
105
|
*/
|
|
104
106
|
getArchivedTxByHash(txHash: TxHash): Promise<Tx | undefined>;
|
|
105
107
|
/**
|
|
106
|
-
* Returns whether the given tx hash is flagged as pending or
|
|
108
|
+
* Returns whether the given tx hash is flagged as pending, mined, or deleted.
|
|
107
109
|
* @param txHash - Hash of the tx to query.
|
|
108
|
-
* @returns Pending or
|
|
110
|
+
* @returns Pending, mined, or deleted depending on its status, or undefined if not found.
|
|
109
111
|
*/
|
|
110
|
-
getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | undefined>;
|
|
112
|
+
getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
|
|
111
113
|
/** Returns an iterator over pending txs on the mempool. */
|
|
112
114
|
iteratePendingTxs(): AsyncIterableIterator<Tx>;
|
|
113
115
|
/** Returns the number of pending txs in the mempool. */
|
|
@@ -152,4 +154,4 @@ export type P2P<T extends P2PClientType = P2PClientType.Full> = P2PApiFull<T> &
|
|
|
152
154
|
/** If node running this P2P stack is validator, passes in validator address to P2P layer */
|
|
153
155
|
registerThisValidatorAddresses(address: EthAddress[]): void;
|
|
154
156
|
};
|
|
155
|
-
//# sourceMappingURL=
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpZW50L2ludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hGLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZFLE9BQU8sS0FBSyxFQUNWLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsNEJBQTRCLEVBQzdCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RTs7R0FFRztBQUNILG9CQUFZLGNBQWM7SUFDeEIsSUFBSSxJQUFBO0lBQ0osUUFBUSxJQUFBO0lBQ1IsT0FBTyxJQUFBO0lBQ1AsT0FBTyxJQUFBO0NBQ1I7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxZQUFZO0lBQzNCOztPQUVHO0lBQ0gsS0FBSyxFQUFFLGNBQWMsQ0FBQztJQUN0Qjs7T0FFRztJQUNILGVBQWUsRUFBRSxTQUFTLENBQUM7Q0FDNUI7QUFFRDs7SUFFSTtBQUNK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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/client/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/client/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
1
2
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
2
3
|
import type { AztecAsyncKVStore } from '@aztec/kv-store';
|
|
3
4
|
import type { EthAddress, L2BlockSource, L2BlockStreamEvent, L2Tips } from '@aztec/stdlib/block';
|
|
@@ -6,8 +7,8 @@ import { type PeerInfo } from '@aztec/stdlib/interfaces/server';
|
|
|
6
7
|
import { BlockAttestation, type BlockProposal, type P2PClientType } from '@aztec/stdlib/p2p';
|
|
7
8
|
import type { Tx, TxHash } from '@aztec/stdlib/tx';
|
|
8
9
|
import { type TelemetryClient, WithTracer } from '@aztec/telemetry-client';
|
|
9
|
-
import type { ENR } from '@chainsafe/enr';
|
|
10
10
|
import type { PeerId } from '@libp2p/interface';
|
|
11
|
+
import type { ENR } from '@nethermindeth/enr';
|
|
11
12
|
import { type P2PConfig } from '../config.js';
|
|
12
13
|
import type { MemPools } from '../mem_pools/interface.js';
|
|
13
14
|
import type { AuthRequest, StatusMessage } from '../services/index.js';
|
|
@@ -61,7 +62,7 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
|
|
|
61
62
|
isP2PClient(): true;
|
|
62
63
|
getTxProvider(): TxProvider;
|
|
63
64
|
getPeers(includePending?: boolean): Promise<PeerInfo[]>;
|
|
64
|
-
getL2BlockHash(number:
|
|
65
|
+
getL2BlockHash(number: BlockNumber): Promise<string | undefined>;
|
|
65
66
|
updateP2PConfig(config: Partial<P2PConfig>): Promise<void>;
|
|
66
67
|
getL2Tips(): Promise<L2Tips>;
|
|
67
68
|
handleBlockStreamEvent(event: L2BlockStreamEvent): Promise<void>;
|
|
@@ -81,8 +82,10 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
|
|
|
81
82
|
/** Triggers a sync to the archiver. Used for testing. */
|
|
82
83
|
sync(): Promise<void>;
|
|
83
84
|
broadcastProposal(proposal: BlockProposal): Promise<void>;
|
|
84
|
-
|
|
85
|
+
broadcastAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
86
|
+
getAttestationsForSlot(slot: SlotNumber, proposalId?: string): Promise<BlockAttestation[]>;
|
|
85
87
|
addAttestations(attestations: BlockAttestation[]): Promise<void>;
|
|
88
|
+
deleteAttestation(attestation: BlockAttestation): Promise<void>;
|
|
86
89
|
registerBlockProposalHandler(handler: P2PBlockReceivedCallback): void;
|
|
87
90
|
/**
|
|
88
91
|
* Uses the batched Request Response protocol to request a set of transactions from the network.
|
|
@@ -141,7 +144,7 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
|
|
|
141
144
|
* @param txHash - Hash of the tx to query.
|
|
142
145
|
* @returns Pending or mined depending on its status, or undefined if not found.
|
|
143
146
|
*/
|
|
144
|
-
getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | undefined>;
|
|
147
|
+
getTxStatus(txHash: TxHash): Promise<'pending' | 'mined' | 'deleted' | undefined>;
|
|
145
148
|
getEnr(): ENR | undefined;
|
|
146
149
|
getEncodedEnr(): Promise<string | undefined>;
|
|
147
150
|
/**
|
|
@@ -160,13 +163,13 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
|
|
|
160
163
|
* Public function to check the latest block number that the P2P client is synced to.
|
|
161
164
|
* @returns Block number of latest L2 Block we've synced with.
|
|
162
165
|
*/
|
|
163
|
-
getSyncedLatestBlockNum(): Promise<
|
|
166
|
+
getSyncedLatestBlockNum(): Promise<BlockNumber>;
|
|
164
167
|
/**
|
|
165
168
|
* Public function to check the latest proven block number that the P2P client is synced to.
|
|
166
169
|
* @returns Block number of latest proven L2 Block we've synced with.
|
|
167
170
|
*/
|
|
168
|
-
getSyncedProvenBlockNum(): Promise<
|
|
169
|
-
getSyncedFinalizedBlockNum(): Promise<
|
|
171
|
+
getSyncedProvenBlockNum(): Promise<BlockNumber>;
|
|
172
|
+
getSyncedFinalizedBlockNum(): Promise<BlockNumber>;
|
|
170
173
|
/** Returns latest L2 slot for which we have seen an L2 block. */
|
|
171
174
|
getSyncedLatestSlot(): Promise<bigint>;
|
|
172
175
|
/**
|
|
@@ -174,36 +177,10 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
|
|
|
174
177
|
* @returns Information about p2p client status: state & syncedToBlockNum.
|
|
175
178
|
*/
|
|
176
179
|
getStatus(): Promise<P2PSyncState>;
|
|
177
|
-
/**
|
|
178
|
-
* Mark all txs from these blocks as mined.
|
|
179
|
-
* @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
|
|
180
|
-
* @returns Empty promise.
|
|
181
|
-
*/
|
|
182
180
|
private markTxsAsMinedFromBlocks;
|
|
183
|
-
/**
|
|
184
|
-
* Deletes txs from these blocks.
|
|
185
|
-
* @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
|
|
186
|
-
* @returns Empty promise.
|
|
187
|
-
*/
|
|
188
|
-
private deleteTxsFromBlocks;
|
|
189
|
-
/**
|
|
190
|
-
* Handles new mined blocks by marking the txs in them as mined.
|
|
191
|
-
* @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
|
|
192
|
-
* @returns Empty promise.
|
|
193
|
-
*/
|
|
194
181
|
private handleLatestL2Blocks;
|
|
195
|
-
/** Request txs for unproven blocks so the prover node has more chances to get them. */
|
|
196
182
|
private startCollectingMissingTxs;
|
|
197
|
-
/**
|
|
198
|
-
* Handles new finalized blocks by deleting the txs and attestations in them.
|
|
199
|
-
* @param blocks - A list of finalized L2 blocks.
|
|
200
|
-
* @returns Empty promise.
|
|
201
|
-
*/
|
|
202
183
|
private handleFinalizedL2Blocks;
|
|
203
|
-
/**
|
|
204
|
-
* Updates the tx pool after a chain prune.
|
|
205
|
-
* @param latestBlock - The block number the chain was pruned to.
|
|
206
|
-
*/
|
|
207
184
|
private handlePruneL2Blocks;
|
|
208
185
|
private startServiceIfSynched;
|
|
209
186
|
/**
|
|
@@ -219,4 +196,4 @@ export declare class P2PClient<T extends P2PClientType = P2PClientType.Full> ext
|
|
|
219
196
|
markTxsAsNonEvictable(txHashes: TxHash[]): Promise<void>;
|
|
220
197
|
handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
|
|
221
198
|
}
|
|
222
|
-
//# sourceMappingURL=
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicDJwX2NsaWVudC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NsaWVudC9wMnBfY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFzQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdGLE9BQU8sS0FBSyxFQUNWLFVBQVUsRUFHVixhQUFhLEVBRWIsa0JBQWtCLEVBQ2xCLE1BQU0sRUFDUCxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFXLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssYUFBYSxFQUFFLEtBQUssYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0YsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFFTCxLQUFLLGVBQWUsRUFFcEIsVUFBVSxFQUdYLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFFLEtBQUssU0FBUyxFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUVuRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkUsT0FBTyxF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"p2p_client.d.ts","sourceRoot":"","sources":["../../src/client/p2p_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,8 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
4
4
|
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
}
|
|
7
|
-
import { INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
7
|
+
import { GENESIS_BLOCK_HEADER_HASH, INITIAL_L2_BLOCK_NUM } from '@aztec/constants';
|
|
8
|
+
import { BlockNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
8
9
|
import { createLogger } from '@aztec/foundation/log';
|
|
9
10
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
10
11
|
import { getTimestampForSlot } from '@aztec/stdlib/epoch-helpers';
|
|
@@ -67,9 +68,15 @@ import { P2PClientState } from './interface.js';
|
|
|
67
68
|
this.log.debug(`Received block proposal from ${sender.toString()}`);
|
|
68
69
|
// TODO(palla/txs): Need to subtract validatorReexecuteDeadlineMs from this deadline (see ValidatorClient.getReexecutionDeadline)
|
|
69
70
|
const constants = this.txCollection.getConstants();
|
|
70
|
-
const nextSlotTimestampSeconds = Number(getTimestampForSlot(block.slotNumber
|
|
71
|
+
const nextSlotTimestampSeconds = Number(getTimestampForSlot(SlotNumber(block.slotNumber + 1), constants));
|
|
71
72
|
const deadline = new Date(nextSlotTimestampSeconds * 1000);
|
|
72
|
-
await this.
|
|
73
|
+
const parentBlock = await this.l2BlockSource.getBlockHeaderByArchive(block.payload.header.lastArchiveRoot);
|
|
74
|
+
if (!parentBlock) {
|
|
75
|
+
this.log.debug(`Cannot collect txs for proposal as parent block not found`);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const blockNumber = BlockNumber(parentBlock.getBlockNumber() + 1);
|
|
79
|
+
await this.txProvider.getTxsForBlockProposal(block, blockNumber, {
|
|
73
80
|
pinnedPeer: sender,
|
|
74
81
|
deadline
|
|
75
82
|
});
|
|
@@ -133,17 +140,18 @@ import { P2PClientState } from './interface.js';
|
|
|
133
140
|
throw new Error(`Block hash for finalized block ${finalizedBlockNumber} not found in p2p client`);
|
|
134
141
|
}
|
|
135
142
|
}
|
|
143
|
+
const genesisHash = GENESIS_BLOCK_HEADER_HASH.toString();
|
|
136
144
|
return {
|
|
137
145
|
latest: {
|
|
138
|
-
hash: latestBlockHash,
|
|
146
|
+
hash: latestBlockHash ?? genesisHash,
|
|
139
147
|
number: latestBlockNumber
|
|
140
148
|
},
|
|
141
149
|
proven: {
|
|
142
|
-
hash: provenBlockHash,
|
|
150
|
+
hash: provenBlockHash ?? genesisHash,
|
|
143
151
|
number: provenBlockNumber
|
|
144
152
|
},
|
|
145
153
|
finalized: {
|
|
146
|
-
hash: finalizedBlockHash,
|
|
154
|
+
hash: finalizedBlockHash ?? genesisHash,
|
|
147
155
|
number: finalizedBlockNumber
|
|
148
156
|
}
|
|
149
157
|
};
|
|
@@ -152,16 +160,17 @@ import { P2PClientState } from './interface.js';
|
|
|
152
160
|
this.log.debug(`Handling block stream event ${event.type}`);
|
|
153
161
|
switch(event.type){
|
|
154
162
|
case 'blocks-added':
|
|
155
|
-
await this.handleLatestL2Blocks(event.blocks);
|
|
163
|
+
await this.handleLatestL2Blocks(event.blocks.map((b)=>b.block.toL2Block()));
|
|
156
164
|
break;
|
|
157
165
|
case 'chain-finalized':
|
|
158
166
|
{
|
|
159
167
|
// TODO (alexg): I think we can prune the block hashes map here
|
|
160
168
|
await this.setBlockHash(event.block);
|
|
161
|
-
const from = await this.getSyncedFinalizedBlockNum() + 1;
|
|
169
|
+
const from = BlockNumber(await this.getSyncedFinalizedBlockNum() + 1);
|
|
162
170
|
const limit = event.block.number - from + 1;
|
|
163
171
|
if (limit > 0) {
|
|
164
|
-
|
|
172
|
+
const oldBlocks = await this.l2BlockSource.getBlocks(from, limit);
|
|
173
|
+
await this.handleFinalizedL2Blocks(oldBlocks.map((b)=>b.toL2Block()));
|
|
165
174
|
}
|
|
166
175
|
break;
|
|
167
176
|
}
|
|
@@ -215,7 +224,7 @@ import { P2PClientState } from './interface.js';
|
|
|
215
224
|
const syncedFinalizedBlock = await this.getSyncedFinalizedBlockNum() + 1;
|
|
216
225
|
if (await this.txPool.isEmpty() && (this.attestationPool === undefined || await this.attestationPool?.isEmpty())) {
|
|
217
226
|
// if mempools are empty, we don't care about syncing prior blocks
|
|
218
|
-
this.initBlockStream(this.latestBlockNumberAtStart);
|
|
227
|
+
this.initBlockStream(BlockNumber(this.latestBlockNumberAtStart));
|
|
219
228
|
this.setCurrentState(P2PClientState.RUNNING);
|
|
220
229
|
this.syncPromise = Promise.resolve();
|
|
221
230
|
await this.p2pService.start();
|
|
@@ -282,15 +291,24 @@ import { P2PClientState } from './interface.js';
|
|
|
282
291
|
await this.blockStream.sync();
|
|
283
292
|
}
|
|
284
293
|
broadcastProposal(proposal) {
|
|
285
|
-
this.log.verbose(`Broadcasting proposal for slot ${proposal.slotNumber
|
|
294
|
+
this.log.verbose(`Broadcasting proposal for slot ${proposal.slotNumber} to peers`);
|
|
286
295
|
return this.p2pService.propagate(proposal);
|
|
287
296
|
}
|
|
297
|
+
async broadcastAttestations(attestations) {
|
|
298
|
+
this.log.verbose(`Broadcasting ${attestations.length} attestations to peers`);
|
|
299
|
+
await Promise.all(attestations.map((att)=>this.p2pService.propagate(att)));
|
|
300
|
+
}
|
|
288
301
|
async getAttestationsForSlot(slot, proposalId) {
|
|
289
302
|
return await (proposalId ? this.attestationPool?.getAttestationsForSlotAndProposal(slot, proposalId) : this.attestationPool?.getAttestationsForSlot(slot)) ?? [];
|
|
290
303
|
}
|
|
291
304
|
addAttestations(attestations) {
|
|
292
305
|
return this.attestationPool?.addAttestations(attestations) ?? Promise.resolve();
|
|
293
306
|
}
|
|
307
|
+
deleteAttestation(attestation) {
|
|
308
|
+
return this.attestationPool?.deleteAttestations([
|
|
309
|
+
attestation
|
|
310
|
+
]) ?? Promise.resolve();
|
|
311
|
+
}
|
|
294
312
|
// REVIEW: https://github.com/AztecProtocol/aztec-packages/issues/7963
|
|
295
313
|
// ^ This pattern is not my favorite (md)
|
|
296
314
|
registerBlockProposalHandler(handler) {
|
|
@@ -486,16 +504,16 @@ import { P2PClientState } from './interface.js';
|
|
|
486
504
|
* Public function to check the latest block number that the P2P client is synced to.
|
|
487
505
|
* @returns Block number of latest L2 Block we've synced with.
|
|
488
506
|
*/ async getSyncedLatestBlockNum() {
|
|
489
|
-
return await this.synchedLatestBlockNumber.getAsync() ?? INITIAL_L2_BLOCK_NUM - 1;
|
|
507
|
+
return await this.synchedLatestBlockNumber.getAsync() ?? BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
|
|
490
508
|
}
|
|
491
509
|
/**
|
|
492
510
|
* Public function to check the latest proven block number that the P2P client is synced to.
|
|
493
511
|
* @returns Block number of latest proven L2 Block we've synced with.
|
|
494
512
|
*/ async getSyncedProvenBlockNum() {
|
|
495
|
-
return await this.synchedProvenBlockNumber.getAsync() ?? INITIAL_L2_BLOCK_NUM - 1;
|
|
513
|
+
return await this.synchedProvenBlockNumber.getAsync() ?? BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
|
|
496
514
|
}
|
|
497
515
|
async getSyncedFinalizedBlockNum() {
|
|
498
|
-
return await this.synchedFinalizedBlockNumber.getAsync() ?? INITIAL_L2_BLOCK_NUM - 1;
|
|
516
|
+
return await this.synchedFinalizedBlockNumber.getAsync() ?? BlockNumber(INITIAL_L2_BLOCK_NUM - 1);
|
|
499
517
|
}
|
|
500
518
|
/** Returns latest L2 slot for which we have seen an L2 block. */ async getSyncedLatestSlot() {
|
|
501
519
|
return await this.synchedLatestSlot.getAsync() ?? BigInt(0);
|
|
@@ -505,7 +523,7 @@ import { P2PClientState } from './interface.js';
|
|
|
505
523
|
* @returns Information about p2p client status: state & syncedToBlockNum.
|
|
506
524
|
*/ async getStatus() {
|
|
507
525
|
const blockNumber = await this.getSyncedLatestBlockNum();
|
|
508
|
-
const blockHash = blockNumber === 0 ?
|
|
526
|
+
const blockHash = blockNumber === 0 ? GENESIS_BLOCK_HEADER_HASH.toString() : await this.l2BlockSource.getBlockHeader(blockNumber).then((header)=>header?.hash()).then((hash)=>hash?.toString());
|
|
509
527
|
return {
|
|
510
528
|
state: this.currentState,
|
|
511
529
|
syncedToL2Block: {
|
|
@@ -525,17 +543,6 @@ import { P2PClientState } from './interface.js';
|
|
|
525
543
|
}
|
|
526
544
|
}
|
|
527
545
|
/**
|
|
528
|
-
* Deletes txs from these blocks.
|
|
529
|
-
* @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
|
|
530
|
-
* @returns Empty promise.
|
|
531
|
-
*/ async deleteTxsFromBlocks(blocks) {
|
|
532
|
-
this.log.debug(`Deleting txs from blocks ${blocks[0].number} to ${blocks[blocks.length - 1].number}`);
|
|
533
|
-
for (const block of blocks){
|
|
534
|
-
const txHashes = block.body.txEffects.map((txEffect)=>txEffect.txHash);
|
|
535
|
-
await this.txPool.deleteTxs(txHashes);
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
/**
|
|
539
546
|
* Handles new mined blocks by marking the txs in them as mined.
|
|
540
547
|
* @param blocks - A list of existing blocks with txs that the P2P client needs to ensure the tx pool is reconciled with.
|
|
541
548
|
* @returns Empty promise.
|
|
@@ -543,15 +550,15 @@ import { P2PClientState } from './interface.js';
|
|
|
543
550
|
if (!blocks.length) {
|
|
544
551
|
return Promise.resolve();
|
|
545
552
|
}
|
|
546
|
-
await this.markTxsAsMinedFromBlocks(blocks
|
|
547
|
-
await this.startCollectingMissingTxs(blocks
|
|
548
|
-
const lastBlock = blocks.at(-1)
|
|
553
|
+
await this.markTxsAsMinedFromBlocks(blocks);
|
|
554
|
+
await this.startCollectingMissingTxs(blocks);
|
|
555
|
+
const lastBlock = blocks.at(-1);
|
|
549
556
|
await Promise.all(blocks.map(async (block)=>this.setBlockHash({
|
|
550
|
-
number: block.
|
|
551
|
-
hash: await block.
|
|
557
|
+
number: block.number,
|
|
558
|
+
hash: await block.hash().then((h)=>h.toString())
|
|
552
559
|
})));
|
|
553
560
|
await this.synchedLatestBlockNumber.set(lastBlock.number);
|
|
554
|
-
await this.synchedLatestSlot.set(lastBlock.header.getSlot());
|
|
561
|
+
await this.synchedLatestSlot.set(BigInt(lastBlock.header.getSlot()));
|
|
555
562
|
this.log.verbose(`Synched to latest block ${lastBlock.number}`);
|
|
556
563
|
await this.startServiceIfSynched();
|
|
557
564
|
}
|
|
@@ -586,16 +593,21 @@ import { P2PClientState } from './interface.js';
|
|
|
586
593
|
* @param blocks - A list of finalized L2 blocks.
|
|
587
594
|
* @returns Empty promise.
|
|
588
595
|
*/ async handleFinalizedL2Blocks(blocks) {
|
|
589
|
-
this.log.trace(`Handling finalized blocks ${blocks.length} up to ${blocks.at(-1)?.number}`);
|
|
590
596
|
if (!blocks.length) {
|
|
591
597
|
return Promise.resolve();
|
|
592
598
|
}
|
|
599
|
+
this.log.debug(`Handling finalized blocks ${blocks.length} up to ${blocks.at(-1)?.number}`);
|
|
593
600
|
const lastBlockNum = blocks[blocks.length - 1].number;
|
|
594
601
|
const lastBlockSlot = blocks[blocks.length - 1].header.getSlot();
|
|
595
|
-
|
|
602
|
+
const txHashes = blocks.flatMap((block)=>block.body.txEffects.map((txEffect)=>txEffect.txHash));
|
|
603
|
+
this.log.debug(`Deleting ${txHashes.length} txs from pool from finalized blocks up to ${lastBlockNum}`);
|
|
604
|
+
await this.txPool.deleteTxs(txHashes, {
|
|
605
|
+
permanently: true
|
|
606
|
+
});
|
|
607
|
+
await this.txPool.cleanupDeletedMinedTxs(lastBlockNum);
|
|
596
608
|
await this.attestationPool?.deleteAttestationsOlderThan(lastBlockSlot);
|
|
597
609
|
await this.synchedFinalizedBlockNumber.set(lastBlockNum);
|
|
598
|
-
this.log.debug(`Synched to finalized block ${lastBlockNum}`);
|
|
610
|
+
this.log.debug(`Synched to finalized block ${lastBlockNum} at slot ${lastBlockSlot}`);
|
|
599
611
|
await this.startServiceIfSynched();
|
|
600
612
|
}
|
|
601
613
|
/**
|
|
@@ -607,26 +619,37 @@ import { P2PClientState } from './interface.js';
|
|
|
607
619
|
// Find transactions that reference pruned blocks in their historical header
|
|
608
620
|
for (const tx of (await this.txPool.getAllTxs())){
|
|
609
621
|
// every tx that's been generated against a block that has now been pruned is no longer valid
|
|
610
|
-
if (tx.data.constants.
|
|
622
|
+
if (tx.data.constants.anchorBlockHeader.globalVariables.blockNumber > latestBlock) {
|
|
611
623
|
const txHash = tx.getTxHash();
|
|
612
624
|
txsToDelete.set(txHash.toString(), txHash);
|
|
613
625
|
}
|
|
614
626
|
}
|
|
615
|
-
this.log.info(`Detected chain prune. Removing
|
|
627
|
+
this.log.info(`Detected chain prune. Removing ${txsToDelete.size} txs built against pruned blocks.`, {
|
|
628
|
+
newLatestBlock: latestBlock,
|
|
629
|
+
previousLatestBlock: await this.getSyncedLatestBlockNum(),
|
|
630
|
+
txsToDelete: Array.from(txsToDelete.keys())
|
|
631
|
+
});
|
|
616
632
|
// delete invalid txs (both pending and mined)
|
|
617
633
|
await this.txPool.deleteTxs(Array.from(txsToDelete.values()));
|
|
618
634
|
// everything left in the mined set was built against a block on the proven chain so its still valid
|
|
619
|
-
// move back to pending the txs that were reorged out of the chain
|
|
635
|
+
// move back to pending the txs that were reorged out of the chain, unless txPoolDeleteTxsAfterReorg is set,
|
|
636
|
+
// in which case we clean them up to avoid potential reorg loops
|
|
620
637
|
// NOTE: we can't move _all_ txs back to pending because the tx pool could keep hold of mined txs for longer
|
|
621
638
|
// (see this.keepProvenTxsFor)
|
|
622
|
-
const
|
|
639
|
+
const minedTxsFromReorg = [];
|
|
623
640
|
for (const [txHash, blockNumber] of minedTxs){
|
|
624
|
-
|
|
625
|
-
|
|
641
|
+
// We keep the txsToDelete out of this list as they have already been deleted above
|
|
642
|
+
if (blockNumber > latestBlock && !txsToDelete.has(txHash.toString())) {
|
|
643
|
+
minedTxsFromReorg.push(txHash);
|
|
626
644
|
}
|
|
627
645
|
}
|
|
628
|
-
this.
|
|
629
|
-
|
|
646
|
+
if (this.config.txPoolDeleteTxsAfterReorg) {
|
|
647
|
+
this.log.info(`Deleting ${minedTxsFromReorg.length} mined txs from reorg`);
|
|
648
|
+
await this.txPool.deleteTxs(minedTxsFromReorg);
|
|
649
|
+
} else {
|
|
650
|
+
this.log.info(`Moving ${minedTxsFromReorg.length} mined txs from reorg back to pending`);
|
|
651
|
+
await this.txPool.markMinedAsPending(minedTxsFromReorg);
|
|
652
|
+
}
|
|
630
653
|
await this.synchedLatestBlockNumber.set(latestBlock);
|
|
631
654
|
// no need to update block hashes, as they will be updated as new blocks are added
|
|
632
655
|
}
|
|
@@ -673,9 +696,8 @@ import { P2PClientState } from './interface.js';
|
|
|
673
696
|
}
|
|
674
697
|
_ts_decorate([
|
|
675
698
|
trackSpan('p2pClient.broadcastProposal', async (proposal)=>({
|
|
676
|
-
[Attributes.
|
|
677
|
-
[Attributes.SLOT_NUMBER]: proposal.slotNumber.toNumber(),
|
|
699
|
+
[Attributes.SLOT_NUMBER]: proposal.slotNumber,
|
|
678
700
|
[Attributes.BLOCK_ARCHIVE]: proposal.archive.toString(),
|
|
679
|
-
[Attributes.P2P_ID]: (await proposal.
|
|
701
|
+
[Attributes.P2P_ID]: (await proposal.p2pMessageLoggingIdentifier()).toString()
|
|
680
702
|
}))
|
|
681
703
|
], P2PClient.prototype, "broadcastProposal", null);
|