public DownloadViewModel(
     Application app,
     ILogger logger,
     IResourceProvider resProvider,
     IApplicationControlFileProvider appControlFileProvider,
     IFileSystemHelper fileSystemHelper,
     IByteConverter byteConverter,
     IEpisodeFinder podcastEpisodeFinder,
     ISyncItemToEpisodeDownloaderTaskConverter converter,
     ITaskPool taskPool,
     ICrashReporter crashReporter,
     IAnalyticsEngine analyticsEngine,
     IStatusAndProgressMessageStore messageStore,
     INetworkHelper networkHelper,
     IUserSettings userSettings) : base(app)
 {
     ApplicationContext = app;
     Logger             = logger;
     Logger.Debug(() => $"DownloadViewModel:ctor");
     ResourceProvider = resProvider;
     ApplicationControlFileProvider = appControlFileProvider;
     FileSystemHelper     = fileSystemHelper;
     ByteConverter        = byteConverter;
     PodcastEpisodeFinder = podcastEpisodeFinder;
     Converter            = converter;
     TaskPool             = taskPool;
     CrashReporter        = crashReporter;
     AnalyticsEngine      = analyticsEngine;
     MessageStore         = messageStore;
     NetworkHelper        = networkHelper;
     UserSettings         = userSettings;
 }
Exemplo n.º 2
0
        internal override void OnInitialization()
        {
            base.OnInitialization();

            _helper = Helper as INetworkHelper;
            _helper.LoadProtocolChannels(ChannelTypes);
            _helper.BeginConnectServerEvent += (cha) =>
            {
                BeginConnectServerEvent?.Invoke(cha);
            };
            _helper.ConnectServerSuccessEvent += (cha) =>
            {
                ConnectServerSuccessEvent?.Invoke(cha);
            };
            _helper.ConnectServerFailEvent += (cha) =>
            {
                ConnectServerFailEvent?.Invoke(cha);
            };
            _helper.DisconnectServerEvent += (cha) =>
            {
                DisconnectServerEvent?.Invoke(cha);
            };
            _helper.SendMessageEvent += (cha) =>
            {
                SendMessageEvent?.Invoke(cha);
            };
            _helper.ReceiveMessageEvent += (cha, mes) =>
            {
                ReceiveMessageEvent?.Invoke(cha, mes);
            };
        }
        private ServerNetwork CreateNetwork(INetworkHelper networkHelper)
        {
            ServerNetwork network;

            #region Apply CLI Options

            //Options.ServerPort = StartupOptions.ValidPort(Options.ServerPort);

            #endregion

            #region Create Network

            var assembly = Assembly.GetExecutingAssembly();
            using (var stream = assembly.GetManifestResourceStream("Intersect.Server.network.handshake.bkey"))
            {
                var rsaKey = EncryptionKey.FromStream <RsaKey>(stream ?? throw new InvalidOperationException());
                Debug.Assert(rsaKey != null, "rsaKey != null");
                network = new ServerNetwork(this, networkHelper, new NetworkConfiguration(Options.ServerPort), rsaKey.Parameters);
            }

            #endregion

            #region Configure Packet Handlers

            var packetHandler = new PacketHandler(this, networkHelper.HandlerRegistry);
            network.Handler           = packetHandler.HandlePacket;
            network.PreProcessHandler = packetHandler.PreProcessPacket;

            #endregion

            return(network);
        }
Exemplo n.º 4
0
 public HelpViewModel(INetworkHelper network, IHelpViewWrapper helpViewWrapper, bool isViewAvailable)
     : base(EventPublishers.Aggregator)
 {
     _network        = network;
     HelpViewWrapper = helpViewWrapper;
     IsViewAvailable = isViewAvailable;
 }
Exemplo n.º 5
0
 public EthereumRunner(IConfigProvider configurationProvider, INetworkHelper networkHelper,
                       ILogManager logManager)
 {
     _configProvider = configurationProvider;
     _initConfig     = configurationProvider.GetConfig <IInitConfig>();
     _networkHelper  = networkHelper;
     _logManager     = logManager;
 }
        private PluginBootstrapContext(string[] args, Parser parser, Plugin plugin, INetworkHelper parentNetworkHelper)
        {
            Plugin = plugin;

            CommandLine       = new CommandLineHelper(plugin.Logging.Plugin, args, parser);
            EmbeddedResources = new EmbeddedResourceHelper(Assembly);
            Network           = new NetworkHelper(parentNetworkHelper);
        }
        public void Setup()
        {
            ResetObservedResults();

            MockApplication = A.Fake <Application>();
            A.CallTo(() => MockApplication.PackageName).Returns("com.andrewandderek.podcastutilities");
            MockLogger           = A.Fake <ILogger>();
            MockResourceProvider = A.Fake <IResourceProvider>();
            MockFileSystemHelper = A.Fake <IFileSystemHelper>();
            // there is 10MB free in the filesystem
            A.CallTo(() => MockFileSystemHelper.GetAvailableFileSystemSizeInBytes(A <string> .Ignored)).Returns(1024 * 1024 * FREE_DISK_SPACE_MB);
            MockApplicationControlFileProvider = A.Fake <IApplicationControlFileProvider>();
            MockCrashReporter   = A.Fake <ICrashReporter>();
            MockAnalyticsEngine = A.Fake <IAnalyticsEngine>();
            MockApplicationControlFileFactory            = A.Fake <IApplicationControlFileFactory>();
            MockPodcastEpisodeFinder                     = A.Fake <IEpisodeFinder>();
            MockSyncItemToEpisodeDownloaderTaskConverter = A.Fake <ISyncItemToEpisodeDownloaderTaskConverter>();
            MockTaskPool = A.Fake <ITaskPool>();
            MockStatusAndProgressMessageStore = A.Fake <IStatusAndProgressMessageStore>();
            MockNetworkHelper = A.Fake <INetworkHelper>();
            A.CallTo(() => MockNetworkHelper.ActiveNetworkType).Returns(INetworkHelper.NetworkType.Wifi);
            MockUserSettings = A.Fake <IUserSettings>();

            ByteConverter = new ByteConverter();

            SetupResources();

            ViewModel = new DownloadViewModel(
                MockApplication,
                MockLogger,
                MockResourceProvider,
                MockApplicationControlFileProvider,
                MockFileSystemHelper,
                ByteConverter,
                MockPodcastEpisodeFinder,
                MockSyncItemToEpisodeDownloaderTaskConverter,
                MockTaskPool,
                MockCrashReporter,
                MockAnalyticsEngine,
                MockStatusAndProgressMessageStore,
                MockNetworkHelper,
                MockUserSettings
                );
            ViewModel.Observables.Title              += SetTitle;
            ViewModel.Observables.SetEmptyText       += SetEmptyText;
            ViewModel.Observables.StartProgress      += StartProgress;
            ViewModel.Observables.UpdateProgress     += UpdateProgress;
            ViewModel.Observables.EndProgress        += EndProgress;
            ViewModel.Observables.SetSyncItems       += SetSyncItems;
            ViewModel.Observables.DisplayMessage     += DisplayMessage;
            ViewModel.Observables.CellularPrompt     += CellularPrompt;
            ViewModel.Observables.StartDownloading   += StartDownloading;
            ViewModel.Observables.EndDownloading     += EndDownloading;
            ViewModel.Observables.UpdateItemProgress += UpdateItemProgress;
            ViewModel.Observables.UpdateItemStatus   += UpdateItemStatus;
            ViewModel.Observables.ExitPrompt         += ExitPrompt;
            ViewModel.Observables.Exit += Exit;
        }
Exemplo n.º 8
0
        /// <summary>
        /// 设置网络辅助器。
        /// </summary>
        /// <param name="networkHelper">网络辅助器。</param>
        public void SetNetworkHelper(INetworkHelper networkHelper)
        {
            if (networkHelper == null)
            {
                throw new GameFrameworkException("Network helper is invalid.");
            }

            m_NetworkHelper = networkHelper;
        }
Exemplo n.º 9
0
        public MetricHelper(INetworkHelper network)
        {
            _networkHelper = network;
#if DEBUG
            if (TestMockSupport.RunningMocked)
            {
                TelemetryConfiguration.Active.DisableTelemetry = true;
            }
#endif
        }
 // ReSharper disable TooManyDependencies
 public DropBoxSourceViewModel(INetworkHelper network, IDropBoxHelper dropboxHelper, IDropboxFactory dropboxFactory, bool shouldAuthorise)
     // ReSharper restore TooManyDependencies
 {
     VerifyArgument.AreNotNull(new Dictionary<string, object> { { "network", network }, { "dropboxHelper", dropboxHelper }, { "dropboxFactory",dropboxFactory } });
     _network = network;
     _dropboxFactory = dropboxFactory;
     DropBoxHelper = dropboxHelper;
     CookieHelper.Clear();
     if(shouldAuthorise)
     Authorise();
 }
Exemplo n.º 11
0
 public DiscoveryConfigurationProvider(INetworkHelper networkHelper)
 {
     PongTimeout      = 15000;
     BucketSize       = 16;
     BucketsCount     = 256;
     MasterExternalIp = // networkHelper.GetExternalIp()?.ToString();
                        MasterHost = networkHelper.GetLocalIp()?.ToString() ?? "127.0.0.1";
     MasterPort = 30304;
     IsDiscoveryNodesPersistenceOn = true;
     IsPeersPersistenceOn          = true;
     DbBasePath = Path.GetTempPath();
 }
Exemplo n.º 12
0
        public EthStatsRunner(IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider, ILogManager logManager)
        {
            _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _logger     = _logManager.GetClassLogger();

            //InitRlp();
            _configProvider    = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
            _rpcModuleProvider = rpcModuleProvider ?? throw new ArgumentNullException(nameof(rpcModuleProvider));
            _initConfig        = configurationProvider.GetConfig <IInitConfig>();
            //_perfService = new PerfService(_logManager) { LogOnDebug = _initConfig.LogPerfStatsOnDebug };
            _networkHelper = new NetworkHelper(_logger);
        }
Exemplo n.º 13
0
        /// <summary>
        /// 初始化网络管理器的新实例。
        /// </summary>
        public NetworkManager()
        {
            m_NetworkChannels = new Dictionary <string, NetworkChannel>();
            m_EventPool       = new EventPool <Packet>(EventPoolMode.Default);
            m_NetworkHelper   = null;

            m_NetworkConnectedEventHandler     = null;
            m_NetworkClosedEventHandler        = null;
            m_NetworkSendPacketEventHandler    = null;
            m_NetworkMissHeartBeatEventHandler = null;
            m_NetworkErrorEventHandler         = null;
            m_NetworkCustomErrorEventHandler   = null;
        }
Exemplo n.º 14
0
        public EthereumRunner(IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider, ILogManager logManager)
        {
            _logManager = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _logger     = _logManager.GetClassLogger();

            InitRlp();
            _configProvider    = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
            _rpcModuleProvider = rpcModuleProvider ?? throw new ArgumentNullException(nameof(rpcModuleProvider));
            _initConfig        = configurationProvider.GetConfig <IInitConfig>();
            _txPoolConfig      = configurationProvider.GetConfig <ITxPoolConfig>();
            _perfService       = new PerfService(_logManager);
            _networkHelper     = new NetworkHelper(_logger);
        }
        /// <summary>
        /// Initializes general pieces of the <see cref="ApplicationContext{TContext, TStartupOptions}"/>.
        /// </summary>
        /// <param name="startupOptions">the <typeparamref name="TStartupOptions"/> the application was started with</param>
        /// <param name="logger">the application-level <see cref="Logger"/></param>
        /// <param name="networkHelper"></param>
        protected ApplicationContext(TStartupOptions startupOptions, Logger logger, INetworkHelper networkHelper)
        {
            mDisposeLock  = new object();
            mShutdownLock = new object();

            mServices = new ConcurrentDictionary <Type, IApplicationService>();

            StartupOptions = startupOptions;
            Logger         = logger;
            NetworkHelper  = networkHelper;

            ConcurrentInstance.Set(This);
        }
Exemplo n.º 16
0
 // ReSharper disable TooManyDependencies
 public DropBoxSourceViewModel(INetworkHelper network, IDropBoxHelper dropboxHelper, IDropboxFactory dropboxFactory, bool shouldAuthorise)
 // ReSharper restore TooManyDependencies
 {
     VerifyArgument.AreNotNull(new Dictionary <string, object> {
         { "network", network }, { "dropboxHelper", dropboxHelper }, { "dropboxFactory", dropboxFactory }
     });
     _network        = network;
     _dropboxFactory = dropboxFactory;
     DropBoxHelper   = dropboxHelper;
     CookieHelper.Clear();
     if (shouldAuthorise)
     {
         Authorise();
     }
 }
        public ClientNetwork(INetworkHelper networkHelper, NetworkConfiguration configuration, RSAParameters rsaParameters) : base(
                networkHelper,
                configuration
                )
        {
            Guid = Guid.Empty;

            IsConnected    = false;
            IsServerOnline = false;

            mLidgrenInterface                       = new LidgrenInterface(this, typeof(NetClient), rsaParameters);
            mLidgrenInterface.OnConnected          += HandleInterfaceOnConnected;
            mLidgrenInterface.OnConnectionApproved += HandleInterfaceOnConnectonApproved;
            mLidgrenInterface.OnConnectionDenied   += HandleInterfaceOnConnectonDenied;
            mLidgrenInterface.OnDisconnected       += HandleInterfaceOnDisconnected;
            AddNetworkLayerInterface(mLidgrenInterface);
        }
Exemplo n.º 18
0
        internal ServerNetwork(IServerContext context, INetworkHelper networkHelper, NetworkConfiguration configuration, RSAParameters rsaParameters) : base(
                networkHelper, configuration
                )
        {
            Context = context ?? throw new ArgumentNullException(nameof(context));

            Guid = Guid.NewGuid();

            var lidgrenInterface = new LidgrenInterface(this, typeof(NetServer), rsaParameters);

            lidgrenInterface.OnConnected           += HandleInterfaceOnConnected;
            lidgrenInterface.OnConnectionApproved  += HandleInterfaceOnConnectonApproved;
            lidgrenInterface.OnDisconnected        += HandleInterfaceOnDisconnected;
            lidgrenInterface.OnUnconnectedMessage  += HandleOnUnconnectedMessage;
            lidgrenInterface.OnConnectionRequested += HandleConnectionRequested;
            AddNetworkLayerInterface(lidgrenInterface);
        }
Exemplo n.º 19
0
        protected AbstractNetwork(INetworkHelper networkHelper, NetworkConfiguration configuration)
        {
            mDisposed    = false;
            mDisposeLock = new object();

            Helper = networkHelper ?? throw new ArgumentNullException(nameof(networkHelper));

            mNetworkLayerInterfaces = new List <INetworkLayerInterface>();

            ConnectionLookup = new ConcurrentDictionary <Guid, IConnection>();

            if (configuration.Host?.ToLower() == "localhost")
            {
                configuration.Host = "127.0.0.1";
            }

            Configuration = configuration;
        }
Exemplo n.º 20
0
        public EthereumRunner(IRpcModuleProvider rpcModuleProvider, IConfigProvider configurationProvider, ILogManager logManager,
                              IGrpcService grpcService, IGrpcClient grpcClient, INdmConsumerChannelManager ndmConsumerChannelManager,
                              INdmDataPublisher ndmDataPublisher, INdmInitializer ndmInitializer)
        {
            _logManager  = logManager ?? throw new ArgumentNullException(nameof(logManager));
            _grpcService = grpcService;
            _grpcClient  = grpcClient;
            _ndmConsumerChannelManager = ndmConsumerChannelManager;
            _ndmDataPublisher          = ndmDataPublisher;
            _ndmInitializer            = ndmInitializer;
            _logger = _logManager.GetClassLogger();

            InitRlp();
            _configProvider    = configurationProvider ?? throw new ArgumentNullException(nameof(configurationProvider));
            _rpcModuleProvider = rpcModuleProvider ?? throw new ArgumentNullException(nameof(rpcModuleProvider));
            _initConfig        = configurationProvider.GetConfig <IInitConfig>();
            _txPoolConfig      = configurationProvider.GetConfig <ITxPoolConfig>();
            _perfService       = new PerfService(_logManager);
            _networkHelper     = new NetworkHelper(_logger);
        }
            /// <summary>
            /// 初始化网络频道的新实例。
            /// </summary>
            /// <param name="name">网络频道名称。</param>
            /// <param name="networkHelper">网络辅助器。</param>
            public NetworkChannel(string name, INetworkHelper networkHelper)
            {
                m_Name            = name ?? string.Empty;
                m_NetworkHelper   = networkHelper;
                m_NetworkType     = NetworkType.Unknown;
                m_MaxPacketLength = DefaultMaxPacketLength;
                m_ResetHeartBeatElapseSecondsWhenReceivePacket = false;
                m_HeartBeatInterval = DefaultHeartBeatInterval;
                m_Socket            = null;
                m_ReceiveState      = null;
                m_HeartBeatState    = new HeartBeatState();
                m_Active            = false;
                m_Disposed          = false;

                NetworkChannelConnected     = null;
                NetworkChannelClosed        = null;
                NetworkChannelSended        = null;
                NetworkChannelReceived      = null;
                NetworkChannelMissHeartBeat = null;
                NetworkChannelError         = null;
                NetworkChannelCustomError   = null;
            }
        public NetworkHelper(INetworkHelper parentINetworkHelper)
        {
            if (default == parentINetworkHelper)
            {
                throw new ArgumentNullException(nameof(parentINetworkHelper));
            }

            if (!(parentINetworkHelper is NetworkHelper parentNetworkHelper))
            {
                throw new ArgumentException(
                          $"This constructor can only be used if {nameof( parentINetworkHelper )} is a {typeof( NetworkHelper ).FullName}.",
                          nameof(parentINetworkHelper)
                          );
            }

            Parent = parentNetworkHelper;

            HandlerRegistry = Parent.HandlerRegistry;
            TypeRegistry    = Parent.TypeRegistry;

            PluginPacketTypes = new List <Type>();
        }
Exemplo n.º 23
0
 public HelpViewModel(IEventAggregator eventPublisher)
     : base(eventPublisher)
 {
     _network        = new NetworkHelper();
     IsViewAvailable = true;
 }
Exemplo n.º 24
0
 internal ClientContext(ClientCommandLineOptions startupOptions, Logger logger, INetworkHelper networkHelper) : base(
         startupOptions, logger, networkHelper
         )
 {
     FactoryRegistry <IPluginContext> .RegisterFactory(new ClientPluginContext.Factory());
 }
Exemplo n.º 25
0
        protected override void OnRuntimeEnable()
        {
            base.OnRuntimeEnable();

            _networkHelper = Target.GetType().GetField("_helper", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(Target) as INetworkHelper;
        }
Exemplo n.º 26
0
        protected override void OnRuntimeEnable()
        {
            base.OnRuntimeEnable();

            _networkHelper = _helper as INetworkHelper;
        }
 /// <summary>
 /// Initializes a <see cref="Factory"/> for <see cref="IPluginBootstrapContext"/>.
 /// </summary>
 /// <param name="args">the startup arguments that were parsed</param>
 /// <param name="parser">the <see cref="Parser"/> used to parse <paramref name="args"/></param>
 /// <param name="networkHelper"></param>
 public Factory(string[] args, Parser parser, INetworkHelper networkHelper)
 {
     mArgs          = args;
     mParser        = parser;
     mNetworkHelper = networkHelper;
 }
Exemplo n.º 28
0
        new protected async Task StartRunners(IConfigProvider configProvider)
        {
            InitRlp();
            _configProvider = configProvider;
            _initConfig     = _configProvider.GetConfig <IInitConfig>();
            _logManager     = new NLogManager(_initConfig.LogFileName, _initConfig.LogDirectory);
            _logger         = _logManager.GetClassLogger();
            _networkHelper  = new NetworkHelper(_logger);
            SetupKeyStore();
            LoadChainSpec();
            IDbConfig dbConfig = _configProvider.GetConfig <IDbConfig>();

            _dbProvider = new RocksDbProvider(_initConfig.BaseDbPath, dbConfig, _logManager, _initConfig.StoreTraces, _initConfig.StoreReceipts);

            var stateProvider = new StateProvider(
                _dbProvider.StateDb,
                _dbProvider.CodeDb,
                _logManager);

            _stateProvider = stateProvider;



            /* blockchain processing */


            if (_chainSpec.ChainId == RopstenSpecProvider.Instance.ChainId)
            {
                _specProvider = RopstenSpecProvider.Instance;
            }
            else if (_chainSpec.ChainId == MainNetSpecProvider.Instance.ChainId)
            {
                _specProvider = MainNetSpecProvider.Instance;
            }
            else if (_chainSpec.ChainId == RinkebySpecProvider.Instance.ChainId)
            {
                _specProvider = RinkebySpecProvider.Instance;
            }
            else if (_chainSpec.ChainId == GoerliSpecProvider.Instance.ChainId)
            {
                _specProvider = GoerliSpecProvider.Instance;
            }
            else
            {
                _specProvider = new SingleReleaseSpecProvider(Latest.Release, _chainSpec.ChainId);
            }

            _ethereumEcdsa = new EthereumEcdsa(_specProvider, _logManager);
            _txPool        = new TxPool(
                new PersistentTransactionStorage(_dbProvider.PendingTxsDb, _specProvider),
                new PendingTransactionThresholdValidator(_initConfig.ObsoletePendingTransactionInterval,
                                                         _initConfig.RemovePendingTransactionInterval), new Timestamp(),
                _ethereumEcdsa, _specProvider, _logManager, _initConfig.RemovePendingTransactionInterval,
                _initConfig.PeerNotificationThreshold);
            _receiptStorage = new PersistentReceiptStorage(_dbProvider.ReceiptsDb, _specProvider);

            _blockTree = new BlockTree(
                _dbProvider.BlocksDb,
                _dbProvider.HeadersDb,
                _dbProvider.BlockInfosDb,
                _specProvider,
                _txPool,
                _logManager);
            _recoveryStep = new TxSignaturesRecoveryStep(_ethereumEcdsa, _txPool, _logManager);
            CliqueConfig cliqueConfig = null;

            _snapshotManager = null;
            switch (_chainSpec.SealEngineType)
            {
            case SealEngineType.None:
                _sealer           = NullSealEngine.Instance;
                _sealValidator    = NullSealEngine.Instance;
                _rewardCalculator = NoBlockRewards.Instance;
                break;

            case SealEngineType.Clique:
                _rewardCalculator        = NoBlockRewards.Instance;
                cliqueConfig             = new CliqueConfig();
                cliqueConfig.BlockPeriod = _chainSpec.Clique.Period;
                cliqueConfig.Epoch       = _chainSpec.Clique.Epoch;
                _snapshotManager         = new SnapshotManager(cliqueConfig, _dbProvider.BlocksDb, _blockTree, _ethereumEcdsa, _logManager);
                _sealValidator           = new CliqueSealValidator(cliqueConfig, _snapshotManager, _logManager);
                _recoveryStep            = new CompositeDataRecoveryStep(_recoveryStep, new AuthorRecoveryStep(_snapshotManager));
                if (_initConfig.IsMining)
                {
                    _sealer = new CliqueSealer(new BasicWallet(_nodeKey), cliqueConfig, _snapshotManager, _nodeKey.Address, _logManager);
                }
                else
                {
                    _sealer = NullSealEngine.Instance;
                }

                break;

            case SealEngineType.NethDev:
                _sealer           = NullSealEngine.Instance;
                _sealValidator    = NullSealEngine.Instance;
                _rewardCalculator = NoBlockRewards.Instance;
                break;

            case SealEngineType.Ethash:
                _rewardCalculator = new RewardCalculator(_specProvider);
                var difficultyCalculator = new DifficultyCalculator(_specProvider);
                if (_initConfig.IsMining)
                {
                    _sealer = new EthashSealer(new Ethash(_logManager), _logManager);
                }
                else
                {
                    _sealer = NullSealEngine.Instance;
                }

                _sealValidator = new EthashSealValidator(_logManager, difficultyCalculator, new Ethash(_logManager));
                break;

            default:
                throw new NotSupportedException($"Seal engine type {_chainSpec.SealEngineType} is not supported in Nethermind");
            }


            _headerValidator = new HeaderValidator(
                _blockTree,
                _sealValidator,
                _specProvider,
                _logManager);

            var ommersValidator = new OmmersValidator(
                _blockTree,
                _headerValidator,
                _logManager);
            var storageProvider = new StorageProvider(
                _dbProvider.StateDb,
                stateProvider,
                _logManager);

            var txValidator = new TxValidator(_specProvider.ChainId);

            _blockValidator = new BlockValidator(
                txValidator,
                _headerValidator,
                ommersValidator,
                _specProvider,
                _logManager);



            var blockhashProvider = new BlockhashProvider(
                _blockTree, _logManager);

            var virtualMachine = new VirtualMachine(
                stateProvider,
                storageProvider,
                blockhashProvider,
                _logManager);

            var transactionProcessor = new TransactionProcessor(
                _specProvider,
                stateProvider,
                storageProvider,
                virtualMachine,
                _logManager);

            _blockProcessor = new BlockProcessor(
                _specProvider,
                _blockValidator,
                _rewardCalculator,
                transactionProcessor,
                _dbProvider.StateDb,
                _dbProvider.CodeDb,
                _dbProvider.TraceDb,
                stateProvider,
                storageProvider,
                _txPool,
                _receiptStorage,
                _configProvider.GetConfig <ISyncConfig>(),
                _logManager);

            _blockchainProcessor = new BlockchainProcessor(
                _blockTree,
                _blockProcessor,
                _recoveryStep,
                _logManager,
                _initConfig.StoreReceipts,
                _initConfig.StoreTraces);


            string chainFile = Path.Join(Path.GetDirectoryName(_initConfig.ChainSpecPath), "chain.rlp");

            if (!File.Exists(chainFile))
            {
                _logger.Info($"Chain file does not exist: {chainFile}, skipping");
                return;
            }

            var chainFileContent = File.ReadAllBytes(chainFile);
            var context          = new Rlp.DecoderContext(chainFileContent);
            var blocks           = new List <Block>();

            while (context.ReadNumberOfItemsRemaining() > 0)
            {
                context.PeekNextItem();
                blocks.Add(Rlp.Decode <Block>(context));
            }

            for (int i = 0; i < blocks.Count; i++)
            {
                ProcessBlock(blocks[i]);
            }
        }
 CreateFactory(string[] args, Parser parser, INetworkHelper networkHelper) => new Factory(args, parser, networkHelper);
Exemplo n.º 30
0
        public static bool GetNetworkAvailable()
        {
            INetworkHelper networkHelper = DependencyService.Get <INetworkHelper>();

            return(networkHelper.IsNetworkAvailable());
        }
        internal ServerContext(ServerCommandLineOptions startupOptions, Logger logger, INetworkHelper networkHelper) : base(
                startupOptions, logger, networkHelper
                )
        {
            // Register the factory for creating service plugin contexts
            FactoryRegistry <IPluginContext> .RegisterFactory(new ServerPluginContext.Factory());

            if (startupOptions.Port > 0)
            {
                Options.ServerPort = startupOptions.Port;
            }

            RestApi = new RestApi(startupOptions.ApiPort);

            Network = CreateNetwork(networkHelper);
        }