Hversu mörg TPS eru á blockchain þínum?

Uppáhaldsspurning um hvaða dreifða kerfi sem er frá ótæknilegum einstaklingi er "Hversu mörg tps eru á blockchain þinni?" Hins vegar á númerið sem gefið er upp í svari yfirleitt lítið sameiginlegt með því sem spyrjandinn vill heyra. Reyndar vildi hann spyrja „mun blockchain þín passa við viðskiptakröfur mínar,“ og þessar kröfur eru ekki ein tala, heldur mörg skilyrði - hér eru netbilunarþol, lokakröfur, stærðir, eðli viðskipta og margar aðrar breytur. Svo svarið við spurningunni „hversu margir tps“ er ólíklegt að vera einfalt og næstum aldrei fullkomið. Dreift kerfi með tugum eða hundruðum hnúta sem framkvæma nokkuð flókna útreikninga getur verið í miklum fjölda mismunandi ástands sem tengist ástandi netkerfisins, innihaldi blockchain, tæknilegum bilunum, efnahagslegum vandamálum, árásum á netið og mörgum öðrum ástæðum. . Stigin þar sem frammistöðuvandamál eru möguleg eru frábrugðin hefðbundinni þjónustu og blockchain netþjónn er netþjónusta sem sameinar virkni gagnagrunns, vefþjóns og torrent biðlara, sem gerir það mjög flókið hvað varðar álagssnið á öllum undirkerfum : örgjörvi, minni, net, geymsla

Það vill svo til að dreifð net og blockchains eru alveg sérstakur og óvenjulegur hugbúnaður fyrir miðstýrða hugbúnaðarframleiðendur. Þess vegna vil ég draga fram mikilvæga þætti í frammistöðu og sjálfbærni dreifðra neta, aðferðir við að mæla þau og finna flöskuhálsa. Við munum skoða ýmis frammistöðuvandamál sem takmarka hraða þjónustu við blockchain notendur og athuga eiginleika sem einkenna þessa tegund hugbúnaðar.

Stig þjónustubeiðni frá blockchain viðskiptavini

Til þess að tala heiðarlega um gæði meira eða minna flókinnar þjónustu þarftu ekki aðeins að taka mið af meðalgildum heldur einnig hámarks/lágmarki, miðgildum, hundraðshlutum. Fræðilega séð getum við talað um 1000 tps í einhverri blockchain, en ef 900 færslum var lokið með miklum hraða og 100 voru „fastir“ í nokkrar sekúndur, þá er meðaltíminn sem safnast yfir öll viðskipti ekki alveg sanngjörn mælikvarði fyrir viðskiptavini sem ég gat ekki klárað viðskiptin á nokkrum sekúndum. Tímabundin „göt“ af völdum misskilinna samstöðulota eða netskiptingar geta stórlega eyðilagt þjónustu sem hefur sýnt framúrskarandi frammistöðu á prófunarbekkjum.

Til að bera kennsl á slíka flöskuhálsa er nauðsynlegt að hafa góðan skilning á þeim stigum þar sem alvöru blockchain gæti átt í erfiðleikum með að þjóna notendum. Við skulum lýsa hringrásinni við að afhenda og vinna viðskipti, auk þess að fá nýtt ástand blockchain, þar sem viðskiptavinurinn getur sannreynt að viðskipti hans hafi verið unnin og gerð grein fyrir.

  1. viðskiptin myndast á viðskiptavininum
  2. viðskiptin eru undirrituð á viðskiptavininn
  3. viðskiptavinurinn velur einn af hnútunum og sendir færslu sína til hans
  4. viðskiptavinurinn gerist áskrifandi að uppfærslum á ríkisgagnagrunni hnútsins og bíður eftir að niðurstöður viðskipta hans birtast
  5. hnúturinn dreifir viðskiptunum yfir p2p netið
  6. nokkrir eða einn BP (blokkaframleiðandi) vinnur úr uppsöfnuðum viðskiptum og uppfærir gagnagrunn ríkisins
  7. BP myndar nýja blokk eftir að hafa unnið úr nauðsynlegum fjölda viðskipta
  8. BP dreifir nýrri blokk yfir p2p netið
  9. nýja blokkin er afhent á hnútinn sem viðskiptavinurinn er að nálgast
  10. hnútur uppfærir ástandsgagnagrunn
  11. hnúturinn sér uppfærsluna varðandi viðskiptavininn og sendir honum færslutilkynningu

Nú skulum við skoða þessi stig nánar og lýsa hugsanlegum frammistöðuvandamálum á hverju stigi. Ólíkt miðstýrðum kerfum munum við einnig íhuga framkvæmd kóða á netbiðlara. Oft, þegar TPS er mæld, er vinnslutími viðskipta safnað frá hnútunum, en ekki frá viðskiptavininum - þetta er ekki alveg sanngjarnt. Viðskiptavininum er alveg sama hversu fljótt hnúturinn afgreiddi viðskipti sín; það mikilvægasta fyrir hann er augnablikið þegar áreiðanlegar upplýsingar um þessi viðskipti sem eru innifalin í blockchain verða aðgengilegar honum. Það er þessi mælikvarði sem er í raun framkvæmdartími viðskipta. Þetta þýðir að mismunandi viðskiptavinir, jafnvel að senda sömu viðskiptin, geta fengið gjörólíka tíma, sem fer eftir rás, álagi og nálægð hnútsins o.s.frv. Svo það er algjörlega nauðsynlegt að mæla þennan tíma á viðskiptavinum, þar sem þetta er færibreytan sem þarf að fínstilla.

Undirbúningur viðskipta viðskiptavina megin

Við skulum byrja á fyrstu tveimur punktunum: viðskiptin eru mynduð og undirrituð af viðskiptavininum. Merkilegt nokk, þetta getur líka verið flöskuháls á frammistöðu blockchain frá sjónarhóli viðskiptavinarins. Þetta er óvenjulegt fyrir miðlæga þjónustu sem tekur yfir alla útreikninga og rekstur með gögnum og viðskiptavinurinn útbýr einfaldlega stutta beiðni sem getur óskað eftir miklu magni af gögnum eða útreikningum og fæst tilbúin niðurstaða. Í blockchains verður biðlarakóði sífellt öflugri og blockchain kjarninn verður sífellt léttari og gríðarmikil tölvuverkefni eru venjulega flutt yfir í biðlarahugbúnaðinn. Í blockchains eru viðskiptavinir sem geta undirbúið eina færslu í nokkuð langan tíma (ég er að tala um ýmsar merkle sönnunargögn, gagnorðar sannanir, þröskuldsundirskriftir og aðrar flóknar aðgerðir viðskiptavinarhliðar). Gott dæmi um auðvelda sannprófun á keðju og þungan undirbúning viðskipta á viðskiptavininn er sönnun um aðild að lista byggðum á Merkle-tré, hér grein.

Einnig má ekki gleyma því að viðskiptakóðinn sendir ekki einfaldlega viðskipti til blockchain, heldur spyr fyrst um stöðu blockchain - og þessi starfsemi getur haft áhrif á þrengsli netkerfisins og blockchain hnúta. Svo, þegar mælingar eru teknar, væri sanngjarnt að líkja eftir hegðun viðskiptavinakóðans eins fullkomlega og mögulegt er. Jafnvel þótt í blockchain þinni séu venjulegir léttir viðskiptavinir sem setja venjulega stafræna undirskrift á einföldustu viðskiptin til að flytja einhverja eign, þá eru enn stærri útreikningar á viðskiptavininum á hverju ári, dulritunar reikniritin verða sterkari og þessi hluti vinnslunnar getur breytast í verulegan flöskuháls í framtíðinni. Verið því varkár og missið ekki af stöðunni þegar í 3.5 sekúndum viðskiptum er 2.5 sekúndum varið í að undirbúa og undirrita færsluna og 1.0 sekúndum í að senda þau á netið og bíða eftir svari. Til að meta áhættuna af þessum flöskuhálsi þarftu að safna mælingum frá vélum viðskiptavina, en ekki bara frá blockchain hnútum.

Senda færslu og fylgjast með stöðu hennar

Næsta skref er að senda viðskiptin á valda blockchain hnútinn og fá stöðuna á að samþykkja það í viðskiptahópnum. Þetta stig er svipað og venjulegur aðgangur að gagnagrunni; hnúturinn verður að skrá viðskiptin í lauginni og byrja að dreifa upplýsingum um það í gegnum p2p netið. Aðferðin við að meta frammistöðu hér er svipuð og meta frammistöðu hefðbundinna vef API örþjónustu og hægt er að uppfæra viðskiptin sjálf í blockchains og breyta stöðu þeirra virkan. Almennt séð getur uppfærsla viðskiptaupplýsinga á sumum blokkakeðjum átt sér stað margoft, til dæmis þegar skipt er á milli keðjugaffla eða þegar BPs tilkynna fyrirætlun sína um að hafa viðskipti með í blokk. Takmarkanir á stærð þessarar laugar og fjölda viðskipta í henni geta haft áhrif á frammistöðu blockchain. Ef viðskiptasafnið er fyllt upp í hámarks mögulega stærð, eða passar ekki í vinnsluminni, getur afköst netkerfisins lækkað verulega. Blockchains hafa engar miðlægar leiðir til að verjast flóði af ruslskilaboðum og ef blockchain styður mikið magn viðskipti og lág gjöld getur það valdið því að viðskiptasafnið flæðir yfir - annar hugsanlegur flöskuháls á frammistöðu.

Í blockchains sendir viðskiptavinurinn færslu á hvaða blockchain hnút sem honum líkar, kjötkássa viðskiptanna er venjulega þekkt fyrir viðskiptavininn áður en hann sendir, svo allt sem hann þarf að gera er að ná tengingunni og, eftir sendingu, bíða eftir að blockchain breytist ástand þess, sem gerir viðskipti hans kleift. Athugaðu að með því að mæla „tps“ geturðu fengið allt aðrar niðurstöður fyrir mismunandi aðferðir við að tengjast blockchain hnút. Þetta getur verið venjulegur HTTP RPC eða WebSocket sem gerir þér kleift að innleiða „áskrift“ mynstur. Í öðru tilvikinu mun viðskiptavinurinn fá tilkynningu fyrr og hnúturinn mun eyða minna fjármagni (aðallega minni og umferð) í svör um viðskiptastöðu. Svo þegar „tps“ er mælt er nauðsynlegt að taka tillit til þess hvernig viðskiptavinir tengjast hnútum. Þess vegna, til að meta áhættuna af þessum flöskuhálsi, verður viðmið blockchain að vera fær um að líkja eftir viðskiptavinum með bæði WebSocket og HTTP RPC beiðnir, í hlutföllum sem samsvara raunverulegum netkerfum, auk þess að breyta eðli viðskipta og stærð þeirra.

Til að meta áhættuna af þessum flöskuhálsi þarftu líka að safna mælingum frá vélum viðskiptavina, en ekki bara frá blockchain hnútum.

Sending viðskipta og blokka í gegnum p2p net

Í blokkkeðjum er jafningjanet (p2p) notað til að flytja viðskipti og blokkir á milli þátttakenda. Viðskipti dreifast um netið, frá einum af hnútunum, þar til þau ná til jafningjablokkaframleiðenda, sem pakka viðskiptum í blokkir og, með því að nota sama p2p, dreifa nýjum blokkum til allra nethnúta. Grunnurinn að flestum nútíma p2p netkerfum er ýmsar breytingar á Kademlia samskiptareglunum. Hér góð samantekt á þessari bókun, og hér - grein með ýmsum mælingum í BitTorrent netinu, sem skilja má að þessi tegund nets er flóknari og minna fyrirsjáanleg en stíft uppsett net miðstýrðrar þjónustu. Einnig, hér grein um að mæla ýmsar áhugaverðar mælingar fyrir Ethereum hnúta.

Í stuttu máli heldur hver jafningi í slíkum netum sínum eigin kraftmikla lista yfir aðra jafningja þar sem hann biður um upplýsingablokkir sem er beint til efnis. Þegar jafningi fær beiðni gefur hann annaðhvort nauðsynlegar upplýsingar eða sendir beiðnina til næsta gervi-handahófi jafningja af listanum og eftir að hafa fengið svar sendir hann það áfram til beiðandans og geymir hana í skyndiminni í smá stund og gefur þetta upplýsingablokk fyrr næst. Þannig lenda vinsælar upplýsingar í miklum fjölda skyndiminni hjá fjölda jafningja og óvinsælum upplýsingum er smám saman skipt út. Jafnaldrar halda skrá yfir hver hefur flutt hversu mikið af upplýsingum til hvers og netið reynir að örva virka dreifingaraðila með því að hækka einkunnir þeirra og veita þeim hærra þjónustustig, sem rýmir sjálfkrafa óvirka þátttakendur af jafningjalistum.

Þannig að nú þarf að dreifa viðskiptunum um netið svo að blokkaframleiðendur geti séð þau og sett þau í blokkina. Hnúturinn „dreifir“ nýrri færslu á virkan hátt til allra og hlustar á netið og bíður eftir blokk í vísitölunni þar sem nauðsynleg viðskipti munu birtast til að láta biðlarann ​​vita. Tíminn sem það tekur netið að flytja upplýsingar um nýjar færslur og blokkir hvert á annað í p2p netum fer eftir mjög mörgum þáttum: fjölda heiðarlegra hnúta sem vinna í nágrenninu (frá sjónarhóli netkerfisins), „hlý- upp“ af skyndiminni þessara hnúta, stærð blokka, færslur, eðli breytinga, landafræði netsins, fjöldi hnúta og margir aðrir þættir. Flóknar mælingar á frammistöðumælingum í slíkum netum eru flókið mál; það er nauðsynlegt að meta samtímis vinnslutíma beiðna á bæði viðskiptavinum og jafningjum (blockchain hnútum). Vandamál í hvaða p2p kerfi sem er, rangt brottflutningur gagna og skyndiminni, árangurslaus stjórnun á listum yfir virka jafningja og margir aðrir þættir geta valdið töfum sem hafa áhrif á skilvirkni alls netkerfisins í heild, og þennan flöskuháls er erfiðast að greina , prófun og túlkun á niðurstöðum.

Blockchain vinnsla og uppfærsla á gagnagrunni ríkisins

Mikilvægasti hluti blokkarkeðjunnar er samstöðu reiknirit, beiting þess á nýjar blokkir sem berast frá netinu og vinnsla viðskipta með skráningu á niðurstöðum í ríkisgagnagrunninum. Að bæta nýjum blokk við keðjuna og velja síðan aðalkeðjuna ætti að virka eins fljótt og auðið er. Hins vegar, í raunveruleikanum, þýðir „ætti“ ekki „virkar“ og maður getur til dæmis ímyndað sér aðstæður þar sem tvær langar samkeppniskeðjur eru stöðugt að skipta á milli sín og breyta lýsigögnum þúsunda viðskipta í hópnum við hverja skiptingu , og stöðugt að rúlla til baka gagnagrunn ríkisins. Þetta stig, hvað varðar skilgreiningu á flöskuhálsinum, er einfaldara en p2p netlagið, vegna þess að Framkvæmd viðskipta og samþykkis reiknirit eru stranglega ákveðin og það er auðveldara að mæla hvað sem er hér.
Aðalatriðið er að rugla ekki saman tilviljunarkenndri hnignun í frammistöðu þessa stigs við netvandamál - hnútar eru hægari í að skila kubbum og upplýsingum um aðalkeðjuna og fyrir utanaðkomandi viðskiptavini gæti þetta litið út eins og hægt net, þó vandamálið liggi í allt annar staður.

Til að hámarka frammistöðu á þessu stigi er gagnlegt að safna og fylgjast með mælingum frá hnútunum sjálfum og hafa í þeim þá sem tengjast uppfærslu á ástandsgagnagrunninum: fjöldi blokka sem eru unnar á hnútnum, stærð þeirra, fjöldi viðskipta, fjölda rofa á milli keðjugaffla, fjölda ógildra blokka, rekstrartíma sýndarvélar, gagnaskuldbindingartíma o.s.frv. Þetta kemur í veg fyrir að netvandamálum verði ruglað saman við villur í reikniritum keðjuvinnslu.

Sýndarvél sem vinnur viðskipti getur verið gagnleg uppspretta upplýsinga sem getur hámarkað rekstur blockchain. Fjöldi minnisúthlutunar, fjöldi les-/skrifleiðbeininga og aðrar mælikvarðar sem tengjast skilvirkni framkvæmd samningskóða geta veitt þróunaraðilum margar gagnlegar upplýsingar. Á sama tíma eru snjallsamningar forrit, sem þýðir í orði að þeir geta neytt hvaða auðlinda sem er: örgjörva/minni/net/geymsla, þannig að færsluvinnsla er frekar óviss stig, sem að auki breytist mikið þegar farið er á milli útgáfur og þegar verið er að breyta samningskóðum. Þess vegna er einnig þörf á mæligildum tengdum viðskiptavinnslu til að hámarka árangur blockchain á áhrifaríkan hátt.

Móttaka viðskiptavinar á tilkynningu um skráningu viðskipta í blockchain

Þetta er lokastig blockchain viðskiptavinarins sem fær þjónustuna; samanborið við önnur stig er enginn stór kostnaður, en samt er þess virði að íhuga möguleikann á því að viðskiptavinurinn fái fyrirferðarmikil viðbrögð frá hnútnum (til dæmis snjallsamningur skila fjölda gagna). Í öllum tilvikum er þetta atriði mikilvægast fyrir þann sem spurði spurningarinnar „hversu mörg tps eru í blockchain þinni?“, vegna þess að Á þessari stundu er tími móttöku þjónustunnar skráður.

Á þessum stað er alltaf sending á fullum tíma sem viðskiptavinurinn þurfti að eyða í að bíða eftir svari frá blockchain; það er í þetta skiptið sem notandinn mun bíða eftir staðfestingu í umsókn sinni og það er hagræðing þess sem er meginverkefni hönnuða.

Ályktun

Fyrir vikið getum við lýst tegundum aðgerða sem gerðar eru á blockchains og skipt þeim í nokkra flokka:

  1. dulmálsbreytingar, sönnunarsmíði
  2. jafningi-til-jafningi netkerfi, viðskipti og afritun blokka
  3. viðskiptavinnsla, framkvæmd snjallsamninga
  4. beita breytingum á blockchain á ríkisgagnagrunninn, uppfæra gögn um viðskipti og blokkir
  5. skrifvarið beiðnir til ríkisgagnagrunns, blockchain hnút API, áskriftarþjónustu

Almennt séð eru tæknilegar kröfur fyrir nútíma blockchain hnúta mjög alvarlegar - hraðvirkir örgjörvar fyrir dulritun, mikið magn af vinnsluminni til að geyma og fá fljótlegan aðgang að ríkisgagnagrunninum, netsamskipti með fjölda opinna samtímis samtímis og stór geymsla. Svo miklar kröfur og gnægð mismunandi tegunda aðgerða leiða óhjákvæmilega til þess að hnútar hafa ef til vill ekki nægjanlegt fjármagn og þá getur eitthvað af stigunum sem fjallað er um hér að ofan orðið enn einn flöskuhálsinn fyrir heildarafköst netkerfisins.

Þegar þú hannar og metur árangur blockchains verður þú að taka tillit til allra þessara punkta. Til að gera þetta þarftu að safna og greina mæligildi samtímis frá viðskiptavinum og nethnútum, leita að fylgni á milli þeirra, áætla þann tíma sem það tekur að veita viðskiptavinum þjónustu, taka tillit til allra helstu auðlinda: örgjörva/minni/net/geymsla , skilja hvernig þau eru notuð og hafa áhrif á hvert annað. Allt þetta gerir samanburð á hraða mismunandi blokkakeðju í formi „hversu margar TPS“ að afar vanþakklátt verkefni, þar sem það er gríðarlegur fjöldi mismunandi stillinga og ríkja. Í stórum miðstýrðum kerfum, þyrpingum af hundruðum netþjóna, eru þessi vandamál líka flókin og krefjast þess einnig að safna fjölda mismunandi mælikvarða, en í blokkakeðjum, vegna p2p neta, sýndarvéla sem vinna samninga, innra hagkerfi, fjölda gráður frelsi er miklu meira, sem gerir prófið jafnvel á nokkrum netþjónum, það er ekki leiðbeinandi og sýnir aðeins ákaflega áætluð gildi sem hafa nánast engin tengsl við raunveruleikann.

Þess vegna, þegar við erum að þróa í blockchain kjarnanum, til að meta frammistöðu og svara spurningunni "hefur það batnað miðað við síðast?" Við notum frekar flókinn hugbúnað sem skipuleggur upphaf blockchain með tugum hnúta og setur sjálfkrafa viðmið og safnar mæligildum ; án þessara upplýsinga er afar erfitt að kemba samskiptareglur sem vinna með mörgum þátttakendum.

Svo, þegar þú færð spurninguna „hversu mörg TPS eru í blockchain þínum?“, bjóddu viðmælanda þínum í te og spyrðu hvort hann sé tilbúinn til að skoða tugi línurita og hlusta líka á alla þrjá kassana af blockchain frammistöðuvandamálum og tillögur þínar um að leysa þau...

Heimild: www.habr.com

Bæta við athugasemd