查看原文
其他

这可能是2019最全的Substrate生态详解

吴逸飞 一块Plus 2020-11-11




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

  • 他们都正在建立什么样的项目?

  • 为什么选择Substrate?Substrate的未来是什么?

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


     

01


「Substrate代码与生态不断壮大」

 

参加这次Sub 0.1非常多的感触,还记得第一届Sub 0会议在今年四月。这次Sub 0.1地点是德国柏林的Betahouse。
               Sub0.1 部分演讲嘉宾
 
作为Substrate的最大规模会议,看点颇多。签到处在活动开始前就排起了队伍,到正式开始时大概数了一下主会场,参会的成员、项目方和观众,其实来自于全世界五湖四海,至少到场了120人,相比比去年人数翻了一倍,而且很大一部分都是开发者。今年参会的华人数量也有多增加,据我所知至少有8人。
        和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/

            Substrate丰富的周边组件,
中间部分是则是Substrate本身的组件
 
在这里给大家分享一条超酷的 2 分钟视频,浓缩了Substrate这两年来的进化:




02


「为什么选择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-running,而使用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的平行链提供了这一安全保障。

       Laminar联合创始人兼CEO苏锐涛在会议

上介绍Flowchain和Acala Network


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

             

Polymath负责人Adam在会议上介绍Polymesh

 

Polymath的区块链负责人Adam分享了最终他们从以太坊转型到Substrate的四个重要原因:
1、可扩展性首先由于每个国家都有不同的监管措施,因此灵活的可拓展性就显得非常重要不像以太坊,Substrate是专门为应用链所准备的。
 
2、可控性像以太坊这样的PoW链,发起交易需要向矿工支付交易费。但你不能确定你支付的对象是不是比如说朝鲜的矿工,所以也会带来很多法律的问题。
 
3、最终性对于金融业务,交易上链之后就能被确认是十分重要的。而概率性确认是不可接受的比如像ETC这样的链,需要几天的时间才能大概保证最终性。
 
4、无分叉Polymesh需要处理现实中的资产比如一桩大楼,在现实中是不会分叉的,但是如果链会分叉,情况就会变得十分复杂和棘手。
 
总的来说,Polymesh在调研阶段考虑了很多技术选型,包括分叉已有的区块链代码比如以太坊的Geth,从零开始构建自己的网络,以及使用类似Parity Substrate或Cosmos SDK的开发框架。决策过程包含了许多因素,比如技术、路线进度、契合度和社区因素。关于Polymesh选择Substrate的理由,也可以参考我之前翻译过的Polymesh官方声明。
https://mp.weixin.qq.com/s/wEdFJYskzWF975Rd5wUUyA
 

03

带你走进三场硬核Substrate Workshop

 

Sub0.1其实是由主会场的演讲和6场Workshop组成。作为Substrate技术发烧友,我参加了其中三个比较硬核的workshop:Cumulus、Offchain Worker和Ink。每场都十分火爆,开发人员们都热情高涨。
        
 
 Cumulus 
Cumulus是为基于Substrate开发的平行链能够接入波卡中继链而设计开发的。Cumulus会负责监听中继链最新状态,产生和提交平行链区块等平行链和中继链之间的交互操作
 
Workshop提供了三种不同的平行链和一个中继链的代码,内容是将平行链通过Cumulus注册到中继链上,从而使得平行链可以开始出块。
 
在这里附上全流程教程可以参考:
https://joshorndorff.github.io/cumulus-workshop/#/
和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团队集三人之力在一个半小时内也还是没能把全部的内容都编译通过,更加可见这块的开发难度还是很大的。
             
在这里附上代码可以供大家参考:
准备工作:
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也不够用呀!

 

04

「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介绍XCMP的设计
3、Substrate Builder计划:
https://builders.parity.io/

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

              

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

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

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

 

05

「一些有意思的项目」

 

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

1、radicle
一个Mock的Substrate node,可以用来快速测试runtime
https://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版本的PolkadotJs
https://vue-polkadot.js.org/#welcome
一个Subkey的Demohttps://subkey.netlify.com/
 
我认为,Sub0.1给我留下更多的是对于未来 Web3.0 发展的信心,对区块链发展的信心,同时也给了我们中国区块链开发者和项目方很强的紧迫感,我们必须立即跟国际重新接轨,摒弃模式币、cx、资金盘这样一些东西,回到我们当初加入区块链社区的初心,去中心化这样的一个理念。

 

06

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

 

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

              
和18岁的乌克兰开发者合影
 

据说现在Substrate在乌克兰已经有将近70人的线上社区了,大家都是被Substrate强大的技术所深深吸引的坚实粉丝从这一小小的细节中能够想象Substrate正在缓慢但坚实地向更多的地区扩散,也不知道现在在世界的哪些其他角落正在种下未来苍天大树的种子。
 
回想这两天议程,只有干货。有时候我恨不得分身同时去参加Workshop和听演讲,因为错过哪一边都会感到可惜。其实开发Substrate这样一个抽象度如此之高的区块链开发框架,仅凭其难度就可以让它载入区块链的历史。
 
而我来到Sub0.1现场最大的收获,并不是学习到了哪个具体的技术,而是现场的氛围使我能够理解,为什么这一切得以发生。
 
记得会场上有个人跟我说,现在Substrate还处于早期阶段,只有真正懂得技术的人能够看到它压倒性的优势。但是过个一年半载,当越来越多的项目开始使用Substrate,当其他人越来越多地听到Substrate的应用案例时,他们终究会去了解这一技术,而被它的魅力所征服。而我们,作为开发者,只要好好努力,争取让那一天更早一天到来就好。
 
看到他说这些话时真挚而闪亮的眼神,我就仿佛看到了Substrate的未来。
 

如果你有兴趣进一步深造和系统学习Substrate开发的话,作为《Substrate快速入门与开发实战》课程副班长的我将要为你推荐这门重磅课程!
 
《Substrate快速入门与开发实战》是由一块链习联合拥有着多年的全栈开发经验,为Substrate、Polkadot 贡献代码的Polkadot 社区大使陈锡亮老师,历时6个月打造的全球第一份Substrate 开发者的实战指南,期望能帮助更多区块链开发者完成入门。
             
 
上线至今,已有100+人通过学习本课程,掌握了 Substrate 底层代码的实现。第三期将于12月15号正式开课据我所知,按时完成所有作业,即可获得一半学费返还参加结业 Hackathon,可获得 Web3 基金会提供的 KSM

               第二期课程的奖励情况

 

最后,我想说:给自己的未来一个可能,第三期Substrate开发课,我在这里等你加入!


Modified on

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存