智能合約開發實戰(二) - 撰寫智能合約的程式語言

閱讀時間約 5 分鐘
一、Solidity:用來撰寫智能合約的程式語言之一,也是最多人用的,Solidity的語法概念最早是由加文·伍德在2014年提出,後期則以Christian Reitwiessner所領導的以太坊團隊Solidity接手開發。(出處:維基百科)
由於加文·伍德在規劃Solidity語言時參照了ECMAScript的語法概念,所以Solidity語法比較類似JavaScript,對於寫過JavaScript的人來說是相對比較容易上手的,Solidity最後經過編譯後可以放到EVM(Ethereum Virtual Machine)上執行。
區塊鏈其實分為:公鏈(比特幣(Bitcoin)以太坊(Ethereum))、測試鏈(RopstenKovanRinkebyGoerli)、個人鏈(Ganache),這個部份我另外再開篇幅做講解,這裡就不多做解釋。
所以如果您是對於JavaScript相對熟悉的話,那選擇用Solidity來撰寫智能合約就對了,在學習上會來的輕鬆一些,照著官方文件做學習,應該就能學會如何撰寫智能合約了,Solidity官方網站
  1. pragma solidity ^0.4.19;
  2. contract HelloWorld {
  3.   function sayHello() public returns (string) {
  4.     return ("Hello World");
  5.   }
  6. }
學習的話還有另外一個僵屍遊戲教學平台,藉由僵屍遊戲的教學,教你一步一步學習Solidity,由於中間是用僵屍來當做說明的,比如而如何產生一個僵屍、僵屍攻擊等,我個人是覺得還蠻有意思的,簡單易學,還蠻推薦的。
二、Vyper:用來撰寫智能合約的程式語言之二,Vyper 是一種面向合約的Pythonic編程語言,針對以太坊虛擬機 (EVM),相對於Solidity是比較相似於JavaScript的,Vyper是較相似於Python的,由於Vyper比Solidity晚出現,所以目前網路上對於Vyper的相關教學相對來說會比較少,但還是可以到Vyper官方網站去做學習,如果你是比較熟悉Python的話,IDE的話一樣都可以使用RemixVisual Studio Code做為開發環境,這個就看個人的習慣了。
  1. # @version ^0.2.0
  2. greet: public(String[100])
  3. @external
  4. def __init__():
  5. self.greet = "Hello World"
兩個程式語言各有各的優缺點,如果你還是很困惑該選哪一個,那我們來比較一下這兩個有什麼差異?在Vyper的官方文件中有詳細的說明,有興趣的人可以點進去了解:Vyper官方文件,下面是我針對有對它的說明做的一些理解說明,有疑慮的可以點進去官方文件中了解。
  • Vyper沒有Modifiers,取而代之的是assert及assert_modifiable。
  • 沒有繼承(Class inheritance),Vyper的說明是去除繼承能夠提升程式的可讀性和安全性,畢竟一個寫的很複雜的繼承會降 低程式的可讀性(要一直找繼承xd),看到頭都暈了,相對的也能提升安全性(易讀就不容易寫錯),這樣說也是有道理。
  • 沒有重載(Function overloading),官方說法是:"這可能會導致在任何給定時間調用哪個函數時產生很多混淆",個人覺得是還好,但官方主要是強調Vyper的程式碼易讀性,也可以說是程式碼的單純性,所以去限制了重載的功能,進而提升程式碼的易讀性(不讓你寫的太複雜xd)。
  • Recursive calling,官方說法是:"Recursive calling會使得無法設置gas limit的上限,為gas limit攻擊敞開大門",gas是合約交易時要支付的費用,可以看成是手續費。
  • Infinite-length loops,官方說是:"和遞歸一樣無法Set gas limits,會有安全性移疑慮"
以上說明,希望各位看的還明白,Solidity是比較早出來的,所以網路上的教學也好、範例也好都是會比較豐富的,但Vyper是最近幾年才出現的,也有它的優點,看得出來是希望讓開發人員撰寫出比較易讀又安全的程式碼,而且是類似Python的(對熟悉Python而不熟JavaScript的人來說是一大吸引力),只是網路上的教學或是範例目前還是相對來說比較少的,選好未來想做為開發合約的程式語言了嗎?那就來繼續往下面走吧。
有什麼想要了解或是不清楚的部份,歡迎留言和我分享,謝謝。
如果喜歡我的文章歡迎追隨,按愛心,我每週都會上新文章。
為什麼會看到廣告
avatar-img
20會員
38內容數
目前加密貨幣的市場上幣種非常的多 讓你看得眼花撩亂了嗎? 可以藉由這一系列的加密貨幣分析 能夠幫忙您了解每一個加密貨幣它的價值所在 每一集都會介紹一種幣 是一個很實用的專題,歡迎大家訂閱~
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
宅D嘉的沙龍 的其他內容
智能合約(英語:Smart contract)是一種特殊協定,在區塊鏈內製定合約時使用,當中內含了程式碼函式 (Function),亦能與其他合約進行互動、做決策、儲存資料及傳送以太幣等功能(出處:維基百科),簡單的說就是在區塊鏈上做以太幣的交易或互動的一種程式(合約)。
最近年終歲末了,不過你們看到這篇應該已經年初了 汽車也到了又要保養又要繳保險的時間了 這篇就來簡單分享汽車保養可以怎麼省
確立乙太幣的未來發展 升級乙太坊2.0 邁向Web 3.0
乙太幣 (ETH) 做為乙太坊 (Ethereum)的使用貨幣,此篇我們就來看看乙太幣的價值在哪? 2.市值:目前乙太幣的市值為4674億美元,流通量為118,804,120個乙太幣,市值的高低也就代表著此加密貨幣有一定的價值存在。 熱門的區塊鏈遊戲《Axie Infinity》
說到乙太幣 (ETH) 就不能不提乙太坊 (Ethereum) - 乙太坊是由俄羅斯裔加拿大程序員 - Vitalik Buterin (人稱V神) 和Gavin Wood共同推出的,乙太坊是一種去中心化而有智能合約功能的一種公共的區塊鏈平台,開發者需要支付乙太幣做為運行智能合約所需的交易手續費
加密貨幣最重要的就是這個幣有沒有價值! 我們來看看,比特幣(BTC)的價值在哪裡? 2.信仰:我相信有不少人會相信未來的世界裡,加密貨幣一定會愈來愈壯大,包含Web 3.0是以區塊鏈為架構來運行的,有了這一層的信仰,而身為龍頭的比特幣,很多人也相信比特幣未來是無法取代的,也不會消失,信仰也代表著有它
智能合約(英語:Smart contract)是一種特殊協定,在區塊鏈內製定合約時使用,當中內含了程式碼函式 (Function),亦能與其他合約進行互動、做決策、儲存資料及傳送以太幣等功能(出處:維基百科),簡單的說就是在區塊鏈上做以太幣的交易或互動的一種程式(合約)。
最近年終歲末了,不過你們看到這篇應該已經年初了 汽車也到了又要保養又要繳保險的時間了 這篇就來簡單分享汽車保養可以怎麼省
確立乙太幣的未來發展 升級乙太坊2.0 邁向Web 3.0
乙太幣 (ETH) 做為乙太坊 (Ethereum)的使用貨幣,此篇我們就來看看乙太幣的價值在哪? 2.市值:目前乙太幣的市值為4674億美元,流通量為118,804,120個乙太幣,市值的高低也就代表著此加密貨幣有一定的價值存在。 熱門的區塊鏈遊戲《Axie Infinity》
說到乙太幣 (ETH) 就不能不提乙太坊 (Ethereum) - 乙太坊是由俄羅斯裔加拿大程序員 - Vitalik Buterin (人稱V神) 和Gavin Wood共同推出的,乙太坊是一種去中心化而有智能合約功能的一種公共的區塊鏈平台,開發者需要支付乙太幣做為運行智能合約所需的交易手續費
加密貨幣最重要的就是這個幣有沒有價值! 我們來看看,比特幣(BTC)的價值在哪裡? 2.信仰:我相信有不少人會相信未來的世界裡,加密貨幣一定會愈來愈壯大,包含Web 3.0是以區塊鏈為架構來運行的,有了這一層的信仰,而身為龍頭的比特幣,很多人也相信比特幣未來是無法取代的,也不會消失,信仰也代表著有它
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
0. 大綱Outline 以太坊交易 發起交易 與智能合約互動 receive & fallback function 1. 舊以太坊交易 Ethereum Gas Tracker - 7 Gwei - Etherscan //交易技術, 表示特定帳戶的交易數量,是計數器, 每發一筆交
Thumbnail
在數字化時代,金融行業正經歷戲劇性的變化。區塊鍊和人工智能(AI)等新興技術正在改變我們對金融交易和智能合約的看法。本文將深入探討人工智能和智能合約的角色,以及它們如何重新定義未來金融的重要性。 智能合約的基本概念和功能 1.什麼是智能合約?智能合約是一種合約,它們在區塊鏈上運行,自動執行和實施
Thumbnail
OKX AA 智能合約錢包結合了外部帳戶( EOA )和合約帳戶(CA)的優點,提供更高的安全性、方便性與效率,為區塊鏈錢包創建更多可能,降低新手的學習門檻。 OKX AA
Thumbnail
Bucket(桶):雜湊表儲存資料的位置,每一個位置具有唯一識別索引。 Slot(槽): 每一個Bucket裡面都會存放不同的資料,而假設一筆資料由兩個欄位組成,每一個欄位就是一個Slot(槽)。 Hash Function(雜湊演算法):計算出雜湊值的一套數學公式,諸如: MD5、SHA…
Thumbnail
什麼是零知識證明(Zero-knowledge proof) 是一種密碼學的概念,用於在不揭示具體信息的情況下,證明某個主張的正確性。它允許一方(稱為證明者)向另一方(稱為驗證者)證明某個陳述的真實性,而無需透露任何關於陳述的具體細節..., 這根本文字天書啊,底下讓我們用白話文來說一下唄! 「我必
Thumbnail
在本文中,我們會開始寫一些程式,讓讀者瞭解如何利用Remix開發環境來撰寫Solidity程式,以及如何編譯、發佈智能合約。還有在發佈之後怎麼看剛剛設定的參數是否都成功被執行了,一起實作發出人生第一顆發財幣吧!
Thumbnail
2022年的農曆新年在一月底就要登場了!說到新年或多或少一定免不了要家族團聚吃個團圓飯,又到了這個時間了,身為社畜的你想好今年要包多少紅包給家人了嗎?這次過年就逼親戚下載錢包,直接把你設計的發財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們吧!
Thumbnail
清楚有很多夢可以實際的做,只是不知道如何做;像是⋯⋯發明一種寫作,讀後沒有解答,卻像是照護;讀者與寫作者,有傷或無傷,都在之中,獲得一種治癒,並可能一同盼望⋯⋯
Thumbnail
房貸約500萬,有限制登記。 核貸100萬,還掉小額負債,剩餘的錢整修店面。 用比較便宜的價格買到合宜住宅,是件令人開心的事,但政府為怕民眾以此牟利,會設定5-15年不等的限制登記期,在此期間是不能買賣或貸款的,解除限制登記就能貸款,信用較差好事貸也能幫你   幸運抽到合宜宅,有資金需求卻無法
Thumbnail
就法律及其他實務者而言,必須了解最新技術層面的操作所帶來的法律問題,才能適切解決相關的法律爭議,甚至為新型商業模式營造更佳的發展環境。以下我將針對「自動回覆軟體系統」的意思表示,以及「智能合約」,分別以「傳統民法上 #意思表示 概念受到新時代的挑戰」及「 #智能合約 對於民事法的衝擊」兩篇文章做
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
0. 大綱Outline 以太坊交易 發起交易 與智能合約互動 receive & fallback function 1. 舊以太坊交易 Ethereum Gas Tracker - 7 Gwei - Etherscan //交易技術, 表示特定帳戶的交易數量,是計數器, 每發一筆交
Thumbnail
在數字化時代,金融行業正經歷戲劇性的變化。區塊鍊和人工智能(AI)等新興技術正在改變我們對金融交易和智能合約的看法。本文將深入探討人工智能和智能合約的角色,以及它們如何重新定義未來金融的重要性。 智能合約的基本概念和功能 1.什麼是智能合約?智能合約是一種合約,它們在區塊鏈上運行,自動執行和實施
Thumbnail
OKX AA 智能合約錢包結合了外部帳戶( EOA )和合約帳戶(CA)的優點,提供更高的安全性、方便性與效率,為區塊鏈錢包創建更多可能,降低新手的學習門檻。 OKX AA
Thumbnail
Bucket(桶):雜湊表儲存資料的位置,每一個位置具有唯一識別索引。 Slot(槽): 每一個Bucket裡面都會存放不同的資料,而假設一筆資料由兩個欄位組成,每一個欄位就是一個Slot(槽)。 Hash Function(雜湊演算法):計算出雜湊值的一套數學公式,諸如: MD5、SHA…
Thumbnail
什麼是零知識證明(Zero-knowledge proof) 是一種密碼學的概念,用於在不揭示具體信息的情況下,證明某個主張的正確性。它允許一方(稱為證明者)向另一方(稱為驗證者)證明某個陳述的真實性,而無需透露任何關於陳述的具體細節..., 這根本文字天書啊,底下讓我們用白話文來說一下唄! 「我必
Thumbnail
在本文中,我們會開始寫一些程式,讓讀者瞭解如何利用Remix開發環境來撰寫Solidity程式,以及如何編譯、發佈智能合約。還有在發佈之後怎麼看剛剛設定的參數是否都成功被執行了,一起實作發出人生第一顆發財幣吧!
Thumbnail
2022年的農曆新年在一月底就要登場了!說到新年或多或少一定免不了要家族團聚吃個團圓飯,又到了這個時間了,身為社畜的你想好今年要包多少紅包給家人了嗎?這次過年就逼親戚下載錢包,直接把你設計的發財幣、紅包幣、坐以待幣、大學延幣通通在過年的時候射給他們吧!
Thumbnail
清楚有很多夢可以實際的做,只是不知道如何做;像是⋯⋯發明一種寫作,讀後沒有解答,卻像是照護;讀者與寫作者,有傷或無傷,都在之中,獲得一種治癒,並可能一同盼望⋯⋯
Thumbnail
房貸約500萬,有限制登記。 核貸100萬,還掉小額負債,剩餘的錢整修店面。 用比較便宜的價格買到合宜住宅,是件令人開心的事,但政府為怕民眾以此牟利,會設定5-15年不等的限制登記期,在此期間是不能買賣或貸款的,解除限制登記就能貸款,信用較差好事貸也能幫你   幸運抽到合宜宅,有資金需求卻無法
Thumbnail
就法律及其他實務者而言,必須了解最新技術層面的操作所帶來的法律問題,才能適切解決相關的法律爭議,甚至為新型商業模式營造更佳的發展環境。以下我將針對「自動回覆軟體系統」的意思表示,以及「智能合約」,分別以「傳統民法上 #意思表示 概念受到新時代的挑戰」及「 #智能合約 對於民事法的衝擊」兩篇文章做