Допустим, у меня есть биткойн-адрес, на который отправлено 10 BTC. У меня также есть закрытый ключ для этого адреса
Используя Python (2 или 3), есть способ создать подписанную транзакцию (которая, как я полагаю, представляет собой длинную строку шестнадцатеричных цифр), которую затем можно отправить во внешнюю службу (bockchain.info или что-то еще) для распространения по сети.
Кажется, все библиотеки Python для совершения транзакций требуют подключения к интерфейсу bitcoind rpc. В моем приложении не будет локального биткойна.
Я думаю, что код, который я ищу, выглядит следующим образом:
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): «Биткойны трудный путь: использование необработанного протокола биткойнов "
Виталик Бутерин недавно поделился Pybitcointools , красивой и простой в использовании библиотекой Python для ручного создания биткойн-транзакций. В примере показан базовый рабочий процесс, который в значительной степени соответствует тому, что вы описали в своем примере (просто разбитым на несколько шагов).
Если вам нужна дополнительная помощь, эта хорошая статья объясняет технические транзакции биткойнов и показывает примеры с использованием библиотеки Pybitcointools .
Я думаю, что PyCoin удовлетворит ваши потребности.
Этот тестовый пример показывает, как построить транзакцию.
Этот тестовый пример показывает, как использовать формат импорта кошелька с PyCoin.
Я также хотел бы отметить, что это не очень хорошая идея. Предположим, что ваш ввод на самом деле составляет 20 BTC вместо 10. Что произойдет, так это то, что Биткойн будет интерпретировать дополнительные 10 BTC как комиссию, которую должен получить майнер.
Нейт Элдридж