风险提示:请理性看待区块链,树立正确的货币观念和投资理念,不要盲目跟风投资,本站内容不构成投资建议,请谨慎对待。 免责声明:本站所发布文章仅代表个人观点,与CoinVoice官方立场无关

开发了两年区块链应用,我转投 Substrate 框架

PolkaWorld
2019年11月25日

基于 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/


声明:本内容为作者独立观点,不代表 CoinVoice 立场,且不构成投资建议,请谨慎对待,如需报道或加入交流群,请联系微信:VOICE-V。

评论0条