コード例 #1
0
ファイル: Blockchain.cs プロジェクト: shargon/neo-sharp
        public async Task InitializeBlockchain()
        {
            if (Interlocked.Exchange(ref _initialized, 1) != 0)
            {
                return;
            }

            var blockHeight = await _blockRepository.GetTotalBlockHeight();

            var blockHeaderHeight = await _blockRepository.GetTotalBlockHeaderHeight();

            _blockchainContext.CurrentBlock = await _blockRepository.GetBlock(blockHeight);

            _blockchainContext.LastBlockHeader = await _blockRepository.GetBlockHeader(blockHeaderHeight);

            _blockProcessor.Run();
            if (_blockchainContext.CurrentBlock == null || _blockchainContext.LastBlockHeader == null)
            {
                await _blockProcessor.AddBlock(_genesisBuilder.Build());
            }
        }