Solidity

Ethereum ağının akıllı sözleşme geliştirme dili olan Solidity hakkında ders tadında yazılarımı bu menü başlığı altında toplayacağım. Fikir ve önerilerinizi çekinmeden yazabilirsiniz.

Solidity, yılların eskitemediği Javascript diline çok benzeyen bir yapıya sahiptir. Dolayısıyla öğrenmesi ve uygulama geliştirmesi hem kolay hem de zevklidir. Ancak çalışma prensibi Java diline daha çok benzer. Aynı Java dilinde olduğu gibi derlenme süreci Ethereum omurgasına bağlı EVM (Ethereum Virtual Machine) adlı bir sanal makine üzerinde gerçekleşir. Solidity ile akıllı sözleşme yazmanın tek handikapı uygulamalarınızı hayata geçirmek için paraya ihtiyacınızın olması.

DAPP yapılar (aslen merkezsiz uygulamalar olan akıllı sözleşmelere DAPP diyoruz) Ethereum ağı üzerinde çalışabilmek için Gas adı verilen ücretlere (fee) ihtiyaç duyar. Bu ücretler Ethereum ağının ana token’i olan Ether (ETH) ile ödenir. Yani cüzdanınızda paranız yoksa kodunuz derlenmeyecek ve ağda dağıtık olarak çalışmaya başlamayacak demektir. Şimdi olmadı dediğinizi duyar gibiyim, ancak Ethereum ağının gelir modeli budur. Ancak panik yapmayın, size küçük miktarlarda da olsa ETH kazanabileceğiniz yöntemlerden bahsedeceğim. Böylece en azından ilk uygulamanızı cebinizden para çıkmadan yayına alabileceksiniz. Ancak yanlış anlaşılma olmasın, deneme ve test için ETH yakmanıza gerek yok, Ethereum ağının test yapısı sayesinde değersiz test ETH token’lerini kullanıyorsunuz. Uygulamanızın nihai halini derleyeceğiniz ve yayınlayacağınız zaman gerçek ETH token’lerine ihtiyacınız olacak.

Solidity diliyle DAPP geliştirebilmek için öncelikle bazı kavramlara hakim olmanız gerekiyor. Bunların başında EVM, GAS ve dağıtık yapılar gibi konular geliyor. Bu konuların tamamını Solidity menü başlığı altında toparlayacağım. Ardından örnek bir DAPP uygulamasının kodlarını parçalarına ayırarak yazım kurallarına giriş yapacağım. Bu arada sizden gelen öneriler olursa onları da yol haritama eklerim.

O zaman haydi başlayalım.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir