基於 Substrate 的應用鏈開發對小型團隊有何吸引力?

原文標題:《開發了兩年 Dapp、二層網絡後,我轉投了 Substrate 陣營》
作者:John Wu,Cdot CTO,資深區塊鏈開發者

近來連續參加了三個黑客馬拉松,技術棧選用 Substrate,都取得了不錯的成績。就有些朋友好奇想要了解 Substrate 到底是個什麼東西。

作爲一個之前有兩年 Dapp 和二層網絡開發經驗,也搗鼓過 fork 以太坊的開發者,我在半年前開始徹底轉投 Substrate 陣營,因爲我覺得這可能是一個開發去中心化應用的更好範式

去中心化應用開發的三種方案對比

首先,我想分享下我對去中心化應用開發的理解。

開發去中心化應用,對於一個不算特別龐大的團隊來說之前無非就是三條路

1.基於智能合約的 Dapp
2.二層網絡解決方案
3.fork 以太坊

但是這三個方案在開發運維成本、性能和靈活度方面有或多或少的缺點。

智能合約的開發運維成本比較低是一個最大的優勢。但是受限於底層公鏈平臺,實際能夠實現的邏輯有限。比如在以太坊上目前就很難檢驗基於 ed25519 的簽名。同時,項目需要與各種潛在的同平臺其他應用競爭資源。比如當 ERC20 的 Tether 轉賬比較頻繁,或者某個菠菜項目很火的時候,用戶需要爲智能合約的每筆交易花費更多的轉賬費用,而交易的確認反而會更慢。

二層網絡和 fork 以太坊主要是開發運維成本比較高。對於二層網絡,需要爲每個主流的智能合約平臺都適配一套系統(比如爲以太坊、EOS、本體等),開發在很大程度上是重複勞動。而每套系統的運維也需要投入精力。我們這裏還不考慮二層網絡會在一定程度上受限於底層公鏈。而 fork 以太坊,除非是一些山寨項目改幾個名字,否則但凡要做一個正經項目就需要對某一個或多個模塊做出性能上的優化或定製,就需要一定數量的優秀開發。而項目方還需要投入一定的資源做應用邏輯開發。總之,這兩個方案比起智能合約,需要多得多的開發資源。

還有一點,這三者在治理升級機制方面都不太成熟。首先這三者的治理一般都是線下治理,在公平公正公開等方面有着衆所周知的缺陷。其次,智能合約天生就沒有對升級進行支持,很多以太坊多籤錢包就深受其害。而二層網絡或 fork 以太坊鏈則需要社區統一在線下升級節點,稍有疏忽就會產生分叉(比如近期以太坊 Ropsten 測試網的 Istanbul 升級由於大部分算力沒有升級節點軟件,實際上已經發生了分叉)

應用鏈開發框架的好處

就在這樣的背景下,一年前看到林嘉文博士在 Web3 Summit 上 15 分鐘發鏈的視頻,還是挺震撼的,藉着這個契機去研究了一番,然後就深深感到應用鏈可能是去中心化應用的一個方向

首先,諸如 Substrate 之類的應用鏈開發框架使得開發團隊可以相對容易地開發出一個區塊鏈。區塊鏈底層部分如共識算法、P2P 網絡等部分框架都已經實現,開發者只需要專注業務邏輯。整個開發成本大大低於直接開發二層網絡或者 fork 以太坊。

其次,由於應用獨享整條鏈的資源,那麼也不存在其他 Dapp 產生的資源競爭問題。同時應用鏈本身的性能完全不會亞於諸如以太坊或 EOS 之類的公鏈。並且相對於智能合約,團隊能更加靈活地掌握應用邏輯開發。而且團隊也可以根據實際需求對鏈的相關參數甚至共識做出調節。

Substrate 框架的優勢

說完了應用鏈的這一開發範式的好處,我們該談談應用鏈開發框架了。目前市面上應用鏈開發框架,幾乎可以說只有 CosmosSDKSubstrate 兩種(當然也非常期待 Nervos 的 Muta)。CosmosSDK 當然有自己的優勢,不過在這裏我想談談 Subtrate 的相對優勢

1.抽象度高,更通用,開發工作量小。實際上藉助於框架提供的模版,開發者只需要注重自己應用所需要用到的存儲、函數邏輯和事件(event)的編寫,類似於加密貓這樣的應用做成應用鏈一共也就小几百行代碼。同時使用官方提供的前端,無需額外編程就直接可以和鏈進行交互。能夠做到這一點和 Parity 積累了多個區塊鏈客戶端的開發經驗密不可分。
2.周邊工具的生態比較完善。比如說基於官方提供的前端庫,很容易就可以開發出應用鏈的前端交互頁面。而基於官方和第三方的 rpc 客戶端庫,很容易編寫定製的 rpc 客戶端。
3. 由於所有的 Runtime (應用邏輯)都寫在了 Wasm 中,基於 Substrate 的應用鏈可以支持在線升級。也就是說當鏈上治理通過了某個升級決議之後,全節點即使不手動升級軟件也會運行最新版本的邏輯。這一特性使得鏈上治理和升級變得無縫,體驗上和傳統軟件開發中的升級比較接近,基本解決了上述三個方案的治理升級問題。
4. 目前官方已經給出了 WASM 和 EVM 的模塊,如果想要想要開發一條支持智能合約的鏈會非常非常迅速。

其中 1 和 2 兩點使得基於 Substrate 的應用鏈開發對小型團隊非常友好。在比較熟悉 Rust 的情況下,可以說開發一個 Substrate 應用鏈的工作量和開發一個以太坊 Dapp 的工作量基本相當。這也是我們近期的所有黑客馬拉松的作品都能夠在短時間內開發完成的原因。

說了這麼多,心動不如行動。擁抱 Substrate 就先從開發一個加密貓應用鏈開始吧:https://substrate.dev/substrate-collectables-workshop/

來源鏈接:mp.weixin.qq.com