Exemplo n.º 1
0
        public async Task <Block> MineAsync(byte[] address)
        {
            var lastBlock = await _blockchain.GetLastBlockAsync();

            var baseBlock  = GenerateNextBlock(lastBlock);
            var difficulty = _blockchain.GetDifficulty(baseBlock.Index.GetValueOrDefault());

            return(_proofOfWork.ProveWorkFor(baseBlock, difficulty));
        }
Exemplo n.º 2
0
        public async Task <CurrencyBlock> MineAsync(string address)
        {
            var lastBlock = await _blockchain.GetLastBlockAsync();

            var transactions = _blockchain.StreamAllTransactions();

            CurrencyBlock baseBlock = GenerateNextBlock(address, lastBlock, transactions);

            return((CurrencyBlock)_proofOfWork.ProveWorkFor(baseBlock, _blockchain.GetDifficulty(baseBlock.Index.GetValueOrDefault())));
        }