以太坊Solidity编程语言开发框架————2、网络与APP部署

背景

即使最小的项目也至少会与两个以上的区块链打交道,一个是开发机上的测试链,如EthereumJS TestRPC.另一个则是比如你最终要部署的网络,如以太坊网络,自己公司内的私链等等。Truffle提供了一个管理不同网络下的构建和部署资源的系统,来简化最终的部署流程。

配置

详见1. 配置文件章节了解更多。

指定一个网络

大多数Truffle提供的命令根据指定的网络不同而表现不同,会使用对应网络下的合约和配置信息。可以通过--network选项在参数上进行控制。

$ truffle migrate --network live
networks: {
  development: {
    host: "localhost",
    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
  }
}

在上面这个例子中,Truffle会在live网络中进行移植。如果配置如上述配置示例的Example的章节所指定的内容的话,是最终在以太坊网络上进行部署。

构建资源

正如4. 编译合约章节中所提到的那样,构建后的资源存储在./build/contracts目录下,以.sol.js这样的文件存在。当你编译合约文件,或者在某个网络上运行移植时,Truffle将会更新这些.sol.js的文件,文来包含相关网络的信息。当这些资源在后续中被使用了,比如在前端应用中。它会自动检测当前使用的网络,根据网络自动使用对应的合约资源。

应用部署

因为网络是在运行时自动检测的,这意味着你只需要部署你的应用或前端一次。当你的程序运行时,会动态检测当前使用的网络,以调用合适的资源,这让你的程序非常的灵活。

举例来说,如果你将程序发布到http://mydapp.io/,使用钱包浏览器时,你的程序能很好的运行。如果你的钱包浏览器运行在正式网络上,你的dapp会使用正式网络上部署的合约,如果是在测试网络上,则对应的使用测试网络的资源。

如果任何问题,欢迎留言批评指正。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值