solidity-以太坊区块链Truffle-webpack开发入门 (十三) 配置信息configuration

Kohana ·
更新时间:2024-11-13
· 696 次阅读

配置文件

原文地址

指定网络:

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://:”)提供者,默认使用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 "

]

关键字:

keywords: [

  "ethereum",

  "addition"

],

依赖:合约应用对EthPM packages的依赖库目录

dependencies: {

  "owned": "^0.0.1",

  "erc20-token": "1.0.0"

}

许可证:

license: "MIT",


作者:大都废



Truffle-webpack solidity 以太坊 webpack

需要 登录 后方可回复, 如果你还没有账号请 注册新账号