Dummies üçün Hyperledger Fabric

Müəssisə üçün Blockchain Platforması

Dummies üçün Hyperledger Fabric

Günortanız xeyir, əziz oxucular, mənim adım Nikolay Nefedov, mən IBM-də texniki mütəxəssisəm, bu yazıda sizi blokçeyn platforması - Hyperledger Fabric ilə tanış etmək istərdim. Platforma korporativ səviyyəli biznes proqramlarının yaradılması üçün nəzərdə tutulub. Məqalənin səviyyəsi İT texnologiyaları üzrə əsas biliklərə malik hazırlıqsız oxucular üçündür.

Hyperledger Fabric açıq mənbəli layihədir, Linux Fondunun konsorsiumu olan açıq mənbə Hyperledger layihəsinin qollarından biridir. Hyperledger Fabric ilk olaraq Digital Assets və IBM tərəfindən yaradılmışdır. Hyperledger Fabric platformasının əsas xüsusiyyəti onun müəssisə istifadəsinə yönəldilməsidir. Buna görə də platforma tranzaksiyaların yüksək sürəti və onların aşağı qiyməti, eləcə də bütün iştirakçıların eyniləşdirilməsi nəzərə alınmaqla hazırlanmışdır. Bu üstünlüklərə əməliyyatların yoxlanılması xidmətinin ayrılması və paylanmış reyestrin yeni bloklarının formalaşdırılması, həmçinin sertifikatlaşdırma mərkəzinin istifadəsi və iştirakçıların avtorizasiyası vasitəsilə əldə edilir.

Məqaləm Hyperledger Fabric haqqında bir sıra məqalələrin bir hissəsidir, onun çərçivəsində universitetə ​​daxil olan tələbələrin qeydiyyatı üçün sistem layihəsini təsvir edirik.

Hyperledger Fabric-in ümumi arxitekturası

Hyperledger Fabric şəbəkə qovşaqlarında quraşdırılmış müxtəlif funksional komponentlərdən ibarət paylanmış blokçeyn şəbəkəsidir. Hyperledger Fabric komponentləri DockerHub-dan sərbəst endirilə bilən Docker konteynerləridir. Hyperledger Fabric Kubernetes mühitində də işlədilə bilər.

Ağıllı müqavilələr (Hyperledger Fabric kontekstində zəncir kodu) yazmaq üçün biz Golanqdan istifadə etdik (baxmayaraq ki, Hyperledger Fabric digər dillərin istifadəsinə icazə verir). Fərdi proqram hazırlamaq üçün bizim vəziyyətimizdə müvafiq Hyperledger Fabric SDK ilə Node.js-dən istifadə etdik.

Qovşaqlar biznes məntiqini (ağıllı müqavilə) - zəncir kodunu yerinə yetirir, paylanmış reyestrin vəziyyətini (mühasibat kitabçası məlumatları) saxlayır və platformanın digər sistem xidmətlərini yerinə yetirir. Bir qovşaq yalnız məntiqi vahiddir; eyni fiziki serverdə müxtəlif qovşaqlar mövcud ola bilər. Düyünlərin necə qruplaşdırıldığı (Etibarlı domen) və blokçeyn şəbəkəsinin hansı funksiyaları ilə əlaqəli olması daha vacibdir.

Ümumi memarlıq belə görünür:

Dummies üçün Hyperledger Fabric

Şəkil 1. Hyperledger Fabric-in Ümumi Arxitekturası

İstifadəçi proqramı (Submitting Client) istifadəçilərin blokçeyn şəbəkəsi ilə işlədiyi proqramdır. İşləmək üçün səlahiyyətli olmalı və şəbəkədə müxtəlif növ hərəkətlər üçün müvafiq hüquqlara malik olmalısınız.

Həmyaşıdlar bir neçə rolda olurlar:

  • Endorsing Peer əməliyyatın icrasını simulyasiya edən (ağıllı müqavilə kodunu yerinə yetirən) qovşaqdır. Ağıllı müqavilənin yoxlanılması və icrasından sonra qovşaq icra nəticələrini imzası ilə birlikdə müştəri tətbiqinə qaytarır.
  • Sifariş Xidməti bir neçə qovşaqda paylanmış xidmətdir, paylanmış reyestrin yeni bloklarını yaratmaq və əməliyyatların yerinə yetirilməsi üçün növbə yaratmaq üçün istifadə olunur. Sifariş Xidməti reyestrə yeni bloklar əlavə etmir (Bu funksiya performansı yaxşılaşdırmaq üçün Həmyaşıdların Təhlükəsizliyi bölməsinə köçürülüb).
  • Committing Peer paylanmış reyestri ehtiva edən və reyestrə yeni bloklar əlavə edən (Sifariş Xidməti tərəfindən yaradılan) bir qovşaqdır. Bütün Committing Peers paylanmış kitabın yerli surətini ehtiva edir. Committing Peer yerli olaraq yeni blok əlavə etməzdən əvvəl blok daxilindəki bütün əməliyyatları etibarlılıq üçün yoxlayır.

Təsdiqləmə Siyasəti əməliyyatın etibarlılığını yoxlamaq siyasətidir. Bu siyasətlər əməliyyatın etibarlı kimi tanınması üçün ağıllı müqavilənin icra edilməli olduğu tələb olunan qovşaqlar dəstini müəyyən edir.

Paylanmış reyestr - Lerger - iki hissədən ibarətdir: WolrldState (həmçinin Dövlət DataBase adlanır) və BlockChain.

BlockChain, paylanmış reyestr obyektlərində baş vermiş bütün dəyişikliklərin qeydlərini saxlayan bloklar zənciridir.

WolrldState, bütün paylanmış kitab obyektlərinin cari (keçmiş) dəyərlərini saxlayan paylanmış kitab komponentidir.

WorldState verilənlər bazasıdır, əsas versiyada - LevelDB və ya daha mürəkkəb - CouchDB, açar-dəyər cütlərini ehtiva edir, məsələn: Ad - İvan, Soyad - İvanov, sistemdə qeydiyyat tarixi - 12.12.21/17.12.1961/XNUMX , doğum tarixi - XNUMX və s. WorldState və paylanmış reyestr müəyyən bir kanalın bütün iştirakçıları arasında uyğun olmalıdır.

Hyperledger Fabric bütün iştirakçıların tanındığı və autentifikasiya edildiyi bir şəbəkə olduğundan, o, xüsusi sertifikatlaşdırma orqanından - CA (Sertifikatlaşdırma Authority) istifadə edir. CA X.509 standartı və açıq açar infrastrukturu - PKI əsasında fəaliyyət göstərir.

Üzvlük xidməti üzvlərin obyektin müəyyən bir təşkilata və ya kanala aid olduğunu təsdiqlədiyi xidmətdir.

Bir əməliyyat - əksər hallarda, paylanmış reyestrə yeni məlumatların yazılmasıdır.
Kanalların və ya ağıllı müqavilələrin yaradılması üçün əməliyyatlar da var. Əməliyyat istifadəçi tətbiqi tərəfindən başlanır və paylanmış kitabda qeydlə başa çatır.

Kanal iki və ya daha çox blokçeyn şəbəkəsi iştirakçısından ibarət qapalı alt şəbəkədir, məhdud, lakin məlum iştirakçılar dairəsi daxilində məxfi əməliyyatlar aparmaq üçün nəzərdə tutulmuşdur. Kanal iştirakçılar, onun paylanmış reyestri, ağıllı müqavilələr, Sifariş Xidməti, WorldState tərəfindən müəyyən edilir. Hər bir kanal iştirakçısı kanala daxil olmaq və müxtəlif növ əməliyyatlar etmək hüququna malik olmalıdır. Avtorizasiya Üzvlük Xidmətindən istifadə etməklə həyata keçirilir.

Tipik əməliyyatın icrası ssenarisi

Daha sonra layihəmizi nümunə kimi istifadə edərək tipik bir əməliyyatın icrası ssenarisi haqqında danışmaq istərdim.

Daxili layihəmizin bir hissəsi olaraq biz universitetlərə daxil olan tələbələrin qeydiyyatı və uçotu üçün nəzərdə tutulmuş Hyperledger Fabric şəbəkəsini yaratdıq. Şəbəkəmiz A və B Universitetlərinə aid iki təşkilatdan ibarətdir. Hər bir təşkilat müştəri proqramından, eləcə də özünün Təhlükəli və Təsdiq edən Peerindən ibarətdir. Biz həmçinin Sifariş Xidməti, Üzvlük Xidməti və Sertifikatlaşdırma Təşkilatının ümumi xidmətlərindən istifadə edirik.

1) Əməliyyatın başlanması

Hyperledger Fabric SDK-dan istifadə edən istifadəçi tətbiqi əməliyyat sorğusuna başlayır və sorğunu ağıllı müqavilələri olan qovşaqlara göndərir. Sorğu paylanmış reyestrdən (Mühasibat Kitabı) dəyişdirmək və ya oxumaq ola bilər. Universitet tələbələri üçün mühasibat uçotu üçün test sistem konfiqurasiyamızın nümunəsini nəzərdən keçirsək, müştəri tətbiqi adlanan smart müqavilənin Təsdiq siyasətinə daxil olan A və B universitetlərinin qovşaqlarına əməliyyat sorğusu göndərir. A qovşağı, gələn tələbəni qeydiyyatdan keçirən universitetdə yerləşən, B qovşağı isə başqa bir universitetdə yerləşən qovşaqdır. Bir əməliyyatın paylanmış reyestrdə saxlanması üçün biznes məntiqinə görə əməliyyatı təsdiqləməli olan bütün qovşaqların eyni nəticə ilə ağıllı müqavilələri uğurla icra etməsi lazımdır. Düyün İstifadəçi tətbiqi Hyperledger Fabric SDK alətlərindən istifadə edərək Təsdiq siyasətini əldə edir və hansı qovşaqlara əməliyyat sorğusu göndərəcəyini öyrənir. Bu, paylanmış reyestrdə müəyyən məlumatları oxumaq və ya yazmaq üçün xüsusi ağıllı müqaviləyə (zəncir kodu funksiyası) müraciət etmək tələbidir. Texniki olaraq, müştəri SDK müvafiq funksiyadan istifadə edir, onun API-si əməliyyat parametrləri ilə müəyyən bir obyektə ötürülür, həmçinin müştəri imzası əlavə edir və bu məlumatları gRPC üzərindən protokol buferi vasitəsilə müvafiq qovşaqlara (təsdiq edən həmyaşıdlar) göndərir.

Dummies üçün Hyperledger Fabric
Şəkil 2. Əməliyyata başlamaq

2) Ağıllı müqavilənin icrası

Düyünlər (Təsdiq edən həmyaşıdlar) bir əməliyyat aparmaq üçün bir sorğu aldıqdan sonra müştəri imzasını yoxlayır və hər şey qaydasındadırsa, sorğu məlumatları olan bir obyekt götürür və ağıllı müqavilənin (zəncir kodu funksiyası) icrasının simulyasiyasını həyata keçirirlər. bu məlumatlar. Ağıllı müqavilə əməliyyatın iş məntiqidir, müəyyən şərtlər və göstərişlər toplusudur (bizim vəziyyətimizdə bu, tələbənin yoxlanılmasıdır, bu yeni tələbədir, yoxsa artıq qeydiyyatdan keçib, yaş yoxlanışı və s.). Ağıllı müqaviləni yerinə yetirmək üçün sizə WorldState-dən məlumat da lazımdır. Təsdiq edən həmyaşıdda ağıllı müqavilənin simulyasiyası nəticəsində iki məlumat dəsti əldə edilir - Oxu Dəsti və Yaz Dəsti. Read Set və Write Set orijinal və yeni WorldState dəyərləridir. (yeni – ağıllı müqavilənin simulyasiyası zamanı əldə edilən mənada).

Dummies üçün Hyperledger Fabric
Şəkil 3. Ağıllı müqavilənin icrası

3) Məlumatların müştəri tətbiqinə qaytarılması

Ağıllı müqavilənin simulyasiyasını həyata keçirdikdən sonra Endorsing Peers orijinal məlumatları və simulyasiyanın nəticəsini, həmçinin sertifikatı ilə imzalanmış RW Setini müştəri tətbiqinə qaytarır. Bu mərhələdə paylanmış reyestrdə heç bir dəyişiklik baş vermir. Müştəri proqramı təsdiqləyici həmyaşıd imzasını yoxlayır, həmçinin göndərilən və geri qaytarılan ilkin əməliyyat məlumatlarını müqayisə edir (yəni, əməliyyatın simulyasiya edildiyi orijinal məlumatın təhrif edilib-edilmədiyini yoxlayır). Əgər tranzaksiya yalnız reyestrdən məlumatların oxunması üçün idisə, o zaman müştəri proqramı müvafiq olaraq lazımi Oxu Dəstini alır və bu, adətən paylanmış reyestrdə dəyişiklik etmədən əməliyyatı uğurla tamamlayır. Reyestrdəki məlumatları dəyişdirməli olan əməliyyat halında, müştəri tətbiqi təsdiqləmə siyasətinin həyata keçirilməsini əlavə olaraq yoxlayır. Mümkündür ki, müştəri tətbiqi Təsdiq Siyasətinin icrasının nəticəsini yoxlamasın, lakin bu halda Hyperledger Fabric platforması reyestrə əməliyyatın əlavə edilməsi mərhələsində qovşaqlar üzrə siyasətlərin yoxlanılmasını (Committing Peers) təmin edir.

Dummies üçün Hyperledger Fabric
Şəkil 4. Məlumatların müştəri tətbiqinə qaytarılması

4) Sifariş verən həmyaşıdlara RW dəstlərinin göndərilməsi

Müştəri proqramı əməliyyatı müşayiət edən məlumatlar ilə birlikdə Sifariş xidmətinə göndərir. Buraya RW Seti, təsdiqləyici həmyaşıd imzaları və Kanal ID-si daxildir.

Sifariş xidməti – adına əsaslanaraq, bu xidmətin əsas funksiyası daxil olan əməliyyatları düzgün qaydada təşkil etməkdir. Həmçinin paylanmış reyestrin yeni blokunun formalaşdırılması və yeni yaradılan blokların bütün Commiting qovşaqlarına zəmanətli çatdırılması, beləliklə, paylanmış reyestri (Committing peers) ehtiva edən bütün qovşaqlarda məlumatların ardıcıllığının təmin edilməsi. Eyni zamanda, Sifariş xidmətinin özü reyestri heç bir şəkildə dəyişdirmir. Sifariş Xidməti sistemin vacib komponentidir, ona görə də bir neçə qovşaqdan ibarət çoxluqdur. Sifariş Xidməti əməliyyatın etibarlılığını yoxlamır, sadəcə olaraq müəyyən bir kanal identifikatoru ilə əməliyyatı qəbul edir, daxil olan əməliyyatları müəyyən qaydada təşkil edir və onlardan paylanmış reyestrinin yeni bloklarını formalaşdırır. Bir Sifariş Xidməti eyni vaxtda bir neçə kanala xidmət göstərə bilər. Sifariş Xidmətinə düzgün (dəyişməz) əməliyyat növbəsini saxlayan Kafka klasteri daxildir (7-ci bəndə baxın).

Dummies üçün Hyperledger Fabric
Şəkil 5. Sifariş verən həmyaşıdlara RW dəstlərinin göndərilməsi

5) Yaradılmış blokların Committing Peer-ə göndərilməsi

Sifariş Xidmətində yaradılan bloklar bütün şəbəkə qovşaqlarına ötürülür (yayımlanır). Hər bir qovşaq yeni blok aldıqdan sonra onun Təsdiqləmə Siyasətinə uyğunluğunu yoxlayır, ağıllı müqavilə simulyasiyası nəticəsində bütün təsdiqləyici həmyaşıdların eyni nəticəni (Yazma dəsti) aldığını yoxlayır, həmçinin orijinal dəyərlərin mövcud olub-olmadığını yoxlayır. əməliyyatın başlandığı andan dəyişdirildi (yəni Read Set - WorldState-dən ağıllı müqavilə tərəfindən oxunan məlumatlar). Bütün şərtlər yerinə yetirilərsə, əməliyyat etibarlı kimi qeyd olunur, əks halda əməliyyat etibarsız statusu alır.

Dummies üçün Hyperledger Fabric
Şəkil 6. Yaradılmış blokların Committing Peer-ə göndərilməsi

6) Reyestrə blok əlavə etmək

Hər bir qovşaq paylanmış reyestrin yerli nüsxəsinə bir əməliyyat əlavə edir və əgər əməliyyat etibarlıdırsa, Write Set WorldState (cari vəziyyət) üçün tətbiq edilir və müvafiq olaraq, təsirə məruz qalan obyektlərin yeni dəyərləri. əməliyyat yazılır. Əgər tranzaksiya etibarlı olmayan bir nişan alıbsa (məsələn, eyni blokda eyni obyektlərlə iki əməliyyat baş veribsə, əməliyyatlardan biri etibarsız olacaq, çünki orijinal dəyərlər artıq başqa biri tərəfindən dəyişdirilib. əməliyyat). Bu əməliyyat həm də etibarsız işarə ilə paylanmış kitab kitabçasına əlavə edilir, lakin bu əməliyyatın Yaz Dəsti cari WorldState-ə tətbiq edilmir və müvafiq olaraq, əməliyyatda iştirak edən obyektləri dəyişmir. Bundan sonra istifadəçi proqramına əməliyyatın paylanmış reyestrə daimi olaraq əlavə edilməsi, həmçinin əməliyyatın vəziyyəti, yəni onun etibarlı olub-olmaması barədə bildiriş göndərilir...

Dummies üçün Hyperledger Fabric
Şəkil 7. Reyestrə blokun əlavə edilməsi

SİFARİŞ XİDMƏTİ

Sifariş Xidməti, Sifariş xidməti müştəriləri ilə Kafka Klasteri arasında dayanan müvafiq ZooKeeper qovşaqları və Sifariş Xidməti Qovşaqları (OSN) olan Kafka klasterindən ibarətdir. Kafka klaster paylanmış, nasazlığa dözümlü axın (mesaj) idarəetmə platformasıdır. Kafkadakı hər bir kanal (mövzu) yalnız yeni bir qeydin əlavə edilməsini dəstəkləyən dəyişməz qeydlər ardıcıllığıdır (mövcud olanı silmək mümkün deyil). Mövzu strukturunun təsviri aşağıda göstərilmişdir. Məhz Kafkanın bu xüsusiyyəti blokçeyn platforması qurmaq üçün istifadə olunur.

Dummies üçün Hyperledger Fabric
kafka.apache.org saytından götürülmüşdür

  • Şəkil 8. Sifariş xidmətinin mövzu strukturu*

Faydalı bağlantılar

Youtube – Hyperledger Layihəsi ilə biznes üçün blokçeyn qurmaq
Hyperledger Fabric Sənədləri
Hyperledger toxuması: icazə verilən blokçeynlər üçün paylanmış əməliyyat sistemi

Təşəkkürlər

Bu məqalənin hazırlanmasında köməyə görə həmkarlarıma dərin təşəkkürümü bildirirəm:
Nikolay Marin
İqor Xapov
Dmitri Qorbaçov
Aleksandr Zemtsov
Ekaterina Quseva

Mənbə: www.habr.com

Добавить комментарий