Биткойн-транзакция в исходном коде

Я возился с исходным кодом Биткойн.

Обычно, когда вы хотите отправить немного BTC, вы вводите:

./bitcoind sendtoaddress 1ADRESSS 0.001 

Как бы вы сделали это в исходном коде на повторяющейся основе?

Итак, какой код необходим для отправки транзакции на указанный адрес каждый раз при создании блока? Почти как налог. и где этот код будет размещен?

Я изучаю внутреннюю часть протокола Биткойн и С++, поэтому любая помощь будет отличной.

Итак, вы хотите сценарий, который будет тратить ваши деньги, не спрашивая вашего разрешения? Это выполнимо, но очень опасно. Вам было бы лучше рассмотреть транзакции с несколькими подписями или условного депонирования.

Ответы (2)

Вы можете использовать -blocknotify=<cmd>средство, как описано ниже: https://en.bitcoin.it/wiki/Running_Bitcoin .

Это хороший пример использования -walletnotify: https://bitcoin.stackexchange.com/a/24483/11221 , -blocknotifyможно настроить точно так же.

Таблицу команд RPC можно найти в rpcserver.cppстатическом массиве vRPCCommands. Из этого вы можете видеть, что команда RPC sendtoaddressреализована функцией C++, названной достаточно подходящим образом sendtoaddress. Быстрый grep показывает, что эта функция определена в rpcwallet.cpp, и ее работа выполняется путем вызова pwalletMain->SendMoney(). Похоже pwallet->SendMoney(), это правильная функция для вызова.