Blockchain EğitimleriHyperledger Eğitimleri

Hyperledger Fabric Kurulumu – Bölüm 2

Hyperledger Fabric kurulumu yazı dizimizin ikinci bölümündeyiz. İlk bölümdeki gereksinimleri karşılamadan bu seriye devam etmemelisiniz.

IBM’in Hyperledger Fabric projesi, kullanıcıların özel Sertifika Yetkilisi (CA) Sunucusuna bağlanmak için kolay bir tak-çalıştır arayüzü sağlar. Bu, v0.6’ya kıyasla Hyperledger Fabric v1.0‘ın yeni sürümünde aktif hale getirildi. Bu işlevsellik için eski sürümlerde de destek bulunuyor, ancak yeni sürümde daha kolay entegre hale getirildi.

Bu rehberde, kendi CA sunucunuzu kurmayı ve yeni kullanıcıları veritabanınıza kaydetmeyi öğreneceksiniz. Sunucu, kullanıcıyı veritabanına kaydettirmeye yanıt olarak genel/özel anahtar (public/private key) çiftini sağlar.

Hyperledger Fabric Kurulumu

Fabric-ca projesi aşağıdaki komut kullanılarak resmi gerrit kod tabanından indirilebilir. Bu, gerekli dosyaları dizininize indirecektir. Dizin yapısı Fabric-ca’nın çalışması için önemlidir. Aşağıdaki görsel, fabric-ca dizininin nerede konumlandırılacağının bir örneğidir. Kurulumu bu dizine göre yapacağımız için, sizin de birebir aynı dizin yapısına uymanız önemlidir.

git clone https://gerrit.hyperledger.org/r/fabric-ca

Bu komut, gerekli dosyaları dizininize indirecektir. Daha önce de söylediğim gibi, dizin yapısı Fabric-ca’nın çalışması için önemlidir. Fabric-ca dizinini aşağıdaki gibi oluşturmalısınız:

~/Documents/Blockchain/src/github.com/hyperledger

Dizin konusunu daha net hale getirmek gerekirse, fabric-ca dizini sisteminizin GOPATH değişkeninin içine yerleştirilmelidir. GOPATH’ı lokal olarak ayarlamak için:

export GOPATH=~/Documents/Blockchain

Şimdi, GOPATH’tan dizin yapısı şöyle olmalı:

GOPATH -> src -> github.com -> hyperledger -> fabric-ca

Kodu oluştururken veya derlemede ortaya çıkabilecek hataları önlemek için aynı dizin yapısını izlemeniz önerilir.

Dosyaları gerekli konuma indirdiğimize göre, terminal üzerinde sistem genelinde komutun kullanılabilmesi için fabric-ca sunucusunu kurmalı ve çalıştırılabilir dosyanın yolunu eklemeliyiz. Fabric-ca sunucusunu oluşturmak için, fabric-ca’nın kök dizinine gidin, diğer bir deyişle, fabric-ca dizininin içine gidin ve aşağıdaki komutu çalıştırın:

make fabric-ca-server

Not: Sisteminizde make kurulu değilse; sudo apt-get make

Yukarıdaki komutu çalıştırdığınızda, kurulum başlayacaktır. Bir kaç dakika kadar sürebilir.

Şimdi, çalıştırılabilir dosyamız da hazır, sistemin herhangi bir yerinden ona erişebilmeliyiz. Bu yüzden, fabric-ca dizinini .bashrc dosyasındaki PATH değişkenine eklemeliyiz; .bashrc dosyasını düzenlemek için komut:

sudo nano ~/.bashrc

Aşağıdaki komutları dosyanın en sonuna ekleyin ve kaydedip çıkın.

export PATH=$PATH:~/Documents/Blockchain/src/github.com/hyperledger/fabric-ca/bin

Şimdi son olarak bashrc’yi yeniden yüklememiz gerekiyor.

source ~/.bashrc

Fabric-ca-server komutunun çalışıp çalışmadığını kontrol etmek için aşağıdaki komutu yazmanız yeterlidir:

fabric-ca-server

Herhangi bir hata almadıysanız, tebrikler! Kurulumun büyük kısmını tamamladınız demektir. Hata aldıysanız, lütfen başa dönün ve tüm adımları doğru takip ettiğinizden emin olun.

Lütfen, bu dokümantasyonun Fabric-CA servisinin sadece temel kurulumunu açıkladığının farkında olun. Daha fazla düzeltme ve ayarlar için, Hyperledger Fabric’in resmi dökümantasyonunda bulunan Fabric-CA Setup bölümüne bakınız.

Fabric-CA Sunucu Kurulumu

Fabric-CA sunucusu, özel CA olarak görev yapar ve yeni ve mevcut kullanıcıları veritabanına kaydeder. Sunucu, önceden kayıtlı bir kullanıcıyı kaydettirmeye çalışırken anahtar çifti gönderir.

Başlamak için, orijinal dosyaları rahatsız etmeyecek şekilde çalışma ortamımız için yeni bir dizin oluşturacağız. Bunun için, herhangi bir isimde yeni bir dizin oluşturun. Mesela şöyle olabilir:

~/Documents/Fabric-CA/server/

Şimdi, sunucumuz dosyalarımızı geçerli dizine kaydetmesi için yeni bir ortam değişkeni, yani FABRIC_CA_SERVER_HOME ayarlamamız gerekiyor. Bu değişkeni, .bashrc dosyasının sonuna ekleyelim:

export FABRIC_CA_HOME=~/Documents/Fabric-CA
export FABRIC_CA_SERVER_HOME=$FABRIC_CA_HOME/server

Fabric-CA sunucusu için FABRIC_CA_SERVER_HOME’u geçerli dizininiz olarak ayarladığınızı varsayıyorum.

Şimdi bazı yapılandırma dosyalarına ihtiyacımız var, ancak önce istemcinin doğru sunucuyla iletişime geçmesine izin vermek için sunucu için bir çift anahtar gerekiyor. Ortak/özel anahtar (public/private key) çiftini oluşturmak için aşağıdaki komutu kullanın. Burada ca-cert.pem, genel anahtar ve ca-key.pem özel anahtardır. Tüm yapılandırma dosyalarını otomatik olarak başlatmak ve anahtarları otomatik olarak oluşturmak için aşağıdaki komutu çalıştırıyoruz:

fabric-ca-server init -b “admin:adminpw”

-b “admin:adminpw” komutu veritabanı için önyükleme desteğini başlatır.

Şimdi, yukarıdaki komutun çıktısından, Fabric-CA tarafından otomatik olarak oluşturulmuş anahtarlara ve yapılandırma dosyalarına sahip olduğumuzu görebiliriz. Ayrıca, başka bir dosya olan fabric-ca-server.db’yi görüyoruz, bu dosya şu anda Fabric-CA sunucusuna kayıtlı tüm kullanıcıları saklar. Bu, varsayılan olarak bir SQLITE3 veritabanıdır. Ancak, fabric-ca-server-config.yaml dosyasını bunun yerine bir PostGreSQL veya MySQL DB kullanacak şekilde yapılandırabilirsiniz.

Şimdi, tüm dosyalarımız var, ilk sunucumuzu çalıştırmadan önce, yapılandırma dosyasındaki önemli ve gerekli olan bazı alanları anlamamız gerekiyor.

Alanların Açıklaması

Aşağıdaki alanların açıklaması şöyledir:

  • Port” alanı, sunucunun hangi port üzerinde çalıştırılacağını tanımlar. Bu varsayılan olarak: 7054‘tür.
  • Debug” alanı, geliştirme ortamında çalışırken loglama yapabilmek içindir.
  • Sunucunuz HTTPS protokolünde çalışıyorsa, localhost üzerinde çalışırken “tls” etkinleştirilmelidir; varsayılan değer her zaman “false”dır.
  • İstemci anahtarlarını imzalamak için kullanılacak anahtarları “certfile” ve “keyfile” bölümünde tanımlarız. Bu değişken, genellikle CA’nın ve sunucunun iki farklı varlık olduğunu bildiğimiz durumlarda kullanılır, ancak burada sunucunun kendisi CA’dır, bu nedenle sunucu anahtarlarını CA’nın anahtarlarına yerleştirdik.
  • Max_enrollments, bir kullanıcının aynı parolayla kaç kayıt yapabileceğini tanımlar. 0 olarak ayarlanırsa, sonsuza dek sürebilir, ancak 1 olarak ayarlandığını varsayarsak, bir kullanıcının yalnızca bir kez kayıt olmasına izin verir.
  • Bir sonraki alan, kullanacağımız veritabanı türünü tanımlar. Varsayılan olarak, Hyperledger Fabric-CA, 3 tür veritabanı, yani Sqlite, Postgres ve MySQL‘e desteğiyle gelir. Bu üçünden herhangi birini yapılandırabilirsiniz, ancak bu rehber için varsayılan yapılandırma “sqlite3“dir. Hyperledger Fabric’in resmi dökümantasyonunda diğer ikisinin konfigürasyonu hakkında daha fazla bilgi bulabilirsiniz.
  • Sonraki alan, LDAP ile ilgili olan kısımdır. Bu bölümü kapsam dışında olduğu için şimdilik varsayılan değeriyle bırakıyoruz.
  • Sonra, üyelik bölümümüz var, bunlar kullanıcılarınızın farklı kullanıcı türlerini sınıflandırmak için ilişkide bulunduğu kuruluşları ve departmanları tanımlar.
  • İmzalama bölümü, istemcinin imzalanmış sertifikaların geçerliliğinin ne kadar olduğunu ve yapılandırmada kullanılan sunucu sertifikasının diğer kullanımının ne olduğunu tanımlamak için kullanılır.
  • CSR” bölümü, varsayılan ayrıntılar ile birlikte CA sertifikaları oluşturmak için “Sertifika İmzalama İsteği” yaratmak için kullanılır.
  • Son bölüm, sunucunun hangi algoritma tipini kullanması gerektiğini ve diğer kriprografik terimleri tanımlayan “kripto” alanıdır. Bu kısım da olduğu gibi bırakılır.

Şimdi, gerekli tüm dosyalara sahibiz, sunucumuz başlatılmaya hazır. Sunucunuzu başlatmak için aşağıdaki komutu kullanın:

fabric-ca-server start -b “admin:adminpw”

Herhangi bir hata mesajı almadıysanız, tebrikler! Hyperledger Fabric kurulumu başarıyla tamamladınız demektir.

Şimdi, localhost’umuz Fabric-CA Server ayakta ve çalışıyor. Bu dönüm noktasına ulaştığınız için tebrikler. Sonraki bölümde, localhost’la iletişim kurmamızı sağlamak için Fabric-CA Client’ı kurmaya çalışacağız.

Hyperledger Fabric kurulumu ile ilgili herhangi bir sorunuz olursa lütfen iletişim sayfamızdan bize ulaşın, mümkün olan en kısa sürede size geri döneceğiz.

Kimler Neler Demiş?

  Subscribe  
Bildir