配置文件
指定网络:
module.exports = {
networks: {
development: {
host: "127.0.0.1",
port: 8545,
network_id: "*" // Match any network id
}
}
};
development是这个网络配置的信息
我们可以添加N个网络,比如添加一个名为:live的网络:
networks: {
development: {
host: "127.0.0.1",
port: 8545,
network_id: "*" // match any network
},
live: {
host: "178.25.19.88", // Random IP for example purposes (do not use)
port: 80,
network_id: 1, // Ethereum public network
// optional config values:
// gas
// gasPrice
// from - default address to use for any transaction Truffle makes during migrations
// provider - web3 provider instance Truffle should use to talk to the Ethereum network.
// - function that returns a web3 provider instance (see below.)
// - if specified, host and port are ignored.
}
}
网络配置文件中还有其他一些选项,都可自己配置,它们都有默认值:
- gas: Gas limit used for deploys. Default is 4712388.一次操作的话费的最大gas限制
- gasPrice: Gas price used for deploys. Default is 100000000000 (100 Shannon).gas的价格
- from: From address used during migrations. Defaults to the first available account provided by your Ethereum client.发出操作的账户,默认是Ethereum地址address列表的第一个
- provider: Default web3 provider using host and port options: new Web3.providers.HttpProvider("http://<host>:<port>”)提供者,默认使用web3提供的host和port
针对每个网络,你可以指定host/port 或provider,但不能两个都指定
例如:
networks: {
ropsten: {
provider: function() {
return new HDWalletProvider(mnemonic, "https://ropsten.infura.io/");
},
network_id: '3',
},
test: {
provider: function() {
return new HDWalletProvider(mnemonic, "http://127.0.0.1:8545/");
},
network_id: '*',
},
}
这个之前的文章也提过,在上面可以看到,provider提供了一个地址,其效果跟指定host/port一样,所以不可能两个都是指定的,如果这三个参数 host,port,provider都有值,那么truffle会使用自己默认的地址运行,就是这么任性!
在truffle.js中自定义编译后的文件的存放目录
编译后的目录默认在 ./build/contracts,在配置中使用key:contracts_build_directory
来指定存放目录
module.exports = {
contracts_build_directory: "./output",
networks: {
development: {
host: "127.0.0.1",
port: 8545,
network_id: "*",
}
}
};
这个目录可以随便哪个位置都OK,路径也可以写成绝对路径,但是考虑到运行在另一个system的时候可能没有这个目录。
最后,不建议自己指定!!!
配置MOCHA的显示样式:
mocha: {
useColors: true
}
Solidity的编译配置:
solc: {
optimizer: {
enabled: true,
runs: 200
}
}
EthPM配置
在ethpm.json中配置
包名(应用名称):
package_name: "adder"
版本号:
version: "0.0.3"
描述:
description: "Simple contract to add two numbers"
作者:
authors: [
"Tim Coulter <tim.coulter@consensys.net>"
]
关键字:
keywords: [
"ethereum",
"addition"
],
依赖:合约应用对EthPM packages的依赖库目录
dependencies: {
"owned": "^0.0.1",
"erc20-token": "1.0.0"
}
许可证:
license: "MIT",

本文介绍了如何配置Truffle以适应不同的以太坊网络,包括设置gas limit、gas price和from地址。同时,讨论了网络配置中的provider选择,强调了不能同时指定host、port和provider。此外,还提到了自定义编译后合约文件的存放目录,并不建议这样做。最后,文章探讨了EthPM配置,包括包名、版本号、描述、作者、关键字和依赖项设置。
322

被折叠的 条评论
为什么被折叠?



