美文网首页
比特币常用命令

比特币常用命令

作者: 不能吃的坚果j | 来源:发表于2019-08-27 10:08 被阅读0次

    本文作者:陈进坚
    博客地址:https://jian1098.github.io
    CSDN博客:https://blog.csdn.net/c_jian
    联系方式:jian1098@qq.com

    关于比特币节点的搭建请看我之前发布的文章,包括测试网络和私有网络的搭建,这里列出在命令行下的常用操作命令。

    钱包相关命令

    查看钱包信息

    该命令可以获取到钱包版本、余额、交易数量等信息

    bitcoin-cli getwalletinfo
    

    获取所有钱包地址及其账号名

    bitcoin-cli listreceivedbyaddress 1 true
    

    查询余额

    bitcoin-cli getbalance
    

    注意:查询得到的余额是所有钱包地址的可用余额总和,并且不包含私钥不在节点的钱包地址余额。

    生成钱包地址

    bitcoin-cli getnewaddress "test"  #"test"是输入的账号
    

    查询地址收到币的数量

    bitcoin-cli getreceivedbyaddress 2MtmeZ7W17zJzigtRhzKMP6MSc2DSyL5LYU
    

    查询默认钱包地址

    该命令在0.18版本被废弃,并且需要在启动节点时带上 -deprecatedrpc=accounts

    bitcoin-cli getaccountaddress ""
    

    加密钱包

    bitcoin-cli encryptwallet mypassword
    

    解锁钱包

    bitcoin-cli walletpassphrase mypassword 30 
    

    30表示解锁时间,单位秒

    锁定钱包

    bitcoin-cli walletlock
    

    备份钱包文件

    需要先解锁,可以将钱包文件wallet.data安全地拷贝到指定文件或目录

    bitcoin-cli backupwallet wallet.back
    

    wallet.back是备份文件名

    导入备份文件

    需要先解锁

    bitcoin-cli importwallet wallet.back
    

    修改钱包密码

    bitcoin-cli walletpassphrasechange mypassword 123456
    

    mypassword 和 123456分别是旧和新密码

    导出所有钱包地址和私钥

    需要先解锁,将钱包里的所有密钥导出到指定的文件

    bitcoin-cli dumpwallet wallet.txt
    

    导入钱包和私钥

    需要先解锁,将上一步的文件导入

    bitcoin-cli importwallet wallet.txt
    

    导出指定钱包地址的私钥

    需要先解锁,结果为字符串

    bitcoin-cli dumpprivkey mzqrRSB8LXa8EAwzFE5mLyoGWP66H7X26H
    

    导入指定钱包私钥

    将上一步的私钥导入,但是导入的参数是该钱包的账号名

    bitcoin-cli importprivkey 92dC2MM4dN4ei6qGarVkL48aiUcPjg2uvPdzpFY6QVjBAPQPGWy "test" true
    

    获取指定钱包地址的账号名

    bitcoin-cli getaccount 2N5UhqzPfTz1rTG3ALkEMsEN6qNvqXcoZJ2
    

    更多命令请参考https://bitcoin-rpc.github.io/en/doc/0.17.99/rpc/wallet/importwallet/ 或中文版http://cw.hubwiz.com/card/c/bitcoin-json-rpc-api/1/7/8/

    导入钱包地址及账号名

    参数为地址或公钥、账号名、是否扫描整个区块链(需要时间长),因为不包含私钥,所以该地址只能用于监听而不能用于消费交易

    bitcoin-cli importaddress muhtvdmsnbQEPFuEmxcChX58fGvXaaUoVt "watch-only test" false
    

    导入公钥

    参数分别是公钥、钱包账号名、是否重新扫描区块(需要时间),导入公钥后节点会同时导入对应的钱包地址,但没有对应的私钥

    bitcoin-cli importpubkey "04aefb3a2b6e0eef583216283b72279cdc1f79a0b99499a0ac9769598278a581ed7734f6b203fcd75fc4836296a4f662dea768671feea454d19b5abdc7a113b081" "transfer test" false
    

    列出所有钱包地址对应的账号名及余额

    只含本节点生成的钱包地址或导入公钥或私钥的钱包地址

    bitcoin-cli listaddressgroupings
    

    老版本的bitcoind请使用命令,0.18版本已废弃

    bitcoin-cli listaccounts    
    

    交易相关命令

    从默认账户给目标地址转账

    bitcoin-cli sendtoaddress "mxHFNt2RXkshzT3CuXb5Dx215BdeNDQRCu" 10
    

    从指定账户转账

    bitcoin-cli sendfrom "test" "n3BMgZMA26TcHnVa5iNJeB3PMqkF3cEWBE" 0.01  
    

    注意:需要生成区块才能确认交易并到账

    生成区块

    bitcoin-cli generate 1
    

    注意:实践证明只有区块数量超过100的时候才会产生余额

    获取交易列表

    参数依次为钱包账户名(*表示所有)、要提取的交易数量,默认值:10、要跳过的交易数量,默认值:0、是否包含watch-only地址,默认值:false

    bitcoin-cli listtransactions "*" 1 0 true
    

    注意:这个命令只会列出本节点并且私钥在节点的钱包地址交易列表,并且bitcoin.conf文件必须加上txindex=1

    根据交易id查询交易详情

    bitcoin-cli gettransaction 47b30a7c5b1cd10183e60676fc0f4a059b96c2f10f16a2828aeb6270f4467500
    

    注意:这个命令只能查到本地节点的钱包地址交易,查询节点外的交易会报Invalid or non-wallet transaction id,而且如果钱包地址的私钥不在节点的话查询出来的数据中details字段是空的,也就是无法查询到该交易的输入输出数据。

    查询未花费的交易

    bitcoin-cli listunspent
    

    或者指定钱包地址和确认的区块数量范围,命令:listunspent [minconf=1] [maxconf=9999999] ["address",...] minconf/maxconf表示该笔收入交易的确认数范围,如果需要列出还未确认的交易,需将minconf设置为0。

    bitcoin-cli listunspent 0 99999999 '["mi7efAUg86n8LZAFD4hdMTfoKYkj8YYbdA"]'
    

    注意:使用此命令只能得到已经导入公钥或钱包地址到节点的列表,并且bitcoin.conf文件必须加上txindex=1,如果导入钱包地址前已经有交易,可以在导入公钥或地址时设置重新扫描区块为true

    生成未签名交易

    bitcoin-cli createrawtransaction '[{"txid":"7fff82f7b28bc12b349e6e4c7482d563e7af6119ca49126bfc04435ce909abbc","vout":0}]' '{"2MuJfZRJi7S7nqaxHrbTRMSTb6GygDD4SFz":1}'
    

    指定找零地址及增加交易输入

    找零地址changeAddress可以是发起交易的钱包地址本身,交易成功后未花费交易的txid会更新

    bitcoin-cli fundrawtransaction 020000000161dc79011198f3e042f68b6e8a1ae16d9cdab96ada6c8b5a9905adb54c6e92430000000000ffffffff0100e1f5050000000017a9141696d866051fb5ff771acc87f47fb1d4c6bb26778700000000 '{"changeAddress": "2MuJfZRJi7S7nqaxHrbTRMSTb6GygDD4SFz","changePosition" : 1,"includeWatching" : true,"lockUnspents" : true}'
    

    注意:使用此命令时,转出钱包地址必须将公钥或私钥导入节点服务器,否则会失败。

    交易签名

    最后的参数是私钥数组

    bitcoin-cli signrawtransactionwithkey 020000000161dc79011198f3e042f68b6e8a1ae16d9cdab96ada6c8b5a9905adb54c6e92430000000000ffffffff0200e1f5050000000017a9141696d866051fb5ff771acc87f47fb1d4c6bb26778728d5a4350000000017a9141696d866051fb5ff771acc87f47fb1d4c6bb26778700000000 '["92oH6gkrUHwmts4jNgv71x87RsYe8hnFKJmGDAzg3FQBisKfTo1"]'
    

    旧版本:

    bitcoin-cli signrawtransaction 0200000001c7ca59373068bba271bcaeabc8648e400188706178082007f263b310afc712f90000000000ffffffff0100fcac060000000017a91439119c8025990e01c0cd9fdfaf4d5aab603ffcd78700000000
    

    发送交易

    bitcoin-cli sendrawtransaction 020000000161dc79011198f3e042f68b6e8a1ae16d9cdab96ada6c8b5a9905adb54c6e9243000000008a47304402201f60fa7cfc8a03cd2be9da0a4c78b00d9e3663748db173c3b778f7946b871e0c022021836426e0800125fe98d9fc8a44fe79a1b775d7e9ea723ee35f21881fb5d385014104ee9fa9f58e21a6d82565cb11391c4673831ae19319b01637ddd7f14fafbcf776608e63e6f0ba39663fd3060ad73d655e31da919e71c7574293b7b2bad1173885ffffffff02c062002d0000000017a9141696d866051fb5ff771acc87f47fb1d4c6bb26778740539a0e000000001976a914b7e29340f24ac2d7b8ac576fab843248298a65dd88ac00000000
    

    其他命令

    命令列表

    bitcoin-cli help
    

    参考文章:

    http://cw.hubwiz.com/card/c/bitcoin-json-rpc-api/1/7/23/

    https://bitcoin-rpc.github.io/en/doc/0.17.99/rpc/blockchain/getblock/

    相关文章

      网友评论

          本文标题:比特币常用命令

          本文链接:https://www.haomeiwen.com/subject/tjusectx.html