Ana içeriğe geç

İlk akıllı sözleşmeni dağıtma

akıllı kontratlar
remix
solidity
dağıtma
Acemi
jdourlens
3 Nisan 2020
3 dakikalık okuma

Sanırım sen de Ethereum blokzincirinde ilk akıllı sözleşmeni dağıtmaya ve onunla etkileşime geçmeye bizim kadar heveslisin.

Endişelenme, bu 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ğince oynamak sana hiçbir maliyeti olmayacak.

Sözleşmemizi yazma

İlk adım olarak Remix'i ziyaret edip (opens in a new tab) yeni bir dosya oluştur. Remix arayüzünün sol üst kısmından yeni bir dosya ekle ve istediğin dosya adını gir.

Remix arayüzünde yeni bir dosya ekleme

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

1// SPDX-License-Identifier: MIT
2pragma solidity >=0.5.17;
3
4contract Counter {
5
6 // Sayım sayısını tutmak için işaretsiz tamsayı türünde herkese açık değişken
7 uint256 public count = 0;
8
9 // Sayacımızı artıran fonksiyon
10 function increment() public {
11 count += 1;
12 }
13
14 // Sayım değerini almak için gerekli olmayan alıcı
15 function getCount() public view returns (uint256) {
16 return count;
17 }
18
19}
Tümünü göster

Programlamaya aşinaysan bu programın ne yaptığını kolayca tahmin edebilirsin. Satır satır açıklaması şöyledir:

    1. Satır: Counter adıyla bir sözleşme tanımlıyoruz.
    1. Satır: Sözleşmemiz, 0'dan başlayan count adında işaretsiz bir tamsayı depolar.
    1. Satır: İlk fonksiyon, sözleşmenin durumunu değiştirir ve count değişkenimizi artırır.
    1. Satır: İkinci fonksiyon, akıllı sözleşmenin dışından count değişkeninin değerini okuyabilmek için kullanılan bir alıcıdır. count değişkenimizi herkese açık (public) olarak tanımladığımız için bunun gerekli olmadığını, yalnızca örnek olarak gösterildiğini unutma.

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

Sözleşmemizi dağıtma

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

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

Önce, sol taraftaki derleme simgesine tıklayarak sözleşmeyi derleyeceğiz:

Remix araç çubuğundaki derleme simgesi

Ardından derle düğmesine tıkla:

Remix Solidity derleyicisindeki derle düğmesi

İçeriği metin düzenleyiciye kaydettiğinde sözleşmenin her zaman derlenmesi için “Otomatik derle” seçeneğini tercih edebilirsin.

Ardından "Dağıt ve işlemleri çalıştır" ekranına git:

Remix araç çubuğundaki dağıtma simgesi

"Dağıt ve işlemleri çalıştır" ekranına geldiğinde, sözleşme adının göründüğünü kontrol et ve Dağıt'a tıkla. Sayfanın üst kısmında görebileceğin gibi, mevcut ortam “JavaScript VM”dir. Bu, daha hızlı ve hiçbir ücret ödemeden test edebilmek için akıllı sözleşmemizi yerel bir test blokzincirinde dağıtacağımız ve etkileşime gireceğimiz anlamına gelir.

Remix Solidity derleyicisindeki dağıt düğmesi

“Dağıt” düğmesine tıkladıktan sonra sözleşmenin en altta belirdiğini göreceksin. Sözleşmemizin içeriğini görmek için solundaki oka tıklayarak genişlet. Bu bizim counter değişkenimiz, increment() fonksiyonumuz ve getCounter() alıcımızdır.

count veya getCount düğmesine tıklarsan sözleşmenin count değişkeninin içeriğini alır ve görüntüler. Henüz increment fonksiyonunu çağırmadığımız için 0 göstermesi gerekir.

Remix Solidity derleyicisindeki fonksiyon düğmesi

Şimdi düğmeye tıklayarak increment fonksiyonunu çağıralım. Pencerenin en altında, yapılan işlemlerin kayıtlarının belirdiğini göreceksin. increment düğmesi yerine veriyi almak için olan düğmeye bastığında kayıtların farklı olduğunu göreceksin. Bunun nedeni, blokzincirinden veri okumanın herhangi bir işlem (yazma) veya ücret gerektirmemesidir. Çünkü sadece blokzincirinin durumunu değiştirmek bir işlem yapmayı gerektirir:

İşlemlerin bir kaydı

increment() fonksiyonumuzu çağırmak için bir işlem oluşturan increment düğmesine bastıktan sonra count veya getCount düğmelerine tekrar tıkladığımızda, akıllı sözleşmemizin yeni güncellenmiş durumunu count değişkeni 0'dan büyük olacak şekilde okuyacağız.

Akıllı sözleşmenin yeni güncellenmiş durumu

Bir sonraki öğreticide, akıllı sözleşmelerinize nasıl olay ekleyebileceğinizi ele alacağız. Olayları kaydetmek, akıllı sözleşmendeki hataları ayıklamak ve bir fonksiyonu çağırırken neler olduğunu anlamak için uygun bir yoldur.

Sayfanın son güncellenmesi: 26 Nisan 2024

Bu rehber yararlı oldu mu?