今天我將帶大家繼續了解智能合約,首先,智能合約可以用甚麼樣的程式語言來編寫呢? 我們可以使用Solidity來編寫智能合約,在以太坊區塊鏈中,可以使用Solidity來編寫智能合約,接著智能合約會在以太坊建立的一個叫做「以太虛擬機」(Ethereum Virtual Machine)的虛擬環境去驗證執行智能合約。
到現在為止,都是在帶大家認識區塊鏈、比特幣和以太坊智能合約,也該來看看程式語言的部分吧!
身為一個商管學生要打code真的是有點難度,今天跟著我用商管學生的角度打code吧!首先,第一個問題問自己code要打哪裡?再來,第二個問題code要打甚麼?我們先求有再求好,一開始先用Solidity來編寫最最最基本的智能合約吧!
首先,第一個問題code要打在哪裡?
以太坊有提供線上IDE叫 Remix(https://remix.ethereum.org/)。這邊先停一下,先讓我解釋一下甚麼是線上IDE,線上大家懂,就是不需要安裝,可以直接用瀏覽器開啟,那IDE是甚麼?你拿去問商管學生,100個裡面100個都不會。你問我?我是剛剛查資料來現學現賣的,所謂的IDE是Integrated Develop Environment的縮寫,它是一個整合開發環境,簡單來說這個環境中,你可以做很多事,包括編寫語言(edit)、編譯(compile,你把這個想像成把你寫的語言再翻譯給電腦聽)、執行去看結果(execution)等。
接下來,跟著我看看Remix的頁面,中間的Environments下面除了有Solidity 語言,還有 Vyper 語言可以做選擇,這邊我們點選Solidity 語言,這時,左邊區塊我們之後會用到編譯(Compiler)和發布和執行(Deploy & Run),我們先點選File下面的New File來新增檔案。
那我們先新增一個檔案吧!我叫他try.sol
接著,第二個問題code要打甚麼?我們打開Solidity官方文件中左邊第一個Introduction to Smart Contracts介紹智能合約(https://solidity.readthedocs.io/en/v0.5.11/),裡面有個簡單的例子,我們把它複製過來
讓我們來看看這個簡單的Solidity智能合約。
pragma solidity >=0.4.0 <0.7.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
下面這一行是可接受的版本
pragma solidity >=0.4.0 <0.7.0;
這個智能合約叫SimpleStorage,它裡面有一個變數叫uint storedData
contract SimpleStorage {
uint storedData;
函數(Functions)
使用set 函數將變數uint storedData的值設為x
function set(uint x) public {
storedData = x;
}
使用get 函數得到你設定的值
function get() public view returns (uint) {
return storedData;
}
相信大家都稍微了解這幾條Solidity的程式碼了,接著下一篇我帶大家了解如何發布(deploy)這個智能合約,那我們明天見~