Ethereum Smart Contracts - 2 | Solidity

Bu yazıda çok fazla teknik ayrıntıya girmeden Solidity hakkında bilgiler verelim. Solidity Ethereum Akıllı Sözleşmeleri yazmak için kullanılan bir programlama dilidir. Bu programlama dili ECMAScript sintaksına benzer bi tasarıma sahiptir. Solidity nesne yönelimli bir programlama dilidir. Ethereum Smart Contracts - 1 makalemde yer alan kodları okuduğunuzda JavaScript ile benzerliğinin farkına varacaksınız. Yazım için basit & anlaşılır bir yapıya sahip olduğunu düşünüyorum. Online olarak yazdığınız kodları derlemek isterseniz https://remix.ethereum.org adlı adresten bu işlemi gerçekleştirebilirsiniz.

Online Derleyici hakkında birkaç bilgilendirme daha vermek istiyorum; 

pragma solidity ^0.4.0;

contract SimpleStorage {
    uint storedData;

    function set(uint x) {
        storedData = x;
    }

    function get() constant returns (uint) {
        return storedData;
    }
}

Elimizde şöyle bir kod olduğunu varsayalım. Bu tür örnek kodlara https://solidity.readthedocs.io/en adresinden sizlerde ulaşabilir incelemelerinizi yapabilirsiniz. Burada ki kodda yer alan pragma solidity ^0.4.0; kısmı bu Akıllı Sözleşmenin Solidity 0.4.0 versiyonunda çalışacağını ifade eder. Gelelim şimdi Online Derleyici alanına sağ üst tarafa baktığınızda Run Sekmesini göreceksiniz burada yer alan kısımları kısaca bir açıklayalım ;

Environment : Derlemenin yapılacağı ortam buradan seçilir. Yazdığınızda kodlar bytecode olarak derlenir.

Account : Size test için verilen Ethereum hesaplarıdır. 

Gas Limit : Sözleşmeleri çalıştırabilmek için belli bir miktar Ether yüklememiz gerekir bu maliyet, sözleşmenin kapsamına göre değişiyor burada ki Etherlerde aslında minerlara ödediğimiz işlemci yakıt ücretleri.

Kod parçacağını çalıştırdıktan sonra Run sekmesi altında get & set işlemlerini görecekseniz. Nesne Yönelimli Dillerde çalışmış olanların aşina olduğu bu sistem burada set & get fonksiyonları ile yapılmıştır. Burada yer alan Constant sözcüğü bu sözleşme Ethereum ağında çalışırken Blok Zincirinde kalıcı bir blok yaratması yerine geçici bir blok oluşturup veriye anlık iletişimimizi sağlayan bir anahtar sözcüğüdür.

Bu sistemlerin daha sonrasında Front End kısmına taşınmasını ise Web3 teknolojisi ile nasıl yapıldığına değiniriz. Web3 bir Ethereum API ' dır. Javascript, Java, Python & Haskell için şu an destek vermekte. https://github.com/ethereum/web3.js/ bu adrestende bu teknoloji ile alakalı verilere ulaşabilirsiniz.

Arkadaşlarınla paylaş