這年頭真的是什麼都要區塊鏈,上次還聽到有人要做串區塊鏈的智慧路燈。與其花以太幣點光明燈,不如來動手寫一份智能合約吧?

前幾天在高雄前端社群聽洧杰大大開的 Workshop,讓我突然學會智能合約的相關八卦,真是獲益良多啊。趁忘記之前趕快把相關筆記打下來,也許哪天還用的到。

接著要進入正題了。這邊就不詳細介紹區塊鏈和加密貨幣是什麼了,如果不是很熟的話,推薦可以看看這部影片:

發現芬特克!比特幣 & 區塊鏈原理大解析』芬特克 FinTech EP1

而以太幣的智能合約,也是透過類似的方式。每次建立合約、每個運算(交易)都會花手續費 (讀取不會),透過礦工把每筆交易都記錄到區塊鏈上,達到區塊鏈上智能合約的效果。

安裝 Metamask

首先我們要安裝 Metamask。Metamask 是一個擴充元件,它算是一個 Ethereum 錢包,但同時也能跟網頁上的 dApp 互動。

打開這可愛狐狸頭,同意使用者條款後,就會進到主畫面。(記得把那串文字記起來,之後要重新匯入你的錢包就要靠那串了。)

建立好錢包之後,首先我們要從以太幣主網路切換到測試用的 Rinkeby Test Network,這樣才不會每次測試合約都要花錢

metamask

取得 Rinkeby Test Network 免費以太幣

但是一開始沒有錢怎麼辦?這時我們要找一個 Faucet。複製好你的錢包位址,然後貼到 這個網站,他就會給你 0.001 Ether。

faucet1

覺得 0.001 Ether 不夠?那就到 這個網站 拿吧。

faucet2

這個 faucet 可以一次拿最高 18.75 Ether,但相對麻煩些,你要先把你的以太錢包位址貼到 Facebook、Twitter、Google Plus 公開貼文,再把公開貼文貼到 faucet 上。

不過這些是測試網路上的以太幣,只能在測試網路用。所以如果你和朋友想練習智能合約,就在 Rinkeby Test Network 做交易吧!

透過 Metamask 使用以太幣交易

打開 Metamask,按下 Send,就可以貼上朋友的錢包位址和欲傳送的金額。

如果你沒朋友,可以考慮送點錢給我,反正測試網路嘛:0xAd4d554353981022b5C7A70079830f32D1301FA3

metamask2

最後看看交易手續費,確定的話按下 Submit,就能把錢送給對方囉!(這個畫面是交易前的確認畫面,後面我們提到智能合約的時候,每次交易也都會跳出這個確認畫面。按下 Submit 就會真正開始進行交易囉!)

metamask3

在 Etherscan 查看交易過程

如果你不確定錢是否傳到對方的錢包裡了,可以在 Ehterscan 這網站看看目前的交易過程。打開 Metamask 後你會看到 Sent 頁籤下有剛剛完成的交易,點擊 Transaction Number 即可連到 Etherscan 查看交易狀況。(你也可以在這裡看到錢包位址的交易狀況。)

etherscan

以太幣智能合約 目錄