Polkadot 中的智慧合約

買賣虛擬貨幣
本文來自 Polkadot Wiki,更新時間為 2020 年 5 月 4 日。Polkadot 中繼鏈並不原生支援智慧合約。不過 Polkadot 上的平行鏈將支援智慧合約。現在有像 Edgeware[1] 這樣已公佈的專案,並且由於 Substrate 有內建的合約模組[2],將來應該會有更多的平行鏈支援這一功能。資源對於那些想開始編寫智慧合約,並部署在基於 Substrate 的平行鏈上的開發者,我們列出了目前可以使用的資源。· ink![3]- Parity 出的用於編寫智慧合約的 ink!· Substrate 合約工作坊[4] - 指導你完成使用 ink!編寫和部署 ERC20 token 的基礎
例項下面收集的是社羣中使用 ink!做的智慧合約的一些案例。你正在做一個智慧合約案例嗎?請我們聯絡將其新增到本頁!Ownable[5] — OpenZeppelin Ownable 合約的埠。開發智慧合約和平行鏈有什麼區別?抽象層當編寫智慧合約時,你建立的是將部署並關聯到特定鏈地址的指令。
相比之下,runtime 模組是鏈的狀態轉換(即所謂的狀態轉換函式)的整個邏輯。智慧合約必須有意識地實現可升級性,而平行鏈將能夠完全透過根命令或透過治理模組替換程式碼。當你構建智慧合約時,它最終將被部署到具有自己環境的目標鏈中。平行鏈允許開發人員宣告自己鏈的環境,甚至允許其他人為其編寫智慧合約。Gas 費智慧合約必須找到限制自身執行的方法,否則整個節點都容易受到 DOS 攻擊。例如,智慧合約中的無限迴圈可能消耗整個鏈的計算資源,從而阻止其他人使用它。停機問題[6]表明,使用足夠強大的語言,不可能提前知道程式是否會停止執行。一些平臺,比如比特幣,透過使用一種非常受限的指令碼語言來繞過這個限制。其他一些公司,比如以太坊,則收取智慧合約 “gas” 費來作為執行程式碼的條件。如果智慧合約確實進入了一個執行永遠不會停止的狀態,它最終會耗盡能量,停止執行,並且智慧合約本應進行的任何狀態轉換都會回滾。平行鏈可以實現任意強大的程式語言,並且也不包含 gas 的概念。這意味著某些功能對於開發人員來說更容易實現,但也意味著某些構造永遠不該被實現,例如沒有終止條件的迴圈。將某些邏輯(例如可能無限期執行的複雜迴圈)留給非智慧合約層,甚至試著完全消除它,通常是明智的選擇。
資源我何時應該建立 Substrate runtime,何時應該建立 Substrate 智慧合約[7] —— 從技術的角度回答了開發者什麼時候可以選擇開發 runtime,什麼時候可以選擇智慧合約的問題。參考連結[1]Edgeware: https://edgewa.re/[2]合約模組: https://crates.parity.io/pallet_contracts/index.html[3]ink!: https://github.com/paritytech/ink
[4]Substrate 合約工作坊: https://substrate.dev/substrate-contracts-workshop/#/[5]Ownable: https://github.com/JesseAbram/foRust/[6]停機問題: https://en.wikipedia.org/wiki/Halting_problem[7]我何時應該建立 Substrate runtime,何時應該建立 Substrate 智慧合約: https://stackoverflow.com/a/56041305

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;