《精通比特幣》筆記~比特幣客戶端

weixin_33890499發表於2017-08-30

用一個安全密碼給JSON-RPC介面建立一個配置檔案

rpcuser=bitcoinrpc
rpcpassword=2XA4DuKNCbtZXsBQRRNDEwEY2nM6M4H9Tx5dFjoAVVbK
寫入~/.bitcoin/bitcoin.conf

後臺模式執行 bitcoind

bitcoind -daemon

通過命令列使用比特幣核心的JSON-RPC API介面

bitcoin-cli help

獲得比特幣核心客戶端狀態的資訊

bitcoin-cli getinfo
WARNING: getinfo is deprecated and will be fully removed in 0.16.
Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16

錢包設定及加密

加密錢包
bitcoin-cli encryptwallet foo
解鎖錢包
bitcoin-cli walletpassphrase foo 360

錢包備份、純文字匯出及恢復

建立錢包的備份檔案
bitcoin-cli backupwallet wallet.backup
重新載入備份檔案
bitcoin-cli importwallet wallet.backup
將錢包轉儲為人類可讀的文字檔案
bitcoin-cli dumpwallet wallet.txt

錢包地址及接收交易

獲得其中的一個地址
bitcoin-cli getnewaddress
13Bqx1N77WKSC6ZkFxTmamLNSJDRRL9H51
詢問此地址已經接收到的比特幣數額
bitcoin-cli getreceivedbyaddress 13Bqx1N77WKSC6ZkFxTmamLNSJDRRL9H51 0
整個錢包接收到的交易
bitcoin-cli listtransactions
列出整個錢包的所有地址
bitcoin-cli getaddressesbyaccount ""
所有經過至少minconf個確認的交易加和後的餘額
bitcoin-cli getbalance

探索及解碼交易

通過交易雜湊值獲取一筆交易
bitcoin-cli gettransaction 9ca8f969bd3ef5ec2a8685660fdbf7a8bd365524c2e1fc66c309acbae2c14ae3
得到整個交易程式碼並且將之解碼
bitcoin-cli getrawtransaction 9ca8f969bd3ef5ec2a8685660fdbf7a8bd365524c2e1fc66c309acbae2c14ae3
解碼十六進位制字串
bitcoin-cli decoderawtransaction 0100000001d717...388ac00000000
比特幣核心預設建立包含僅與使用者錢包相關交易的資料庫。
若你想使用類似gettransaction的命令訪問所有交易,你需要配置比特幣核心去建立一個完整的交易索引,這個可以通過txindex選項實現。
在比特幣核心配置檔案中將txindex賦值為1(通常在安裝目錄的.bitcoin/bitcoin.conf中可以找到)。
一旦你改變了此引數,你需要重啟bitcoind,並等待其重建索引。

探索區塊

查詢區塊
bitcoin-cli getblock 000000000000000051d2e759c63a26e247f185ecb7926ed7a6624bc31c2a717b true
通過區塊高度來檢索一個區塊/獲得“創世區塊”的區塊雜湊值
bitcoin-cli getblockhash 0
000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
區塊資訊
bitcoin-cli getblock 000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f

基於UTXO(未花費的交易輸出)的建立、簽名與提交

檢視錢包中所有剩餘的從之前交易中已確認的支出
bitcoin-cli listunspent
未花費的輸出的詳細細節
bitcoin-cli gettxout 9ca8f969bd3ef5ec2a8685660fdbf7a8bd365524c2e1fc66c309acbae2c14ae3 0
為交易建立一個新的地址
bitcoin-cli getnewaddress 1LnfTndy3qzXGN19Jwscj1T8LR3MVe3JDb
建立一筆交易
bitcoin-cli createrawtransaction '[{"txid" : "9ca8f969bd3ef5ec2a8685660fdbf7a8bd365524c2e1fc66c309acbae2c14ae3", "vout" : 0}]' '{"1LnfTndy3qzXGN19Jwscj1T8LR3MVe3JDb": 0.025, "1hvzSofGwT8cjb8JU7nBsCSfEVQX5u9CL": 0.0245}'
簽名交易
一個加密的錢包在簽名之前必須解密,因為簽名需要利用錢包中的祕鑰
bitcoin-cli walletpassphrase foo 360
bitcoin-cli signrawtransaction 0100000001e34ac1e2baac09c366fce1c2245536bda8...518fa2e
提交新交易到比特幣網路
bitcoin-cli sendrawtransaction 0100000001e34ac1e2baac09c366fce1c2245536bda8...c17b346
當使用sendrawtransaction命令釋出交易到比特幣網路時,它會返回交易的雜湊值

原文連結

第3章 比特幣客戶端 | 精通比特幣
http://zhibimo.com/read/wang-miao/mastering-bitcoin/Chapter03.html

相關文章