使用 pybitcointools 和 Python 建構、簽名和推送比特幣交易
我正在使用python 3.4中的pybitcointools模組
我在 github 頁面上列出的範例中一次又一次地經歷過,但它的文件記錄不是很好,程式碼也不是。
我的情況是這樣的:我有一個 CSV 中的私鑰列表,我想為每個地址生成一個原始交易,並通過將簽名的交易推送到 blockchain.info 來將它們的 unspent_outputs 花費到單個地址
當涉及到這些功能時,我遇到了問題:mktx、mksend、sign
如果有人可以創建該過程的範例,同時還記錄每個步驟並解釋每個函式的每個參數的用途以及如何使用它。如果有人可以在這裡伸出援手,這將是一個了不起的幫助!我已經搜尋了很多,但我找不到這個過程的好文件。我相信這也會對其他人有所幫助!
好的,所以首先:
- 使用 Python 2.7;有許多程式碼不適用於 Python 3.4,即
make_request
- 看看這個 pybitcointools fork,因為有很多附加功能(見
README.txt
文件)您命名的函式是這樣工作的:
mktx(ins, outs)
其中ins
是一個數組,"hexTxIdString:index"
並且outs
是一個數組{"value": 12345, "address": 1base58addressString}
mksend(ins, outs, txfee, 1changeAddress)
Satoshistxfee
又在哪裡
sign(unsignedtx, index to sign, privkey for utxo)
要簽名index
的索引在哪裡input
我們將從製作ins開始:
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)
對,所以讓我們假設,你有 UTXO
TxID
和vout
每個私鑰對應。privkeys ={ 'TxID:vout' : privkey, 'TxID2:vout2': privkey2 }
最後對 Then做一個 dict ,signall(rawtx, privkeys)
得到你簽名的 Tx。然後廣播它,使用pushtx(signedTx, source="bci")
或pushtx(signedTx, "testnet", source="blockr")
用於測試網。完畢!