程式麻瓜打造區塊鏈網站5–智能合約介紹、編寫環境

大家都知道區塊鏈有去中心化、不可竄改的特性,藉由這些特點,我們可以利用它來執行需要公平、公正、公開的程式,像是金融、博弈、契約等相關的應用。說到這裡,可能有人會想說既然不可竄改那不就代表程式放上區塊鏈就寫死不會動了嗎?其實應該說是遊戲規則是寫死的,但是參數是可以依據規則改變的,之後實作就知道是怎麼回事了。

智能合約是由叫做solidity的程式語言編寫,可以用線上編輯器remix編寫,也能在VScode裡下載環境編寫,我個人最常用remix編寫,因為可以直接部屬到測試鏈上測試,所以我就以remix來說明。

先從左邊的按鈕講起,第一個按鈕式檔案管理區,在這裡可以新增檔案,而solidity檔案的附檔名式.sol

第二個按鈕這區可以選擇 solidity的版本,solidity算是很新的語言所以更新速度很快,且各版本差異都蠻大的,所以編寫的版本需要多留意,而下方的Auto compile選項我建議可以勾選。

第三個按鈕可以選擇環境,javascriptVM虛擬機是指連測試鏈都沒有連上,直接在本地模擬。injected Web3是指透過metamask等工具和區塊鏈互動。web3provider是連到Ganache的虛擬環境。這裡我們只會用到javaVM和injectweb3,在做一般測試的時候使用javaVM因為速度比較快,injectweb3則是部屬合約會用到。

除此之外,我們還要先安裝剛才提到的metamask,metamesk算是個和區塊鏈互動的橋樑,也是存放加密貨幣的錢包,為甚麼要用到錢包?因為我們除了調閱之外的動作如部屬合約以及更改鏈上資料是需要付手續費給礦工的。安裝方法很簡單,進到chrome擴充程式商店下載安裝,照指示創造錢包,若還是有問題可以參考這篇

安裝且創建完錢包之後,請切換到Ropsten test network,並且到水龍頭領取測試代幣,當然如果你錢很多想直接用主鏈也是可以的^_^

完成上述步驟後,編寫環境差不多都熟悉了,下一篇我們開始了解語法。