MetaMask
除了Geth這樣子相對“重”的以太坊客戶端,還有一種比較”輕“的客戶端:錢包,普通用戶用得較多的錢包是imToken等,而開發者常用的錢包是MetaMask:
MetaMask是在瀏覽器中與以太坊進行互動的最簡單方法,它是一個瀏覽器插件(支持Chrome、FireFox、Opera等瀏覽器),可以和Remix配合使用,用來部署和執行智能合約,
訪問MetaMask官網https://metamask.io/安裝對應瀏覽器插件,完成后經過賬號匯入或創建之后,就能進入MetaMask主界面,右上角可以切換網路:

Remix
Remix是一款可以在線快速撰寫、除錯和部署合約代碼的編輯器,非常適合智能合約開發初學者使用,
我們通過一個簡單的計數器合約演示Remix的一般用法,
訪問Remix IDE:http://remix.ethereum.org/
合約撰寫
工具列切到FILE EXPLORERS,創建合約檔案ERC2077.sol:

合約代碼如下:
pragma solidity ^0.5.0;
contract Counter {
uint counter;
constructor() public {
counter = 0;
}
function count() public {
counter = counter + 1;
}
function get() public view returns (uint) {
return counter;
}
}
這個智能合約的作用是在區塊鏈上存盤一個計數器變數,任何人都可以通過呼叫count()讓計數器加1,呼叫get()獲取計數器值,
合約編譯
工具列切到SOLIDITY COMPILER,選擇與代碼匹配的編譯器版本后點擊編譯按鈕進行編譯,編譯出現CONTRACT項,如下:
可以勾選自動編譯,代碼更新后會自動編譯,代碼復雜,依賴檔案多的情況下,不建議開啟自動編譯,
合約測驗
工具列切到SOLIDITY UNIT TESTING,點擊Generate自動生成單元測驗檔案counter_test.sol,點擊Run運行單元測驗:
你可以根據情況調整單元測驗代碼,進行充分測驗,
合約部署及運行
工具列切換到DEPLOY & RUN TRANSACTIONS,選擇JavaScript VM沙箱環境對合約進行部署:

部署合約會提交創建合約的交易,交易會被挖礦打包在一個區塊中,可以在代碼區下方的除錯資訊區域看到部署的交易詳情:

智能合約部署完成后,功能區下方會出現部署后的地址及合約所有可以呼叫的函式:

點擊count和get按鈕可以呼叫對應的合約函式,Remix里用橙色按鈕表示動作會修改區塊鏈狀態,藍色表示呼叫僅僅是讀取區塊鏈狀態,
呼叫函式后除錯資訊區域有輸出,可以點擊DEBUG,對代碼進行逐步除錯,
部署到以太坊網路
當我使用沙箱環境完成合約代碼撰寫和測驗后,根據情況也可以選擇部署至以太坊私鏈網路、以太坊測驗網路或以太坊主鏈網路:
- JavaScript VM:沙箱環境,不會與以太坊網路發生互動;
- Injected Web3:使用嵌入瀏覽器的運行環境,往往使用MetaMask插件提供的環境間接與以太坊網路互動;
- Web3 Provider:表示直接與真實的以太坊網路環境進行互動;
下面我們使用Injected Web3方式部署:
我們在MetaMask選擇好對應以太坊網路環境后,我們回到到Remix,環境選擇Injected Web3,會自動加載出MetaMask賬號:

點擊Deploy按鈕,彈出交易確認頁面,用于確認交易內容及gas消耗:

單擊確認提交交易,可以在除錯資訊區查看交易狀態,
合約部署之后,和在JavaScript VM環境下一樣,在功能區下方會出現智能合約部署后的地址,以及合約中所有可以呼叫的函式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/325689.html
標籤:區塊鏈
