使用rpc命令来转账比特币
1. 启动regtest网络
./bitcoind -regtest -reindex -txindex=1-debug –printtoconsole (后面两个参数只是为了通过日志信息查看网络是否正常),(如果是testnet,高度在120w了,需要同步一个晚上),一般不要带参数 –gen否则挖矿等待的时间更久
2. 查询当前帐号信息
./bitcoin-cli -regtest listaccounts
{
"": 0.00000000,
}
3. 查询帐号对应的地址
./bitcoin-cli -regtest getaccountaddress""
mkhvaqFXfe268P7Pun7SBebygczF6uYHfr
4. 充值
A、如果是正式网络,就只能充值了;
B、如果是testnet网络,通过下面方法免费充值0.12btc:
到网站http://tpfaucet.appspot.com/输入你的地址和下面的验证码(注意验证码是两个字符串,中间空格分隔,好像写第一个也能成功,如果失败会在验证码图片的上方显示红色文字,否则就没有显示)
到网站https://testnet.blockexplorer.com 查询一下,可以看到结果,只是本地继续用上面第二步的命令查看还是0,需要等同步完成
C、如果是regtest网络就很简单了,自己挖矿就有了
先生成101个区块:./bitcoin-cli-regtest generate 101
然后查看账户:
./bitcoin-cli -regtest getbalance
50.00000000
就有50btc了
5. 新增一个帐号
./bitcoin-cli -regtest getnewaddress"elikong"
mkLjQ1zRdy23yCzgTfym9ey9HDQqE53Zim
下面我们就可以实现目标:
帐号""地址mkhvaqFXfe268P7Pun7SBebygczF6uYHfr
向帐号"elikong"地址mkLjQ1zRdy23yCzgTfym9ey9HDQqE53Zim
转账0.025btc
6. 检查未使用的事务列表
./bitcoin-cli -regtest listunspent
[
{
"txid": "cbef3a6dd778654b7d4087db9250b6dc56aac8425f39ddf27d632bc5ee19e519",
"vout": 0,
"address": "mqTtyk9QjCouetZwkAkg64AfAfNYLKX4Uu",
"scriptPubKey": "2102d15a26665b8df92a49594f6c69f9682aab6a55d4cd40328d8bf45d964bb4b4f8ac",
"amount": 50.00000000,
"confirmations": 101,
"spendable": true
}
]
7. 创建一个转账事务
./bitcoin-cli -regtest createrawtransaction\
'[{
"txid" :"cbef3a6dd778654b7d4087db9250b6dc56aac8425f39ddf27d632bc5ee19e519",
"vout" : 0
}]' \
'{"mkLjQ1zRdy23yCzgTfym9ey9HDQqE53Zim": 20,"mkhvaqFXfe268P7Pun7SBebygczF6uYHfr": 20}'
010000000119e519eec52b637df2dd395f42c8aa56dcb65092db87407d4b6578d76d3aefcb0000000000ffffffff0200943577000000001976a91434e9b40a45238727cec88e9ec12349bce469db5088ac00943577000000001976a91438ebc6c69c5dcc79bb17914db9b527551807941088ac00000000
注意:第一个地址是收款方地址,第二个地址是付款方地址
8. 用私钥签名
./bitcoin-cli -regtest signrawtransaction010000000119e519eec52b637df2dd395f42c8aa56dcb65092db87407d4b6578d76d3aefcb0000000000ffffffff0200943577000000001976a91434e9b40a45238727cec88e9ec12349bce469db5088ac00943577000000001976a91438ebc6c69c5dcc79bb17914db9b527551807941088ac00000000
{
"hex":"010000000119e519eec52b637df2dd395f42c8aa56dcb65092db87407d4b6578d76d3aefcb0000000049483045022100bcad3eb5920d476afbbf17026159061526c9988963adefae2b580ae504a77b8b02206d08fb8b178a258d0cba47dce5a750e001ef1f12ca3754d0ef74ab10e7a125f201ffffffff0200943577000000001976a91434e9b40a45238727cec88e9ec12349bce469db5088ac00943577000000001976a91438ebc6c69c5dcc79bb17914db9b527551807941088ac00000000",
"complete": true
}
9. 广播到p2p网络
./bitcoin-cli -regtest sendrawtransaction010000000119e519eec52b637df2dd395f42c8aa56dcb65092db87407d4b6578d76d3aefcb0000000049483045022100bcad3eb5920d476afbbf17026159061526c9988963adefae2b580ae504a77b8b02206d08fb8b178a258d0cba47dce5a750e001ef1f12ca3754d0ef74ab10e7a125f201ffffffff0200943577000000001976a91434e9b40a45238727cec88e9ec12349bce469db5088ac00943577000000001976a91438ebc6c69c5dcc79bb17914db9b527551807941088ac00000000true
dfa4b5d9447c3d711aa9685d2303426bc96b0fd197c3e37b3efed8cd922fe515
10、验证:
对regtest只好自己挖矿了
./bitcoin-cli -regtest generate 1
./bitcoin-cli -regtest listaccounts
{
"": 70.00000000,
"elikong": 20.00000000
}
可以看到elikong帐号有了20btc,也可以通过txid查询:
如果是正式网络可以去https://blockchain.info/tx/ dfa4b5d9447c3d711aa9685d2303426bc96b0fd197c3e37b3efed8cd922fe515查看,url的格式就是https://blockchain.info/tx/加上第九步的返回值
如果是testnet就可以去https://testnet.blockexplorer.com查询
当然也可以通过bitcoin-cli查询:
./bitcoin-cli -regtest getrawtransactiondfa4b5d9447c3d711aa9685d2303426bc96b0fd197c3e37b3efed8cd922fe515 1
{
"hex":"010000000119e519eec52b637df2dd395f42c8aa56dcb65092db87407d4b6578d76d3aefcb0000000049483045022100bcad3eb5920d476afbbf17026159061526c9988963adefae2b580ae504a77b8b02206d08fb8b178a258d0cba47dce5a750e001ef1f12ca3754d0ef74ab10e7a125f201ffffffff0200943577000000001976a91434e9b40a45238727cec88e9ec12349bce469db5088ac00943577000000001976a91438ebc6c69c5dcc79bb17914db9b527551807941088ac00000000",
"txid": "dfa4b5d9447c3d711aa9685d2303426bc96b0fd197c3e37b3efed8cd922fe515",
"size": 192,
"version": 1,
"locktime": 0,
"vin": [
{
"txid":"cbef3a6dd778654b7d4087db9250b6dc56aac8425f39ddf27d632bc5ee19e519",
"vout": 0,
"scriptSig": {
"asm":"3045022100bcad3eb5920d476afbbf17026159061526c9988963adefae2b580ae504a77b8b02206d08fb8b178a258d0cba47dce5a750e001ef1f12ca3754d0ef74ab10e7a125f2[ALL]",
"hex":"483045022100bcad3eb5920d476afbbf17026159061526c9988963adefae2b580ae504a77b8b02206d08fb8b178a258d0cba47dce5a750e001ef1f12ca3754d0ef74ab10e7a125f201"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 20.00000000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 34e9b40a45238727cec88e9ec12349bce469db50OP_EQUALVERIFY OP_CHECKSIG",
"hex":"76a91434e9b40a45238727cec88e9ec12349bce469db5088ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"mkLjQ1zRdy23yCzgTfym9ey9HDQqE53Zim"
]
}
},
{
"value": 20.00000000,
"n": 1,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH16038ebc6c69c5dcc79bb17914db9b5275518079410 OP_EQUALVERIFY OP_CHECKSIG",
"hex": "76a91438ebc6c69c5dcc79bb17914db9b527551807941088ac",
"reqSigs": 1,
"type": "pubkeyhash",
"addresses": [
"mkhvaqFXfe268P7Pun7SBebygczF6uYHfr"
]
}
}
],
"blockhash":"13c2c1b98b18e6a63399f7e1111c372fab34e5ab77bf8a7c20ed6e2cfbd36449",
"confirmations": 1,
"time": 1483514222,
"blocktime": 1483514222
}
10. 继续转账增加一个留言,我们从第6步开始:检查未使用的事务列表
fddf7a09cf13e7bebb15523aabfb8539120db5e8107b8886586e5a893df9f0b1
11. 在转账的同时添加留言
./bitcoin-cli -regtest createrawtransaction\
'[{
"txid" : "fddf7a09cf13e7bebb15523aabfb8539120db5e8107b8886586e5a893df9f0b1",
"vout" : 0
}]' \
'{"mkLjQ1zRdy23yCzgTfym9ey9HDQqE53Zim":20, "mkhvaqFXfe268P7Pun7SBebygczF6uYHfr":20,"data":"697420697320612074657374"}'
注意data里面的数据必需是16进制,可以去网站http://tool.lu/hexstr/转换一下
12. 继续后续的8,9,10步就可以了