前言
對(duì)數(shù)字貨幣有過(guò)一定了解的朋友應(yīng)該知道幣安(binance),幣安最近推出了一個(gè)能兼容以太坊EVM并且運(yùn)行智能合約的區(qū)塊鏈,名為幣安智能鏈。
這條鏈?zhǔn)鞘褂肞oSA的方式進(jìn)行節(jié)點(diǎn)的選舉和一致性校驗(yàn),參與者使用BNB抵押進(jìn)行參與,如果校驗(yàn)交易成功,提出有效區(qū)塊,將從區(qū)塊當(dāng)中的交易收取手續(xù)費(fèi)。
今天要介紹的內(nèi)容就是如何通過(guò)Chainide以及Metamask來(lái)部署一個(gè)BSC上的智能合約。

網(wǎng)站地址:https://binanceide.com/project/welcome
智能合約的編譯及部署
首先,進(jìn)入網(wǎng)站之后我們先找到如何新建一個(gè)項(xiàng)目,在右側(cè)有個(gè)藍(lán)色的方框內(nèi),寫(xiě)著Create Project,點(diǎn)擊之后就會(huì)跳轉(zhuǎn)到一個(gè)新的項(xiàng)目當(dāng)中。

在這里我們可以看到會(huì)自動(dòng)生成2個(gè)文件,上面是關(guān)于ERC20的類型引用(githubImport.sol),下面是一個(gè)簡(jiǎn)單的存取數(shù)的智能合約。
我把合約內(nèi)容貼在這里,讓大家了解一下。
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;
}
}
合約內(nèi)包括一個(gè)變量和兩個(gè)函數(shù),分別對(duì)應(yīng)的是寫(xiě)數(shù)以及讀數(shù)。
編譯

在我們寫(xiě)好了智能合約后,點(diǎn)擊右側(cè)的compile會(huì)出現(xiàn)這樣的側(cè)邊框。首先根據(jù)我們之前智能合約當(dāng)中的版本定義選擇一個(gè)complier,之前的定義是>=0.4.22 <0.7.0,那么在這里我選擇一個(gè)0.6.8的版本,是符合版本定義的。
選擇好之后點(diǎn)擊下面的藍(lán)色方框Compile storage.sol,就可以進(jìn)行編譯了,在編譯成功后會(huì)出現(xiàn)如下字樣。

在編譯完成之后我們將進(jìn)行合約的部署。
在這里有一點(diǎn)需要注意的,BSC上有兩條鏈可以進(jìn)行合約的部署,一條是測(cè)試網(wǎng),一條是主網(wǎng)。測(cè)試網(wǎng)可以通過(guò)測(cè)試網(wǎng)的faucet領(lǐng)取測(cè)試代幣進(jìn)行部署,主網(wǎng)則需要從幣安的官網(wǎng)上購(gòu)買(mǎi)BNB存到自己的BEP20地址當(dāng)中才能部署。
測(cè)試網(wǎng)部署合約
首先我們講一下關(guān)于測(cè)試網(wǎng)的合約部署,在測(cè)試網(wǎng)上部署成本比較低,過(guò)程也比較簡(jiǎn)單。
與一般的以太坊EVM部署不同的是,在幣安智能鏈上部署需要對(duì)Metamask進(jìn)行一些設(shè)置。

首先,我們打開(kāi)小狐貍錢(qián)包(metamask),點(diǎn)擊Ethereum Mainnet的地方選擇網(wǎng)絡(luò)選項(xiàng),然后點(diǎn)擊自定義RPC(Custom RPC)。
點(diǎn)擊進(jìn)入后會(huì)有5個(gè)地方需要填寫(xiě),內(nèi)容如下:
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

按照上面的樣子填好后點(diǎn)擊save就可以了,此時(shí)在network的選項(xiàng)欄當(dāng)中會(huì)出現(xiàn)BSC Testnet這個(gè)選項(xiàng)。
接著我們可以去BSC測(cè)試網(wǎng)的水龍頭(faucet)獲取測(cè)試代幣。
網(wǎng)站地址:https://testnet.binance.org/faucet-smart

在網(wǎng)站中間的方框內(nèi)輸入自己的錢(qián)包地址即可(錢(qián)包地址在打開(kāi)metamask窗口的上方,點(diǎn)擊即可復(fù)制)。
將網(wǎng)絡(luò)切換到BSC Testnet,然后我們就可以看到自己的錢(qián)包當(dāng)中有了一些BNB。

接著我們需要將Metamask與chainide的網(wǎng)站進(jìn)行connect,讓部署程序可以調(diào)用我們的錢(qián)包地址。
首先將瀏覽器切換到chainide所在的窗口,然后點(diǎn)擊Metamask的圖標(biāo),右上角有三個(gè)小點(diǎn)點(diǎn),點(diǎn)擊之后選擇Connect site。

此時(shí)會(huì)出現(xiàn)這樣的方框,點(diǎn)擊Manually connect to current site然后一步步點(diǎn)擊確認(rèn)即可。

然后再打開(kāi)Metamask時(shí),左上方應(yīng)該會(huì)有一個(gè)綠點(diǎn),同時(shí)顯示為connect,這樣就表示已經(jīng)與網(wǎng)站鏈接成功。

接下來(lái)我們進(jìn)行合約的部署,首先點(diǎn)擊右側(cè)的Deploy & interaction,會(huì)進(jìn)入到部署的方框,設(shè)置Value為60,然后確認(rèn)部署的合約正確之后點(diǎn)擊Deploy。

此時(shí)我們會(huì)跳出這樣的Metamask界面,要注意的是上面的Gas Price如果不是60需要自己修改一下,有時(shí)候如果部署失敗了可能是Gas price給的不夠高,如果不夠的話給到100試試看也是可以的。

然后我們就可以在界面上看到部署成功的信息了,同時(shí)在右側(cè)的Interact當(dāng)中會(huì)出現(xiàn)合約內(nèi)的函數(shù),這樣就代表部署已經(jīng)成功了。
接下來(lái)我們可以嘗試調(diào)用一下它們,就是點(diǎn)擊Interact,然后對(duì)函數(shù)的數(shù)值進(jìn)行一些設(shè)置和提交,就可以實(shí)現(xiàn)對(duì)合約的調(diào)用了。
主網(wǎng)部署合約
剛剛我們講完了測(cè)試網(wǎng)的合約部署內(nèi)容,接下來(lái)講一下關(guān)于主網(wǎng)的,主網(wǎng)與測(cè)試網(wǎng)不同的部分在于它的Network設(shè)置和代幣的購(gòu)買(mǎi)。
我們還是點(diǎn)擊Metamask的網(wǎng)絡(luò),選擇Custom RPC,點(diǎn)擊進(jìn)入后會(huì)有5個(gè)地方需要填寫(xiě),內(nèi)容如下:
Network Name:BSC Mainnet
New RPC URL :https://bsc-dataseed1.binance.org/
Chain ID:56
Currency symbol:BNB
Block Explorer URL:https://bscscan.com/

按照上面的樣子填好后點(diǎn)擊save就可以了,此時(shí)在network的選項(xiàng)欄當(dāng)中會(huì)出現(xiàn)BSC Mainnet這個(gè)選項(xiàng)。
兌換BNB充值
在BSC鏈上,手續(xù)費(fèi)由BNB進(jìn)行扣款,因此如果想部署合約,錢(qián)包里需要有一定數(shù)量的BNB。
我們可以在幣安的平臺(tái)上兌換一定數(shù)量的BNB,然后將其提現(xiàn)到自己的賬戶當(dāng)中。
tips:要注意的是在提現(xiàn)時(shí),選擇的是BSC鏈。

在完成以上的充值操作并且確認(rèn)賬戶內(nèi)有代幣后,其余操作與上面的測(cè)試網(wǎng)部署就是相同的了。
結(jié)語(yǔ)
關(guān)于使用Chainide進(jìn)行BSC幣安智能鏈的部署教程就講解到這里,有疑問(wèn)的同學(xué)可以在評(píng)論區(qū)內(nèi)留言,不同的平臺(tái)因?yàn)榧軜?gòu)不同帶來(lái)更多的可能性,也希望大家可以多做一些嘗試,共同進(jìn)步。