使用Remix編譯和部署以太坊智能合約

以太坊remix匯智網 Remix 是一個開源的 Solidity 智能合約開發環境,提供基本的編譯、部署至本地或測試網絡、執行合約等功能。Solidity 是 以太坊Ethereum 官方設計和支持的開發語言,專門用於編寫智能合約。web

本文但願將一個很簡單的代幣合約(只能發行和轉帳),部署在本地和測試網絡上,測試下它的功能。編程

詳細描述使用 Remix 的步驟及使用上可能碰到的問題。瀏覽器

以前開發過以太坊Ethereum智能合約,但沒有記錄過開發的過程和碰到的問題,以爲挺惋惜。此次從新開始,從最基礎開始,一步步學習。微信

開發環境

不須要安裝,直接在任何瀏覽器啓動 Remix。網絡

以太坊remix匯智網

取得代幣合約

代幣合約的範例不少,Ethereum 官網有提供一個最小可執行的代幣合約(MINIMUM VIABLE TOKEN):app

pragma solidity ^0.4.0;
contract MyToken {
/* This creates an array with all balances */
    mapping (address => uint256) public balanceOf;
    
    /* Initializes contract with initial supply tokens to the creator of the contract */
    function MyToken(uint256 initialSupply) public {
        balanceOf[msg.sender] = initialSupply;              
        // Give the creator all initial tokens
    }
    
    /* Send coins */
    function transfer(address _to, uint256 _value) public {
        require(balanceOf[msg.sender] >= _value);           
        // Check if the sender has enough
        require(balanceOf[_to] + _value >= balanceOf[_to]); 
        // Check for overflows
        balanceOf[msg.sender] -= _value;                    
        // Subtract from the sender
        balanceOf[_to] += _value;                  
        // Add the same to the recipient
    }
}

這個 MyToken 合約真的很簡單,只能作兩件事:工具

  1. 建立代幣:發起合約時建立指定數量的代幣,代幣擁有者是發起合約的 Ethereum 賬戶
  2. 轉移代幣:轉移指定數量的代幣到指定的 Ethereum 賬戶

至於一個完整的代幣合約,可參考ERC20 Token使用手冊。學習

使用 Remix 編譯合約

  1. 點右上角 + 新增一個合約 名稱任意只要擴展名是 「.sol」。

以太坊remix匯智網

  1. 複製合約內容到該合約並編譯 Remix 默認設置會自動編譯,只要旁邊沒有蹦出紅色的 error 提示就表明編譯成功。

以太坊remix匯智網

在本地部署合約

1.設置網絡 點選左上的 run。區塊鏈

以太坊remix匯智網

Environment 選擇 JavaScript VM 表明全部資料都是存在本地(功能相似 testrpc)。它會提供 5 個虛擬帳戶每一個有 100 ETH,隨便選擇一個帳戶(要記住後面一直要用)。開發工具

以太坊remix匯智網

2.發送交易部署合約 選擇 MyToken。能夠看到 create 按鈕。且已根據合約內容顯示必須輸入 initialSupply(也就是要發行的代幣數量)。輸入一個數目點create,就能夠發送交易部署合約。

以太坊remix匯智網

合約部署成功後,能夠看到合約的使用界面。Remix 會自動根據合約的內容,產生對應的合約使用界面。能夠看到合約有兩個功能:balanceOf(查詢餘額) 和 transfer(轉移代幣)。

以太坊remix匯智網

底下能夠看到 log(記錄每一次的操做)。實際上部署合約是經過一個 Ethereum 交易完成,點 Details 能夠看到這筆交易詳細資料。

以太坊remix匯智網

執行合約 — 查詢餘額

1.選擇剛剛發起合約的帳戶

以太坊remix匯智網

能夠點右邊的按鈕複製

2.輸入帳戶 注意要用 「」 把帳戶括起來,示例:

"0xca35b7d915458ef540ade6068dfe2f44e8fa733c"

3.點擊 balanceOf

能夠看到執行結果,也就是目前這個帳戶的代幣餘額。

以太坊remix匯智網

可能的錯誤情況

說明一點,由於數據傳輸是用 JSON 格式,因此要加上 「」。若是忘了 「」 就會在 log 中看到錯誤提示:

以太坊remix匯智網

執行合約 — 轉移代幣

1.選擇要輸出的帳戶 選擇剛剛發起的合約的帳戶。

以太坊remix匯智網

2.輸入要轉入的帳戶 選擇並複製另外一個帳戶。在合約界面 transfer 後面的輸入位置,輸入轉入帳戶和要轉移的代幣數量。帳戶一樣須要用 「」 括起來,示例:

"0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db", 10

3.點擊 transfer 點擊 transfer,成功後會看到 log 更新。

以太坊remix匯智網

4.確認餘額更新 這時在查詢轉入帳戶的餘額,就能夠看到代幣餘額增長啦!

以太坊remix匯智網

錯誤情況 若是選擇要轉出的帳戶代幣餘額不足,這個交易就會失敗,會在 log 看到錯誤提示。

以太坊remix匯智網

在測試網絡部署合約

1.安裝 MetaMask 首先,要連到測試網絡,這就要安裝 MetaMask。它是瀏覽器端的 Ethereum 錢包,能夠連結 Ethereum 公共和測試網絡。安裝後須要創建 Ethereum 帳號,這個這裏就不細講了。

成功啓動後是這樣的。

以太坊remix匯智網 以太坊remix匯智網 以太坊remix匯智網

咱們選擇 Ropsten Test Net

2.選擇測試網絡

回到 Remix,此次 Environment 選擇 Injected Web3,Remix 會自動鏈接 MetaMask。

以太坊remix匯智網

成功鏈接後會看到和 MetaMask 相同帳號和 Ether 餘額

3.部署合約 接着用一樣的方式,按 create 部署合約,就會看到 MetaMask 的彈出窗口。直接按 submit 發送交易。

以太坊remix匯智網

稍等片刻(須要等交易被確認),部署成功後合約的使用界面就會出來。

以太坊remix匯智網 ok,如今能夠用一樣的方式使用合約啦!

總結下

Remix 提供一個 Solidity 智能合約的開發環境,能夠方便的編譯、部署、執行甚至找錯,適合編程經驗很少的初學者。但沒法作到版本控制、測試及和其餘開發工具一塊兒使用等,實際上要開發 DApp,使用 Truffle三、Ganache、web3.js 來編譯和部署合約比較方便和專業些更適合開發人員。

推薦一個適合區塊鏈新手的以太坊DApp開發教程:

http://xc.hubwiz.com/course/5a952991adb3847553d205d1

若是想加入以太坊技術開發羣能夠加微信:cuixuebin2,拉你入羣聊。

相關文章
相關標籤/搜索