部署合约

廖雪峰
资深软件开发工程师,业余马拉松选手。

重要提示

此区块链教程为技术教程,教程的所有内容均不构成任何投资比特币或其他数字货币的意见和建议,也不赞成个人炒作任何数字货币!

当我们编写完Vote合约后,如何把它部署到以太坊的链上?

实际上,部署合约也是一个交易,需要一个外部账户,花费一定的Gas,就可以把合约部署到链上。

因此,我们首先需要一个便于开发和测试的钱包,才能创建一个外部账户,并且账户上要有一定的Ether。

MetaMask

我们强烈推荐使用MetaMask钱包,这是一个基于浏览器插件的钱包,支持Chrome、FireFox等浏览器。使用的时候,通过Dapp网站的JavaScript可以发起交易,用户通过MetaMask确认后即可将交易发送至链上。

安装MetaMask非常简单,请参考官方文档。安装完成后,第一次启动MetaMask需要创建或导入一个钱包,设置一个解锁口令,MetaMask允许创建多个账号,可随时切换账号,还可切换不同的链,例如,以太坊主网、Ropsten测试网、Rinkeby测试网等。

在开发阶段,直接使用主网太费钱,可以使用测试网,并从faucet.egorfine.comfaucet.dimensions.network获取一些测试网的Ether。

注意

以太坊有多个测试网,开发前请在Etherscan确认使用哪个活动的测试网。

Testnets

部署合约

以太坊官方提供了一个Remix的在线IDE,用于编写、编译和部署以太坊合约。这是从零开始部署一个合约的最简单的方式。

我们访问Remix(注意:要部署合约,只能通过http访问,不能使用https),在左侧选择“File explorers”,在默认的Workspace的contracts目录下新建文件Vote.sol,然后贴入上一节我们编写的代码:

remix-file

接下来是编译该合约。选择左侧的“Solidity compiler”,点击“Compile Vote.sol”开始编译:

remix-compile

如果没有编译错误,可以看到编译成功的标志。接下来选择“Deploy & run transactions”:

remix-deploy

在“ENVIRONMENT”中,选择“Injected Web3”,表示我们要使用MetaMask注入的Web3环境,如果已正确连接MetaMask,可以看到“Ropsten (3) network”,表示已连接到Ropsten测试网。

在“CONTRACT”中,选择“Vote - contracts/Vote.sol”,这是我们将要部署的合约。

在“Deploy”按钮左侧,填入构造函数的参数,例如1735719000,然后点击“Deploy”按钮开始部署,此时会弹出MetaMask的交易签名确认,确认后部署合约的交易即被发送至测试链。在MetaMask的账户 - 活动中可以看到正在发送的交易,查看详情可以在Etherscan查看该交易的详细信息。当交易被打包确认后,即可获得部署后合约的地址0x5b2a...5a46

至此,我们就成功地部署了一个以太坊合约。

对于熟练的Solidity开发者,可以使用Truffle这个JavaScript工具通过JavaScript脚本全自动部署合约,减少手动操作导致的出错的可能。

小结

编写Solidity合约后,可以通过Remix在线编译、部署;

可以使用Truffle完成合约的自动化编译、测试、部署。



Comments

Loading comments...