コード例 #1
0
 public MergeBlockDownloaderFactory(IPoSSwitcher poSSwitcher,
                                    IBeaconPivot beaconPivot,
                                    ISpecProvider specProvider,
                                    IBlockTree blockTree,
                                    IBlockCacheService blockCacheService,
                                    IReceiptStorage receiptStorage,
                                    IBlockValidator blockValidator,
                                    ISealValidator sealValidator,
                                    ISyncPeerPool peerPool,
                                    ISyncConfig syncConfig,
                                    IBetterPeerStrategy betterPeerStrategy,
                                    ISyncReport syncReport,
                                    ISyncProgressResolver syncProgressResolver,
                                    ILogManager logManager)
 {
     _poSSwitcher          = poSSwitcher ?? throw new ArgumentNullException(nameof(poSSwitcher));
     _beaconPivot          = beaconPivot ?? throw new ArgumentNullException(nameof(beaconPivot));
     _specProvider         = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
     _blockTree            = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
     _receiptStorage       = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
     _blockValidator       = blockValidator ?? throw new ArgumentNullException(nameof(blockValidator));
     _sealValidator        = sealValidator ?? throw new ArgumentNullException(nameof(sealValidator));
     _syncPeerPool         = peerPool ?? throw new ArgumentNullException(nameof(peerPool));
     _betterPeerStrategy   = betterPeerStrategy ?? throw new ArgumentNullException(nameof(betterPeerStrategy));
     _logManager           = logManager ?? throw new ArgumentNullException(nameof(logManager));
     _syncReport           = syncReport ?? throw new ArgumentNullException(nameof(syncReport));
     _chainLevelHelper     = new ChainLevelHelper(_blockTree, _beaconPivot, syncConfig, _logManager);
     _syncProgressResolver = syncProgressResolver ?? throw new ArgumentNullException(nameof(syncProgressResolver));;
 }
コード例 #2
0
 public MergeBlockDownloader(
     IPoSSwitcher posSwitcher,
     IBeaconPivot beaconPivot,
     ISyncFeed <BlocksRequest?>?feed,
     ISyncPeerPool?syncPeerPool,
     IBlockTree?blockTree,
     IBlockValidator?blockValidator,
     ISealValidator?sealValidator,
     ISyncReport?syncReport,
     IReceiptStorage?receiptStorage,
     ISpecProvider specProvider,
     IBetterPeerStrategy betterPeerStrategy,
     IChainLevelHelper chainLevelHelper,
     ISyncProgressResolver syncProgressResolver,
     ILogManager logManager)
     : base(feed, syncPeerPool, blockTree, blockValidator, sealValidator, syncReport, receiptStorage,
            specProvider, new MergeBlocksSyncPeerAllocationStrategyFactory(posSwitcher, beaconPivot, logManager),
            betterPeerStrategy, logManager)
 {
     _blockTree            = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
     _specProvider         = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
     _chainLevelHelper     = chainLevelHelper ?? throw new ArgumentNullException(nameof(chainLevelHelper));
     _poSSwitcher          = posSwitcher ?? throw new ArgumentNullException(nameof(posSwitcher));
     _blockValidator       = blockValidator ?? throw new ArgumentNullException(nameof(blockValidator));
     _syncReport           = syncReport ?? throw new ArgumentNullException(nameof(syncReport));
     _receiptStorage       = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
     _beaconPivot          = beaconPivot;
     _receiptsRecovery     = new ReceiptsRecovery(new EthereumEcdsa(specProvider.ChainId, logManager), specProvider);
     _syncProgressResolver = syncProgressResolver ?? throw new ArgumentNullException(nameof(syncProgressResolver));
     _logger = logManager.GetClassLogger();
 }
コード例 #3
0
 public Context()
 {
     BlockTree    = Substitute.For <IBlockTree>();
     Stats        = Substitute.For <INodeStatsManager>();
     PeerStrategy = new TotalDifficultyBetterPeerStrategy(LimboLogs.Instance);
     Pool         = new SyncPeerPool(BlockTree, Stats, PeerStrategy, 25, 50, LimboLogs.Instance);
 }
コード例 #4
0
    public static int Compare(this IBetterPeerStrategy peerStrategy, BlockHeader?header, ISyncPeer?peerInfo)
    {
        UInt256 headerDifficulty = header?.TotalDifficulty ?? UInt256.Zero;
        long    headerNumber     = header?.Number ?? 0;

        UInt256 peerDifficulty     = peerInfo?.TotalDifficulty ?? UInt256.Zero;
        long    peerInfoHeadNumber = peerInfo?.HeadNumber ?? 0;

        return(peerStrategy.Compare((headerDifficulty, headerNumber), (peerDifficulty, peerInfoHeadNumber)));
    }
コード例 #5
0
 public MergeBetterPeerStrategy(
     IBetterPeerStrategy preMergeBetterPeerStrategy,
     IPoSSwitcher poSSwitcher,
     IBeaconPivot beaconPivot,
     ILogManager logManager)
 {
     _preMergeBetterPeerStrategy = preMergeBetterPeerStrategy;
     _poSSwitcher = poSSwitcher;
     _beaconPivot = beaconPivot;
     _logger      = logManager.GetClassLogger();
 }
コード例 #6
0
 public BlockDownloaderFactory(
     ISpecProvider specProvider,
     IBlockTree blockTree,
     IReceiptStorage receiptStorage,
     IBlockValidator blockValidator,
     ISealValidator sealValidator,
     ISyncPeerPool peerPool,
     IBetterPeerStrategy betterPeerStrategy,
     ISyncReport syncReport,
     ILogManager logManager)
 {
     _specProvider       = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
     _blockTree          = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
     _receiptStorage     = receiptStorage ?? throw new ArgumentNullException(nameof(receiptStorage));
     _blockValidator     = blockValidator ?? throw new ArgumentNullException(nameof(blockValidator));
     _sealValidator      = sealValidator ?? throw new ArgumentNullException(nameof(sealValidator));
     _syncPeerPool       = peerPool ?? throw new ArgumentNullException(nameof(peerPool));
     _betterPeerStrategy = betterPeerStrategy ?? throw new ArgumentNullException(nameof(betterPeerStrategy));
     _syncReport         = syncReport ?? throw new ArgumentNullException(nameof(syncReport));
     _logManager         = logManager ?? throw new ArgumentNullException(nameof(logManager));
 }
コード例 #7
0
 public static int Compare(this IBetterPeerStrategy peerStrategy, (UInt256 TotalDifficulty, long Number) value, ISyncPeer?peerInfo)
コード例 #8
0
 public AuRaBetterPeerStrategy(IBetterPeerStrategy betterPeerStrategy, ILogManager logManager)
 {
     _betterPeerStrategy = betterPeerStrategy;
     _logger             = logManager.GetClassLogger();
 }