コード例 #1
0
        public void Test03()
        {
            PeerInfo peer1 = new(null !);
            PeerInfo peer2 = new(null !);

            ISyncModeSelector selector     = Substitute.For <ISyncModeSelector>();
            ISnapProvider     snapProvider = Substitute.For <ISnapProvider>();

            Synchronization.SnapSync.SnapSyncFeed feed = new(selector, snapProvider, null !, LimboLogs.Instance);

            feed.AnalyzeResponsePerPeer(AddRangeResult.OK, peer2);
            feed.AnalyzeResponsePerPeer(AddRangeResult.OK, peer1);
            feed.AnalyzeResponsePerPeer(AddRangeResult.ExpiredRootHash, peer1);
            feed.AnalyzeResponsePerPeer(AddRangeResult.ExpiredRootHash, peer2);
            feed.AnalyzeResponsePerPeer(AddRangeResult.ExpiredRootHash, peer1);
            feed.AnalyzeResponsePerPeer(AddRangeResult.DifferentRootHash, peer2);
            feed.AnalyzeResponsePerPeer(AddRangeResult.ExpiredRootHash, peer1);
            feed.AnalyzeResponsePerPeer(AddRangeResult.ExpiredRootHash, peer1);
            feed.AnalyzeResponsePerPeer(AddRangeResult.ExpiredRootHash, peer1);
            var result = feed.AnalyzeResponsePerPeer(AddRangeResult.DifferentRootHash, peer1);

            Assert.AreEqual(SyncResponseHandlingResult.OK, result);

            snapProvider.Received(1).UpdatePivot();
        }
コード例 #2
0
        public void Test04()
        {
            PeerInfo peer1 = new(null !);

            ISyncModeSelector selector     = Substitute.For <ISyncModeSelector>();
            ISnapProvider     snapProvider = Substitute.For <ISnapProvider>();

            Synchronization.SnapSync.SnapSyncFeed feed = new(selector, snapProvider, null !, LimboLogs.Instance);

            for (int i = 0; i < 200; i++)
            {
                feed.AnalyzeResponsePerPeer(AddRangeResult.OK, peer1);
            }
        }
コード例 #3
0
 public MergeSynchronizer(
     IDbProvider dbProvider,
     ISpecProvider specProvider,
     IBlockTree blockTree,
     IReceiptStorage receiptStorage,
     ISyncPeerPool peerPool,
     INodeStatsManager nodeStatsManager,
     ISyncModeSelector syncModeSelector,
     ISyncConfig syncConfig,
     ISnapProvider snapProvider,
     IBlockDownloaderFactory blockDownloaderFactory,
     IPivot pivot,
     IPoSSwitcher poSSwitcher,
     IMergeConfig mergeConfig,
     IInvalidChainTracker invalidChainTracker,
     ILogManager logManager,
     ISyncReport syncReport)
     : base(
         dbProvider,
         specProvider,
         blockTree,
         receiptStorage,
         peerPool,
         nodeStatsManager,
         syncModeSelector,
         syncConfig,
         snapProvider,
         blockDownloaderFactory,
         pivot,
         syncReport,
         logManager)
 {
     _invalidChainTracker = invalidChainTracker;
     _poSSwitcher         = poSSwitcher;
     _mergeConfig         = mergeConfig;
 }