Merkeziyetsiz finans (DeFi) dünyası, işlemlerin bloklara kaydedildiği ve düğümler tarafından doğrulandığı merkeziyetsiz umumi dijital hesap defterleri üzerinde çalışmaktadır. Her gün milyarlarca USD, blockchainler üzerinde çalışan platformlarda dijital coin ve token formunda el değiştirmektedir. Şu anda sadece DeFi’da kilitlenmiş 90 milyarın üzerinde USD bulunmaktadır. Para ve varlıklar takas edilmektedir ve her gün yeni platformlar olan DApp’ler, ve blockchainler faaliyete geçmektedir. O zaman hayal edelim, bu ürünler herhangi bir şekilde gerçekçi koşullar altında test edilmeden faaliyete geçseydi ne olurdu? Kaçınılmaz olarak sorunlar ortaya çıktığında milyonlarca kişi para kaybedebilir ve tüm DeFi sahası kötü bir ün kazanabilirdi. Testnet ve mainnet’ler bu sebepler nedeniyle bulunmaktadır.
Testnet Nedir?
Testnet, blockchainleri veya blockchain projelerini faaliyete geçmeye hazır olmadan önce çalıştırmak ve test etmek için kullanılan bir test blockchainidir. Testnet, programcılar ve geliştiriciler için projelerinin fonksiyonalitelerini oluşturmak, değiştirmek ve test etmek için olduğu gibi bunları halka erişime sunmadan öncesinde performanslarını görüntülemenin de basit yoludur. Burada geliştiriciler herhangi bir sorunu giderebilmekte ve hataları düzeltebilmektedirler.
Bir tesnet ortamında, birden çok test tekrarlanarak gerçekleştirilebilmektedir. Bu, performans karşılaştırmasına olanak vermektedir ve bunun sonucunda tutarlılık kontrol edilebilmektedir. Mainnet’ten bağımsız olarak çalışan testnetler, mainnet’teki işlemleri kesmeden blockchain projesinin tam şekilde test edilmesine olanak vermektedir. Bu sandbox modeli geliştiricilerin risk almalarına, deney yapmalarına ve böylelikle faaliyete geçecek olası en iyi modeli yaratmalarına olanak vermektedir.
Prototip olarak testnet, asla değeri olan herhangi bir şeyin transferinde kullanılmamalıdır ve bu yüzden testnetler, protokollerini çalıştırmak için sahte para veya tokenlar kullanırlar. Geliştiriciler sıklıkla kendi blockchainlerini inşa etmek ve denemek için de testnetleri kullanırlar ve sonuçtan memnun kaldıklarında projelerini faaliyete geçirirler. Tesnet’ler, mainnet’te daha hızlı ve daha güvenli bir başlangıca olanak verir.
Mainnet Nedir?
Mainnet, blockchain veya blockchain projesinin çalıştığı “ana” “net,” veya ağdır. Bu, mantıken testnette gerekli tüm denemelerin tamamlanmasından sonra gelen aşamadır. Bir mainnet, kripto para işlemlerinin verimli şekilde gerçekleştirilebildiği, isabetli doğrulanabildiği ve güvenli biçimde kaydedilebildiği tamamen faaliyete geçmiş netten oluşmaktadır. Geliştiriciler bir mainnet yerleştirerek, blockchainin kapasitesine güvenlerinin tam olduğunu belirtirler. Tamamen fonksiyonel bir blockchain olarak mainnetler, diğer şeylerin yanında kripto para veya non-fungible token (NFT’ler) şeklinde herhangi bir işlem göndermek ve almak veya bilgi transferi için kullanılabilmektedir. İlave olarak mainnet’ler, belli bir blockchain protokolünü gerektiren projeleri de çalıştırabilmektedir. Örnek olarak DApp’lerin Ethereum mainneti’nde çalışması gibi.
Testnet vs. Mainnet: Temel Farklar
- Amaç: Testnet, başarısızlıkların korunduğu bir test blockchaini iken, mainnet, faaliyete geçmiş fonksiyonel bir blockchaindir.
- Operasyon maliyetleri: Testnetlerdeki tokenların herhangi bir değeri yokken, mainnet tokenları gerçek varlıklar ve kripto paralardır. Bu nedenle bir mainnet’teki operasyon maliyetleri daha yüksektir. Bunun nedeni blockchainde gerçekleştirilen her operasyonun belli değere sahip tokenlarla ödenen bir ücret gerektirmesidir — bu, testnette olan bir şey değildir.
- Ağ ID’si: Tesnetler ve mainnet’ler, geliştiricilerin ağı tanımlamalarına yardımcı olması için kullanılan birbirlerinden farklı Ağ ID’lerine sahiptirler. Örnek olarak Ethereum mainneti’nin Ağ ID’si 1 iken, sık kullanılan Ropsten, Rinkeby, ve Kovan Ethereum testnet’leri sırayla 3, 4 ve 42’dir.
- Genesis Blok: Testnet ve mainnet’lerin ikisi de kendi bağımsız genesis bloklarına sahiptir, ör. blockchainleri’ndeki ilk blok.
- Düğümler: Bir testnet’te doğrulanacak daha az bilgi olduğundan testnet’lerde mainnet’ten daha az düğüm bulunmaktadır.
- İşlem sıklığı: Testnet’ler, mainnet kadar büyük kullanıcı havuzuna sahip olmadıklarından, mainnet’lere göre daha düşük işlem sıklığına sahiptirler.
- Yayınlanmış kod: Mainnet’ler zincirdeki kullanıcı güvenini sağlamlaştırdıklarından, altlarında yatan kodu yayınlandıklarında bunu umumi yapmaktadırlar. Testnetler sürekli değişikliklerden geçtiklerinden kodları yayınlamazlar.
Mainnet ile testnet arasındaki temel farklar. (Kaynak: masterthecrypto.com)
Testnet ile Mainnet Arasındaki Fark Neden Önemlidir
2017’den beri kripto paraların finans sahnesinde parlamasıyla birçok birey yeni blockchainlere, platformlara, DApp’lere ve coinlere yatırım yapmak için acele etmiştir. Bilgi eksikliği ve fırsatları kaçırma korkusuyla, birçok kişi sadece whitepaperlara bakarak yatırım yapmıştır. Bu whitepaperlar fantastik hızlar, yüksek verim ve mükemmel sonuçlar iddia etmekteydi, ancak bu sonuçlar erken başlangıç aşamalarında sadece testnet ortamında görülmekteydi.
Sonuçta bu cesur iddialarda bulunan projeler hiçbir zaman mainnet aşamasına geçemediler, tam tersine, çökerken ve yanarlarken yatırımcılarının paralarını da yanlarında götürdüler. Bu nedenle yatırım yapmayı düşündüğünüz projeleri araştırmak ve hangi aşamada olduklarını anlamak çok önemlidir. Projenin denenmiş ve test edilmiş olup olmadığı bakılacak ilk gösterge olmalıdır ve projenin şu anda canlı bir mainnet’te mi yoksa sadece testnet üzerinde mi çalıştığını öğrenmek herhangi bir ciddi yatırımcı için büyük önem taşımaktadır.
Testnetler Neden Önemlidir?
Herkes herhangi bir sistemde, özellikle de finansal bir sistemde kontroller gerçekleştirmenin, faaliyete geçmeden önce hayati bir öneme sahip olduğu konusunda hemfikirdir, ama bu kontroller neden mainnet’te gerçekleştirilememektedir?
Öncelikli olarak, mainnet’te testler gerçekleştirmek aşırı pahalı olabilmektedir.
- Yapılan her işlem, değişiklik ve projenin her faaliyete geçişinde blockchain ücretleri ödenmesi gerekmektedir — bunlar deneme aşamasında birden çok kez tekrarlanarak gerçekleşmektedir. Bu, bir projeyi verimli şekilde test etmek ve olası seçeneklerini keşfetmek için aşırı yüksek ücretlerin ortaya çıkacağı anlamına gelmektedir.
- Mainnet’te deneme aşamasında bir sorun çıkması halinde, bütün ağ, kullanıcı varlıkları ve işlemleri kesintiye uğrayabilmektedir. Yani kullanıcıların paralarını kaybetme ihtimalleri vardır. Bu durum, hem geliştiriciler hem de bir bütün olarak kripto paranın itibarı açısından oldukça pahalıya mal olabilmektedir.
İkinci olarak, uyumlulukla ilgili sorunlar bulunmaktadır:
- Testnet’ler gerçek değeri olan herhangi bir şey kullanmazlar, bunun yerine değersiz token formunda “sahte para” kullanırlar.
- Testnet coinleri mainnet’ler ve mainnet coinleri testnet’ler ile uyumlu değillerdir, yani yeni coinlerin veya metodların çıkarılması gerekmektedir. Bu da çok daha uzun, karmaşık ve pahalı bir sürece yol açacaktır.
Bu nedenle tüm yeni projeler öncelikle kendi genesis bloğuna sahip bağımsız bir blockchainde test edilmelidir — testnet gibi. Böylelikle kripto para piyasalarında faaliyet gösterenler herhangi bir “deneme ve hatalı” operasyonlardan tamamen ayrı kalmakta ve geliştiriciler projelerini faaliyete geçirmeden önce blockchainin tüm yönlerini özgürce test edebilmektedirler.
Testnet’ler Kimler İçindir?
Testnet’ler proje geliştiren ve teste ihtiyaç duyan herhangi bir kişi tarafından kullanılabilmektedir. Testnet, bir ürünü ölçeksiz, ücretsiz ve mainneti kesme riski olmadan test etmenin basit yoludur. Bir çok mainnet testnet hizmeti sunmaktadır ve her bir farklı testnet, farklı mainnet’leri daha yakından yansıtabildiğinden, geliştiriciler ihtiyaçlarına en uygun olanı seçebilmektedirler. Örnek olarak Symbol hem mainnet hem de testnette çalışmaktadır. Testnet, kendi mainnet yapısının kopyası iken, Ethereum’un mainneti Ropsten ile yakından benzeşmektedir..
Testnet’ler: Sorunları giderme yeri. (Kaynak: blog.accubits.com)
İlave olarak, bir geliştirici kendi blockchaini inşa etmek ve onu test etmek istiyorsa, DApp veya platform oluşturmanın tersine bunlar için de testnet’leri kullanabilmektedir. Symbol, Symbol bootstrap sunmaktadır ve Ethereum’a benzer bir blockchain inşa edilecek ise geliştiriciler sıklıkla, Trufflesuite.com’daki Ganache’yi kullanırlar.
Yan Zincir (Sidechain) Nedir?
Mainneti kesintiye uğratmadan yeni fikirleri veya yazılım güncellemelerini denemenin başka bir ilginç yolu da yan zincirleri veya blockchain platformu Ardor’un onları tanımlama şekliyle çocuk zincirleri kullanmaktır. Bu blockchainler adından da anlaşılacağı üzere ana blockchain’in veya çatı zincirin yanında çalışan zincirlerdir. İki-yönlü peg ile mainnete bağlanmışlardır. Tamamen bağımsızdırlar ve kendi güvenliklerinden sorumludurlar, yani yan zinciri güvenlik altına almak için yeterli madencilik gücü yoksa, yan zincir hacklenebilmektedir. Ancak, bağımsız olduklarından, alınan hasar sadece o zincir içinde kalmakta ve mainnete aktarılmamaktadır. Bu açıdan, testnet’e benzer bir alan yaratmaktadır. Ancak ana fark yan zincirde gerçek varlıklar kilitlenip kullanılabilirlerken, testnet’te gerçek varlıkların kullanılamamasıdır. Yan zincirlerdeki bu durum geliştiricilerin projesinin gerçek-hayat senaryolarına daha uygun denenmesini sağlamakta ve projeye ekstra bir test layerı ekleyebilmektedir.
Yan zincirler test işlevine ilave riskle sahip olsalar da (sermaye kaybetme olasılığı nedeniyle), ana amaçları çatı blockchain’lerine ilave fonksiyonellik katmaktır. Örnek olarak, Rootstock (RSK), Bitcoin’e akıllı yetenekler ve daha hızlı ödemeler gerçekleştirme kabiliyeti vermek amacıyla geliştirilmiş bir yan zincirdir. Ardor’un blockchaini ise ek güvenlik layerı eklemek ve doğrulamalar gerçekleştirmek için mainneti kullanmak yerine kendi çocuk zincirlerini kullanmaktadır.
Yan zincirler, kripto paraların birbirleriyle etkileşime girmelerine olanak vererek, geliştiricilerin fazla bir etki yaratmadan denemeler gerçekleştirebildiği esnek ve kapsanan bir ortama olanak vermektedir.
Sonuç
Herhangi bir ciddi kripto para yatırımcısı veya blockchain geliştiricisi mainnet ile testnet arasındaki farkları ve hangisini ne zaman kullanacağını anlamalıdır. Bunları anlayamamak veya yanlış kullanmak sermaye kaybına yol açabilir veya kripto paranın itibarına zarar verebilir.
İlave olarak yan zincirler gibi diğer olasılıklar da projenin performansını keşfetmek veya fonksiyonellik eklemek için iyi bir seçenek olabilir. Bu nedenle testnet ve mainnet sadece konunun temellerini anlamak için değil, aynı zamanda kripto dünyasında sürekli olarak gelişen yeni teknolojileri keşfetmek için de önem arz etmektedir.