コード例 #1
0
ファイル: MinerService.cs プロジェクト: Dewyer/MemeIum
        private List <Transaction> SelfTrans()
        {
            var tt = _walletService.AssembleTransaction(_walletService.Address, 1, "generate mims");

            if (tt != null)
            {
                return new List <Transaction>()
                       {
                           tt
                       }
            }
            ;
            return(new List <Transaction>());
        }
コード例 #2
0
ファイル: BlockChainService.cs プロジェクト: Dewyer/MemeIum
        private void OnNewBlock(object obj)
        {
            var block = (Block)obj;

            if (_blockVerifier.Verify(block))
            {
                SaveBlock(block);
                _logger.Log($"Got new verified block {block.Body.Id}");
                _mappingService.Broadcast(block);

                if (block.Body.LastBlockId == Info.EndOfLongestChain)
                {
                    Info.EndOfLongestChain = block.Body.Id;
                    Info.Height++;
                }
                else
                {
                    CalculateLongestChain();
                }
                Info.EditTime = DateTime.UtcNow;
                SaveLocalInfo();
                ClearMemPool(block);
                _minerService.TryRestartingWorkers();
                _eventManager.PassNewTrigger(block, EventTypes.EventType.NewVerifiedBlock);
            }
            else
            {
                _logger.Log($"Got new shit block {block.Body.Id}");
                ClearMemPool(block);
            }
            Task.Run(delegate
            {
                Task.Delay(2000).Wait();
                if (_minerService.MemPool.Count == 0 && Configurations.Config.CM)
                {
                    _minerService.MemPool.Add(_walletService.AssembleTransaction(_walletService.Address, 1, "getme"));
                    _minerService.TryRestartingWorkers();
                }
            });
        }