天天看點

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

以太坊智能合約的開發,作者目前使用兩種方法:

方法一:使用Truffle 架構 開發

方法二:Remix-IDE內建開發環境

Truffle 架構的基本使用在之前的部落格中已經做了介紹,本節主要介紹IDE內建開發環境,并使用兩個隻能合約執行個體做原理示範,并且将以一個測試用例來介紹如何進行隻能合約單元測試。

Remix-IDE

在Linux環境下,使用如下方式安裝:

step1:進入官方網站 https://github.com/ethereum/remix-ide

step2:按照如下方法執行

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

特别注意紅色的辨別,紅色的相關指令一定是當你需要連接配接Git上的源碼,并且想做相關開發的安裝指令。

如果你隻是個人玩家,打算自己在本地安裝IDE 并且 不打算參與IDE開發的朋友。

隻要執行藍色辨別指令即可!

隻要執行藍色辨別指令即可!

隻要執行藍色辨別指令即可!

安裝完成後本地執行npm start 指令開啟本地以太坊伺服器。

打開你的浏覽器,打開127.0.0.1:8080 即可進入內建開發環境,當今天最新版本如下所示:

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

上圖即為安裝完成後初始界面。

Remix-IDE 界面介紹

整個開發界面如下圖所示:

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

如上圖所示,我們将這個界面分為8個部分,下來将按照标記的順序,逐一的解釋與描述。

①檔案空間描述

這個部分即為我們編寫的智能合約檔案,如下圖所示,我們這裡有三個智能合約檔案

Counter.sol

CallCounter.sol

【引用*】前兩個合約内容,作者第一次在《以太坊技術詳解與實戰》中看到,非常簡單的例子。

CallCounter_test.sol

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

②智能合約編譯器資訊

智能合約在編寫完成後,需要編譯器編譯成二進制檔案,智能合約的部署與執行本質上就是儲存了一個二進制檔案,而調用智能合約即為調用這個二進制檔案提供的接口。

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

如上圖所示,可以自主選擇solidity 編譯版本,點選按鈕即可完成編譯。

③DEPLOY & RUN TRANSACTIONS 部署與執行交易功能

第三部分就是部署已經編譯完成的智能合約,然後執行智能合約中的交易,點選 Deploy即完成了智能合約的部署,回報如下圖所示:

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

圖中由上到小分别為執行環境,執行賬戶(部署時随機生成的測試賬戶)預設生成10個賬戶,以上賬戶均為外部賬戶,每個賬戶預設保有100以太币。接着是Gas Limit 智能合約GAS的消耗上限,VALUE 轉賬價值,注意這裡,部署的合約中一定要有接受賬戶,不然直接部署會出錯。

接着,就是目前合約名稱。

注意,右下角的DEBUG按鈕,可以讓你進入單步調試功能;與GDB之類的調試器類似,不過可視化功能倒是做的不錯,是非常實用的調試工具,可以觀察執行棧的内容,以及相關的變量變化。

特别注意的是,在這裡可以看到合約中狀态變量,所有交易函數,并且我們能夠在這裡直接看到合約中的變量數值與直接發起“消息調用交易”,如下圖所示:

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

可以看到,有合約位址0xB88…013 這個位址可以直接複制使用,狀态變量count 的值為10;

④智能合約SOLIDITY STATIC ANALYSIS

這個子產品主要對智能合約進行靜态的安全性分析,如下圖所示

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

⑤DEBUGGER 調試

調試功能在上文也提到過,不僅可以單步調試,我們的智能合約也能顯示每一筆交易的具體細節如圖所示:

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

交易的内容資料與以太坊上交易的格式相同,讀者可以自行查閱對比了解。

其中要說明的是兩個内容 Transaction cost 和 execution cost 這兩個内容:

Transaction cost : 執行整個交易所花費的費用,包含虛拟機執行智能合約代碼的費用

Execution cost: 特指虛拟機執行智能合約代碼所花費的費用

⑥SOLIDITY UNIT TESTING

智能合約單元測試子產品,點選Generate 按鈕可以生成一個測試模闆檔案,我們給該測試檔案中寫入一個部署合約的語句;測試結果如下:

詳解智能合約開發利器Remix-IDE(2020.6.4 Last Version)

這個單元測試不但能夠測試正确性,還能統計測試時間。

⑦ 插件使用情況,可以選擇自己需要的插件

⑧ 編輯闆塊

⑨ 終端指令行(第一張圖示記有誤,小事)

繼續閱讀