今天我們先認識一下 Solidity、智能合約還有乙太坊的概念,再進到 WTF Academy Solidity 101 入門教程開始簡單的編寫與部署。
Solidity 是為了全球市值第二的加密貨幣市場乙太坊(Ethereum)創建的程式語言,發布於 2015 年,是為了實現智能合約而設計的物件導向高階程式語言、一種針對以乙太坊虛擬機器的花括號語言,它受到 C++、Python 和 JavaScript 的啟發,用來編寫可以自動執行合約條款的智能合約,更是區塊鍊運行平台的主要使用語言,可以用於創建投票、盲拍、群眾募資、多重簽名錢包等用途的合約。
智能合約是乙太坊最大的創新之一,開發者編寫、部署自動執行合約條款的智能合約到乙太坊區塊鍊上,智能合約在部署到區塊鏈後,能夠不依賴第三方自動執行和記錄交易,並且記錄是不可更改的。
乙太坊是一個去中心化的開源區塊鍊平台,主要支援分散式(去中心化)應用和智能合約。和主要用於數字貨幣交易的比特幣和其他區塊鍊平台的差異在於:乙太坊提供了一個能夠執行編程邏輯的區塊鏈環境——乙太坊虛擬機(Ethereum Virtual Machine),它是一個分散式的計算機網絡,保證每個節點能夠正確執行合約,開發者可以在其上構建和運行去中心化的應用。
開發工具 Remix
: https://remix.ethereum.org
教程使用 Remix
運行 Solidity 合約,Remix
是乙太坊推薦基於瀏覽器的智能合約整合式開發環境(IDE)。
Remix 左側面板,選擇文件
面板可以新增檔名.sol
檔案用 Solidity 開始編寫只能合約,快捷鍵 Ctrl + S
可以對檔案進行編譯,選擇部署
面板並點擊 Deploy
則可以把智能合約部署到區塊鍊上,Remix
會分配一些測試帳號給使用者,每個帳號有 100 ETH 的測試幣可以使用,每次部署合約會扣掉一點點。
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.21;
contract HelloWeb3{
string public _string = "Hello Web3!";
}
//
是單行註解,說明程式碼使用的 License 許可是 MIT
,註解的內容不會被執行,若不寫許可程式仍可執行,只是編譯時可能會出現警告。;
結尾。pragma solidity ^0.8.21;
宣告文件使用的 Solidity 版本,版本不同會有語法差異,^
代表向後兼容,表示允許 0.8.21 版本以上的 0.8.x 版本編譯器編譯,但不包括 0.9.x 或更新的版本。contract HelloWeb3
是創建合約,並宣告合約的名稱為 HelloWeb3
,花括弧內則是合約的內容,宣告了一個字串的變數 _string
並賦值為 Hello Web3!
。部署完畢後,部署
面板滑到最下方,可以看到名為 HelloWeb3
的智能合約,點擊變數 _string
可以看到變數儲存的內容。
附註:差點以為這篇不見了,最後找到存草稿的地方,幸好不用重打。