以太坊智能合約入門

前言

上一篇文章已經爲我們搭建好了開發環境,接着上面講,本篇文章將簡單的記錄如何創建用戶、轉賬、編寫第一個智能合約並部署它等操作。

開發者啓動及創建賬戶

由於賬戶的餘額爲0時,是不能夠部署智能合約的。這時,我們選擇dev開發者模式進行開發。

  • 開發者模式啓動以太坊
./geth --dev --datadir testNet console 2>> info.log

這裏寫圖片描述

在這條命令中,dev表示的是以開發者模式啓動,這時用戶列表中會有一個默認的用戶accounts[0](這傢伙有很多很多的錢…);datadir 表示的是存放區塊數據和用戶密鑰的目錄testNet;console表示啓動控制檯並將日誌打印到info.log中。

這裏寫圖片描述

  • 創建用戶
    現在我們需要創建第二個用戶,來產生轉賬交易。
personal.newAccount('1234')//密碼爲1234
  • 查看用戶餘額
eth.getBalance(eth.accounts[1])

這裏寫圖片描述

轉賬

eth.sendTransaction({from: '0xa5565391e3c6fc7011b687347d213f097050cbff', to: '0x758b10b2699796cc55f6e295d9f11bb1ceb2fbe2', value: web3.toWei(1, "ether")})

注:ether是以太幣的意思,1ether = 1,000,000,000,000,000,000wei.

這時你會發現第二個賬戶的餘額多了1以太幣。
這裏寫圖片描述

解鎖錢包文件

解鎖錢包文件,是部署智能合約的前提。這就類似於你轉賬之前需要輸入銀行卡密碼一樣。

personal.unlockAccount(eth.accounts[1],"1234")//1234爲這個賬戶的密碼

這裏寫圖片描述
完畢,之後我們可以編寫智能合約啦。

編寫智能合約

智能合約的編寫,以太坊官方推薦的語言是Solidity語言。別覺得它陌生,可當你看到它的模樣時,你一定覺得它很面熟。充滿了Java和JavaScript的感覺~

編寫Solidity的IDE的話,目前市場上也不多,我自己覺得不錯的IDE是官方的browser-solidity和國內的JIDE

HelloWorld.sol

pragma solidity ^0.4.0;

contract HelloWorld
{
    function sayHi() constant returns (string) {
        return "HelloWorld2333..";
    }
}

第一行表明目前使用的solidity版本,不同版本的solidity可能會編譯出不同的bytecode。^代表兼容solidity 0.4.4~0.4.9的版本。
contract關鍵字類似於其他語言中較常見的class。
constant聲明,表示調用這個方法並不會改變區塊鏈的狀態。

按照下圖的順序,複製生成的Web3Deploy.

這裏寫圖片描述

部署智能合約

將複製的代碼稍作修改:from: web3.eth.accounts[1], 然後粘貼到geth命令行,執行。
這裏寫圖片描述
出現下圖表示合約部署成功。
這裏寫圖片描述
執行合約中sayHi()方法,返回HelloWorld.並查看第二個用戶的賬戶餘額。
這裏寫圖片描述
餘額變少了,說明發布合約會消耗一定的gas值。

發佈了65 篇原創文章 · 獲贊 93 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章