Daugelis sistemos vartotojų susiduria su būtinybe atšaukti operaciją „blockchain“tinkle, nes vis dažniau sandoriai užšąla ir lėšos nurašomos iš piniginės. Bet ar galima tokį atšaukimą padaryti? Ir jei taip, kaip?
„Blockchain“technologija sukurta taip, kad negalima atšaukti bet kokių operacijų ir operacijų, jei jos jau buvo atliktos. Tačiau jei operacija negavo patvirtinimo, ji „kabės“sistemoje kelias dienas nesėkmingai. Tokiu atveju bitkoinai bus nurašomi iš piniginės. Atsižvelgiant į jų eigą, problema pasirodo rimta.
Tačiau yra išeitis. Ir tai yra pagrįsta tuo, kad sandoriai neužšąla taip - kiekvienu atveju yra priežastis: kažkas, kas netiko „blockchain“sistemai. Jei sugebėsite tai išsiaiškinti, galėsite išspręsti sistemoje įstrigusio sandorio problemą.
Dažniausiai užstrigusių operacijų priežastis yra tokia:
- pačios „blockchain“sistemos perkrova;
- vadinamųjų mempoolų susidarymas - eilės sandorių vykdymui.
Faktas yra tas, kad bitkoino, kaip gana brangios kriptovaliutos, populiarumas vis labiau auga, o tai pritraukia į sistemą daug naujų vartotojų. Daugelis iš jų nusprendžia dėl skirtingų operacijų, iš tikrųjų nesuprasdami jų struktūros, ir dėl to jie sutrinka. O „blockchain“sistema tokių vartotojų veiksmus suvokia vienareikšmiškai - kaip neadekvačius, ir aštriai reaguoja: perkrauna ir užšąla. Natūralu, kad sandoris šiuo atveju neišgyvena ir taip pat pakimba.
Kalbant apie „mempools“, jie kyla dėl kelių priežasčių:
- labai daug vartotojų nori sudaryti sandorį, tačiau jų užpildyti blokai paprasčiausiai negali būti fiziškai įtraukti į sistemą tuo pačiu metu - atsiranda mempool;
- pervedimai su dideliu komisiniu mokesčiu yra pirmieji ir rečiau rizikuoja susidaryti eile, o jei vartotojas nustatė mažą komisinį atlygį arba jo visai nenurodė, jam suteikiama mempool (ir ilgą laiką)..
Be to, pastaruoju atveju negalima net garantuoti, kad šis sandoris apskritai bus įvykdytas, nes jis bus išsiųstas į komisinių rinką, o kalnakasiai gali į tai neatkreipti dėmesio - sandoris tiesiog pakabins jų mūriniame baseine, kol ras naujas blokas.
Taigi, ką galima padaryti, kad problema būtų išspręsta ir pirmuoju, ir antruoju atveju? Pabandykite dar labiau „stumti“operaciją arba ją atšaukti, jei vis dar įmanoma. Yra keletas veiksmų variantų:
- Galite pabandyti naudoti dvigubą išleidimą - dvigubų išlaidų variantą, kuris užtikrins, kad operacija juda, t. galimybė „prastumti“padidinant komisinius, jei iš pradžių jų buvo per mažai. Tai įmanoma, nes kitos sandorio šalys tikrina turtą savo sąskaitose tik tam tikru momentu. Tai reiškia, kad jei sandoris yra įšaldytas, galite išsiųsti kitą, padidinus komisinius. Abi operacijos žlugs, dėl to nereikia jaudintis.
- CPFP naudojimas yra mechanizmas, leidžiantis sukurti operaciją su viena įvestimi (ji būtinai turi būti probleminės operacijos išvestis - pavyzdžiui, tas pats pakeitimas) ir nusiųsti sau bitkoinus.
- Specialių greitintuvų naudojimas operacijoms, kurias gali naudoti tiek gavėjas, tiek siuntėjas.
Nė vienas iš šių metodų nesuteikia absoliučios garantijos, kad sandoris vis tiek bus atšauktas ar įvykdytas. Ir joks metodas šiuo atveju nesuteiks tokių garantijų, nes, kaip jau minėta, „blockchain“sistema sukurta taip, kad nenumato operacijų atšaukimo. Jei jie jau patvirtinti (įtraukti į bloką), joks metodas nepadės, tačiau jei jie įstrigo prieš patvirtinimą, galite pabandyti.
Turime prisiminti, kad nepatvirtinto sandorio negalima atšaukti savaime. Tokiu atveju galima pakeisti tik vartotojo piniginėje esantį ekraną.