Ethereum Smart Contracts ile nasıl geliştirme yapılır makalemize girişimizi gerçekleştirelim öncelikle şunu belirteyim bu makaleler yazılım alanında belli bir seviyeye gelmiş kişilere yönelik olacaktır herhangi bir programlama eğitimi verilmeyecektir bu konulara meraklı olan arkadaşlar için internette oldukça fazla döküman bulunmaktadır.

Bir önceki makalemizde bahsetmiştik ama kısaca hatırlayalım Akıllı Sözleşmeler, blok zincirinde hesap tutan nesnelerdir. Diğer sözleşmelerle etkileşim kurabilen, kararlar alabilen, verileri depolayabilen & başkalarına ether gönderebilen sistemlerdir. Bu sözleşmeler kendilerini yok edecek bir mekanizmada programlanmadıkları takdirde ethereum ağı üzerinde barınırlar.

Yazılımda her başlangıç "Hello World" olarak bir geleneğe bürünmüş bizde bu geleneği bozmadan Ethereum Smart Contracts konusuna Merhaba diyelim.

Programlamaya başlamadan önce https://ethereum.org/cli adresinden gerekli CLI'yi kuralım. CLI nedir bilmeyenler için küçük bir açıklama yapalım; CLI açılımı "Command Line Interface" olan bu sistemler çoğu geliştirme ortamları tarafından geliştiricilere sunulur. Bu sistemler size zaman kaybettiren işlemleri gerçekleştiren veya o sistemler üzerinde işlem yapmanızı sağlayan aracılardır diyebiliriz. Ethereum için ise bu CLI yazacağımız sistemleri blok zincirine dahil etmeye yarayacaktır.

Bu makale serisinde makeleleri uzatmadan kafa karışıklığı yaratmadan olabildiğince sade & anlaşılır biçimlerde bitirmeye çalışıcam. Ne kadar mikro modüler bir sistem şeklinde gidebilirsem takibi o kadar rahat olacaktır diye düşünüyorum. Şimdi bir Sözleşme oluşturarak başlayalım. Örneği Ethereum'un kendi sitesi üzerinde ki örnekten alıyorum.

contract mortal {

    address owner;

    function mortal() { owner = msg.sender; }

    function kill() { if (msg.sender == owner) selfdestruct(owner); }
}

Şimdi burada yapılan işlemleri sırasıyla açıklayalım;


- Öncelikle mortal adında bir sözleşme oluşturuldu & bunun içerisinde owner adında bir değişken tanımlandı.

- Mortal adında ki fonksiyonda ise owner = msg.sender ile bu sözleşmenin sahibinin kim olduğu tanımlandı.

-  Kill adlı fonksiyonda ise sözleşme hesabında ki tüm bakiyenin owner'a ait olduğu belirtildi. Bu bir kurtarma fonksiyonu olarakta düşünülebilir tüm akışı iptal et & tüm bakiyeyi owner'a gönder gibi.

Başlangıç için bu şekilde bir giriş yapmış olalım eğer sizde orjinal dökümandan bu örnekleri & anlatımları takip etmek isterseniz https://ethereum.org/greeter adresinden takip edebilirsiniz. 

 

Arkadaşlarınla paylaş