Hyperledger Fabric nedir?
Tags: blockchain, hyperledger, fabric, blokzincir
Published: 2022-04-17 15:39:39

# Tanımlar

**Hyperledger**, Linux Foundation tarafından desteklenen ve kurumsal kullanıma yönelik sektörler arasında blokzincir teknolojilerini geliştirmek amacıyla oluşturulmuş bir açık kaynak işbirliği çabasıdır.

Hyperledger projesi içerisindeki en önemli bileşen Hyperledger Fabric olarak görülebilir.

**Hyperledger Fabric**, özel ve izinli kurumsal ağlar için _açık kaynak kodlu blokzincir çatısı_ dır. Çok geniş bir alanda kullanılmaktadır ve aslında bu yazımızın konusu da Fabric'in içeriğidir.

# Bileşenler

Blokzincir'deki en önemli kavramlardan bir tanesi olarak "ağ"ı görebiliriz. Hyperledger Fabric, bir blokzincir çatısı olarak kendi içerisindeki en önemli bileşeni de aynı mantık ile **ağ altyapısı**dır. 

Fabric'in bir diğer bileşeni olan **Fabric İstemcisi** yani bir nevi kullanıcı uygulaması sorgu ve güncellemelerini eş düğümler (peers) ile iletişime geçerek yapmaktadır.

Tabi ki eş düğümler ve istemci arasındaki iletişimin güvenli olması, **Membership Services Provider** (MSP) adı verilen **Sertifika Otoritesi**nden oluşturulmuş sertifikalar ile üye kimliğini ve rollerini doğrulayabilmektedir. Bilinmeyen kimlikler kesinlikle Hyperledger Fabric ağında işlem yapamaz. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/549hlc7yhzfovqpe4p4q.png)

**Eş düğümler** (peer nodes), kendi içerisinde defterler (ledgers) ve akıllı kontratları (smart contract) barındırdığı için Fabric ağı için en temel bileşen olarak düşünülebilir. 

Eş düğüm, zincirkodunu (chaincode) yürütür, defter verilerine erişir, işlemleri onaylar (endorses transactions) ve üstte bahsedildiği gibi istemcilere arayüz sağlar. 

**Zincirkodu**, Hyperledger üzerinde akıllı kontratlara verilen isimdir. Genellikle Go dili  ile geliştirilmektedir. Geliştirilen zincirkodu Hyperledger Fabric ağına yüklenebilir. Bunun dışında istemci uygulamaları Fabric SDK üzerinde geliştirilmektedir.

Eşler kendi aralarında konuşabilmek için **kanallar** (channels) adı verilen bir mantıksal yapı ile bağlıdır ve haberleşebilmektedir.

Sıralama Servisi (Ordering service), işlemleri  (transactions) toplamak, blokları hazırlamak, uzlaşma (consensus) algoritmalarını uygulamak ve bir kanaldaki eşlere (peers on a channel) bloklar halinde teslim edilme işini yapmaktadır. Ağ içerisindeki işlem teslimatının garantilendiği yer bu servistir. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vmquxep5ylnka9f3xt14.png)

Eşler (peers), Fabric ağının temelini oluşturmakla birlikte büyük resimde **Organizasyon** adı verilen bir oluşuma bağlı çalışmaktadır. Bir organizasyonda birden fazla eş bulunabilmektedir.

# Blokzincir işlemi nasıl çalışır?

Bir blokzincir işlemi başlatabilmek için istemci, Hyperledger Fabric ağına Fabric SDK API'leri ile bağlanır. İstemciler işlem (transaction) oluşturup, onaylayıcı eş (endorsing peer)'e gönderir.

Onaylayıcı eş, istemcinin imzasını doğrular ve işlemi simüle ederek onay imzası gönderir.

İşlem onaylanırsa, müşterinin oluşturduğu işlem Sıralama Servisi'ne gönderilir. Aksi halde bu adımda iptal edilir.

Sıralama Servisi eşlere işlemi sunar. Tüm eşler aynı işlem siırasını onaylar ve kendi durumlarını güncellerler.

Bu şekilde bir blokzincir işlemi gerçekleşmiş olur.

--------

Rebus me non trado, sed commodo.