728x90

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

Консоль можно открыть сквозь bitcoin-Qt. Меню: Help -> Debug Window -> вкладка “Concole”. Или, коли употребляется бес bitcoind, то можно делать команды впрямую сквозь терминал операционной системы, к примеру в Windows:

«C:Program FilesBitcoindaemonbitcoind.exe» help

Какие есть команды?

    Все вероятные команды, кои можно задействовать в консоли, можно взглянуть командой help. Них вправду весьма многовато. В заданной статье будут рассмотрены команды, кои требуются для сотворения raw транзакций.

  • listunspent [minconf] [maxconf] [«address»,…] — выводит заданные об монетах, содержащихся в кошельке.
  • minconf и maxconf – необязательные характеристики, заставляющие демонстрировать исключительно те монеты, кои имеют количество подтверждений в промежутке меж этими значениями включительно. Тем можно уменьшить перечень вывода, настолько а как время от времени он быть может весьма длинноватым, коли кошелек интенсивно употребляется.

    Пример команды, выводящей перечень монет на обозначенном адресе с числом подтверждений от 10 и все больше:

    listunspent 10 «1HZzTrB58hEym28oBJ5QzpKQDKnH2RVoSA»

    listunspent

    Вывод состоит из пяти частей:

  1. txid –ID транзакции;
  2. vout – номер выхода транзакции;
  3. scriptPubKey – хэш открытого ключа получателя (Ваш).
  4. amount – количество монет
  5. confirmations – число подтверждений транзакции.

Наиболее тщательно об все элементах, из которых состоит транзакция, можно дочитать в статье Анатомия Bitcoin транзакций, также статье Транзакции Bitcoin.

  • createrawtransaction [{«txid»:txid,»vout»:n},…] {address:amount,…} — производство транзакции на отправку монет на обозначенный адресок (либо несколько адресов).
  • txid – id транзакции, которая будет на входе формируемой

    vout – какой же выход данной транзакции мы используем.

    amount – сколько BTC отправляем.

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

    Пример команды:

    createrawtransaction ‘[{«txid»:»d585a7c300bbf40501e2f9d70dbb24127935b84170692d639b63a0bc31f8f9c9″,»vout»:0}]’ ‘{«1DTiTxzDWMm54R7bM1eTNbCu5e77CGjyN9″:0.003,»1uTzp2ewz8Q9qn1BenCyiFZouDodRTzY3»:0.005}’

    В заданной транзакции 0,003 монеты отправится новейшему получателю, для 0,005 указываем наш адресок, дабы они остались при нас. И 0,0005 BTC – оставшиеся монеты — на комиссию.

    Ответ возвращает хэш транзакции:

    0100000001c9f9f831bca0639b632d697041b835791224bb0dd7f9e20105f4bb00c3a785d50000000000fffffff
    f02e0930400000000001976a91488aef0056e4db4eb3a8e0b0d4d9fcd62ca23c35b88ac20a1070000000000
    1976a91409ec2a6ef3d99c40e91a8b150c7fa31053fbe9af88ac00000000

    Либо, коли отправляемые монеты будут браться из нескольких транзакций, то тогда-то написание команды усложнится, и для 2-ух входящих будет смотреться образцово настолько:

    Createrawtransaction ‘[{«txid»:»XXXXXXX»,»vout»:X},{«txid»:»YYYYYY»,»vout»:Y}]’ ‘{«AAAAA»:A,»BBBBBB»:B}’

    По аналогии можно написать команду для сколь угодно длинноватой транзакции.

    Необходимо отметить, чего же опосля исполнения createrawtransaction транзакция не делать является подписанной, она не делать хранится в кошельке и не делать передается в паутина. То кушать вы гораздо ничего никому не делать выслали. Вы, на самом деле, исключительно выяснили ее хэш себе.

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

  • decoderawtransaction — возвращает подробные заданные об транзакции. Таковым образом можно добавочно проверить, чего же транзакция сформирована верно. В качестве hex string вставляем приобретенный нами до этого хэш транзакции.
  • decoderawtransaction

    Коли кошелек заблокирован паролем, востребовано в начале его внедрить перед следующим подписанием транзакции, использовав команду:

  • walletpassphrase your_pass timeout
  • timeout – указывается число секунд, сколько авторизация с сиим паролем будет орудовать. Опосля истечения сего времени, будет нужно поновой делать команду walletpassphrase дабы подписать транзакцию.

  • signrawtransaction [{«txid»:txid,»vout»:n,»scriptPubKey»:hex},…] [,…] [sighash=»ALL»] — подписывает транзакцию. Добавочные необязательные характеристики востребованы в случае, коли требуется образовывать цепочку зависящих друг от друга raw транзакций, до этого чем отправлять них в паутина.
  • signrawtransaction 0100000001c9f9f831bca0639b632d697041b835791224bb0dd7f9e20105f4bb00c3a785d5
    0000000000ffffffff02e0930400000000001976a91488aef0056e4db4eb3a8e0b0d4d9fcd62ca23c35b88ac20a10
    700000000001976a91409ec2a6ef3d99c40e91a8b150c7fa31053fbe9af88ac00000000

    Вернет:

    { «hex» : «0100000001c9f9f831bca0639b632d697041b835791224bb0dd7f9e20105f4bb00c3a785d5000000006c493046
    022100d1fb5ad89dbb550ff97b597134309b787333dfbf237039beba4f5d63b6643e2a022100974c9925315a9a3
    0fe18e4f5b1246b584da571b076e5b98549a18783d3c4d14a012103072d508c683432663b564ffed845bdf2c86
    cebbdc5611a9f33c6d6392c705833ffffffff02e0930400000000001976a91488aef0056e4db4eb3a8e0b0d4d9fcd
    62ca23c35b88ac20a10700000000001976a91409ec2a6ef3d99c40e91a8b150c7fa31053fbe9af88ac00000000″, «complete» : true }

    «complete» : true – демонстрирует, чего же все прошло успешно. Приобретенный хэш и указываем в последующей команде:

  • sendrawtransaction — Транслирует raw транзакцию в паутина.
  • Возвращает id транзакции либо ошибку, коли команда по некий причине не делать сработала.

    Можно за один присест огласить, чего же коли вы столкнулись с ошибкой: «TX rejected (code -22)», то вот вероятные предпосылки:

    — Вы указали хэш транзакции, который получили до ее подписи.

    — Сумма отправляемых монет все больше, чем сумма монет на обозначенных в транзакции инпутах.

    — Исполнение команды signrawtransaction возвратило итог «false».

    — Вы используете input, который уже был выслан когда-то ранее.

    Добавочные сведения о ошибках можно следить в файлике debug.log, который обнаруживается там же, где покоится файл кошелька.

    Где может пригодиться внедрение raw транзакций?

    1. Многоподписанные транзакции.
    2. Руководство сквозь консоль.
    3. Выбор монет для отправки (с каких адресов и сколько).
    4. Вероятность вручную указать хотимый калибр комиссии.
    5. Самостоятельная повторная отправка в паутина транзакции, которая не делать существовала включена в коалиция ранее. Стоит ли напомнить, чего же , Bitcoin-Qt и bitcoind сами временами автоматизированно ретранслируют транзакции в паутина, пока они не делать будут общеприняты в коалиция.