1. Anasayfa
  2. Akıllı Sözleşme

Remix IDE ile İlk Ethereum Akıllı Sözleşmenizi Nasıl Oluşturursunuz?

Remix IDE ile İlk Ethereum Akıllı Sözleşmenizi Nasıl Oluşturursunuz?

Remix IDE ile İlk Ethereum Akıllı Sözleşmenizi Nasıl Oluşturursunuz?
Remix IDE
0

Remix IDE ile Ethereum Akıllı Sözleşmenizi Nasıl Oluşturursunuz?

Akıllı sözleşmeler, merkezi olmayan web veya gelişmekte olan blok zinciri teknolojileri hakkındaki bir tartışmada, etrafınıza baktığınız hemen hemen her yerdedir. İnovasyondan güç alan akıllı sözleşmeler, birden çok sektörde farklı kullanım durumları için gelişti. Zaman içinde, akıllı sözleşmeler geliştirmek ve dağıtmak için kullanılan araçlar da önemli marjlarda ilerlemiştir.

Remix IDE‘yi kullanarak akıllı sözleşme oluşturabilir, ardından sözleşmeyi derleyip dağıtabilirsiniz. Ethereum, akıllı sözleşmeler geliştirmek için yaygın olarak kullanılan bir platform olduğundan ve akıllı sözleşme kodu yazmak için Solidity programlama dilini desteklediğinden, akıllı sözleşme geliştiricilerinin en gözde favorileridir. Bununla birlikte, belirli bir kod parçası, yalnızca onu makine tarafından okunabilir bir dilde derleyebiliyorsanız iyidir.

Remix IDE, Ethereum akıllı sözleşmeleri için bir derleyici seçimidir. Birkaç basit adımla Solidity ve Remix IDE kullanarak akıllı sözleşme oluşturma esnekliğinden yararlanabilirsiniz . Aşağıdaki tartışma, kendi akıllı sözleşmenizi oluşturma, derleme, test etme ve dağıtma yöntemleri hakkında bilgi edinmenize yardımcı olur. Akıllı sözleşme örneği, sözleşme ile diğer önemli görevleri vurgulamanın yanı sıra temel bankacılık faaliyetleri için bir araç görevi görecektir.

Remix IDE ile Ethereum Akıllı Sözleşmesi

Ethereum Akıllı Sözleşmesi Oluşturmaya Başlamak için Neye İhtiyacınız Var?

Ethereum Akıllı Sözleşmesi

Remix IDE‘de bir akıllı sözleşme yazmanın ön koşulları, herhangi bir akıllı sözleşme geliştiricisi için en önemli önceliklerdir. Ethereum’da akıllı bir sözleşme oluşturmak için zorunlu gereksinimlerden biri, Solidity bilgisine atıfta bulunur. Akıllı sözleşme kodu yazmaya başlamadan önce derinlemesine Ethereum ve Solidity bilgisine sahip olmalısınız. Ek olarak, Remix IDE‘nin temellerini ve farklı bileşenlerini öğrenmeniz gerekir .

Akıllı sözleşme yazmak ve test etmek ve bunları Remix IDE ile dağıtmak için en iyi uygulamalara ilişkin genel bir izlenim, akıllı sözleşmeler geliştirmek için temel sağlayabilir. Remix, doğrudan tarayıcınızdan akıllı sözleşmeler geliştirmek için bir ortam sunan açık kaynaklı bir araçtır. Remix IDE’de kendi akıllı sözleşmenizi oluşturmanın ilk adımı, Remix IDE’yi açmakla başlar.

Remix IDE‘ye herhangi bir tarayıcıdan erişebilir ve ardından yeni bir dosya oluşturarak kendi akıllı sözleşmenizi oluşturma işlemine başlayabilirsiniz. Yeni dosya “.sol” uzantısına sahip olacaktır ve bunu Solidity akıllı sözleşme kodu için kullanabilirsiniz.

Zero To Hero : Web3.0 ve Solidity Geliştirme Yol Haritası 2023

Remix IDE’de Akıllı Sözleşme Geliştirme Adımları

Remix IDE‘de akıllı sözleşme yazmak ve dağıtmak istiyorsanız, önerilen adımları izlemelisiniz. Remix IDE kullanarak bir Ethereum akıllı sözleşmesi yazmanın ve dağıtmanın her adımı için en iyi uygulamaların ana hatlarını birlikte inceleyelim. 

Sözleşme Beyanı

.sol” uzantılı yeni dosya, akıllı sözleşme geliştirme sürecini başlatmak için bir basamak görevi görebilir. Bununla birlikte, akıllı bir sözleşme yazmanın asıl süreci, sözleşmenin ilan edilmesiyle başlar. Solidity sürümündeki tutarsızlık, akıllı sözleşmeyi farklı derleyici sürümleriyle derlediğinizde sorunlara neden olabilir . Bir sonraki adımdan önce kullanmayı planladığınız Solidity sürümünü bildirmelisiniz. İşte Ethereum akıllı sözleşmesini ilan etmek için kullanılan sözdizimi.

pragma solidity ^0.6.6;
contract Coinismus { }

Coinismus”, bu tartışmada örnek olarak alınan akıllı sözleşme başlığını ifade eder.

Durum Değişkenlerinin, Veri Yapılarının ve Veri Türlerinin Tanımı

Remix IDE kullanarak akıllı sözleşme oluşturma sürecindeki ikinci adım, durum değişkenlerini, veri yapılarını ve veri türlerini tanımlamaya odaklanacaktır. Müşterinin bilgilerini tutmak için bir müşteri nesnesine ihtiyacınız olacak ve sözleşmeyle bağlantı kurmak için “yapı” öğesinden yararlanacaktır. Müşteri nesnesi, müşterinin kimliği, bakiyesi ve adresi gibi önemli bilgileri sözleşmede tutar. Daha sonra, tüm müşterilerin bilgilerini tutmak için bir “client_account” tipi dizi geliştirmeniz gerekir. Örnek akıllı sözleşmede istemci nesnesini tanımlamaya yönelik sözdizimi buradadır.

pragma solidity ^0.8.7;
contract Coinismus {
    struct client_account{
        int client_id;
        address client_address;
        uint client_balance_in_ether;
    }
    client_account[] clients;
}    

Şimdi, sözleşmeye katıldıkları her durumda her müşteri için bir kimlik tahsis etmeniz gerekiyor. Bu nedenle, ilgili akıllı sözleşme için yapıcı alanında “0” yapmanın yanı sıra bir “int” sayacı tanımlamanız gerekir. Aşağıdaki kod satırlarını ekleyebilir ve tanımlamaya devam edebilirsiniz.

int clientCounter;
    constructor() public{
        clientCounter = 0;
    }
}  

Remix ile akıllı sözleşme yazma adımları da bir yönetici için “address” değişkeninin tanımlanmasını gerektirecektir. Ayrıca, müşterilerin son faiz tarihini korumak için bir “mapping” öğesine de ihtiyaç duyacaktır. Herhangi bir hesaba faiz göndermek için gereken süreyi sınırlamak isterseniz, ‘mapping‘ öğesi, tutarı göndermek için gereken sürenin geçip geçmediğini kontrol edebilir. Önceki kod satırlarıyla devam eden aşağıdaki örnek gibi, aşağıdaki kod satırlarını ekleyebilirsiniz.

client_account[] clients;
    int clientCounter;
    address payable manager;
    mapping(address => uint) public interestDate;
    constructor() public{
        clientCounter = 0;
    }
}

Değiştiricilerin Uygulanması

Değiştiriciler, Remix kullanarak akıllı sözleşme yazmayı ve derlemeyi öğrenirken ihtiyaç duyacağınız önemli bir unsurdur. Akıllı bir sözleşmede belirli bir yöntemi çağırmak için belirli kişilere erişimi kısıtlamanız gerekir. “modifier“, uygulanan koşulun doğrulanması ve ilgili bir yöntemin uygulanabilirliğinin belirlenmesi için gereklidir.

Geri Dönme İşlevini Uygulama

Kendi akıllı sözleşmenizi oluşturma sürecindeki bir sonraki önemli bileşen , ‘fallback‘ işlevine atıfta bulunacaktır. Örnek akıllı sözleşmenin herhangi bir adresten ETH alabilmesini sağlamak önemlidir. “receive” anahtar sözcüğünün Solidity 0.8.x sürümlerinde yeni olduğunu ve Ether almak için bir “fallback” işlevi gördüğünü unutmamalısınız.  

Yöntemleri Oluşturun

Yöntemler, geliştirdiğiniz akıllı sözleşmenin temel işlevlerini tanımlamanıza yardımcı olacaktır . Sözleşme bildirimi, değişken tanımı ve değiştirici ve geri dönüş işlevlerinin uygulanması ile işiniz bittiğinde, akıllı sözleşme hedeflerine özgü yöntemler geliştirmeye çalışmanız gerekir. “Coinismus” örneğinde, aşağıdaki yöntemleri geliştirmeyi deneyebilirsiniz,

Parametre olarak “managerAddress” varsayımıyla yönetici adresinin tanımlı değişkenlere yapılandırılması için “setManager” yöntemi.

İstemcilerin sözleşmeye katılmasını sağlamak için “joinAsClient” yöntemi. Bir müşterinin katılması üzerine sözleşme faiz tarihini belirler ve müşteri bilgilerini “client” dizisine ekler.

Akabinde müşteri hesabından akıllı sözleşmeye ETH göndermek için “deposit” yöntemi ile bankacılık uygulamaları için  akıllı sözleşme yazıp test edebilirsiniz.

Remix IDE‘yi kullanarak akıllı sözleşmenizi oluşturma sürecinde başka yöntemler de tanımlayabilirsiniz . Örneğin, “withdraw,” “sendInterest,” ve “getContractBalance”, “Coinismus” Ethereum akıllı sözleşmesinde ihtiyaç duyacağınız birkaç yöntem olabilir .

Yazma sürecini tamamladıktan sonra, nihai çıktıyı bulacaksınız .

pragma solidity ^0.8.7;

contract Coinismus {
    
    struct client_account{
        int client_id;
        address client_address;
        uint client_balance_in_ether;
    }
    
    client_account[] clients;
    
    int clientCounter;
    address payable manager;
    mapping(address => uint) public interestDate;
    
    modifier onlyManager() {
        require(msg.sender == manager, "Only manager can call this!");
        _;
    }
    
    modifier onlyClients() {
        bool isclient = false;
        for(uint i=0;i<clients.length;i++){
            if(clients[i].client_address == msg.sender){
                isclient = true;
                break;
            }
        }
        require(isclient, "Only clients can call this!");
        _;
    }
    
    constructor() public{
        clientCounter = 0;
    }
    
    receive() external payable { }
    
    function setManager(address managerAddress) public returns(string memory){
        manager = payable(managerAddress);
        return "";
    }
   
    function joinAsClient() public payable returns(string memory){
        interestDate[msg.sender] = now;
        clients.push(client_account(clientCounter++, msg.sender, address(msg.sender).balance));
        return "";
    }
    
    function deposit() public payable onlyClients{
        payable(address(this)).transfer(msg.value);
    }
    
    function withdraw(uint amount) public payable onlyClients{
        msg.sender.transfer(amount * 1 ether);
    }
    
    function sendInterest() public payable onlyManager{
        for(uint i=0;i<clients.length;i++){
            address initialAddress = clients[i].client_address;
            uint lastInterestDate = interestDate[initialAddress];
            if(now < lastInterestDate + 10 seconds){
                revert("It's just been less than 10 seconds!");
            }
            payable(initialAddress).transfer(1 ether);
            interestDate[initialAddress] = now;
        }
    }
    
    function getContractBalance() public view returns(uint){
        return address(this).balance;
    }
}

Akıllı Sözleşmenin Derlenmesi

Komut dosyası oluşturma sürecini tamamladıktan sonra, bir sözleşme derlemesi ile Solidity ve Remix IDE kullanarak akıllı sözleşme oluşturmanın bir sonraki aşamasına geçmelisiniz. Akıllı sözleşmenizi platform değiştirmeden doğrudan Remix‘te derleyebilirsiniz. İlginç bir şekilde, Remix IDE ile derleme, sözleşmenizi dağıtmadan önce test etmede hayati bir rol oynar.

Remix IDE‘deki Solidity Derleyici , bu örnekte yazdığınız akıllı sözleşme kodunu test etmenize yardımcı olabilir . Hepsinden önemlisi, Solidity Compiler, Solidity Compiler sürümünü belirten, kullanımı kolay bir arayüz sunar. Bu kadar; “Coinismus.sol” dosyasını derlemeye ve bir sonraki adıma geçmeye hazırsınız.

Sözleşmenin Dağıtılması

Bir akıllı sözleşmeyi derledikten sonraki son adım, akıllı sözleşmenin Remix IDE‘de nasıl dağıtılacağına odaklanacaktır. Remix IDE söz konusu olduğunda, akıllı sözleşmeleri dağıtmak için doğrudan bir seçenek bulacaksınız. Komut dosyası oluşturduğunuz akıllı sözleşmeleri dağıtmak için Remix’teki “Deploy & Run Transactions” işlevselliğini kullanabilirsiniz.

Remix IDE, akıllı sözleşmeyi derlemek ve farklı ortamlarda dağıtmak için farklı seçenekler sunar. Akıllı sözleşmeler oluşturmanın ve bunları Remix IDE‘de dağıtmanın en iyi yanı, istenen yapılandırmayı seçme esnekliğidir. Dağıtım ortamını “web3 provider”, “JavaScript VM” ve “injected web3” ortamları gibi seçeneklerden seçebilirsiniz.

Deploy & Run Transactions bölümünde ortamı ve hesap parametrelerini ayarladıktan sonra “Deploy” butonuna tıklayabilirsiniz. Akıllı sözleşmenin seçilen hesaba başarılı bir şekilde dağıtıldığını gösteren terminalde ortaya çıkan işleme tanık olabilirsiniz.

Remix IDE ile Ethereum Akıllı Sözleşmesi
Remix IDE ile Ethereum Akıllı Sözleşmesi

Sonuç Bağlamı : Remix IDE ile Ethereum Akıllı Sözleşmesi

Remix IDE aracılığıyla kendi akıllı sözleşmenizi oluşturma adımlarının ayrıntıları, akıllı sözleşme geliştirmeye yönelik basit bir yaklaşımı gösterir . Akıllı sözleşmelere olan talep artmaya devam ederken, geliştiriciler yenilikçi, etkili ve daha hızlı çözümler arıyor. Remix IDE veya Integrated Development Environment, akıllı sözleşmeler yazmak, derlemek, test etmek ve dağıtmak için gereken tüm önemli işlevlere hizmet eder.

Bu nedenle Remix IDE, akıllı sözleşmenizi oluşturmak için farklı araçlar ve platformlar arasında geçiş yapma zahmetini ortadan kaldırır. Ek olarak, diğer araçlarla entegrasyonun esnekliği, akıllı sözleşme geliştirmede birlikte çalışabilirlik için daha iyi kapsam sağlar.

Solidity Programlama Dili Öğrenme yolculuğunuz hakkında daha iyi rehberlik almak için Solidity nedir? Ethereum Akıllı Sözleşmelerinin Dili Rehberi içeriğimize göz atın. Dilerseniz Yeni Başlayanlar için Solidity – Akıllı Sözleşme Geliştirme Hızlandırılmış Kursuna katılın.

Çalışmaya nereden başlayacağım diyenler için Blockchain ​​Developer Olmak İçin Yol Haritası içeriğine de muhakkak bakın.

Gelin aklınızdaki soruları SUPERPEER sobetinde cevaplayalım.

Bu makaleyi okuduğunuz için teşekkürler! Bana destek olmak isterseniz;

Beni TwitterLinkedin ve YouTube‘da takip edin.

Kısa bir yorum bırakmayı UNUTMAYIN!

Hasan YILDIZ, Girişimci. Doktora Öğrencisi. Yazmayan YAZILIMCI. Veri Şeysi. Eğitmen...

Yazarın Profili
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir