1. 程式人生 > >C++從零開始區塊鏈:區塊鏈業務模組之餘額檢查

C++從零開始區塊鏈:區塊鏈業務模組之餘額檢查

比特幣中的餘額檢查實現起來好麻煩,嚴格來說比特幣中並沒有所謂的餘額,具體請讀者自行百度比特幣相關的資料。
在本例中,我們採用一個效率低下,但很簡單的方法:遍歷整個區塊鏈的所有交易,查詢要查詢的地址參與的所有交易,如果目標地址是支出方,就減少,是收入方就增加,便利後的結果就餘額

int BlockChain::CheckBalances(const std::string &addr)
{
    int balan = 0;

    std::list<Block>::iterator bit;
    std::list<Transactions>
::iterator tit; pthread_mutex_lock(&m_mutexBlock); for (bit = m_lst_block.begin(); bit != m_lst_block.end(); ++bit) { for (tit = bit->lst_ts.begin(); tit != bit->lst_ts.end(); ++tit) { if (tit->recipient == addr) balan += tit->amount; else
if (tit->sender == addr) balan -= tit->amount; } } pthread_mutex_unlock(&m_mutexBlock); return balan; }