其實這個章節的一些知識點在轉賬交易那一章節均有所涉及,所以,查詢餘額這個功能相對而言比較簡單,只要熟悉了utxo模型,加上對交易流程的了解之後,對查詢餘額基本上已經有了思路。
func (cli *cli) getbalance(address string)
defer bc.db.close()
utxoset :=&utxoset
total:=utxoset.getbalance(address)
fmt.printf("%s,餘額是:%d\n", address, total)
}
getbalance
func (utxoset *utxoset) getbalance(address string) int64
return total
}
findunspentutxosbyaddress
func (utxoset *utxoset) findunspentutxosbyaddress(address string) *utxo }}
}return nil
})if err != nil
return utxos
}
4.1 獲取所有位址$ ./mybtc getaddresslists
返回結果
錢包位址列表為:
1dhpnhkfk9uudog2f2xbvx9dq4nxpf5q4q
1htjve4mww4lvko3yjkj3uuvzxsughb1yq
4.2 查詢餘額$ ./mybtc getbalance -address 1dhpnhkfk9uudog2f2xbvx9dq4nxpf5q4q
返回結果
1dhpnhkfk9uudog2f2xbvx9dq4nxpf5q4q,餘額是:12
分析
1.建立創世區塊,該位址獲得10元
2.第一筆轉賬,給位址1htjve4mww4lvko3yjkj3uuvzxsughb1yq轉賬2元, 剩餘8元,得到10元獎勵,餘額為18元
3.第二筆轉賬,給位址1htjve4mww4lvko3yjkj3uuvzxsughb1yq轉賬3元, 剩餘15元,得到10元獎勵,餘額為25元
4.第三筆轉賬,給位址1htjve4mww4lvko3yjkj3uuvzxsughb1yq轉賬23元,剩餘2元,得到10元獎勵,餘額為12元
10元獎勵是**中設定每個區塊的coinbase交易給轉賬使用者的,實際位元幣場景是給礦工的,這裡是測試場景,請大家勿要混淆。
./mybtc getbalance -address 1htjve4mww4lvko3yjkj3uuvzxsughb1yq
返回結果
1htjve4mww4lvko3yjkj3uuvzxsughb1yq,餘額是:28
分析
2 + 3 + 23 = 28元
到此,我們查詢餘額的功能基本完畢。 從0到1安裝開發環境
瀏覽器 chrome 版本控制 git 命令列 mac iterm2 windows cmder restful 客戶端 insomnia webpack是一款模組載入器兼打包工具,它能把各種資源,例如js 含jsx coffee 樣式 含less sass 等都作為模組來使用和處理 npm ins...
從0到1搭建React Native開發環境
rn開發之前要配置一系列的開發環境,這裡剛配置好,這裡做乙個總結記錄,希望對大家有幫助。1.nvm是什麼呢?全稱node version manage。看到全稱應該知道了吧,其實nvm就是用來管理nodejs的乙個管理器,他可以安裝多個版本的nodejs和npm版本。nodejs是什麼?nodejs...
從0到1學習node之簡易的網路爬蟲
我們這節的目標是學習完本節課程後,能進行網頁簡單的分析與抓取,對抓取到的資訊進行輸出和文字儲存。爬蟲的思路很簡單 確定要抓取的url 對url進行抓取,獲取網頁內容 對內容進行分析並儲存 重複第1步 總索引 從0到1學習node 一 之模組規範 從0到1學習node 二 之搭建http伺服器 從0到...