区块链:以太坊基础之第一个智能合约
1.什么是以太坊
以太坊是一個開源的有智能合約功能的公共區(qū)塊鏈平臺,通過其專用加密貨幣以太幣(Ether,簡稱“ETH”)提供去中心化的以太虛擬機(Ethereum Virtual Machine)來處理點對點合約。(來自百度百科)
其實最主要的就是其支持智能合約,這是與比特幣最大的不同。比特幣是區(qū)塊鏈1.0,以太坊則是2.0。其他概念不再贅述。
2.安裝錢包MetaMask
2.1.在線安裝
打開谷歌瀏覽器,找到擴展程序,搜索MetaMask,直接安裝即可。(需要FQ)
2.2.離線安裝
打開鏈接:https://github.com/MetaMask/metamask-extension/releases
找到chrome的插件,下載壓縮包,解壓。
打開谷歌,輸入chrome://extensions/,進入擴展插件頁,打開開發(fā)者模式,加載已解壓的擴展程序,選擇剛剛解壓的文件即可
2.3.開始使用
安裝好插件后,就需要注冊我們的賬號,這里有一個12個單詞的助記詞,需要保存好,等同于賬戶。然后設(shè)置密碼,一步步來就行了。
注冊好之后,就可以直接使用了。
在右上角咱們可以選擇網(wǎng)絡(luò),默認進入的是主網(wǎng)絡(luò)。主網(wǎng)絡(luò)的ETH是有價值的,其他網(wǎng)絡(luò)的就是測試用的。
3.測試前準備
測試前,咱們得拿到一些以太幣,方便測試,主網(wǎng)絡(luò)的是不現(xiàn)實的,得花錢買。
選擇測試網(wǎng)絡(luò),如Ropsten,點擊存入,咱們就可以選擇去水管獲取測試用的ETH
選擇從水管獲取后,我們就會跳轉(zhuǎn)到水管的頁面
點擊綠色按鈕,我們就能每次從水管獲取一個ETH,每個賬戶限制5個。下面的黃色按鈕就將我們的ETH貢獻給水管。
這里有可能經(jīng)常出問題,多試幾次就可以了。
4.編寫簡單的智能合約--水管
4.1.代碼編寫
打開在線編輯器。http://remix.ethereum.org(需要FQ)
進入主頁,選擇環(huán)境,點擊Solidity按鈕,初始化環(huán)境。
點擊browser旁邊的加號,新建一個,命名為Faucet,編寫一個簡單的智能合約,如下:
代碼及注釋如下:
///指定編譯器版本
pragma solidity ^0.4.26;
///定義一個合約體,類似于Java的Class,類名需要跟文件名一致
contract Faucet {
///定義一個公共方法,withDraw
function withDraw(uint amount) public{
///require表示該判斷必須為真,才能向下執(zhí)行
require(amount <= 1000000000);
///msg.sender指定一個調(diào)用者地址,transfer發(fā)幣,單位為wei
msg.sender.transfer(amount);
}
///function () 意為回退函數(shù),payable意味可支付的
function () public payable {}
}
這里需要說明的是,回退函數(shù)是必須的,不然不能進行轉(zhuǎn)賬。
4.2.編輯合約
我們要運行我們的合約,就必須要上鏈。
首先進行編譯,點擊第二個按鈕,進入編譯界面。點擊Compile Faucet.sol,編譯我們的合約。
出現(xiàn)如下界面,表示編輯完成。
4.3.發(fā)布合約
點擊第三個按鈕,環(huán)境選擇第二個,這一步會關(guān)聯(lián)我們的賬戶(測試環(huán)境)
賬戶關(guān)聯(lián)后,這里我們就可以看到我們的余額等,點擊Deploy,進行發(fā)布。
發(fā)布的時候相當于也是一筆交易,需要我們支付燃氣費gas。
點擊確認,即可發(fā)布新合約。此時我們可以在錢包里面看到該次交易的信息。
合約發(fā)布成功后,待處理會變?yōu)榫G色的確認。我們的編輯器也會出現(xiàn)如下界面:
灰色部分的Faucet at 0x........即表示我們的合約地址(等同于一個賬戶,我們可以給他進行轉(zhuǎn)賬)
下面就是我們的方法名,紅色的為默認的回退函數(shù)。
下面withDraw就是我們剛剛寫的方法了:輸入金額大小,點擊按鈕即可向我們的賬戶進行轉(zhuǎn)賬。
當然這個時候是會失敗的,因為合約地址上并沒有ETH。
4.4.給合約地址轉(zhuǎn)賬
復制合約地址,返回我們的錢包,選擇發(fā)送,給合約轉(zhuǎn)賬,輸入剛剛復制的合約地址,取一個別名。
我們給他轉(zhuǎn)兩個,點擊下一步。
點擊確認。然后返回錢包,等待轉(zhuǎn)賬完成。我們的ETH也少了兩個。
4.5.測試合約
回到在線編輯器,在withDraw輸入10000000000,點擊withDraw,即可從合約水管取出ETH到我們的賬號。
這里還是需要我們支付一次燃氣費的。等待完成之后,我們回到錢包查看。
這里已經(jīng)多了1ETH了,表明我們編寫的合約生效了。
至此,我們就完成了一個簡單的智能合約的編寫。
總結(jié)
以上是生活随笔為你收集整理的区块链:以太坊基础之第一个智能合约的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一篇:GPU 编程技术的发展历程及现状
- 下一篇: 【命令】Maven命令