1. 程式人生 > >《精通比特幣》master_bitcoin-第三章-《比特幣客戶端》

《精通比特幣》master_bitcoin-第三章-《比特幣客戶端》

 

安裝Bitcoin Core

  書上介紹瞭如何在Linux下從Github上clone“比特幣核心( Bitcoin Core)”的程式碼,並通過autogen/configure/make過程編譯出軟體。同時可以在Windows下下載安裝比特幣核心。在常用的Ubuntu作業系統下,如果有管理員許可權,可以使用官方提供PPA的方式安裝Bitcoin Core。

可以用以下三步完成安裝:

安裝完

 

 

Bitcoin Core的三種網路

-  主網mainnet

  現在全球執行的比特幣網路。執行bitcoind即可以成為主網的一個全節點。

-  測試網路testnet

  和主網平行的測試網路,已經有三個版本。執行“bitcoind -testnet”即可以成為測試網路的一個全節點。

-  私有網路regtest

用與比特幣相同的規則搭建私鏈。需要新增regtest引數:“bitcoind -regtest”。

 

額外的設定

  bitcoind和bitcoin-cli有兩種方式讀取配置資訊。 

1.在輸入命令時後面跟上引數,例如

     

  bitcoind –testnet –printtoconsole -rpcuser=u -rpcpassword=p

2.把引數寫在~/.bitcoin/bitcoin.conf檔案裡,bitcoind和bitcoin-cli會自動去讀自己需要的配置資訊,例如

testnet=1

printtoconsole=1

rpcuser=u

rpcpassword=p

 

幾個重要的引數

-daemon:後臺執行

-printtoconsole:列印資訊

-rpcuser:rpc連線的使用者名稱

-rpcpassword: rpc連線的密碼

-rpcallowip:允許的訪問bitcoind的IP範圍

-minconf:交易的最小確認數

(輸入“bitcoind -h”檢視更多資訊)

啟動測試網路並檢視資訊

按上一張第二種方法啟動bitcoind後可以看到bitcoind輸出的除錯資訊。bitcoind開始尋找測試網路的節點並開始同步區塊,這個過程可能需要一段時間(根據網路情況也有可能幾天)。


 

#檢視資訊

bitcoin-cli getinfo

#檢視區塊鏈資訊

bitcoin-cli getblockchaininfo

#檢視網路資訊

bitcoin-cli getnetworkinfo

#檢視錢包資訊

bitcoin-cli getwalletinfo

#檢視更多可以用的命令

bitcoin-cli help

 

錢包

  錢包加密、解密、備份、純文字匯出及恢復見《精通比特幣》3.2.2、3.2.3。

錢包會維護一個地址池,裡面預設有一些地址,使用時可以從中取出一個來接收比特幣。錢包會記錄跟地址池裡地址有關的交易。關於地址池中的地址和相關交易的查詢的命令見3.2.4。

 

交易

  從地址池取出一個地址後,可以到http://bitcoinfaucet.uo1.net/send.php要一點測試幣。兩個小時經過多確認後可以看到餘額發生了變化。

    通過listtransactions和gettransaction可以看到交易概要,後面會附上交易原文,即hex格式。用decoderawtransaction加hex格式的原文可以獲得交易詳細資訊,包括輸入輸出等。

  通過listtransactions和gettransaction可以看到交易細節

 

區塊

getblockhash可以獲得某個高度的區塊的雜湊值,getblock可以獲得某個雜湊值的區塊的詳細資訊。

 

建立和傳送新交易

-   listunspent:列出所有輸出到地址池裡地址的交易,即所有未花費的錢

-   gettxout:獲得某個交易的某個vout

-   createrawtransaction:生成交易的hex格式

-   decoderawtransaction:解碼交易的hex格式

-   signrawtransaction:給交易(hex格式)的每個輸入簽名

-   sendrawtransaction:向網路傳送交易

 

其他替代客戶端、資料庫、工具包

•   libbitcoin和sx tools

•   一款C++,通過命令列完成的全節點多執行緒客戶端與程式庫

•   bitcoinj

•   一款全節點java客戶端和程式庫

•   btcd

•   一款全節點GO 語言的比特幣客戶端

•   Bits of Proof(BOP)

•   一款Java企業級平臺的比特幣工具

•   picocoin

•   一款輕量級比特幣執行客戶端

•   pybitcointools

•   一款Python語言的比特幣程式庫

•   pycoin

•   另一款Python語言的比特幣程式庫

 

關於輕客戶端Electrum