"Ludoj por mono ekster la blokĉeno devas morti"

"Ludoj por mono ekster la blokĉeno devas morti"

Dmitry Pichulin, konata sub la kromnomo "deemru", iĝis la gajninto de la ludo Fhloston Paradizo, evoluigita fare de Tradisys sur la Ondoj blokĉeno.

Por venki en la ludo, ludanto devis fari la plej lastan veton dum periodo de 60 blokoj - antaŭ ol alia ludanto faris veton, tiel restarigante la nombrilon al nulo. La gajninto ricevis la tutan monon veton de aliaj ludantoj.

La bot, kiun li kreis, alportis venkon al Dmitry Patrolo. Dmitry faris nur ok vetojn sur unu ONDOJ kaj poste venkis 4700 ONDOJ (RUB 836300). En intervjuo, Dmitry parolis pri sia bot kaj la perspektivoj por ludoj sur la blokĉeno.

Rakontu al ni iom pri vi mem. Kion vi faras? Kiam vi interesiĝis pri blokĉena teknologio?

Mi estas programisto en la kampo de informa sekureco. Mi venis al blokĉeno kun la hype de 2017, komprenis la teknologion kaj restis por la teknologio.

Kio estis la ĉefa instigo por partopreni la ludon?

Antaŭ ĉio, teknika intereso. Mi volis eltrovi kiel ĝi funkcias, trovi vundeblecojn, ne lasi la ludon fini, kaj "troli" la aliajn ludantojn, kompreneble.

Ĉu vi jam decidis kiel vi elspezos viajn gajnojn? Kiel vi stokos ĝin se vi decidas ne elspezi ĝin ankoraŭ?

Mi ne povis eltrovi kion fari kun la gajnoj. Mi ne atendis ĝin, do mi ne havas planojn. Nuntempe ĝi restos tia. Eble ĝi fluos en iun projekton pri Ondoj.

Kial vi decidis partopreni la ludon uzante bot? Kiel aperis la ideo por Patrolo? Ĉu vi povus rakonti al ni pli pri ĝia evoluo?

Ĝi ne funkciis kun vundeblecoj. Mi prenis la ludon en la testa reto, ludis kun mi mem, provis ĉiujn eblojn, sed ĉio montriĝis "kablata", ne estis vundeblecoj en la kontrakto. Evidentiĝis, ke ĉi tiu maniero ne povas esti gajnita.

Kiel vi serĉis vundeblecojn? Kiuj estis viaj hipotezoj? Ĉu vi povus doni ekzemplon de kodo?

Estis du hipotezoj. Unue, atako kontraŭ datumtipoj kontrolas en datumtransakciaj registroj. Ekzemple, mi atendis, ke malbona kodigo preterpasos la transakcian ID-reuzokontrolon. La dua estas entjera superflua atako. Mi supozis, ke ekzistas maniero agordi la altecon tro alta aŭ negativa kaj provi fini en la pasinteco.

$tx = $wk->txBroadcast( $wk->txSign( $wk->txData( [ 'altecoAlGetMoney' => -9223372036854775807 ] ) ) );

Kion vi faris kiam vi vidis, ke viaj vundeblecoj ne estas plenumitaj?

En sia telegrama babilejo, Tradisys plendis, ke dum ĉio estas trankvila en la reto, la ludo estos eterna, sed en konfuzo (kun nodaj ĝisdatigoj aŭ neatenditaj forkoj), la ŝancoj de bonaj robotoj pliiĝas. Tie, en la babilejo, mi akceptis la defion skribi bonan bot, kion mi faris kelkajn tagojn poste. Mi skribis la Patrollo-kodon en PHP, surbaze de mia kadro WavesKit, en kiu mi provas kapti ĉiujn plej bonajn teknikojn por labori kun blokĉeno.

Mi testis ĝin en la testa reto, afiŝis la kodon sur github, lanĉis la roboton en la ĉefa reto kaj forgesis ĝin.

Mia agordo de Patrollo devis solvi du problemojn: fari vetojn kiel eble plej malofte kaj labori kiel eble plej fidinde.

La unua estas decidita per ekstreme riskaj vetoj, prefere en la plej lasta bloko. En la fino, mi ankoraŭ metis la bot sur la antaŭlasta bloko, sed kun plia prokrasto de 29 sekundoj. Tio permesis al nur ok vetoj esti faritaj dum la tuta ludo.

Kial ĝuste 29 sekundoj? Kiel vi alvenis al ĉi tiu numero?

29 sekundoj aperis iom post iom. Komence ne estis prokrasto, sed mi rimarkis, ke ĉe la antaŭlasta bloko estis okazoj de samtempaj vetoj – tio estas, vetado ne havis signifon. Tiam estis prokrasto - mi pensas, ke ĝi estis 17 sekundoj, sed ĝi ankaŭ ne helpis: estis ankoraŭ samtempaj vetoj. Tiam mi decidis preni pli da riskoj, sed certe ne havi samtempajn vetojn. Kial 17, 29, ktp.? Nur amo al primoj. 24, 25, 26, 27, 28, 30 - ĉiuj kunmetaĵoj. Kaj pli ol 30 sekundoj estus tute riskaj.

Kiel la fidindecproblemo estis solvita?

Fidindeco estis traktita ĉefe per la mekanismo por elekti funkciantan nodon kaj, en pli malgranda mezuro, per realigado de transakcio por la veto anticipe, tiel ke la veto en la data transakcio jam precize referencis ekzistantan transakcion sur la blokĉeno.

Dum ĉiu rondo de la ciklo, ĉiuj nodoj specifitaj en la agordo estis balotitaj por sia nuna alteco, la nodo kun la plej alta nuna alteco estis elektita, kaj plia interago okazis kun ĝi. Laŭ mia kompreno, ĉi tio devis protekti kontraŭ forkoj, malhavebleco, kaŝmemoro kaj eblaj eraroj sur la nodoj. Estas fido, ke estis ĉi tiu simpla mekanismo kiu kondukis al venko.

Kio, laŭ via opinio, estas la ĉefaj trajtoj kaj avantaĝoj de blokĉenaj ludoj? Kiom promesplenaj estas publikaj blokĉenoj ĝenerale kaj la Waves-blokoĉeno precipe por lud-disvolviĝo?

La ĉefaj avantaĝoj estas la konataj, fiksaj kaj senŝanĝaj reguloj de la ludo, plus egalaj kondiĉoj por aliro al la ludo de ie ajn en la mondo.

Eksterĉenaj monludoj devas morti.

Waves havas riĉan teknikan funkciojn, sed estas nuancoj, ambaŭ propraj al iu ajn blokoĉeno kaj specifaj. Ambaŭ ili ankoraŭ ne tre bone reflektas en ekzistantaj programiloj.

Ekzemple, se vi provus respondi al transakcioj en reala tempo, kaj ne je distanco de 5-10 konfirmoj, vi lernus pri maloftaj sed okazantaj fenomenoj: transakcioj saltantaj de bloko al bloko, transakcioj mankantaj en iuj blokoj kaj aperantaj en aliaj. . Ĉio ĉi estas kritika por la rapideco kaj fidindeco de iu ajn aplikaĵo kaj devas esti solvita en ĝenerala maniero, sed nuntempe ĉiu programisto atingas la nivelon de fidindeco, kiun li postulas memstare. Kun la tempo, kompreneble, ĉio ĉi estos solvita, sed nuntempe ekzistas certa, sufiĉe alta, baro al eniro kaj timo pri la specifaĵoj de la laboro de vere malcentralizitaj blokĉenoj ĝenerale.

Kiel la FOMO-ludo diferencas de aliaj blokĉenaj ludoj, kiujn vi konas? Kio estas ĝiaj avantaĝoj kaj malavantaĝoj?

Ĉi tiuj estas longaj ludoj. Intereso pri tiaj ludoj kreskas kun la kvanto de gajnoj, kaj la kvanto de gajnoj kreskas kun la tempo.

Ideale, la ludo neniam finiĝos. Kiam la ludo finiĝas, estas malĝoje...

Lastatempe mi estis lanĉita la ludo Fhloston Paradizo 2. Ĉu vi planas partopreni en ĝi?

Jes, se mi havas tempon kaj intereson, mi faros la samajn paŝojn: analizo de vundebleco, ludado kun mi en prova reto, bot, malferma fonto, ktp.

Fine, bonvolu rakonti al ni pri viaj planoj kiel programisto.

Mi interesiĝas pri solvi nesolvitajn problemojn, kaj estas multaj nesolvitaj problemoj en la blokĉena temo. Ĉi tio estas vera defio! Kaj li estis akceptita.

fonto: www.habr.com

Aldoni komenton