本篇内容主要讲解“怎么部署智能合约到infura中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么部署智能合约到infura中”吧!
创新互联公司网络公司拥有十年的成都网站开发建设经验,成百上千客户的共同信赖。提供成都网站建设、网站制作、网站开发、网站定制、买链接、建网站、网站搭建、响应式网站、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务
在这个特定的例子中,我们将迁移到Ropsten测试网络。 我们假设你已经有了一个dapp, 如果需要一个测试dapp,可以使用Truffle提供的宠物店dapp。
Infura的HDWalletProvider是一个独立的npm软件包,如下安装:
npm install truffle-hdwallet-provider
注意 :如果你在Windows上安装并且遇到MSBUILD错误,则可能需要安装Windows构建工具。 在具有管理员权限的控制台中,运行
npm install -g windows-build-tools
然后再次尝试安装。
在使用Infura之前,需要注册Infura访问令牌 。
填写并提交表格后你就可以收到访问令牌。 相关信息将显示在屏幕上并发送到你提供的电子邮件。 需要记录下来这个访问令牌并确保它不被别人看到!
下一步是编辑你的truffle.js文件来启用HDWalletProvider并为部署到Ropsten进行必要的配置。
STEP 1:首先,在配置文件中定义HDWalletProvider对象。 在truffle.js文件的顶部添加以下代码:
var HDWalletProvider = require("truffle-hdwallet-provider");
STEP 2:接下来,提供助记词(mnemonic
)来生成你的账户。
var mnemonic = "orange apple banana ... ";
警告 :在此过程中,我们强烈建议将助记符存储在另一个(秘密)文件中,以降低助记符泄漏风险。 如果有人知道你的助记符,他们将拥有你所有的地址和私钥!
STEP 3:添加Ropsten网络定义:
module.exports = { networks: { ropsten: { provider: function() { return new HDWalletProvider(mnemonic, "https://ropsten.infura.io/") }, network_id: 3 } } };
注意事项:
虽然该示例仅定义了单个网络,但你可以像往常一样定义多个网络。
ropsten网络定义中的provider将使用实例化的HDWalletProvider 。
HDWalletProvider以助记符和期望的网络为参数。 Infura主页上提供Infura支持的 网络列表。
确保使用前面拿到的Infura访问令牌替换
provider值被封装在一个函数中,这可以确保它在需要之前不会被初始化。 如果连接到多个网络,这一点尤为重要。 关于该主题的更多信息,请参阅Truffle文档的网络配置部分。
默认情况下,由助记符产生的第一个账户将负责执行合约迁移任务。 但如果需要的话,你可以传入参数以指定要使用的帐户。 例如,要使用第三个帐户:
new HDWalletProvider(mnemonic, "https://ropsten.infura.io/", 2);
账户索引是从零开始的,所以2表示第三个地址。
确保你的帐户有足够的账户余额来进行部署。 可以通过称Faucet的服务在Ropsten网络上获取Ether。 虽然在那里有多个Faucet网站,我们推荐的一个服务是在EthTools上托管的 。
导航至EthTools的Ether Faucet 。
输入你的助记符,并选择你想要多少ether(最多5个)。
Faucet将链接到你的第一个帐户。 点击“Request Ether”提交请求。
很快,你的账户将获得请求的ether。
注意 :也可以通过MetaMask申请ether。 在Ropsten上连接你的帐户,然后点击“Buy”按钮,该按钮将提供MetaMask的Ropsten测试Faucet的链接,它的工作方式与上述类似。
我们现在可以开始将合约部署到Ropsten上了!
STEP 1: 编译项目:
truffle compile
STEP 2:部署到Ropsten网络:
truffle migrate --network ropsten
如果一切顺利,应该可以看到类似于以下内容的输出:
Using network 'ropsten'. Running migration: 1_initial_migration.js Deploying Migrations... ... 0xd79bc3c5a7d338a7f85db9f86febbee738ebdec9494f49bda8f9f4c90b649db7 Migrations: 0x0c6c4fc8831755595eda4b5724a61ff989e2f8b9 Saving successful migration to network... ... 0xc37320561d0004dc149ea42d839375c3fc53752bae5776e4e7543ad16c1b06f0 Saving artifacts... Running migration: 2_deploy_contracts.js Deploying MyContract... ... 0x7efbb3e4f028aa8834d0078293e0db7ff8aff88e72f33960fc806a618a6ce4d3 MyContract: 0xda05d7bfa5b6af7feab7bd156e812b4e564ef2b1 Saving successful migration to network... ... 0x6257dd237eb8b120c8038b066e257baee03b9c447c3ba43f843d1856de1fe132 Saving artifacts...
需要提醒的是,你的交易ID将与上面的不同。
注意 :如果收到错误Error: Exceeds block gas limit
,你可能需要为合约手动设置油量上限(gas limit
)。
STEP 3:如果想验证合约是否已成功部署,可以在Etherscan的Ropsten部分进行检查。 在搜索字段中,输入部署交易ID。 在上面的例子中,交易ID是:
0x7efbb3e4f028aa8834d0078293e0db7ff8aff88e72f33960fc806a618a6ce4d3
你应该可以看到有关交易的详细信息,包括交易受到保护的区块号。
到此,相信大家对“怎么部署智能合约到infura中”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!