迈克尔从Pablo获得了0.05亿BTC,从Kuradang获得了另外0.01亿BTC.迈克尔还希望向贝腾发送0.02500000 BTC.迈克尔收到的每笔金额都有相应的txid和其他详细信息.让我们使用
listunspent
命令检查出来,然后使用命令创建一个原始事务,然后使用createrawtransaction
它来signrawtransaction
发送原始事务sendrawtransaction
.
listunspent
格式:
$ bitcoin-cli listunspent [misconf=1] [max_number_confirmation=99999999] '''["<wallet_address>"]'''
Run Code Online (Sandbox Code Playgroud)
让我们检查迈克尔未使用的地址列表.
执行:
$ bitcoin-cli listunspent 1 99999999 '''["mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe"]'''
Run Code Online (Sandbox Code Playgroud)
结果:
[{
"txid": "12b8e7ede4992f4d30f93idj3085746951d945e39f40becebd7c290af8c2e7ad",
"vout": 1,
"address": "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe",
"account": "micz",
"scriptPubKey": "76a9143aa28e1740a6a5a2190975b6e7f1ad67aaec9a3988ac",
"amount": 0.05000000,
"confirmations": 94,
"spendable": true
}, {
"txid": "8443bc63b65d569ff9ekwm37sy3b67b9c7c6f8f386c3cdf372b260961b64ec9fc",
"vout": 1,
"address": "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe",
"account": "micz",
"scriptPubKey": "76a9143aa28e1740a6a5a2190975b6e7f1ad67aaec9a3988ac",
"amount": 0.01000000,
"confirmations": 93,
"spendable": true
}]
Run Code Online (Sandbox Code Playgroud)
我们在这里看到的是将50和10 mBTC分配给我们的地址mkrz的结果.... 要花费此输出,我们将创建一个新事务.
createrawtransaction
我们需要从结果中选择一些具有足够数量的块
listunspent
.由于我们只需要发送0.02500000 mBTC,我认为第一个块有足够的金额来进行交易.
格式: …
我现在拥有所有150GB比特币块?如何打开它们并用Python读取它们?到目前为止,我需要提取所有使用过的hash160
我试图用Berkeley DB打开它们,但没有成功,似乎这些文件不是Berkeley DB,blkxxxxx.dat和revxxxxx.dat文件之间有什么区别?似乎revxxxxx.dat文件的文件大小有所改善
我正在寻找一种在我的专用LAN/Wifi网络上模拟1000节点比特币网络的方法.
我阅读了开发人员指南:https://bitcoin.org/en/developer-examples#regtest-mode,它提到了regtest
主要用于单个节点或指定节点的模式,而不是像实际网络那样的随机节点.
有些人可能会建议使用该testnet
模式,但这对我没用,因为我想检查一个新的协议,因为比特币不会被testnet
网络上的未知节点支持.
简单来说,我希望在我的LAN/Wifi网络中模拟一个完整的比特币网络.
我正在编写一个比特币应用程序并希望实现"取消"功能.所有reddit都是参考,如果发生3次确认,技术上可以停止付款.也许只有一分钟或两分钟,但仍然.我在比特币api文档中找不到任何参考来证明如何做到这一点.我知道一个山寨币使用有意的60分钟间隙来证实这个原因.
有谁知道这是怎么做的?
谷歌的第一个结果给了我2012年的答案,所以我想知道现在有没有比"使用军械库"更好的答案?
如果我必须解码原始交易,那很好,如果有人能带我完成这些步骤,我将不胜感激.
提前致谢 :)
我已经根据https://en.bitcoin.it/wiki/Running_Bitcoin的文档在比特币守护进程上配置了事件walletnotify
和blocknotify
事件 ,以了解我钱包的任何变化.只执行并且永远不会执行.有人可以建议钱包上的哪个事件会触发walletnotify事件吗?blocknotify
walletnotify
目前正在运行的比特币守护程序版本:0.8.1
bitcoin.conf
rpcuser=bitcoinrpc
rpcpassword=bitcoinrpc1
server=1
testnet=1
walletnotify=/home/dev/test_log/log.sh %s
blocknotify=/home/dev/test_log/log.sh %s
我知道我可以通过txindex=1
在我的bitcoin.conf文件中设置并重新启动bitcoind 来重建我的块索引,-reindex
以便我可以使用以下方法查看非钱包事务:
bitcoind getrawtransaction a93a668d9332e21d51380c7251bbf5ad47295ca9795e0ad6f2fe8d63b76af9aa 1
Run Code Online (Sandbox Code Playgroud)
我目前处于另一种情况,但我只收到收件人地址.所以我的问题是,我是否可以列出某个地址收到的所有交易,最好包括此交易所获得的确认?
欢迎所有提示!
无论如何使用API RPC到bitcoind列出来自给定地址的所有事务?实际上,我正在使用btcd,大多数非钱包功能与bitcoind相同,但我找不到任何方法来做到这一点.
当我发送原始交易时,出现错误:
16: mandatory-script-verify-flag-failed (Signature must be zero for failed CHECK(MULTI)SIG operation)
Run Code Online (Sandbox Code Playgroud)
我发送的原始交易:
0200000001d18e181dc31f713573785c4434b70c415b407e200959f10d24a5eee72a4bae3401000000da00473044022038b7aaf811db578a0b62b1ff69f7b2a6054cd9b770275b292ff63bb6b6faa96902202ffa91a950c8976722284a0bcd3ad9c54e11e441f9f632c3dd76f9174f1d0c0a01483045022100a3c48312f94652269b6e23b3e48ead21b788a2d162205d9ba4c01c9cddfc9ea70220772828f03307eaf90cc17f12f2f97e8424ff5f5311839b4095f775813cb2dada014752210283910b39cc9fab5ca7ad622dbe4a09e13ce53232b8695f96315c6e90c64c526e2103e88f91c7e130cc2f760d82b8135af8ec493860b0943649c65e0daf8b3b5a945552aeffffffff01962af4050000000017a9146fb7855fc9f0fcad63dacb27103f3ee6089b65408700000000
Run Code Online (Sandbox Code Playgroud)
这个原始交易解码:
{
"txid": "e63230d2b56bec46ab1273f0962f0fce43248fb1acbd7214be5a319b53fc170e",
"hash": "e63230d2b56bec46ab1273f0962f0fce43248fb1acbd7214be5a319b53fc170e",
"version": 2,
"size": 301,
"vsize": 301,
"locktime": 0,
"vin": [
{
"txid": "34ae4b2ae7eea5240df15909207e405b410cb734445c787335711fc31d188ed1",
"vout": 1,
"scriptSig": {
"asm": "0 3044022038b7aaf811db578a0b62b1ff69f7b2a6054cd9b770275b292ff63bb6b6faa96902202ffa91a950c8976722284a0bcd3ad9c54e11e441f9f632c3dd76f9174f1d0c0a[ALL] 3045022100a3c48312f94652269b6e23b3e48ead21b788a2d162205d9ba4c01c9cddfc9ea70220772828f03307eaf90cc17f12f2f97e8424ff5f5311839b4095f775813cb2dada[ALL] 52210283910b39cc9fab5ca7ad622dbe4a09e13ce53232b8695f96315c6e90c64c526e2103e88f91c7e130cc2f760d82b8135af8ec493860b0943649c65e0daf8b3b5a945552ae",
"hex": "00473044022038b7aaf811db578a0b62b1ff69f7b2a6054cd9b770275b292ff63bb6b6faa96902202ffa91a950c8976722284a0bcd3ad9c54e11e441f9f632c3dd76f9174f1d0c0a01483045022100a3c48312f94652269b6e23b3e48ead21b788a2d162205d9ba4c01c9cddfc9ea70220772828f03307eaf90cc17f12f2f97e8424ff5f5311839b4095f775813cb2dada014752210283910b39cc9fab5ca7ad622dbe4a09e13ce53232b8695f96315c6e90c64c526e2103e88f91c7e130cc2f760d82b8135af8ec493860b0943649c65e0daf8b3b5a945552ae"
},
"sequence": 4294967295
}
],
"vout": [
{
"value": 0.99887766,
"n": 0,
"scriptPubKey": {
"asm": "OP_HASH160 6fb7855fc9f0fcad63dacb27103f3ee6089b6540 OP_EQUAL",
"hex": "a9146fb7855fc9f0fcad63dacb27103f3ee6089b654087",
"reqSigs": 1,
"type": "scripthash",
"addresses": [
"2N3RvqqdX1ou9brMRThsr9hdJpHXPkDGXt9"
]
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
原始交易尝试花费的 UTX:
34ae4b2ae7eea5240df15909207e405b410cb734445c787335711fc31d188ed1
Run Code Online (Sandbox Code Playgroud)
UTX pubKey …
我目前正在开发一个比特币应用程序,其中涉及运行完整的比特币节点。
当我测试我的源代码时,我决定使用比特币注册测试模式。
这就是我启动比特币节点的方式:
./bitcoind -regtest -rpcuser=a -rpcpassword=b -server -bind=0.0.0.0
Run Code Online (Sandbox Code Playgroud)
这就是我与 regtest 节点交互的方式:
./bitcoin-cli -regtest -rpcuser=a -rpcpassword=b getnewaddress
Run Code Online (Sandbox Code Playgroud)
输出:
2N152jpoD9u52cpswsN7ih8RZ3P4DszaUGg
Run Code Online (Sandbox Code Playgroud)
这个例子按预期工作......但是!
一旦我尝试不使用bitcoin-cli,而是使用curl或python与比特币节点交互,我就会陷入困境:
curl --user a --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnewaddress", "params": [] }' -H 'content-type: text/plain;' http://192.168.178.200:18444/
Run Code Online (Sandbox Code Playgroud)
我被要求输入密码 => 我输入b
然后它说:
curl: (52) Empty reply from server
Run Code Online (Sandbox Code Playgroud)
同样适用于:
curl --user a:b --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnewaddress", "params": [] }' -H 'content-type: text/plain;' http://192.168.178.200:18444/
Run Code Online (Sandbox Code Playgroud)
和:
curl --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "getnewaddress", "params": [] }' -H 'content-type: …
Run Code Online (Sandbox Code Playgroud) bitcoind ×10
bitcoin ×8
transactions ×3
blockchain ×2
confirmation ×1
events ×1
json ×1
rpc ×1
send ×1