Сценарий:
Майкл получает 0.05000000 BTC из Пабло и еще 0,01000000 БТД из Кураданга. Майкл также хочет отправить 0.02500000 BTC в Berteng. Каждая сумма, которую получает Майкл, имеет соответствующие txid и другие данные. Давайте проверим это, используя команду
listunspent
затем создадим необработанную транзакцию, используяcreaterawtransaction
после того, как ее подпишите с помощьюsignrawtransaction
и отправьте эту необработанную транзакцию с использованиемsendrawtransaction
.
Данный:
- Майкл Биткойн Адрес: mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe
- Berteng Bitcoin Адрес: mxh3H416KCRoBDiweSESew5YJyAk1nxLrN
- Отправить Berteng: 0.02500000 mBTC
Шаг 1)
listunspent
Формат:
$ bitcoin-cli listunspent [misconf=1] [max_number_confirmation=99999999] '''["<wallet_address>"]'''
Позволяет проверить список Михаэля неизрасходованного использования с его адресом.
Выполнение:
$ bitcoin-cli listunspent 1 99999999 '''["mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe"]'''
Результат:
[{
"txid": "12b8e7ede4992f4d30f93idj3085746951d945e39f40becebd7c290af8c2e7ad",
"vout": 1,
"address": "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe",
"account": "micz",
"scriptPubKey": "76a9143aa28e1740a6a5a2190975b6e7f1ad67aaec9a3988ac",
"amount": 0.05000000,
"confirmations": 94,
"spendable": true
}, {
"txid": "8443bc63b65d569ff9ekwm37sy3b67b9c7c6f8f386c3cdf372b260961b64ec9fc",
"vout": 1,
"address": "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe",
"account": "micz",
"scriptPubKey": "76a9143aa28e1740a6a5a2190975b6e7f1ad67aaec9a3988ac",
"amount": 0.01000000,
"confirmations": 93,
"spendable": true
}]
То, что мы видим здесь, - это результаты, которые присвоили 50 и 10 mBTC нашему адресу mkrz.... Чтобы провести этот вывод, мы создадим новую транзакцию.
Шаг 2)
createrawtransaction
Нам нужно выбрать некоторые блоки с достаточным количеством из результата
listunspent
. Поскольку нам нужно отправить 0.02500000 mBTC, я думаю, что первый блок имеет достаточную сумму для совершения транзакции.
Формат:
$ bitcoin-cli createrawtransaction
'[{
"txid" : "<txid_of_selected_block>",
"vout" : <vout>
}]'
'{"<recipient_address>": <amount_to_send>, "<sender_address>": <amount_change>}'
Чтобы оплатить сбор, мы уменьшим выход изменения на 0,5 миллибайта, как вы можете видеть ниже.
Выполнение:
$ bitcoin-cli createrawtransaction
'[{
"txid" : "12b8e7ede4992f4d30f93idj3085746951d945e39f40becebd7c290af8c2e7ad",
"vout" : 0
}]'
'{"mxh3H416KCRoBDiweSESew5YJyAk1nxLrN": 0.025, "mkrzDhhZtzQm8zgckSs4fMNrvtNJ66zaFe": 0.0245}'
результат
0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c0000000000ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000
Команда createrawtransaction производит шестую строку, которая кодирует данные транзакции, которые мы предоставили. Если вы хотите декодировать hex, используйте команду decoderawtransaction.
Шаг 3)
signrawtransaction
подписывает транзакцию в формате последовательной транзакции с использованием закрытых ключей, хранящихся в кошельке или предоставленных в вызове.
Формат:
$ bitcoin-cli signrawtransaction <hex_createrawtransaction>
Выполнение:
$ bitcoin-cli signrawtransaction 0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c0000000000ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000
Результат:
{
"hex" : "0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c000000006a47304402203e8a16522da80cef66bacfbc0c800c6d52c4a26d1d86a54e0a1b76d661f020c9022010397f00149f2a8fb2bc5bca52f2d7a7f87e3897a273ef54b277e4af52051a06012103c9700559f690c4a9182faa8bed88ad8a0c563777ac1d3f00fd44ea6c71dc5127ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000",
"complete" : true
}
Теперь команда signrawtransaction возвращает еще одну шестнадцатеричную необработанную транзакцию.
Шаг 4)
sendrawtransaction
RPC проверяет транзакцию и передает ее в одноранговую сеть.
Формат:
$ bitcoin-cli sendrawtransaction <hex_signrawtransaction>
Выполнение:
$ bitcoin-cli sendrawtransaction 0100000001e34ac1e2baac09c366fce1c2245536bda8f7db0f6685862aecf53ebd69f9a89c000000006a47304402203e8a16522da80cef66bacfbc0c800c6d52c4a26d1d86a54e0a1b76d661f020c9022010397f00149f2a8fb2bc5bca52f2d7a7f87e3897a273ef54b277e4af52051a06012103c9700559f690c4a9182faa8bed88ad8a0c563777ac1d3f00fd44ea6c71dc5127ffffffff02a0252600000000001976a914d90d36e98f62968d2bc9bbd68107564a156a9bcf88ac50622500000000001976a91407bdb518fa2e6089fd810235cf1100c9c13d1fd288ac00000000
Результат:
ae74538baa914f3799081ba78429d5d84f36a0127438e9f721dff584ac17b346
Команда sendrawtransaction возвращает хеш транзакции (txid) при отправке транзакции в сети. Чтобы проверить хеш транзакции, вы можете перейти к tbtc.blockr.io
Для получения дополнительной информации см. Этот сайт, освоивший биткойн