in Blockchain

Blockchain Uygulama Geliştirme Rehberi – Genel Bakış – v1

Blockchain Uygulama Geliştirme Rehberi – Genel Bakış

Son yıllarda Blockchain üzerine hem Decentralized Application(DApp) hem de protokol seviyede geliştirmeler yapıyoruz. Blockchain sektörünün gelişmesi ve artık hangi sektörde hangi sorunların çözülebildiğine dair birçok örnek ortaya çıkması nedeniyle çeşitli sektörlerden bu konularla ilgili yoğun şekilde eğitim, danışmanlık ve proje teklifleri almaya başladık. Bu nedenle hem geliştiricilerin bu alanla ilgili hızlı bir fikir sahibi olmasını sağlamak, hem de sürekli gelen Blockchain sorularına toplu cevaplar verebilmek için Blockchain Uygulama Geliştirme Rehberi sunum ve makale serisi başlattım. Bu çalışmaları farklı versiyonlar şeklinde zaman içerisinde güncelleyip yenileyerek tekrar tekrar yayınlayacağım.

Sunumun başlığındaki Genel Bakış ibaresini ise Blockchain’e DApp ya da Protocol Level odağı olmadan çok genel bir bakış yapmayı hedeflediğim için kullandım. Daha sonra daha teknik ve DApp ile Protocol Level olmak üzere iki ayrı çalışmayı daha yapıp onları da bu şekilde güncelleyerek sektöre ek birkaç kaynak oluşturmayı hedefliyorum.

Aynı zamanda bu sunumun amacı, Blockchain alanında sürekli olarak ihtiyaç oluşmaya başlaması(bizim girişimlerimiz için de öyle) nedeniyle sektördeki eksiği kapatmak için temel kaynakları oluşturmaktır.

Blockchain Sunumu:

Blockchain Sunum İçeriği:

Satoshi Nakamoto

Bitcoin Nedir?

Blockchain Nedir?

  • Transaction gibi verileri depolayan ve bu verileri kendi ağının tüm node’larında halka açık olarak paylaşan dağıtılmış ve merkezi olmayan bir defterdir.

Ledger? Nedir

  • Bir organizasyonun tüm işlemlerini saklayan bir kayıt defteridir.


Centralized Mimari Nedir?

  • Bir varlık veriyi kaydeder.
  • Merkez varlığın çok fazla gücü var.
  • Para cezası ya da ödüllendirme için tam yetkilidir.
  • Varlığa tam güven(mek zorunda olmak).

Distributed Mimari Nedir?

  • Centralized mimarideki gibi merkezi bir güç tarafından yönetilir.
  • Dağıtık olmasının nedeni teknik verimlilik/performans sağlamaktır.

Decentralized Mimari Nedir?

  • Herkes veriyi kaydeder.
  • Herkes eşit güce sahiptir.
  • Adil ve şeffaf bir sistemdir.
  • Güvensizdir(Trustless).


Ne Algoritması?

LinkedList!

Blockchain = LinkedList

Blockchain Vs. Traditional DBs

  • Merkeziyetçilik
  • Performans
  • Gizlilik

Blockchain Vs. Traditional DBs

Blockchain Ne Sunar?

  • Ortak ve Sıralı Kayıt Defteri
  • Güvenlik
    • Son derece güvenli ve merkezi bir hata noktası yok.
  • Otonomi
    • Aracı kişi ve kurumlardan ve onların ek maliyetleri aradan çıkarmak.
  • Değişmezlik
    • İşlenmiş bir veri değiştirilemez!
  • Şeffaflık
    • İlk Bitcoin hesabının yıllar önce gerçekleştirdiği tüm transaction’ları bile herkes görebilir.

Blockchain ile Neler Yapılabilir?

  • Ödeme İşlemleri
  • Yurtdışına Para Gönderme
  • Değişmezlik İspatları
  • Seçim / Yönetim
  • Kitlesel Fonlama
  • Paylaşım Ekonomisi
  • Tedarik Zinciri Denetimi
  • Dosya Depolama
  • Fikri Mülkiyetin Korunması
  • Nesnelerin İnterneti (IoT)
  • … bildiğimiz ve henüz bilmediğimiz birçok alanda daha…




Blockchain Uygulaması : Kriptopara

  • Kriptopara bir dijital değiş tokuş aracıdır.
  • Kriptoparanın üç ana özelliği vardır:
    • Güvenli Bir Blockchain
    • Cüzdanlar
    • Madencilik

Kriptopara‘da Dijital İmza

  • Güçlü bir blockchain(!)
    • Dijital imzalar için kriptografi kullanmak

Kriptopara‘da Dijital İmza

Kriptopara‘da Dijital İmza

Kriptopara‘da Dijital İmza

Kriptopara‘da Dijital İmza


Kriptopara Cüzdan

  • Bir varlığın özel(private) ve genel(public) anahtarını depolayan nesnelerdir.
  • Genel(public) anahtar cüzdanın adresidir.

Kriptopara Madencilik

  • Tüm transaction’lar geçici olarak onaysızdır.
  • Bir proof of work algoritması çözerek transaction bloklarını dahil etmek:
    • Çözmek zor ve bilgisayar hesaplama gücü gerektiriyor. Ve pahalı…
    • Bir kez çözüldükten sonra madenci bloğu ekleyebilir ve diğer madenciler doğrular.
    • Madenciler zincire bir blok eklediği için ödüllendirilir.
    • Hesaplama zorluğu gelen yeni blokların oranını kontrol etmek için ayarlanabilir.

Blockchain Uygulama Seviyeleri

  • Protocol Level Blockchain
    • Çekirdek seviyede Blockchain mimarisi ve hizmeti oluşturmak/geliştirmek için kullanılır.
    • Algoritmik seviyede Blockchain kurallarının uygulandığı katmandır.
    • Bu bir CryptoCurrency de olabilir, endüstriyel amaçla geliştirilmiş bir mimari de…
    • Öğrenmesi ve geliştirme süreci zor ve uzmanlık gerektirir. –Genellikle yoğun hesaplama gerektirdiği için dil/teknoloji seçimlerinde performansa bakılır.
    • Low-Level Blockchain katmanıdır.
  • Application Level Blockchain (Decentralized App[DApp])
    • Protokol seviyesindeki bir mimari/hizmet üzerinde çalışan Blockchain kod parçalarına denir.
    • DApp(Decentralized Application) olarak isimlendirilir.
    • Tabi olduğu kurallar üzerinde bulunduğu Blockchain protokolü tarafından belirlenir.
    • Öğrenmesi ve geliştirme süreçleri göreceli olarak kolaydır.
    • High-Level Blockchain katmanıdır.
    • High-Level olduğu için kullanılan dilde daha çok Developer Friendly özellikler tasarlanır/aranır.

Blockchain Uygulama Seviyeleri

Protokol seviyeli Blockchain geliştirme ile Decentralized App(DApp) geliştirmek birbirinden neredeyse tamamen farklıdır.

Protocol Level hizmete bir işletim sistemi dersek, DApp uygulamaları o işletim sistemi üzerindeki bilgisayar programları gibidir. İkisinin de amaç ve hedeflemesi, farklı olduğu gibi zorlukları ve gereklilikleri farklıdır.


Protocol Level Blockchain (Örnek Girişimler)

Application Level Blockchain (Örnek Girişimler)

DApp Uygulamaları (Decentralized Application)

DApp Uygulamaları (Decentralized Application)

Blockchain Nasıl Çalışır?

Blockchain Mimari Komponentleri

  • Node
    • Blockchain içindeki kullanıcı ya da bilgisayar.
  • Transaction
    • Blockchain sisteminin en küçük yapı taşı.
  • Block
    • Ağdaki tüm düğümlere(node) dağıtılmış bir işlem kümesini tutmak için kullanılan bir veri yapısı
  • Chain
    • Belirli bir sıradaki blok dizisi.
  • Miner
    • Blok doğrulama işlemini gerçekleştiren belirli düğümler(node)
  • Consensus
    • Blockchain işlemlerini gerçekleştirmek için bir dizi kural ve düzenleme.




Nonce  : Hedef hash değerini elde etmek için gereken sayı.
Data     : Kullanıcının blokta saklamak istediği herhangi bir veri.
Hash     : Miner tarafından üretilir ve hedefi belli bir pattern’e sahip olan hash’i bulmaktır.

Blockchain İçin Programlama Dilleri (Protocol Level)

  • C++
    • Performanslı ve low-level bir dil olduğu için en çok tercih edilen dillerden biridir.
  • Go
    • Performanslı ve low-level bir dil olduğu için en çok tercih edilen dillerden biridir.
    • C’nin gücüyle birlikte web ve veri uygulamalarındaki gücü nedeniyle ekstra değere sahiptir.
  • Rust
    • Performanslı ve low-level bir dil olduğu için en çok tercih edilen dillerden biridir.
    • Gücü ve low-level’daki avantajları(C/C++’a göre) nedeniyle tercih ediliyor.
  • C#
    • Dil ve platform gücü nedeniyle birçok projede tercih edilir.
    • Microsoft’un cross-platform’daki geç adımları nedeniyle diğer dillerin yerine geçmesi zor.
  • Python
    • Açık kaynaktaki gücü nedeniyle bilgi kaynakları ve örnek projeler genellikle bu dille hazırlanır.
  • Node.js (JavaScript)
    • Büyük protokol seviyeli Blockchain projelerinde pek tercih edilmez. Ancak hem Blockchain algoritmalarının öğrenilmesini kolaylaştırmak, hem de yaygınlığını artırmak için kullanıldığı gibi, hem de orta büyüklükteki Blockchain projelerinde kullanılabiliyor.

Blockchain Uygulama Geliştirmeye Nereden Başlamalı?

Protokol seviyesinde geliştirme yapmak daha zordur ve daha yoğun çalışma gerektirir. Bu nedenle genel çalışma mantığını anlamak için Ethereum üzerinde Solidity programlama dilini kullanarak akıllı kontratlar geliştirmekle başlanmasını öneririm. Bu sayede bir DApp geliştirici olarak Blockchain geliştirici olunabilir.

Blockchain için Cloud Hizmetleri

Blockchain İçin Uzmanlık Alanları

  • Blockchain Developer : Protocol Level
  • Blockchain Developer : Application Level
  • Blockchain Database Developer
  • Blockchain DevOps Expert
  • Decentralized AI Developer

Blockchain İçin İnceleme Önerileri

Blockchain İçin Araştırma Tavsiyesi (Decentralized AI)

  • Blockchain + ArtificialIntelligence

Blockchain İçin Araştırma Tavsiyesi (Hashgraph, hedera.com)

Awesome Blockchain

Başarılar.
Cihan Özhan

Write a Comment

Comment