加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

使用C#编写自己的区块链挖矿算法

发布时间:2019-08-09 02:00:45 所属栏目:业界 来源:MyZony
导读:副标题#e# 什么是加密货币挖掘? 一个加密货币的价值体现在它的稀缺性上,如果任何人都可以任意构造一个比特币,那么比特币就毫无价值,所以比特币的区块链会让参与者完成一项工作,根据这个工作的最终结果还分发比特币,这个过程就被叫做挖矿。这就类似于

那么我们生成新区块的时候就顺便来挖矿吧:

  1. /// <summary>  
  2. /// 生成新的区块  
  3. /// </summary>  
  4. /// <param name="oldBlock">旧的区块数据</param>  
  5. /// <param name="BPM">心率</param>  
  6. /// <returns>新的区块</returns>  
  7. public static Block GenerateBlock(Block oldBlock, int BPM)  
  8. {  
  9.     Block newnewBlock = new Block()  
  10.     {  
  11.         Index = oldBlock.Index + 1,  
  12.         TimeStamp = CalculateCurrentTimeUTC(),  
  13.         BPMBPM = BPM,  
  14.         PrevHash = oldBlock.Hash,  
  15.         DifficultyDifficulty = Difficulty  
  16.     };  
  17.     // 挖矿 ing...  
  18.     for (int i = 0; ; i++)  
  19.     {  
  20.         newBlock.Nonce = i.ToString("x2");  
  21.         if (!IsHashValid(CalculateHash(newBlock), Difficulty))  
  22.         {  
  23.             Console.WriteLine($"目前结果:{CalculateHash(newBlock)} ,正在计算中...");  
  24.             Task.Delay(1);  
  25.             continue;  
  26.         }  
  27.         else  
  28.         {  
  29.             Console.WriteLine($"目前结果:{CalculateHash(newBlock)} ,计算完毕...");  
  30.             newBlock.Hash = CalculateHash(newBlock);  
  31.             break;  
  32.         }  
  33.     }  
  34.     // 原有代码  
  35.     // newBlock.Hash = CalculateHash(newBlock);  
  36.     return newBlock;  

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读