Ana içeriğe atla

İlk akıllı sözleşmenizi dağıtmak

akıllı sözleşmeler
Remix
Solidity
dağıtmak
Başlangıç
jdourlens
3 Nisan 2020
3 dakikalık okuma

Sanırım siz de Ethereum blokzincirinde ilk akıllı sözleşmenizi dağıtmak ve onunla etkileşime geçmek için bizim kadar heyecanlısınız.

Endişelenmeyin, bu bizim ilk akıllı sözleşmemiz olduğu için onu yerel bir test ağında dağıtacağız, böylece dağıtmak ve onunla dilediğiniz kadar oynamak size hiçbir şeye mal olmayacak.

Sözleşmemizi yazmak

İlk adım Remix'i ziyaret etmek (opens in a new tab) ve yeni bir dosya oluşturmaktır. Remix arayüzünün sol üst kısmında yeni bir dosya ekleyin ve istediğiniz dosya adını girin.

Adding a new file in the Remix interface

Yeni dosyaya aşağıdaki kodu yapıştıracağız.

Eğer programlamaya aşinaysanız, bu programın ne yaptığını kolayca tahmin edebilirsiniz. İşte satır satır açıklaması:

    1. Satır: Counter adında bir sözleşme tanımlıyoruz.
    1. Satır: Sözleşmemiz, 0'dan başlayan count adında işaretsiz bir tam sayı (unsigned integer) saklar.
    1. Satır: İlk işlev, sözleşmenin durumunu değiştirecek ve count değişkenimizi artıracaktır (increment()).
    1. Satır: İkinci işlev, count değişkeninin değerini akıllı sözleşmenin dışında okuyabilmek için sadece bir alıcıdır (getter). count değişkenimizi public (genel) olarak tanımladığımız için bunun gerekli olmadığını, ancak bir örnek olarak gösterildiğini unutmayın.

İlk basit akıllı sözleşmemiz için hepsi bu kadar. Bildiğiniz gibi, Java veya C++ gibi NYP (Nesne Yönelimli Programlama) dillerindeki bir sınıfa benziyor. Şimdi sözleşmemizle oynama zamanı.

Sözleşmemizi dağıtmak

İlk akıllı sözleşmemizi yazdığımıza göre, şimdi onunla oynayabilmek için onu blokzincirine dağıtacağız.

Akıllı sözleşmeyi blokzincirinde dağıtmak, aslında sadece derlenmiş akıllı sözleşmenin kodunu içeren bir işlemi herhangi bir alıcı belirtmeden göndermektir.

Öncelikle sol taraftaki derleme (compile) simgesine tıklayarak sözleşmeyi derleyeceğiz:

The compile icon in the Remix toolbar

Ardından derleme (compile) düğmesine tıklayın:

The compile button in the Remix solidity compiler

Metin düzenleyicide içeriği kaydettiğinizde sözleşmenin her zaman derlenmesi için "Auto compile" (Otomatik derle) seçeneğini seçebilirsiniz.

Ardından "deploy and run transactions" (işlemleri dağıt ve çalıştır) ekranına gidin:

The deploy icon in the Remix toolbar

"deploy and run transactions" ekranına geldiğinizde, sözleşme adınızın göründüğünü iki kez kontrol edin ve Deploy (Dağıt) düğmesine tıklayın. Sayfanın üst kısmında görebileceğiniz gibi, mevcut ortam "JavaScript VM"dir; bu, daha hızlı ve herhangi bir ücret ödemeden test yapabilmek için akıllı sözleşmemizi yerel bir test blokzincirinde dağıtacağımız ve onunla etkileşime gireceğimiz anlamına gelir.

The deploy button in the Remix solidity compiler

"Deploy" düğmesine tıkladığınızda, sözleşmenizin alt kısımda belirdiğini göreceksiniz. Sözleşmemizin içeriğini görmek için soldaki oka tıklayarak genişletin. Burada counter değişkenimiz, increment() işlevimiz ve alıcı (getter) getCounter() işlevimiz bulunmaktadır.

count veya getCount düğmesine tıklarsanız, sözleşmenin count değişkeninin içeriğini alacak ve görüntüleyecektir. Henüz increment işlevini çağırmadığımız için 0 göstermelidir.

The function button in the Remix solidity compiler

Şimdi düğmeye tıklayarak increment işlevini çağıralım. Yapılan işlemlerin günlüklerinin pencerenin alt kısmında belirdiğini göreceksiniz. increment düğmesi yerine verileri almak için düğmeye bastığınızda günlüklerin farklı olduğunu göreceksiniz. Bunun nedeni, blokzincirindeki verileri okumanın herhangi bir işlem (yazma) veya ücret gerektirmemesidir. Çünkü yalnızca blokzincirinin durumunu değiştirmek bir işlem yapmayı gerektirir:

A log of transactions

increment() işlevimizi çağırmak için bir işlem oluşturacak olan increment (artırma) düğmesine bastıktan sonra, count veya getCount düğmelerine tekrar tıklarsak, count değişkeninin 0'dan büyük olduğu akıllı sözleşmemizin yeni güncellenmiş durumunu okuruz.

Newly updated state of the smart contract

Bir sonraki eğitimde, akıllı sözleşmelerinize nasıl olaylar ekleyebileceğinizi ele alacağız. Olayları günlüğe kaydetmek, akıllı sözleşmenizde hata ayıklamanın ve bir işlevi çağırırken neler olduğunu anlamanın uygun bir yoludur.