1. 程式人生 > >C++從零開始區塊鏈:區塊鏈業務模組之挖礦

C++從零開始區塊鏈:區塊鏈業務模組之挖礦

挖礦就是找到一個滿足工作量驗證條件的工作量證明,當一個節點找到了一個工作量證明之後,首先以給自己新增一個挖礦交易的形式進行金額獎勵,即新增一個付款地址為0,收款地址為自己的交易到自己的交易記錄。然後錄他會將自己記錄的所有交易資訊打包程一個區塊,並向其他節點進行廣播。其他節點接收到以後會對工作量證明進行驗證,驗證通過後就會將該區塊掛到自己的區塊鏈上,等下次與主鏈同步的時候同步到主鏈上。
為了簡化驗證一個工作量證明是否已經存在與鏈上的工作,每次挖礦都從上一個區塊的工作量證明開始。

std::string BlockChain::Mining(const std::string &addr)
{
    //挖礦的交易,交易支出方地址為0
//每次挖礦成功獎勵10個幣 Block last = GetLastBlock(); int proof = WorkloadProof(last.proof); Transactions ts = CreateTransactions("0", addr, 10); InsertTransactions(ts); Block block = CreateBlock(last.index + 1, time(NULL), proof); return GetJsonFromBlock(block); }

以上就是挖礦流程,建立交易和區塊將在下篇介紹,如何廣播到P2P網路中以後再介紹。