Konbyen TPS ki sou blockchain ou a?

Yon kesyon pi renmen sou nenpòt sistèm distribiye soti nan yon moun ki pa teknik se "Konbyen tps ki sou blockchain ou a?" Sepandan, nimewo yo bay nan repons anjeneral pa gen anpil bagay an komen ak sa moun k ap poze kesyon an ta renmen tande. An reyalite, li te vle mande "èske blockchain ou an anfòm kondisyon biznis mwen an," ak kondisyon sa yo se pa yon nimewo, men anpil kondisyon - isit la se tolerans fay rezo, kondisyon finalite, gwosè, nati tranzaksyon yo ak anpil lòt paramèt. Se konsa, repons lan nan kesyon an "konbyen tps" se fasil yo dwe senp, ak prèske pa janm konplè. Yon sistèm distribiye ak dè dizèn oswa dè santèn de nœuds fè kalkil byen konplèks ka nan yon gwo kantite eta diferan ki gen rapò ak eta a nan rezo a, sa ki nan blòk la, echèk teknik, pwoblèm ekonomik, atak sou rezo a ak anpil lòt rezon. . Etap kote pwoblèm pèfòmans yo posib diferan de sèvis tradisyonèl yo, epi yon sèvè rezo blòk se yon sèvis rezo ki konbine fonksyonalite yon baz done, sèvè entènèt ak kliyan torrent, sa ki fè li trè konplèks an tèm de pwofil chaj sou tout sistèm yo. : processeur, memwa, rezo, depo

Li rive konsa ke rezo desantralize ak blockchain yo se byen espesifik ak etranj lojisyèl pou devlopè lojisyèl santralize. Se poutèt sa, mwen ta renmen mete aksan sou aspè enpòtan nan pèfòmans ak dirab rezo desantralize yo, apwòch pou mezire yo ak jwenn blokis yo. Nou pral gade nan divès pwoblèm pèfòmans ki limite vitès la nan bay sèvis pou itilizatè blockchain epi sonje karakteristik yo ki karakteristik sa a kalite lojisyèl.

Etap nan yon demann sèvis pa yon kliyan blockchain

Pou w pale onètman sou kalite nenpòt sèvis ki pi plis oswa mwens konplèks, ou bezwen pran an kont non sèlman valè mwayèn, men tou, maksimòm/minimòm, medyàn, percentile. Teyorikman, nou ka pale sou 1000 tps nan kèk blockchain, men si 900 tranzaksyon yo te konplete ak yon vitès menmen, epi 100 yo te "kole" pou kèk segonn, Lè sa a, tan an mwayèn kolekte sou tout tranzaksyon yo se pa yon metrik konplètman jis pou yon kliyan. ki moun mwen pa t 'kapab fè tranzaksyon an nan kèk segonn. Tanporè "twou" ki te koze pa jij konsansis rate oswa divize rezo a ka anpil kraze yon sèvis ki te montre pèfòmans ekselan sou ban tès yo.

Pou idantifye blokaj sa yo, li nesesè pou w gen yon bon konpreyansyon sou etap kote yon vrè blockchain ka gen difikilte pou sèvi itilizatè yo. Ann dekri sik la nan livrezon ak trete yon tranzaksyon, osi byen ke jwenn yon nouvo eta nan blòk la, ki soti nan ki kliyan an ka verifye ke tranzaksyon li yo te trete ak kontablite pou.

  1. tranzaksyon an fòme sou kliyan an
  2. se tranzaksyon an siyen sou kliyan an
  3. kliyan an chwazi youn nan nœuds yo epi voye tranzaksyon li ba li
  4. kliyan an abònman ak mizajou nan baz done eta a nan ne a, ap tann pou rezilta yo nan tranzaksyon li yo parèt
  5. ne a distribye tranzaksyon an sou rezo p2p la
  6. plizyè oswa yon sèl BP (pwodiktè blòk) pwosesis akimile tranzaksyon, mete ajou baz done eta a
  7. BP fòme yon nouvo blòk apre li fin trete kantite tranzaksyon ki nesesè yo
  8. BP distribye yon nouvo blòk sou rezo p2p la
  9. se nouvo blòk la lage nan ne ke kliyan an ap jwenn aksè
  10. node mete ajou baz done eta a
  11. ne a wè aktyalizasyon konsènan kliyan an epi voye l yon notifikasyon tranzaksyon

Koulye a, kite a pran yon gade pi pre nan etap sa yo epi dekri pwoblèm pèfòmans potansyèl yo nan chak etap. Kontrèman ak sistèm santralize, nou pral konsidere tou ekzekisyon kòd sou kliyan rezo yo. Byen souvan, lè w mezire TPS, tan pwosesis tranzaksyon an kolekte nan nœuds yo, epi yo pa soti nan kliyan an - sa a se pa totalman jis. Kliyan an pa pran swen kòman rapidman node a trete tranzaksyon li a se moman sa a lè enfòmasyon serye sou tranzaksyon sa a ki enkli nan blockchain la vin disponib pou li. Li se metrik sa a ki esansyèlman tan ekzekisyon tranzaksyon an. Sa vle di ke kliyan diferan, menm voye tranzaksyon an menm, ka resevwa tan konplètman diferan, ki depann sou chanèl la, chaj ak pwoksimite nan ne la, elatriye. Se konsa, li se absoliman nesesè yo mezire tan sa a sou kliyan, depi sa a se paramèt la ki bezwen yo dwe optimize.

Prepare yon tranzaksyon sou bò kliyan an

Ann kòmanse ak de premye pwen yo: tranzaksyon an fòme ak siyen pa kliyan an. Etranj ase, sa a kapab tou yon blokaj nan pèfòmans blockchain nan pwen de vi kliyan an. Sa a se etranj pou sèvis santralize, ki pran sou tout kalkil ak operasyon ak done, ak kliyan an tou senpleman prepare yon demann kout ki ka mande yon gwo kantite done oswa kalkil, jwenn yon rezilta pare-fè. Nan blockchain, kòd kliyan an vin pi plis ak plis pouvwa anpil, ak nwayo a blockchain vin pi plis ak plis lejè, ak travay enfòmatik masiv yo anjeneral transfere nan lojisyèl kliyan an. Nan blockchains, gen kliyan ki ka prepare yon tranzaksyon pou yon bon bout tan (mwen ap pale de divès kalite prèv merkle, prèv suks, siyati papòt ak lòt operasyon konplèks sou bò kliyan). Yon bon egzanp verifikasyon fasil sou chèn ak gwo preparasyon pou yon tranzaksyon sou kliyan an se prèv manm nan yon lis ki baze sou Merkle-tree, isit la atik.

Epitou, pa bliye ke kòd kliyan an pa tou senpleman voye tranzaksyon nan blockchain la, men premye demann eta a nan blockchain la - ak aktivite sa a ka afekte konjesyon rezo a ak nœuds blockchain. Se konsa, lè w ap pran mezi, li ta rezonab pou imite konpòtman kòd kliyan an nèt ke posib. Menm si nan blockchain ou a gen kliyan limyè òdinè ki mete yon siyati dijital regilye sou tranzaksyon ki pi senp la pou transfere kèk avantaj, chak ane toujou gen plis kalkil masiv sou kliyan an, algoritm kript yo ap vin pi fò, ak pati sa a nan pwosesis la ka. vire nan yon gwo bouchon nan lavni. Se poutèt sa, fè atansyon epi pa manke sitiyasyon an lè, nan yon tranzaksyon ki dire 3.5s, 2.5s yo te depanse pou prepare ak siyen tranzaksyon an, ak 1.0s sou voye li nan rezo a epi tann pou yon repons. Pou evalye risk ki genyen nan kou boutèy sa a, ou bezwen kolekte mezi nan machin kliyan, epi yo pa sèlman nan nœuds blockchain.

Voye yon tranzaksyon ak siveyans estati li yo

Pwochen etap la se voye tranzaksyon an nan ne seleksyon an blòk epi resevwa estati a nan aksepte li nan pisin tranzaksyon an. Etap sa a se menm jan ak yon aksè baz done regilye ne a dwe anrejistre tranzaksyon an nan pisin lan epi kòmanse distribye enfòmasyon sou li atravè rezo p2p la. Apwòch la pou evalye pèfòmans isit la se menm jan ak evalye pèfòmans nan mikwosèvis tradisyonèl Web API, ak tranzaksyon yo tèt yo nan blockchains yo ka mete ajou ak aktivman chanje estati yo. An jeneral, ajou enfòmasyon tranzaksyon yo sou kèk blockchain ka rive plizyè fwa, pou egzanp lè chanje ant chèn fouchèt oswa lè BP yo anonse entansyon yo genyen ladan yo yon tranzaksyon nan yon blòk. Limit sou gwosè pisin sa a ak kantite tranzaksyon yo ka afekte pèfòmans blockchain la. Si pisin tranzaksyon an ranpli nan gwosè maksimòm posib, oswa si pa anfòm nan RAM, pèfòmans rezo a ka bese sevè. Blockchain pa gen okenn mwayen santralize pou pwoteje kont yon inondasyon mesaj tenten, epi si blockchain la sipòte tranzaksyon ki gen gwo volim ak frè ki ba, sa ka lakòz pisin tranzaksyon an debòde—yon lòt potansyèl pèfòmans.

Nan blockchains, kliyan an voye yon tranzaksyon nan nenpòt nœud blockchain li renmen, se hash nan tranzaksyon an anjeneral konnen kliyan an anvan voye, kidonk tout sa li bezwen fè se reyalize koneksyon an epi, apre transmisyon, tann pou blockchain la chanje. eta li, ki pèmèt tranzaksyon li. Remake byen ke lè w mezire "tps" ou ka jwenn rezilta konplètman diferan pou diferan metòd pou konekte ak yon ne blòk. Sa a kapab yon regilye HTTP RPC oswa yon WebSocket ki pèmèt ou aplike modèl "abònman". Nan dezyèm ka a, kliyan an pral resevwa yon notifikasyon pi bonè, ak ne a pral depanse mwens resous (sitou memwa ak trafik) sou repons sou estati tranzaksyon an. Se konsa, lè mezire "tps" li nesesè pran an kont fason kliyan konekte ak nœuds. Se poutèt sa, pou evalye risk ki genyen nan kou boutèy sa a, blockchain referans la dwe kapab imite kliyan ak tou de demann WebSocket ak HTTP RPC, nan pwopòsyon ki koresponn ak rezo reyèl, osi byen ke chanje nati a nan tranzaksyon yo ak gwosè yo.

Pou evalye risk ki genyen nan kou boutèy sa a, ou bezwen tou kolekte mezi nan machin kliyan, epi yo pa sèlman nan nœuds blockchain.

Transmisyon tranzaksyon ak blòk atravè rezo p2p

Nan blockchains, rezo kanmarad-a-kanmarad (p2p) yo itilize pou transfere tranzaksyon ak blòk ant patisipan yo. Tranzaksyon yo gaye nan tout rezo a, kòmanse nan youn nan nœuds yo, jiskaske yo rive jwenn pwodiktè blòk parèy yo, ki pake tranzaksyon yo an blòk epi, lè l sèvi avèk menm p2p la, distribye nouvo blòk nan tout nœuds rezo yo. Baz pifò rezo p2p modèn yo se plizyè modifikasyon pwotokòl Kademlia. Isit la yon bon rezime pwotokòl sa a, epi isit la - yon atik ak divès mezi nan rezo BitTorrent, ki soti nan ki yon moun ka konprann ke sa a ki kalite rezo se pi konplèks ak mwens previzib pase yon rezo rijid konfigirasyon nan yon sèvis santralize. Epitou, isit la atik sou mezire divès kalite metrik enteresan pou nœuds Ethereum.

An brèf, chak kanmarad nan rezo sa yo kenbe pwòp lis dinamik lòt kanmarad kote li mande blòk enfòmasyon ki adrese pa kontni. Lè yon kanmarad resevwa yon demann, li swa bay enfòmasyon ki nesesè yo oswa li pase demann lan bay pwochen kamarad pseudo-o aza nan lis la, epi li resevwa yon repons, li pase l bay moun k ap fè demann lan epi li kache li pou yon ti tan, li bay sa a. blòk enfòmasyon pi bonè pwochen fwa a. Kidonk, enfòmasyon popilè fini nan yon gwo kantite kachèt nan yon gwo kantite kanmarad, ak enfòmasyon enpopilè piti piti ranplase. Kanmarad yo kenbe dosye kiyès ki transfere konbyen enfòmasyon bay ki moun, epi rezo a ap eseye ankouraje distribitè aktif yo nan ogmante evalyasyon yo epi bay yo yon pi wo nivo sèvis, otomatikman deplase patisipan inaktif yo nan lis kanmarad yo.

Se konsa, kounye a tranzaksyon an bezwen distribye atravè rezo a pou ke pwodiktè blòk yo ka wè li epi mete li nan blòk la. Ne la aktivman "distribye" yon nouvo tranzaksyon bay tout moun epi koute rezo a, ap tann pou yon blòk nan endèks la ki tranzaksyon ki nesesè yo ap parèt yo nan lòd yo notifye kliyan an ap tann. Tan li pran pou rezo a transfere enfòmasyon sou nouvo tranzaksyon ak blòk youn ak lòt nan rezo p2p depann de yon gwo kantite faktè: kantite nœuds onèt k ap travay tou pre (soti nan yon pwen de vi rezo), "cho- moute" nan kachèt yo nan nœuds sa yo, gwosè a nan blòk, tranzaksyon, nati a nan chanjman , jewografi rezo, kantite nœuds ak anpil lòt faktè. Mezi konplè nan mezi pèfòmans nan rezo sa yo se yon pwoblèm konplèks, li nesesè pou evalye tan pwosesis demann lan sou tou de kliyan ak kanmarad yo (blockchain nœuds). Pwoblèm nan nenpòt nan mekanis yo p2p, degèpisman done kòrèk ak kachèt, jesyon efikas nan lis kanmarad aktif, ak anpil lòt faktè ka lakòz reta ki afekte efikasite nan tout rezo a kòm yon antye, ak kou boutèy sa a se pi difisil pou analize. , tès ak entèpretasyon rezilta yo.

Pwosesis Blockchain ak aktyalizasyon baz done eta a

Pati ki pi enpòtan nan blockchain a se algorithm konsansis, aplikasyon li nan nouvo blòk resevwa nan rezo a ak pwosesis tranzaksyon yo ak anrejistreman rezilta yo nan baz done eta a. Ajoute yon nouvo blòk nan chèn lan ak Lè sa a, chwazi chèn prensipal la ta dwe travay pi vit ke posib. Sepandan, nan lavi reyèl, "ta dwe" pa vle di "travay", ak yon moun ka, pou egzanp, imajine yon sitiyasyon kote de chenn konpetisyon long yo toujou ap chanje ant tèt yo, chanje metadata yo nan dè milye de tranzaksyon nan pisin lan nan chak switch. , ak toujou ap woule tounen baz done eta a. Etap sa a, an tèm de defini blokaj la, se pi senp pase kouch rezo p2p la, paske ekzekisyon tranzaksyon ak algorithm konsansis yo se entèdi detèminist, epi li pi fasil pou mezire anyen isit la.
Bagay pwensipal lan se pa konfonn degradasyon o aza nan pèfòmans nan etap sa a ak pwoblèm rezo - nœuds yo pi dousman nan livrezon blòk ak enfòmasyon sou chèn prensipal la, ak pou yon kliyan ekstèn sa a ka sanble ak yon rezo dousman, byenke pwoblèm nan manti nan. yon kote konplètman diferan.

Pou optimize pèfòmans nan etap sa a, li itil pou kolekte ak kontwole mezi ki soti nan nœuds yo tèt yo, epi enkli ladan yo sa ki gen rapò ak aktyalizasyon baz done eta a: kantite blòk trete sou ne, gwosè yo, kantite tranzaksyon yo, kantite switch ant fouchèt chèn, kantite blòk envalid, tan opere machin vityèl, tan komèt done, elatriye. Sa a pral anpeche pwoblèm rezo yo te konfonn ak erè nan algoritm pwosesis chèn.

Yon machin vityèl pwosesis tranzaksyon yo ka yon sous enfòmasyon itil ki ka optimize operasyon an nan blockchain la. Kantite alokasyon memwa, kantite enstriksyon lekti/ekri, ak lòt mezi ki gen rapò ak efikasite nan ekzekisyon kòd kontra ka bay anpil enfòmasyon itil devlopè yo. An menm tan an, kontra entelijan yo se pwogram, ki vle di nan teyori yo ka konsome nenpòt nan resous yo: CPU / memwa / rezo / depo, kidonk pwosesis tranzaksyon se yon etap olye ensèten, ki, anplis, chanje anpil lè w ap deplase ant vèsyon. ak lè chanje kòd kontra yo. Se poutèt sa, mezi ki gen rapò ak pwosesis tranzaksyon yo bezwen tou pou efektivman optimize pèfòmans blockchain.

Kliyan an resevwa yon notifikasyon sou enklizyon yon tranzaksyon nan blockchain la

Sa a se etap final la nan kliyan an blockchain k ap resevwa sèvis la konpare ak lòt etap, pa gen okenn gwo depans jeneral, men li toujou vo konsidere posiblite pou kliyan an resevwa yon repons volumineuz soti nan ne la (pa egzanp, yon kontra entelijan; retounen yon seri done). Nan nenpòt ka, pwen sa a se pi enpòtan an pou moun ki te poze kesyon an "konbyen tps ki nan blockchain ou a?", paske Nan moman sa a, se tan an nan resevwa sèvis la anrejistre.

Nan kote sa a, toujou gen yon voye nan tan an plen ke kliyan an te pase ap tann pou yon repons soti nan blockchain a se tan sa a ke itilizatè a ap tann pou konfimasyon nan aplikasyon li, epi li se optimize li yo travay prensipal devlopè yo.

Konklizyon

Kòm yon rezilta, nou ka dekri kalite operasyon yo fè sou blockchains epi divize yo an plizyè kategori:

  1. transfòmasyon kriptografik, konstriksyon prèv
  2. rezo kanmarad-a-kanmarad, tranzaksyon ak replikasyon blòk
  3. pwosesis tranzaksyon, ekzekisyon kontra entelijan
  4. aplike chanjman nan blockchain nan baz done eta a, mete ajou done sou tranzaksyon ak blòk
  5. demann lekti sèlman nan baz done eta a, API blockchain node, sèvis abònman

An jeneral, kondisyon teknik pou nœuds blòk modèn yo trè grav - CPU vit pou kriptografik, yon gwo kantite RAM nan magazen ak aksè byen vit baz done eta a, entèraksyon rezo lè l sèvi avèk yon gwo kantite koneksyon an menm tan louvri, ak gwo depo. Kondisyon segondè sa yo ak abondans nan diferan kalite operasyon inevitableman mennen nan lefèt ke nœuds ka pa gen ase resous, ak Lè sa a, nenpòt nan etap yo diskite pi wo a ka vin yon lòt blokaj pou pèfòmans rezo a an jeneral.

Lè w ap desine ak evalye pèfòmans blockchains, w ap oblije pran tout pwen sa yo an kont. Pou fè sa, ou bezwen kolekte ak analize mezi ansanm nan kliyan ak nœuds rezo yo, chèche korelasyon ant yo, estime tan li pran pou bay sèvis kliyan yo, pran an kont tout resous prensipal yo: CPU / memwa / rezo / depo. , konprann kijan yo itilize yo epi enfliyanse youn lòt. Tout bagay sa a fè konpare vitès diferan blòk yo nan fòm "konbyen TPS" yon travay trè engra, paske gen yon gwo kantite konfigirasyon diferan ak eta. Nan gwo sistèm santralize, grap dè santèn de serveurs, pwoblèm sa yo tou konplèks epi tou mande pou koleksyon an nan yon gwo kantite mezi diferan, men nan blockchains, akòz rezo p2p, machin vityèl pwosesis kontra, ekonomi entèn, kantite degre. nan libète se pi gwo, ki fè tès la menm sou plizyè serveurs, li pa indicatif epi li montre sèlman valè trè apwoksimatif ki gen prèske pa gen okenn koneksyon ak reyalite.

Se poutèt sa, lè w ap devlope nan nwayo blockchain la, pou evalye pèfòmans ak reponn kesyon an "eske li amelyore konpare ak dènye fwa a, nou itilize lojisyèl byen konplèks ki òchestre lansman yon blockchain ak plizyè douzèn nœuds epi otomatikman lanse yon referans ak kolekte mezi?" ; san enfòmasyon sa a li trè difisil pou debogaj pwotokòl ki travay ak plizyè patisipan.

Kidonk, lè ou resevwa kesyon "konbyen TPS ki genyen nan blockchain ou a?", ofri entèrlokuteur ou a kèk te epi mande si li pare pou gade yon douzèn graf epi tou koute tout twa bwat pwoblèm pèfòmans blockchain ak sijesyon ou pou rezoud yo...

Sous: www.habr.com

Add nouvo kòmantè