Genel olarak, blockchain sistemi zordur. Bir geliştirici olarak bu size iki seçenek sunar: Uygulamanızı bir blok zinciri ortamında oluşturabilir veya kendi blok zincirinizi oluşturmak için kodu oluşturabilirsiniz. Ancak kendi blok zincirinizi oluşturmak kolay değildir – bir ağ oluşturmanız ve hangi kimlik doğrulama yöntemini kullanacağınıza karar vermeniz gerekir.
Tendermint Nedir?
Tendermint, herhangi bir dilde uygulama yazmak için blok zincirler oluşturmaya yönelik açık kaynaklı bir yazılımdır. Daha da iyisi, bu blok zincirler diğer blok zincirlerle iletişim kurabilir.
Bir kripto para ya da blockchain ağı yaratmak, bir veritabanı oluşturmaktan çok daha fazla çaba gerektirir. Teşviklerin hassas bir şekilde dengelenmesine ve güvenlik, merkeziyetsizlik ve ölçeklenebilirlik arasında bir kar zarar dengesinin kurulmasına ihtiyaç vardır.
Tahmin edebileceğiniz gibi en güçlü blockchain ekosistemini yaratmayı amaçlayan ekipler, bu hedefe ulaşmak için bugüne kadar farklı birçok yaklaşım benimsemiştir. Bu makalede, böyle yaklaşımlardan biri olan Tendermint’i inceleyeceğiz.
Blockchain Mimarisini Anlamak
Tendermint bir tür blockchain koleksiyonudur. Tabii ki, Bitcoin ve Ethereum gibi diğer ağlar da bir araya toplanmıştır. Bu sadece blok zinciri veritabanıyla ilgili değil, aynı zamanda eşler arası ağ geçitleri ağı, bu ağ geçitlerinin nasıl etkileşime girdiği, akıllı sözleşmeler ve nasıl iş yapılacağı ile ilgili. Amaç herkesin mevcut duruma (veritabanının bir resmi olarak görülebilir) inanmasıdır ve bu inanç için herhangi bir güvene gerek yoktur.
Bugün birçok büyük blok zinciri bunu mümkün kılmanın yollarını buldu. Ancak bu blok zincirlerin çoğu monolitik mimariye dayanmaktadır. Monolitik mimari, bileşenlerin birbirine bağlı ve birbirine bağımlı olduğu anlamına gelen bir yazılım mühendisliği konseptidir. Başka bir deyişle, bir kağıt parçası alıp başka bir yere koyamazsınız. Esneklik istiyorsanız, monolitik mimari size göre değil.
Diğer tipte (modüler mimari), sistemi bozma riski olmadan her parçada değişiklik yapabilirsiniz. Monolitik bir binada, yalnızca bir şeyi kaldırırsanız, diğer tüm şeylerin ona uyduğundan emin olmak istersiniz.
Bu farktan bahsettiğimize göre artık Tendermint sürecinin detaylarına geçebiliriz.
Bizans Hatası Toleransı (BFT)
Bitcoin’in getirdiği en önemli yeniliklerden biri Bizans hiyerarşi sorununun çözülmesidir. Bu sorunun ayrıntılarına burada girmeyeceğiz (daha fazla bilgi için Bizans Hata Toleransı hakkındaki makalemizi okuyun). Bu noktada bilmeniz gereken tek şey, bu testin dağıtık bir ortamda birbirleriyle iletişim kurması gereken katılımcılar için olduğudur.
Bu taraflar, başkalarının yalan söyleyip söylemediğini veya gönderilen mesajların değiştirilip değiştirilmediğini söyleyemez. Katılımcılar, bu sorunlar varken bile işlerin doğru olduğu konusunda hemfikirse, bir sistemin Bizans Hata Toleransına (BFT) sahip olduğu söylenebilir.
Elbette bunun ön yargısız bir şekilde gerçekleştirilmesi çok önemlidir. Bizans hata toleransı olmayan kripto para birimlerinin gerçekten işlevsel olduğu söylenemez – orijinal amacı bozan işleme için bir tür orta zemine ihtiyaçları vardır. Çoğu dijital para birimi gibi, Bitcoin de bu sorunu bir iş kanıtı (PoW) doğrulama algoritması ile çözer.
Bir Blockchainin Üç Katmanı
Bu noktada, monolitik/modüler mimari ile merkezi olmayan kripto para ağlarının Bizans hata toleransına sahip olması gerektiği gerçeği arasındaki farkı biliyoruz. Blockchain’de karşılaştığımız üç katmandan bahsedelim: uygulama katmanı, doğrulama katmanı ve ağ katmanı. Ağ bağlantılı bir ağda, düğümler iletişim kurar ve mevcut gerçeklik üzerinde fikir birliğine varmaya çalışır. Uygulama katmanı, bir şeyler yapabileceğiniz bir katmandır – örneğin, merkezi olmayan bir uygulama ve Ethereum’da akıllı bir sözleşme veya Bitcoin’de özel bir işlem.
Tendermint Core
Öncelikle terimi kısaca tanımlayalım. Yalnızca teknolojiye odaklandığımız için burada “Tendermint” ve “Tendermint Core” terimlerini birbirinin yerine kullanacağız. Ama elbette, Tendermint şirketin adıdır (ilk teknik incelemeyi yazan geliştirici Jae Kwon tarafından kurulmuştur) ve Tendermint Core şirketin işletim yazılımıdır. Yazılımın ayrıca iki ana bileşeni vardır: ihale yönetimi çekirdeği (Tendermint Core) ve uygulama arayüzü (ABCI). Tendermint Core, hataya dayanıklı bir sistemdir. Özünde, herkese bir seferde bir durum gösteren büyük bir dağıtılmış bilgisayardır. Katılımcıların üçte ikisi dürüst olduğu sürece her şey yolunda gidiyor. Ama aslında, neredeyse tüm blok zincirleri bu şekilde çalışır. Peki Tendermint’i bu kadar özel yapan nedir?
İlk olarak, kullanılan doğrulama yöntemi Proof of Stake’dir (PoS). Her dönem için bir grup katılımcıdan rastgele bir düğüm seçilir. Bu eşik, bir sonraki bloğu belirlemek için gereklidir (yuvarlak robin adı verilen bir süreçte). Diğer sponsorlar teklifi kabul ederse yeni blok eklenecek ve zincir güncellenecektir. İşlemler gerçek zamanlıdır – Bitcoin ve Ethereum’dan farklı olarak, işleminizin geçerli olduğundan emin olmak için onay beklemeniz gerekmez. Ama hepsi bununla ilgili değil. Tendermint Core mimarisi modülerdir. Uygulama katmanı, kimlik doğrulama ve ağ katmanından ayrılmıştır. Bu, koleksiyona kendi uygulama katmanınızı ekleyebileceğiniz anlamına gelir. Bunu yapmak için herhangi bir motivasyon veya algoritmik onay üzerinde çalışmanıza gerek yok.
Bu özellik son kullanıcı için ilgi çekici olmayabilir. Ancak geliştiriciler için mevcut sistemlerden yararlanabilmek için; sıfırdan bütün bir ağ oluşturmak zorunda kalmadan hemen ayağa kalkıp çalışmaya devam edebilmek anlamına gelir. Blok zinciri verileri gömülü bir katmana iletilebilir, böylece geliştiriciler yazılım oluşturmak için herhangi bir dili kullanabilir. Bunu mümkün kılan, Uygulama Blok Zinciri Arayüzü veya kısaca ABCI’dir. ABCI’yi Raspberry Pi bilgisayarına taktığınız bir GPIO (genel amaçlı giriş) olarak düşünebilirsiniz. LED’lerden bitkileriniz için çoklu sulama sistemlerine kadar çeşitli başka şeyler bağlayabilirsiniz. Benzer şekilde ABCI, blok zinciri ve üzerinde çalışan uygulamalar arasındaki sınırları tanımlar.