使用truffle编译和部署智能合约

1、首先下载并且安装truffle客户端 npm install -g truffle truffle是一个以太坊智能合约开发框架
2、创建一个truffle项目的根目录,以D:\truffle\truffle_java为例。打开cmd命令行工具,导航到truffle_java目录下。执行truffle init命令。会在该目录下出现下面目录结构的文件:
-comtracts
--Migrations.sol
-migrations
--1_initial_migration.js
-test
-truffle.js
-truffle-config.js
3、编译智能合约
我们在contracts文件夹下创建一个智能合约文件Test.sol,文件内容如下:
pragma solidity ^0.4.17;
contract Test {
function multiply(uint a) public returns(uint) {
return a * 7;
}
}
保存之后,执行truffle compile命令,truffle会把contracts文件夹下的智能合约文件编译成json的格式保存在build\contracts文件夹下,这个文件夹是新生成的文件夹。
truffle仅默认编译自上次编译后被修改过的文件,来减少不必要的编译,如果你想编译全部文件,可以使用--compile-all选项:truffle compile --compile-all
4、配置truffle-config.js文件,由于truffle.js和truffle-config.js文件有冲突,所以我们需要把truffle.js文件删除,只使用truffle-config.js文件。(如果你在windows上操作,那就删除truffle.js,如果你在另一个系统上操作,删除其中一个或者同时保留他们,都不要紧。这样做的原因是,在windows上有一个命名问题,当我们想要执行truffle命令时,它会打开truffle.js配置文件而不是读取里面的数据)
truffle-config.js内容如下:
module.exports = {
// See
// to customize your Truffle configuration!
rpc: {
host: "localhost",
port: 8545
},
networks: {
development: {
network_id: "*",
host: "localhost",
port: 8545
}
}
};
4、部署智能合约
编写部署智能合约的js文件,在migrations文件夹下,该文件夹下有个默认的文件1_initial_migration.js,这是部署Migration.sol智能合约的,内容如下:
var Migrations = artifacts.require("./Migrations.sol");
module.exports = function(deployer) {
deployer.deploy(Migrations);
};
如果我们有多个智能合约,只需要把对应的智能合约文件名加上去即可
然后在命令行执行truffle migrate,就可以把智能合约部署到以太坊网络上去了。
注意:truffle部署智能合约的默认账户是geth客户端的主账户,所以在部署之前要把主账户解锁之后才可以部署,并且部署的时候需要挖矿。

你可能感兴趣的:(以太坊)