Kubernetes ile IBM Blockchain 2.0 Beta Kullanımı + Hyperledger Fabric Sözlüğü

UMUT
DLK Consultancy
Published in
13 min readJul 3, 2019

Not: IBM Trial sürümü kapattığı için deneme yapmak isteyenler artık ücret ödemek zorunda kalacaklar. :( (Güncelleme Tarihi: 06.09.2019)

Yakın zamanda IBM Cloud Servisi üzerinde yeni bir Blockchain sürümü yayınladı. Bu versiyon Hyperledger Fabric 1.4.1 yani en yeni Fabric sürümünü kullanmak ile birlikte bünyesinde birçok yenilik barındırıyor. Bende sizler için adım adım IBM Kubernetes Cluster kullanarak son sürüm Blockchain çözümünü nasıl deneyebilirsiniz, nasıl chaincodelarınızı yükleyip test edebilirsiniz bunu anlatacağım. En son kısma da bir Hyperledger Fabric Sözlüğü ekliyorum. Bu sözlük bir çok terimi basitleştirmeniz de size yardımcı olacaktır.

Ek Bilgi: IBM yeni yayınladığı Visual Studio Extension ‘a çok fazla misyon yükledi. Artık geliştirdiğimiz chaincode’ları Cloud Platforma deploy ederken, VS Extension kullanarak Packaging yapmamız gerekiyor. Bu adımları da ayrıca aşağıda gösteriyor olacağım.

Bu makalede özetle aşağıdaki adımları uygulayacağız.

1- Clone the repo

2- Package the smart contract(IBM Blockchain VS Extension Kurulumu, Kullanımı)

3- Create IBM Cloud services(IBM Kubernetes ve BC servislerinin yaratılması)

4- Build a network(Blockchain ağındaki öğelerin yaratılması ”orderernode,peernode,ca,msp,users”)

5- Deploy Blockchain-network Smart Contract on the network(VS Extension aracılığı ile yarattığımız .cds package projenin cloud platforma yüklenmesi)

6- Connect application to the network(SDK aracılığı projeyi tetikleme)

7- Run the application(Uygulama testi)

1- Örnek Projemizi İndiriyoruz…

İlk olarak aşağıdaki komut ile projemizi uygun gördüğümüz bir yere indiriyoruz.

git clone https://github.com/IBM/Create-BlockchainNetwork-IBPV20

2- Akıllı Kontratımızı Paketliyoruz…

Bu adımda VS Code Extension aracılığı ile örnek projemizi nasıl paket haline getireceğimizi anlatacağım.

Öncelikle aşağıdaki linkten IBM VS Code son sürümünün kurulumunu yapıyoruz.

https://code.visualstudio.com/

Önemli Not: Blockchain Extension yalnızca son sürüm VS ile çalışıyor.

Son sürüm VS code indirdikten sonra IBM Blockchain Platform Extension’ı yüklüyoruz.

Başarılı olarak indirdikten sonra sol tarafta kare şeklinde bir araç göreceksiniz. Buradan artık Blockchain geliştirmelerimizi yapabileceğimiz Workbench’e ulaşabiliyor olacağız.

Klonladığımız projemizin içerisindeki Contract dizinini VS Code üzerinde açıyoruz. Aşağıda soldaki resimdeki gibi projenizin içindeki contract folderı ana dizininiz olmalı.

Daha sonra BC aracını kullanarak sağdaki … tuşuna basarak Package Smart Contract Project diyoruz ve başarılı olduğu takdirde bize blockchain-network@0.0.1 isminde bir .cds dosyası yaratıyor.

Daha sonra bu dosyaya sağ tıklayıp Export Package seçeneğini kullanıyoruz ve uygun bir yere indiriyoruz.(Proje ana klasörünün içi bence localde bu dosyaları tutmamız için en uygun yer!)

Bu dosyayı ileriki adımlarda IBM Cloud üzerine chaincode(projemizi) deploy ederken kullanacağız.

Önemli not: Bu adımda projenin ana dizinini açarsanız veya başka bir dizinin alt dizinlerini en üst folder olarak gösterip oradan paketleme yapmaya çalışırsanız işleminiz başarısız olacaktır. Lütfen buna dikkat edin, benim çok zamanı mı almıştı :( )

Contract Dizin Görüntüsü/Paketleme Adımı

Şu ana kadar elimizdeki projemizi uygun bir şekilde paketledik ve sisteme deploy edilebilir hale getirdik. Şimdi projemizi yükleyip üzerinde koşacağımız bir sisteme ve ağa ihtiyacımız var.

3- IBM Blockchain Kubernetes Cluster Oluşturma ve Üzerinde Blockchain Ağımızı Konumlandırma

İlk olarak bir IBM ID’niz yoksa bunu yaratmanız gerekiyor. Bunu yaratma adımlarını göstermiyorum çünkü herkesin kolaylıkla üstesinden gelebileceği bir üyelik süreci.

ID’nizi aldıktan sonra IBM hesabınız bir demo hesap gibi bir statüde oluşacaktır. Burada önemli nokta anlattığım bütün çözümlerin ücretsiz olması. Hiç bir ücret ödemeden buradaki çözümleri uygulayabileceksiniz fakat IBM Blockchain servisini Beta olarak kullanmak ve ücretsiz bir cluster yaratmak için bile olsa bir Pay As You Go Upgrade’i yapmanız gerekiyor. Yoksa bu servisleri kullanamıyorsunuz.

Önemli Not: Bunun sizin için hiçbir ek maliyeti olmayacak ama yine de yanlışlıkla yapabileceğiniz harcamaların önüne geçmek için 10 TL tutarında bir sanal kart yaratarak bu kartınızı sisteme tanımlamanızı öneriyorum. Bu upgrade’i yaptıktan sonra IBM size 200 dolarlık bir ücretsiz kredi de veriyor bu krediyi bazı diğer ücretli servisleri kullanıp test etmek için de kullanabilirsiniz.

Bu üyelik işlemleriniz bittikten sonra aşağıdaki adımları uygulayarak yeni bir Kubernetes Cluster yaratıp, Blockchain Platform 2.0 Beta’yı bu cluster ile bir iki adımda çalışır hale getirebileceksiniz. Aşağıdaki GIF’lerde görsel olarak kurulum adımlarını görebilirsiniz.

Önemli Not: Cluster oluştururken Dallas merkezli seçmeniz çok önemli yoksa Blockchain Ağını kurduğunuz adımda Cluster seçiminde önünüze yarattığınız diğer bölge Clusterları gelmeyecektir.

Bu adımlar tamamlandıktan sonra platformumuz hazır hale geliyor ve önümüze yeni dark görseliyle IBM Blockchain Platform 2.0 Beta boş bir halde çıkıyor.

Olası hata durumu:Pay As You go hesabı upgrade ini yaptıktan sonra bazen tanımladığınız kredi kartını sistem görmüyor. Bu IBM’in bir bugı kendileri konuyu biliyor. Hesabınızı upgrade ettikten sonra cluster vs yaratırken aşağıdaki gibi bir sorunla karşılaşırsanız. Support kısmından iletişime geçerseniz hemen çözüyorlar.

Ayrıca hesabımız elite statüsünde olduğu için de takıldığımız yerlerde teknik destek de hızlıca alabiliyoruz. Bu önemli bir imkan, fakat bu blockchain beta servisi 1 ay sonra ücretli olacağı için geliştirici arkadaşların bir an önce platformu denemesini tavsiye ediyorum.

4- Blockchain Ağımızın Bileşenlerini Yaratıyoruz…

Bu bölümde, eski bilgilerimizi tazelememiz için, bir blockchain ağını oluşturan bileşenlerin üzerinden geçmekte fayda görüyorum. Blockchain dünyası öyle farklı ki dönüp dönüp büyük resme bakmayı unutursak, bileşenler arasında kaybolup gerçekten ne yapmayı amaçladığımızı unutabiliyoruz, kafamız karışıyor, caseler birbirine giriyor ve projelerden istenilen sonuçları elde etmek zorlaşıyor, motivasyonumuzu yitirebiliyoruz.

O yüzden bu bölümü aslında hem kendim için sürekli dönüp bakabileceğim bir not hem de bu konudan muzdarip olanlar için bir başvuru kaynağı olarak düşündüm.

Şöyle başlayalım, servisi yarattık önümüzde boş bir sayfa var. Burada bileşenlerimiz yaratılmak için bizi bekliyor. Birbirleriyle bağlantılı bu bileşenlerin bağlarını açıklayalım.(İster localde yaratalım ister herhangi bir Cloud platform üzerinde bu adımlar değişmeyecek.)

- Bir Private Blockchain(HLF için konuşuyorum)ağında ilk aklımıza gelmesi gereken şey ağda bir Ordering Node ve chaincodeumuzu Deploy edeceğimiz en az bir Peer Node bulunması gerektiğidir.

- Bu nodeları çalıştıracak kullanıcılar ve organizasyonların sertifika işlemleri için ise Certificate Authority kısaca CA bileşenini kullanıyoruz. Her bir node için bir CA yaratabiliyoruz veya ortak bir CA ile çalışabiliyoruz.

Aslında bir özel blockchain ağında yaratılması gereken ilk bileşen oluşturacağımız node ile beraber çalışacak bir Certificate Authority (CA) yaratmaktır.

- Daha sonra bu CA bileşenini kullanarak Membership Service Provider yani kısaca MSP olarak anacağımız bileşeni yaratıyoruz. MSP bileşeni bize önceden tanımladığımız CA’daki sertifikaları ve izinleri referans alarak nodeları kullanım şeklimizde formal düzenlemeler ve yetkilendirmeler(kısıtlandırmalar) yapmamızı sağlıyor.

Yani bir CA olmadan bir MSP yaratmak mümkün olamaz. MSP’yi CA’dan aldığı sertifika ile işleri daha da özelleştirip esnek hale getiren bir bileşen gibi düşünebiliriz.

Örneklendirmek gerekirse gizli belgelerin tutulduğu bir arşiv düşünün ve bu arşive erişim için Sertifikalı bir şekilde yetkilendirmeleri yapabilecek bu giriş kartlarını dağıtacak aracı kurum(bileşen) atayan bir üst Kurum(Otorite) düşünün. İşte bu üst otorite Certificate Authority(CA) oluyor. Bir MSP yaratırken gidip ben şu şu CA’dan üst otoriteden key aldım bak bu da sertifikası diye gösterip ağ içerisinde kimlik dağıtan onaylı-sertifikalı bir aracı kurum olma yetkisi elde ediyoruz. (Bunu bir case içerisinde düşünmeyin, yani ağa dahil olan bir regulator bir taraf node vs. değil CA ve MSP).

Ek Bilgi: Aslında Hyperledger Fabric içerisinde yetkileri dağıtan asıl bileşen MSP ama bunun yetkileri dağıtması için bir sertifika üreticisine ihtiyacı var . HLF ‘deki default olarak gelen sertifika üreticisi de CA oluyor. HLF’de CA yerine başka servislerde kullanma imkanı var. Pluggable dediğimiz yapıya sahip olduğu için MSP esnek bir çözüm sunuyor.

Örneğimizde toplamda 1 Orderer Node 1 Peer Node olacak. Her biri için ayrı ayrı CA ve MSP bileşenleri yaratacağız.

Bu bilgiler ışığında ilk CA bileşenimizi yaratalım…

  • Add Certificate Authority diyerek aşağıdaki gibi yaratalım.

Display name = Org1 CA olsun. Çünkü bu birinci organizasyonumuzun yöneteceği Peer için yaratılan CA bileşenimiz.

Admin ID = admin

Admin Secret = adminpw

olarak bileşenimizi yaratıyoruz.

Registered User yaratıyoruz…

Bu adımı tamamladıktan sonra yapmamız gereken CA bileşeninin içerisinde Registered Userlar yaratmak olacak bu kullanıcıları daha sonra MSP bileşenini yaratırken kullanacağız.

İlk olarak org1 için bir admin user yaratacağız bu client statüsünde olacak. Daha sonra ise peer için bir peer statüsünde user yaratacağız.

Aşağıdaki adımları uygulayarak yaratıyoruz.

Admin(Client) User için aşağıdaki bilgilerle bir kullanıcı yaratıyoruz

Enroll ID : org1admin

Enroll Secret: org1adminpw

Peer User(peer) için aşağıdaki bilgilerle bir kullanıcı yaratıyoruz.

Enroll ID : peer1

Enroll Secret: peer1pw

MSP Bileşenimizi Yaratıyoruz….

Sırada MSP bileşenimizi yaratmak var. Bunun için sol menüden organization tıklıyoruz ve burada karşımıza çıkan menüden Create MSP Definition diyerek yaratma işlemine başlıyoruz.

Burada daha önce bahsettiğimiz bağlantıyı daha iyi anlayacağız. İlk önce MSP bileşenimiz için aşağıdaki isimleri kullanarak tanımlamamızı yapıyoruz.

MSP Display name : Org1 MSP

MSP ID : org1msp

Daha sonra Root Certificate Authority kısmından daha önce yarattığımız CA bileşeninin bilgilerini ile giriyoruz ve bir Identity Name = Org1 Admin Generate ediyoruz. Daha Sonra bu tanımı Export edip Create MSP Definition diyerek bu adımı da tamamlıyoruz.

Aşağıdaki GIF’de yine bütün adımları bulabilirsiniz.

Şu ana kadar ne yapmış olduk:

Org1 altında birazdan yaratacağımız Peer Node için : 1 CA yarattık. Daha sonra bu CA için Registered kullanıcılar oluşturduk ve yarattığımız CA’yı bir MSP Definition oluşturmak için kullandık. Daha sonra aynı işlemleri Orderer Node umuz için de yapacağız. Çünkü en başta dediğimiz gibi örneğimizde 1 peer node +1 orderer node olacak ve her biri ayrı CA ve MSP bileşenleri kullanacak.

Org1 için Peer Node yaratıyoruz…

Şimdi ilk nodeumuzu yaratabiliriz. Şu ana kadar anlattıklarımdan sonra artık şunu söyleyebiliriz, bir private ağda Node yaratmak ilk adım değildir. İlk adım Node ile beraber çalışacak ve bu node un yönetiminde çalıştırmasında görev alacak yetkilendirme bileşenlerini yaratmaktır. İlk adımda yarattığımız CA ve MSP bileşenlerini şimdi Peer Node umuzu yaratırken kullanacağız.

Sol ana menümüzden Nodes sekmesine geliyoruz. Buradan Add Peer tıklıyoruz. Create A New Peer kısmından devam ediyoruz.

Display name : Peer Org1 yazıp ikinci ekrana geçiyoruz.

Burada daha önce yarattığımız CA ile ilgili bize bilgi soracak, daha önce yarattığımız CA’nın adı Org1 CA idi onu seçiyoruz.

Daha önce yine CA ımızı kullanarak peer üzerinde kullanmak için Registered User yaratmıştık. Bu kullanıcının bilgilerini giriyoruz.

Enroll ID: peer1

Enroll secret: peer1pw

Bu adımdan sonra sıra MSP’de…Daha önce yarattığımız MSP’yi seçip ilerliyoruz. ve TLS ayarları için CA’yı yaratırken kullandığımız admin bilgilerini tanımlıyoruz.

TLS Enroll ID: admin

TLS Enroll Secret: adminpw

Son olarak Associate Identity adımı karşımıza gelecek burada da daha önce yarattığımız Org1 Admin seçip Submit yapıyoruz.

Peer oluşturma işlemimiz tamamlandı.

Aslında şu anda bir blockchain networkünde tek node üzerinden yapılacak işlemlerin %80 ini yapmış olduk. Aynı işlemleri Orderer Node için tekrarlayacağız ve daha sonra bazı son yetkilendirmeler yapıp Chaincode umuzu deploy etmeye geçeceğiz.

Bütün adımları görsel olarak yine aşağıdaki GIF’den izleyebilirsiniz.

Orderer Node yaratıyoruz…

Burada yukarıdaki gibi adımları tek tek anlatmayacağım çünkü aynı süreç, aşağıya gifleri koyuyorum, sırasıyla uygularsanız işlemler başarılı bir şekilde sonuçlanacaktır. Bir sonraki adıma geçebilirsiniz.

Network bileşenlerimizin büyük bir kısmını oluşturduk. Şimdi önemli bir adım var. Daha önce Peer için yarattığımız Org1 MSP bileşenimizi orderer ile çalışması için Orderer Node içerisinde bir organizasyon olarak ekliyoruz.

İşlemimiz bitti. Sırada Channel(Kanal) yaratma adımımız var.

Channel Yaratıyoruz…

Öncelikle şunu hatırlamakta fayda var. Bir Hyperledger Fabric Network’ünde tarafların birbirleriyle iletişim kurmaları için bir kanal oluşturmak ve bu kanal üzerinde gizli-açık işlem transferlerini kurgulamak bir zorunluluk.

1- Sol bardan channels kısmını buluyoruz ve Create Channel tıklıyoruz.

2- Kanalımıza mychannel ismini veriyoruz.

3- Daha önce yaratttığımız orderer ı seçiyoruz.

4- Kanalı yaratacak kullanıcı olarak Org1 MSP seçiyoruz ve Identity olarak Org1 Admin seçip Operator ve Writer yetkileri ile donatıp kurulumu bitiriyoruz.

createchannel

Peer Kanala Katılıyor…

Daha önce yarattığımız Peer ımızı bu kanala eklemek için ise aşağıdaki adımları uyguluyoruz.

1- Orderer seçiyoruz.

2- mychannel kanalımızın ismini veriyoruz.

3- Peer Org1 node umuzu seçip kanala katılmasını sağlıyoruz.

Depl

Kanal yaratma ve Peer’ı kanala ekleme işlemimiz de sona erdi.

Böylelikle chaincode umuzun üzerinde koşacağı Blockchain ağının bütün bileşenlerini oluşturmuş olduk. İlk önce bir Kubernetes Cluster oluşturduk ve bunun üzerinde koşan bir Hyperledger Fabric 1.4.1 ağı kurduk. CA, MSP, Orderer Node, Users, Peer Node gibi bileşenlerin tamamının kurulumunu tamamladık.

5- Chaincode umuzu IBM Blockchain Platform üzerine yüklüyoruz…

Şimdi sıra ilk adımda package ettiğimiz chaincode umuzu platform üzerine yüklemeye geldi. Hatırlarsak ilk adımda Contract dosyamızı dizine gösterip, .cds uzantılı bir dosya yaratmıştık. Şimdi yapmamız gereken tek şey bu dosyayı import etmek olacak.

1- Smart Contracts sekmesine geliyoruz.

2- Install Chaincode diyoruz ve .cds uzantılı dosyamızı seçiyoruz.

3- Daha sonra projemiz listede görünür hale gelecek.

Not: Gif’leri değiştirmeden aldığım için aşağıdaki gif de fabcar projesi görünüyor fakat bizim örneğimizde orada blockchain-network isimli bir dosya göreceğiz.

4- Kontratın üzerinde tıklayıp instantiate diyoruz ve çıkan ekrandan mychannel seçip next diyoruz.

5- Şimdi bizden bir Endorsement Policy seçmemizi istiyor burası önemli, burada daha önce yarattığımız Org1 MSP seçiyoruz yani Org1 MSP bileşenini chaincode umuzun instantiate fonksiyonunu tetiklemesi için atıyoruz.

6- Fonksiyon olarak aşağıda my-contract.js dosyamızda görünen ilk method yani instantiate yazıyoruz.

Not: Bazı projelerde GIF de görünen fabcar örneğinde olduğu gibi bu method initLedger olarak da kodlanmış olabilir. Onu tespit etmek gerekiyor.

Şimdi harici bir uygulamanın SDK aracılığı ile ağımıza bağlanıp chaincode umuzla iletişime geçmesini sağlamamız gerekiyor.

6-SDK bilgileri ile uygulamamızı hazırlıyoruz…

1- İlk olarak instantiated smart contracts kısmında en sağ taraftaki üç noktaya tıklayarak connect with sdk seçiyoruz.

2- Daha sonra uygun olan org1msp ve Org1 CA seçip Download Connection Profile diyoruz.

İndirdiğimiz dosya bağlantı bilgilerini içerecek.

Şimdi uygulamamızı kullanabilmesi için yeni bir app-admin kullancısı yaratacağız.

3- Nodes kısmından Org1 CA seçip Register User diyoruz.

4- Enroll ID: app-admin , Enroll Secret: app-adminpw giriyoruz.

5- Kullancı tipine client diyoruz ve organizasyon olarak org1 seçiyoruz.

6- Add attribute kısmına hf.Registrar.Roles = *. yazıyoruz.

7- İndirdiğimiz my_connection_blockchain-network_profile.json dosyasını uygulamamızın ana klasörünün içine kopyalıyoruz.

8- config.json dosyamızı aşağıdaki gibi yeni verilerimizle güncelliyoruz. CaName IP adresinizi indirdiğiniz dosyanın içerisinde bulabilirsiniz.

{
"connection_file": "mychannel_blockchain-network_profile.json",
"channel_name": "mychannel",
"smart_contract_name": "blockchain-network",
"appAdmin": "app-admin",
"appAdminSecret": "app-adminpw",
"orgMSPID": "org1msp",
"caName": "169.46.208.151:30404",
"userName": "user1",
"gatewayDiscovery": { "enabled": true, "asLocalhost": false }
}

Şimdi uygulamamızı çalıştırma adımına geçebiliriz.

7- Uygulamamızı Çalıştırıyoruz…

Terminalde ana klasörümüz içerisine gidip aşağıdaki komutları çalıştırıyoruz.

cd application
npm install
node enrollAdmin.js
node invoke-transactions.js

İşlemler tamamlandı. Uygulamamızı çalıştırdık ve yaptığımız son işlemleri artık IBM Blockchain Platform üzerinde inceleyebiliriz.

Bu son adımdı! Bu adımdan sonra bir arayüz oluşturup onun aracılığı ile işlemleri tetikleme gibi bir adım kurgulanabilir.(UI app adımı olabilir). Onu nasıl yapacağınızı, Beta sürümü bitmeden, ayrı bir makalede anlatacağım.

Makale bitti :) Sağlıcakla kalın… Sözlüğü de aşağıya bıraktım.

Hyperledger Fabric Sözlüğü

Bu bölümde kavram kargaşası yaratan bütün bileşenlerin basit tanımlamalarını vermeye çalıştım. Kafamız karıştığında dönüp burdan bakabiliriz.

Anchor Peer

Farklı organizasyonlardaki peerların birbiriyle iletişim kurmasını sağlar.

Blocks

Header bilgisi, block data(işlem-transaction bilgisi) ve node oluşumunda yaratılan bilgileri içerir.

Certificate Authorities(CA)

Hyperledger Fabric ağında iletişime geçmek isteyen herkes bir kimliği ihtiyaç duyar. CA bu ihtiyaç duyulan kimliğin onaylı bir şekilde verilmesini sağlayan otoritedir.

Chaincode

Chaincode Hyperledger tarafında akıllı kontratları tanımlayan kodun adıdır. Burada iş süreçlerini ve yapısını tanımlarız. Ağımızın üzerinde koşan ana kod bloğumuzdur, methodlarımız bunun içerisinde yer alır. Bir chaincode bir ağdaki bütün peer lara yüklenmek zorunda değildir. Yalnızca tek bir peer üzerinde de koşabilir.

Channel

Kanallar HLF ağında işlem yapan kullanıcıların gruplar haline birbirlerinden haberleri olmayacak şekilde iletişim kurmalarını sağlayabilen bileşenlerdir. HLF’de işlemler(transactions) yalnızca o kanalın üyeleri tarafından görülebilir.

Channel Configuration

Kanalı yöneten kurallar burada tanımlanır. Bir kanalın konfigürasyonu ile genel olarak Hyperledger Fabric ağının konfigürasyonu farklı şeylerdir. Kanalların konfigürasyonunu HLF ağında spesifik olarak o kanala dahil olmuş organizasyonlar yönetebilir.

Consortium

Ağ üzerinde işlem yapacak organizasyonların oluşturduğu bir küme topluluk gibi düşünebiliriz.

Committing Peer

Bir kanal içindeki her peer için bu terimi kullanabiliriz.

Endorsing Peer

Akıllı kontratımızın yani chaincode umuzun yüklü olduğu peerlar endorsing peer olarak anılır. Bir veya birden fazla olabilir.

Endorsement Policy

Ağ üzerindeki organizasyonlar işlemlerin bir kopyasını edinmeden önce hangi organizasyonların işlemleri onaylayacağını belirleyen bir kurallar bütünü olarak düşünebiliriz. Her akıllı kontrat(chaincode) için spesifik olarak tanımlanır.

Leader Peer

Kanala entegre olmuş bir organizasyon içerisinde birden fazla peer olabilir. Fakat bunlar içerisinde yalnızca tek bir peer Leader Peer olur liderin görevi Orderer Node’a işlemleri dağıtmaktır. Kısacası , al gülüm ver gülüm yapar :).

Membership Service Provider

MSP hangi CA ile çalışacağını belirler ondan sertifikaları alır. Organizasyon içerisindeki taraflara ağ içerisinde oynayacakları rolleri verir onları yetkilendirir.

Nodelar MSP aracılığı ile HLF ağına dahil olabilirler.

Ledger

World State’i yenide(tekrar tekrar) yaratmak için kullanılan sadece append yapılabilen bir dosyadır.

Ordering Nodes

HLF ağındaki admin görevini üstlenen node dur. En önemli bileşendir. Sistemin dağıtıklığından, işlemlerin hatasız bir şekilde sıraya dizilmesinden ve bloklara itilmesinden sorumludur. (CA ve MSP ile bunu karıştırmamak gerekir onlar birer yardımcı araçtır. Bu ise bir Peer’dır, Node’dur. Kullanıcı yetkilendirmelerini yaptığı için MSP’de admin olarak düşünülebilir fakat o aslında User Admin’dir. Ordering Node ise ağ içerisindeki işlemlerin akışından, düzenlenmesinden sorumlu olan KRAL Admin’dir.)

Peer Nodes

Her peer üyesi oldukları kanal içerisinde oluşan ledgerın bir kopyasına sahiptir.

Policies

Ağ konfigürasyonunda nasıl bir yetkilendirme olacak bunu tanımlayan kelime.

Private Data Collection

Özel işlemlerin özel veritabanlarında tutulması ile ilgili bir terim.

Veriler kanal içerisinde bir kopyası herkese dağıtılan ledger haricinde özel bir veritabanında saklanıyorsa bu terim geçer.

Public Key Infrastructure

Bu, bir ağda güvenli iletişim sağlar. CA’lar, ağdaki iletilerin kimliğini doğrulamak için kullanılan dijital sertifikalar verir. PKI bir kimlik listesi sağlar ve MSP hangi kimlik hangi organizasyonun parçası bunu bize söyler.

World State

İşlemlerin, dataların o anki snapshotını aslında bir resmini, grafiğini tutan veritabanıdır. HLF’de World State işlemlerine yardımcı olması açısından basit querylere ihtiyaç duyulan seviyede Level DB, daha kompleks yapılarda CouchDB tercih ediliyor.

--

--