以太坊前 CTO Gavin Wood 创建的 Substrate 生态现状如何?我来到了柏林和这些真正懂技术的人交流了想法。

原文标题:《这可能是 2019 最全的 Substrate 生态详解》
作者:吴逸飞

2019 年 12 月 5 日 - 12 月 6 日,Sub0.1 将再次把来自全球的 Substrate 开发者召集到德国柏林,这篇文章来自一块链习资深助教 Cdot CTO 吴逸飞在为期两天的「Sub 0.1:Substrate 开发者社区会议」实录。

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何

  • 目前有多少团队在基于 Substrate 构建项目?
  • 他们都正在建立什么样的项目?
  • 为什么选择 Substrate?Substrate 的未来是什么?

让我们跟着吴逸飞的脚步,去到 Sub 0.1 现场一探究竟吧!

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何

1 Substrate 代码与生态不断壮大

参加这次 Sub 0.1 非常多的感触,还记得第一届 Sub 0 会议在今年四月。这次 Sub 0.1 地点是德国柏林的 Betahouse。

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何Sub0.1 部分演讲嘉宾

作为 Substrate 的最大规模会议,看点颇多。签到处在活动开始前就排起了队伍,到正式开始时大概数了一下主会场,参会的成员、项目方和观众,其实来自于全世界五湖四海,至少到场了 120 人,相比比去年人数翻了一倍,而且很大一部分都是开发者。 今年参会的华人数量也有多增加,据我所知至少有 8 人。

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何和 Laminar 及 Phala Network 团队在会场合影

据 Parity CTO Fredrik 介绍,目前 Substrate 一共有 117 名代码贡献者,至少有 41 个团队在基于 Substrate 开发,31 个团队在做周边工具,贡献者和团队相比去年都翻了一倍。

Substrate DevHub 也在近期有迅猛的发展,在过去一年做了很多的改进,比以前更容易去开发一条链。在讲到 Substrate 周边组件时提到了两个比较有意思的新内容:

  1. 会有类似 Rust Playground 的 Substrate Playground,方便初学者学习 Substrate;
  2. 社区性质的 Subsrate 各个模块的集中地:https://substratemarketplace.com/

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何Substrate 丰富的周边组件,中间部分是则是 Substrate 本身的组件

在这里给大家分享一条超酷的 2 分钟 视频,浓缩了 Substrate 这两年来的进化。

2 为什么选择 Substrate?

Substrate 是最用户友好、功能强大和灵活的区块链开发框架,它让开发人员能够比以往更快、更轻松地实现新的去中心化解决方案。如今 Substrate 的生态能稳步扩大,我认为根本原因还是大家对这项技术表示看好。

那 Substrate 的优势究竟在哪里呢?在这次的会议中,Kilt、Laminar 和 Polymesh 团队分别给出了他们对这个问题的深入思考,我觉得非常有参考价值,在这里分享给大家。

Kilt

Kilt 是一个面向 Web3.0 的证书系统,Kilt 的区块链开发工程师 Maud 在会议上有分享到两个重要内容:

第一,拥抱 Substrate 的八个理由:

  1. 认同互操作应用链的未来愿景;
  2. Gavin 自身很强大;
  3. 对以太坊有后发优势;
  4. 会被很好的维护(毕竟 Polkadot 需要基于 Substrate);
  5. 代码不错;
  6. 模块化;
  7. Runtime 可以在线升级;
  8. 地理优势,与 Parity 团队同在柏林。

第二,使用 Substrate 后的三大收获:

  1. 工程开发非常顺畅,这使得团队可以更加专注于业务开发。
  2. 由于 Rust 的安全性保障,Runtime 模块的设计,Runtime 在线升级以及完善的工具链这四个因素,使得团队能够很容易很安全地尝试新的特性。
  3. 能够融入强大的 Substrate 的生态系统中。

Laminar

Laminar 团队从澳洲新西兰长途跋涉超过 24 小时来到柏林,这个项目主要专注于 DeFi 领域,其中层流(Flow)协议是一个桥接链上链下镜像资产和保证金交易平台。

在演讲中,他们比较了基于 Substrate 构建层流链(Flowchain)相对于基于以太坊开发的六大优势

1、区块时间:更长的区块时间会导致更大的价差,更高的 front-runing,而使用 Substrate 可以把区块间隔定制到 2 秒

2、预言机:在以太坊上维护一个价格预言机,假设每 3 分钟更新一次数据就需要大约每年 20000 刀。更何况实际上价格更新是越快越好。而在 Substrate 中可以比较灵活,可以使用白名单、质押、治理等各种方式去维护一个免费的预言机,甚至可以给维护者经济激励

3、交易费:在以太坊上,用户需要不但要为协议本身付费,还要支付以太坊的 Gas 费用,属于双重付费,用户体验很差。而在 Substrate 中可以定制,比如可以支持协议原生通证,交易方的通证,甚至可以免费。

4、清算:以太坊没有办法自动处理清算,需要维护链下的 Bot。而 Substrate 提供的 Offchain Worker 可以被加入 runtime 中,作恶时也可以被惩罚,并且和链交互时可以不需要费用。

5、可升级性:以太坊上的 MakerDAO 由于耦合性太强,现在升级到 MCD 是困难重重。而 Substrate 链的升级则是由共识决定,不会产生分叉,也不需要像 MCD 那样需要迁移,因此升级前后用户体验可以保持几乎不变

6、安全性:DeFi 协议需要一个更高价值的底层平台去支撑协议的价值。如果产生了倒置,DeFi 协议就会变得不安全。而 Polkadot 的共享安全就为基于 Substrate 的平行链提供了这一安全保障。

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何Laminar 联合创始人兼 CEO 苏锐涛在会议上介绍 Flowchain 和 Acala Network

Polymesh

Polymesh 是 Polymath 专为证券型通证构建的区块链,用于适配规范市场和合规资产。

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何Polymath 负责人 Adam 在会议上介绍 Polymesh

Polymath 的区块链负责人 Adam 分享了最终他们从以太坊转型到 Substrate 的四个重要原因

1、可扩展性:首先由于每个国家都有不同的监管措施,因此灵活的可拓展性就显得非常重要。不像以太坊,Substrate 是专门为应用链所准备的。

2、可控性:像以太坊这样的 PoW 链,发起交易需要向矿工支付交易费。但你不能确定你支付的对象是不是比如说朝鲜的矿工,所以也会带来很多法律的问题。

3、最终性对于金融业务,交易上链之后就能被确认是十分重要的。 而概率性确认是不可接受的。比如像 ETC 这样的链,需要几天的时间才能大概保证最终性。

4、无分叉Polymesh 需要处理现实中的资产。比如一桩大楼,在现实中是不会分叉的,但是如果链会分叉,情况就会变得十分复杂和棘手。

总的来说,Polymesh 在调研阶段考虑了很多技术选型,包括分叉已有的区块链代码比如以太坊的 Geth,从零开始构建自己的网络,以及使用类似 Parity Substrate 或 Cosmos SDK 的开发框架。决策过程包含了许多因素,比如技术、路线进度、契合度和社区因素。关于 Polymesh 选择 Substrate 的理由,也可以参考我之前翻译过的 Polymesh 官方 声明

3 带你走进三场硬核 Substrate Workshop

Sub0.1 其实是由主会场的演讲和 6 场 Workshop 组成。作为 Substrate 技术发烧友,我参加了其中三个比较硬核的 workshop:Cumulus、Offchain Worker 和 Ink。每场都十分火爆,开发人员们都热情高涨。

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何

Cumulus

Cumulus 是为基于 Substrate 开发的平行链能够接入波卡中继链而设计开发的。Cumulus 会负责监听中继链最新状态,产生和提交平行链区块等平行链和中继链之间的交互操作

Workshop 提供了三种不同的平行链和一个中继链的代码,内容是将平行链通过 Cumulus 注册到中继链上,从而使得平行链可以开始出块。 在这里附上全流程教程可以参考:https://joshorndorff.github.io/cumulus-workshop/#/

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何和 Phala Network CTO 尹航的中继链节点 (h4x) 在柏林胜利会师

Offchain Worker

Parity 的核心开发 Tomasz 做了一个关于 Offchain Worker 的演讲和一个相应的 Workshop。Offchain Worker 我认为可以算是这次 Sub0.1 的重点之一,贯穿始终。 它主要是为了实现更好的预言机或链下计算解决方案,和传统的预言机或链下计算解决方案相比,Offchain Worker 是 Runtime 中的一部分。具有如下三个特点:

  1. 直接操作数据库;
  2. 和 Runtime 一起升级(Tomasz 强调这非常重要);
  3. 不一定非要在 Wasm 中运行(可以只在 Native 模式上运行,这样可以降低开发成本)。

Workshop 的内容是使用 Offchain Worker 从 api 获取 BTC/USD 的价格并上传到链上,非常硬核(而且 Tomasz 一直在用远程服务器编译,作弊!)。 在这里附上内容可以参考:https://github.com/tomusdrw/sub0-offchain-workshop

Ink

在这场 workshop 活动中,Parity 的核心开发 Robin 向大家介绍了智能合约语言 ink 的最新进展以及近期他们的工作重点。

说实话,和原来基于 Substrate1.0 版本的 ink 比起来有了非常大的改进,尤其是现在的宏变得非常简洁好用。(插播一条小道消息,Robin 在这一点上很自豪,认为 Runtime 那边需要向他学习)。此外,现在可以在线尝试 ink 了:https://ink-playground.com/

这场 Workshop 的内容是写一套代理合约系统,涉及到了多合约调用这一最新支持多特性。其中 Delegator 合约会可以通过调用 Adder 或 Subber 合约,对储存在 Value 合约中的数字进行加减操作。Ink 团队集三人之力在一个半小时内也还是没能把全部的内容都编译通过,更加可见这块的开发难度还是很大的。

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何

在这里附上代码可以供大家参考:

准备工作:https://gist.github.com/shawntabrizi/e251156a180ac7415ca1371ad6d83f30#file-5_ink_workshop-md

成品代码 :https://github.com/paritytech/ink/tree/master/examples/lang2/delegator

另外,近期他们的工作重点会放在对 Trait 和泛形更好的支持、多文件合约支持、合约执行前后的条件、错误类别、Rust 的 Crate 属性、命令行工具等

而对 Unsafe Rust 的支持、Gas 费用的计算、动态链接、并行执行和独立的 ink 编译器还处于讨论阶段。不过目前项目还没有一个路线规划图,而且也不知道什么时候会稳定下来。

这三个硬核 Workshop 不愧是 Sub0.1 首发,涉及到 Substrate 最前沿的技术,参加完之后收获很大,感觉对 Substrate 的理解又深了一层,技术又进步了一点。如果要问我感受,除了点赞之外我就想再次吐个槽:Rust 的 Workshop 真的是一大半时间用在了编译上,我 16 寸的 MBP 也不够用呀!

4 Substrate 下一步的工作重心

那么接下来 Substrate 会如何发展呢?我想这是大家都关心的一个问题。

首先是 2.0 究竟什么时候发布。这次在会场,大家可是从到尾吐槽了一番 SRML 的兄弟 Palette,Pallet,Frame 们,如果 2.0 能发布,那这场无休止的重命名运动也可以暂时告一段落吧?

在这里告诉大家一个好消息,目前 Substrate 已经有了发布经理,正在全力推进 2.0 的发布。 而由于 Frame、Client 和 Primitive 三大部分已经实现互相解耦 ,所以这次 2.0 会发布到 crates.io 上。 并且从 2.0 之后终于要进入语义化版本控制(Semantic Versioning)了

而关于 Substrate 今后版本升级的道路,Parity 的 CTO Fedrik 表示可能会像 Ruby on Rails 那样,不会总是选择向后兼容,但是版本之间会留出足够的时间,而且也应该不会再向 1.0 到 2.0 那样相差那么大。

而接下来一年的工作会侧重在(但不限于)以下这些方面:背景中并行运行的 Worker,Offchain Worker,交易并行处理,重构 Runtime 的宏,使用异步 Rust,XCMP,Cumulus,Metrics、Telemetry 等运维工具。

另外,在这次会议中我还获取到一些比较重要的信息:

1、Substrate 将开始转向 Wasmtime 作为 Wasm 的 Runtime,经过测试比现在使用的 Wasmi 有大约 6 倍的性能提升;

2、XCMP 的设计已经基本完成,等待实现;

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何Gavin 介绍 XCMP 的设计

3、Substrate Builder 计划:https://builders.parity.io/

4、Hackusama: 为期 6 周的线上黑客马拉松;

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何

5、Laminar 的 Flow 已经在 Kovan 测试网上线 了,地址:flow.laminar.one;

6、Plasm 即将开始多币种的锁仓空投(有点类似于 Edgeware);

7、Polymesh展示了他们的路线图:2020 第二季度上测试网,第四季度上主网。

5 一些有意思的项目

在 Sub0.1 我看到了一些让人感觉比较有意思的项目,在这里分享给大家。

1、radicle一个 Mock 的 Substrate node,可以用来快速测试 runtimehttps://github.com/radicle-dev/radicle-registry

2、solang类似 ink 的 solidity 编译器 https://github.com/hyperledger-labs/solang

3、subsocial可以发博文的社交平台,看客可以顶和猜 https://github.com/dappforce/dappforce-subsocial-starter
Demo:subsocial.network

4、encointer使用物理 meetup,不需要身份就可以发行基础货币 https://encointer.org/https://github.com/encointer/encointer-node

5、vue 版本的 PolkadotJshttps://vue-polkadot.js.org/#welcome
一个 Subkey 的 Demohttps://subkey.netlify.com/

我认为,Sub0.1 给我留下更多的是对于未来 Web3.0 发展的信心,对区块链发展的信心,同时也给了我们中国区块链开发者和项目方很强的紧迫感,我们必须立即跟国际重新接轨,摒弃模式币、cx、资金盘这样一些东西,回到我们当初加入区块链社区的初心,去中心化这样的一个理念。

6 参加 Sub0.1 会议的最大收获

Sub0.1 结束后,我来到据说是柏林区块链中心的 Full Node。 比较意外的是,在 Full Node 我认识了从乌克兰基辅来的三位 Substrate 开发者(他们其实也在 Sub0.1 的会场)。

我来到柏林看看 Gavin Wood 创建的 Substrate 生态现状究竟如何和 18 岁的乌克兰开发者合影

据说现在 Substrate 在乌克兰已经有将近 70 人的线上社区了,大家都是被 Substrate 强大的技术所深深吸引的坚实粉丝。从这一小小的细节中能够想象 Substrate 正在缓慢但坚实地向更多的地区扩散,也不知道现在在世界的哪些其他角落正在种下未来苍天大树的种子。

回想这两天议程,只有干货。有时候我恨不得分身同时去参加 Workshop 和听演讲,因为错过哪一边都会感到可惜。其实开发 Substrate 这样一个抽象度如此之高的区块链开发框架,仅凭其难度就可以让它载入区块链的历史。

而我来到 Sub0.1 现场最大的收获,并不是学习到了哪个具体的技术,而是现场的氛围使我能够理解,为什么这一切得以发生。

记得会场上有个人跟我说,现在 Substrate 还处于早期阶段,只有真正懂得技术的人能够看到它压倒性的优势。但是过个一年半载,当越来越多的项目开始使用 Substrate,当其他人越来越多地听到 Substrate 的应用案例时,他们终究会去了解这一技术,而被它的魅力所征服。而我们,作为开发者,只要好好努力,争取让那一天更早一天到来就好。

看到他说这些话时真挚而闪亮的眼神,我就仿佛看到了 Substrate 的未来。

来源链接:mp.weixin.qq.com