Par spÄles uzvarÄtÄju kļuva Dmitrijs PiÄuļins, kurÅ” pazÄ«stams ar segvÄrdu ādeemruā.
Lai uzvarÄtu
ViÅa izveidotais robots Dmitrijam atnesa uzvaru
PastÄstiet mums nedaudz par sevi. Ar ko tu nodarbojies? Kad jÅ«s sÄkÄt interesÄties par blokÄ·Ädes tehnoloÄ£iju?
Esmu izstrÄdÄtÄjs informÄcijas droŔības jomÄ. Es atnÄcu uz blokÄ·Ädi ar 2017. gada ažiotÄžu, sapratu tehnoloÄ£iju un paliku pie tehnoloÄ£ijas.
KÄda bija galvenÄ motivÄcija piedalÄ«ties spÄlÄ?
PirmkÄrt, tehniskÄ interese. Es gribÄju izdomÄt, kÄ tas darbojas, atrast ievainojamÄ«bas, neļaut spÄlei beigties un, protams, "trollÄt" citus spÄlÄtÄjus.
Vai esi jau izlÄmis, kÄ iztÄrÄsi laimestu? KÄ jÅ«s to uzglabÄsit, ja nolemjat to vÄl netÄrÄt?
Es nevarÄju saprast, ko darÄ«t ar laimestu. Es to negaidÄ«ju, tÄpÄc man nav plÄnu. PagaidÄm paliks kÄ ir. VarbÅ«t tas ieplÅ«dÄ«s kÄdÄ viļÅu projektÄ.
KÄpÄc nolÄmÄt piedalÄ«ties spÄlÄ, izmantojot botu? KÄ radÄs Patrollo ideja? Vai jÅ«s varÄtu pastÄstÄ«t vairÄk par tÄ attÄ«stÄ«bu?
Ar ievainojamÄ«bÄm tas neizdevÄs. Es paÅÄmu spÄli testa tÄ«klÄ, spÄlÄju ar sevi, izmÄÄ£inÄju visas iespÄjas, taÄu viss izrÄdÄ«jÄs āsavienotsā, lÄ«gumÄ nebija ievainojamÄ«bu. Kļuva skaidrs, ka Å”o ceļu nevar uzvarÄt.
KÄ jÅ«s meklÄjÄt ievainojamÄ«bas? KÄdas bija jÅ«su hipotÄzes? Vai jÅ«s varÄtu sniegt koda piemÄru?
Bija divas hipotÄzes. PirmkÄrt, uzbrukums datu tipu pÄrbaudÄm datu darÄ«jumu ierakstos. PiemÄram, es gaidÄ«ju, ka slikta kodÄÅ”ana apies darÄ«juma ID atkÄrtotas izmantoÅ”anas pÄrbaudi. Otrais ir veselu skaitļu pÄrpildes uzbrukums. Es sapratu, ka ir veids, kÄ iestatÄ«t augstumu pÄrÄk augstu vai negatÄ«vu un mÄÄ£inÄt nonÄkt pagÄtnÄ.
$tx = $wk->txBroadcast( $wk->txSign( $wk->txData( [ 'heightToGetMoney' => -9223372036854775807 ] ) ) );
Ko jÅ«s darÄ«jÄt, kad redzÄjÄt, ka jÅ«su neaizsargÄtÄ«bas cerÄ«bas nav izpildÄ«tas?
SavÄ telegrammas tÄrzÄÅ”anÄ Tradisys sÅ«dzÄjÄs, ka, kamÄr tÄ«klÄ viss ir kluss, spÄle bÅ«s mūžīga, taÄu apjukumÄ (ar mezglu atjauninÄjumiem vai negaidÄ«tÄm dakÅ”Äm) labu botu iespÄjamÄ«ba palielinÄs. Tur ÄatÄ es pieÅÄmu izaicinÄjumu uzrakstÄ«t labu botu, ko pÄc pÄris dienÄm arÄ« izdarÄ«ju. Es uzrakstÄ«ju Patrollo kodu PHP, pamatojoties uz manu sistÄmu
Es to pÄrbaudÄ«ju testa tÄ«klÄ, ievietoju kodu github, palaidu botu galvenajÄ tÄ«klÄ un aizmirsu par to.
Manai Patrollo konfigurÄcijai bija jÄatrisina divas problÄmas: veikt likmes pÄc iespÄjas retÄk un darboties pÄc iespÄjas uzticamÄk.
Pirmo izŔķir ÄrkÄrtÄ«gi riskantas likmes, vÄlams paÅ”Ä pÄdÄjÄ blokÄ. BeigÄs tomÄr novietoju botu uz priekÅ”pÄdÄjÄ bloka, bet ar papildus aizkavÄÅ”anos 29 sekundes. Tas visas spÄles laikÄ Ä¼Äva izdarÄ«t tikai astoÅas likmes.
KÄpÄc tieÅ”i 29 sekundes? KÄ jÅ«s nonÄcÄt pie Ŕī numura?
29 sekundes parÄdÄ«jÄs pakÄpeniski. SÄkumÄ aizkavÄÅ”anÄs nebija, bet es pamanÄ«ju, ka priekÅ”pÄdÄjÄ blokÄ bija vienlaicÄ«gu likmju gadÄ«jumi - tas ir, nebija jÄgas likt likmes. Tad bija aizkavÄÅ”anÄs - es domÄju, ka tas bija 17 sekundes, bet arÄ« tas nepalÄ«dzÄja: joprojÄm bija vienlaicÄ«gas likmes. Tad es nolÄmu vairÄk riskÄt, bet noteikti neveikt vienlaicÄ«gas likmes. KÄpÄc 17, 29 utt.? VienkÄrÅ”i mÄ«lestÄ«ba pret pirmskaitļiem. 24, 25, 26, 27, 28, 30 - visi savienojumi. Un vairÄk nekÄ 30 sekundes bÅ«tu pilnÄ«gi riskanti.
KÄ tika atrisinÄta uzticamÄ«bas problÄma?
UzticamÄ«ba tika risinÄta galvenokÄrt ar darba mezgla izvÄles mehÄnismu un, mazÄkÄ mÄrÄ, veicot derÄ«bas pÄrskaitÄ«juma darÄ«jumu iepriekÅ”, lai derÄ«ba datuma darÄ«jumÄ jau precÄ«zi norÄdÄ«tu uz esoÅ”u darÄ«jumu blokÄ·ÄdÄ.
Katra cikla laikÄ visiem konfigurÄcijÄ norÄdÄ«tajiem mezgliem tika aptaujÄts to paÅ”reizÄjais augstums, tika izvÄlÄts mezgls ar lielÄko strÄvas augstumu un ar to notika turpmÄkÄ mijiedarbÄ«ba. ManuprÄt, tam vajadzÄja aizsargÄt pret dakÅ”Äm, nepieejamÄ«bu, keÅ”atmiÅu un iespÄjamÄm kļūdÄm mezglos. PastÄv pÄrliecÄ«ba, ka tieÅ”i Å”is vienkÄrÅ”ais mehÄnisms noveda pie uzvaras.
KÄdas, jÅ«suprÄt, ir blokÄ·Ädes spÄļu galvenÄs iezÄ«mes un priekÅ”rocÄ«bas? Cik daudzsoloÅ”as ir publiskÄs blokÄ·Ädes kopumÄ un Waves blokÄ·Ädes jo Ä«paÅ”i spÄļu izstrÄdei?
GalvenÄs priekÅ”rocÄ«bas ir zinÄmie, fiksÄtie un nemainÄ«gie spÄles noteikumi, kÄ arÄ« vienÄdi nosacÄ«jumi piekļuvei spÄlei no jebkuras vietas pasaulÄ.
Ärpus Ä·Ädes naudas spÄlÄm ir jÄmirst.
Waves ir bagÄta tehniskÄ funkcionalitÄte, taÄu ir nianses, gan raksturÄ«gas jebkurai blokÄ·Ädei, gan specifiskas. Abi tie vÄl nav Ä«paÅ”i labi atspoguļoti esoÅ”ajos izstrÄdÄtÄju rÄ«kos.
PiemÄram, ja mÄÄ£inÄtu atbildÄt uz darÄ«jumiem reÄllaikÄ, nevis 5ā10 apstiprinÄjumu attÄlumÄ, jÅ«s uzzinÄtu par retÄm, bet notiekoÅ”Äm parÄdÄ«bÄm: darÄ«jumiem, kas pÄrlec no bloka uz bloku, transakcijas trÅ«kst dažos blokos un parÄdÄs citos. . Tas viss ir bÅ«tiski jebkuras lietojumprogrammas Ätrumam un uzticamÄ«bai, un tas ir jÄatrisina vispÄrÄ«gi, taÄu Å”obrÄ«d katrs izstrÄdÄtÄjs sasniedz sev nepiecieÅ”amo uzticamÄ«bas lÄ«meni pats. Laika gaitÄ tas viss, protams, atrisinÄsies, taÄu pagaidÄm pastÄv zinÄma, diezgan augsta barjera ienÄkÅ”anai un bailes no patiesi decentralizÄto blokÄ·Äžu darba specifikas kopumÄ.
KÄ FOMO spÄle atŔķiras no citÄm jums zinÄmajÄm blokÄ·Ädes spÄlÄm? KÄdas ir tÄs priekÅ”rocÄ«bas un trÅ«kumi?
TÄs ir garas spÄles. Interese par Å”ÄdÄm spÄlÄm pieaug lÄ«dz ar laimestu apjomu, un laimestu apjoms laika gaitÄ aug.
IdeÄlÄ gadÄ«jumÄ spÄle nekad nebeigsies. Kad spÄle beidzas, paliek skumji...
Nesen es biju
JÄ, ja man ir laiks un interese, es rÄ«koÅ”u tÄs paÅ”as darbÄ«bas: ievainojamÄ«bas analÄ«zi, spÄlÄÅ”anos ar sevi testa tÄ«klÄ, botu, atvÄrto kodu utt.
Visbeidzot, lÅ«dzu, pastÄstiet mums par saviem kÄ izstrÄdÄtÄja plÄniem.
Mani interesÄ neatrisinÄtu problÄmu risinÄÅ”ana, un blokÄ·Ädes tÄmÄ ir daudz neatrisinÄtu problÄmu. Tas ir Ä«sts izaicinÄjums! Un viÅÅ” tika pieÅemts.
Avots: www.habr.com