Ffabrig Hyperledger ar gyfer Dymis

Llwyfan Blockchain ar gyfer y Fenter

Ffabrig Hyperledger ar gyfer Dymis

Prynhawn da, darllenwyr annwyl, fy enw i yw Nikolay Nefedov, rwy'n arbenigwr technegol yn IBM, yn yr erthygl hon hoffwn eich cyflwyno i'r platfform blockchain - Hyperledger Fabric. Mae'r platfform wedi'i gynllunio ar gyfer adeiladu cymwysiadau busnes dosbarth menter. Mae lefel yr erthygl ar gyfer darllenwyr heb eu paratoi sydd â gwybodaeth sylfaenol am dechnolegau TG.

Mae Hyperledger Fabric yn brosiect ffynhonnell agored, un o ganghennau'r prosiect ffynhonnell agored Hyperledger, consortiwm o'r Linux Foundation. Dechreuwyd Hyperledger Fabric yn wreiddiol gan Digital Assets ac IBM. Prif nodwedd y llwyfan Hyperledger Fabric yw ei ffocws ar ddefnydd menter. Felly, datblygwyd y platfform gan ystyried cyflymder uchel y trafodion a'u cost isel, yn ogystal â nodi'r holl gyfranogwyr. Cyflawnir y manteision hyn trwy wahanu'r gwasanaeth gwirio trafodion a ffurfio blociau newydd o'r gofrestr ddosbarthedig, yn ogystal â defnyddio canolfan ardystio ac awdurdodi cyfranogwyr.

Mae fy erthygl yn rhan o gyfres o erthyglau am Hyperledger Fabric, lle rydym yn disgrifio prosiect system ar gyfer cofnodi myfyrwyr sy'n mynd i brifysgol.

Pensaernïaeth gyffredinol o Hyperledger Fabric

Rhwydwaith blockchain dosbarthedig yw Hyperledger Fabric sy'n cynnwys gwahanol gydrannau swyddogaethol sy'n cael eu gosod ar nodau rhwydwaith. Mae cydrannau ffabrig Hyperledger yn gynwysyddion Docker y gellir eu lawrlwytho'n rhydd o DockerHub. Gellir rhedeg Hyperledger Fabric hefyd mewn amgylchedd Kubernetes.

I ysgrifennu contractau smart (cod cadwyn yng nghyd-destun Hyperledger Fabric), gwnaethom ddefnyddio Golang (er bod Hyperledger Fabric yn caniatáu defnyddio ieithoedd eraill). I ddatblygu cymhwysiad arferol, yn ein hachos ni, fe wnaethom ddefnyddio Node.js gyda'r Hyperledger Fabric SDK cyfatebol.

Mae'r nodau'n gweithredu rhesymeg busnes (contract smart) - cod cadwyn, storio cyflwr y gofrestrfa ddosbarthedig (data cyfriflyfr) a gweithredu gwasanaethau system eraill y platfform. Uned resymegol yn unig yw nod; gall nodau gwahanol fodoli ar yr un gweinydd ffisegol. Yn bwysicach o lawer yw sut mae'r nodau'n cael eu grwpio (parth dibynadwy) a pha swyddogaethau'r rhwydwaith blockchain y maent yn gysylltiedig â nhw.

Mae'r bensaernïaeth gyffredinol yn edrych fel hyn:

Ffabrig Hyperledger ar gyfer Dymis

Llun 1. Pensaernïaeth Gyffredinol Ffabrig Hyperledger

Mae cymhwysiad defnyddiwr (Cyflwyno Cleient) yn gymhwysiad y mae defnyddwyr yn gweithio gydag ef gyda'r rhwydwaith blockchain. I weithio, rhaid i chi gael eich awdurdodi a bod â'r hawliau priodol ar gyfer gwahanol fathau o gamau gweithredu ar y rhwydwaith.

Daw cyfoedion mewn sawl rôl:

  • Mae Cymeradwyo Peer yn nod sy'n efelychu cyflawni trafodiad (yn gweithredu'r cod contract smart). Ar ôl dilysu a gweithredu'r contract smart, mae'r nod yn dychwelyd y canlyniadau gweithredu i'r cais cleient ynghyd â'i lofnod.
  • Mae Gwasanaeth Archebu yn wasanaeth dosbarthedig ar sawl nod, a ddefnyddir i gynhyrchu blociau newydd o'r gofrestr ddosbarthedig a chreu ciw ar gyfer cyflawni trafodion. Nid yw'r Gwasanaeth Archebu yn ychwanegu blociau newydd i'r gofrestr (Mae'r nodwedd hon wedi'i symud i Comitting Peers i wella perfformiad).
  • Mae Comitting Peer yn nod sy'n cynnwys cofrestrfa ddosbarthedig ac sy'n ychwanegu blociau newydd i'r gofrestrfa (a gynhyrchwyd gan y Gwasanaeth Archebu). Mae pob Arglwydd sy'n Ymrwymo yn cynnwys copi lleol o'r cyfriflyfr a ddosbarthwyd. Mae Comisiynu Cymheiriaid yn gwirio'r holl drafodion o fewn y bloc am ddilysrwydd cyn ychwanegu bloc newydd yn lleol.

Polisi Ardystio yw'r polisi ar gyfer gwirio dilysrwydd trafodiad. Mae'r polisïau hyn yn diffinio'r set ofynnol o nodau y mae'n rhaid gweithredu'r contract smart arnynt er mwyn i'r trafodiad gael ei gydnabod fel un dilys.

Mae'r gofrestrfa ddosbarthedig - Lerger - yn cynnwys dwy ran: WolrldState (a elwir hefyd yn State Database) a BlockChain.

Mae BlockChain yn gadwyn o flociau sy'n storio cofnodion o'r holl newidiadau sydd wedi digwydd i wrthrychau cofrestrfa dosbarthedig.

Mae WolrldState yn gydran cyfriflyfr dosbarthedig sy'n storio gwerthoedd cyfredol (ar flaen y gad) yr holl wrthrychau cyfriflyfr dosbarthedig.

Mae WorldState yn gronfa ddata, yn y fersiwn sylfaenol - LevelDB neu un mwy cymhleth - CouchDB, sy'n cynnwys parau gwerth allweddol, er enghraifft: Enw cyntaf - Ivan, Enw olaf - Ivanov, dyddiad cofrestru yn y system - 12.12.21/17.12.1961/XNUMX , dyddiad geni - XNUMX/XNUMX/XNUMX, etc. Rhaid i WorldState a'r gofrestrfa ddosbarthedig fod yn gyson ymhlith yr holl gyfranogwyr mewn sianel benodol.

Gan fod Hyperledger Fabric yn rhwydwaith lle mae'r holl gyfranogwyr yn hysbys ac wedi'u dilysu, mae'n defnyddio awdurdod ardystio pwrpasol - CA (Awdurdod Ardystio). Mae CA yn gweithredu yn seiliedig ar y safon X.509 a seilwaith allweddol cyhoeddus - PKI.

Mae Gwasanaeth Aelodaeth yn wasanaeth lle mae aelodau'n gwirio bod gwrthrych yn perthyn i sefydliad neu sianel benodol.

Trafodiad - yn y rhan fwyaf o achosion, yw ysgrifennu data newydd i gofrestrfa ddosbarthedig.
Mae yna hefyd drafodion ar gyfer creu sianeli neu gontractau smart. Mae'r trafodiad yn cael ei gychwyn gan raglen y defnyddiwr ac yn gorffen gyda chofnod yn y cyfriflyfr dosbarthedig.

Mae Sianel yn is-rwydwaith caeedig sy'n cynnwys dau neu fwy o gyfranogwyr rhwydwaith blockchain, a gynlluniwyd i gynnal trafodion cyfrinachol o fewn cylch cyfyngedig ond hysbys o gyfranogwyr. Mae'r sianel yn cael ei bennu gan y cyfranogwyr, ei gofrestrfa ddosbarthedig, contractau smart, Gwasanaeth Archebu, WorldState. Rhaid i bob cyfranogwr sianel gael ei awdurdodi i gael mynediad i'r sianel a bod â'r hawl i gyflawni gwahanol fathau o drafodion. Perfformir awdurdodiad gan ddefnyddio'r Gwasanaeth Aelodaeth.

Senario cyflawni trafodion nodweddiadol

Nesaf, hoffwn siarad am senario gweithredu trafodion nodweddiadol gan ddefnyddio ein prosiect fel enghraifft.

Fel rhan o'n prosiect mewnol, fe wnaethom greu rhwydwaith Hyperledger Fabric, sydd wedi'i gynllunio i gofrestru a rhoi cyfrif am fyfyrwyr sy'n mynd i brifysgolion. Mae ein rhwydwaith yn cynnwys dau sefydliad sy'n perthyn i Brifysgol A a Phrifysgol B. Mae pob sefydliad yn cynnwys cais cleient, yn ogystal â'i Gymheiriaid Ymrwymo a Chymeradwyo ei hun. Rydym hefyd yn defnyddio'r Gwasanaeth Archebu gwasanaethau cyffredin, y Gwasanaeth Aelodaeth a'r Awdurdod Ardystio.

1) Cychwyn Trafodiad

Mae cymhwysiad defnyddiwr, gan ddefnyddio'r Hyperledger Fabric SDK, yn cychwyn cais trafodiad ac yn anfon y cais i nodau gyda chontractau smart. Gall y cais fod i newid neu ddarllen o gofrestrfa ddosbarthedig (Ledger). Os byddwn yn ystyried enghraifft o'n cyfluniad system brawf ar gyfer cyfrifo myfyrwyr prifysgol, mae'r cais cleient yn anfon cais trafodiad i nodau prifysgolion A a B, sydd wedi'u cynnwys ym mholisi Cymeradwyo'r contract smart a elwir. Nod A yw nod sydd wedi'i leoli yn y brifysgol sy'n cofrestru'r myfyriwr sy'n dod i mewn, ac mae nod B yn nod sydd wedi'i leoli mewn prifysgol arall. Er mwyn i drafodiad gael ei gadw i gofrestrfa ddosbarthedig, mae'n angenrheidiol bod pob nod y mae'n rhaid iddo, yn ôl rhesymeg busnes, gymeradwyo'r trafodiad, yn gweithredu contractau smart yn llwyddiannus gyda'r un canlyniad. Y nod Mae cais defnyddiwr, gan ddefnyddio offer Hyperledger Fabric SDK, yn cael y polisi Ardystio ac yn dysgu pa nodau i anfon cais trafodiad atynt. Mae hwn yn gais i ddefnyddio contract smart penodol (swyddogaeth cod cadwyn) i ddarllen neu ysgrifennu data penodol i gofrestrfa ddosbarthedig. Yn dechnegol, mae'r cleient SDK yn defnyddio'r swyddogaeth gyfatebol, y mae'r API ohono yn cael ei basio gwrthrych penodol gyda pharamedrau trafodion, a hefyd yn ychwanegu llofnod cleient ac yn anfon y data hwn trwy byffer protocol dros gRPC i'r nodau priodol (cymeradwyo cyfoedion).

Ffabrig Hyperledger ar gyfer Dymis
Llun 2. Cychwyn Trafodiad

2) Cyflawni contract smart

Nodau (Cymeradwyo Cyfoedion), ar ôl derbyn cais i gynnal trafodiad, gwirio llofnod y cleient ac os yw popeth mewn trefn, maen nhw'n cymryd gwrthrych gyda data'r cais ac yn rhedeg efelychiad o gyflawni contract smart (swyddogaeth cod cadwyn) gyda y data hwn. Contract smart yw rhesymeg busnes trafodiad, set benodol o amodau a chyfarwyddiadau (yn ein hachos ni, mae hyn yn ddilysu myfyriwr, a yw hwn yn fyfyriwr newydd, neu a yw eisoes wedi'i gofrestru, dilysu oedran, ac ati). I weithredu'r contract smart, bydd angen data gan WorldState arnoch hefyd. O ganlyniad i efelychu contract smart ar y cymar Cymeradwyo, ceir dwy set o ddata - Read Set ac Write Set. Darllen Gosod ac Ysgrifennu Set yw'r gwerthoedd WorldState gwreiddiol a newydd. (newydd - yn yr ystyr a gafwyd wrth efelychu contract smart).

Ffabrig Hyperledger ar gyfer Dymis
Llun 3. Cyflawni contract smart

3) Dychwelyd data i'r cais cleient

Ar ôl cynnal efelychiad o'r contract smart, mae Cymeradwyo Peers yn dychwelyd y data gwreiddiol a chanlyniad yr efelychiad, yn ogystal â'r Set RW, wedi'i lofnodi gan eu tystysgrif i'r cais cleient. Ar hyn o bryd, nid oes unrhyw newidiadau yn digwydd yn y gofrestrfa ddosbarthedig. Mae'r cais cleient yn gwirio'r llofnod Cymheiriaid Cymeradwyo, ac mae hefyd yn cymharu'r data trafodion gwreiddiol a anfonwyd a'r data a ddychwelwyd (hynny yw, mae'n gwirio a yw'r data gwreiddiol yr efelychwyd y trafodiad arno wedi'i ystumio). Pe bai'r trafodiad ar gyfer darllen data o'r gofrestrfa yn unig, yna mae'r cais cleient yn unol â hynny yn derbyn y Set Darllen angenrheidiol ac mae hyn fel arfer yn cwblhau'r trafodiad yn llwyddiannus heb newid y gofrestrfa ddosbarthedig. Yn achos trafodiad y mae'n rhaid iddo newid data yn y gofrestrfa, mae'r cais cleient hefyd yn gwirio gweithrediad y polisi Cymeradwyo. Mae'n bosibl nad yw cais cleient yn gwirio canlyniad gweithredu'r Polisi Cymeradwyo, ond mae'r platfform Hyperledger Fabric yn yr achos hwn yn darparu ar gyfer gwirio polisïau ar nodau (Trwymo Cyfoedion) ar y cam o ychwanegu trafodiad i'r gofrestrfa.

Ffabrig Hyperledger ar gyfer Dymis
Llun 4. Dychwelyd data i'r cais cleient

4) Anfon setiau RW at Archebu Arglwyddi

Mae'r cais cleient yn anfon y trafodiad ynghyd â data cysylltiedig i'r gwasanaeth Archebu. Mae hyn yn cynnwys y Set RW, Cymeradwyo llofnodion cymheiriaid, ac ID y Sianel.

Gwasanaeth archebu - yn seiliedig ar yr enw, prif swyddogaeth y gwasanaeth hwn yw trefnu trafodion sy'n dod i mewn yn y drefn gywir. Yn ogystal â ffurfio bloc newydd o'r gofrestr ddosbarthedig a gwarant o ddosbarthu blociau newydd a gynhyrchir i'r holl nodau Ymrwymo, gan sicrhau cysondeb data ar bob nod sy'n cynnwys y gofrestrfa ddosbarthedig (Cymheiriaid). Ar yr un pryd, nid yw'r gwasanaeth Archebu ei hun yn newid y gofrestrfa mewn unrhyw ffordd. Mae Gwasanaeth Archebu yn elfen hanfodol o'r system, felly mae'n glwstwr o sawl nod. Nid yw'r Gwasanaeth Archebu yn gwirio'r trafodiad am ddilysrwydd, yn syml mae'n derbyn trafodiad gyda dynodwr sianel benodol, yn trefnu trafodion sy'n dod i mewn mewn trefn benodol ac yn ffurfio blociau newydd o'r gofrestrfa ddosbarthedig oddi wrthynt. Gall un Gwasanaeth Archebu wasanaethu sawl sianel ar yr un pryd. Mae'r Gwasanaeth Archebu yn cynnwys clwstwr Kafka, sy'n cynnal y ciw trafodion cywir (digyfnewid) (gweler Pwynt 7).

Ffabrig Hyperledger ar gyfer Dymis
Llun 5. Anfon setiau RW at Archebu Arglwyddi

5) Anfon blociau a gynhyrchir at Cymheiriaid Ymrwymo

Mae blociau a gynhyrchir yn y Gwasanaeth Archebu yn cael eu trosglwyddo (darlledu) i bob nod rhwydwaith. Mae pob nod, ar ôl derbyn bloc newydd, yn ei wirio i weld a yw'n cydymffurfio â'r Polisi Cymeradwyo, yn gwirio bod yr holl Arglwyddi Cymeradwy wedi derbyn yr un canlyniad (Write Set) o ganlyniad i'r efelychiad contract smart, a hefyd yn gwirio a yw'r gwerthoedd gwreiddiol wedi wedi newid (hynny yw, Read Set - data a ddarllenwyd gan y contract smart o WorldState) o'r eiliad y cychwynnwyd y trafodiad. Os bodlonir yr holl amodau, mae'r trafodiad wedi'i farcio'n ddilys, fel arall, mae'r trafodiad yn derbyn y statws annilys.

Ffabrig Hyperledger ar gyfer Dymis
Llun 6. Anfon blociau a gynhyrchir i Gyfoedion Ymrwymo

6) Ychwanegu bloc i'r gofrestrfa

Mae pob nod yn ychwanegu trafodiad at ei gopi lleol o'r gofrestrfa ddosbarthedig, ac os yw'r trafodiad yn ddilys, yna mae'r Set Ysgrifennu yn cael ei gymhwyso i'r WorldState (cyflwr presennol), ac yn unol â hynny, gwerthoedd newydd y gwrthrychau yr effeithiwyd arnynt gan y trafodiad yn cael eu hysgrifennu. Os yw trafodiad yn derbyn tocyn nad yw'n ddilys (er enghraifft, digwyddodd dau drafodiad gyda'r un gwrthrychau o fewn yr un bloc, yna bydd un o'r trafodion yn annilys, gan fod y gwerthoedd gwreiddiol eisoes wedi'u newid gan un arall trafodiad). Mae'r trafodiad hwn hefyd yn cael ei ychwanegu at y cyfriflyfr dosbarthedig gyda thocyn annilys, ond nid yw Set Ysgrifennu'r trafodiad hwn yn cael ei gymhwyso i'r WorldState cyfredol ac, yn unol â hynny, nid yw'n newid y gwrthrychau sy'n cymryd rhan yn y trafodiad. Ar ôl hyn, anfonir hysbysiad at y cais defnyddiwr bod y trafodiad wedi'i ychwanegu'n barhaol at y gofrestrfa ddosbarthedig, yn ogystal â statws y trafodiad, hynny yw, a yw'n ddilys ai peidio ...

Ffabrig Hyperledger ar gyfer Dymis
Llun 7. Ychwanegu bloc i'r gofrestrfa

GWASANAETH ARCHEBU

Mae'r Gwasanaeth Archebu yn cynnwys clwstwr Kafka gyda nodau ZooKeeper cyfatebol a Nodau Gwasanaeth Archebu (OSN), sy'n sefyll rhwng cleientiaid y gwasanaeth Archebu a Chlwstwr Kafka. Mae clwstwr Kafka yn blatfform rheoli llif (neges) gwasgaredig sy'n goddef diffygion. Mae pob sianel (pwnc) yn Kafka yn gyfres ddigyfnewid o gofnodion sy'n cefnogi ychwanegu cofnod newydd yn unig (nid yw'n bosibl dileu un sy'n bodoli eisoes). Mae darluniad o strwythur y testun i'w weld isod. Yr eiddo hwn o Kafka a ddefnyddir i adeiladu llwyfan blockchain.

Ffabrig Hyperledger ar gyfer Dymis
cymryd o kafka.apache.org

  • Llun 8. Strwythur Testun Gwasanaeth Archebu*

Dolenni defnyddiol

Youtube - Adeiladu blockchain ar gyfer busnes gyda'r Prosiect Hyperledger
Dogfennau Ffabrig Hyperledger
Ffabrig hyperledger: system weithredu ddosbarthedig ar gyfer cadwyni bloc a ganiateir

Cydnabyddiaethau

Hoffwn fynegi fy niolch mawr i’m cydweithwyr am eu cymorth wrth baratoi’r erthygl hon:
Nikolay Marin
Igor Khapov
Dmitry Gorbachev
Alexander Zemtsov
Ekaterina Guseva

Ffynhonnell: hab.com

Ychwanegu sylw