Fabric Hyperledger ji bo Dummies

Ji bo Karsaziyê Platformek Blockchain

Fabric Hyperledger ji bo Dummies

Roj baş, xwendevanên delal, navê min Nikolay Nefedov e, ez li IBM pisporê teknîkî me, di vê gotarê de ez dixwazim platforma blokcheynê - Hyperledger Fabric - bidim nasîn. Platform ji bo avakirina serîlêdanên karsaziyê yên pola pargîdanî hatî çêkirin. Asta gotarê ji bo xwendevanên neamade ye ku xwedan zanîna bingehîn a teknolojiyên IT-ê ne.

Hyperledger Fabric projeyek çavkaniyek vekirî ye, yek ji şaxên projeya çavkaniya vekirî Hyperledger, konsorsiyûmek Weqfa Linux. Hyperledger Fabric bi eslê xwe ji hêla Digital Assets û IBM ve hatî destpêkirin. Taybetmendiya sereke ya platforma Hyperledger Fabric baldariya wê li ser karanîna pargîdaniyê ye. Ji ber vê yekê, platform li gorî leza bilind a danûstendinan û lêçûna wan a kêm, û her weha nasnameya hemî beşdaran hate pêşve xistin. Van avantajên bi veqetandina karûbarê verastkirina danûstendinê û avakirina blokên nû yên qeyda belavkirî, û her weha karanîna navendek pejirandinê û destûrdayîna beşdaran têne bidestxistin.

Gotara min beşek ji rêze gotarên di derbarê Hyperledger Fabric de ye, ku tê de em projeyek pergalê ji bo tomarkirina xwendekarên ku dikevin zanîngehê vedibêjin.

Mîmariya Giştî ya Hyperledger Fabric

Hyperledger Fabric torgilokek blokek belavkirî ye ku ji pêkhateyên cihêreng ên fonksiyonel ên ku li ser girêkên torê têne saz kirin pêk tê. Parçeyên Hyperledger Fabric konteynerên Docker in ku dikarin belaş ji DockerHub werin dakêşandin. Hyperledger Fabric jî dikare di hawîrdorek Kubernetes de were xebitandin.

Me Golang bikar anî ji bo nivîsandina peymanên biaqil (zincîra kodê di çarçoweya Fabrîka Hyperledger de) (her çend Hyperledger Fabric destûrê dide karanîna zimanên din). Ji bo pêşdebirina serîlêdanek xwerû, di doza me de, me Node.js bi Hyperledger Fabric SDK-ya têkildar re bikar anî.

Nod mantiqa karsaziyê (peymana biaqil) - zincîra kodê dimeşînin, rewşa qeyda belavkirî (daneyên ledger) hilînin û karûbarên pergalê yên din ên platformê pêk tînin. Nodek tenê yekînek mentiqî ye; girêkên cûda dikarin li ser heman servera laşî hebin. Pir girîngtir ev e ku girêk çawa têne kom kirin (domîna pêbawer) û bi kîjan fonksiyonên tora blokê ve girêdayî ne.

Mîmariya giştî wiha xuya dike:

Fabric Hyperledger ji bo Dummies

Wêne 1. Mîmariya Giştî ya Fabric Hyperledger

Serlêdana bikarhêner (Submitting Client) serîlêdanek e ku bikarhêner bi tora blokê re dixebitin. Ji bo xebatê, divê hûn ji bo cûrbecûr çalakiyên li ser torê xwedî destûr bin û xwedî mafên guncan bin.

Peers di çend rolan de têne:

  • Pejirandina Peer nodek e ku pêkanîna danûstendinê simule dike (koda peymana biaqil pêk tîne). Piştî verastkirin û bicihanîna peymana biaqil, nod bi îmzeya xwe re encamên darvekirinê li serîlêdana xerîdar vedigerîne.
  • Karûbarê Ordering karûbarek belavkirî ye li ser gelek girêkan, ku ji bo afirandina blokên nû yên qeyda belavkirî û çêkirina rêzek ji bo pêkanîna danûstendinan tê bikar anîn. Karûbarê Siparîşê blokên nû li qeydê zêde nake (Ev taybetmendî ji bo baştirkirina performansê hate guheztin Committing Peers).
  • Committing Peer girêkek e ku qeydek belavkirî vedihewîne û blokên nû li qeydê zêde dike (yên ku ji hêla Karûbarê Orderkirinê ve hatine çêkirin). Hemî Hevalên Pêkhatî kopiyek herêmî ya pirtûka belavkirî vedihewîne. Pêkhatina Peer berî ku bloka nû li herêmî zêde bike hemî danûstendinên di hundurê blokê de ji bo derbasdarbûnê kontrol dike.

Polîtîkaya Pejirandinê sîyaseta kontrolkirina rastbûna danûstendinê ye. Van polîtîkayan komek girêkên hewce yên ku li ser wan peymana biaqil divê were darve kirin destnîşan dikin da ku danûstendin wekî derbasdar were nas kirin.

Tomara belavkirî - Lerger - ji du beşan pêk tê: WolrldState (ku jê re DataBase ya Dewletê jî tê gotin) û BlockChain.

BlockChain zincîrek blokan e ku tomarên hemî guhertinên ku di tiştên tomarkirî yên belavkirî de çêbûne hilîne.

WolrldState hêmanek danûstendinê ya belavkirî ye ku nirxên heyî (qiraxa birrîn) ya hemî tiştên danûstendinê yên belavkirî hilîne.

WorldState databasek e, di guhertoya bingehîn de - LevelDB an tevlihevtir - CouchDB, ku tê de cotên key-nirx hene, mînakî: Navê - Ivan, Paşnav - Ivanov, dîroka qeydkirinê di pergalê - 12.12.21/17.12.1961/XNUMX , roja jidayikbûnê - XNUMX/XNUMX/XNUMX, hwd. WorldState û qeyda belavkirî divê di nav hemî beşdarên kanalek diyarkirî de hevgirtî be.

Ji ber ku Hyperledger Fabric torgilokek e ku tê de hemî beşdar têne nas kirin û pejirandin, ew desthilatdariyek pejirandinê ya taybetî - CA (Desthilata Sertîfîkayê) bikar tîne. CA li ser bingeha standarda X.509 û binesaziya mifteya gelemperî - PKI dixebite.

Karûbarê Endamtî karûbarek e ku bi navgîniya endaman verast dikin ku tiştek ji rêxistinek an kanalek taybetî re ye.

Danûstandin - di pir rewşan de, nivîsandina daneyên nû li tomarek belavkirî ye.
Di heman demê de ji bo çêkirina kanalan an peymanên biaqil danûstendin jî hene. Danûstandin ji hêla serîlêdana bikarhêner ve tê destpêkirin û bi tomarek di pirtûka belavkirî de bi dawî dibe.

Kanal jêrtorek girtî ye ku ji du an zêdetir beşdarên torê yên blokê pêk tê, ku ji bo pêkanîna danûstendinên nepenî di nav xeleka beşdaran a bi sînor de lê naskirî de pêk tê. Kanal ji hêla beşdaran ve, qeydkirina wê ya belavkirî, peymanên biaqil, Karûbarê Orderkirinê, Dewleta Cîhanê ve tê destnîşankirin. Divê her beşdarê kanalê xwedî destûr be ku bigihîje kanalê û xwedî maf be ku cûreyên danûstandinan pêk bîne. Destûrname bi karanîna Karûbarê Endamtiyê tête kirin.

Senaryoya pêkanîna danûstandinê ya tîpîk

Dûv re, ez dixwazim li ser senaryoyek darvekirina danûstendinê ya tîpîk bi karanîna projeya me wekî mînak biaxivim.

Wekî beşek ji projeya xweya navxweyî, me tora Hyperledger Fabric çêkir, ku ji bo qeydkirin û hesabkirina xwendekarên ku dikevin zanîngehan hatî çêkirin. Tora me ji du rêxistinên girêdayî Zanîngeha A û Zanîngeha B pêk tê. Her rêxistin serîlêdanek xerîdar, û her weha Pevgirêdana xwe û Piştgiriya xwe jî dihewîne. Em di heman demê de karûbarên hevpar Karûbarê Order, Karûbarê Endamtiyê û Desthilatdariya Sertîfîkayê bikar tînin.

1) Destpêkirina Danûstendinê

Serlêdanek bikarhêner, ku Hyperledger Fabric SDK bikar tîne, daxwazek danûstendinê dide destpêkirin û daxwazê ​​ji girêkên bi peymanên jîr re dişîne. Daxwaz dikare ji tomarek belavkirî (Ledger) biguhezîne an bixwîne. Ger em mînakek veavakirina pergala testa xwe ya ji bo hesabkirina xwendekarên zanîngehê bihesibînin, serîlêdana xerîdar daxwazek danûstendinê ji girêkên zanîngehên A û B re, ku di polîtîkaya Piştgiriyê ya peymana biaqil a bi navê de tête nav kirin, dişîne. Node A girêkek e ku li zanîngehê ye ku xwendekarê hatî tomar dike, û girê B girêkek e ku li zanîngehek din heye. Ji bo ku danûstendinek li qeydek belavkirî were hilanîn, pêdivî ye ku hemî girêkên ku, li gorî mantiqa karsaziyê, danûstendinê pesend bikin, bi heman encamê re bi serfirazî peymanên biaqil pêk bînin. Node Serîlêdana bikarhênerek, bi karanîna amûrên Hyperledger Fabric SDK, polîtîkaya Piştgiriyê distîne û fêr dibe ku ji kîjan girêkan re daxwaznameyek danûstendinê bişîne. Ev daxwazek e ku meriv peymanek jîr a taybetî (fonksiyona koda zincîrê) bixwîne da ku hin daneyan li qeydek belavkirî bixwîne an binivîsîne. Ji hêla teknîkî ve, SDK-ya xerîdar fonksiyona têkildar bikar tîne, API-ya ku ji hêmanek diyarkirî bi parametreyên danûstendinê re derbas dibe, û her weha îmzeyek xerîdar lê zêde dike û vê daneyê bi navgîniya tampon protokolê li ser gRPC dişîne girêkên guncan (hevalên pejirandî).

Fabric Hyperledger ji bo Dummies
Wêne 2. Destpêkirina Danûstendinê

2) Pêkanîna peymana jîr

Nodes (Pêşgiriya Hevalan), piştî ku daxwazek ji bo pêkanîna danûstendinê wergirtine, îmzeya xerîdar kontrol bikin û ger her tişt di rê de be, ew bi daneya daxwazê ​​re tiştekê digirin û simulasyonek pêkanîna peymanek jîr (fonksiyona koda zincîrê) dimeşînin. ev dane. Peymana biaqil mantiqa karsaziya danûstendinê ye, komek şert û rêwerzan e (di rewşa me de, ev verastkirina xwendekarek e, gelo ev xwendekarek nû ye, an ew jixwe qeydkirî ye, verastkirina temen, hwd.). Ji bo pêkanîna peymana hişmend, hûn ê hewceyê daneyên WorldState jî bibin. Di encama simulasyona peymanek biaqil li ser peer Endorsing, du komên daneyan têne bidestxistin - Read Set û Write Set. Read Set and Write Set nirxên orîjînal û nû yên WorldState ne. (nû - di wateya ku di dema simulasyona peymanek jîr de hatî bidestxistin).

Fabric Hyperledger ji bo Dummies
Wêne 3. Pêkanîna peymanek jîr

3) Vegerandina daneyan li serîlêdana xerîdar

Piştî pêkanîna simulasyonek peymana biaqil, Endorsing Peers daneyên orîjînal û encama simulasyonê, û her weha RW Set, ku bi sertîfîkaya xwe ve hatî îmzekirin, vedigerîne serîlêdana xerîdar. Di vê qonaxê de, di qeyda belavkirî de ti guhertin çênabin. Serlêdana xerîdar îmzeya Endorsing Peer kontrol dike, û di heman demê de daneyên danûstendinê yên orîjînal ên ku hatine şandin û daneyên ku hatine vegerandin jî dide ber hev (ango, ew kontrol dike ka daneyên orîjînal ên ku danûstendin li ser hatine simulkirin hatine xera kirin). Ger danûstendin tenê ji bo xwendina daneya ji qeydê bû, wê hingê serîlêdana xerîdar li gorî vê yekê Pêveka Xwendinê ya pêwîst distîne û ev bi gelemperî danûstendinê bi serfirazî bêyî guheztina tomara belavkirî temam dike. Di bûyera danûstendinek ku divê daneyên di qeydê de biguhezîne, serîlêdana xerîdar jî pêkanîna polîtîkaya Piştgiriyê kontrol dike. Mimkun e ku serîlêdanek xerîdar encama cîbicîkirina Siyaseta Piştgiriyê kontrol neke, lê platforma Hyperledger Fabric di vê rewşê de di qonaxa lêzêdekirina danûstendinek li qeydê de polîtîkayên li ser girêkan (Pêşkêşkirina Peers) kontrol dike.

Fabric Hyperledger ji bo Dummies
Wêne 4. Vegerandina daneyan ji bo serîlêdana muwekîlê

4) Sazkirina RW ji Ordering Peers re şandin

Serlêdana xerîdar danûstendinê digel daneyên pêvekirî ji karûbarê Orderkirinê re dişîne. Di nav vê de RW Set, Piştgiriya îmzeyên hevalan, û Nasnameya Kanalê jî heye.

Karûbarê fermankirinê - li ser bingeha navê, fonksiyona sereke ya vê karûbarê ev e ku danûstendinên hatinê bi rêza rast saz bike. Di heman demê de avakirina blokek nû ya tomara belavkirî û gihandina garantîkirî ya blokên nû yên hilberandî ji hemî girêkên Peywirdar re, bi vî rengî lihevhatina daneyê li ser hemî girêkên ku qeyda belavkirî vedihewîne (Pêkdana peer) misoger dike. Di heman demê de, karûbarê Ordering bixwe qeydê bi tu awayî naguhezîne. Karûbarê Orderkirin pêkhateyek girîng a pergalê ye, ji ber vê yekê ew komek ji çend nokan e. Karûbarê Orderê danûstendinê ji bo derbasdarbûnê kontrol nake, ew bi tenê danûstendinek bi nasnameyek kanalek diyar qebûl dike, danûstendinên gihîştî bi rêzek diyarkirî saz dike û ji wan blokên nû yên qeyda belavkirî ava dike. Karûbarê Yek Ordering dikare çend kanalan bi hevdemî re xizmet bike. Karûbarê Orderkirinê komek Kafka vedihewîne, ku rêza danûstendinê ya rast (neguhêrbar) diparêze (binihêre Xala 7).

Fabric Hyperledger ji bo Dummies
Wêne 5. Setên RW ji Ordering Peers re şandin

5) Şandina blokên çêkirî ji Committing Peer re

Blokên ku di Karûbarê Orderkirinê de têne çêkirin ji hemî girêkên torê re têne şandin (weşan). Her girêk, ku blokek nû stendiye, wê ji bo pabendbûna bi Siyaseta Piştgiriyê kontrol dike, kontrol dike ku hemî Peersên Piştgiran di encama simulasyona peymana biaqil de heman encam (Set Binivîsin) wergirtine, û her weha kontrol dike ka gelo nirxên orîjînal hene. guherî (ango, Read Set - daneya ku ji hêla peymana jîr ji WorldState ve hatî xwendin) ji gava ku danûstendin hate destpêkirin. Ger hemî şert bêne bicîh kirin, danûstandin wekî derbasdar tê nîşankirin, wekî din, danûstendin statûya nederbasdar distîne.

Fabric Hyperledger ji bo Dummies
Wêne 6. Şandina blokên çêkirî ji Committing Peer re

6) Zêdekirina blokek li qeydê

Her girêk danûstendinekê li kopiya xweya herêmî ya qeyda belavkirî zêde dike, û ger danûstendin derbasdar be, wê hingê Komela Nivîsandinê li ser Dewleta Cîhanê (dewleta heyî) tê sepandin, û li gorî vê yekê, nirxên nû yên tiştên ku ji hêla danûstandin têne nivîsandin. Ger danûstendinek nîşanek nederbasdar werbigire (mînak, du danûstandin bi heman tiştan re di heman blokê de çêbûne, wê hingê yek ji danûstendinan dê nederbasdar be, ji ber ku nirxên eslî berê ji hêla yekî din ve hatine guhertin. şandindayinî). Ev danûstendin di heman demê de bi nîşanek nederbasdar li deftera belavkirî tê zêdekirin, lê Set Nivîsandina vê danûstendinê li ser Dewleta Cîhanê ya heyî nayê sepandin û, li gorî vê yekê, tiştên ku beşdarî danûstendinê dibin naguhezîne. Piştî vê yekê, agahdariyek ji serîlêdana bikarhêner re tê şandin ku danûstendin bi domdarî li qeyda belavkirî hatî zêdekirin, her weha rewşa danûstendinê, ango derbasdar e an na ...

Fabric Hyperledger ji bo Dummies
Wêne 7. Zêdekirina blokekê li qeydê

ORDERING Xizmeta

Karûbarê Orderkirinê ji komek Kafka bi girêkên ZooKeeper û Nodên Karûbarê Orderkirinê (OSN) yên têkildar, ku di navbera xerîdarên karûbarê Orderkirinê û Koma Kafka de radiwestin, pêk tê. Cluster Kafka platformek birêvebiriya herikîna (peyamê) ya belavbûyî ye, ku li hember xeletiyan tolerans e. Di Kafka de her kanal (mijarek) rêzek tomarên neguhêrbar e ku tenê piştgirî dide tomarek nû (hilweşîna yeka heyî ne gengaz e). Nîşanek avahiya mijarê li jêr tê nîşandan. Ev milkê Kafka ye ku ji bo avakirina platformek blokek tê bikar anîn.

Fabric Hyperledger ji bo Dummies
ji kafka.apache.org hatiye girtin

  • Wêne 8. Struktura Mijara Xizmeta Siparîşkirinê*

Girêdanên kêrhatî

Youtube - Bi Projeya Hyperledger re blokek ji bo karsaziyê ava dikin
Hyperledger Fabric Docs
Qumaşê Hyperledger: pergalek xebitandinê ya belavkirî ji bo zincîrên blokê yên destûrdar

Spasdarî

Ez dixwazim spasiyên xwe yên kûr ji hevkarên xwe re ji bo alîkariya wan di amadekirina vê gotarê de diyar bikim:
Nikolay Marin
Igor Khapov
Dmitriy Gorbachev
Alexander Zemtsov
Ekaterina Guseva

Source: www.habr.com

Add a comment