solidity-以太坊区块链Truffle-webpack开发入门 (五) 部署合约及网络配置

Bree ·
更新时间:2024-11-10
· 706 次阅读

部署合约        原文地址

运行步骤:

启动模拟环境 
 $ testrpc
	编译项目 
	
$ truffle compile
	部署合约 
	
$ truffle migrate
	运行前端服务器 
	
 $ nop run dev

migrate是一个js文件,用来把合约部署到Ethereum网络上,在当前是部署到TestRPC的模拟环境上,也可以使用命令 $ truffle deploy 来部署合约,其效果一致

migrate文件存放在migrations目录中,

migrate文件的命名规则  数字+描述+描述,数字方便在部署合约出错是快速定位,描述增加可读性,便于理解此文件的功能作用

migrations目录中的第一个文件 1_initial_migration 用来初始化以便于后续使用migrate的功能

在contracts目录中有对应的migrations.sol文件

部署到指定的网络,这个网络live就是网络的配置名称

$ truffle migrate --network live

配置在truffle.js中,内容如下:

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-webpack solidity 以太坊 webpack

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