Diiwaanka Qaybsan ee Wheelsets: Khibrad u leh Dharka Hyperledger

Salaan, waxaan ka shaqeeyaa kooxda mashruuca DRD ee KP (diwaanka xogta loo qaybiyay si loola socdo meertada nolosha ee giraangiraha). Halkan waxaan rabaa in aan ku wadaago waayo-aragnimada kooxdeena ee horumarinta ganacsiga blockchain ee mashruucan iyada oo la raacayo caqabadaha ay soo rogtay tignoolajiyada. Inta badan, waxaan ka hadli doonaa Hyperledger Fabric, laakiin habka halkan lagu sharaxay waxaa laga yaabaa in laga saaro blockchain kasta oo fasaxan. Hadafka kama dambaysta ah ee cilmi-baadhisteenu waa in aan u diyaarino xalalka blockchain ee ganacsiga si badeecada ugu dambeysa ay ku faraxsan tahay in la isticmaalo oo aan aad u adkeyn in la ilaaliyo.

Ma jiri doonto wax la helay, xalal lama filaan ah, iyo horumar gaar ah oo halkan lagu dabooli doono (maxaa yeelay ma haysto). Kaliya waxaan rabaa in aan la wadaago waayo-aragnimadayda is-hoosaysiinta ah, tus in "ay suurtagal ahayd" iyo, laga yaabee, in aan akhriyo khibradda qof kale ee samaynta go'aamo wanaagsan oo aan sidaas u wanaagsanayn faallooyinka.

Dhibaatada: blockchains wali lama qiyaasi karo

Maanta, dadaallada horumariyayaal badan ayaa loogu talagalay inay ka dhigaan blockchain tignoolajiyada dhabta ah ee ku habboon, oo aan ahayn bam waqti sax ah oo ku duuban qurux badan. Kanaalka gobolka, rajada laga qabo, balaasmaha iyo jeexjeexa ayaa laga yaabaa inay noqdaan wax caadi ah. Maalin. Ama waxaa laga yaabaa in TON ay dib u dhigto bilawga lix bilood, iyo kooxda Plasma ee soo socota way joogsan doontaa jiritaanka. Waxaan rumaysan karnaa khariidad kale oo akhrin karnaa waraaqo cadcad habeenkii, laakiin halkan iyo hadda waxaan u baahanahay inaan wax ku samayno waxa aan haysano. Xaar iska daa.

Hawsha loo xilsaaray kooxdayada mashruuca hadda jira waxay u egtahay sidan guud ahaan: waxaa jira maadooyin badan, oo gaaraya dhowr kun, kuwaas oo aan rabin inay dhisaan cilaaqaadka kalsoonida; waxaa lagama maarmaan ah in lagu dhiso DLT xal ka shaqeyn doona kombuyuutarrada caadiga ah iyada oo aan loo baahnayn shuruudo waxqabad oo gaar ah oo bixiya khibrad isticmaale oo aan ka xumaanin nidaamyada xisaabinta dhexe. Tiknoolajiyada ka dambeysa xalka waa in ay yareysaa suurtagalnimada in lagu sameeyo xogta xaasidnimo - taas oo ah sababta blockchain halkan u joogo.

Halkudhigyada waraaqaha cadaanka ah iyo warbaahinta ayaa noo ballan qaadaya in horumarka soo socda uu oggolaan doono malaayiin macaamil ganacsi ilbiriqsi kasta. Waa maxay runtii?

Mainnet Ethereum hadda wuxuu ku socdaa ~30 tps. Sababtan awgeed, way adag tahay in loo arko sida blockchain si kasta oo ku habboon baahiyaha shirkadaha. Waxaa ka mid ah xalalka la oggolaaday, bartilmaameedyada muujinaya 2000 tps waa la yaqaan (Quorumama 3000 tps (Dharbaaxo badan, waxaa jira wax yar oo ka yar daabacaadda, laakiin maskaxda ku hay in bartilmaameedka lagu sameeyay matooradii hore ee la isku raacsan yahay). ahaa isku dayga ah in si qotodheer dib loogu shaqeeyo Fabric, taas oo aan siinin natiijooyinka ugu xun, 20000 tps, laakiin ilaa hadda kuwani waa daraasado tacliimeed oo sugaya dhaqangelintooda xasilloon. Uma badna in shirkad awood u leh in ay sii wado waaxda horumarinta blockchain ay ku dhejin doonto tilmaamayaashan. Laakiin dhibaatadu maaha kaliya in la soo saaro, waxaa sidoo kale jira daahitaan.

qarsoon

Dib u dhigista laga bilaabo wakhtiga macaamil ganacsigu bilaabmayo ansixintiisa kama dambaysta ah ee nidaamku kuma xidhna oo kaliya xawaaraha fariinta ee maraya dhammaan heerarka ansixinta iyo dalbashada, laakiin sidoo kale xuduudaha formation block. Xitaa haddii blockchain-kayagu noo ogolaado in aanu samayno 1000000 tps, laakiin ay qaadanayso 10 daqiiqo in la sameeyo 488MB block, miyay noo fududaan doontaa?

Aan si qoto dheer u eegno meertada nolosha ee wax kala iibsiga gudaha Fabric Hyperledger si aan u fahanno waxa wakhti qaadanaya iyo sida ay ula xidhiidho xannibaadda xuduudaha samaynta.

Diiwaanka Qaybsan ee Wheelsets: Khibrad u leh Dharka Hyperledger
halkan laga soo qaatay: hyperledger-fabric.readthedocs.io/en/release-1.4/arch-deep-dive.html#swimlane

(1) Macmiilku wuxuu sameeyaa macaamil ganacsi, wuxuu u diraa asxaabtiisa taageeraya, kan dambe wuxuu u ekaanayaa macaamilka (ku codso isbeddelada ay sameeyeen chaincode ee gobolka hadda jira, laakiin ha ka go'an buug-gacmeedka) oo hel RWSet - magacyada muhiimka ah, noocyada iyo qiyamka laga soo qaatay ururinta CouchDB, (2) taageerayaashu waxay dib ugu soo celiyaan RWSet-ka saxeexan macmiilka, (3) macmiilku ama hubiyaa saxeexyada dhammaan facooda loo baahan yahay ( tageerayaasha), ka dibna u dira macaamilka adeegga dalbashada. , ama soo dirtaa iyada oo aan la hubin (xaqiijinta wali way dhici doontaa mar dambe), adeegga dalbashada wuxuu sameeyaa xannibaad iyo (4) wuxuu dib ugu soo celiyaa dhammaan facooda, maaha kaliya kuwa taageersan; Asxaabtu waxay hubiyaan in noocyada furayaasha wax-akhrisku ay ku habboon yihiin noocyada kaydka, saxeexyada dhammaan taageerayaashooda, oo ugu dambayntii sameeyaan xannibaadda.

Laakiin intaas kuma koobna. Erayada ka dambeeya "dalbare wuxuu sameeyaa block" ma qarsoona oo kaliya amar bixinta macaamilada, laakiin sidoo kale 3 codsiyo shabakad isku xigta oo ka yimaada hogaamiyaha si ay u raacaan iyo gadaal: hogaamiyuhu wuxuu ku daraa fariin qoraal ah, wuxuu u diraa taageerayaasha, kan dambe wuxuu ku darayaa Loggooda, u dir xaqiijinta ku celcelinta guulaysata hoggaamiyaha, hogaamiyuhu waxa uu sameeyaa fariinta, waxa uu u diraa xaqiijinta taageerayaashiisa, raacayaashu waxa ay sameeyaan. Inta yar ee xajmiga iyo waqtiga, inta badan adeegga dalbashada waa inuu dejiyaa heshiis la isku raacsan yahay. Dharka Hyperledger wuxuu leeyahay laba qaybood oo qaabaynta block ah: BatchTimeout - block formation time iyo BatchSize - cabbirka block (tirada wax kala iibsiga iyo xajmiga block laftiisa bytes). Isla marka mid ka mid ah xuduudaha uu gaaro xadka, xannibaad cusub ayaa la soo saarayaa. Inta badan qanjidhada dalbashada, inta ka sii dheer ayay tani qaadan doontaa. Sidaa darteed, waxaad u baahan tahay inaad kordhiso BatchTimeout iyo BatchSize. Laakin maadaama RWSets la soo koobay, inta weyn ee aan sameeyno block, waa ay sareeysaa suurtagalnimada isku dhacyada MVCC. Intaa waxaa dheer, kororka BatchTimeout, UX waxay hoos u dhigtaa musiibo. Waxay iila muuqataa mid macquul ah oo cad nidaamka soo socda ee lagu xallinayo dhibaatooyinkan.

Sida looga fogaado sugitaanka dhamaystirka xannibaadda oo aan luminin heerka macaamilka

Marka ay sii dheeraato wakhtiga samaynta iyo cabbirka xannibaadda, ayaa kor u kacaysa wax soo saarka blockchain. Mid ka mid ah si toos ah ugama socdo kan kale, laakiin waa in la xasuusnaado in samaynta is-afgaradka RAFT ay u baahan tahay saddex codsiyo shabakadeed oo ka yimid hoggaamiyaha taageerayaasha iyo gadaal. Dalbashada qanjidhada badan, way dheeraan doontaa. Inta yar ee cabbirka iyo wakhtiga samaynta xannibaadda, isdhexgalka badan ee noocaas ah. Sidee loo kordhiyaa wakhtiga samaynta iyo xajmiga xannibaadda iyada oo aan la kordhin wakhtiga jawaabta nidaamka ee isticmaalaha ugu dambeeya?

Marka hore, waxaad u baahan tahay inaad si uun u xalliso isku dhacyada MVCC ee ay sababto cabbir weyn, kaas oo ay ku jiri karaan RWSets kala duwan oo isku nooc ah. Sida iska cad, dhinaca macmiilka (marka la eego shabakada blockchain, tani waxay noqon kartaa gadaal, oo waxaan ula jeedaa) Maamulaha isku dhaca MVCC, kaas oo noqon kara adeeg gaar ah ama qurxin joogta ah oo ku saabsan wicitaanka bilawga ah ee macaamilka oo leh dib u tijaabi macquul ah.

Dib u tijaabinta waxa lagu fulin karaa xeelad jibbaaran, laakiin daahitaanka ayaa sidoo kale hoos u dhigi doona si xad dhaaf ah. Markaa waa inaad isticmaashaa dib-u-eegid aan kala sooc lahayn oo xaddidan oo yar, ama mid joogto ah. Iyadoo isha lagu hayo shilalka suurtagalka ah ee kala duwanaanshaha koowaad.

Talaabada xigta waa in macaamilka la macaamilka nidaamka laga dhigo mid aan sinnayn si aanu u sugin 15, 30, ama 10000000 ilbiriqsi, kaas oo aanu u dhigi doono sida BatchTimeout. Laakiin isla mar ahaantaana, waxaa lagama maarmaan ah in la ilaaliyo awoodda si loo hubiyo in isbeddelada bilaabay macaamil ganacsi la duubay / aan lagu qorin blockchain.
Xogta xogta waxa loo isticmaali karaa in lagu kaydiyo heerka wax kala iibsiga. Xulashada ugu fudud waa CouchDB sababtoo ah fudayd adeegsigeeda: xog ururintu waxay leedahay UI sanduuqa ka baxsan, API REST, oo si fudud ayaad u dejin kartaa ku-noqoshada iyo qaybinta. Waxaad kaliya ku abuuri kartaa ururin gaar ah isla tusaalaha CouchDB ee Fabric u isticmaalo inuu ku kaydiyo xaaladdeeda adduunka. Waxaan u baahanahay inaan kaydinno dukumentiyada noocaan ah.

{
 Status string // Бтатус Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ: "pending", "done", "failed"
 TxID: string // ID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ
 Error: string // optional, сообщСниС ΠΎΠ± ошибкС
}

Dukumeentigan waxaa loo qoraa kaydka ka hor inta aan macaamilka loo dirin asxaabta, aqoonsiga cidda ayaa lagu soo celinayaa isticmaalaha (ID la mid ah ayaa loo isticmaalaa fure ahaan) haddii tani ay tahay hawl abuurka, ka dibna goobaha Status, TxID iyo Error la cusboonaysiiyay maadaama macluumaadka khuseeya laga helayo asxaabta.

Diiwaanka Qaybsan ee Wheelsets: Khibrad u leh Dharka Hyperledger

Nidaamkan, isticmaaluhu ma sugo in xannibaadda uu ugu dambeyntii sameeyo, daawashada giraangiraha wareega ee shaashadda 10 ilbiriqsi, wuxuu helayaa jawaab degdeg ah nidaamka wuxuuna sii wadaa inuu shaqeeyo.

Waxaan dooranay BoltDB si aan u keydino heerarka macaamil ganacsi sababtoo ah waxaan u baahanahay inaan keydino xusuusta mana rabno inaan waqti ku lumino isdhexgalka shabakada ee server-ka xogta goonida ah, gaar ahaan marka is dhexgalkaani uu dhaco iyadoo la adeegsanayo nidaamka qoraalka cad. Jid ahaan, haddii aad isticmaasho CouchDB si aad u fuliso nidaamka kor lagu sharaxay ama kaliya si aad u kaydiso gobolka adduunka, xaalad kasta, waxa macno leh in la wanaajiyo habka xogta loogu kaydiyo CouchDB. Sida caadiga ah, gudaha CouchDB, cabbirka qanjidhada b-geedku waa 1279 bytes, taas oo aad uga yar cabbirka qaybta diskka, taas oo macnaheedu yahay in akhrinta iyo dib-u-habaynta geedka labadaba ay u baahan doonaan helitaanka diskka jirka oo badan. Cabbirka ugu fiican wuxuu la kulmaa heerka Qaab Sare waana 4 kilobytes. Hagaajinta, waxaan u baahanahay inaan dejino cabbirka btree_chunk_size la mid ah 4096 ku jira faylka qaabeynta CouchDB. BoltDB faragelinta gacanta ee noocan oo kale ah aan loo baahnayn.

Cadaadiska dhabarka: istaraatijiyad kayd ah

Laakiin waxaa jiri kara farriimo badan. In ka badan nidaamku uu xamili karo, la wadaaga agabka darsin adeegyo kale oo aan ka ahayn kuwa lagu muujiyey jaantuska - oo waxaas oo dhami waa inay si cillad la'aan ah ugu shaqeeyaan xitaa mashiinnada ay ku shaqeynayaan Fikradda Intellij ay noqon lahayd mid aad u caajis badan.

Dhibaatada soo-saarka kala duwan ee hababka isgaarsiinta, soo saaraha iyo macaamiisha, waxaa lagu xalliyaa siyaabo kala duwan. Aan aragno waxa aan sameyn karno.

Hoos udhac: waxaan sheegan karnaa inaan awoodno inaan ku shaqeyno inta badan X xawaalad ee sekannada T. Dhammaan codsiyada ka sarreeya xadkan waa la tuuray. Way fududahay, laakiin markaa waxaad illoobi kartaa UX.

XakamayntaMacmiilku waa inuu lahaadaa xoogaa is-dhexgal kaas oo, iyadoo ku xiran culeyska, uu xakameyn karo tps-ga soo saaraha. Ma xuma, laakiin waxay ku soo rogtay waajibaad ku saabsan horumarinta macmiilka xamuulka si ay u hirgeliyaan interface this. Annaga, tani waa wax aan la aqbali karin, tan iyo blockchain mustaqbalka waxaa lagu dari doonaa tiro badan oo ah nidaamyada muddada dheer jira.

Burburinta: Halkii aan ka fikiri lahayn in aan iska caabinno qulqulka xogta gelinta, waan ilaalin karnaa qulqulkan waxaanan ku socodsiin karnaa xawaaraha loo baahan yahay. Sida iska cad, tani waa xalka ugu fiican haddii aan rabno inaan bixinno khibrad isticmaale oo wanaagsan. Waxaan hirgalinay kaydka anagoo adeegsanayna saf gudaha RabbitMQ.

Diiwaanka Qaybsan ee Wheelsets: Khibrad u leh Dharka Hyperledger

Laba ficil oo cusub ayaa lagu soo daray nidaamka: (1) ka dib marka la helo codsiga API, fariinta ayaa la safay iyada oo la raacayo cabbirada lagama maarmaanka u ah in la waco macaamilka, macmiilkuna wuxuu helayaa fariin ah in macaamilka uu aqbalay nidaamka, ( 2) dhabarku wuxuu akhriyaa xogta xawaaraha ku qeexan qaabaynta safka; bilaabaya wax kala iibsiga oo cusboonaysii xogta ku jirta dukaanka status.
Hadda waxaad kordhin kartaa waqtiga dhismaha oo aad xannibi kartaa awoodda inta aad rabto, adigoo qarinaya dib u dhacyada isticmaalaha.

Qalab kale

Waxba halkan lagama sheegin oo ku saabsan chaincode, sababtoo ah inta badan ma jiraan wax lagu hagaajin karo. Koodhka silsiladda waa inuu ahaadaa mid fudud oo ammaan ah intii suurtagal ah - taasi waa waxa loo baahan yahay oo dhan. Qaab-dhismeedku aad ayuu nooga caawiyaa in aan si fudud oo badbaado leh u qorno silsilad koodka. CSKit ka S7 Techlab iyo falanqeeye taagan soo noolayn^CC.

Intaa waxaa dheer, kooxdayadu waxay horumarinaysaa qalabyo kala duwan si ay ula shaqaynta Fabric uga dhigto mid fudud oo lagu raaxaysto: sahamiyaha blockchain, utility for dib u habaynta shabakada tooska ah (ku dar/kasaar ururada, RAFT nodes), utility for ka noqoshada shahaadada iyo ka saarida aqoonsiga. Haddii aad jeclaan lahayd inaad wax ku darsato, soo dhawoow.

gunaanad

Habkani wuxuu fududeynayaa in lagu beddelo Hyperledger Fabric oo leh Quorum, shabakadaha kale ee gaarka ah ee Ethereum (PoA ama xitaa PoW), waxay si weyn u yareeyaan wax-soo-saarka dhabta ah, laakiin isla markaaba ilaali UX caadiga ah (labadaba isticmaalayaasha browserka iyo dhinaca hababka isku dhafan ). Marka lagu bedelayo Fabric Ethereum nidaamka, kaliya caqli-celinta dib-u-isku-dayga adeegga/qurxiyaha ayaa u baahan doona in laga beddelo maaraynta isku dhacyada MVCC loona beddelo koror aan lahayn atomic iyo soo-celin. Kaydinta iyo heerka kaydinta ayaa suurtageliyay in la kala saaro wakhtiga jawaabta laga soo bilaabo wakhtiga samaynta xannibaadda. Hadda waxaad ku dari kartaa kumanaan dalbashada qanjidhada oo ha ka baqin in baloogyada ay sameeyaan marar badan oo ay ku shubaan adeegga dalbashada.

Guud ahaan, tani waa waxa aan rabay in aan la wadaago. Waan ku farxi doonaa haddii ay qof ku caawiso shaqadiisa.

Source: www.habr.com

Add a comment