<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          什么時候該構(gòu)建 Substrate 智能合約而不是 Substrate Runtime Module?

          共 3581字,需瀏覽 8分鐘

           ·

          2021-07-08 12:30



          關(guān)注 Polkadot 生態(tài)的社區(qū)今天應(yīng)該都收到一條消息:Gavin 正式公布了有關(guān) Kusama 拍賣的時間安排,Kusama 網(wǎng)絡(luò)目前已經(jīng)開啟眾貸活動。波卡生態(tài)上的項目們早已摩拳擦掌,將早早準(zhǔn)備好的平行鏈競拍計劃公之于眾,吸引更多的社區(qū)成員參與其中。


          在波卡上,開發(fā)者可以基于 Substate 框架構(gòu)建出自己希望的區(qū)塊鏈,達到鏈級別創(chuàng)新。然而寫一條鏈的開發(fā)難度和拍槽成本過高,需要質(zhì)押幾百萬的 DOT/KSM ,如果項目方拍下了平行鏈插槽,還需要等到插槽租賃期過后才能解鎖,而且平行鏈插槽租期至少半年輪換一次。

          而用智能合約的方式,能夠把一條平行鏈的資源按照 Gas 價格,以每個塊的粒度實時拍賣出去。部署難度和運行成本都很低,還可以獲得不同業(yè)務(wù)場景的可組合性在 Gavin Wood 設(shè)計的波卡平臺上,可容納多種智能合約技術(shù),形成最豐富的技術(shù)多樣性,達到異構(gòu)多鏈的狀態(tài)。不僅可以吸收已有的生態(tài),同時低成本開展新的創(chuàng)新。

          波卡的 Pallet-Contracts 是最原生的 Wasm 合約,能夠發(fā)揮虛擬機最直接的效能。目前,波卡原生 Wasm 合約模型以及基于 Rust 的這個 ink! 語言框架,但不是很成熟。

          作為波卡生態(tài)上的 Wasm 合約技術(shù)提供方,為了提供一個最基本的節(jié)點環(huán)境,Patract 啟動了一條測試鏈 Jupiter,開發(fā)完成了基于 JavaScript 的自動化測試環(huán)境 Redspot 開發(fā)腳手架;以及可通過 AssemblyScript 編寫 ERC20、ERC721 這類復(fù)雜合約的 Ask! 合約框架等等,滿足開發(fā)者利用 Substate 構(gòu)建出自己希望的區(qū)塊鏈,達到鏈級別創(chuàng)新。


          那應(yīng)該什么時候構(gòu)建 Substrate Runtime Modules 而不是 Substrate 智能合約呢?在 stackoverflow.com 看到一位開發(fā)者是這樣回答的(原文見文末):



                  

          Substrate 智能合約           


          Substrate Runtime Modules和 Substrate 智能合約是使用 Substrate 框架構(gòu)建“去中心化應(yīng)用”的兩種不同方法。

          傳統(tǒng)的智能合約平臺允許用戶在一些核心區(qū)塊鏈邏輯之上發(fā)布額外的邏輯。由于智能合約邏輯可以由任何人發(fā)布,包括惡意行為者和缺乏經(jīng)驗的開發(fā)人員,因此圍繞智能合約平臺構(gòu)建了許多有意的保護措施。一些例子包括:

          費用:確保合約開發(fā)者為他們在運行合約的計算機上執(zhí)行的計算和存儲付費,并且不允許濫用區(qū)塊創(chuàng)建者。

          沙盒:合約不能直接修改核心區(qū)塊鏈存儲或其他合約的存儲。它的功能僅限于修改自己的狀態(tài),以及對其他合約或運行時函數(shù)進行外部調(diào)用的能力。

          狀態(tài)租金:合約占用區(qū)塊鏈上的空間,因此應(yīng)為簡單存在而收費。這可確保人們不會利用“免費、無限的存儲空間”。

          Revert:合約容易出現(xiàn)導(dǎo)致邏輯錯誤的情況。合約開發(fā)人員的期望很低,因此增加了額外的開銷來支持在交易失敗時恢復(fù)交易,因此在出現(xiàn)問題時不會更新狀態(tài)。

          這些不同的開銷使運行合約變得更慢且成本更高,但同樣,合約開發(fā)的“目標(biāo)受眾”與 runtime 開發(fā)人員不同。


          合約可以讓社區(qū)在你的 runtime 邏輯之上擴展和開發(fā),而無需經(jīng)歷所有瘋狂的提案、runtime 升級等......它甚至可以用作未來 runtime 更改的測試基礎(chǔ),以某種方式將你的網(wǎng)絡(luò)與任何可能發(fā)生的增長煩惱或錯誤隔離開來的方法。


          總之,Substrate 智能合約:

          • 本質(zhì)上對網(wǎng)絡(luò)更安全;
          • 建立了防止濫用的經(jīng)濟激勵措施;
          • 有計算開銷來支持邏輯中的優(yōu)雅故障;
          • 進入開發(fā)門檻較低;
          • 通過 playground 實現(xiàn)快節(jié)奏的社區(qū)互動以編寫新邏輯。


                 

          Runtime Modules            


          另一方面,Runtime modules 無法提供智能合約為你提供的這些保護或安全防護。作為運行時開發(fā)人員,你生成代碼的進入門檻就越來越高。


          你可以完全控制網(wǎng)絡(luò)上每個節(jié)點將運行的底層邏輯,你可以完全訪問所有模塊中的每個存儲項目,你可以對其進行修改和控制,甚至可以用不正確的邏輯或糟糕的錯誤處理來破壞你的鏈。

          Substrate Runtime Module 開發(fā)的目的是生產(chǎn)精益、高性能和快速的節(jié)點。它不提供交易恢復(fù)的任何保護或開銷,并且不會隱式地向鏈上運行的節(jié)點計算引入任何費用系統(tǒng)。這意味著在你開發(fā) runtime 函數(shù)時,你需要正確評估 runtime 邏輯的不同部分并向其收取費用,以免被不良行為者濫用并損害你的網(wǎng)絡(luò)。

          總之,Substrate Runtime Module 

          • 提供對整個區(qū)塊鏈的低級別訪問;
          • 消除了內(nèi)置安全性的開銷以提高性能;
          • 為開發(fā)人員設(shè)置高門檻;
          • 不一定要編寫工作代碼,但要避免編寫損壞的代碼;
          • 沒有內(nèi)在的經(jīng)濟動機來排斥不良行為者。


                 

          選擇適合你的工具            


          Substrate Runtime Modules 和 Substrate 智能合約是你可以用來解決問題的工具。


          每個人可以解決的問題種類可能有一定程度的重疊,但也有一組明確的問題只適合兩者中的一個。兩個在每個類別中只舉一個例子:

          • Runtime Modules:在區(qū)塊鏈交易之上構(gòu)建隱私層。


          • 共享:構(gòu)建像 Cryptokitties 這樣的 DApp,它可能需要建立一個用戶社區(qū)(傾向于智能合約),或者可能需要擴展到每天數(shù)百萬筆交易(傾向于 Runtime Module)


          • 智能合約:將第二層代幣和自定義資產(chǎn)引入你的網(wǎng)絡(luò)。

          除了上面寫的所有內(nèi)容,你還需要考慮使用某種工具設(shè)置 DApp 的成本。部署合約是一個相對簡單易行的過程,因為你可以利用現(xiàn)有網(wǎng)絡(luò)。你的唯一成本是你為部署和維護合約而支付的費用。

          另一方面,建立你自己的區(qū)塊鏈需要建立一個社區(qū),在你的服務(wù)中找到價值,或者建立一個具有云計算系統(tǒng)和一般網(wǎng)絡(luò)維護開銷的私有網(wǎng)絡(luò)。

          我現(xiàn)在真的是第一次感到構(gòu)建 runtime 邏輯變得如此的簡單和平易近人。過去,每個人都使用他們可用的工具——智能合約來構(gòu)建他們的“去中心化應(yīng)用想法”,即使這不是最適合工作的工具。

          隨著 Substrate 的引入,有一個新工具可用于構(gòu)建你的去中心化應(yīng)用;但同樣,有著“你的所有主意都應(yīng)該是一個 Substrate Runtime Module ”這種想法是錯誤的。

          相反,作為一個社區(qū),我們第一次擁有兩個工具,我們需要共同找出最適合每個場景的工具。我不認(rèn)為今天所有的答案都存在,但我們可以在此過程中學(xué)習(xí)并做出一些有根據(jù)的猜測。

          原文鏈接:
          https://stackoverflow.com/questions/56040779/when-should-i-build-a-substrate-runtime-module-versus-a-substrate-smart-contract/56041305#56041305


          預(yù)告:


          本周 PolkaWorld 直播將邀請 Bifrost 和 Acala 團隊,與社區(qū)分享平行鏈插槽拍賣和獎勵發(fā)放等信息,點擊下方按鈕立即預(yù)約??

          • 歡迎學(xué)習(xí) Substrate: 

            https://substrate.dev/

          • 關(guān)注 Substrate 進展:

            https://github.com/paritytech/substrate

          • 關(guān)注 Polkadot 進展:

            https://github.com/paritytech/polkadot

          更多內(nèi)容:


          波卡周報 | 第三次拍賣將于 7/6 結(jié)束,Astar 或?qū)②A得第三個插槽!

          波卡官方發(fā)文:波卡中的提名和驗證人選擇

          平行鏈上線,到底意味著什么?之后我們還能期待些什么?


          掃碼關(guān)注公眾號,回復(fù) “1” 加入波卡群

          關(guān)注 PolkaWorld

          發(fā)現(xiàn) Web 3.0 時代新機遇


          點個 “在看” 再走吧!

          瀏覽 79
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费在线观看亚洲视频 | 三级三级久久三级久久18 | 在线视频播放一区 | 青青草人人操人人摸人人干 | 中文字幕在线不卡 |