Hyperledger Ekosistemindeki 13 Proje

25/05/2019

Hyperledger platformunun teknoloji dünyasına girmesinin üzerinden 4 yıldan daha az bir zaman oldu. Bu süre içinde 19 Mayıs 2019 itibariyle 13 tane proje duyuruldu. Eğer merakınız varsa veya hızla gelişen bu platforma çok geç kalmadan dahil olmak isterseniz ayrıntılarıyla olmasa da yüzeysel olarak bu 13 projenin ne işe yaradığını bilmenizi tavsiye ederim. Hyperledger’ın kendi sitesine girdiğimizde bizi “Hyperledger Serası” nı temsil eden aşağıdaki görsel karşılıyor.

Hyperledger Serası

Projelerin kendi sayfalarına girdiğimizde de -bence- yeni başlayan meraklı zihinlere pek de hitap etmeyen teknik açıklamalar buluyoruz. Bu yazıyı yazma amacım teknik ayrıntılardan olabildiğince arındırarak Hyperledger projelerini anlatmak. Projeleri kronolojik sıraya göre anlatacağım. Anlatacağım 13 projeden yalnızca 3 tanesi -Fabric, Sawtooth, Iroha- bir blokzincir. Diğerleri ise özelleşmiş bazı alanlarda bize kolaylık sağlayan araçlar barındırıyor. Temel kaynağım projelerin Github sayfaları ve resmi dokümanları. Bunların dışında yararlandığım kaynaklar ise sayfanın sonunda yer alıyor.

Hyperledger Fabric

Hyperledger Fabric

Bu ekosistemin ilk projesi olan Fabric, aynı zamanda en çok bilinen proje. Hatta Hyperledger’ın Hyperledger Fabric olduğuna dair yaygın bir yanlış da var. Fabric, kurumlar için tasarlanmış kapalı blokzincir uygulamaları geliştirmeye yarayan, modüler yapıda bir framework’tür. Genel amaçlı yazılım dilleri ile geliştirme yapmaya izin veren ilk blokzincirdir. İngilizce’de plug and play adı verilen bir yapıdadır. Yani modülerdir ve uygulamanın içine amacınıza yönelik olarak hazırlanmış bileşenleri tak-çalıştır yöntemi ile ekleyebilirsiniz.

Kurumsal blokzincir gerekliliklerinde genellikle gizlilik ve kimlik doğrulaması ön plandadır. Fabric her ikisini de sağlar. Üyelik Servis Sağlayıcı(Membership Service Provider-MSP) sayesinde ağa yalnızca kimlik doğrulaması yapmış kişiler bağlanabilir. Kanallar sayesinde de kullanıcı grupları oluşturulup her gruba farklı yetki tanımları verilebilir. Böylece her veri ağdaki her katılımcının okuması/oluşturması/güncellemesi/silmesi için açık değildir.

Hyperledger bir kriptopara projesi değildir. Dolayısıyla Fabric ağı kriptopara transferi için değildir. Ağda varlıklar(asset) vardır. Bu varlıkların maddi değeri olabilir. Yalnızca veri barındıran varlıklar da olabilir.

Fabric’in çalışma prensiplerini aşağıdaki maddeler ile açıklayabiliriz:

  • İşlemler, chaincode’lar(smart contract) ile güvence altına alınır ve tüm katılımcılar Docker konteynırları çalıştırarak ağa bağlanır.
  • İşlemler kriptopara olmadan gerçekleştirilir.
  • Tüm işlemler gizli ve güvenlidir. Bilgiler, yalnızca ağdaki katılımcıların fikir birliği(consensus) ile güncellenir.
  • Tüm işlemlerin içeriği kriptoludur. Böylece içerik tüm kullanıcılar tarafından görüntülenemez.
  • Katılımcılar ağa erişim sağlamak için üyelik servislerine kimlik kanıtı yapmak zorundadır.

Hyperledger Sawtooth

Hyperledger Sawtooth

Sawtooth, dağıtık kayıt defterleri oluşturmak, ayağa kaldırmak ve çalıştırmak için kullanılan modüler bir kurumsal blokzincir platformudur. Dikkat ettiyseniz gizlilik, kapalılık gibi bir terim kullanmadım. Sawtooth’un odak noktası kayıt defterlerini dağıtık yapmak ve akıllı kontratlar ile sistemi güvenli kılmaktır. Geçen zamanın kanıtı(proof of elapsed time-PoET) adı verilen bir consensus algoritması kullanır. Bu algoritma ile kaynak tüketimi minimize edilir.

Sawtooth ile Fabric arasındaki temel iki fark ise aşağıdaki gibidir:

  • Ağ tipi: Fabric’te ağa katılmak için MSP’ye kaydolup kimlik kanıtı yapmak zorunda olduğumuzdan bahsetmiştim. Sawtooth ile hem izinli hem de izinsiz blokzincirler geliştirebilirsiniz.

  • Gizlilik: Sawtooth’ta tüm katılımcıların ağdaki işlemleri görme yetkisi vardır. Fabric’te ise farklı yetki tanımları ile verilerin gizliliğini sağlamak mümkün.

Sawtooth’un günlük hayattaki bir uygulamasını görmek isterseniz Necati Öztaş ve Zahid Dişçi’nin çevirisini yaptığı ScanTrust projesini inceleyebilirsiniz.

Hyperledger Iroha

Hyperledger Iroha

Iroha projesi, Japon Kaizen felsefesinden esinlenerek geliştirilmiş, adını Japonca bir şiirden almış bir dağıtık kayıt defteri teknolojisidir. Bir grup Japon yazılımcının mobil cihazlara yönelik olarak C++ dilinde geliştirdiği bir frameworktür. C++ ile yazılmış olması performans yönünden Iroha’yı ön plana çıkarıyor. Iroha deyince aklımızda gelmesi gereken iki anahtar kelime performans ve yalınlık.

Iroha kaynak, bilgi ve dijital kimlik yönetimi konusunda başarılı bir framework. Aynı zamanda bizans hata toleransını sağlayan kendi consensus algoritması var. (Yet Another Consensus-YAC)

Hyperledger Burrow

Hyperledger Burrow

Burrow, en az Hyperledger kadar geçmişi olan bir proje. ErisDB adıyla Monax tarafından geliştirilmeye başlanmış, daha sonra da Hyperledger çatısı altına Burrow ismiyle girmiştir. Monax’ın CTO’su Casey Kuhlman, Burrow’u diğer projelerden ayıran özelliği tek bir cümle ile açıklıyor: “Burrow, Hyperledger ekosistemi içinde yalnızca bir şeyi iyi yapmak için tasarlandı: EVM (Ethereum Sanal Makinesi) akıllı kontratlarını izinli bir blokzincir ağında çalıştırmak.” Burrow üç ana bileşenden oluşuyor.

  1. Consensus Engine: Ağdaki işlemler Bizans hata toleransına sahip Tendermint protokolü ile yapılıyor. Bu protokol ağın çatallanmasının önüne geçiyor.

  2. İzinli EVM: Ethereum’un izinli bir ağa çevrildiğini düşünün. Aynı şekilde Solidity dili kullanılarak sağlanmış turing-complete bir sistem var.

  3. RPC Gateway: İsminin çok teknik duruyor olması gözünüzü korkutmasın. Remote procedure call, istemcilerin(client) sunuclarla(server) haberleşmesini sağlayan bir yapı sunar. Yani kullanıcılar olarak bu gateway’i kullanarak ağ ile konuşabiliriz.

Kuhlman’ın Burrow’u anlatırken en çok üzerinde durduğu iki anahtar kelime hız ve kolaylık. Projeyi geliştirirken vadettikleri işlevselliği sunmanın yanında yazılımcılara hızlıca yaratabilecekleri bir ortamı sağlamaya çalışıyorlar.

Hyperledger Indy

Hyperledger Indy

Indy de Hyperledger ekosisteminde adını en çok duyduğumuz projelerden biri. Indy deyince aklımıza ilk gelmesi gereken anahtar kelime dijital kimlik. Indy, kısaca blokzincir ağı üzerinde depolanan dijital kimlikler oluşturmamızı ve doğrulamamızı sağlayan kayıt defteridir. Bu projede blokzincirlerin dağıtık yapısı ön plana çıkıyor. Bunu bir örnekle açıklayalım. Günümüzde kimlik verilerine olan bakışımız merkezi bir bakış açısı. Verilerimiz kurumlar tarafından depolanıyor ve istedikleri gibi kullanıyorlar. GDPR gibi düzenlemelerin adı geçse de buna birçoğumuz güvenmiyoruz. Bunun yanı sıra verilerimizin nasıl depolandığını da bilmiyoruz. Neredeyse hiçbir kurum verilerimizi yüksek güvenlikli bir sistemde saklayacağını taahhüt etmiyor. Örneğin Nisan 2018’de çıkan bir habere göre Facebook, milyonlarca Instagram hesabına ait parolayı düz metin olarak tutuyormuş ve bu parolalara 20000’den fazla çalışanın erişimi bulunuyormuş. Bu örnek, dijital kimliklerden bağımsız olarak verilerimizi saklayan şirketlerin ne kadar umursamaz olabileceğini hayal etmeniz içindi. Bir örnek de Türkiye’den verelim. 2016 yılında 46 milyon Türkiye Cumhuriyeti vatandaşının kimlik bilgileri internete sızdı. Şu anda da rahatlıkla ulaşılabilen bu veritabanında TC Kimlik No, ad, soyad, anne adı, baba adı, yaş, doğum yeri, doğum tarihi, nüfusa kayıt olunan il ve açık adres bulunuyor.

Indy, bu gibi sorunları tamamen çözdüğünü iddia etmiyor. Fakat ayakları yere basan bir vaat olarak dijital kimliklerde alışık olduğumuz denklemi değiştirip kimliklerimizi daha güvenli yapmayı hedefliyor. Bu yeni denklemde herkes kendi kimliğini kendisi yönetiyor. Böylece bir zafiyet milyonlarca kimliği değil bir kimliği hedef alıyor.

Hyperledger Cello

Hyperledger Cello

Cello, Hyperledger ekosisteminin orkestra şefi. Bundan önce bahsettiğim projelerden farklı olarak Cello, ekosistem içinde zincirleri yönetmeyi üstlenmiş bir proje. Daha teknik bir terimle ifade etmek gerekirse Cello, BaaS(blockchain as a service) aracıdır.

Şimdi yönetmek kavramını biraz daha açalım. Hyperledger’ın kurumsal bir çözüm olarak görüldüğü bir senaryoda tek bir blokzincir ağı yeterli olmayabilir. Bu durumda bu ağları yönetmek ve sürdürmek zor olacaktır. Cello ise bu zorluğu bizim için hafifletmeye çalışıyor. Cello’yu kullanarak;

  • Bu zincirleri farklı tipte cloud servislerinde ve container cluster’larda ayağa kaldırabilirsiniz.
  • Çalışan ağların yaşam döngülerine dair her işlemi yönetebilirsiniz.
  • Ağların loglarını, analizlerini takip edebilirsiniz.

Aynı zamanda bu işlemlerin hepsini size sunulan bir dashboard ile yapabilirsiniz.

Hyperledger Composer

Hyperledger Composer

Hyperledger Composer, hızlı ve kolay bir şekilde kurumsal ağlar oluşturmamızı sağlayan bir proje. Bünyesinde barındırdığı araçlarla akıllı kontratlar ve kurumsal ağ tanımı dosyaları oluşturabiliriz. Temel amacı geliştirme süreçlerini hızlandırmak olan Composer projesinin dokümanlarında aylar sürecek bir projeyi haftalar içinde bitirmenizi sağlayacağı vaadi var. Fabric ağını desteklediği için Composer arayüzü üzerinde hazırladığınız bir projeyi doğrudan Fabric ağına import edip kullanabilirsiniz.

Her ne kadar Hyperledger ekosistemi içinde bulunsa da, proje, Ağustos 2018 yılında durduruldu. Simon Stone, yaptığı yazılı bilgilendirmede projenin mimarisi genişledikçe sürdürmenin zorlaştığı gerekçesiyle projeyi durdurduklarını söyledi. Dolayısıyla production seviyesinde kullanmak doğru olmasa da bile Hyperledger Fabric ile geliştirme yapmaya başlamayı düşünen biri için iyi bir ısınma olabilir.

Hyperledger Explorer

Hyperledger Explorer

Daha önce herhangi bir blokzincir ağının block explorer sayfasını açtıysanız bu proje size yabancı gelmeyecek. Hyperledger Explorer ile ağınıza ait birçok bilgiyi sade bir arayüz ile görebilirsiniz. Bu bilgiler arasında katılımcı sayısı, blok sayısı, işlem sayısı, chaincode sayısı, blok ayrıntıları, işlemlere ait detaylar ve grafikler var ve tüm bu bilgiler için API desteği de sağlanıyor. Backend’de NodeJS, frontend’de React, veritabanı olarak da PostgreSQL kullanılıyor.

Hyperledger Quilt

Hyperledger Quilt

Hyperledger Quilt projesi Interledger protokolünün ekosistemdeki uygulaması. Dolayısıyla öncelikle Interledger’ı anlamak gerekiyor. ILP olarak da bilinen bu protokol, kayıt defterleri arasında para transferi yapmayı sağlıyor. Adından daha anlaşılabileceği gibi ILP bir kayıt defteri değil. Yalnızca bu kayıt defterlerinin güvenli bir şekilde mesajlaşıp para transferi yapmasını sağlayan protokol. Hyperledger da Quilt projesi ile ekosistem içinde ILP’yi uyguluyor.

Hyperledger Caliper

Hyperledger Caliper

Bu proje hakkında anlatacak çok fazla bir şey yok. Aslında araç başlığı altında bulunan Aries, Cello, Composer, Explorer, Ursa, Quilt projeleri de tek bir amaca yönelik olarak yapılmış olduğundan ayrıntılı açıklayacak çok da bir şey yok. Caliper aracı Hyperledger ekosistemi içinde performans ölçümü yapan araç. An itibariyle(25 Mayıs 2019) Fabric, Sawtooth, Iroha, Burrow ve Composer projelerini destekliyor. Performans ölçümü için kullandığı belli başlı metrikler var. Bunlar başarı oranı, işlem ve okuma hacmi, işlem ve okuma gecikmesi, kaynak tüketimi.

Hyperledger Ursa

Hyperledger Ursa

Ursa, topluluktaki geliştiricilerin kriptografik fonksiyonları topladığı bir proje. Blokzincir deyince aklımıza ilk gelen kelimelerden biri olan güvenlik ve kriptografi. Dolayısıyla bu proje de platform içinde önemli bir görevi yerine getiriyor. İki alt kütüphaneden oluşuyor, libursa ve libzmix. Libursa kütüphanesi dijital imzalar, anahtar değişimi, kripto gibi işlemleri yerine getirirken libzmix sıfır bilgi ispatı gibi daha karmaşık işlemleri yapıyor. Projede kriptogafi dünyasında best practice olarak kabul edilen yöntem kullanılarak yeni implementasyonlar yazmak yerine libsodium, openssl ve libsecp256k1 kütüphaneleri kullanılıyor.

Hyperledger Grid

Hyperledger Grid

Kurumsal blokzincir çözümlerinde belki de en çok duyduğumuz çözümler tedarik zincirleri hakkında. Grid de bu talebi karşılamak üzere geliştirilmiş bir proje. Özel olarak bir sektöre yöneldiği için Hyperledger platformunda bir ilk olma özelliğini taşıyor. Grid yalnızca bir framework, bir blokzincir değil. Sawtooth blokzincirini kullanıyor ve temel amacı tedarik zinciri uygulamalarını hızlandırmak ve kolaylaştırmak.

Hyperledger Aries

Hyperledger Aries

Bu proje, bazı özellikleriyle Indy ve Quilt’e benziyor fakat kapsam ve proje tanımı bakımından daha geniş bir amaç hedefliyor. Aries’in amacı blokzincir temelli dijital kimlik verilerini saklamak ve paylaşmak. Kimlik verilerini sakladığı için Indy’e benzese de bu verilerin değişimini Indy dışındaki zincirlerle de yapmayı hedefliyor. Cüzdanlar arası iletişim ve güvenli iletişim barındırdığı için de Quilt’e benziyor fakat Aries ILP protokolünü kullanmıyor ve dijital kimliklere odaklanıyor.

Yararlandığım Kaynaklar

Bu yazı ilk olarak https://bctr.org/hyperledger-ekosistemindeki-13-proje-9180/ adresinde yayınlanmıştır.