Hyperledger Fabric барои Dummies

Платформаи Blockchain барои корхона

Hyperledger Fabric барои Dummies

Нимаи хуб, хонандагони азиз, номи ман Николай Нефедов аст, ман мутахассиси техникии IBM ҳастам, дар ин мақола ман мехоҳам шуморо бо платформаи blockchain - Hyperledger Fabric шинос кунам. Платформа барои сохтани барномаҳои тиҷоратии дараҷаи корхона пешбинӣ шудааст. Сатҳи мақола барои хонандагони омоданашуда, ки дониши ибтидоии технологияҳои IT доранд.

Hyperledger Fabric як лоиҳаи кушодаасос, яке аз шохаҳои лоиҳаи кушодаи Hyperledger, консорсиуми Фонди Linux мебошад. Hyperledger Fabric дар ибтидо аз ҷониби Digital Assets ва IBM оғоз шудааст. Хусусияти асосии платформаи Hyperledger Fabric тамаркузи он ба истифодаи корхона мебошад. Аз ин рӯ, платформа бо назардошти суръати баланди транзаксияҳо ва арзиши пасти онҳо, инчунин муайян кардани ҳамаи иштирокчиён таҳия шудааст. Ин бартариҳо тавассути ҷудо кардани хадамоти санҷиши транзаксия ва ташаккули блокҳои нави реестри тақсимшуда, инчунин истифодаи маркази сертификатсия ва иҷозати иштирокчиён ба даст оварда мешаванд.

Мақолаи ман як қисми як қатор мақолаҳо дар бораи Hyperledger Fabric мебошад, ки дар доираи он мо лоиҳаи системаро барои сабти донишҷӯёни дохилшавӣ ба донишгоҳ тавсиф мекунем.

Меъмории умумии Hyperledger Fabric

Hyperledger Fabric як шабакаи тақсимшудаи blockchain мебошад, ки аз ҷузъҳои гуногуни функсионалӣ, ки дар гиреҳҳои шабака насб шудаанд, иборат аст. Ҷузъҳои Hyperledger Fabric контейнерҳои Docker мебошанд, ки онҳоро аз DockerHub ройгон зеркашӣ кардан мумкин аст. Hyperledger Fabric инчунин метавонад дар муҳити Kubernetes кор кунад.

Барои навиштани шартномаҳои интеллектуалӣ (код дар заминаи Hyperledger Fabric), мо Голангро истифода бурдем (гарчанде ки Hyperledger Fabric истифодаи забонҳои дигарро иҷозат медиҳад). Барои таҳияи барномаи фармоишӣ, дар ҳолати мо, мо Node.js-ро бо Hyperledger Fabric SDK мувофиқ истифода мебарем.

Гиреҳҳо мантиқи тиҷорӣ (шартномаи интеллектуалӣ) - занҷирро иҷро мекунанд, ҳолати реестри тақсимшударо нигоҳ медоранд (маълумоти китоб) ва дигар хидматҳои системаи платформаро иҷро мекунанд. Гиреҳ танҳо як воҳиди мантиқӣ аст; гиреҳҳои гуногун метавонанд дар як сервери физикӣ мавҷуд бошанд. Муҳимтар аз он аст, ки гиреҳҳо чӣ гуна гурӯҳбандӣ шудаанд (домени боэътимод) ва бо кадом вазифаҳои шабакаи blockchain алоқаманданд.

Меъмории умумӣ чунин менамояд:

Hyperledger Fabric барои Dummies

Расми 1. Архитектураи умумии Hyperledger Fabric

Замимаи корбар (Submitting Client) барномаест, ки корбарон бо он бо шабакаи blockchain кор мекунанд. Барои кор кардан, шумо бояд ваколатдор бошед ва барои намудҳои гуногуни амалҳо дар шабака ҳуқуқҳои мувофиқ дошта бошед.

Ҳамсолон дар якчанд нақшҳо меоянд:

  • Endorsing Peer гиреҳест, ки иҷрои транзаксияро тақлид мекунад (рамзи шартномаи интеллектуалиро иҷро мекунад). Пас аз тафтиш ва иҷрои шартномаи интеллектуалӣ, гиреҳ натиҷаҳои иҷроро бо имзои худ ба барномаи муштарӣ бармегардонад.
  • Хидмати фармоишӣ як хидмати тақсимшуда дар якчанд гиреҳҳо мебошад, ки барои тавлиди блокҳои нави реестри тақсимшуда ва эҷоди навбат барои иҷрои транзаксияҳо истифода мешавад. Хидмати фармоишӣ блокҳои навро ба феҳрист илова намекунад (Ин хусусият барои беҳтар кардани кор ба "Committing Pers" интиқол дода шудааст).
  • Comitting Peer гиреҳест, ки дорои феҳристи тақсимшуда буда, блокҳои навро ба реестр илова мекунад (онҳоро Хадамоти фармоишӣ тавлид кардааст). Ҳама ҳамсолони содиршуда дорои нусхаи маҳаллии китоби тақсимшуда мебошанд. Committing Peer ҳама транзаксияҳоро дар дохили блок пеш аз илова кардани блоки нав ба таври маҳаллӣ тафтиш мекунад.

Сиёсати тасдиқ ин сиёсатест барои тафтиши дурустии транзаксия. Ин сиёсат маҷмӯи зарурии гиреҳҳоро муайян мекунад, ки дар онҳо шартномаи интеллектуалӣ бояд иҷро карда шавад, то транзаксия эътиборнок эътироф карда шавад.

Феҳристи тақсимшуда - Lerger - аз ду қисм иборат аст: WolrldState (инчунин номи давлатии DataBase) ва BlockChain.

BlockChain як занҷири блокҳост, ки сабти ҳама тағиротҳоро дар объектҳои реестри тақсимшуда нигоҳ медорад.

WolrldState як ҷузъи китоби тақсимшуда мебошад, ки арзишҳои ҷории (камтарин) ҳама объектҳои китоби тақсимшударо нигоҳ медорад.

WorldState як пойгоҳи додаҳост, дар версияи асосӣ - LevelDB ё як мураккабтар - CouchDB, ки дорои ҷуфтҳои калидӣ-арзиш аст, масалан: Номи аввал - Иван, Насаб - Иванов, санаи бақайдгирӣ дар система - 12.12.21/17.12.1961/XNUMX , санаи таваллуд - XNUMX ва ғайра. WorldState ва феҳристи тақсимшуда бояд дар байни ҳамаи иштирокчиёни канали додашуда мувофиқ бошанд.

Азбаски Hyperledger Fabric шабакаест, ки дар он ҳамаи иштирокчиён маълум ва тасдиқ карда шудаанд, он як мақоми махсуси сертификатсия - CA (Authority Certification Authority) -ро истифода мебарад. CA дар асоси стандарти X.509 ва инфрасохтори калиди ҷамъиятӣ - PKI амал мекунад.

Хидмати узвият хидматест, ки тавассути он аъзоён тафтиш мекунанд, ки объект ба созмон ё канали мушаххас тааллуқ дорад.

Муомила - дар аксари ҳолатҳо, навиштани маълумоти нав ба феҳристи тақсимшуда.
Инчунин транзаксияҳо барои эҷоди каналҳо ё шартномаҳои интеллектуалӣ мавҷуданд. Муомилот аз ҷониби аризаи корбар оғоз мешавад ва бо сабт дар китоби тақсимшуда анҷом меёбад.

Канал зершабакаи пӯшидаест, ки аз ду ё зиёда иштирокчиёни шабакаи blockchain иборат аст, ки барои анҷом додани амалиёти махфӣ дар доираи маҳдуд, вале маълуми иштирокчиён пешбинӣ шудааст. Каналро иштирокчиён, феҳристи паҳншудаи он, шартномаҳои интеллектуалӣ, Хадамоти фармоишӣ, WorldState муайян мекунанд. Ҳар як иштирокчии канал бояд иҷозати дастрасӣ ба канал дошта бошад ва ҳуқуқ дорад намудҳои гуногуни транзаксияҳоро анҷом диҳад. Авторизатсия бо истифода аз Хадамоти узвият анҷом дода мешавад.

Сенарияи маъмулии иҷрои транзаксия

Минбаъд, ман мехоҳам дар бораи як сенарияи маъмулии иҷрои транзаксия бо истифода аз лоиҳаи мо ҳамчун намуна сӯҳбат кунам.

Дар доираи лоиҳаи дохилии худ мо шабакаи Hyperledger Fabric-ро таъсис додем, ки он барои бақайдгирӣ ва баҳисобгирии донишҷӯёни дохилшавӣ ба донишгоҳҳо пешбинӣ шудааст. Шабакаи мо аз ду созмони мутааллиқ ба Донишгоҳи А ва Донишгоҳи В иборат аст. Ҳар як созмон як барномаи муштарӣ ва инчунин ҳамсолони худ ва ҳамтои худро дар бар мегирад. Мо инчунин хидматҳои маъмулии Хадамоти фармоишӣ, Хадамоти узвият ва мақомоти сертификатсияро истифода мебарем.

1) Оғози муомилот

Замимаи корбар бо истифода аз Hyperledger Fabric SDK дархости транзаксияро оғоз мекунад ва дархостро ба гиреҳҳои дорои шартномаҳои интеллектуалӣ мефиристад. Дархост метавонад барои тағир додан ё хондан аз феҳристи тақсимшуда (Ledger) бошад. Агар мо намунаи конфигуратсияи системаи тестии худро барои баҳисобгирии донишҷӯёни донишгоҳ баррасӣ кунем, барномаи муштарӣ дархости транзаксияро ба гиреҳҳои донишгоҳҳои А ва В мефиристад, ки ба сиёсати тасдиқи шартномаи интеллектуалӣ дохил карда шудаанд. Гиреҳи А гиреҳест, ки дар донишгоҳ ҷойгир аст, ки донишҷӯи воридшударо сабт мекунад ва гиреҳи B гиреҳест, ки дар донишгоҳи дигар ҷойгир аст. Барои он ки транзаксия дар реестри тақсимшуда захира карда шавад, зарур аст, ки ҳама гиреҳҳое, ки мувофиқи мантиқи тиҷорат бояд транзаксияро тасдиқ кунанд, бомуваффақият шартномаҳои интеллектуалиро бо як натиҷа иҷро кунанд. Гиреҳ Замимаи корбар бо истифода аз абзорҳои Hyperledger Fabric SDK сиёсати тасдиқро ба даст меорад ва мефаҳмад, ки ба кадом гиреҳҳо дархости транзаксия фиристанд. Ин дархост барои даъват кардани шартномаи мушаххаси интеллектуалӣ (функсияи занҷир) барои хондан ё навиштани маълумоти муайян ба феҳристи тақсимшуда мебошад. Аз ҷиҳати техникӣ, муштарии SDK функсияи мувофиқро истифода мебарад, ки API-и он объекти муайянро бо параметрҳои транзаксия интиқол медиҳад ва инчунин имзои муштариро илова мекунад ва ин маълумотро тавассути буфери протокол тавассути gRPC ба гиреҳҳои мувофиқ (ҳамсолони тасдиқкунанда) мефиристад.

Hyperledger Fabric барои Dummies
Расми 2. Оғози муомилот

2) Иҷрои шартномаи интеллектуалӣ

Гиреҳҳо (ҳамсолони тасдиқкунанда), ки дархост барои анҷом додани транзаксияро гирифтаанд, имзои муштариро тафтиш мекунанд ва агар ҳама чиз дуруст бошад, онҳо объектро бо маълумоти дархост мегиранд ва симулятсияи иҷрои шартномаи интеллектуалиро (функсияи занҷир) иҷро мекунанд. ин маълумот. Шартномаи интеллектуалӣ мантиқи тиҷоратии муомилот, маҷмӯи муайяни шартҳо ва дастурҳо мебошад (дар ҳолати мо ин санҷиши донишҷӯ аст, ин донишҷӯи нав аст ё ӯ аллакай ба қайд гирифта шудааст, санҷиши синну сол ва ғайра). Барои иҷрои шартномаи интеллектуалӣ ба шумо инчунин маълумот аз WorldState лозим аст. Дар натиҷаи тақлид кардани шартномаи интеллектуалӣ дар ҳамсолони тасдиқкунанда, ду маҷмӯи маълумот ба даст оварда мешаванд - Маҷмӯи хондан ва Навиштан. Маҷмӯи хондан ва Навиштан арзишҳои аслӣ ва нави WorldState мебошанд. (нав - ба маънои дар давоми моделиронӣ шартномаи интеллектуалӣ ба даст).

Hyperledger Fabric барои Dummies
Расми 3. Иҷрои шартномаи интеллектуалӣ

3) Баргардонидани маълумот ба барномаи муштарӣ

Пас аз гузаронидани моделиронии шартномаи интеллектуалӣ, Endorsing Peers маълумоти аслӣ ва натиҷаи моделиронӣ, инчунин RW Set, ки бо сертификати онҳо имзо шудааст, ба аризаи муштарӣ бармегардонад. Дар ин марҳила, дар феҳристи тақсимшуда тағирот ба амал намеояд. Замимаи муштарӣ имзои Endorsing Peer-ро месанҷад ва инчунин маълумоти аслии транзаксияро, ки фиристода шуда буд ва маълумоти баргардонидашударо муқоиса мекунад (яъне он тафтиш мекунад, ки оё маълумоти аслӣ, ки дар он транзаксия тақлид шудааст, таҳриф шудааст). Агар транзаксия танҳо барои хондани маълумот аз реестр бошад, он гоҳ барномаи муштарӣ мувофиқан Маҷмӯи хониши заруриро мегирад ва ин одатан бидуни тағир додани реестри тақсимшуда транзаксияро бомуваффақият анҷом медиҳад. Дар ҳолати транзаксия, ки бояд маълумотро дар реестр тағир диҳад, аризаи муштарӣ татбиқи сиёсати индоссингро ба таври иловагӣ тафтиш мекунад. Мумкин аст, ки барномаи муштарӣ натиҷаи иҷрои Сиёсати тасдиқро тафтиш накунад, аммо платформаи Hyperledger Fabric дар ин ҳолат санҷиши сиёсатҳоро дар гиреҳҳо (Committing Peers) дар марҳилаи илова кардани транзаксия ба реестр таъмин мекунад.

Hyperledger Fabric барои Dummies
Расми 4. Баргардонидани маълумот ба замимаи муштарӣ

4) Ирсоли маҷмӯаҳои RW ба фармоишгари ҳамсолон

Замимаи муштарӣ транзаксияро дар якҷоягӣ бо маълумоти ҳамроҳ ба хидмати фармоиш мефиристад. Ин маҷмӯи RW, имзоҳои ҳамсолон ва ID-и каналро дар бар мегирад.

Хизматрасонии фармоишӣ - дар асоси ном, вазифаи асосии ин хидмат ба тартиб даровардани амалиёти воридотӣ бо тартиби дуруст мебошад. Инчунин ташаккули блоки нави реестри тақсимшуда ва кафолати интиқоли блокҳои нави тавлидшуда ба ҳама гиреҳҳои Commiting, ба ин васила таъмини мутобиқати маълумот дар ҳама гиреҳҳои дорои реестри тақсимшуда (Committing Pers). Дар айни замон, худи хидмати фармоишӣ феҳристро ба ҳеҷ ваҷҳ тағир намедиҳад. Хидмати фармоишӣ ҷузъи муҳими система аст, аз ин рӯ он як кластери аз якчанд гиреҳҳо мебошад. Хидмати фармоишӣ эътибори транзаксияро намесанҷад, вай танҳо транзаксияро бо идентификатори канал қабул мекунад, транзаксияҳои воридотӣ бо тартиби муайян тартиб дода мешавад ва аз онҳо блокҳои нави реестри тақсимшударо ташкил медиҳад. Як хидмати фармоишӣ метавонад дар як вақт ба якчанд канал хидмат расонад. Хизматрасонии фармоишӣ кластери Кафкаро дар бар мегирад, ки навбати дурусти транзаксияҳоро нигоҳ медорад (ниг. банди 7).

Hyperledger Fabric барои Dummies
Расми 5. Фиристодани маҷмӯаҳои RW ба фармоишгари ҳамсолон

5) Ирсоли блокҳои тавлидшуда ба Committing Peer

Блокҳои дар Хадамоти фармоиш тавлидшуда ба ҳама гиреҳҳои шабака интиқол дода мешаванд (паҳн карда мешаванд). Ҳар як гиреҳ, ки блоки нав гирифтааст, мувофиқати онро бо Сиёсати тасдиқкунанда месанҷад, месанҷад, ки ҳамаи ҳамсолони тасдиқкунанда дар натиҷаи симулятсияи шартномаи интеллектуалӣ як натиҷа гирифтаанд (Маҷмӯи навиштан) ва инчунин тафтиш мекунад, ки оё арзишҳои аслии аз лаҳзаи оғоз шудани транзаксия тағйир ёфт (яъне Маҷмӯи хонед - маълумот аз ҷониби шартномаи интеллектуалӣ аз WorldState хонда шудааст). Агар ҳамаи шартҳо иҷро шаванд, транзаксия эътибор дорад, дар акси ҳол, транзаксия мақоми беэътиборро мегирад.

Hyperledger Fabric барои Dummies
Расми 6. Фиристодани блокҳои тавлидшуда ба Committing Peer

6) Илова кардани блок ба реестр

Ҳар як гиреҳ транзаксияро ба нусхаи маҳаллии реестри тақсимшуда илова мекунад ва агар транзаксия дуруст бошад, пас Маҷмӯи Навиштан ба WorldState (ҳолати ҷорӣ) ва мувофиқан арзишҳои нави объектҳое, ки аз ҷониби муомила навишта шудаанд. Агар транзаксия аломати эътибор надошта бошад (масалан, ду транзаксия бо як объект дар як блок сурат гирифта бошад, пас яке аз транзаксияҳо беэътибор мешавад, зеро арзишҳои аслӣ аллакай аз ҷониби дигар иваз карда шудаанд. муомилот). Ин транзаксия инчунин ба дафтарчаи тақсимшуда бо аломати беэътибор илова карда мешавад, аммо Маҷмӯи Навиштани ин транзаксия ба ҳолати мавҷудаи WorldState татбиқ карда намешавад ва мувофиқан объектҳои иштирокчии транзаксияро тағир намедиҳад. Пас аз ин, ба аризаи корбар огоҳинома фиристода мешавад, ки транзаксия ба реестри тақсимшуда ба таври доимӣ илова карда шудааст, инчунин ҳолати транзаксия, яъне оё он эътибор дорад ё не...

Hyperledger Fabric барои Dummies
Расми 7. Илова кардани блок ба реестр

ХИЗМАТРАСОНИИ ТАМОМИ

Хадамоти фармоишӣ аз кластери Кафка бо гиреҳҳои мувофиқи ZooKeeper ва гиреҳҳои хидматрасонии фармоишӣ (OSN) иборат аст, ки дар байни муштариёни хидматрасонии фармоишӣ ва кластери Кафка қарор доранд. Кластери Кафка платформаи идоракунии ҷараёни (паём) тақсимшуда ва ба хатоҳо таҳаммулпазир аст. Ҳар як канал (мавзуъ) дар Кафка пайдарпайии тағирнопазири сабтҳост, ки танҳо илова кардани сабти навро дастгирӣ мекунад (нест кардани сабти мавҷуда имконнопазир аст). Намунаи сохтори мавзӯъ дар зер нишон дода шудааст. Маҳз ҳамин амволи Кафка барои сохтани платформаи blockchain истифода мешавад.

Hyperledger Fabric барои Dummies
аз kafka.apache.org гирифта шудааст

  • Расми 8. Сохтори мавзӯъҳои хидматрасонии фармоиш*

Истинодҳои муфид

Youtube - Сохтани блокчейн барои тиҷорат бо лоиҳаи Hyperledger
Ҳуҷҷатҳои Hyperledger Fabric
Матоъҳои Hyperledger: системаи амалиётии тақсимшуда барои блокчейнҳои иҷозатдодашуда

Эътирофҳо

Мехоҳам ба ҳамкасбонам барои кумакашон дар омодасозии ин мақола изҳори сипос намоям:
Николай Марин
Игор Хапов
Дмитрий Горбачёв
Александр Земцов
Екатерина Гусева

Манбаъ: will.com

Илова Эзоҳ