от Mateev » 08 Яну 2018, 12:52
Имаше някъде опция за стартиране на валета в режим, при който не отчита изпратените транзакции, но не си спомням как ставаше. След това в този режим втори път изпращаш същата транзакция, но с по-голяма такса за превода. Това ще предизвика унищожаване на старата транзакция, защото мемпула ще детектира двойно плащане.
Чел съм някъде за това, но не съм го пробвал.
Другия вариант е във валета ти да е останала една сума, която представлява остатъка от нацепването на 2 на някой от записите, включени в предишната транзакция. Тази сума от остатъка можеш да си я изпратиш отново на тебе, но с по-голяма такса за превода. Така за да усвои тази по-голяма такса, спечелилия миньор ще е принуден да активира и старата ти транзакция.
Това също съм го чел, но също не съм го пробвал. Пробвах обаче нещо друго, и то стана съвсем случайно. Вече имах една зависнала транзакция, но реших да направя друга транзакция към друг реципиент за покупка на HashRate. Тъй като бях опарен, тази втората транзакция беше с доста по-голяма такса за превода. Пуснах я и буквално след минутка тя беше включена в следващия блок, но най-голямото ми учудване беше, че в този блок беше включена и старата транзакция, въпреки че дадените за нея такси бяха безнадеждно малки.
Сега като се замисля, се е случило точно това, което го обясних. В двете транзакции е имало вземане на пари от една и съща приходна транзакция, и миньора за да усвои големите такси от новата транзакция, се е принудил да включи в блока и старата.
Първопричината това да е възможно е, че при биткойна парите от дадена получена транзакция винаги трябва да се харчат наведнъж. Не е възможно частично похарчване. Поради тази причина когато се опиташ частично да похарчиш някаква сума от тази приходна транзакция, в действителност клиента автоматично харчи цялата сума. Една част от нея я праща на този, на когото пращаш, а останалата част от сумата я праща пак на тебе, но тя вече попада в блокчена като нов запис. Тази втората сума, която се е върнала при тебе, можеш пак да я изпратиш на някого или на себе си, но вече с по-голяма такса за превода. И миньора за да усвои по-голямата такса, ще се наложи да активира и предишната все още невключена транзакция, която съдържа другото парче от нацепената на 2 приходна транзакция.
Правейки два такива превода, които съдържат в себе си парчета от една и съща приходна транзакция, ти всъщност принуждаваш миньорите едновременно да впишат в блокчейна и двата превода. Друг избор те нямат, защото логиката на блокчейна е такава. Когато един миньор е принуден да впише в блокчейна едновременно две свързани една с друга транзакции, то той гледа сумата от платените такси по двете транзакции. И ако тази сума го устройва, то тогава той вписва в блока едновременно и двете транзакции.
Тази логика дава шанс на потребителите на биткойн мрежата с втора транзакция да добавят такси към първата, но това е възможно само ако в портфейла ти е останало някакво парченце от предишната транзакция. Трябва да провериш има ли такова парченце в твоя портфейл (нещо, което си го пратил сам на себе си), и с негова помощ ще можеш да си разрешиш проблема със зависналата транзакция. При мене това го детектирам много лесно, защото в портфейла си си водя списък с адресите на всеки, от когото получавам и на когото пращам. И в тези списъци давам имена на изпращачите и на получателите. И после в прозореца за изпращане на транзакция има един бутон INPUTS, който ако се натисне, и в на екрана се показва откъде ще се вземат парите, с които ще се комплектова тази транзакция. И в колонката Received with label ми пише откъде са дошли тези пари, и само на един единствен ред пишe "(change)" Точно в този ред се намира парченцето, което е останало от изпращането на предишния превод. Ако това парченце го включиш в нова транзакция, ще принудиш миньорите да третират двете транзакции (старата и новата) като една единствена, и едновременно да ги включат в един и същи блок. Това е валидно при положение, че старата ти транзакция все още виси неизпратена - само тогава това парченце може да се използва за нейното ускоряване.