예제 #1
0
파일: BlockChain.cs 프로젝트: wyk125/AElf
        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;
                    }
                }
            });
        }
예제 #2
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;
 }
예제 #3
0
파일: ChainService.cs 프로젝트: wyk125/AElf
 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;
 }