Blockchain Yazılımcısı Olmak (1) — Blockchaine Giriş
Geçtiğimiz yıllara oranla blockchain geliştiricisi olmak isteyen sayısı inanılmaz bir artış gösterdi. Bunda kuşkusuz bu sektörde büyük işler yapan geliştiricilerin ve onların projelerinin katkısı çok büyüktür. Son bir yılda özellikle DeFi(decentralized finance) alanında ortaya çıkan takımlar, projeler, topluluklar vs. bu sektörde yazılım anlamında da ne kadar insana ihtiyaç olduğunu gözler önüne serdi.
Ben kişisel olarak 2019 yılının başlarından beri blockchain ekosisteminin içerisindeyim ve o günden bu yana işin yazılımını öğrenmeye devam ediyorum. 2019 yılına kadar blockchain diye bir kavram duymamışken tamamen kişisel gelişim ile 0'dan başlayarak, doğru kaynaklardan çalışarak belli bir seviyeye gelinebileceğini kendime ve çevreme kanıtladım.
Bu medium makale serisinde ise bu sektöre ilk defa giren, kendini blockchain yazılımında geliştirmek isteyen fakat nerden ve nasıl başlayacağını bilmeyen herkese ışık tutacak bilgiler vermeyi, elimde bulunan bütün kaynakları paylaşmayı hedefliyorum. Paylaşacağım kaynakların neredeyse tamamı ingilizce olacaktır. Çünkü henüz türkçe kaynak olarak yeterli seviyede detay anlatan bir şey bulamadım. Eğer isterseniz kendiniz verdiğim konular hakkında türkçe kaynak var mı diye araştırabilirsiniz. Bunu yaparken kendim hangi yolu izledim ve kendimi nasıl geliştirdiğim üzerinden anlatmayı düşünüyorum. Bunun sebebi ise okuyanlara belli bir sıralamayı göstermek ve aslında bunun bir süreç olduğunu göstermektir. Son olarak bu seride hiçbir şeyi reklam yapmak amacıyla paylaşmayacağım.
Hazırsanız başlayalım…
Başlangıç olarak blockchainin ne olduğunu konusunu çok iyi anlamak gerekiyor. Bitcoin blockchaini, Ethereum blockchaini nedir, Proof of Work, Proof of Stake vs. bu gibi temel bilgileri kesinlikle öğrenmek gerekiyor. Ben bunlar için iki tane udemy kursu önerebilirim. Güncel olmayabilirler ama temeli çok iyi anlatan kurslar olduğuna eminim. Bunlar benim izlediklerim olduğu için rahatça paylaşabiliyorum, güncel olarak daha iyi kurslar belki vardır, kendinizin de araştırmasını tavsiye ederim.
Bu seride paylaşacağım kaynakların yanında bu kursları da sırasıyla alttan alttan izlemenizi kesinlikle tavsiye ederim.
Bu kurs temel anlamda blockchainin ne olduğu, işin kripto tarafını ve akıllı kontrat tarafını güzel bir şekilde ele alan bir kaynak diyebilirim.
Ethereum and solidity the complete developers guide
Bu ikinci kurs ise ilkini bitirdikten sonra izlenmeli. Çünkü yine kısa bir temel bilgi verip gerçek hayat örneklerine geçiyor. Bu kurs da güncel değil ve kullandığı kütüphaneler, versiyonlar çok eski olabilir. Bu yüzden çoğu kısmını yazmak yerine sadece izlemenizi öneririm.
Bu videolu içeriklerinden sonra ConsenSys Academy Developer Bootcamp den edindiğim kaynakları konu başlıkları şeklinde aşağıda paylaşacağım. Bu şekilde temelden başlayarak ileri düzeye doğru her konuyu detaylı bir şekilde öğrenme imkanımız olacak. Blockchaine giriş ile başlayalım. Burda temel konseptleri kısa videolar ve yazılı kaynaklar ile öğrenelim.
1- Blockchaine Genel Bir Bakış
Dağıtık Defterler
- Dağıtık Defterler hakkında kısa video
Consensus Mekanizmaları
- Consensus Mekanizmaları hakkında kısa video
- Bizans generalleri problemi olarak bilinen bu konuyu direk wikipedia üzerindeki bu makaleden okumanızı tavsiye ederim.
- Proof-of-work ve proof-of-stake konusunu görselle anlatan çok güzel bir yazı.
- Consensus hakkında biraz daha üst düzey bir makale fakat içerik olarak oldukça zengin
Ethereum da Mining
- Ethereum’da mining hakkında kısa video
- Ethereum wiki üzerinde yayınlanmış olan Mining konseptine dair her şeyin anlatıldığı bir yazı.
Public ve Private Blockchain
- Public ve Private blockchainler hakkında kısa video
- Bizzat Vitalik Buterin tarafından yazılmış, public ve private blockchainleri anlatan biraz üst seviye bir yazı.
Kısa videolar Consensys Academia tarafından çekilmiş öğretici içeriklerdir. Mutlaka önce onları izleyip sonra diğer kaynaklara bakalım. Bu kaynaklar sadece okuyup fikir edinebileceğiniz kaynaklar olmakla beraber ingilizce seviyenize göre anlamakta zorluk da çekebileceğiniz yazılardır. Fakat yine okumaya ve anlamaya çalışmanızı tavsiye ederim. Ayrıca bu kaynaklara bakmadan önce internet üzerinde blockchain nedir, proof of stake nedir vs. şeklinde türkçe olarak da aratıp eğer varsa türkçe kaynakları okuduktan sonra bunlara geçmenizi tavsiye ederim. Çünkü fikir sahibi olarak okumak daha yararlı olacaktır.
2- Blockchain Temelleri
Kriptografik Hash Fonksiyonları
- ConsenSys tarafından yazılmış hashing konseptini anlatan oldukça güzel bir yazı.
- Wikipedia da yazılmış kriptografik hash hakkında çok kısa bir yazı.
- Videolu olarak izlemek isteyene de Khan Academy tarafından hazırlamış 10 dakikalık güzel bir video
Merkle Tree Yapısı
Merkle Tree özellikle ethereum zincirinde ki block yapılarında çekirdek bir konsept olma özelliğine sahiptir.
- Vitalik Buterin tarafından yazılmış temel bir yazı.
- ConsenSys tarafından yazılmış, resimler ile detaylandırılmış oldukça açıklayıcı bir makale.
Blockchain Yapısı
- Blockchainin ne olduğunu, block yapısının ne olduğunu temel seviyede anlatan belki de en iyi kaynak diyebilirim.
- Bitcoin wiki de çıkmış kısa ve güzel bir blockchain yazısı.
- Solidity dökümanında yazılmış güzel bir blockchain tanımı yazısı
Akıllı Kontratlar
- Akıllı kontratlara genel bir bakış açısından oldukça güzel bir kaynak
Blockchain Çatallanmaları
Şimdi ise kısa bir hikaye olarak Ethereum tarihinde yaşanan ilk ve en önemli çatallanmalardan birini anlatalım. DAO hack olarak bilinen olay 2016 yılında yani ethereum çıktıktan sadece 1 yıl sonra az daha ethereumun sonunu getirecek bir olay olarak tarihe geçmiştir. DAO (Decentralized Autonomous Organizations) amaç olarak kripto için risk sermayesi olarak çalışacak bir dizi contract projesi olarak söylenebilir. Token satışında $150 milyon dolarlık ether kontratlara kitlendi ve kontratların ağa deploy edilmesi yani canlıya geçilmesi beklendi. Canlıya alındıktan kısa bir süre sonra ise $60 milyon dolarlık ether kontratlardaki bir açık yüzünden çalındı.
Bu olayın ardından ethereum topluluğundan çoğu kişi çatallanma yoluna gitmek istedi. Yani paranın çalındığı blok numarasından öncesinde olan blokları kabul ederek o zincirden çatallanmak istediler. Bir kısım ise bu durumun blockchainin değişmezlik yasasına ters düştüğünü savunarak kabul etmedi ve ethereum, “Ethereum” ve “Ethereum Classic” olarak ikiye ayrıldı. Bu durum ethereuma olan güveni inanılmaz sarsmış ve az daha ethereumun tamamen bitmesine sebep olacaktı.
Bu makalede sadece yukarıdaki iki konuyu paylamış olacağım. 10–11 konu başlığı altında kaynak paylaşmayı hedefliyorum. En temelden ileri seviyeye kadar olacak şekilde sıralayacağım. Paylaştığım kaynaklar benim çalıştığım, okuduğum kaynaklar, tabiki başka daha iyi kaynaklar vardır muhakkak. Bunlardan edinilen bilgiler ile gerekli araştırmaların yapılabileceğini daha doğrusu en azından neyin araştırılması gerektiği konusunda fikir oluşacaktır.
Bu yazıyı sonlandırmadan şunu söylemeliyim ki kaynak paylaşımı bittikten sonra vereceğim tavsiye yazıları ve sektörde insanların advance olarak nitelendirdiği konular (Zk-Rollups, Layer 2 çözümleri, Oracles vs.)hakkında kendi araştırmalarım doğrultusunda makale şeklinde buradan yayınlamayı düşünüyorum.
Bir sonraki yazımda görüşmek dileğiyle…
Murat ÇELİKTEPE
LinkedIn → celiktepemurat
Twitter → muratctp