一、意义:
在之前内容的学习中,我们发现compile、deploy等文件在不同的项目中是可以互用的,根据低聚合高耦合的代码设计规则,我们可以将此部分封装成一个框架,从而更好的完成开发。所以ETH官方推出了Truffle框架。那么,Truffle到底为我们带来了什么呢?让我们来一探究竟。
二、准备工作:
1.安装truffle
npm install truffle -g
2.官方文档地址
github:
https://github.com/trufflesuite/truffle
官方文档:
https://www.trufflesuite.com/docs/truffle/overview
三、truffle的学习:
1.创建一个工程
$ truffle
Truffle v3.4.11 - a development framework for Ethereum
$ cd myproject
$ truffle init
ps:
1.由于某些原因在安装过程中,可能会卡着不动,这时候您需要科学上网或者使用淘宝镜像cnpm安装
truffle-config.js是win端的设置,truffle.js是mac或linux的设置。在创建工程后,windows端需要删除truffle.js,不然可能会报错,linux或mac端不用管。
2.使用truffle部署一个合约
1.在contracts中创建Simple.sol文件,并写入。文件名需和合约名一致
pragma solidity ^0.4.24;
contract Simple{
uint256 tmp;
function setValue(uint256 value)public {
tmp=value;
}
function getValue()public view returns(uint256){
return tmp;
}
}
2.执行编译命令
truffle compile
3.在migrations文件夹中创建2_Simple_migrations.js文件并写入
const Migrations = artifacts.require("Migrations");
module.exports = function(deployer) {
deployer.deploy(Migrations);
};
4.设置truffle-config.js、修改默认文件为:
module.exports = {
networks: {
ganacheNetwork: {
host: "127.0.0.1",
port: 8545,
network_id: "*" // Match any network id
}
}
};
4.连接ganache后执行部署命令
扫描二维码关注公众号,回复:
9568361 查看本文章
truffle migrate --network ganacheNetwork
从上述例子中,我们可以发现truffle的第一个优势:1.深度集成。开发,测试,部署一行命令都可以搞定。
3.Truffle自带控制台develop
在truffle中默认提供了一个与以太坊节点仿真器工具develop,将数据存储在了内存中,它可以更加快速的测试,但看不到数据。默认端口为9545,启动命令为truffle develop ,在启动后直接执行compile进行编译,直接执行migrate进行部署。