本教程將介紹如何使用以太坊的solidity編程語言開發你的第一個智能合約,咱們將使用remix在線IDE來開發、編譯並部署智能合約到以太坊區塊鏈。點擊這裏瞭解什麼是智能合約。編程
目前智能合約最受歡迎的編程語言爲Solidity,可是並不僅有Solidity。做爲初學者,編寫Solidity代碼,咱們可使用Remix,它是一個基於瀏覽器的Soldity IDE,網址爲:http://remix.ethereum.org/ 。Remix支持編寫、測試和部署智能合約。瀏覽器
學一門語言的第一個程序毋庸置疑都是HelloWorld,那麼咱們就來寫一個HelloWorld的智能合約吧。合約代碼以下。編程語言
pragma solidity ^0.4.21; contract HelloWorld { string hello = "Hello World!!!"; event say(string _value); function sayHello() public { emit say(hello); } }
合約代碼第一行指定該合約使用的Solidity版本爲0.4.21,不支持高於0.4.21版本的Solidity特性。ide
在Solidity中,contract關鍵字包含的代碼段即表示一個智能合約,它擁有一些成員變量,表示該合約的數據,如咱們的HelloWorld中的hello,咱們能夠修改操做這些成員。同時它擁有一些function,能夠被他人調用。post
event是Solidity提供的一種事件和訂閱機制,智能合約可以發出一些event,合約調用者可以監聽這些事件並做出相應的反應。學習
這個合約沒有作不少事情,它只會在有人調用它的sayHello方法時,發出一個say事件。接下來讓咱們來部署和執行它。區塊鏈
首先咱們須要編譯這段代碼,在Remix的右邊有一個Compile的tab,點擊Start to compile,編譯成功,若是失敗會有錯誤提示,改正便可。測試
而後咱們須要將其部署到區塊鏈上,切換tab到Run。.net
Remix支持三種環境運行合約。其中若是爲JavaScript VM,則合約會在瀏覽器JavaScript沙箱區塊鏈中被執行,能夠理解爲Remix使用了瀏覽器的JS環境虛擬了一個區塊鏈虛擬機。若是爲Injected Provider,則Remix將會連接Matamask或者Mist這些區塊鏈錢包,經過它們來間接部署和調用合約。最後爲Web3 Provider,Remix會連接Geth等遠程區款連節點,來部署和調用合約。3d
簡單起見,咱們將使用JavaScript VM,它將爲咱們初始化出五個區塊鏈帳號,使用默認帳號便可。將Environment設置爲JavaScript VM。以下圖:
上圖除了Environment和Account依次往下,咱們將可以看到Gas Limit,這是執行一個Transaction咱們可以接受的最大代價。Value表示下一次調用咱們將向合約帳戶轉帳多少ether。
接下來的HelloWorld表示咱們將建立的合約。點擊Create既可以建立這個合約。以下圖咱們看到HelloWorld合約已被建立。
咱們能夠點擊sayHello調用。能夠看到已經調用成功,在logs中打印出了咱們發出的event。
在本文中,咱們編寫了一個最簡單的智能合約,並部署和運行了該合約。咱們並無將合約部署到實際的區塊鏈上,只是在JS 沙箱虛擬機中執行了它。後面的文章中咱們將會繼續講解如何將合約部署到真正的以太坊區塊鏈上。
若是你但願立刻開始學習以太坊智能合約及應用開發,能夠訪問匯智網提供的出色的在線互動教程: