上一篇介绍的是以太坊下基于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()
合约部署成功,调用成功。