iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 7
0
Blockchain

商管學生如何從零開始學習區塊鏈系列 第 7

DAY7 跟著商管學生第一次碰Solidity

  • 分享至 

  • xImage
  •  

今天我將帶大家繼續了解智能合約,首先,智能合約可以用甚麼樣的程式語言來編寫呢? 我們可以使用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來新增檔案
https://ithelp.ithome.com.tw/upload/images/20190918/20120814RvnS1XNCvc.jpg
那我們先新增一個檔案吧!我叫他try.sol
https://ithelp.ithome.com.tw/upload/images/20190918/201208148fofFhsEL0.jpg

接著,第二個問題code要打甚麼?我們打開Solidity官方文件中左邊第一個Introduction to Smart Contracts介紹智能合約(https://solidity.readthedocs.io/en/v0.5.11/),裡面有個簡單的例子,我們把它複製過來
https://ithelp.ithome.com.tw/upload/images/20190918/20120814BT1iW8v5XP.jpg
https://ithelp.ithome.com.tw/upload/images/20190918/20120814thBuPnY5aZ.jpg
讓我們來看看這個簡單的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)這個智能合約,那我們明天見~


上一篇
DAY6 與以太坊區塊鏈(Ethereum)的第一次接觸
下一篇
DAY8 使用Remix IDE 發布一個簡單的智能合約
系列文
商管學生如何從零開始學習區塊鏈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言