前言
对数字货币有过一定了解的朋友应该知道币安(binance),币安最近推出了一个能兼容以太坊EVM并且运行智能合约的区块链,名为币安智能链。
这条链是使用PoSA的方式进行节点的选举和一致性校验,参与者使用BNB抵押进行参与,如果校验交易成功,提出有效区块,将从区块当中的交易收取手续费。
今天要介绍的内容就是如何通过Chainide以及Metamask来部署一个BSC上的智能合约。
网站地址:https://binanceide.com/project/welcome
智能合约的编译及部署
首先,进入网站之后我们先找到如何新建一个项目,在右侧有个蓝色的方框内,写着Create Project,点击之后就会跳转到一个新的项目当中。
在这里我们可以看到会自动生成2个文件,上面是关于ERC20的类型引用(githubImport.sol),下面是一个简单的存取数的智能合约。
我把合约内容贴在这里,让大家了解一下。
pragma solidity >=0.4.22 <0.7.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
合约内包括一个变量和两个函数,分别对应的是写数以及读数。
编译
在我们写好了智能合约后,点击右侧的compile会出现这样的侧边框。首先根据我们之前智能合约当中的版本定义选择一个complier,之前的定义是>=0.4.22 <0.7.0,那么在这里我选择一个0.6.8的版本,是符合版本定义的。
选择好之后点击下面的蓝色方框Compile storage.sol,就可以进行编译了,在编译成功后会出现如下字样。
在编译完成之后我们将进行合约的部署。
在这里有一点需要注意的,BSC上有两条链可以进行合约的部署,一条是测试网,一条是主网。测试网可以通过测试网的faucet领取测试代币进行部署,主网则需要从币安的官网上购买BNB存到自己的BEP20地址当中才能部署。
测试网部署合约
首先我们讲一下关于测试网的合约部署,在测试网上部署成本比较低,过程也比较简单。
与一般的以太坊EVM部署不同的是,在币安智能链上部署需要对Metamask进行一些设置。
首先,我们打开小狐狸钱包(metamask),点击Ethereum Mainnet的地方选择网络选项,然后点击自定义RPC(Custom RPC)。
点击进入后会有5个地方需要填写,内容如下:
Network Name:BSC Testnet
New RPC URL :https://data-seed-prebsc-1-s1.binance.org:8545/
Chain ID:97
Currency symbol:BNB
Block Explorer URL:https://testnet.bscscan.com
按照上面的样子填好后点击save就可以了,此时在network的选项栏当中会出现BSC Testnet这个选项。
接着我们可以去BSC测试网的水龙头(faucet)获取测试代币。
网站地址:https://testnet.binance.org/faucet-smart
在网站中间的方框内输入自己的钱包地址即可(钱包地址在打开metamask窗口的上方,点击即可复制)。
将网络切换到BSC Testnet,然后我们就可以看到自己的钱包当中有了一些BNB。
接着我们需要将Metamask与chainide的网站进行connect,让部署程序可以调用我们的钱包地址。
首先将浏览器切换到chainide所在的窗口,然后点击Metamask的图标,右上角有三个小点点,点击之后选择Connect site。
此时会出现这样的方框,点击Manually connect to current site然后一步步点击确认即可。
然后再打开Metamask时,左上方应该会有一个绿点,同时显示为connect,这样就表示已经与网站链接成功。
接下来我们进行合约的部署,首先点击右侧的Deploy & interaction,会进入到部署的方框,设置Value为60,然后确认部署的合约正确之后点击Deploy。
此时我们会跳出这样的Metamask界面,要注意的是上面的Gas Price如果不是60需要自己修改一下,有时候如果部署失败了可能是Gas price给的不够高,如果不够的话给到100试试看也是可以的。
然后我们就可以在界面上看到部署成功的信息了,同时在右侧的Interact当中会出现合约内的函数,这样就代表部署已经成功了。
接下来我们可以尝试调用一下它们,就是点击Interact,然后对函数的数值进行一些设置和提交,就可以实现对合约的调用了。
主网部署合约
刚刚我们讲完了测试网的合约部署内容,接下来讲一下关于主网的,主网与测试网不同的部分在于它的Network设置和代币的购买。
我们还是点击Metamask的网络,选择Custom RPC,点击进入后会有5个地方需要填写,内容如下:
Network Name:BSC Mainnet
New RPC URL :https://bsc-dataseed1.binance.org/
Chain ID:56
Currency symbol:BNB
Block Explorer URL:https://bscscan.com/
按照上面的样子填好后点击save就可以了,此时在network的选项栏当中会出现BSC Mainnet这个选项。
兑换BNB充值
在BSC链上,手续费由BNB进行扣款,因此如果想部署合约,钱包里需要有一定数量的BNB。
我们可以在币安的平台上兑换一定数量的BNB,然后将其提现到自己的账户当中。
tips:要注意的是在提现时,选择的是BSC链。
在完成以上的充值操作并且确认账户内有代币后,其余操作与上面的测试网部署就是相同的了。
结语
关于使用Chainide进行BSC币安智能链的部署教程就讲解到这里,有疑问的同学可以在评论区内留言,不同的平台因为架构不同带来更多的可能性,也希望大家可以多做一些尝试,共同进步。
参考资料
币安智能链官方文档