mkdir /tmp/bitcoin_data
cat > /tmp/bitcoin_data/bitcoin.conf << EOF
# bitcoin.conf
server=1
regtest=1
txindex=1
whitelist=127.0.0.1
rpcallowip=127.0.0.1
rpcuser=rpc
rpcpassword=123456
rpcport=18443
port=18444
# end
EOF
docker run -d --name btc --restart=always -v /tmp/bitcoin_data/:/home/bitcoin/.bitcoin/ -p 18443:18443 -p 18444:18444 btc:0.17.1
Alias:
alias bitcoin-cli="docker exec --user bitcoin btc bitcoin-cli -rpcuser=rpc -rpcpassword=123456 -rpcport=18443"
获取所有接口帮助文档
bitcoin-cli help
bitcoin-cli getnewaddress # 默认是 p2sh-segwit 地址
2NFqee9CvjAE2txS8j7eXGPrz21QjFcoCaT
# 获取 legacy 地址
bitcoin-cli getnewaddress "" legacy
mwJvrS25GRginaVPh6D7ot9iC4ttvHU9AW
# 获取 bech32 地址
bitcoin-cli getnewaddress "" bech32
bcrt1qnddd4kr5z8yrrf6pqd4ee74qkvtk88rfgz6teq
bitcoin-cli getblockhash 0
0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206
bitcoin-cli getblock 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206
{
"hash": "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206",
"confirmations": 1,
"strippedsize": 285,
"size": 285,
"weight": 1140,
"height": 0,
"version": 1,
"versionHex": "00000001",
"merkleroot": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
"tx": [
"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b"
],
"time": 1296688602,
"mediantime": 1296688602,
"nonce": 2,
"bits": "207fffff",
"difficulty": 4.656542373906925e-10,
"chainwork": "0000000000000000000000000000000000000000000000000000000000000002",
"nTx": 1
}
查看区块 Hex 和 详细 JSON 数据:
bitcoin-cli getblock 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206 0
0100000000000000000000000000000000000000000000000000000000000000000000003ba3edfd7a7b12b27ac72c3e67768f617fc81bc3888a51323a9fb8aa4b1e5e4adae5494dffff7f20020000000101000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000
bitcoin-cli getblock 0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206 2
{
"hash": "0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206",
"confirmations": 1,
"strippedsize": 285,
"size": 285,
"weight": 1140,
"height": 0,
"version": 1,
"versionHex": "00000001",
"merkleroot": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
"tx": [
{
"txid": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
"hash": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
"version": 1,
"size": 204,
"vsize": 204,
"weight": 816,
"locktime": 0,
"vin": [
{
"coinbase": "04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73",
"sequence": 4294967295
}
],
"vout": [
{
"value": 50.00000000,
"n": 0,
"scriptPubKey": {
"asm": "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f OP_CHECKSIG",
"hex": "4104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac",
"reqSigs": 1,
"type": "pubkey",
"addresses": [
"mpXwg4jMtRhuSpVq4xS3HFHmCmWp9NyGKt"
]
}
}
],
"hex": "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000"
}
],
"time": 1296688602,
"mediantime": 1296688602,
"nonce": 2,
"bits": "207fffff",
"difficulty": 4.656542373906925e-10,
"chainwork": "0000000000000000000000000000000000000000000000000000000000000002",
"nTx": 1
}
Bitcoin 版本 v0.17 之前 getblock
只有 0
和 1
两个参数:0
返回 HEX 数据, 1
返回 JSON 数据。v0.17版本开始多了一个参数 2
,返回 JSON 数据,包含交易详情。
# 生成 101 个区块并把奖励给地址 bcrt1qnddd4kr5z8yrrf6pqd4ee74qkvtk88rfgz6teq
bitcoin-cli generatetoaddress 101 bcrt1qnddd4kr5z8yrrf6pqd4ee74qkvtk88rfgz6teq
bitcoin-cli getblockcount
101
bitcoin-cli getbalance
50.00000000
bitcoin-cli getunconfirmedbalance
0.00000000
bitcoin-cli getblockhash 101
1b0668eb0608351755a6bc93974bac4a950bae2135f66fd4ac579a0b4a06d327
➜ 0.17.1 git:(master) bitcoin-cli getblock 1b0668eb0608351755a6bc93974bac4a950bae2135f66fd4ac579a0b4a06d327
{
"hash": "1b0668eb0608351755a6bc93974bac4a950bae2135f66fd4ac579a0b4a06d327",
"confirmations": 1,
"strippedsize": 214,
"size": 250,
"weight": 892,
"height": 101,
"version": 536870912,
"versionHex": "20000000",
"merkleroot": "52c96671a3aeb6a7fabb026f28fd02789d4f9d52ae95ebf0ec46004a5c2f2947",
"tx": [
"52c96671a3aeb6a7fabb026f28fd02789d4f9d52ae95ebf0ec46004a5c2f2947"
],
"time": 1547106783,
"mediantime": 1547106782,
"nonce": 1,
"bits": "207fffff",
"difficulty": 4.656542373906925e-10,
"chainwork": "00000000000000000000000000000000000000000000000000000000000000cc",
"nTx": 1,
"previousblockhash": "3e1c3e83539237e6b34e6f82b3606dd870112f898bb39b76492739024e576720"
}
➜ 0.17.1 git:(master) bitcoin-cli getblock 1b0668eb0608351755a6bc93974bac4a950bae2135f66fd4ac579a0b4a06d3
➜ 0.17.1 git:(master) bitcoin-cli getrawtransaction 52c96671a3aeb6a7fabb026f28fd02789d4f9d52ae95ebf0ec46004a5c2f2947
020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401650101ffffffff0200f2052a010000001600149b5adad87411c831a741036b9cfaa0b317639c690000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000
➜ 0.17.1 git:(master) bitcoin-cli getrawtransaction 52c96671a3aeb6a7fabb026f28fd02789d4f9d52ae95ebf0ec46004a5c2f2947 1
{
"txid": "52c96671a3aeb6a7fabb026f28fd02789d4f9d52ae95ebf0ec46004a5c2f2947",
"hash": "c01980d5e6c220a51b94e68c7d04ac6da00e9f176c037fb8752c1fe228f75abb",
"version": 2,
"size": 169,
"vsize": 142,
"weight": 568,
"locktime": 0,
"vin": [
{
"coinbase": "01650101",
"sequence": 4294967295
}
],
"vout": [
{
"value": 50.00000000,
"n": 0,
"scriptPubKey": {
"asm": "0 9b5adad87411c831a741036b9cfaa0b317639c69",
"hex": "00149b5adad87411c831a741036b9cfaa0b317639c69",
"reqSigs": 1,
"type": "witness_v0_keyhash",
"addresses": [
"bcrt1qnddd4kr5z8yrrf6pqd4ee74qkvtk88rfgz6teq"
]
}
},
{
"value": 0.00000000,
"n": 1,
"scriptPubKey": {
"asm": "OP_RETURN aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9",
"hex": "6a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf9",
"type": "nulldata"
}
}
],
"hex": "020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0401650101ffffffff0200f2052a010000001600149b5adad87411c831a741036b9cfaa0b317639c690000000000000000266a24aa21a9ede2f61c3f71d1defd3fa999dfa36953755c690689799962b48bebd836974e8cf90120000000000000000000000000000000000000000000000000000000000000000000000000",
"blockhash": "1b0668eb0608351755a6bc93974bac4a950bae2135f66fd4ac579a0b4a06d327",
"confirmations": 1,
"time": 1547106783,
"blocktime": 1547106783
}
bitcoin-cli listunspent
[
{
"txid": "745c0300c6b7261654c75667b5dff237807a1183f089416430cabf3ee638fc38",
"vout": 0,
"address": "bcrt1qnddd4kr5z8yrrf6pqd4ee74qkvtk88rfgz6teq",
"label": "",
"scriptPubKey": "00149b5adad87411c831a741036b9cfaa0b317639c69",
"amount": 50.00000000,
"confirmations": 101,
"spendable": true,
"solvable": true,
"safe": true
}
]
bitcoin-cli getnewaddress # 生成两个新地址
2N7J3NEehi1CVHzeDErB5wSHDXVZWPABSbj
2N4k92U8BbU3yn3S5YXEueKs2ovFvMf6hnc
# 发送单个地址
bitcoin-cli sendtoaddress 2N7J3NEehi1CVHzeDErB5wSHDXVZWPABSbj 10.1234
b0f99078a0ee4d1894551661817705fd7eced4597f8270a00247d6747b45395e
# 发送多个地址
bitcoin-cli sendmany "" "{\"2N7J3NEehi1CVHzeDErB5wSHDXVZWPABSbj\": 5.1234, \"2N4k92U8BbU3yn3S5YXEueKs2ovFvMf6hnc\": 20.999}"
0f8b142fc63ad2fa0b97bae333495653daafbb5d02bf5cb73b1423284680dd01
bitcoin-cli generate 1
[
"10d0bbc5039455288d2be2373fab0fe9e1c085f8a9c436b48c4f61334dd77469"
]
bitcoin-cli getblock 10d0bbc5039455288d2be2373fab0fe9e1c085f8a9c436b48c4f61334dd77469
{
"hash": "10d0bbc5039455288d2be2373fab0fe9e1c085f8a9c436b48c4f61334dd77469",
"confirmations": 1,
"strippedsize": 512,
"size": 766,
"weight": 2302,
"height": 102,
"version": 536870912,
"versionHex": "20000000",
"merkleroot": "e4bc7782978f53a7894030342061c9571606c74d2dac186fd74e4f0417435ce0",
"tx": [
"81240ada4356e3e5a494fb2ff0fb496e8ff15f74c7984f404d2bf0764d9ec0dd",
"b0f99078a0ee4d1894551661817705fd7eced4597f8270a00247d6747b45395e",
"0f8b142fc63ad2fa0b97bae333495653daafbb5d02bf5cb73b1423284680dd01"
],
"time": 1547109843,
"mediantime": 1547106782,
"nonce": 0,
"bits": "207fffff",
"difficulty": 4.656542373906925e-10,
"chainwork": "00000000000000000000000000000000000000000000000000000000000000ce",
"nTx": 3,
"previousblockhash": "1b0668eb0608351755a6bc93974bac4a950bae2135f66fd4ac579a0b4a06d327"
}
可以看到刚才发的那两笔交易。
获取 UTXO:
bitcoin-cli listunspent
[
{
"txid": "0f8b142fc63ad2fa0b97bae333495653daafbb5d02bf5cb73b1423284680dd01",
"vout": 0,
"address": "2MzVsf2yAeqdLPz6DZMiqzAobmi93TePVH7",
"redeemScript": "00141cda5e32eebcd583530021e51f213dbf8111260a",
"scriptPubKey": "a9144f8e25d07925fe6bd81af7501121e46ab19c5d7d87",
"amount": 13.75413180,
"confirmations": 1,
"spendable": true,
"solvable": true,
"safe": true
},
]
创建未签名的交易:
bitcoin-cli createrawtransaction "[{\"txid\":\"0f8b142fc63ad2fa0b97bae333495653daafbb5d02bf5cb73b1423284680dd01\",\"vout\":0}]" "[{\"2N4k92U8BbU3yn3S5YXEueKs2ovFvMf6hnc\":10.0}, {\"2MzVsf2yAeqdLPz6DZMiqzAobmi93TePVH7\":3.75}]"
020000000101dd80462823143bb75cbf025dbbafda53564933e3ba970bfad23ac62f148b0f0000000000ffffffff0200ca9a3b0000000017a9147e214dddb18e1e1d58f54d21a056612803e35aab87c00b5a160000000017a9144f8e25d07925fe6bd81af7501121e46ab19c5d7d8700000000
可以使用 decoderawtransaction
解析交易 HEX 。
签名未签名的交易:
bitcoin-cli signrawtransactionwithwallet 020000000101dd80462823143bb75cbf025dbbafda53564933e3ba970bfad23ac62f148b0f0000000000ffffffff0200ca9a3b0000000017a9147e214dddb18e1e1d58f54d21a056612803e35aab87c00b5a160000000017a9144f8e25d07925fe6bd81af7501121e46ab19c5d7d8700000000
{
"hex": "0200000000010101dd80462823143bb75cbf025dbbafda53564933e3ba970bfad23ac62f148b0f00000000171600141cda5e32eebcd583530021e51f213dbf8111260affffffff0200ca9a3b0000000017a9147e214dddb18e1e1d58f54d21a056612803e35aab87c00b5a160000000017a9144f8e25d07925fe6bd81af7501121e46ab19c5d7d870247304402204e2e90bfcad4ae883ada361f7bc96d2a0ac79d08fc070a1bd3fc141993144b10022062248c2ad48c3a6b2d23d7234bb25b89424b042c859765eb4fd2aeb916b46a7801210291b0b2f2d83549fa8a2054944c40c0c48a579cfd6f76f5ad99c2c14f1dc3e5e100000000",
"complete": true
}
广播交易:
bitcoin-cli sendrawtransaction 0200000000010101dd80462823143bb75cbf025dbbafda53564933e3ba970bfad23ac62f148b0f00000000171600141cda5e32eebcd583530021e51f213dbf8111260affffffff0200ca9a3b0000000017a9147e214dddb18e1e1d58f54d21a056612803e35aab87c00b5a160000000017a9144f8e25d07925fe6bd81af7501121e46ab19c5d7d870247304402204e2e90bfcad4ae883ada361f7bc96d2a0ac79d08fc070a1bd3fc141993144b10022062248c2ad48c3a6b2d23d7234bb25b89424b042c859765eb4fd2aeb916b46a7801210291b0b2f2d83549fa8a2054944c40c0c48a579cfd6f76f5ad99c2c14f1dc3e5e100000000
1e76703739a2dc34c478a2ba3e57efd879aab2f7aae07965ef4af009ae9b41ec
查看交易信息:
bitcoin-cli gettransaction 1e76703739a2dc34c478a2ba3e57efd879aab2f7aae07965ef4af009ae9b41ec
{
"amount": 0.00000000,
"fee": -0.00413180,
"confirmations": 0,
"trusted": true,
"txid": "1e76703739a2dc34c478a2ba3e57efd879aab2f7aae07965ef4af009ae9b41ec",
"walletconflicts": [
],
"time": 1547110533,
"timereceived": 1547110533,
"bip125-replaceable": "no",
"details": [
{
"address": "2N4k92U8BbU3yn3S5YXEueKs2ovFvMf6hnc",
"category": "send",
"amount": -10.00000000,
"label": "",
"vout": 0,
"fee": -0.00413180,
"abandoned": false
},
{
"address": "2N4k92U8BbU3yn3S5YXEueKs2ovFvMf6hnc",
"category": "receive",
"amount": 10.00000000,
"label": "",
"vout": 0
}
],
"hex": "0200000000010101dd80462823143bb75cbf025dbbafda53564933e3ba970bfad23ac62f148b0f00000000171600141cda5e32eebcd583530021e51f213dbf8111260affffffff0200ca9a3b0000000017a9147e214dddb18e1e1d58f54d21a056612803e35aab87c00b5a160000000017a9144f8e25d07925fe6bd81af7501121e46ab19c5d7d870247304402204e2e90bfcad4ae883ada361f7bc96d2a0ac79d08fc070a1bd3fc141993144b10022062248c2ad48c3a6b2d23d7234bb25b89424b042c859765eb4fd2aeb916b46a7801210291b0b2f2d83549fa8a2054944c40c0c48a579cfd6f76f5ad99c2c14f1dc3e5e100000000"
}