Ich betreibe einen Bitcoin-Regtest-Knoten. Beim Versuch, eine Transaktion (erstellt mit Bitcoin-Ruby) weiterzuleiten, erhalte ich,
error: {"code":-25,"message":""}
wenn ich den Knoten neu starte und genau dieselbe Transaktion weiterleite, die er gut weiterleitet. Dieses Verhalten ist konsistent und reproduziert sich jedes Mal.
Meine Ausgabe für decoderawtransaction
ist:
{
"txid" : "df91267ed650795245882bc91b8dc104e6c41d2f29ed3221f29151aa60554842",
"version" : 1,
"locktime" : 0,
"vin" : [
{
"txid" : "fab40dbf6b95ef2fe5f4aca0668a84edebdf70cfb80565626be80c7af20a525e",
"vout" : 0,
"scriptSig" : {
"asm" : "0 3046022100fb2a69546ea44db3a06cfcf120d1fda135bfde0946f2186a52d8cfee83835705022100c680cc5135174425ce5137a2996fbdcd55463c4acb88bb9fdbdb03f70f0a213b01 30460221008294d1779bfb21240859feccc96104dea574541d41163d2c849846d8e44496fe022100faf00dabba65f22469a1116ea10d5ce34f90bea779ba770ae1ac3af5c432379e01 52210261318d096a7addf67d935076c28dfa4a1c0e8f2ed04a7cb47ac53bd7fe2ebe6d210397866513a1796e75aae6a53d54d0ccc904c56fa12e14ab0ee989a6eed6e29c0352ae",
"hex" : "00493046022100fb2a69546ea44db3a06cfcf120d1fda135bfde0946f2186a52d8cfee83835705022100c680cc5135174425ce5137a2996fbdcd55463c4acb88bb9fdbdb03f70f0a213b014930460221008294d1779bfb21240859feccc96104dea574541d41163d2c849846d8e44496fe022100faf00dabba65f22469a1116ea10d5ce34f90bea779ba770ae1ac3af5c432379e014c4752210261318d096a7addf67d935076c28dfa4a1c0e8f2ed04a7cb47ac53bd7fe2ebe6d210397866513a1796e75aae6a53d54d0ccc904c56fa12e14ab0ee989a6eed6e29c0352ae"
},
"sequence" : 4294967295
}
],
"vout" : [
{
"value" : 1.00000000,
"n" : 0,
"scriptPubKey" : {
"asm" : "OP_HASH160 ee7455fa97980531b90b15f5f18386122a7f6919 OP_EQUAL",
"hex" : "a914ee7455fa97980531b90b15f5f18386122a7f691987",
"reqSigs" : 1,
"type" : "scripthash",
"addresses" : [
"2NEz4B6YtgTCpv6Qv56f7HarXUeHeLmdmih"
]
}
},
{
"value" : 0.99990000,
"n" : 1,
"scriptPubKey" : {
"asm" : "OP_HASH160 0b607311f3db7d2a28b4c6fd259913356a86c302 OP_EQUAL",
"hex" : "a9140b607311f3db7d2a28b4c6fd259913356a86c30287",
"reqSigs" : 1,
"type" : "scripthash",
"addresses" : [
"2MtHNxpeYfFmLTMDnW7DFf9y9ZnM49u4tXW"
]
}
}
]
}
Der referenzierte txout hat 2 BTC. Ich habe auch versucht sendrawtransaction <hex>, true
, einige Gebührenprobleme auszuschließen. Gleiches Symptom. Ich habe keine spezielle Debug-Meldung in debug.log gesehen
Meine Ausgabe für getinfo
ist:
{
"version" : 90300,
"protocolversion" : 70002,
"walletversion" : 60000,
"balance" : 530.90534322,
"blocks" : 460,
"timeoffset" : 0,
"connections" : 1,
"proxy" : "",
"difficulty" : 0.00000000,
"testnet" : false,
"keypoololdest" : 1421187525,
"keypoolsize" : 101,
"paytxfee" : 0.00000000,
"relayfee" : 0.00001000,
"errors" : ""
}
Ich versuche immer noch, v0.10 zum Debuggen in meine Umgebung zu stecken, ich verstehe, dass bitcoin-core bessere Nachrichten für Code -25 hat, aber ich brauche das immer noch, um gut mit einem v0.9-Knoten zu spielen.
Nach dem Verbinden mit Bitcoin-Core (0.10.0rc3) erhielt ich:
ERROR: CScriptCheck() : 620186f101b7db97393af8747923db4cf3f30c3c3c48f4c7cfc23567b6d9ca07:0 VerifySignature failed: Data push larger than necessary
ERROR: AcceptToMemoryPool: : ConnectInputs failed 620186f101b7db97393af8747923db4cf3f30c3c3c48f4c7cfc23567b6d9ca07
(Danke Bitcoin-Entwickler für das Hinzufügen vernünftiger Fehlermeldungen !)
Von hier aus bemerkte ich, dass ich die Transaktion mit einem veralteten Fork von bitcoin-ruby aufbaute , die Aktualisierung auf die neueste bitcoin-ruby behob dieses Problem (sowohl auf 0.9.03 als auch auf 0.10.0). Ich bin mir immer noch nicht sicher, warum es erst nach einem Bitcoin-Neustart weitergeleitet wird. Ich werde diese Antwort bearbeiten, wenn ich das herausfinde.
Nick Odell
Schaul Kfir
David A. Harding
getrawmempool
, um zu überprüfen, ob es keine widersprüchlichen tx im Mempool gibt, undgetblock
um zu überprüfen, ob es keine widersprüchlichen tx in den Blöcken gibt, die Sie abgebaut haben? Außerdem,gettxout
um sicherzustellen, dass der Input, den Sie auszugeben versuchen, vorhanden ist.Schaul Kfir
getrawmempool
nachgetblock
widersprüchlichen TX gesucht und keine gefunden. Ich stimme zu, dass Mining doppelte Ausgaben nicht ausschließt, aber die Möglichkeit, den TX weiterzuleiten und ihn nach dem Mining eines Blocks und einem Node-Neustart zu minen, tut dies. Wenn ich das tuegettxout
, bekomme ich ein seltsames Verhalten. Ich konstruierte den tx, um Eingang 1 eines tx zu verwenden. Ich sehe einen TXOUT fürgettxout <hash> 0 true
, aber nicht fürgettxout <hash> 1 true
. Wenn ich Bitcoin neu starte, sehe ich beide Outpoints 0 und 1.Schaul Kfir
David A. Harding