Отправка биткойнов программно без запуска узла [дубликат]

Как я могу отправить биткойны в своем веб-приложении без запуска демона на моем сервере? Есть ли способ сделать это? Разрешают ли третьи лица отправлять через них?

Ответы (3)

Да это вполне возможно. Есть службы, которые запускают полнофункциональные API, которые предоставляют почти все, что может сделать клиент.

http://blockchain.info/api

Существуют и другие торговые процессоры, которые имеют аналогичную функциональность в зависимости от того, что вы хотите делать.

но они требуют, чтобы вы хранили при себе свои личные ключи, не так ли?

Если бы вы могли каким-то образом отслеживать выходные данные, находящиеся в вашем распоряжении (которые вы можете отправить в исходящей транзакции, вы могли бы фактически создать транзакцию, подписать ее и отправить ее демону биткойн или blockchain.info (через sendrawtransactionвызов API), чтобы получить ее . в сеть.

Отслеживание выходных данных — единственная причина, по которой вам, вероятно, придется запускать демон. Даже если вы создаете один вывод для 100 BTC, а затем начинаете создавать транзакции из этого вывода, отделяя небольшие суммы и отправляя сдачу обратно, это делает транзакции зависимыми друг от друга. Как только одна транзакция не будет подтверждена (из-за ошибки, неполной комиссии или двойной траты), все последующие транзакции также не будут выполнены.

Тратить биткойны без подключения к сетевому оверлею можно, но в какой-то момент вам придется синхронизироваться с сетью, чтобы убедиться, что транзакции были приняты, и заполнить выходной пул для будущих расходов.

Для отправки биткойнов вам необходимо:

  • Закрытый ключ(и) для адресов, которые тратятся
  • Хэш транзакции + индекс для каждой ранее полученной транзакции на те адреса, чьи средства будут использоваться для траты в этой транзакции
  • Биткойн-адрес(а) для отправки, включая изменение адреса, если будут изменения.

Клиент Bitcoin.org делает все это элегантно, и пользователю не нужно знать ничего, кроме адреса или адресов для оплаты и суммы. Создание транзакции вручную означает получение данных из блокчейна, выполнение криптографической подписи с использованием закрытого ключа и широковещательную рассылку этой транзакции одноранговым узлам.

В статье Raw Transactions API на Bitcoin.it Wiki это описано подробнее.

~~Это делается с помощью кода Javascript с Brainwallet.org~~ [Обновление: это несуществующее, ссылка удалена]:

Теперь, если вам просто нужно отправить с узла, который не находится в активном соединении (но имеет текущую цепочку блоков), вы можете сделать это с помощью клиента Armory:

Кроме того, клиент Electrum, по-видимому, может использоваться для предоставления вам необработанной транзакции, которая затем может быть передана для траты монеты. Electrum использует внутренний сервер, который выполняет всю работу, которую клиент Bitcoin.org выполнил бы при построении транзакции.

Когда у вас есть необработанная транзакция для трансляции, вы можете использовать API PushTx на blockchain.info или BrainWallet.org также позволит вам [транслировать транзакцию][3].

brainwallet.org не разрешается. есть brainwallet.io, но это похоже на что-то другое