Je! ni TPS ngapi kwenye blockchain yako?

Swali linalopendwa zaidi kuhusu mfumo wowote unaosambazwa kutoka kwa mtu asiye wa kiufundi ni "Je, ni tps ngapi kwenye blockchain yako?" Hata hivyo, nambari inayotolewa katika kujibu kwa kawaida hailingani sana na kile muulizaji angependa kusikia. Kwa kweli, alitaka kuuliza "je blockchain yako italingana na mahitaji ya biashara yangu," na mahitaji haya sio nambari moja, lakini hali nyingi - hapa kuna uvumilivu wa makosa ya mtandao, mahitaji ya mwisho, saizi, asili ya shughuli na vigezo vingine vingi. Kwa hivyo jibu la swali "ngapi tps" haliwezekani kuwa rahisi, na karibu kamwe halijakamilika. Mfumo uliosambazwa na makumi au mamia ya nodi zinazofanya mahesabu ngumu kabisa inaweza kuwa katika idadi kubwa ya majimbo tofauti yanayohusiana na hali ya mtandao, yaliyomo kwenye blockchain, kushindwa kwa kiufundi, shida za kiuchumi, shambulio kwenye mtandao na sababu zingine nyingi. . Hatua ambazo matatizo ya utendaji yanawezekana hutofautiana na huduma za kitamaduni, na seva ya mtandao ya blockchain ni huduma ya mtandao ambayo inachanganya utendaji wa hifadhidata, seva ya wavuti na mteja wa torrent, ambayo inafanya kuwa ngumu sana kwa suala la wasifu wa mzigo kwenye mifumo yote ndogo. : processor, kumbukumbu, mtandao, hifadhi

Inatokea kwamba mitandao iliyopitishwa na blockchains ni programu maalum na isiyo ya kawaida kwa watengenezaji wa programu kuu. Kwa hivyo, ningependa kuangazia vipengele muhimu vya utendaji na uendelevu wa mitandao iliyogatuliwa, mbinu za kuzipima na kutafuta vikwazo. Tutaangalia masuala mbalimbali ya utendaji ambayo hupunguza kasi ya kutoa huduma kwa watumiaji wa blockchain na kumbuka vipengele vya sifa za aina hii ya programu.

Hatua za ombi la huduma na mteja wa blockchain

Ili kuzungumza kwa uaminifu juu ya ubora wa huduma yoyote ngumu zaidi au chini, unahitaji kuzingatia sio tu maadili ya wastani, lakini pia kiwango cha juu / cha chini, wastani, asilimia. Kinadharia, tunaweza kuzungumza juu ya tps 1000 kwenye blockchain fulani, lakini ikiwa shughuli 900 zilikamilishwa kwa kasi kubwa, na 100 "zilikwama" kwa sekunde chache, basi wakati wa wastani uliokusanywa juu ya shughuli zote sio kipimo cha haki kabisa kwa mteja. ambaye sikuweza kukamilisha muamala ndani ya sekunde chache. "Mashimo" ya muda yanayosababishwa na mzunguko wa makubaliano yaliyokosa au mgawanyiko wa mtandao unaweza kuharibu sana huduma ambayo imeonyesha utendaji bora kwenye madawati ya majaribio.

Ili kutambua vikwazo hivyo, ni muhimu kuwa na ufahamu mzuri wa hatua ambazo blockchain halisi inaweza kuwa na ugumu wa kuwahudumia watumiaji. Hebu tueleze mzunguko wa utoaji na usindikaji wa shughuli, pamoja na kupata hali mpya ya blockchain, ambayo mteja anaweza kuthibitisha kwamba shughuli yake imechakatwa na kuhesabiwa.

  1. shughuli huundwa kwa mteja
  2. shughuli imesainiwa kwa mteja
  3. mteja huchagua nodi moja na kutuma shughuli zake kwake
  4. mteja anajiandikisha kwa sasisho kwenye hifadhidata ya serikali ya nodi, akingojea matokeo ya shughuli yake kuonekana.
  5. nodi inasambaza shughuli kwenye mtandao wa p2p
  6. BP kadhaa au moja (mtayarishaji wa block) huchakata shughuli zilizokusanywa, kusasisha hifadhidata ya serikali
  7. BP huunda kizuizi kipya baada ya kusindika nambari inayohitajika ya miamala
  8. BP inasambaza kizuizi kipya kwenye mtandao wa p2p
  9. kizuizi kipya kinatolewa kwa nodi ambayo mteja anapata
  10. nodi inasasisha hifadhidata ya serikali
  11. nodi huona sasisho kuhusu mteja na humtumia arifa ya muamala

Sasa hebu tuangalie kwa karibu hatua hizi na tueleze maswala ya utendakazi yanayoweza kutokea katika kila hatua. Tofauti na mifumo ya kati, tutazingatia pia utekelezaji wa nambari kwa wateja wa mtandao. Mara nyingi, wakati wa kupima TPS, wakati wa usindikaji wa manunuzi hukusanywa kutoka kwa nodi, na sio kutoka kwa mteja - hii sio haki kabisa. Mteja hajali jinsi nodi ilivyoshughulikia shughuli yake haraka; jambo muhimu zaidi kwake ni wakati ambapo habari za kuaminika juu ya shughuli hii iliyojumuishwa kwenye blockchain inapatikana kwake. Ni kipimo hiki ambacho kimsingi ni wakati wa utekelezaji wa muamala. Hii ina maana kwamba wateja tofauti, hata kutuma shughuli sawa, wanaweza kupokea nyakati tofauti kabisa, ambazo hutegemea kituo, mzigo na ukaribu wa node, nk. Kwa hivyo ni muhimu kabisa kupima wakati huu kwa wateja, kwa kuwa hii ndiyo parameter ambayo inahitaji kuboreshwa.

Kuandaa muamala kwa upande wa mteja

Hebu tuanze na pointi mbili za kwanza: shughuli imeundwa na kusainiwa na mteja. Cha ajabu, hii pia inaweza kuwa kizuizi cha utendaji wa blockchain kutoka kwa mtazamo wa mteja. Hii ni ya kawaida kwa huduma za kati, ambazo huchukua mahesabu na shughuli zote na data, na mteja huandaa tu ombi fupi ambalo linaweza kuomba kiasi kikubwa cha data au mahesabu, kupata matokeo tayari. Katika blockchains, nambari ya mteja inakuwa na nguvu zaidi na zaidi, na msingi wa blockchain unakuwa mwepesi zaidi na zaidi, na kazi kubwa za kompyuta kawaida huhamishiwa kwa programu ya mteja. Katika blockchains, kuna wateja ambao wanaweza kuandaa muamala mmoja kwa muda mrefu sana (ninazungumza juu ya uthibitisho wa hali ya juu, uthibitisho mfupi, saini za kizingiti na shughuli zingine ngumu kwa upande wa mteja). Mfano mzuri wa uthibitishaji rahisi wa mtandaoni na utayarishaji mzito wa ununuzi kwa mteja ni uthibitisho wa uanachama katika orodha inayotokana na Merkle-tree, hapa. makala.

Pia, usisahau kwamba msimbo wa mteja haitumii tu shughuli kwa blockchain, lakini kwanza huuliza hali ya blockchain - na shughuli hii inaweza kuathiri msongamano wa mtandao na nodi za blockchain. Kwa hivyo, wakati wa kuchukua vipimo, itakuwa busara kuiga tabia ya nambari ya mteja kabisa iwezekanavyo. Hata ikiwa katika blockchain yako kuna wateja wa kawaida wa mwanga ambao huweka saini ya kawaida ya dijiti kwenye ununuzi rahisi zaidi wa kuhamisha mali fulani, kila mwaka bado kuna mahesabu makubwa zaidi kwa mteja, algorithms ya crypto inazidi kuwa na nguvu, na sehemu hii ya usindikaji inaweza. kugeuka kuwa kizuizi kikubwa katika siku zijazo. Kwa hivyo, kuwa mwangalifu na usikose hali hiyo wakati, katika shughuli inayodumu 3.5s, 2.5s hutumiwa kuandaa na kusaini shughuli hiyo, na 1.0 kwa kuituma kwa mtandao na kungojea jibu. Ili kutathmini hatari za kizuizi hiki, unahitaji kukusanya vipimo kutoka kwa mashine za mteja, na sio tu kutoka kwa nodi za blockchain.

Kutuma shughuli na kufuatilia hali yake

Hatua inayofuata ni kutuma shughuli kwa node iliyochaguliwa ya blockchain na kupokea hali ya kukubali kwenye bwawa la shughuli. Hatua hii ni sawa na ufikiaji wa kawaida wa hifadhidata; nodi lazima irekodi shughuli kwenye bwawa na kuanza kusambaza habari kuihusu kupitia mtandao wa p2p. Mbinu ya kutathmini utendakazi hapa ni sawa na kutathmini utendakazi wa huduma ndogo ndogo za API ya Wavuti, na miamala yenyewe katika blockchains inaweza kusasishwa na kubadilisha hali yao kikamilifu. Kwa ujumla, kusasisha maelezo ya shughuli kwenye baadhi ya minyororo ya kuzuia inaweza kutokea mara nyingi, kwa mfano wakati wa kubadili kati ya uma wa mnyororo au wakati BPs inapotangaza nia yao ya kujumuisha muamala kwenye kizuizi. Vikwazo juu ya ukubwa wa bwawa hili na idadi ya shughuli ndani yake inaweza kuathiri utendaji wa blockchain. Ikiwa bwawa la ununuzi limejazwa kwa ukubwa wa juu iwezekanavyo, au haifai kwenye RAM, utendaji wa mtandao unaweza kushuka kwa kasi. Blockchains hazina njia kuu za kulinda dhidi ya mafuriko ya jumbe taka, na ikiwa blockchain itaauni miamala ya kiwango cha juu na ada za chini, hii inaweza kusababisha shughuli nyingi kufurikaβ€”tatizo lingine linalowezekana la utendakazi.

Katika blockchains, mteja hutuma muamala kwa nodi yoyote ya blockchain anayopenda, hashi ya ununuzi kawaida hujulikana kwa mteja kabla ya kutuma, kwa hivyo anachohitaji kufanya ni kufikia muunganisho na, baada ya kusambaza, subiri blockchain ibadilike. hali yake, kuwezesha shughuli zake. Kumbuka kwamba kwa kupima "tps" unaweza kupata matokeo tofauti kabisa kwa njia tofauti za kuunganisha kwenye node ya blockchain. Hii inaweza kuwa HTTP RPC ya kawaida au WebSocket inayokuruhusu kutekeleza muundo wa "jisajili". Katika kesi ya pili, mteja atapokea taarifa mapema, na node itatumia rasilimali kidogo (hasa kumbukumbu na trafiki) kwenye majibu kuhusu hali ya manunuzi. Kwa hiyo wakati wa kupima "tps" ni muhimu kuzingatia jinsi wateja wanavyounganisha kwenye nodes. Kwa hivyo, ili kutathmini hatari za kizuizi hiki, benchmark blockchain lazima iweze kuiga wateja na maombi ya WebSocket na HTTP RPC, kwa idadi inayolingana na mitandao halisi, na pia kubadilisha asili ya miamala na saizi yao.

Ili kutathmini hatari za kizuizi hiki, unahitaji pia kukusanya vipimo kutoka kwa mashine za mteja, na sio tu kutoka kwa nodi za blockchain.

Usambazaji wa miamala na vizuizi kupitia mtandao wa p2p

Katika blockchains, mtandao wa peer-to-peer (p2p) hutumiwa kuhamisha shughuli na vizuizi kati ya washiriki. Shughuli zilienea kwenye mtandao, kuanzia moja ya nodi, hadi kufikia watayarishaji wa vitalu rika, ambao hupakia shughuli kwenye vizuizi na, kwa kutumia p2p sawa, kusambaza vizuizi vipya kwa nodi zote za mtandao. Msingi wa mitandao ya kisasa zaidi ya p2p ni marekebisho mbalimbali ya itifaki ya Kademlia. Hapa muhtasari mzuri wa itifaki hii, na tazama - makala yenye vipimo mbalimbali katika mtandao wa BitTorrent, ambayo mtu anaweza kuelewa kuwa aina hii ya mtandao ni ngumu zaidi na haiwezi kutabirika kuliko mtandao uliosanidiwa kwa ukali wa huduma ya kati. Pia, tazama makala kuhusu kupima vipimo mbalimbali vya kuvutia vya nodi za Ethereum.

Kwa kifupi, kila rika katika mitandao kama hii hudumisha orodha yake inayobadilika ya wenzao wengine ambayo huomba vizuizi vya habari ambavyo vinashughulikiwa na yaliyomo. Wakati rika linapokea ombi, linatoa habari inayofaa au kupitisha ombi kwa rika la uwongo la nasibu kutoka kwenye orodha, na baada ya kupokea jibu, hulipitisha kwa mwombaji na kuihifadhi kwa muda, ikitoa hii. kizuizi cha habari mapema wakati ujao. Kwa hivyo, habari maarufu huisha kwa idadi kubwa ya cache za idadi kubwa ya wenzao, na habari zisizopendwa hubadilishwa hatua kwa hatua. Wenzake huweka rekodi za ni nani aliyehamisha ni kiasi gani cha taarifa kwa nani, na mtandao unajaribu kuwachochea wasambazaji watendaji kwa kuongeza ukadiriaji wao na kuwapa kiwango cha juu cha huduma, na kuwaondoa washiriki wasioshiriki kiotomatiki kutoka kwa orodha za rika.

Kwa hivyo, shughuli hiyo sasa inahitaji kusambazwa katika mtandao mzima ili watengenezaji wa block-waweze kuiona na kuijumuisha kwenye kizuizi. Node kikamilifu "inasambaza" shughuli mpya kwa kila mtu na inasikiliza mtandao, ikisubiri kizuizi katika index ambayo shughuli inayohitajika itaonekana ili kumjulisha mteja anayesubiri. Wakati inachukua kwa mtandao kuhamisha habari kuhusu shughuli mpya na vizuizi kwa kila mmoja katika mitandao ya p2p inategemea idadi kubwa ya mambo: idadi ya nodi za uaminifu zinazofanya kazi karibu (kutoka kwa mtazamo wa mtandao), "joto- up” ya kache za nodi hizi, saizi ya vizuizi, miamala, asili ya mabadiliko , jiografia ya mtandao, idadi ya nodi na mambo mengine mengi. Vipimo tata vya vipimo vya utendakazi katika mitandao kama hii ni suala tata; ni muhimu kutathmini wakati huo huo muda wa usindikaji wa ombi kwa wateja na wenzao (nodi za blockchain). Matatizo katika mbinu zozote za p2p, uondoaji data usio sahihi na uhifadhi akiba, usimamizi usiofaa wa orodha za wenzao wanaofanya kazi, na mambo mengine mengi yanaweza kusababisha ucheleweshaji unaoathiri ufanisi wa mtandao mzima kwa ujumla, na tatizo hili ndilo gumu zaidi kuchanganua. , mtihani na tafsiri ya matokeo.

Usindikaji wa blockchain na uppdatering wa hifadhidata ya serikali

Sehemu muhimu zaidi ya blockchain ni algorithm ya makubaliano, matumizi yake kwa vitalu vipya vilivyopokelewa kutoka kwa mtandao na usindikaji wa shughuli na kurekodi matokeo katika hifadhidata ya serikali. Kuongeza kizuizi kipya kwenye mnyororo na kisha kuchagua mnyororo kuu inapaswa kufanya kazi haraka iwezekanavyo. Walakini, katika maisha halisi, "lazima" haimaanishi "kazi", na mtu anaweza, kwa mfano, kufikiria hali ambapo minyororo miwili mirefu inayoshindana inabadilika kila wakati kati yao, ikibadilisha metadata ya maelfu ya shughuli kwenye dimbwi kwenye kila swichi. , na kurudisha hifadhidata ya serikali kila wakati. Hatua hii, katika suala la kufafanua kizuizi, ni rahisi zaidi kuliko safu ya mtandao ya p2p, kwa sababu utekelezaji wa muamala na algoriti ya maafikiano huamua kabisa, na ni rahisi kupima chochote hapa.
Jambo kuu sio kuchanganya uharibifu wa bahati nasibu katika utendaji wa hatua hii na shida za mtandao - nodi ni polepole katika kutoa vizuizi na habari juu ya mlolongo kuu, na kwa mteja wa nje hii inaweza kuonekana kama mtandao polepole, ingawa shida iko ndani. mahali tofauti kabisa.

Ili kuboresha utendaji katika hatua hii, ni muhimu kukusanya na kufuatilia vipimo kutoka kwa nodi zenyewe, na kujumuisha ndani yake zile zinazohusiana na kusasisha hifadhidata ya serikali: idadi ya vizuizi vilivyochakatwa kwenye nodi, saizi yao, idadi ya miamala, idadi ya swichi kati ya uma za mnyororo, idadi ya vizuizi batili , muda wa uendeshaji wa mashine pepe, muda wa kuweka data n.k. Hii itazuia matatizo ya mtandao kuchanganyikiwa na makosa katika algorithms ya usindikaji wa mnyororo.

Shughuli ya usindikaji wa mashine pepe inaweza kuwa chanzo muhimu cha habari ambacho kinaweza kuboresha utendakazi wa blockchain. Idadi ya mgao wa kumbukumbu, idadi ya maagizo ya kusoma/kuandika, na vipimo vingine vinavyohusiana na ufanisi wa utekelezaji wa msimbo wa mkataba vinaweza kutoa taarifa nyingi muhimu kwa wasanidi programu. Wakati huo huo, mikataba smart ni programu, ambayo ina maana katika nadharia wanaweza kutumia rasilimali yoyote: cpu/kumbukumbu/mtandao/hifadhi, hivyo usindikaji wa shughuli ni hatua isiyo na uhakika, ambayo, kwa kuongeza, inabadilika sana wakati wa kusonga kati ya matoleo. na wakati wa kubadilisha kanuni za mkataba. Kwa hivyo, vipimo vinavyohusiana na usindikaji wa muamala vinahitajika pia ili kuboresha utendaji wa blockchain kwa ufanisi.

Mapokezi ya mteja ya arifa kuhusu kuingizwa kwa shughuli katika blockchain

Hii ni hatua ya mwisho ya mteja wa blockchain kupokea huduma; ikilinganishwa na hatua zingine, hakuna gharama kubwa za uendeshaji, lakini bado inafaa kuzingatia uwezekano wa mteja kupokea jibu kubwa kutoka kwa nodi (kwa mfano, mkataba mzuri. kurudisha safu ya data). Kwa hali yoyote, hatua hii ni muhimu zaidi kwa yule aliyeuliza swali "ni tps ngapi kwenye blockchain yako?", Kwa sababu Kwa wakati huu, wakati wa kupokea huduma umeandikwa.

Katika mahali hapa, kila wakati kuna utumaji wa wakati kamili ambao mteja alilazimika kutumia akingojea jibu kutoka kwa blockchain; ni wakati huu ambapo mtumiaji atasubiri uthibitisho katika maombi yake, na ni uboreshaji wake ambao ndio kazi kuu ya watengenezaji.

Hitimisho

Kama matokeo, tunaweza kuelezea aina za shughuli zinazofanywa kwenye blockchains na kuzigawanya katika vikundi kadhaa:

  1. mabadiliko ya kriptografia, ujenzi wa uthibitisho
  2. mitandao ya rika-kwa-rika, muamala na kuzuia urudufishaji
  3. usindikaji wa shughuli, utekelezaji wa mikataba mahiri
  4. kutumia mabadiliko katika blockchain kwenye hifadhidata ya serikali, kusasisha data juu ya shughuli na vizuizi
  5. maombi ya kusoma tu kwa hifadhidata ya serikali, API ya nodi ya blockchain, huduma za usajili

Kwa ujumla, mahitaji ya kiufundi ya nodi za kisasa za blockchain ni mbaya sana - CPU za haraka za cryptography, kiasi kikubwa cha RAM kuhifadhi na kupata haraka hifadhidata ya serikali, mwingiliano wa mtandao kwa kutumia idadi kubwa ya miunganisho iliyo wazi kwa wakati mmoja, na uhifadhi mkubwa. Mahitaji ya juu kama haya na wingi wa aina tofauti za shughuli bila shaka husababisha ukweli kwamba nodi zinaweza kukosa rasilimali za kutosha, na kisha hatua zozote zilizojadiliwa hapo juu zinaweza kuwa kizuizi kingine kwa utendaji wa jumla wa mtandao.

Wakati wa kubuni na kutathmini utendaji wa blockchains, itabidi kuzingatia pointi hizi zote. Ili kufanya hivyo, unahitaji kukusanya na kuchambua metrics wakati huo huo kutoka kwa wateja na nodes za mtandao, kuangalia uwiano kati yao, kukadiria muda inachukua kutoa huduma kwa wateja, kuzingatia rasilimali zote kuu: cpu / kumbukumbu / mtandao / hifadhi. , kuelewa jinsi zinavyotumiwa na kushawishi kila mmoja. Yote hii hufanya kulinganisha kasi ya blockchains tofauti katika mfumo wa "TPS ngapi" kuwa kazi isiyo na shukrani, kwani kuna idadi kubwa ya usanidi na majimbo tofauti. Katika mifumo mikubwa ya kati, vikundi vya mamia ya seva, shida hizi pia ni ngumu na zinahitaji mkusanyiko wa idadi kubwa ya metriki tofauti, lakini katika blockchains, kwa sababu ya mitandao ya p2p, mikataba ya usindikaji wa mashine, uchumi wa ndani, idadi ya digrii. ya uhuru ni kubwa zaidi, ambayo hufanya mtihani hata kwenye seva kadhaa, sio dalili na inaonyesha tu maadili ya takriban sana ambayo hayana uhusiano wowote na ukweli.

Kwa hivyo, tunapokua katika msingi wa blockchain, kutathmini utendaji na kujibu swali "imeboreshwa ikilinganishwa na mara ya mwisho?" tunatumia programu ngumu sana ambayo inapanga uzinduzi wa blockchain na nodi kadhaa na kuzindua kiotomati alama na kukusanya vipimo. ; bila maelezo haya ni vigumu sana kutatua itifaki zinazofanya kazi na washiriki wengi.

Kwa hivyo, unapopokea swali "ni TPS ngapi kwenye blockchain yako?", mpe mpatanishi wako chai na uulize ikiwa yuko tayari kutazama grafu kadhaa na pia kusikiliza masanduku yote matatu ya shida za utendaji wa blockchain na maoni yako kwa kuyatatua...

Chanzo: mapenzi.com

Kuongeza maoni