CompMath 2016

Петата национална студентска олимпиада по компютърна математика “Акад. Стефан Додунеков” с домакин Великотърновски университет “Св.св. Кирил и Методий” се проведе в периода 28-30 октомври 2016. Участваха студенти от 10 университета. БСУ грабна 5 медала (2 сребърни и 3 бронзови). Вижте историята на БСУ в CompMath през годините: 2016, 2015, 2014, 2012 и 2011.

Трансфер на виртуална валута без транзакционни такси

Изключително ме подразни факта, че моят настолен 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

Какво е виртуална валута и дали си струва да съм информиран?

Биткойнът е пуснат през 2009 г. като валута, свободна от правителствен контрол, напълно дигитално разменно средство за една дигитална епоха” откъс от публикацията “Икономика на биткойна: буквар по нестабилна валута“. Тук следва да се отговори на тривиалните въпроси: “Какво е биткойн?” отговори тук и тук, “Чували ли сте за Биткойн?” и “Що е то биткойн и има ли почва у нас?“. Следва признанието в редица източници: “Биткойните стават все по-популярни в цял свят!“, “Германия призна биткойните.”, “Биткойнът печели признание по света и у нас.” и  “Grabo.bg вече приема плащания с биткойни“. Цената на валутата се вдига, според: “Пет възможни причини за ръста на биткойн” и “3 причини за покачването на цената на Биткойн.”. Възможен е дори живот на виртуални пари: “21 научени неща и една седмица живот на интернет валута“. Появявиха се също биткойн милионери: “Мъж забравя, че е купил биткойн преди 4 г., печели 886 000 долара“. Засега обаче остава отворен въпроса за “Осчетоводяване на електронни пари“.

Оставям на читателя да прецени дали си струва да бъде информиран.