Successfully reported this slideshow.
Your SlideShare is downloading. ×

Blockchain : Decentralized Application Development (Turkish)

Blockchain : Decentralized Application Development (Turkish)

www.cihanozhan.com

*It is the presentation of my blockchain event that I presented in 2019.

Teknopark Istanbul Announcement : https://www.teknoparkistanbul.com.tr/egitimler/blockchain-decentralized-uygulama-gelistirme-sunumu

www.cihanozhan.com

*It is the presentation of my blockchain event that I presented in 2019.

Teknopark Istanbul Announcement : https://www.teknoparkistanbul.com.tr/egitimler/blockchain-decentralized-uygulama-gelistirme-sunumu

More Related Content

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Blockchain : Decentralized Application Development (Turkish)

  1. 1. Blockchain Decentralized Application Development Cihan Özhan | Founder of DeepLab.co | Developer/Hacker, AI Engineer, Data Master, Author
  2. 2. Bitcoin? • bitcoin.pdf – 31 Ekim 2008’de yayınlandı. – 8 sayfa, 12 bölüm – Satoshi Nakamoto – https://bitcoin.org/bitcoin.pdf
  3. 3. Blockchain? • 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.
  4. 4. Ledger? • Bir organizasyonun tüm işlemlerini saklayan bir kayıt defteridir.
  5. 5. Centralized? • 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).
  6. 6. Distributed? • Centralized mimarideki gibi merkezi bir güç tarafından yönetilir. • Dağıtık olmasının nedeni teknik verimlilik/performans sağlamaktır.
  7. 7. Decentralized? • Herkes veriyi kaydeder. • Herkes eşit güce sahiptir. • Adil ve şeffaf bir sistemdir. • Güvensizdir(Trustless).
  8. 8. Ne Algoritması?
  9. 9. LinkedList!
  10. 10. Blockchain = LinkedList
  11. 11. Blockchain Vs. Traditional DBs • Merkeziyetçilik • Performans • Gizlilik
  12. 12. Blockchain Vs. Traditional DBs
  13. 13. 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.
  14. 14. 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…
  15. 15. Blockchain Pratiği (Kriptopara) • Kriptopara bir dijital değiş tokuş aracıdır. • Kriptoparanın üç ana özelliği vardır: – Güvenli Bir Blockchain – Cüzdanlar – Madencilik
  16. 16. Blockchain Pratiği (Kriptopara) • Güçlü bir blockchain(!) – Dijital imzalar için kriptografi kullanmak…
  17. 17. Dijital İmza (Kriptopara)
  18. 18. Dijital İmza (Kriptopara)
  19. 19. Dijital İmza (Kriptopara)
  20. 20. Dijital İmza (Kriptopara)
  21. 21. Cüzdan (Kriptopara) • Bir varlığın özel(private) ve genel(public) anahtarını depolayan nesnelerdir. • Genel(public) anahtar cüzdanın adresidir.
  22. 22. Madencilik (Kriptopara) • 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.
  23. 23. Blockchain Seviyeleri (Blockchain Levels)
  24. 24. Blockchain Seviyeleri • Protocol Level – Ç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 (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.
  25. 25. Blockchain 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.
  26. 26. Protocol Level (Örnek Girişimler) • Bitcoin – https://bitcoin.org – bitcoin.pdf(EN) – bitcoin.pdf(TR) – https://github.com/bitcoin/bitcoin, C++ • Ethereum – https://ethereum.org/ – https://github.com/ethereum, Go • Tezos – https://tezos.com/ – https://gitlab.com/tezos/tezos, F# • NEO – https://neo.org/ – https://github.com/neo-project, C# • HyperLedger – https://www.hyperledger.org/ - Introduction to HyperLedger – https://github.com/hyperledger, Go, Rust • Corda – https://www.corda.net/ – https://github.com/corda/corda, Java
  27. 27. Application Level (Örnek Girişimler) • Etherem, Solidity Programming Language – https://ethereum.org/ – https://ethereum.org/developers/#smart-contract-languages – https://geth.ethereum.org/ – Solidity • https://github.com/ethereum/solidity • https://solidity.readthedocs.io/en/v0.6.3/
  28. 28. DApp Uygulamaları (Decentralized Application) • NEUFUND : https://neufund.org/ • Aion Network : https://aion.network/ • SingularityNET : https://singularitynet.io/ • Santiment : https://santiment.net/ • OpenZeppelin : https://openzeppelin.com/contracts/ • IoTex : https://www.iotex.io/ • Civil : http://joincivil.com/ • Metamask : https://metamask.io/ • OmiseGO : https://omisego.network/ • TrustWallet : https://trustwallet.com/ • Gnosis : http://gnosis.pm/ • Raiden Network : https://raiden.network/ • High Fidelity : https://highfidelity.com/
  29. 29. DApp Uygulamaları (Decentralized Application) • Ox : https://0x.org/ • Origin Protocol : https://dapp.originprotocol.com/#/ • Aragon : https://aragon.org/discover/ • Cosmos : https://cosmos.network/ • Augur : https://www.augur.net/ • Storj : https://storj.io/ • Status : https://status.im/
  30. 30. Blockchain Nasıl Çalışır?
  31. 31. 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.
  32. 32. Merkle Tree
  33. 33. 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.
  34. 34. Programlama Dilleri (Blockchain, 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.
  35. 35. 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.
  36. 36. Blockchain için Cloud • Azure – https://azure.microsoft.com/tr-tr/solutions/blockchain/ • Amazon – https://aws.amazon.com/tr/blockchain/ • IBM – https://www.ibm.com/tr-tr/blockchain • Oracle – https://www.oracle.com/tr/blockchain/
  37. 37. Blockchain Uzmanlık Alanları • Blockchain Developer : Protocol Level • Blockchain Developer : Application Level • Blockchain Database Developer • Blockchain DevOps Expert • Decentralized AI Developer
  38. 38. İnceleme Önerileri (Girişim Projeleri) • https://www.hyperledger.org/ • https://ethereum.org/ • https://bitcoin.org • https://u.network/ • https://neo.org/ • https://eos.io/ • https://cosmos.network/ • https://www.cortexlabs.ai/ • https://www.iotex.io/ • https://ont.io/ • https://www.deepbrainchain.org/ • https://singularitynet.io/ • https://www.bigchaindb.com/ • http://nethereum.com • https://www.blockchain.com/api
  39. 39. Araştırma Tavsiyesi (Decentralized AI) • Blockchain + Artificial Intelligence
  40. 40. Araştırma Tavsiyesi (Hashgraph, hedera.com)
  41. 41. Awesome Blockchain • https://github.com/igorbarinov/awesome-blockchain • https://github.com/imbaniac/awesome-blockchain • https://github.com/dily3825002/awesome-blockchain • https://github.com/yjjnls/awesome-blockchain • https://github.com/chaozh/awesome-blockchain-cn • https://github.com/openblockchains/awesome-blockchains • https://github.com/steven2358/awesome-blockchain-ai • https://github.com/CityOfZion/awesome-neo • https://github.com/machinomy/awesome-non-financial-blockchain • https://github.com/jpantunes/awesome-cryptoeconomics • https://github.com/ong/awesome-decentralized-finance • https://github.com/Netherdrake/awesome-eos • https://github.com/rust-in-blockchain/awesome-blockchain-rust • https://github.com/hashgraph/awesome-hashgraph • https://github.com/learndapp/awesome-libra • https://github.com/Guppster/awesome-ark
  42. 42. Awesome Blockchain • https://github.com/skcript/awesome-hyperledger • https://github.com/koltenb/awesome-stellar • https://github.com/toadkicker/awesome-ethereum • https://github.com/nongiach/awesome-cryptocurrency-security • https://github.com/Mikerah/awesome-privacy-on-blockchains • https://github.com/openblockchains/awesome-libra • https://github.com/transmute-industries/awesome-smart-contracts • https://github.com/soulmachine/awesome-blockchain-whitepapers • https://github.com/istinspring/awesome-blockchain • https://github.com/obxium/awesome-crypto-art
  43. 43. Cihan Özhan Bağlantılar • cihanozhan.com • linkedin.com/in/cihanozhan • medium.com/@cihanozhan • youtube.com/cihanozhan • twitter.com/UnmannedCode • github.com/cihanozhan E-Mail • cihan@deeplab.co

×