2023-04-30|閱讀時間 ‧ 約 4 分鐘

【開發智能合約 — Solidity系列】認識Solidity

上一篇我們介紹了智能合約的基本概念,而在開發智能合約之前, 建議先對智能合約具備基礎的概念, 往後進行開發時較容易融會貫通, 還沒閱讀的朋友可以參閱此篇「【開發智能合約 — Solidity系列】 淺談智能合約」。
理解完「智能合約」之後,相信大家已經開始手癢了吧! 應該很想開始動手完成第一個自己專屬的「智能合約」,而在開始之前應該要來選個好用的開發工具,至於為什麼要選用Solidity這套程式語言? 主要是開發門檻比較容易入門,參照了ECMAScript的語法概念,相信常常在撰寫Web的朋友應該非常熟悉,不僅如此亦加入了靜態的概念,讓程式開發的過程中更加安全穩定,而Solidity也是目前區塊鏈程式開發相對熱門的一門技術,因此相信很多問題都會有許多開發者共同討論,在技術的道路上也比較不孤單。
其實撰寫智能合約的程式語言並非只有Solidity,還有以下幾個程式語言:
Vyper: 相似於Python風格的程式語言,出生的時間比Solidity晚,因此相關的討論與教學文章相對較少。 ● Serpent: 文檔相對少,目前官方也建議棄用。 ● LLL: 看起來是非常艱澀難懂的程式語言,可能是組合語言級別的大神較容易上手吧。

簡單的智能合約範例

在進入實戰開發之前,我們可以先來看一段簡單的程式碼,相信非常容易理解與開始,讓我們無痛的跨出第一步吧!
// 指定版本至少0.4.16,最多不超過0.9.0
pragma solidity >=0.4.16 <0.9.0;

// 合約類別
contract SimpleStorage {
   // 宣告uint型態的變數
   uint storedData;

   // 提供設定變數的功能函數
   function set(uint x) public {
       storedData = x;
   }

   // 提供取得變數的功能函數
   function get() public view returns (uint) {
       return storedData;
   }
}
有沒有發現,撰寫類別與內部函數的方式很像我們常用的Typescript,相信平常有在接觸的朋友應該是非常容易上手的。

官方文件閱讀導覽

其實Solidity的官方文件非常豐富且完整,因此非常容易開始,但需要閱讀英文,不過也有簡體中文版的文檔,但沒有那麼完整就是了。
而這邊就針對官方文件的大區塊進行稍微的簡介說明,以輔助閱讀。
以上四大區塊是開發過程比較常用的文件,剛入門的朋友會比較常閱覽這幾個章節,相信我們只要持續學習,每個人都能夠撰寫出一套屬於自己的智能合約。
最後一個區塊主要是記載每個中版號的異動資訊、BUG資訊、開發模式、開發風格,讓初學的開發者能有一定的規範可以遵循跟學習。

結語

剛看到這一套程式語言的時候真的覺得非常像平常在撰寫的Typescript,雖然不盡相同,但畢竟基於ECMAScript,本質上還是離不開太多,雖然另一套風格類似於PythonVyper也非常吸引人,但畢竟還是太新了,很多坑都還沒踩過,因此就先選擇較穩定的Solidity來練習,一但上手後相信要換到其他的開發語言也是一件輕而易舉的事情。
下一篇我們來了解一下什麼是Ethereum Virtual Machine(EVM)吧
喜歡撰寫文章的你,不妨來了解一下: Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入? 歡迎加入一起練習寫作,賺取知識,累積財富!
分享至
成為作者繼續創作的動力吧!
主軸圍繞於軟體科技, 除了過往經驗成章以外也持續學習新技能, 並將學習心法記錄與分享, 以期幫助相同道路之夥伴。 裡面包含著各種程式語言的疑難雜症解題技巧, 也提供資料庫、AI、認證與授權、工具庫...等技巧, 讓您自由找出您想要的解答, 如果您想要系統化的教學課程也歡迎至「🔒 阿Han的軟體心法實戰營」。
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

阿Han的沙龍 的其他內容

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.