上一篇介紹的是以太坊下基於geth+remix-ide智能合約環境的搭建和部署運行,本篇介紹的是基於truffle+ganache。npm
ganache至關因而geth的圖形化操做界面,相對於純指令操做的geth較爲簡單易上手,而且運行交易和生成區塊的過程一目瞭然。框架
【前期準備】ide
1.Node.js安裝(這一點在上一篇文章中提到過,因此此處不作展現)函數
2.指令輸入:ui
npm install -g solc(安裝智能合約) npm install -g ganache-cli (安裝ganache開發端) npm install -g truffle (安裝truffle框架)
3.vscode運行環境spa
【智能合約】code
1.新建智能合約server
①新建一個文件夾eg:helloworld,並進入該文件夾下進行指令操做:blog
cd helloworld
②建立一個truffle項目:開發
truffle init
③將新建的文件夾helloworldzheng總體搬進vscode中:
④在helloworld下的contracts文件夾中建立新合約,起名helloworld.sol,並輸入以下代碼:
pragma solidity ^0.5.2; contract helloworld{ function say() public pure returns(string memory){ return "hello world"; } }
⑤在helloworld下的migrations文件夾中點開1_initial_migrations.js文件,並將其中的"Migrations"參數一概改爲helloworld:
const helloworld = artifacts.require("./helloworld.sol"); module.exports = function(deployer) { deployer.deploy(helloworld); };
⑥回到truffle操做環境裏,對上述文件進行編譯:
注意,必定要進入到contracts文件夾下進行編譯操做,不然會報錯找不到對應合約。
編譯成功。
2.鏈接ganache
①運行ganache
②智能合約與ganache鏈接:
回到vscode,打開truffle-config.js文件:
在module-exports模塊中輸入以下內容:
以後咱們回到ganache,打開設置,點擊server,看到以下操做面,其中上圖中的host,port,network_id參數都是根據ganache中對應的參數填寫的:
③準備好以後,能夠部署合約:
回到truffle操做,指令輸入:
truffle migrate
若是按照上述操做一步步來,那麼部署成功咱們能夠看到ganache下的區塊增長了:
④接下來能夠開始嘗試調用合約:
回到truffle操做指令,輸入以下指令進入操做臺:
truffle console
若是順利進入操做臺便可以進行合約函數的調用:
輸入指令:
helloworld.deployed().then(instance=>contract=instance)
console中預載了truffle-contract函數庫,因此能夠直接對合約的函數進行操做。
上述指令含義是獲取helloworld合約,存爲instance,並將其存儲到contract變量中以便後期使用。
接下來能夠調用helloworld合約中咱們定義好的say()函數了:
輸入指令:
contract.say()
合約部署成功,調用成功。