ChainIDE——合約部署教程

前言

廣大開發者應該對如何在區塊鏈上部署合約有一定的瞭解,如果我們想在區塊鏈上部署自己寫好的程序,我們就需要一個編譯器將自己寫好的代碼轉換爲機器操作碼的形式,再將它放到區塊鏈上,供系統執行。

一般來說,程序編譯的時候需要在本地佈置一個編譯環境,把代碼放到編譯環境當中進行編譯,但是這個建立編譯環境的過程非常的複雜,往往對於初學者來說會在這一步深受困擾。

隨着時代的發展,在線編譯器逐漸成爲市場上的主流趨勢,它通過雲端服務器的方式,提供了一個已經搭建好的編譯環境,減少了初學者和程序員的使用門檻,提高了移動辦公的可能性。

以太坊基金會投資了Remix作爲它的在線編譯器,也被大家所熟知,但是其實區塊鏈的種類衆多,編譯方式也大相徑庭,一個更加包容且操作方式更加簡單的在線編譯器是各位開發者夢寐以求的。

今天要介紹的,就是一款適用於以太坊、螞蟻聯盟鏈、IOST、Hyperledger等衆多區塊鏈的在線編譯器——ChainIDE。

網站地址:https://chainide.com/

累加器合約

那麼今天我們就從頭到尾進行以太坊Solidity的一個合約部署教學。

一個智能合約就相當於一個類,裏面可以有很多的變量、函數、結構體等等,可以通過不同的邏輯來構建簡單或者複雜的服務。

爲了教學演示直觀一些,我們使用一個累加器作爲示例,累加器的意思是智能合約內有一個初始的變量,我們通過向智能合約內的函數輸入變量進行累加,通過調用函數可以查看累加的終值。

首先我們新建一個合約,名字就叫PlusContract,我先將合約的內容簡單的介紹一下。

pragma solidity >=0.4.0 <0.7.0;

contract PlusContract {
    uint Data;
    string hello="Hello world!";

    function plus(uint x) public {
        Data = x + Data;
    }

    function get() public view returns (uint) {
        return Data;
    }

    function helloworld() public view returns (string memory) {
        return hello;
    }
}

整個合約包含三個函數和兩個變量,plus()函數是一個累加器,通過輸入的變量和合約內的變量的相加來更改合約內變量的值,這個函數具有public屬性,是所有人都可以調用的。

第二個函數get()是獲取合約當中累加值Data,通過調用這個函數,可以得到累加值Data的大小,同樣也是所有人都可以調用的,在函數後面加入view符號表示這個函數被調用是不需要gas的,類似於一種只讀操作。

第三個函數helloworld()可以返回一個在合約內設定好的字符串hello,要注意的是這裏的string變量後面需要加上memory標誌,代表這個變量只保存在內存當中,字符串的內容可以自己設定,我這裏寫的是Hello world!,也希望各位開發者能像第一天寫程序一樣保持自己的初心。

合約寫完之後進入部署。

合約的部署和調用

首先,我們點擊右邊的白色方框選取自己的要編譯的合約,Solidity合約文件是以.sol作爲結尾,選取完點擊編譯就會開始編譯。

編譯成功之後會彈出方框告知,同時在下部的調試框內也會出現編譯成功的內容。

在編譯成功之後就需要進行部署,部署需要用到Metamask錢包,關於metamask錢包安裝使用以及如何獲取測試幣,可以通過這個教程來閱讀。https://www.jianshu.com/p/38b64c84e394?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

部署時注意更改Gas price的值,25是比較合適的,點擊部署按鈕,1分鐘左右即可完成部署。

在下方的消息框內可以看到部署情況,部署過程可以點擊上面那個鏈接查詢,部署成功後就通過下面的鏈接查詢部署情況。

接下來,我們就可以調用已經部署好的合約了:

通過點擊合約的選項可以選擇要調用的合約,get()和helloworld()是不需要參數以及gas fee的,可以直接點擊調用,plus()需要輸入一個uint256的變量。

首先通過plus函數輸入兩次變量的值,一次50,一次25。

然後通過get()函數進行調用,可以看到返回的值爲75,代表合約的功能部署成功。

然後我們再調用一次helloworld(),可以看到返回值爲Hello world!,同樣也實現了想要的功能。

結語

到這裏,我們就完成了合約的部署以及調用功能,能在區塊鏈上實現一些簡單的邏輯,如果想進行更多的調試和功能探索,可以多看一看樣例模板,也許能給大家帶來一些靈感。

ChainIDE同樣提供了一些模板,就在目錄當中,大家可以嘗試部署並且調用一下它們,當中也包括了一些更高級的功能和更復雜的邏輯,希望能給你們帶來幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章