開發了兩年 Dapp、二層網絡後,我轉投了 Substrate 陣營

本站所發佈文章僅代表個人觀點,與火星財經官方立場無關。鑑於中國尚未出臺數字資產相關政策及法規,請中國大陸用戶謹慎進行數字貨幣投資。

开发了两年 Dapp、二层网络后,我转投了 Substrate 阵营

投資區塊鏈,猛戳:火星財經App下載

作者:John Wu(Cdot CTO,資深區塊鏈開發者)

加入 www.polkaworld.org社區,共建 Web 3.0!

开发了两年 Dapp、二层网络后,我转投了 Substrate 阵营

近來連續參加了三個黑客馬拉松,技術棧選用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/


分享到:


相關文章: