Esempio n. 1
0
 public ClientManager(ILogger logger, IChainManagerBasic chainManagerBasic, ICrossChainInfo crossChainInfo)
 {
     _logger                         = logger;
     _chainManagerBasic              = chainManagerBasic;
     _crossChainInfo                 = crossChainInfo;
     GrpcRemoteConfig.ConfigChanged += GrpcRemoteConfigOnConfigChanged;
 }
Esempio n. 2
0
        private void Initialize()
        {
            _transactionManager        = new TransactionManager(_dataStore, _logger);
            _transactionReceiptManager = new TransactionReceiptManager(_database);
            _smartContractManager      = new SmartContractManager(_dataStore);
            _transactionResultManager  = new TransactionResultManager(_dataStore);
            _transactionTraceManager   = new TransactionTraceManager(_dataStore);
            _functionMetadataService   = new FunctionMetadataService(_dataStore, _logger);
            _chainManagerBasic         = new ChainManagerBasic(_dataStore);
            _chainService = new ChainService(_chainManagerBasic, new BlockManagerBasic(_dataStore),
                                             _transactionManager, _transactionTraceManager, _dataStore, StateStore);
            _smartContractRunnerFactory = new SmartContractRunnerFactory();

            /*var runner = new SmartContractRunner("../../../../AElf.SDK.CSharp/bin/Debug/netstandard2.0/");
             * _smartContractRunnerFactory.AddRunner(0, runner);*/
            var runner = new SmartContractRunner(ContractCodes.TestContractFolder);

            _smartContractRunnerFactory.AddRunner(0, runner);
            _concurrencyExecutingService = new SimpleExecutingService(
                new SmartContractService(_smartContractManager, _smartContractRunnerFactory, StateStore,
                                         _functionMetadataService), _transactionTraceManager, StateStore,
                new ChainContextService(_chainService));

            _chainCreationService = new ChainCreationService(_chainService,
                                                             new SmartContractService(new SmartContractManager(_dataStore), _smartContractRunnerFactory,
                                                                                      StateStore, _functionMetadataService), _logger);

            _binaryMerkleTreeManager = new BinaryMerkleTreeManager(_dataStore);
            _chainContextService     = new ChainContextService(_chainService);
            _stateStore = new StateStore(_database);
        }
Esempio n. 3
0
        public BlockChain(Hash chainId, IChainManagerBasic chainManager, IBlockManagerBasic blockManager,
                          ITransactionManager transactionManager, ITransactionTraceManager transactionTraceManager,
                          IStateStore stateStore, IDataStore dataStore) : base(
                chainId, chainManager, blockManager, dataStore)
        {
            _transactionManager      = transactionManager;
            _transactionTraceManager = transactionTraceManager;
            _stateStore = stateStore;

            _doingRollback     = false;
            _prepareTerminated = false;
            _terminated        = false;

            _logger = LogManager.GetLogger(nameof(BlockChain));

            MessageHub.Instance.Subscribe <TerminationSignal>(signal =>
            {
                if (signal.Module == TerminatedModuleEnum.BlockRollback)
                {
                    if (!_doingRollback)
                    {
                        _terminated = true;
                        MessageHub.Instance.Publish(new TerminatedModule(TerminatedModuleEnum.BlockRollback));
                    }
                    else
                    {
                        _prepareTerminated = true;
                    }
                }
            });
        }
Esempio n. 4
0
 public LightChain(Hash chainId,
                   IChainManagerBasic chainManager,
                   IBlockManagerBasic blockManager, IDataStore dataStore, ILogger logger = null)
 {
     _chainId      = chainId.Clone();
     _chainManager = chainManager;
     _blockManager = blockManager;
     _dataStore    = dataStore;
     _logger       = logger;
 }
Esempio n. 5
0
 public ChainService(IChainManagerBasic chainManager, IBlockManagerBasic blockManager,
                     ITransactionManager transactionManager, ITransactionTraceManager transactionTraceManager,
                     IDataStore dataStore, IStateStore stateStore)
 {
     _chainManager            = chainManager;
     _blockManager            = blockManager;
     _transactionManager      = transactionManager;
     _transactionTraceManager = transactionTraceManager;
     _dataStore  = dataStore;
     _stateStore = stateStore;
 }
Esempio n. 6
0
        public BlockExecutor(IChainService chainService, IExecutingService executingService,
                             ITransactionResultManager transactionResultManager, ClientManager clientManager,
                             IBinaryMerkleTreeManager binaryMerkleTreeManager, ITxHub txHub, IChainManagerBasic chainManagerBasic, IStateStore stateStore)
        {
            _chainService             = chainService;
            _executingService         = executingService;
            _transactionResultManager = transactionResultManager;
            _clientManager            = clientManager;
            _binaryMerkleTreeManager  = binaryMerkleTreeManager;
            _txHub             = txHub;
            _chainManagerBasic = chainManagerBasic;
            _stateStore        = stateStore;
            _dpoSInfoProvider  = new DPoSInfoProvider(_stateStore);

            _logger = LogManager.GetLogger(nameof(BlockExecutor));

            MessageHub.Instance.Subscribe <DPoSStateChanged>(inState => _isMining = inState.IsMining);

            _executing         = false;
            _prepareTerminated = false;
            _terminated        = false;

            MessageHub.Instance.Subscribe <TerminationSignal>(signal =>
            {
                if (signal.Module == TerminatedModuleEnum.BlockExecutor)
                {
                    if (!_executing)
                    {
                        _terminated = true;
                        MessageHub.Instance.Publish(new TerminatedModule(TerminatedModuleEnum.BlockExecutor));
                    }
                    else
                    {
                        _prepareTerminated = true;
                    }
                }
            });

            MessageHub.Instance.Subscribe <StateEvent>(inState =>
            {
                if (inState == StateEvent.RollbackFinished)
                {
                    _isLimitExecutionTime = false;
                }

                if (inState == StateEvent.MiningStart)
                {
                    _isLimitExecutionTime = true;
                }

                _logger?.Trace($"Current Event: {inState.ToString()} ,IsLimitExecutionTime: {_isLimitExecutionTime}");
            });
        }
Esempio n. 7
0
        public MockSetup(IDataStore dataStore, IStateStore stateStore, ITxHub txHub)
        {
            _dataStore  = dataStore;
            _stateStore = stateStore;

            _smartContractManager        = new SmartContractManager(_dataStore);
            _transactionManager          = new TransactionManager(_dataStore);
            _transactionTraceManager     = new TransactionTraceManager(_dataStore);
            _transactionResultManager    = new TransactionResultManager(_dataStore);
            _smartContractRunnerFactory  = new SmartContractRunnerFactory();
            _concurrencyExecutingService = new SimpleExecutingService(
                new SmartContractService(_smartContractManager, _smartContractRunnerFactory, _stateStore,
                                         _functionMetadataService), _transactionTraceManager, _stateStore,
                new ChainContextService(GetChainService()));
            _txHub             = txHub;
            _chainManagerBasic = new ChainManagerBasic(dataStore);
        }
Esempio n. 8
0
 public ChainCreationEventListener(ILogger logger, ITransactionResultManager transactionResultManager,
                                   IChainCreationService chainCreationService, IChainManagerBasic chainManagerBasic)
 {
     _logger = logger;
     TransactionResultManager = transactionResultManager;
     ChainCreationService     = chainCreationService;
     _chainManagerBasic       = chainManagerBasic;
     _interestedLogEvent      = new LogEvent()
     {
         Address = GetGenesisContractHash(),
         Topics  =
         {
             ByteString.CopyFrom("SideChainCreationRequestApproved".CalculateHash())
         }
     };
     _bloom = _interestedLogEvent.GetBloom();
     InitializeClient();
 }
Esempio n. 9
0
File: Miner.cs Progetto: wyk125/AElf
        public Miner(IMinerConfig config, ITxHub txHub, IChainService chainService,
                     IExecutingService executingService, ITransactionResultManager transactionResultManager,
                     ILogger logger, ClientManager clientManager,
                     IBinaryMerkleTreeManager binaryMerkleTreeManager, ServerManager serverManager,
                     IBlockValidationService blockValidationService, IChainContextService chainContextService, IChainManagerBasic chainManagerBasic, IStateStore stateStore)
        {
            Config                    = config;
            _txHub                    = txHub;
            _chainService             = chainService;
            _executingService         = executingService;
            _transactionResultManager = transactionResultManager;
            _logger                   = logger;
            _clientManager            = clientManager;
            _binaryMerkleTreeManager  = binaryMerkleTreeManager;
            _serverManager            = serverManager;
            _blockValidationService   = blockValidationService;
            _chainContextService      = chainContextService;
            _chainManagerBasic        = chainManagerBasic;
            _txFilter                 = new TransactionFilter();
            _dpoSInfoProvider         = new DPoSInfoProvider(stateStore);

            _maxMineTime = ConsensusConfig.Instance.DPoSMiningInterval * NodeConfig.Instance.RatioMine;
        }