Kain Hyperledger kanggo Dummies

Platform Blockchain kanggo Perusahaan

Kain Hyperledger kanggo Dummies

Sugeng sonten, para pembaca sing dikasihi, jenengku Nikolai Nefedov, aku spesialis teknis IBM, ing artikel iki aku pengin ngenalake sampeyan menyang platform blockchain - Hyperledger Fabric. Platform kasebut dirancang kanggo mbangun aplikasi bisnis tingkat perusahaan (kelas Enterprise). Tingkat artikel kasebut kanggo para pamaca sing durung siyap kanthi kawruh dhasar babagan teknologi IT.

Hyperledger Fabric minangka proyek sumber terbuka, salah sawijining cabang saka proyek sumber terbuka Hyperledger, konsorsium Yayasan Linux. Hyperledger Fabric wiwitane diluncurake dening Digital Assets lan IBM. Fitur utama platform Hyperledger Fabric yaiku fokus ing aplikasi perusahaan. Mulane, platform kasebut dikembangake kanthi ngitung kecepatan transaksi lan biaya sing murah, uga identifikasi kabeh peserta. Keuntungan kasebut digayuh kanthi misahake layanan verifikasi transaksi lan mbentuk blok anyar saka registri sing disebarake, uga nggunakake wewenang sertifikat lan ngidini para peserta.

Artikelku minangka bagéan saka seri artikel babagan Hyperledger Fabric sing kita njlèntrèhaké proyek sistem kanggo ndhaptar mahasiswa sing mlebu universitas.

Arsitektur Umum Kain Hyperledger

Hyperledger Fabric minangka jaringan pamblokiran sing disebarake sing kasusun saka macem-macem komponen fungsional sing dipasang ing node jaringan. Komponen Hyperledger Fabric minangka wadhah Docker sing bisa diundhuh kanthi bebas saka DockerHub. Kain Hyperledger uga bisa ditindakake ing lingkungan Kubernetes.

Kanggo nulis kontrak cerdas (chaincode ing konteks Hyperledger Fabric), kita nggunakake Golang (sanajan Hyperledger Fabric ngidini sampeyan nggunakake basa liyane). Kanggo ngembangake aplikasi khusus, ing kasus kita, Node.js digunakake karo Hyperledger Fabric SDK sing cocog.

Node mbukak logika bisnis (kontrak cerdas) - chaincode, nyimpen status registri sing disebarake (data buku besar) lan nglakokake layanan sistem platform liyane. A simpul mung unit logis, simpul beda bisa ana ing server fisik padha. Sing luwih penting yaiku kepiye node diklompokake (Domain dipercaya) lan apa fungsi jaringan pamblokiran sing digandhengake.

Arsitektur umum katon kaya iki:

Kain Hyperledger kanggo Dummies

Gambar 1. Arsitektur Umum Kain Hyperledger

Aplikasi pangguna (Kirim Klien) yaiku aplikasi sing digunakake pangguna karo jaringan blockchain. Kanggo bisa, sampeyan kudu ngliwati wewenang lan duwe hak sing cocog kanggo macem-macem tumindak ing jaringan.

Peers (Node) teka ing sawetara peran:

  • Endorsing Peer minangka simpul sing simulasi eksekusi transaksi (nglakokake kode kontrak cerdas). Sawise validasi lan nglakokake kontrak cerdas, simpul ngasilake asil eksekusi menyang aplikasi klien bebarengan karo teken.
  • Layanan Pesenan minangka layanan sing disebarake ing sawetara simpul, digunakake kanggo mbentuk blok anyar saka buku besar sing disebarake lan nggawe urutan kanggo nglakokake transaksi. Layanan Pesenan ora nambah pamblokiran anyar menyang registri (Dipindhah menyang Nggawe Peer kanggo kinerja sing luwih apik).
  • Committing Peer - simpul sing ngemot registri sing disebarake lan nambah blok anyar menyang registri (sing dibentuk dening Layanan Pesenan). Kabeh Rekan Komitmen ngemot salinan lokal saka buku gedhe sing disebarake. Peer Committing, sadurunge nambah blok anyar sacara lokal, mriksa kabeh transaksi ing blok kanggo validitas.

Kabijakan Pengesahan minangka kabijakan kanggo mriksa keabsahan transaksi. Kawicaksanan kasebut nemtokake set simpul sing dibutuhake ing ngendi kontrak cerdas kudu dileksanakake supaya transaksi kasebut bisa diakoni minangka sah.

Registri sing disebarake - Lerger - kasusun saka rong bagean: WolrldState (uga disebut State DataBase) lan BlockChain.

BlockChain minangka rantai pamblokiran sing nyimpen cathetan kabeh owah-owahan sing kedadeyan ing obyek buku sing disebarake.

WolrldState minangka komponen registri sing disebarake sing nyimpen nilai saiki (ekstrim) kabeh obyek registri sing disebarake.

WorldState minangka basis data, ing versi dhasar - LevelDB utawa luwih kompleks - CouchDB, sing ngemot pasangan kunci-nilai, contone: Jeneng - Ivan, Surname - Ivanov, tanggal registrasi ing sistem - 12.12.21/17.12.1961/XNUMX, tanggal lair - XNUMX/XNUMX/XNUMX, etc. WorldState lan ledger sing disebarake kudu konsisten ing kabeh anggota saluran tartamtu.

Wiwit Hyperledger Fabric minangka jaringan sing kabeh peserta dikenal lan diotentikasi, wewenang sertifikasi khusus digunakake ing kene - CA (Otoritas Sertifikasi). CA makaryakke ing basis saka standar X.509 lan infrastruktur tombol umum - PKI.

Layanan Keanggotaan minangka layanan ing ngendi anggota verifikasi manawa obyek kasebut kalebu organisasi utawa saluran tartamtu.

Transaksi, ing umume kasus, rekaman data anyar ing buku besar sing disebarake.
Ana uga transaksi kanggo nggawe saluran utawa kontrak cerdas. Transaksi kasebut diwiwiti dening aplikasi pangguna lan diakhiri karo nulis menyang buku besar sing disebarake.

Saluran (Saluran) minangka subnet tertutup sing dumadi saka loro utawa luwih peserta ing jaringan pamblokiran, dirancang kanggo nindakake transaksi rahasia ing bunder peserta sing winates, nanging dikenal. Saluran kasebut ditemtokake dening peserta, buku besar sing disebarake, kontrak cerdas, Layanan Pesenan, WorldState. Saben anggota saluran kudu duwe wewenang kanggo ngakses saluran kasebut lan duwe hak kanggo nindakake macem-macem transaksi. Wewenang ditindakake nggunakake Layanan Keanggotaan.

Skenario eksekusi transaksi sing khas

Sabanjure, aku pengin ngomong babagan skenario khas kanggo nglakokake transaksi nggunakake conto proyek kita.

Minangka bagéan saka project internal kita, kita wis nggawe jaringan Hyperledger Fabric, kang dirancang kanggo ndhaftar lan ngrekam mahasiswa ngetik universitas. Jaringan kita dumadi saka rong organisasi, diduweni dening Universitas A lan Universitas B. Saben organisasi ngemot aplikasi klien, uga Peer Komitmen lan Nyengkuyung dhewe. Kita uga nggunakake Layanan Pesenan umum, Layanan Keanggotaan lan layanan Otoritas Sertifikasi.

1) Wiwitan Transaksi

Aplikasi pangguna, nggunakake Hyperledger Fabric SDK, miwiti panjalukan transaksi lan ngirim panjalukan menyang simpul kanthi kontrak cerdas. Panyuwunan kasebut bisa diganti utawa diwaca saka buku besar sing disebarake (Ledger). Yen kita nimbang conto konfigurasi tes sistem kanggo akuntansi kanggo mahasiswa universitas, aplikasi klien ngirim panjalukan transaksi menyang simpul universitas A lan B, sing kalebu ing kabijakan Endorsement saka kontrak pinter sing diarani. Node A minangka simpul sing ana ing universitas sing ndhaptar siswa sing mlebu, lan simpul B minangka simpul sing ana ing universitas liya. Supaya transaksi bisa disimpen menyang ledger sing disebarake, perlu kabeh simpul sing, miturut logika bisnis, kudu nyetujoni transaksi kasebut, kasil nglakokake kontrak cerdas kanthi asil sing padha. Aplikasi pangguna saka simpul A, nggunakake piranti Hyperledger Fabric SDK, nampa kabijakan Endorsement (kabijakan persetujuan) lan nemokake simpul sing ngirim panjalukan transaksi. Iki minangka panjalukan kanggo nelpon (ngundang) kontrak pinter tartamtu (fungsi kode rantai) kanggo maca utawa nulis data tartamtu menyang buku besar sing disebarake. Secara teknis, SDK klien nggunakake fungsi sing cocog, API sing dilewati obyek kanthi paramèter transaksi, lan uga nambah teken klien lan ngirim data iki liwat buffer protokol liwat gRPC menyang simpul sing cocog (endorsing peer).

Kain Hyperledger kanggo Dummies
Gambar 2. Inisiasi Transaksi

2) Eksekusi kontrak cerdas

Node (Endorsing Peers), sawise nampa panjaluk kanggo nindakake transaksi, mriksa tandha tangan klien lan yen kabeh wis rampung, banjur njupuk obyek kanthi data panyuwunan lan nglakokake simulasi eksekusi kontrak cerdas (fungsi kode rantai). kanthi data kasebut. Kontrak cerdas minangka logika bisnis transaksi, kahanan lan instruksi tartamtu (ing kasus kita, iki minangka pamriksan siswa, apa siswa anyar, utawa dheweke wis ndhaptar, mriksa umur, lan liya-liyane). Kanggo nglakokake kontrak cerdas, sampeyan uga butuh data saka WorldState. Minangka asil saka simulasi kontrak pinter ing peer Endorsing, loro set data dipikolehi - Read Set lan Tulis Set. Read Set lan Write Set minangka nilai WorldState asli lan anyar. (anyar - ing pangertèn dijupuk dening simulating kontrak pinter).

Kain Hyperledger kanggo Dummies
Gambar 3. Eksekusi kontrak cerdas

3) Ngasilake data menyang aplikasi klien

Sawise simulasi kontrak pinter, Endorsing Peers bali menyang aplikasi klien data dhisikan lan asil simulasi, uga Set RW mlebu dening certificate sing. Ing tahap iki, ora ana owah-owahan ing buku besar sing disebarake. Aplikasi klien verifikasi teken saka Endorsing Peer, lan uga mbandhingake data transaksi asli sing dikirim lan data sing bali (yaiku, mriksa manawa data asli sing simulasi transaksi wis rusak). Yen transaksi kasebut mung kanggo maca data saka pendaptaran, aplikasi klien bakal nampa Read Set sing dibutuhake, lan transaksi kasebut biasane rampung kanthi sukses tanpa ngganti registri sing disebarake. Ing kasus transaksi sing kudu ngganti data ing pendaptaran, aplikasi klien tambahan mriksa apa kabijakan Endorsing wis dileksanakake. Bisa uga aplikasi klien ora mriksa asil eksekusi Kebijakan Endorsement, nanging platform Hyperledger Fabric ing kasus iki nyedhiyakake kanggo mriksa kawicaksanan ing kelenjar (Comitting Peers) ing tataran nambah transaksi menyang pendaptaran.

Kain Hyperledger kanggo Dummies
Gambar 4. Ngasilake data menyang aplikasi klien

4) Ngirim set RW menyang Peers Pesen

Aplikasi klien ngirim transaksi bebarengan karo data sing gegandhengan karo layanan Pesenan. Iki kalebu Set RW, teken saka kanca-kanca Endorsing, lan ID Saluran.

Layanan pesenan - Adhedhasar jeneng, fungsi utama layanan iki yaiku mbangun transaksi sing mlebu kanthi urutan sing bener. Uga tatanan pamblokiran anyar saka registri mbagekke lan pangiriman dijamin pamblokiran kui anyar kanggo kabeh simpul Commiting, saéngga njamin konsistensi data ing kabeh kelenjar ngemot pendaptaran mbagekke (Komitting kanca-kanca). Ing wektu sing padha, layanan Pesenan dhewe ora ngganti registri kanthi cara apa wae. Layanan Pesenan minangka komponèn penting saka sistem, saéngga minangka kluster saka sawetara simpul. Layanan Pesenan ora mriksa transaksi kanggo validitas, mung nampa transaksi karo ID saluran tartamtu, ngatur transaksi sing mlebu ing urutan tartamtu, lan mbentuk blok anyar saka buku besar sing disebarake saka wong-wong mau. Siji Layanan Pesenan bisa nglayani sawetara saluran ing wektu sing padha. Layanan Pesenan kalebu klompok Kafka, sing njaga antrian transaksi sing bener (ora owah) (pirsani titik 7).

Kain Hyperledger kanggo Dummies
Gambar 5. Ngirim set RW menyang Ordering Peers

5) Ngirim blok sing digawe menyang Peer Komitmen

Blok sing dibentuk ing Layanan Pesenan dikirim menyang kabeh simpul jaringan. Saben simpul, sawise nampa blok anyar, mriksa kanggo tundhuk karo Kabijakan Endorsing, mriksa manawa kabeh Endorsing Peers nampa asil sing padha (Tulis Set) minangka asil saka simulasi kontrak pinter, lan uga mriksa yen nilai asli wis diganti (sing, - Read Set - data diwaca dening kontrak pinter saka WorldState) wiwit wiwitan transaksi. Yen kabeh kondisi wis ketemu, transaksi ditandhani minangka bener, digunakake, transaksi nampa status ora bener.

Kain Hyperledger kanggo Dummies
Gambar 6. Ngirim blok-blok sing digawe menyang Komitting Peer

6) Nambahake blok menyang registri

Saben simpul nambah transaksi menyang salinan lokal saka ledger sing disebarake, lan yen transaksi kasebut bener, Tulis Set diterapake menyang WorldState (kahanan saiki), masing-masing, nilai anyar obyek sing kena pengaruh transaksi kasebut ditulis. . Yen transaksi nampa token sing ora sah (contone, ana rong transaksi kanthi obyek sing padha ing blok sing padha, mula salah sawijining transaksi ora bakal sah, amarga nilai asline wis diganti dening transaksi liyane. ). Transaksi iki uga ditambahake menyang ledger sing disebarake kanthi tandha sing ora bener, nanging Set Tulis transaksi iki ora ditrapake kanggo kahanan WorldState saiki lan, kanthi mangkono, ora ngganti obyek sing melu transaksi kasebut. Sawise iku, kabar dikirim menyang aplikasi pangguna yen transaksi wis ditambahake menyang buku besar sing disebarake ing salawas-lawase, uga status transaksi kasebut, yaiku, sah utawa ora ...

Kain Hyperledger kanggo Dummies
Gambar 7. Nambahake blok menyang pendaptaran

LAYANAN ORDER

Layanan Pesenan kalebu klompok Kafka kanthi simpul ZooKeeper sing cocog lan Node Layanan Pesenan (OSN) sing ana ing antarane klien layanan Pesenan lan Kluster Kafka. Kluster Kafka minangka platform manajemen aliran (pesen) sing disebarake. Saben saluran (topik) ing Kafka minangka urutan rekaman sing ora bisa diganti sing mung ndhukung nambah rekaman anyar (ora bisa mbusak sing wis ana). Gegambaran struktur topik kapacak ing ngisor iki. Iki properti Kafka sing digunakake kanggo mbangun platform blockchain.

Kain Hyperledger kanggo Dummies
dijupuk saka kafka.apache.org

  • Gambar 8. Struktur Topik Layanan Pesenan*

pranala migunani

Youtube - Nggawe blockchain kanggo bisnis karo Proyek Hyperledger
Dokumen Kain Hyperledger
Kain Hyperledger: sistem operasi sing disebarake kanggo pamblokiran sing diidini

Matur suwun

Aku ngucapake matur nuwun banget marang kanca-kanca sing wis mbantu nyiyapake artikel:
Nikolai Marina
Igor Kapov
Dmitry Gorbachev
Alexander Zemtsov
Ekaterina Guseva

Source: www.habr.com

Add a comment