『0004』- 基於Ethereum Wallet的Solidity HelloWorld智能合約(Smart Contract)

孔壹學院:國內區塊鏈職業教育領先品牌
作者:黎躍春,區塊鏈、高可用架構工程師
微信:liyc1215 QQ羣:348924182 博客:http://liyuechun.org

相信大家都有學習各種開發語言的經歷,一般學習任何一門語言都會先從最簡單的HelloWorld開始,所以本篇文章,我們將編寫一個最基本的合約代碼,並且一步步講解如何通過Ethereum Wallet將合約部署到區塊鏈,同時我們將通過本demo的演示如何通過發送數據和接收數據和合約進行交互。

Solidity合約的語法和麪向對象編程語言非常相似,一個合約有我們能夠調用的方法(函數)和能夠存儲數據和讀取數據的屬性(狀態變量)

Counter合約源碼

我們的Counter合約將increment方法被調用的次數存儲到count屬性中。並且每個人都可以通過getCount方法獲取區塊鏈上count的值。

pragma solidity ^0.4.4;

contract Counter {

    /* 定義一個uint類型的count變量 */
    uint count = 0;

    /* 當這個方法被調用時count的值會加1 */
    function increment() public {
       count = count + 1;
    }

    /* 讀取count數據 */
    function getCount() constant returns (uint) {
       return count;
    }

}

Counter合約部署

  • 要想發佈我們的合約到區塊鏈,打開Ethereum Wallet然後點擊Contracts

  • 點擊部署一個新合約。

  • 將我們的Counter合約代碼拷貝到Ethereum Wallet代碼區域。

  • 選擇Counter合約,然後點擊DEPLOY按鈕。

  • 輸入當前部署的錢包的密碼,然後點擊SEND TRANSACTION按鈕。

  • 查看最新交易。

  • 查看交易信息。

和Counter合約互動

  • 因爲我們部署的合約是部署在Account 2上的,所以我們可以點擊Account 2查看最新的交易記錄。

  • 點擊Counter按鈕,進入交互界面。

  • 選擇IncrementAccount 2,然後點擊EXECUTE按鈕。

  • 輸入密碼,點擊SEND TRANSACTION按鈕。

  • 交易執行完成後,count會自動加1


小結

部署合約時,因爲要往區塊鏈寫入數據,需要礦工進行驗證,所以需要花費一些gas獎勵給礦工,還有當我們每次調用increment方法時,也屬於寫入數據,同樣需要花費gas,但是調用getCount方法時只是從區塊鏈讀取數據,無需驗證,讀取數據無須花費gas。

技術交流

  • 區塊鏈技術交流QQ羣:348924182

  • 「區塊鏈部落」官方公衆號

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