本章主要介绍,私有链下truffle框架下进行简单的开发、部署、测试;
前提条件: truffle 已经安装,详见我的上一篇文章;
1. 准备truffle 目录
注意: build目录是我编译后才有的,所以不用纠结;每个目录的基本介绍可以看上一张;
2. 使用remix-ide 编写简单的合约
注意: 合约代码很简单,如果没有solidity开发基础的人,可以直接复制粘贴,体验truffle的整体过程;
testDemo .sol 文件内容如下:
pragma solidity ^0.4.4;
contract testDemo{
uint [] a = [1, 2, 3, 4, 5];
function testDemo(){
a[4] = 400;
}
function getA(int b) constant public returns (uint){
uint c;
if (b == 1){
c = 1000;
} else {
for(uint x = 0; x < a.length; x++) {
c = a[x];
}
}
return c;
}
}
contract test1 is testDemo{
function getAmount() constant returns (uint[]){
return a;
}
}
3. 配置私有链需要修改truffle.js
module.exports = {
networks: {
development: {
host: "localhost", //ip
port: 8090, //端口
network_id: 1138, //开发模式,本地的私有链网络
}
}
};
注意: 如果你已经学习了私有链的部署上面的不用说肯定都是小easy, 如果搞不明白,可以看我之前的文章;
4. 代码部署、
4.1 刚才开发的testDemo.sol 代码需要放在truffle框架的 contracts 下:
4.2 vim migrations/2_deploy_contracts.js
4.3 编译、部署
编译:truffle compile
Truffle
仅默认编译自上次编译后被修改过的文件,来减少不必要的编译。如果你想编译全部文件,可以使用--compile-all
选项
部署:truffle migrate
如果之前执行过truffle migrate
命令,再次执行,只会部署新的js文件,如果没有新的js文件,不会起任何作用。如果使用--reset
参数,则会重新的执行所有脚本的部署。
注意: 执行部署的时候需要挖矿才能成功将合约部署到私有链中,可能会遇到用户锁定的问题自己搞定即可很简单;
5. truffle console 控制台测试
5.1 trufflle console
5.2 编写脚本测试
var testDemo
testDemo.deployed().then(function(instance){testDemo = instance})
6.拓展(可以自己多学习了解):
在truffle的控制台可以查看合约的相关信息, 如
好了到此,本章结束,如果想要学习更深入可以参考官网学习,下章见;