Изключително ме подразни факта, че моят настолен QT портфейл клиент винаги добавя транзакционни такси при трансфер на виртуални единици. В моя случай имам събрани 0.02 виртуални единици и искам да преведа цялата тази сума към друг адрес, но програмния продукт не позволява това, защото прилага транзакционна такса в размер 0.005, което означава, че сумата ми драстично намалява на 0.015. Всъщност тази транзакционна такса е излишна и може да бъде спестена. В тази публикация ще разберете как.

Използвайки QT клиента (за различни виртуални единици: Bitcoins, Litecoins, Namecoins и др.) това може да бъде направено в QT конзолата. Стартирате Вашият QT портфейл клиент както обикновено. Влизате в менюто „HELP“, натискате „DEBUG WINDOW“ и избирате „CONSOLE“. Сега се намирате в конзолата, това е мястото където можете да пишете команди които Вашия виртуален портфейл да изпълни. В нашия случай искаме да пуснем нова заявка за трансфер на виртуални единици, която да не съдържа транзакционни такси. Някои потребители биха се уплашили от това, че трябва да пишат код и че може да объркат нещо. Не се панирайте, няма нищо сложно в процеса.

Последователността от команди е следната:

Стъпка 1: Командата „listunspent“ връща идентификационните номера „txid“ на всички транзакции от Вашият портфейл, които могат да бъдат похарчени. В моя случай това са две транзакции всяка от тях по 0.01 единици или обща сума 0.02. Ще използвам тази информация в следащата стъпка.

Стъпка 2. Командата „createrawtransaction“ създава заявка на транзакция за трансфер на виртуални единици. Тук се поставят всички идентификационни номера от предишната команда, следвани от адреса където да бъде изпратена сумата от 0.02 виртуални единици. Важно да отбележим тук, е че сумата на транзакциите, които да участват в сделката трябва да е равна на сумата, която искам да преведа, точно за да се избегне заплащането на транзакционни такси.

Ето как изглежда тази команда в моя случай:

createrawtransaction [{\“txid\“:\“3de052986e2baf43c0d850c46dff08bde45591cb7177481c6cdd24badcac214b\“,\“vout\“:63},\“txid\“:\“6983da5da8874e0e676d0927512f623a2680e7ca3ad68a706968380dd36ea32e\“,\“vout\“:25}] {\“N8DMknSGxQmipag1bfJ2kJYkWQxNpwunD6\“:0.02}

Стъпка 3. За да подпишете заявката за транзакция се използва командата „signrawtransaction“ следвана от шестнадесетичен текст, представляващ резултата получен от предходната команда.

Ето как изглежда тази команда в моя случай:

signrawtransaction 01000000024b21acdcba24dd6c1c487771cb9155e4bd08ff6dc450d8c043af2b6e9852e03d3f00000000ffffffff2ea36ed30d386869708ad63acae780263a622f5127096d670e4e87a85dda83691900000000ffffffff0180841e00000000001976a9147fa866e7d8ef7b296f58d7e8ee7bd0b12a9e114188ac00000000

Стъпка 4. И последно, за да изпратите вашата завършена транзакция към мрежата за обработка се използва командата „sendrawtransaction“, следвана от резултата получен от предходната команда.

Ето как изглежда тази команда в моя случай:

sendrawtransaction 01000000024b21acdcba24dd6c1c487771cb9155e4bd08ff6dc450d8c043af2b6e9852e03d3f0000008c493046022100fe49e437a4509cac33b7667a3b1452207e36f0056dc20b26d0d9dd6272732325022100c1366d50f59f4693c5b0cb60cc3fce4ce6baa1206258a677b0014b4247afeff2014104542fceaa36c306b88694f3e5f198def7352415d1047ce6578dc0f328de3a91ddde13ce804f5fee3a42624b87089e898ed7ff39fa25a9604def433a68230f2235ffffffff2ea36ed30d386869708ad63acae780263a622f5127096d670e4e87a85dda8369190000008b4830450221008a24223b0b8c256ef7e2a4f6fd04fdb0b473d5aceba10972dfaa3454e0e7aab6022069ce28883cf2d8f9951c940d41b73c18d21263b9e4e8fcaea51d5906ab395053014104542fceaa36c306b88694f3e5f198def7352415d1047ce6578dc0f328de3a91ddde13ce804f5fee3a42624b87089e898ed7ff39fa25a9604def433a68230f2235ffffffff0180841e00000000001976a9147fa866e7d8ef7b296f58d7e8ee7bd0b12a9e114188ac00000000

Резултата от нейното изпълнени е:

61a74fa2f107152b0370e908ee4719427a66485e8a096d1b0507b2d86ff672c2

Автор: Димитър Минчев

Доктор по информатика и компютърни науки