@aztec/p2p 0.0.1-commit.cd76b27 → 0.0.1-commit.d0fcfb7f
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/client/factory.d.ts +4 -5
- package/dest/client/factory.d.ts.map +1 -1
- package/dest/client/factory.js +20 -26
- package/dest/client/interface.d.ts +6 -13
- package/dest/client/interface.d.ts.map +1 -1
- package/dest/client/p2p_client.d.ts +5 -13
- package/dest/client/p2p_client.d.ts.map +1 -1
- package/dest/client/p2p_client.js +11 -84
- package/dest/client/test/tx_proposal_collector/proposal_tx_collector_worker.js +1 -2
- package/dest/config.d.ts +28 -10
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +80 -31
- package/dest/mem_pools/tx_pool/priority.d.ts +2 -2
- package/dest/mem_pools/tx_pool/priority.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool/priority.js +4 -4
- 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 +3 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.js +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.js +2 -0
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts +7 -1
- package/dest/mem_pools/tx_pool_v2/eviction/interfaces.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.js +2 -2
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.js +10 -6
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.js +8 -6
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.js +2 -2
- package/dest/mem_pools/tx_pool_v2/index.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/index.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/index.js +1 -1
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts +7 -5
- package/dest/mem_pools/tx_pool_v2/interfaces.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/interfaces.js +2 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts +38 -7
- package/dest/mem_pools/tx_pool_v2/tx_metadata.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_metadata.js +74 -16
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_indices.js +9 -10
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts +2 -2
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.d.ts.map +1 -1
- package/dest/mem_pools/tx_pool_v2/tx_pool_v2_impl.js +168 -147
- package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts +6 -4
- package/dest/msg_validators/proposal_validator/block_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/block_proposal_validator.js +10 -2
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts +6 -4
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/checkpoint_proposal_validator.js +16 -2
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts +13 -8
- package/dest/msg_validators/proposal_validator/proposal_validator.d.ts.map +1 -1
- package/dest/msg_validators/proposal_validator/proposal_validator.js +48 -36
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/aggregate_tx_validator.js +3 -3
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts +2 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/allowed_public_setup.js +24 -20
- package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts +17 -0
- package/dest/msg_validators/tx_validator/allowed_setup_helpers.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/allowed_setup_helpers.js +24 -0
- package/dest/msg_validators/tx_validator/factory.d.ts +125 -6
- package/dest/msg_validators/tx_validator/factory.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/factory.js +226 -58
- package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts +1 -1
- package/dest/msg_validators/tx_validator/fee_payer_balance.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/fee_payer_balance.js +6 -2
- package/dest/msg_validators/tx_validator/gas_validator.d.ts +67 -3
- package/dest/msg_validators/tx_validator/gas_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/gas_validator.js +104 -37
- package/dest/msg_validators/tx_validator/index.d.ts +3 -1
- package/dest/msg_validators/tx_validator/index.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/index.js +2 -0
- package/dest/msg_validators/tx_validator/nullifier_cache.d.ts +14 -0
- package/dest/msg_validators/tx_validator/nullifier_cache.d.ts.map +1 -0
- package/dest/msg_validators/tx_validator/nullifier_cache.js +24 -0
- package/dest/msg_validators/tx_validator/phases_validator.d.ts +2 -2
- package/dest/msg_validators/tx_validator/phases_validator.d.ts.map +1 -1
- package/dest/msg_validators/tx_validator/phases_validator.js +44 -23
- package/dest/services/dummy_service.d.ts +2 -3
- package/dest/services/dummy_service.d.ts.map +1 -1
- package/dest/services/dummy_service.js +1 -4
- package/dest/services/encoding.d.ts +2 -2
- package/dest/services/encoding.d.ts.map +1 -1
- package/dest/services/encoding.js +7 -7
- package/dest/services/libp2p/libp2p_service.d.ts +15 -13
- package/dest/services/libp2p/libp2p_service.d.ts.map +1 -1
- package/dest/services/libp2p/libp2p_service.js +87 -92
- package/dest/services/reqresp/batch-tx-requester/tx_validator.js +2 -2
- package/dest/services/service.d.ts +2 -2
- package/dest/services/service.d.ts.map +1 -1
- package/dest/services/tx_provider.d.ts +3 -3
- package/dest/services/tx_provider.d.ts.map +1 -1
- package/dest/services/tx_provider.js +4 -4
- package/dest/test-helpers/make-test-p2p-clients.d.ts +5 -6
- package/dest/test-helpers/make-test-p2p-clients.d.ts.map +1 -1
- package/dest/test-helpers/make-test-p2p-clients.js +1 -2
- package/dest/test-helpers/mock-pubsub.d.ts +2 -3
- package/dest/test-helpers/mock-pubsub.d.ts.map +1 -1
- package/dest/test-helpers/mock-pubsub.js +2 -2
- package/dest/test-helpers/reqresp-nodes.d.ts +2 -3
- package/dest/test-helpers/reqresp-nodes.d.ts.map +1 -1
- package/dest/test-helpers/reqresp-nodes.js +2 -2
- package/dest/test-helpers/testbench-utils.d.ts +2 -2
- package/dest/test-helpers/testbench-utils.d.ts.map +1 -1
- package/dest/test-helpers/testbench-utils.js +2 -1
- package/dest/testbench/p2p_client_testbench_worker.js +7 -6
- package/dest/testbench/worker_client_manager.d.ts +3 -1
- package/dest/testbench/worker_client_manager.d.ts.map +1 -1
- package/dest/testbench/worker_client_manager.js +4 -1
- package/package.json +14 -14
- package/src/client/factory.ts +28 -46
- package/src/client/interface.ts +5 -19
- package/src/client/p2p_client.ts +9 -114
- package/src/client/test/tx_proposal_collector/proposal_tx_collector_worker.ts +1 -2
- package/src/config.ts +115 -33
- package/src/mem_pools/tx_pool/priority.ts +4 -4
- package/src/mem_pools/tx_pool/tx_pool_test_suite.ts +3 -1
- package/src/mem_pools/tx_pool_v2/README.md +9 -1
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_eviction_rule.ts +1 -1
- package/src/mem_pools/tx_pool_v2/eviction/fee_payer_balance_pre_add_rule.ts +3 -0
- package/src/mem_pools/tx_pool_v2/eviction/interfaces.ts +11 -1
- package/src/mem_pools/tx_pool_v2/eviction/invalid_txs_after_reorg_rule.ts +2 -2
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_eviction_rule.ts +10 -6
- package/src/mem_pools/tx_pool_v2/eviction/low_priority_pre_add_rule.ts +15 -6
- package/src/mem_pools/tx_pool_v2/eviction/nullifier_conflict_rule.ts +2 -1
- package/src/mem_pools/tx_pool_v2/index.ts +1 -1
- package/src/mem_pools/tx_pool_v2/interfaces.ts +7 -4
- package/src/mem_pools/tx_pool_v2/tx_metadata.ts +102 -17
- package/src/mem_pools/tx_pool_v2/tx_pool_indices.ts +11 -11
- package/src/mem_pools/tx_pool_v2/tx_pool_v2.ts +1 -1
- package/src/mem_pools/tx_pool_v2/tx_pool_v2_impl.ts +176 -149
- package/src/msg_validators/proposal_validator/block_proposal_validator.ts +14 -4
- package/src/msg_validators/proposal_validator/checkpoint_proposal_validator.ts +20 -7
- package/src/msg_validators/proposal_validator/proposal_validator.ts +63 -40
- package/src/msg_validators/tx_validator/README.md +115 -0
- package/src/msg_validators/tx_validator/aggregate_tx_validator.ts +3 -3
- package/src/msg_validators/tx_validator/allowed_public_setup.ts +22 -27
- package/src/msg_validators/tx_validator/allowed_setup_helpers.ts +31 -0
- package/src/msg_validators/tx_validator/factory.ts +366 -77
- package/src/msg_validators/tx_validator/fee_payer_balance.ts +6 -2
- package/src/msg_validators/tx_validator/gas_validator.ts +123 -27
- package/src/msg_validators/tx_validator/index.ts +2 -0
- package/src/msg_validators/tx_validator/nullifier_cache.ts +30 -0
- package/src/msg_validators/tx_validator/phases_validator.ts +51 -26
- package/src/services/dummy_service.ts +1 -5
- package/src/services/encoding.ts +5 -6
- package/src/services/libp2p/libp2p_service.ts +101 -101
- package/src/services/reqresp/batch-tx-requester/tx_validator.ts +2 -2
- package/src/services/service.ts +1 -1
- package/src/services/tx_provider.ts +2 -2
- package/src/test-helpers/make-test-p2p-clients.ts +0 -2
- package/src/test-helpers/mock-pubsub.ts +3 -6
- package/src/test-helpers/reqresp-nodes.ts +2 -5
- package/src/test-helpers/testbench-utils.ts +2 -1
- package/src/testbench/p2p_client_testbench_worker.ts +3 -6
- package/src/testbench/worker_client_manager.ts +11 -4
- package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts +0 -23
- package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.d.ts.map +0 -1
- package/dest/msg_validators/proposal_validator/proposal_validator_test_suite.js +0 -212
- package/src/msg_validators/proposal_validator/proposal_validator_test_suite.ts +0 -230
|
@@ -370,14 +370,15 @@ function applyDecs2203RFactory() {
|
|
|
370
370
|
function _apply_decs_2203_r(targetClass, memberDecs, classDecs, parentClass) {
|
|
371
371
|
return (_apply_decs_2203_r = applyDecs2203RFactory())(targetClass, memberDecs, classDecs, parentClass);
|
|
372
372
|
}
|
|
373
|
-
var _dec, _dec1, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8,
|
|
373
|
+
var _dec, _dec1, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _initProto;
|
|
374
374
|
import { BlockNumber } from '@aztec/foundation/branded-types';
|
|
375
|
+
import { maxBy } from '@aztec/foundation/collection';
|
|
375
376
|
import { createLibp2pComponentLogger, createLogger } from '@aztec/foundation/log';
|
|
376
377
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
377
378
|
import { Timer } from '@aztec/foundation/timer';
|
|
378
379
|
import { protocolContractsHash } from '@aztec/protocol-contracts';
|
|
379
380
|
import { GasFees } from '@aztec/stdlib/gas';
|
|
380
|
-
import { BlockProposal, CheckpointAttestation, CheckpointProposal,
|
|
381
|
+
import { BlockProposal, CheckpointAttestation, CheckpointProposal, P2PMessage, PeerErrorSeverity, PeerErrorSeverityByHarshness, TopicType, createTopicString, getTopicsForConfig, metricsTopicStrToLabels } from '@aztec/stdlib/p2p';
|
|
381
382
|
import { MerkleTreeId } from '@aztec/stdlib/trees';
|
|
382
383
|
import { Tx } from '@aztec/stdlib/tx';
|
|
383
384
|
import { compressComponentVersions } from '@aztec/stdlib/versioning';
|
|
@@ -396,7 +397,7 @@ import { ENR } from '@nethermindeth/enr';
|
|
|
396
397
|
import { createLibp2p } from 'libp2p';
|
|
397
398
|
import { BlockProposalValidator, CheckpointAttestationValidator, CheckpointProposalValidator, DoubleSpendTxValidator, FishermanAttestationValidator, getDefaultAllowedSetupFunctions } from '../../msg_validators/index.js';
|
|
398
399
|
import { MessageSeenValidator } from '../../msg_validators/msg_seen_validator/msg_seen_validator.js';
|
|
399
|
-
import {
|
|
400
|
+
import { createFirstStageTxValidationsForGossipedTransactions, createSecondStageTxValidationsForGossipedTransactions, createTxValidatorForBlockProposalReceivedTxs, createTxValidatorForReqResponseReceivedTxs } from '../../msg_validators/tx_validator/factory.js';
|
|
400
401
|
import { GossipSubEvent } from '../../types/index.js';
|
|
401
402
|
import { convertToMultiaddr } from '../../util.js';
|
|
402
403
|
import { getVersions } from '../../versioning.js';
|
|
@@ -407,8 +408,7 @@ import { APP_SPECIFIC_WEIGHT, gossipScoreThresholds } from '../gossipsub/scoring
|
|
|
407
408
|
import { createAllTopicScoreParams } from '../gossipsub/topic_score_params.js';
|
|
408
409
|
import { PeerManager } from '../peer-manager/peer_manager.js';
|
|
409
410
|
import { PeerScoring } from '../peer-manager/peer_scoring.js';
|
|
410
|
-
import { DEFAULT_SUB_PROTOCOL_VALIDATORS, ReqRespSubProtocol, ValidationError } from '../reqresp/index.js';
|
|
411
|
-
import { pingHandler, reqGoodbyeHandler, reqRespBlockHandler, reqRespBlockTxsHandler, reqRespStatusHandler, reqRespTxHandler } from '../reqresp/index.js';
|
|
411
|
+
import { DEFAULT_SUB_PROTOCOL_VALIDATORS, ReqRespSubProtocol, ValidationError, pingHandler, reqGoodbyeHandler, reqRespBlockHandler, reqRespBlockTxsHandler, reqRespStatusHandler, reqRespTxHandler } from '../reqresp/index.js';
|
|
412
412
|
import { ReqResp } from '../reqresp/reqresp.js';
|
|
413
413
|
import { P2PInstrumentation } from './instrumentation.js';
|
|
414
414
|
_dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId, attestation)=>({
|
|
@@ -432,9 +432,7 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
432
432
|
[Attributes.TX_HASH]: requestedTxHash.toString()
|
|
433
433
|
})), _dec7 = trackSpan('Libp2pService.validateRequestedBlock', (requestedBlockNumber, _responseBlock)=>({
|
|
434
434
|
[Attributes.BLOCK_NUMBER]: requestedBlockNumber.toString()
|
|
435
|
-
})), _dec8 = trackSpan('Libp2pService.
|
|
436
|
-
[Attributes.TX_HASH]: tx.getTxHash().toString()
|
|
437
|
-
})), _dec9 = trackSpan('Libp2pService.validateCheckpointAttestation', async (_, attestation)=>({
|
|
435
|
+
})), _dec8 = trackSpan('Libp2pService.validateCheckpointAttestation', async (_, attestation)=>({
|
|
438
436
|
[Attributes.SLOT_NUMBER]: attestation.payload.header.slotNumber,
|
|
439
437
|
[Attributes.BLOCK_ARCHIVE]: attestation.archive.toString(),
|
|
440
438
|
[Attributes.P2P_ID]: await attestation.p2pMessageLoggingIdentifier().then((i)=>i.toString())
|
|
@@ -442,7 +440,6 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
442
440
|
/**
|
|
443
441
|
* Lib P2P implementation of the P2PService interface.
|
|
444
442
|
*/ export class LibP2PService extends WithTracer {
|
|
445
|
-
clientType;
|
|
446
443
|
config;
|
|
447
444
|
node;
|
|
448
445
|
peerDiscoveryService;
|
|
@@ -498,11 +495,6 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
498
495
|
[
|
|
499
496
|
_dec8,
|
|
500
497
|
2,
|
|
501
|
-
"validatePropagatedTx"
|
|
502
|
-
],
|
|
503
|
-
[
|
|
504
|
-
_dec9,
|
|
505
|
-
2,
|
|
506
498
|
"validateCheckpointAttestation"
|
|
507
499
|
]
|
|
508
500
|
], []));
|
|
@@ -532,8 +524,8 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
532
524
|
instrumentation;
|
|
533
525
|
telemetry;
|
|
534
526
|
logger;
|
|
535
|
-
constructor(
|
|
536
|
-
super(telemetry, 'LibP2PService'), this.
|
|
527
|
+
constructor(config, node, peerDiscoveryService, reqresp, peerManager, mempools, archiver, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger = createLogger('p2p:libp2p_service')){
|
|
528
|
+
super(telemetry, 'LibP2PService'), this.config = config, this.node = node, this.peerDiscoveryService = peerDiscoveryService, this.reqresp = reqresp, this.peerManager = peerManager, this.mempools = mempools, this.archiver = archiver, this.epochCache = epochCache, this.proofVerifier = proofVerifier, this.worldStateSynchronizer = worldStateSynchronizer, this.msgIdSeenValidators = (_initProto(this), {}), this.protocolVersion = '', this.topicStrings = {};
|
|
537
529
|
this.telemetry = telemetry;
|
|
538
530
|
// Create child logger with fisherman prefix if in fisherman mode
|
|
539
531
|
this.logger = config.fishermanMode ? logger.createChild('[FISHERMAN]') : logger;
|
|
@@ -549,19 +541,19 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
549
541
|
this.topicStrings[TopicType.block_proposal] = createTopicString(TopicType.block_proposal, this.protocolVersion);
|
|
550
542
|
this.topicStrings[TopicType.checkpoint_proposal] = createTopicString(TopicType.checkpoint_proposal, this.protocolVersion);
|
|
551
543
|
this.topicStrings[TopicType.checkpoint_attestation] = createTopicString(TopicType.checkpoint_attestation, this.protocolVersion);
|
|
552
|
-
|
|
553
|
-
txsPermitted: !config.disableTransactions
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
544
|
+
const proposalValidatorOpts = {
|
|
545
|
+
txsPermitted: !config.disableTransactions,
|
|
546
|
+
maxTxsPerBlock: config.validateMaxTxsPerBlock ?? config.validateMaxTxsPerCheckpoint
|
|
547
|
+
};
|
|
548
|
+
this.blockProposalValidator = new BlockProposalValidator(epochCache, proposalValidatorOpts);
|
|
549
|
+
this.checkpointProposalValidator = new CheckpointProposalValidator(epochCache, proposalValidatorOpts);
|
|
558
550
|
this.checkpointAttestationValidator = config.fishermanMode ? new FishermanAttestationValidator(epochCache, mempools.attestationPool, telemetry) : new CheckpointAttestationValidator(epochCache);
|
|
559
551
|
this.gossipSubEventHandler = this.handleGossipSubEvent.bind(this);
|
|
560
552
|
this.blockReceivedCallback = async (block)=>{
|
|
561
|
-
this.logger.
|
|
553
|
+
this.logger.warn(`Handler for block received not yet registered on P2P service. Received block ${block.blockNumber} for slot ${block.slotNumber} from peer.`, {
|
|
562
554
|
p2pMessageIdentifier: await block.p2pMessageLoggingIdentifier()
|
|
563
555
|
});
|
|
564
|
-
return
|
|
556
|
+
return true;
|
|
565
557
|
};
|
|
566
558
|
this.checkpointReceivedCallback = (checkpoint)=>{
|
|
567
559
|
this.logger.debug(`Handler not yet registered: Checkpoint received callback not set. Received checkpoint for slot ${checkpoint.slotNumber} from peer.`);
|
|
@@ -576,7 +568,7 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
576
568
|
* @param config - The configuration to use when creating the service.
|
|
577
569
|
* @param txPool - The transaction pool to be accessed by the service.
|
|
578
570
|
* @returns The new service.
|
|
579
|
-
*/ static async new(
|
|
571
|
+
*/ static async new(config, peerId, deps) {
|
|
580
572
|
const { worldStateSynchronizer, epochCache, l2BlockSource, mempools, proofVerifier, peerStore, telemetry, logger, packageVersion } = deps;
|
|
581
573
|
const { p2pPort, maxPeerCount, listenAddress } = config;
|
|
582
574
|
const bindAddrTcp = convertToMultiaddr(listenAddress, p2pPort, 'tcp');
|
|
@@ -741,7 +733,7 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
741
733
|
// Note: positive topic scores can offset penalties, so alignment is best-effort.
|
|
742
734
|
node.services.pubsub.score.params.appSpecificWeight = APP_SPECIFIC_WEIGHT;
|
|
743
735
|
node.services.pubsub.score.params.appSpecificScore = (peerId)=>peerManager.shouldDisableP2PGossip(peerId) ? -Infinity : peerManager.getPeerScore(peerId);
|
|
744
|
-
return new LibP2PService(
|
|
736
|
+
return new LibP2PService(config, node, peerDiscoveryService, reqresp, peerManager, mempools, l2BlockSource, epochCache, proofVerifier, worldStateSynchronizer, telemetry, logger);
|
|
745
737
|
}
|
|
746
738
|
/**
|
|
747
739
|
* Starts the LibP2P service.
|
|
@@ -786,7 +778,7 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
786
778
|
await this.reqresp.start(requestResponseHandlers, reqrespSubProtocolValidators);
|
|
787
779
|
await this.node.start();
|
|
788
780
|
// Subscribe to standard GossipSub topics by default
|
|
789
|
-
for (const topic of
|
|
781
|
+
for (const topic of getTopicsForConfig(this.config.disableTransactions)){
|
|
790
782
|
this.subscribeToTopic(this.topicStrings[topic]);
|
|
791
783
|
}
|
|
792
784
|
// add GossipSub listener
|
|
@@ -995,9 +987,7 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
995
987
|
if (msg.topic === this.topicStrings[TopicType.tx]) {
|
|
996
988
|
await this.handleGossipedTx(p2pMessage.payload, msgId, source);
|
|
997
989
|
} else if (msg.topic === this.topicStrings[TopicType.checkpoint_attestation]) {
|
|
998
|
-
|
|
999
|
-
await this.processCheckpointAttestationFromPeer(p2pMessage.payload, msgId, source);
|
|
1000
|
-
}
|
|
990
|
+
await this.processCheckpointAttestationFromPeer(p2pMessage.payload, msgId, source);
|
|
1001
991
|
} else if (msg.topic === this.topicStrings[TopicType.block_proposal]) {
|
|
1002
992
|
await this.processBlockFromPeer(p2pMessage.payload, msgId, source);
|
|
1003
993
|
} else if (msg.topic === this.topicStrings[TopicType.checkpoint_proposal]) {
|
|
@@ -1065,16 +1055,45 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
1065
1055
|
async handleGossipedTx(payloadData, msgId, source) {
|
|
1066
1056
|
const validationFunc = async ()=>{
|
|
1067
1057
|
const tx = Tx.fromBuffer(payloadData);
|
|
1068
|
-
const
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1058
|
+
const currentBlockNumber = await this.archiver.getBlockNumber();
|
|
1059
|
+
const { ts: nextSlotTimestamp } = this.epochCache.getEpochAndSlotInNextL1Slot();
|
|
1060
|
+
// Stage 1: fast validators (metadata, data, timestamps, double-spend, gas, phases, block header)
|
|
1061
|
+
const firstStageValidators = await this.createFirstStageMessageValidators(currentBlockNumber, nextSlotTimestamp);
|
|
1062
|
+
const firstStageOutcome = await this.runValidations(tx, firstStageValidators);
|
|
1063
|
+
if (!firstStageOutcome.allPassed) {
|
|
1064
|
+
const { name } = firstStageOutcome.failure;
|
|
1065
|
+
let { severity } = firstStageOutcome.failure;
|
|
1066
|
+
// Double spend validator has a special case handler. We perform more detailed examination
|
|
1067
|
+
// as to how recently the nullifier was entered into the tree and if the transaction should
|
|
1068
|
+
// have 'known' the nullifier existed. This determines the severity of the penalty applied to the peer.
|
|
1069
|
+
if (name === 'doubleSpendValidator') {
|
|
1070
|
+
const txBlockNumber = BlockNumber(currentBlockNumber + 1);
|
|
1071
|
+
severity = await this.handleDoubleSpendFailure(tx, txBlockNumber);
|
|
1072
|
+
}
|
|
1073
|
+
this.peerManager.penalizePeer(source, severity);
|
|
1074
|
+
return {
|
|
1075
|
+
result: TopicValidatorResult.Reject
|
|
1076
|
+
};
|
|
1077
|
+
}
|
|
1078
|
+
// Pool pre-check: see if the pool would accept this tx before doing expensive proof verification
|
|
1079
|
+
const canAdd = await this.mempools.txPool.canAddPendingTx(tx);
|
|
1080
|
+
if (canAdd === 'ignored') {
|
|
1081
|
+
return {
|
|
1082
|
+
result: TopicValidatorResult.Ignore,
|
|
1083
|
+
obj: tx
|
|
1084
|
+
};
|
|
1085
|
+
}
|
|
1086
|
+
// Stage 2: expensive proof verification
|
|
1087
|
+
const secondStageValidators = this.createSecondStageMessageValidators();
|
|
1088
|
+
const secondStageOutcome = await this.runValidations(tx, secondStageValidators);
|
|
1089
|
+
if (!secondStageOutcome.allPassed) {
|
|
1090
|
+
const { severity } = secondStageOutcome.failure;
|
|
1091
|
+
this.peerManager.penalizePeer(source, severity);
|
|
1073
1092
|
return {
|
|
1074
1093
|
result: TopicValidatorResult.Reject
|
|
1075
1094
|
};
|
|
1076
1095
|
}
|
|
1077
|
-
//
|
|
1096
|
+
// Pool add: persist the tx
|
|
1078
1097
|
const txHash = tx.getTxHash();
|
|
1079
1098
|
const addResult = await this.mempools.txPool.addPendingTxs([
|
|
1080
1099
|
tx
|
|
@@ -1084,7 +1103,6 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
1084
1103
|
const wasAccepted = addResult.accepted.some((h)=>h.equals(txHash));
|
|
1085
1104
|
const wasIgnored = addResult.ignored.some((h)=>h.equals(txHash));
|
|
1086
1105
|
this.logger.trace(`Validate propagated tx`, {
|
|
1087
|
-
isValid,
|
|
1088
1106
|
wasAccepted,
|
|
1089
1107
|
wasIgnored,
|
|
1090
1108
|
[Attributes.P2P_ID]: source.toString()
|
|
@@ -1308,7 +1326,7 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
1308
1326
|
// Note: Validators do NOT attest to individual blocks, only to checkpoint proposals.
|
|
1309
1327
|
const isValid = await this.blockReceivedCallback(block, sender);
|
|
1310
1328
|
if (!isValid) {
|
|
1311
|
-
this.logger.
|
|
1329
|
+
this.logger.info(`Block proposal validation failed for block ${block.blockNumber}`, block.toBlockInfo());
|
|
1312
1330
|
}
|
|
1313
1331
|
}
|
|
1314
1332
|
/**
|
|
@@ -1626,33 +1644,11 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
1626
1644
|
}
|
|
1627
1645
|
}
|
|
1628
1646
|
createRequestedTxValidator() {
|
|
1629
|
-
return
|
|
1647
|
+
return createTxValidatorForReqResponseReceivedTxs(this.proofVerifier, {
|
|
1630
1648
|
l1ChainId: this.config.l1ChainId,
|
|
1631
1649
|
rollupVersion: this.config.rollupVersion
|
|
1632
1650
|
});
|
|
1633
1651
|
}
|
|
1634
|
-
async validatePropagatedTx(tx, peerId) {
|
|
1635
|
-
const currentBlockNumber = await this.archiver.getBlockNumber();
|
|
1636
|
-
// We accept transactions if they are not expired by the next slot (checked based on the ExpirationTimestamp field)
|
|
1637
|
-
const { ts: nextSlotTimestamp } = this.epochCache.getEpochAndSlotInNextL1Slot();
|
|
1638
|
-
const messageValidators = await this.createMessageValidators(currentBlockNumber, nextSlotTimestamp);
|
|
1639
|
-
for (const validator of messageValidators){
|
|
1640
|
-
const outcome = await this.runValidations(tx, validator);
|
|
1641
|
-
if (outcome.allPassed) {
|
|
1642
|
-
continue;
|
|
1643
|
-
}
|
|
1644
|
-
const { name } = outcome.failure;
|
|
1645
|
-
let { severity } = outcome.failure;
|
|
1646
|
-
// Double spend validator has a special case handler
|
|
1647
|
-
if (name === 'doubleSpendValidator') {
|
|
1648
|
-
const txBlockNumber = BlockNumber(currentBlockNumber + 1); // tx is expected to be in the next block
|
|
1649
|
-
severity = await this.handleDoubleSpendFailure(tx, txBlockNumber);
|
|
1650
|
-
}
|
|
1651
|
-
this.peerManager.penalizePeer(peerId, severity);
|
|
1652
|
-
return false;
|
|
1653
|
-
}
|
|
1654
|
-
return true;
|
|
1655
|
-
}
|
|
1656
1652
|
async getGasFees(blockNumber) {
|
|
1657
1653
|
if (blockNumber === this.feesCache?.blockNumber) {
|
|
1658
1654
|
return this.feesCache.gasFees;
|
|
@@ -1679,38 +1675,35 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
1679
1675
|
peerScoring: this.peerManager
|
|
1680
1676
|
};
|
|
1681
1677
|
}
|
|
1682
|
-
async
|
|
1683
|
-
const
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
await Promise.all(txs.map(async (tx)=>{
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
if (!outcome.allPassed) {
|
|
1691
|
-
throw new Error('Invalid tx detected', {
|
|
1692
|
-
cause: {
|
|
1693
|
-
outcome
|
|
1694
|
-
}
|
|
1695
|
-
});
|
|
1696
|
-
}
|
|
1697
|
-
}
|
|
1678
|
+
async validateTxsReceivedInBlockProposal(txs) {
|
|
1679
|
+
const validator = createTxValidatorForBlockProposalReceivedTxs(this.proofVerifier, {
|
|
1680
|
+
l1ChainId: this.config.l1ChainId,
|
|
1681
|
+
rollupVersion: this.config.rollupVersion
|
|
1682
|
+
}, this.logger.getBindings());
|
|
1683
|
+
const results = await Promise.all(txs.map(async (tx)=>{
|
|
1684
|
+
const result = await validator.validateTx(tx);
|
|
1685
|
+
return result.result !== 'invalid';
|
|
1698
1686
|
}));
|
|
1687
|
+
if (results.some((value)=>value === false)) {
|
|
1688
|
+
throw new Error('Invalid tx detected');
|
|
1689
|
+
}
|
|
1699
1690
|
}
|
|
1700
|
-
/**
|
|
1701
|
-
* Create message validators for the given block number and timestamp.
|
|
1702
|
-
*
|
|
1703
|
-
* Each validator is a pair of a validator and a severity.
|
|
1704
|
-
* If a validator fails, the peer is penalized with the severity of the validator.
|
|
1705
|
-
*
|
|
1706
|
-
* @param currentBlockNumber - The current synced block number.
|
|
1707
|
-
* @param nextSlotTimestamp - The timestamp of the next slot (used to validate txs are not expired).
|
|
1708
|
-
* @returns The message validators.
|
|
1709
|
-
*/ async createMessageValidators(currentBlockNumber, nextSlotTimestamp) {
|
|
1691
|
+
/** Creates the first stage (fast) validators for gossiped transactions. */ async createFirstStageMessageValidators(currentBlockNumber, nextSlotTimestamp) {
|
|
1710
1692
|
const gasFees = await this.getGasFees(currentBlockNumber);
|
|
1711
|
-
const allowedInSetup =
|
|
1712
|
-
|
|
1713
|
-
|
|
1693
|
+
const allowedInSetup = [
|
|
1694
|
+
...await getDefaultAllowedSetupFunctions(),
|
|
1695
|
+
...this.config.txPublicSetupAllowListExtend ?? []
|
|
1696
|
+
];
|
|
1697
|
+
const blockNumber = BlockNumber(currentBlockNumber + 1);
|
|
1698
|
+
const l1Constants = await this.archiver.getL1Constants();
|
|
1699
|
+
return createFirstStageTxValidationsForGossipedTransactions(nextSlotTimestamp, blockNumber, this.worldStateSynchronizer, gasFees, this.config.l1ChainId, this.config.rollupVersion, protocolContractsHash, this.archiver, !this.config.disableTransactions, allowedInSetup, this.logger.getBindings(), {
|
|
1700
|
+
rollupManaLimit: l1Constants.rollupManaLimit,
|
|
1701
|
+
maxBlockL2Gas: this.config.validateMaxL2BlockGas,
|
|
1702
|
+
maxBlockDAGas: this.config.validateMaxDABlockGas
|
|
1703
|
+
});
|
|
1704
|
+
}
|
|
1705
|
+
/** Creates the second stage (expensive proof verification) validators for gossiped transactions. */ createSecondStageMessageValidators() {
|
|
1706
|
+
return createSecondStageTxValidationsForGossipedTransactions(this.proofVerifier, this.logger.getBindings());
|
|
1714
1707
|
}
|
|
1715
1708
|
/**
|
|
1716
1709
|
* Run validations on a tx.
|
|
@@ -1728,8 +1721,10 @@ _dec = trackSpan('Libp2pService.validateAndStoreCheckpointAttestation', (_peerId
|
|
|
1728
1721
|
});
|
|
1729
1722
|
// A promise that resolves when all validations have been run
|
|
1730
1723
|
const allValidations = await Promise.all(validationPromises);
|
|
1731
|
-
const
|
|
1732
|
-
if (
|
|
1724
|
+
const failures = allValidations.filter((x)=>!x.isValid);
|
|
1725
|
+
if (failures.length > 0) {
|
|
1726
|
+
// Pick the most severe failure (lowest tolerance = harshest penalty)
|
|
1727
|
+
const failed = maxBy(failures, (f)=>PeerErrorSeverityByHarshness.indexOf(f.severity));
|
|
1733
1728
|
return {
|
|
1734
1729
|
allPassed: false,
|
|
1735
1730
|
failure: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createTxValidatorForReqResponseReceivedTxs } from '../../../msg_validators/index.js';
|
|
2
2
|
export class BatchRequestTxValidator {
|
|
3
3
|
config;
|
|
4
4
|
txValidator;
|
|
@@ -13,7 +13,7 @@ export class BatchRequestTxValidator {
|
|
|
13
13
|
return await Promise.all(txs.map((tx)=>this.validateRequestedTx(tx)));
|
|
14
14
|
}
|
|
15
15
|
static createRequestedTxValidator(config) {
|
|
16
|
-
return
|
|
16
|
+
return createTxValidatorForReqResponseReceivedTxs(config.proofVerifier, {
|
|
17
17
|
l1ChainId: config.l1ChainId,
|
|
18
18
|
rollupVersion: config.rollupVersion
|
|
19
19
|
});
|
|
@@ -95,7 +95,7 @@ export interface P2PService {
|
|
|
95
95
|
getPeers(includePending?: boolean): PeerInfo[];
|
|
96
96
|
/** Returns the number of peers in the GossipSub mesh for a given topic type. */
|
|
97
97
|
getGossipMeshPeerCount(topicType: TopicType): number;
|
|
98
|
-
|
|
98
|
+
validateTxsReceivedInBlockProposal(txs: Tx[]): Promise<void>;
|
|
99
99
|
addReqRespSubProtocol(subProtocol: ReqRespSubProtocol, handler: ReqRespSubProtocolHandler, validator?: ReqRespSubProtocolValidators[ReqRespSubProtocol]): Promise<void>;
|
|
100
100
|
handleAuthRequestFromPeer(authRequest: AuthRequest, peerId: PeerId): Promise<StatusMessage>;
|
|
101
101
|
updateConfig(config: Partial<P2PReqRespConfig>): void;
|
|
@@ -140,4 +140,4 @@ export interface PeerDiscoveryService extends EventEmitter {
|
|
|
140
140
|
getEnr(): ENR | undefined;
|
|
141
141
|
bootstrapNodeEnrs: ENR[];
|
|
142
142
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQ1YsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLFNBQVMsRUFDVixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxZQUFZLE1BQU0sUUFBUSxDQUFDO0FBRXZDLE9BQU8sS0FBSyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0YsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFDVixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1QixjQUFjLEVBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFN0Usb0JBQVksa0JBQWtCO0lBQzVCLE9BQU8sWUFBWTtJQUNuQixPQUFPLFlBQVk7Q0FDcEI7QUFFRDs7OztHQUlHO0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/services/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,10 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
|
|
|
17
17
|
export declare class TxProvider implements ITxProvider {
|
|
18
18
|
private txCollection;
|
|
19
19
|
private txPool;
|
|
20
|
-
private
|
|
20
|
+
private blockProposalTransactionValidator;
|
|
21
21
|
private log;
|
|
22
22
|
protected instrumentation: TxProviderInstrumentation;
|
|
23
|
-
constructor(txCollection: TxCollection, txPool: TxPoolV2,
|
|
23
|
+
constructor(txCollection: TxCollection, txPool: TxPoolV2, blockProposalTransactionValidator: Pick<P2PClient, 'validateTxsReceivedInBlockProposal'>, log?: Logger, client?: TelemetryClient);
|
|
24
24
|
/** Returns txs from the tx pool given their hashes.*/
|
|
25
25
|
getAvailableTxs(txHashes: TxHash[]): Promise<{
|
|
26
26
|
txs: Tx[];
|
|
@@ -48,4 +48,4 @@ export declare class TxProvider implements ITxProvider {
|
|
|
48
48
|
private extractFromProposal;
|
|
49
49
|
private processProposalTxs;
|
|
50
50
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcHJvdmlkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy90eF9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEtBQUssTUFBTSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBRWxFLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBZSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRixPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBOEIsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0U7OztHQUdHO0FBQ0gscUJBQWEsVUFBVyxZQUFXLFdBQVc7SUFJMUMsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLE1BQU07SUFDZCxPQUFPLENBQUMsaUNBQWlDO0lBQ3pDLE9BQU8sQ0FBQyxHQUFHO0lBTmIsU0FBUyxDQUFDLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQztJQUVyRCxZQUNVLFlBQVksRUFBRSxZQUFZLEVBQzFCLE1BQU0sRUFBRSxRQUFRLEVBQ2hCLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsb0NBQW9DLENBQUMsRUFDeEYsR0FBRyxHQUFFLE1BQXlDLEVBQ3RELE1BQU0sR0FBRSxlQUFzQyxFQUcvQztJQUVELHNEQUFzRDtJQUN6QyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBQUMsQ0FrQjdGO0lBRUQsa0ZBQWtGO0lBQzNFLHNCQUFzQixDQUMzQixhQUFhLEVBQUUsYUFBYSxFQUM1QixXQUFXLEVBQUUsV0FBVyxFQUN4QixJQUFJLEVBQUU7UUFBRSxVQUFVLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUFDLFFBQVEsRUFBRSxJQUFJLENBQUE7S0FBRSxHQUN2RCxPQUFPLENBQUM7UUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUE7S0FBRSxDQUFDLENBTzlDO0lBRUQsbUVBQW1FO0lBQzVELGNBQWMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtRQUFFLFFBQVEsRUFBRSxJQUFJLENBQUE7S0FBRSxHQUFHLE9BQU8sQ0FBQztRQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQTtLQUFFLENBQUMsQ0FPNUc7WUFFYSwyQkFBMkI7SUFnQ3pDLE9BQU8sQ0FBQyxRQUFRO1lBS0Ysb0JBQW9CO1lBMEZwQixjQUFjO0lBWTVCLE9BQU8sQ0FBQyxtQkFBbUI7WUFPYixrQkFBa0I7Q0FPakMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_provider.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,EAA8B,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAI1C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"tx_provider.d.ts","sourceRoot":"","sources":["../../src/services/tx_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAElE,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAoB,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,KAAK,eAAe,EAAsB,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,KAAK,EAA8B,YAAY,EAAE,MAAM,kCAAkC,CAAC;AACjG,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAE7E;;;GAGG;AACH,qBAAa,UAAW,YAAW,WAAW;IAI1C,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iCAAiC;IACzC,OAAO,CAAC,GAAG;IANb,SAAS,CAAC,eAAe,EAAE,yBAAyB,CAAC;IAErD,YACU,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,QAAQ,EAChB,iCAAiC,EAAE,IAAI,CAAC,SAAS,EAAE,oCAAoC,CAAC,EACxF,GAAG,GAAE,MAAyC,EACtD,MAAM,GAAE,eAAsC,EAG/C;IAED,sDAAsD;IACzC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAkB7F;IAED,kFAAkF;IAC3E,sBAAsB,CAC3B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE,GACvD,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO9C;IAED,mEAAmE;IAC5D,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAO5G;YAEa,2BAA2B;IAgCzC,OAAO,CAAC,QAAQ;YAKF,oBAAoB;YA0FpB,cAAc;IAY5B,OAAO,CAAC,mBAAmB;YAOb,kBAAkB;CAOjC"}
|
|
@@ -10,13 +10,13 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
|
|
|
10
10
|
*/ export class TxProvider {
|
|
11
11
|
txCollection;
|
|
12
12
|
txPool;
|
|
13
|
-
|
|
13
|
+
blockProposalTransactionValidator;
|
|
14
14
|
log;
|
|
15
15
|
instrumentation;
|
|
16
|
-
constructor(txCollection, txPool,
|
|
16
|
+
constructor(txCollection, txPool, blockProposalTransactionValidator, log = createLogger('p2p:tx-collector'), client = getTelemetryClient()){
|
|
17
17
|
this.txCollection = txCollection;
|
|
18
18
|
this.txPool = txPool;
|
|
19
|
-
this.
|
|
19
|
+
this.blockProposalTransactionValidator = blockProposalTransactionValidator;
|
|
20
20
|
this.log = log;
|
|
21
21
|
this.instrumentation = new TxProviderInstrumentation(client, 'TxProvider');
|
|
22
22
|
}
|
|
@@ -214,7 +214,7 @@ import { TxProviderInstrumentation } from './tx_provider_instrumentation.js';
|
|
|
214
214
|
if (txs.length === 0) {
|
|
215
215
|
return;
|
|
216
216
|
}
|
|
217
|
-
await this.
|
|
217
|
+
await this.blockProposalTransactionValidator.validateTxsReceivedInBlockProposal(txs);
|
|
218
218
|
await this.txPool.addProtectedTxs(txs, blockHeader);
|
|
219
219
|
}
|
|
220
220
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { EpochCache } from '@aztec/epoch-cache';
|
|
2
2
|
import { type Logger } from '@aztec/foundation/log';
|
|
3
3
|
import type { WorldStateSynchronizer } from '@aztec/stdlib/interfaces/server';
|
|
4
|
-
import { P2PClientType } from '@aztec/stdlib/p2p';
|
|
5
4
|
import type { P2PClient } from '../client/p2p_client.js';
|
|
6
5
|
import type { P2PConfig } from '../config.js';
|
|
7
6
|
import type { AttestationPool } from '../mem_pools/attestation_pool/attestation_pool.js';
|
|
@@ -26,7 +25,7 @@ export interface MakeTestP2PClientOptions {
|
|
|
26
25
|
* @param options - The options for the client.
|
|
27
26
|
* @returns The created and already started client.
|
|
28
27
|
*/
|
|
29
|
-
export declare function makeAndStartTestP2PClient(peerIdPrivateKey: string, port: number, peers: string[], options: MakeTestP2PClientOptions): Promise<P2PClient
|
|
28
|
+
export declare function makeAndStartTestP2PClient(peerIdPrivateKey: string, port: number, peers: string[], options: MakeTestP2PClientOptions): Promise<P2PClient>;
|
|
30
29
|
/**
|
|
31
30
|
* Creates a single P2P client for testing purposes.
|
|
32
31
|
* @param peerIdPrivateKey - The private key of the peer.
|
|
@@ -35,7 +34,7 @@ export declare function makeAndStartTestP2PClient(peerIdPrivateKey: string, port
|
|
|
35
34
|
* @param options - The options for the client.
|
|
36
35
|
* @returns The created client.
|
|
37
36
|
*/
|
|
38
|
-
export declare function makeTestP2PClient(peerIdPrivateKey: string, port: number, peers: string[], { alwaysTrueVerifier, p2pBaseConfig, p2pConfigOverrides, mockAttestationPool, mockTxPool, mockEpochCache, mockWorldState, mockGossipSubNetwork, logger }: MakeTestP2PClientOptions): Promise<P2PClient
|
|
37
|
+
export declare function makeTestP2PClient(peerIdPrivateKey: string, port: number, peers: string[], { alwaysTrueVerifier, p2pBaseConfig, p2pConfigOverrides, mockAttestationPool, mockTxPool, mockEpochCache, mockWorldState, mockGossipSubNetwork, logger }: MakeTestP2PClientOptions): Promise<P2PClient>;
|
|
39
38
|
/**
|
|
40
39
|
* Creates a number of P2P clients and immediately starts them for testing purposes.
|
|
41
40
|
* @param numberOfPeers - The number of clients to create.
|
|
@@ -43,7 +42,7 @@ export declare function makeTestP2PClient(peerIdPrivateKey: string, port: number
|
|
|
43
42
|
* @returns The created and started clients.
|
|
44
43
|
*/
|
|
45
44
|
export declare function makeAndStartTestP2PClients(numberOfPeers: number, testConfig: MakeTestP2PClientOptions): Promise<{
|
|
46
|
-
client: P2PClient
|
|
45
|
+
client: P2PClient;
|
|
47
46
|
peerPrivateKey: string;
|
|
48
47
|
port: number;
|
|
49
48
|
enr: string;
|
|
@@ -55,10 +54,10 @@ export declare function makeAndStartTestP2PClients(numberOfPeers: number, testCo
|
|
|
55
54
|
* @returns The created clients.
|
|
56
55
|
*/
|
|
57
56
|
export declare function makeTestP2PClients(numberOfPeers: number, testConfig: MakeTestP2PClientOptions): Promise<{
|
|
58
|
-
client: P2PClient
|
|
57
|
+
client: P2PClient;
|
|
59
58
|
peerPrivateKey: string;
|
|
60
59
|
port: number;
|
|
61
60
|
enr: string;
|
|
62
61
|
}[]>;
|
|
63
62
|
export declare function startTestP2PClients(clients: P2PClient[]): Promise<void>;
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS10ZXN0LXAycC1jbGllbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC1oZWxwZXJzL21ha2UtdGVzdC1wMnAtY2xpZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7QUFLbEUsT0FBTyxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUc5RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDekYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFJdEUsT0FBTyxFQUFFLEtBQUssb0JBQW9CLEVBQWtDLE1BQU0sa0JBQWtCLENBQUM7QUFHN0YsTUFBTSxXQUFXLHdCQUF3QjtJQUN2QyxtQkFBbUIsRUFBRSxlQUFlLENBQUM7SUFDckMsVUFBVSxFQUFFLFFBQVEsQ0FBQztJQUNyQixjQUFjLEVBQUUsVUFBVSxDQUFDO0lBQzNCLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQztJQUN2QyxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUM3QixhQUFhLEVBQUUsU0FBUyxDQUFDO0lBQ3pCLGtCQUFrQixDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNoQixvQkFBb0IsQ0FBQyxFQUFFLG9CQUFvQixDQUFDO0NBQzdDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILHdCQUFzQix5QkFBeUIsQ0FDN0MsZ0JBQWdCLEVBQUUsTUFBTSxFQUN4QixJQUFJLEVBQUUsTUFBTSxFQUNaLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFDZixPQUFPLEVBQUUsd0JBQXdCLHNCQU1sQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCx3QkFBc0IsaUJBQWlCLENBQ3JDLGdCQUFnQixFQUFFLE1BQU0sRUFDeEIsSUFBSSxFQUFFLE1BQU0sRUFDWixLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQ2YsRUFDRSxrQkFBeUIsRUFDekIsYUFBYSxFQUNiLGtCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLGNBQWMsRUFDZCxjQUFjLEVBQ2Qsb0JBQW9CLEVBQ3BCLE1BQXdDLEVBQ3pDLEVBQUUsd0JBQXdCLHNCQTBDNUI7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQiwwQkFBMEIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSx3QkFBd0I7Ozs7O0tBdUMzRztBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQXNCLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLHdCQUF3Qjs7Ozs7S0FnQ25HO0FBRUQsd0JBQXNCLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBRzdEIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"make-test-p2p-clients.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-test-p2p-clients.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"make-test-p2p-clients.d.ts","sourceRoot":"","sources":["../../src/test-helpers/make-test-p2p-clients.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAKlE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAG9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAItE,OAAO,EAAE,KAAK,oBAAoB,EAAkC,MAAM,kBAAkB,CAAC;AAG7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,eAAe,CAAC;IACrC,UAAU,EAAE,QAAQ,CAAC;IACrB,cAAc,EAAE,UAAU,CAAC;IAC3B,cAAc,EAAE,sBAAsB,CAAC;IACvC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,EAAE,SAAS,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,wBAAwB,sBAMlC;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,EACf,EACE,kBAAyB,EACzB,aAAa,EACb,kBAAuB,EACvB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,MAAwC,EACzC,EAAE,wBAAwB,sBA0C5B;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAuC3G;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB;;;;;KAgCnG;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,iBAG7D"}
|
|
@@ -4,7 +4,6 @@ import { createLogger } from '@aztec/foundation/log';
|
|
|
4
4
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
5
5
|
import { sleep } from '@aztec/foundation/sleep';
|
|
6
6
|
import { openTmpStore } from '@aztec/kv-store/lmdb-v2';
|
|
7
|
-
import { P2PClientType } from '@aztec/stdlib/p2p';
|
|
8
7
|
import { createP2PClient } from '../client/index.js';
|
|
9
8
|
import { generatePeerIdPrivateKeys } from '../test-helpers/generate-peer-id-private-keys.js';
|
|
10
9
|
import { getPorts } from './get-ports.js';
|
|
@@ -49,7 +48,7 @@ import { AlwaysFalseCircuitVerifier, AlwaysTrueCircuitVerifier } from './reqresp
|
|
|
49
48
|
await l2BlockSource.createBlocks(100);
|
|
50
49
|
const proofVerifier = alwaysTrueVerifier ? new AlwaysTrueCircuitVerifier() : new AlwaysFalseCircuitVerifier();
|
|
51
50
|
const kvStore = await openTmpStore('test');
|
|
52
|
-
const client = await createP2PClient(
|
|
51
|
+
const client = await createP2PClient(config, l2BlockSource, proofVerifier, mockWorldState, mockEpochCache, 'test-p2p-client', undefined, undefined, {
|
|
53
52
|
txPool: mockTxPool,
|
|
54
53
|
attestationPool: mockAttestationPool,
|
|
55
54
|
store: kvStore,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { P2PClientType } from '@aztec/stdlib/p2p';
|
|
2
1
|
import type { GossipsubEvents, GossipsubMessage } from '@chainsafe/libp2p-gossipsub';
|
|
3
2
|
import type { MsgIdStr, PeerIdStr, PublishOpts, TopicStr } from '@chainsafe/libp2p-gossipsub/types';
|
|
4
3
|
import { type Libp2pStatus, type PeerId, type PublishResult, type TopicValidatorResult, TypedEventEmitter } from '@libp2p/interface';
|
|
@@ -12,7 +11,7 @@ type GossipSubService = PubSubLibp2p['services']['pubsub'];
|
|
|
12
11
|
* Given a mock gossip sub network, returns a factory function that creates an instance LibP2PService connected to it.
|
|
13
12
|
* Designed to be used in tests in P2PClientDeps.p2pServiceFactory.
|
|
14
13
|
*/
|
|
15
|
-
export declare function getMockPubSubP2PServiceFactory
|
|
14
|
+
export declare function getMockPubSubP2PServiceFactory(network: MockGossipSubNetwork): (...args: Parameters<(typeof LibP2PService)['new']>) => Promise<LibP2PService>;
|
|
16
15
|
/**
|
|
17
16
|
* Mock implementation of ReqRespInterface that routes requests to other peers' handlers through the mock network.
|
|
18
17
|
* When a peer calls sendBatchRequest, the mock iterates over network peers and invokes their registered handler
|
|
@@ -83,4 +82,4 @@ export declare class MockGossipSubNetwork {
|
|
|
83
82
|
publishToPeers(topic: TopicStr, data: Uint8Array, sender: PeerId): void;
|
|
84
83
|
}
|
|
85
84
|
export {};
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1wdWJzdWIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0LWhlbHBlcnMvbW9jay1wdWJzdWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckYsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEcsT0FBTyxFQUNMLEtBQUssWUFBWSxFQUNqQixLQUFLLE1BQU0sRUFDWCxLQUFLLGFBQWEsRUFDbEIsS0FBSyxvQkFBb0IsRUFDekIsaUJBQWlCLEVBQ2xCLE1BQU0sbUJBQW1CLENBQUM7QUFJM0IsT0FBTyxFQUErQyxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RFLE9BQU8sS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdEcsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssZUFBZSxFQUNwQixLQUFLLGtCQUFrQixFQUN2QixLQUFLLHlCQUF5QixFQUM5QixLQUFLLDBCQUEwQixFQUMvQixLQUFLLDRCQUE0QixFQUNqQyxLQUFLLGNBQWMsRUFFcEIsTUFBTSxrQ0FBa0MsQ0FBQztBQUcxQyxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0MsS0FBSyxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFM0Q7OztHQUdHO0FBQ0gsd0JBQWdCLDhCQUE4QixDQUM1QyxPQUFPLEVBQUUsb0JBQW9CLEdBQzVCLENBQUMsR0FBRyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxhQUFhLENBQUMsQ0FB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-pubsub.d.ts","sourceRoot":"","sources":["../../src/test-helpers/mock-pubsub.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mock-pubsub.d.ts","sourceRoot":"","sources":["../../src/test-helpers/mock-pubsub.ts"],"names":[],"mappings":"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"}
|