1. Hi区块链首页
  2. 资讯
  3. 技术指南

技术视点 | 开发了两年 DApp、二层网络后,我转投了 Substrate 阵营

近来连续参加了三个黑客马拉松,技术栈选用Substrate,都取得了不错的成绩。就有些朋友好奇想要了解Substrate到底是个什么东西。作为一个之前有两年Dapp和二层网络开发经验,也捣鼓过fork以太坊的开发者,我在半年...

近来连续参加了三个黑客马拉松,技术栈选用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当然有自己的优势,不过在这里我想谈谈Substrate的相对优势

  1. 抽象度高,更通用,开发工作量小。实际上借助于框架提供的模版,开发者只需要注重自己应用所需要用到的存储、函数逻辑和事件(event)的编写,类似于加密猫这样的应用做成应用链一共也就小几百行代码。同时使用官方提供的前端,无需额外编程就直接可以和链进行交互。能够做到这一点和Parity积累了多个区块链客户端的开发经验密不可分。
  2. 周边工具的生态比较完善。比如说基于官方提供的前端库,很容易就可以开发出应用链的前端交互页面。而基于官方和第三方的rpc客户端库,很容易编写定制的rpc客户端。
  3. 由于所有的Runtime(应用逻辑)都写在了Wasm中,基于Substrate的应用链可以支持在线升级。也就是说当链上治理通过了某个升级决议之后,全节点即使不手动升级软件也会运行最新版本的逻辑。这一特性使得链上治理和升级变得无缝,体验上和传统软件开发中的升级比较接近,基本解决了上述三个方案的治理升级问题。
  4. 目前官方已经给出了WASM和EVM的模块,如果想要想要开发一条支持智能合约的链会非常非常迅速。

其中1和2两点使得基于Substrate的应用链开发对小型团队非常友好。在比较熟悉Rust的情况下,可以说开发一个Substrate应用链的工作量和开发一个以太坊Dapp的工作量基本相当。这也是我们近期的所有黑客马拉松的作品都能够在短时间内开发完成的原因。

作者:吴逸飞,Cdot Network CTO

声明:登载此文出于传递更多信息之目的,观点仅代表作者本人,绝不代表Hi区块链赞同其观点或证实其描述。

提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。