solidity系列教程<十六>以太坊私鏈Truffle框架部署智能合約

Truffle

Truffle 是世界一流的開(kāi)發(fā)環(huán)境,為以太坊的測(cè)試框架和資產(chǎn)管道,致力于使以太坊開(kāi)發(fā)者的生活更容易。使用Truffle,有以下特點(diǎn):

  • 內(nèi)置智能合約編譯、鏈接、開(kāi)發(fā)和二進(jìn)制管理。
  • 快速開(kāi)發(fā)的自動(dòng)化合約測(cè)試
  • 腳本、可擴(kuò)展性部署和遷移框架。
  • 用于部署到任意數(shù)量的公網(wǎng)和私網(wǎng)的網(wǎng)絡(luò)管理
  • 基于EthPM和NPM,并使用ERC190標(biāo)準(zhǔn)進(jìn)行包管理
  • 為合約通信提供交互式控制臺(tái)
  • 為緊密集成提供可配置的構(gòu)建管道
  • 在Truffle的環(huán)境中執(zhí)行外部的運(yùn)行腳本

我們?cè)趺窗惭b這個(gè)框架
npm install -g truffle
安裝完成后 使用命令truffle --version能看到truffle的版本,若提示沒(méi)有truffle命令,則需要將你的node的bin目錄添加到系統(tǒng)的環(huán)境變量文件/etc/profile

安裝完成后我們可以快速初始化一個(gè)truffle 項(xiàng)目
1、創(chuàng)建一個(gè)文件夾 : mkdir MetaCoin
2、進(jìn)入剛創(chuàng)建的文件夾 : cd MetaCoin
3、 truffle init若全局翻墻之后則會(huì)下載不下來(lái),但是我們可以通過(guò)
git clone ne https://github.com/trufflesuite/truffle-init-bare.git 下載,得到是一樣的

Truffle框架介紹

trffle.png

  • contracts/: 合約源碼存放文件夾
  • migrations/: 合約部署腳本
  • test/: 測(cè)試案例存放文件夾
  • truffle.js: 配置文件

通過(guò)一個(gè)簡(jiǎn)單的HelloWorld合約,來(lái)熟悉Truffle框架的合約編寫(xiě),部署,測(cè)試

1、在contracts文件夾內(nèi)新建一個(gè)HelloWrold.sol合約,合約內(nèi)容如下

pragma solidity ^0.4.24;
contract HelloWorld{    
    uint i = 8;   
    function getI ()public view returns(uint){      
       return i;   
    }    
    function addI (uint s)public view returns(uint){    
       return (i+s);   
    }
}

2、編寫(xiě)完成后我們先進(jìn)入truffle 的開(kāi)發(fā)模式

truffle develop 即可進(jìn)入開(kāi)發(fā)模式,會(huì)返回10個(gè)賬號(hào),結(jié)果如下圖

truffle1.png

3、在開(kāi)發(fā)模式下編譯我們寫(xiě)的合約compile

truffle2.png

編譯后會(huì)生成一個(gè)build的文件夾:
trffle3.png

4、編譯完成后我們開(kāi)始遷徙我們的HelloWorld合約,我們首先需要在migrations文件夾內(nèi)建立一個(gè)js文件,我們命名為 2_deploy_HelloWorld.js
在js內(nèi)寫(xiě)入一下內(nèi)容,其實(shí)就是照上面的那個(gè)1_initial_migration.js內(nèi)容,稍微修改變量名和文件名,路徑都差不多

var HelloWorld= artifacts.require("./HelloWorld.sol");

module.exports = function(deployer) {
  deployer.deploy(HelloWorld);
};

5、弄完后再truffle 開(kāi)發(fā)模式下的窗口輸入命令migrate,若得不到下面紅框類(lèi)似的結(jié)果,則需要 加 --reset 重新遷徙代碼到區(qū)塊鏈

truffle4.png

truffle5.png

6、遷徙代碼到區(qū)塊鏈上完成后我們開(kāi)始部署我們的合約:先定義變量addr用來(lái)保存合約部署成功后的合約對(duì)象


truffle6.png

7、合約部署成功后我們就可以測(cè)試,還記得我們寫(xiě)合約時(shí)候的2個(gè)函數(shù)么getI 和 addI 我們初始的I 值是8 我們先來(lái)測(cè)試下:直接用addr合約對(duì)象調(diào)用方法即可。

truffle7.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容