节点是比特币核心24.0。我正在尝试使用未导入钱包的私钥签署原始交易。
原始交易十六进制:
0200000001d882ccfb5b012fc7f0ff80f88ad455397364b05924aa757eae6bc5ad686f02040100000000fdffffff0180841e00000000001976a9147270eaf36eb7849c81a1d21a8f4d15d81d03f54c88ac00000000
解码交易:
bitcoin-cli decoderawtransaction "0200000001d882ccfb5b012fc7f0ff80f88ad455397364b05924aa757eae6bc5ad686f02040100000000fdffffff0180841e00000000001976a9147270eaf36eb7849c81a1d21a8f4d15d81d03f54c88ac00000000"
{
"txid": "b9a6f80ecc13920db5d47e7a08cc50a271827c689fc95ef9b86721533d274de0",
"hash": "b9a6f80ecc13920db5d47e7a08cc50a271827c689fc95ef9b86721533d274de0",
"version": 2,
"size": 85,
"vsize": 85,
"weight": 340,
"locktime": 0,
"vin": [
{
"txid": "04026f68adc56bae7e75aa2459b064733955d48af880fff0c72f015bfbcc82d8",
"vout": 1,
"scriptSig": {
"asm": "",
"hex": ""
},
"sequence": 4294967293
}
],
"vout": [
{
"value": 0.02000000,
"n": 0,
"scriptPubKey": {
"asm": "OP_DUP OP_HASH160 7270eaf36eb7849c81a1d21a8f4d15d81d03f54c OP_EQUALVERIFY OP_CHECKSIG",
"desc": "addr(mqx4bb2C4gZehqDoPKVZifkGXTdGghbPSZ)#a49n9ch9",
"hex": "76a9147270eaf36eb7849c81a1d21a8f4d15d81d03f54c88ac",
"address": "mqx4bb2C4gZehqDoPKVZifkGXTdGghbPSZ",
"type": "pubkeyhash"
}
}
]
}
使用密钥输出签署原始交易:
bitcoin-cli signrawtransactionwithkey "0200000001d882ccfb5b012fc7f0ff80f88ad455397364b05924aa757eae6bc5ad686f02040100000000fdffffff0180841e00000000001976a9147270eaf36eb7849c81a1d21a8f4d15d81d03f54c88ac00000000" "[\"<privkey>\"]"
{
"hex": "0200000001d882ccfb5b012fc7f0ff80f88ad455397364b05924aa757eae6bc5ad686f02040100000000fdffffff0180841e00000000001976a9147270eaf36eb7849c81a1d21a8f4d15d81d03f54c88ac00000000",
"complete": false,
"errors": [
{
"txid": "04026f68adc56bae7e75aa2459b064733955d48af880fff0c72f015bfbcc82d8",
"vout": 1,
"witness": [
],
"scriptSig": "",
"sequence": 4294967293,
"error": "Unable to sign input, invalid stack size (possibly missing key)"
}
]
}
尝试不同的私钥、txid 来生成原始交易十六进制
问题原因很可能是:
尽管这两种原因都有不同的错误消息。我现在无法重现该问题。
有效的语法(1 个 utxo,1 个接收者):
bitcoin-cli createrawtransaction '[{
"txid" : "04026f68adc56bae7e75aa2459b064733955d48af880fff0c72f015bfbcc82d8",
"vout" : 1
}]' '{
"n1cDpTFBVV3s7P1Bt7wKZrAjQpZBuGt2ya": 0.04893500
}'
无效的语法 - 1 个 utxo、1 个接收者、1 个更改接收者(与 utxo 持有者相同)
bitcoin-cli createrawtransaction
'[{
"txid" : "04026f68adc56bae7e75aa2459b064733955d48af880fff0c72f015bfbcc82d8",
"vout" : 1
}]'
'{"n1cDpTFBVV3s7P1Bt7wKZrAjQpZBuGt2ya": 0.03,
"mqx4bb2C4gZehqDoPKVZifkGXTdGghbPSZ": 0.01}'
总而言之,您实际上可以使用Core v24.0上的“signrawtransactionwithkey”使用未导入的密钥签署交易。
在测试网上,地址mhGwrKAfsm9DDuwkJLjS7gUKLiJC6DugBP通过trx 2a3416caf9e08510985b6f27d05855521aa60b9eef0295e0018177cbf96ad928接收0.00010661。
使用相同的 txid,我创建原始交易,发送到新地址:
$bitcoin-cli createrawtransaction "[{"txid":"2a3416caf9e08510985b6f27d05855521aa60b9eef0295e0018177cbf96ad928","vout":1}]" "[{"mtDWiWtkxu59jjs9y2cqFUeriu6GP Wm4d2":0.00000661}]"
020000000128d96af9cb778101e09502ef9e0ba61a525558d0276f5b981085e0f9ca16342a0100000000fdffffff0195020000000000001976a9148b4d3652c8 5352f12aca04a5d11af5304a6e6cb188ac00000000
$ 比特币-CLI SignrawTransactionWithKey“020000000128d96af9cb778101e09502ef9e0ba61a525558d0276f5b981085e0f9ca16342a0100000000fdffffff0195020000000000001976 a9148b4d3652c85352f12aca04a5d11af5304a6e6cb188ac00000000""["5J47...N9R8bg"]"
错误代码:-5 错误信息: 私钥无效
我做错了什么? 请注意,我 trx 的 vout = 1 和 0。