Ich verwende das pybitcointools -Modul in Python 3.4
Ich bin die auf der Github-Seite aufgeführten Beispiele immer wieder durchgegangen, aber es ist weder sehr gut dokumentiert noch der Code.
Meine Situation ist folgende: Ich habe eine Liste mit privaten Schlüsseln in einer CSV-Datei und möchte eine Rohtransaktion für jede Adresse generieren und ihre nicht ausgegebenen Ausgaben an eine einzelne Adresse ausgeben, indem ich die signierte Transaktion an blockchain.info weiterleite
Ich habe ein Problem mit diesen Funktionen: mktx, mksend, sign
Wenn jemand ein Beispiel für den Prozess erstellen und gleichzeitig jeden Schritt dokumentieren und erklären könnte, wozu jedes Argument für jede Funktion dient und wie es verwendet wird. Das wäre eine große Hilfe, wenn hier jemand helfen könnte! Ich habe weit und breit gesucht, aber ich kann einfach keine gute Dokumentation dieses Prozesses finden. Ich bin mir sicher, dass dies auch vielen anderen helfen würde!
Okay, also erstmal:
make_request
README.txt
Datei) .Die Funktionen, die Sie benannt haben, funktionieren wie folgt:
mktx(ins, outs)
wo ins
ist ein Array von "hexTxIdString:index"
und outs
ist ein Array von{"value": 12345, "address": 1base58addressString}
mksend(ins, outs, txfee, 1changeAddress)
wo txfee
ist wieder in Satoshis
sign(unsignedtx, index to sign, privkey for utxo)
wo index
ist der input
zu signierende IndexWir beginnen mit den Einfügungen:
utxos = [(utxo_txid, utxo_index), (txid2, i2)....]
ins = ["%s:%d" % utxo for utxo in utxos]
change_addr = "1thisIsAChangeAddressYouOwn123"
txfee = int(0.45 * len(ins) * 10000) # you may want to check this 10000 value, it could be 100000
rawtx = mksend(ins, txfee, change_addr)
Richtig, also nehmen wir an, Sie haben die UTXOs TxID
und die entsprechenden vout
für jeden privaten Schlüssel. Machen Sie ein Diktat von privkeys ={ 'TxID:vout' : privkey, 'TxID2:vout2': privkey2 }
Dann endlich, signall(rawtx, privkeys)
um Ihren signierten Tx zu erhalten. Um es dann zu übertragen, verwenden Sie pushtx(signedTx, source="bci")
oder pushtx(signedTx, "testnet", source="blockr")
für Testnet. Getan!
get_outputs
, um die erforderliche Zeichenfolge zurückzugeben. Habe genau das gleiche Problem gehabtaddress = 164QpJNZPYtHNVZiNmzuG2yEeWok2UfymZ
Also sollte ich history(address) statt unspent(address) verwenden? Es sieht nicht so aus, als würde mir der Verlauf den unspent_output-Hash geben? Ich bin immer noch sehr, sehr verwirrt, weil es so aussieht, als würden sie es im Beispiel von pybitcointools ganz anders machen. Ich versuche mir vorzustellen, wie ich es von Anfang an machen soll, indem ich meine Variablen und alles erstelle. "2e204724677fb2f6cc80ed4cc92f0d068e8ec7774f49bfbf4b075aea76154f2b:0"
ist die ausgegebene Ausgabe und der Index, habe ich recht? Aus irgendeinem Grund wird mir hier mit der Formatierung in den Arsch getreten.unspent_1 = [unspent(privtoaddr(x)) for x in privs]
. Ich glaube, das wird ein Array von "txid:index" zurückgeben, das Sie nach nicht ausgegebenen Werten mit len>1 filtern müssen, [x for y in unspent_1 for x in y]
wodurch die abgeflachte Liste zurückgegeben wird. Betreff: mktx, mksend ruft mktx auf, es rechnet einfach die Differenz aus und erstattet diese an eine Änderungsadresse zurück
Zauberer von Ozzie