Raw-Transaction

是否可以在純 python 中創建交易而不需要在本地執行比特幣?

  • January 23, 2017

假設我有一個發送了 10 個 BTC 的比特幣地址。我也有這個地址的私鑰

使用 Python(2 或 3)有一種方法可以創建一個簽名交易(我相信它是一長串十六進制數字),然後可以將其發送到外部服務(bockchain.info 或其他)以進行網路傳播。

似乎所有用於進行交易的 python 庫都需要連接到 bitcoind rpc 介面。在我的應用程序中,不會有本地執行的 bitcoind。

我在想我正在尋找的程式碼是這樣的:

address = '1ALis8zeW1XduXf98ZjoL4EKLen5mVA1q4'
private = '5KiUZd5as1TKsiwnt1KiPgiECtXiuF9BS1MxrAgedNrXcScm4d5'

from some_btc_library import make_transaction

tx_hex = make_transaction(
   inputs=[[address, private]],
   to='123rn4tNGhf1ZehQHLohYn8WRQYhjeGSCw',
   amount=3,
   miner_fee=0.0001
)

send_to_exteral_service(tx_hex)
print "transaction complete"

如果您還沒有看到它,有一篇很好的(恕我直言)文章,它描述瞭如何使用“原始”python(沒有比特幣庫或 RPC)“手動”生成交易:“Bitcoins the hard way: Using the raw Bitcoin protocol “

Vitalik Buterin最近分享了Pybitcointools,這是一個用於手工製作比特幣交易的漂亮且易於使用的 Python 庫。該範例顯示了基本工作流程,這與您在範例中描述的內容非常相似(只是分解為幾個步驟)。

如果您需要更多幫助,這篇不錯的文章從技術上解釋了比特幣交易,並展示了使用Pybitcointools庫的範例。

引用自:https://bitcoin.stackexchange.com/questions/30550