14

从柏林到平行世界—开发者社区活动Sub0.1见闻

 4 years ago
source link: https://www.jinse.com/blockchain/548144.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

第一届Substrate开发者社区大会的详情将由我来详细介绍。我是Phala Network的CEO佟林。我们是substrate开发者和积极参与者,比如Phala网络的第一个公链组件pLIBRA就是Web3 grant项目,我的合伙人尹航也是Polkadot大使。因此在12月5日到6日,我们团队受邀参加了德国柏林由Parity和web3基金会主办的substrate开发者社区会—Sub0.1,分享给大家一些收获和比较有意思的经历。

什么是 Sub0.1?

Sub0是substrate开发者社区活动,Sub0.1是第一期活动。Sub0.1通过组织substrate开发者聚集到一起,学习、交流、分享,可以理解为一个生态集会。

这次盛会汇集了来自世界各地的Substrate开发者和生态参与者,共享自己的项目成果和进度。作为大会的主角,Substrate作为区块链的搭建框架和方便易用的 SDK(软件开发套件) 吸引了很多分布式网络、分布式应用开发者的兴趣。我们在现场也看到很多柏林本地的以太坊原生开发者也来参加大会。

基础概念科普,老司机可跳过

在这里解释下波卡、Substrate、Parity、Web3基金会的关系,以及Gavin Wood在里面的位置(:-D :

1

Parity是位于德国的一家创新科技开发公司,由Gavin创立。被人所熟知是因为该公司早年开发了以太坊客户端,以及这几年一直在开发Polkadot网络。理论上Gavin并不是Parity的CEO或CTO,但是他本人在Parity贡献了相当足量的代码。

2

Parity是位于德国的一家创新科技开发公司,由Gavin创立。被人所熟知是因为该公司早年开发了以太坊客户端,以及这几年一直在开发Polkadot网络。理论上Gavin并不是Parity的CEO或CTO,但是他本人在Parity贡献了相当足量的代码。

3

Parity的另一个产品是substrate,一个区块链开发框架。基于这个框架不仅可以轻松地搭建区块链,还可以轻松地接入波卡网络。substrate也是主要由Parity公司开发的。

4

Web3基金会是波卡募资后成立的一家基金会,Gavin在该基金会担任主席。可以理解为波卡的开发实体目前在Parity、但是运营实体在web3基金会,基金会主要负责推广、市场、运营、管理等等。web3基金会和parity是各司其职的亲密战友。比如利于推广波卡生态和substrate使用的“grant计划”,就是主要由web3基金会策动的。

综上,大家应该理解了:substrate和波卡有着巨大的交集,但功能上又不完全重叠。这是Parity非常明智的产品矩阵: substrate能吸引想独立开发区块链且对跨链没那么感兴趣的开发者,polkadot又能吸引对跨链感兴趣的生态入驻,最终使得web3生态越来越强大。

Sub0.1的议程和观察

是什么能让上百名开发者从世界各地来到寒冷而…朴素的柏林?

UNvmeyz.jpg!web

和几十名参会者聊天后,我们发现:

一部分参会者是有意成为平行链的substrate开发者,例如我们团队,这部分开发者主要是想了解波卡主网的开发进展和更多细节(后面章节详述)

一部分参会者是想用substrate搭建区块链的开发者!这里面既有想使用substrate原生开发一条链的,而也有很多是已经有成熟的demo或产品,想迁移到substrate的。这部分参会者甚至可能是主流。

部分是波卡社区、粉丝

部分是投资者,比如IOSG、LongHash等

比较惊喜的是,我们发现柏林作为以太坊爱好者的聚集地之一,已经开始有一部分开发者在调研substrate了。基于其友好性、完备性 & 波卡跨链大饼,substrate真的前途无量。因此,sub0.1也是一个对外窗口:瞅瞅我们已有的生态项目,瞅瞅我们的开发进展,瞅瞅我们的future!

Sub0.1共进行了两天,在一个叫Betahaus的建筑院子里。该建筑位于柏林的东南角,略显荒凉,有点像十年前北京的798。据德国友人介绍,这个区域是一个「科技新区」,因为房租廉价、氛围多元化而吸引了全欧洲的开发者聚集,因此在这里办workshop性价比不错。

neQNNnE.jpg!web

在Betahaus里,分为主会场和workshop会场,两个会场在两天内是并行进行主题活动的:既可以去听别人分享,也可以在Parity工程师带领下直接动手,两边的活动质量都很高。

主题内容分为几类:

01

Deep Dive

m6juIj2.jpg!web

由Parity各大高工引领分享的“深潜”内容,主要是Substrate的核心特性的(core)设计思路和细节。比如Wasm与Substrate、Offchain Workers、Fees、Storage等。

02

Features

Rv2mauN.jpg!web

这类内容是惊喜最多的,突出一个“进展”。比如Cumulus、ink!等,也都是substrate的功能组件,Parity工程师会分享更多的产品思路和开发进展出来。

01

Community

IJRJb23.jpg!web

展示使用了substrate的优秀项目,主要是grant项目。这部分具有秀肌肉和立标杆的双重作用:对于在观望substrate的开发者来说,展示优秀项目可以让他们看到使用这个框架的价值;对于已经入坑的开发者来说,这些台上的项目就是下一期的自己哦(暴露心声)

主要收获:平行世界的那些事

简单来说,波卡实现跨链的基本网络结构是轮辐型。网络中心是Relay Chain 中继链,外围是众多的 Parachain 平行链,后来Gavin又提出了 Parathread 平行线程的设计,旨在解决平行链拍卖费用与规模增长之间的平衡关系。网络的参与者有四种角色:Validator 验证人、Nominator 提名人、Collator 收集人或者核对人,Fisherman 钓鱼人。Polkadot 采用混合共识协议,出块协议的是 BABE;敲定协议的是 GRANDPA。

跨链永远不是简单的任务。跨链的概念最早源自于比特币侧链,起初人们希望实现资产在比特币主链与侧链上的双向转移,并按照这个逻辑设计了多种方案,然而由于比特币主链功能有限,且开发难度高,最终没有落地。有了侧链的经验,人们逐渐意识到跨链需要基础设施的支持,Cosmos和波卡就在这个背景下诞生。

与其他项目相比,波卡野心更大。不仅要实现资产跨链,更要实现通用的数据交换。简而言之,波卡把自己定位为区块链之间的高速网络。资产跨链尚且困难,波卡为了实现通用于高效,则必须采用极为精密的设计。上层的中继链、平行链,中间层的Cumulus、XCMP,以及底层的Substrate等组件都为此而生。

业界公认跨链的难点,在于保持安全性、性能的前提下实现真正的互操作性:这一部分的难点是需要实现跨链数据通信,因为资产跨链其实有不少可用解法。

对于基于substrate的开发者而言,bonus奖励就是我们预期可以低成本的接入波卡中继链,实现跨链通信和操作。因此,parachain 平行链 如何实现跨链,是一个预期很高的需求。

而从Web3基金会 & Parity的开发进展来看,关键里程碑也在于如何实现平行链接入。此前我们只知道:

1

可以借助 Cumulus 部署平行链,Culumlus是一个Substrate的插件。

2

获得平行链的槽位需要通过蜡烛式拍卖来赢得,这也是Dot的应用价值。

3

而对于不那么需要常驻槽位的链来说,Parathread 平行线程 是一个性价比更高的与波卡共享安全性和跨链操作的方案。

4

平行链可以调用跨链消息机制,并与波卡共享安全性。

但是在此次前往柏林之前,我们不知道的是:

如何用Culumus部署平行链

跨链通信的细节

平行链与平行线程的经济设计细节

…还是很慌的。

好在本次的收获也主要是这部分的 信息披露我们第一时间在此分享给大家

平行链与平行线程的经济设计细节

这部分的内容是由 Shawn Tabrizi 演讲的,主题是《How to become a parachain》。

这位小哥是Parity的工程师,但却是所有演讲嘉宾里给我印象最深刻的:

分享时语速最快,信息量最大

激情澎湃,讲代码时好像在CX一样,引人入胜

略过背景知识,他分享了作为一个parachain实现的能力和深层次价值:

平行链可以把最晚区块头同步到中继链。

深层次价值:为平行链敲定确定性实现了基础。

平行链提交的区块将会被validators用wasm runtime来验证,同时平行链有能力使用它储存在中继链。价值:平行链共享了安全性。

借由抽象信息传输系统,平行链获得与其他平行链的通信能力。价值:平行链可以证明信息传递与去信任化的互操作性。

这么牛逼的特性,是不是谁都可以成为平行链?

答案是否定的:因为波卡的资源是稀缺的,或者说至少说是有限的。

面临n的二次方的网络通信复杂度网络容量、延迟、区块大小

因此现在可以乐观的说, 波卡中继链可能最多会支持每个区块分配给100个平行链。分配比例(划重点!)

大约是:

10-30个分配给系统级别的常驻链,比如:桥、Nested Relays、系统

40-90个分配给slots

最多50个分配给平行线程执行

平行线程和平行链有什么异同?

相同点:开发者API

平行线程和平行链不需要分别开发,对于开发者来说是一致的

你使用substrate开发完一条链,甚至还可以在平行链/线程两者间自由切换!

不同之处:

准入流程

确认速度/吞吐量

·       平行链:全吞吐量支持

·       平行线程:按需支付,

英文是 pay as you go

经济上

·       平行链:长期价值投资

·       平行线程:不退钱

极为直白

如何实现

首先,我们来说下波卡与之相关的模型

7ZNfEbA.jpg!web

Q

注册模型:管理注册业务、管理平行链/线程ID、追踪平行链/线程行为、平行线程拍卖

平行链模型:验证人逻辑和实际执行、通信传递、同步最晚的平行链/线程区块头和runtime代码

Slots模型:执行平行链拍卖、管理平行链槽位

众筹模型:允许社区为平行链拍卖投资、追踪社区贡献值

平行链拍卖模型

使用蜡烛拍卖

玩法:在拍卖结束期使用VRF模式(参考Arogorand)追溯结束区块

好处1:鼓励健康的拍卖价格被发现;不鼓励定向狙击

好处2:帮助减轻恶意区块生产者的影响

好处3:不需要强制“承诺和展示”范式

由治理发起

一次只能拍卖一回

每次拍卖的是两年的槽位使用权:分成4期,每期6个月

使用完成后全部DOT返还

根据这样的机制,平行链拍卖策略实现出来的效果:

uMNNveQ.jpg!web

可以看到, 这个拍卖结果(Alice获胜)是综合租期、出价、锁仓数多个权重实现的。

一个用户可以对同一个槽位使用不同的租期范围多次竞拍

租期范围必须重叠:比如第一笔投标是Q1、Q2、Q3、Q4,第二笔可以是Q1、Q2、Q3或Q2、Q3、Q4,第三笔可以是Q1、Q2,那么第四笔就不能是Q3、Q4—必须和第三笔有重叠部分

每一个租期必须是连续的: 比如只竞拍Q1和Q3不可行,要连起来

平行链众筹:

允许社区支持你的平行链

奖励使用你原生代币的用户

众筹逻辑自动在拍卖流程中执行

众筹的逻辑设计:

必须存一笔存款

任何人都可以参与贡献,但是至少要达到一个基准贡献度

新众筹者发起拍卖

众筹在指定截止时间(提前设置好的)结束

众筹可以跨越多个拍卖周期

beUvYj3.jpg!web

如图,child trie模块负责追踪社区用户的贡

结果状态只有成功或失败

当你的链退休后,会有一个退休周期让人们可以重启收集资金

平行线程拍卖(划重点!)

yuIrUfr.jpg!web

使用英式拍卖法。

平行线程名义上需要锁定一笔可被退还的存款。

每次出块都会举行拍卖。

赢家数量与线程总数正相关。

拍卖使用的DOT会被消耗掉,而不会被退还。

2aYvUjn.jpg!web

赢得槽位后,你会被安排到提交下一个区块头的队列中。

如果你错失了槽位,你在接下来的出块时会获得三次额外机会。

总结下平行链/线程经济学

对平行链经济来说:

锁仓DOT并不免费

理想情况下,参与锁仓可以通过增加网络价值,这对DOT是很好的投资回报

对平行线程经济来说:

BviYFnv.jpg!web

如图,激励 collators 用平行线程链的原生token结算 

Collators负责收集转账费用

使用原生token激励

当平行线程的拍卖费比原生token结算更低时,区块自然的被平行线程生产出来

因此,总体来看平行链/线程的生命周期:

FJ3uAbI.jpg!web

当平行链拍卖的槽位到期或卖出槽位的时候,平行链降级为平行线程;当平行线程追求全吞吐量时通过拍卖槽位的方式成为平行链。

是不是很想成为一个平行链?

Cumulus就是一个用substrate来轻松实现平行链的代码库。下面会重点讲解平行链的技术部分。

如何用Culumus部署平行链

在波卡的设计中,平行链通过中继链通信,因此成为平行链是跨链的前提。直到今年秋季,基于Substrate开发的链还只能独立运行,但随着Cumulus的出现,任何Substrate链都只需要极少的修改,就可以变身成一个平行链,加入波卡生态。

Cumulus就是连接平行链和中继链的核心组件。为了理解Cumulus,我们需要简要回顾一下Substrate的共识算法是如何运行的。

Substrate内部高度模块化,一个显著的特征就是它实现了共识算法与其他组件的分离。换句话讲,Substrate开发的链,共识算法是可以被任意替换的。为了实现这种抽象,Substrate定义了Collator用于产生区块,ImportQueue用于接受区块,以及Finalizer用于接受和确认区块。Substrate默认的共识算法GRANDPA实际上只负责区块的确认,BABE共识负责甄选区块的验证人,他们组合成了BABE+GRANDPA共识模块。

当一条链成为平行链时,会产生三个变化:

1

波卡验证人会接管平行链的验证

2

平行链节点不仅要独自产生区块,还需侦听中继链与其他平行链,保持状态同

3

平行链从其他平行链收集传入的消息,从而实现消息跨链

这就要求平行链节点不仅要处理好自己的链,还需要兼顾波卡主链,从而保持链间的连接状态。 引入Cumulus后,Cumulus会全面接管Substrate的共识模块,同时进行区块产出,启动一个轻节点跟随中继链,并允许波卡验证人加入网络参与共识。

Cumulus Workshop:实际上手体验

在Sub0.1第一天,波卡公布了Cumulus的实际上手Workshop,开发者已经可以在本地网络上运行起平行链。

部署平行链分为两步。 第一步,在Substrate链上引入Cumulus,接管共识模块。第二步,编译出平行链并部署到中继链上。 在Substrate的高度模块化设计中,每一条链都被抽象成了状态与Runtime的组合。状态保存在链上,而Runtime也编译为WASM模块,保存在链上。中继链上既部署了自身Runtime,也保存了全部的平行链Runtime。

Substrate默认采用GRANDPA共识,如果共识模块没有改动,通常只需要数十行代码的改动即可适配Cumulus。引入了Cumulus后,即可准备加入平行链。

一切就绪后,跟从Workshop的说明,启动一个本地波卡中继链网络。在本地测试网络中,开发者拥有链的Sudo权限,可以如下图所示, 在Sudo模块中执行交易提交平行链。 成功提交后可以从网页控制台上观察到平行链上线、出块。

eyMBvab.jpg!web

在这次Workshop中,短短的一个小时内,参与者们成功的编译、注册,并部署了两条平行链,在活动监视器Telemetry上也可以实时看到所有参与者的节点。虽然这次Workshop并没有涉及到平行链插槽竞拍等经济设计,但可以相信,波卡的平行链已经距离发布越来越近了。

跨链通信的新进展:XCMP、SPREE

如果不能充分利用波卡的跨链能力,仅仅成为平行链是没有意义的。当一条平行链连接到波卡之后,就意味着它得到了平行链之间的通信能力。 X CMP(跨链消息传递)协议实现了链间的通信, 波卡的共识算法就主要为它服务。

平行链可以向另一条链发送消息,XCMP确保消息依照次序、准确无误的投递到目的地。收到消息的链可以采取任意的逻辑来解读。波卡创造性地实现了链间“共享安全性”, 不仅确保平行链区块的产生与接受,更重要的是保持整个网络状态的一致性。 在没有共享安全性的网络上,任何操作都需要大量的区块确认时间(就像中心化交易所一样)。网络的确定性是XCMP能够得以实施的关键。

bIrmaum.jpg!web

XCMP是非常底层的基础设施,直接使用XCMP实现应用层的跨链依然是很繁重的工作,因为XCMP只负责消息的发送,但没有定义接受方如何响应。波卡提出的解决方案称为SPREE(共享安全区),在Sub0.1上给出了更多细节:SPREE允许在每个平行链上开辟一块与平行链独立的安全区,在里面执行公认安全的代码,确保这份代码不会受到平行链的干扰,从而解决接收方不可信的问题。利用SPREE可以实现非常高效的跨链资产转移。

有趣的项目

在柏林,我们见到了几个好玩的项目,介绍给大家。

yE3eye6.jpg!web

pLIBRA上镜!

SubstraTEE

和Phala Network一样,SubstraTEE也是希望将可信执行环境赋能区块链的项目,但是该兄弟项目的定位和目标和我们完全不同。 Phala Network的目标是为所有区块链提供可信智能合约平台的服务, 第一个用例是将Libra与波卡主网桥接的pLIRBA。 SubstraTEE是基于具体需求的产物, 他们服务的目标是实现Encointer项目:一个数字货币UBI(全球基本收入)!

下面概括下这个项目的逻辑:

实现UBI的基础假设:

开放型区块链

能够自我掌控的去中心化的无国界身份ID

实现的挑战是:

如何只让人类获得UBI收入?

如何保证每个人类只获得一次UBI?

如何让收入拥有真正的价值?

投放策略:

每隔41天在太阳高日照区域的集会上进行一次随机的密钥签署(物理意义的集会)

此处关键假设:

每个人一次只能在一个地方出现

人类总是能够透露出于其他人会面的信息

这里的集会的设计很有意思:

根据每个人可接受的范围和位置,系统将3到12个人物理上随机的组成线下面基群

这样就形成了一个POL:位置证明

每个当地社区可以根据定义它们自己的本地数字货币

基于本地的NCTR(项目token)可以提供本地去中心化交易

因为在一条链上实现,因此网络安全性仍然是全球范围的保证

Encointer项目是基于substrate开发的,他们发现要实现该项目愿景,必须保证隐私性和基于非真实身份的可验证性。而NCTR货币必须支持默认匿名交易。

因此 他们决定实现一个基于TEE环境的substrate…

uu2Arum.jpg!web

简单来讲,substraTEE是一个substrate的魔改版本,改动部分是他们将所有的计算和节点都跑在TEE环境里面。因此实现出来的效果是由一群可信矿工来提供区块链计算的substrate,如果你想创造一条完全由可信设备矿工运行的区块链,可以使用substraTEE开发。而Phala Network实现的是可以跨链的机密智能合约layer,可以叠加在任何一个区块链上被调用,不需要实现机密合约原生链的矿工拥有特殊设备、也不需要区块链进行定制化改造开发。

Phala Network和该项目经常接触,可能会有部分组件是合作完成的。

MXC极域物联网

我们在柏林也与我们的老朋友「MXC极域智慧城市」CEO胡莘顺利会师, MXC极域同样也是获得Web3奖金的项目,总部就位于Sub0.1举办地柏林,因此也算是与Substrate生态项目的“东道主”汇合了。

qQrYVje.jpg!web

和“土著”胡莘老板午餐

优秀的胡老板也是毕业于当地的柏林工业大学,是MXC极域CEO,MatchX柴火物联的创始人,是德国MoneyGram创新奖唯一获奖华人,MXC IoT和MatchX智慧城市产品获得柏林政府颁发的年度创业产品奖,在德国累计获得数千万欧元融资,智慧城市产品在全世界六十几个国家广泛应用。

胡莘老板带领的 MXC极域是一家AI物联网算法核心技术提供商

于2016年成立,致力于低功耗广域物联网(LPWAN)与区块链技术在智慧城市的研发应用。

3ENFZjq.jpg!web

目前客户有德国铁路,博世,德国柏林科技局,美国卡内基梅隆大学,加拿大Canadian Tires,韩国Enlink,韩国国家电网,纽约Citiesense,日本M2B,上海杨浦区智慧城市项目,江苏爱康科技等。

12月9日,之前来自于Polkadot和DAPS项目,新加入MXC极域的核心工程师Luke Schoen也对Web3和Polkadot发表了见解:认为运用Web3技术能更好地在区块链产品上进行实验,比如去中心化应用方面 (DApps), 以及探索背后的加密世界。

jiaMVvM.jpg!web

从以前的开发钱包应用的经历到现在,能使得我转向MXC IoT生态的原因是, MXC钱包的开发和效用,在Polkadot中继架构中, 通过平行链和桥接链,连接到所有不同的区块链,只需要建立在统一的polkadot平台上。 我们的机器端到机器端钱包(machine-to-machine wallet),从而促成IoT网络连接方式的进化和带来更多的创收。

链内数据市场(interchain data market)会是Luke的下一个任务,首先将MXC极域钱包以一个demo呈现,吸引更多的开发者组成一个技术社区、扩展更多在开源技术上搭建的核心开发者基数。

写在结尾

虽然柏林和北京一样寒冷,但是我感受不到web3.0世界的寒冬:国内热火朝天的大炼联盟链,去token化,交易所、公链、defi都变得小心翼翼,甚至公链及其生态社区(一共也就几百个人)还有“站队”之分:以太坊2.0、天王layer1项目、Polkadot、Cosmos各自水火不融。

在柏林感受到的确是比国内更务实的气氛(不可思议)。这里的开发者没有论证“公链必要性”的话题, 只有使用什么工具在什么场景下解决什么问题的逻辑 ,因此以太坊开发者会来substrate看看,波卡开发者们讨论技术问题热火朝天,指责“推迟”“币价”“经济设计”的几乎没有。

另一点感受就是, KUSAMA在短期内的实用价值可能被大大低估了 :虽然大家都知道它是一个波卡“BETA”版,但是对于到底要用它到什么程度是未知的。聊天过程中几瓶啤酒下肚,我们感受到core对于KUSAMA的态度有着不小的期待:短期内(6个月)波卡的核心特性,都会在KUSAMA先上线,beta期稳定之后再集成到波卡。因此,平行链/线程开发者如我们,少不了先在金丝雀做集成调试,也就有少不了囤积一些物资:-D

在可预见的未来里,不会有哪个公链独占市场:web3.0的世界中,很有可能不存在100亿公司,但是很有可能拥有100个1亿公司。以太坊2.0、Filecoin、Near、Celo、Dfinity、Solana、Nervos、Confulx、Harmony等等,都有自己独当一面的特性,跨链的需求也无需论述。layer1、跨链设施的玩家已经基本锁定,接下来玩家们需要角逐的空间比上述天王们更大:服务&协议层、应用层。服务&协议层、应用层开发者们挑选生态的逻辑,无非是:- 功能是否完备 - 开发者友好度 - 是否有协同效应 - core是否给力,能持续迭代和修复,且不会跑路倒闭 - 是否能获得支持

在这个前提下,站队Cosmos还是波卡的问题没有什么价值:既然两者同时存在可能性很高,那就比拼以上几个决策点用脚投票,或者“我全都要”。 目前看到的是国内使用substrate的开发者越来越多,社区氛围非常好:生态内的“竞争”几乎不存在,每个项目的定位都有明确错位,这也是web3基金会操刀指导的好处。

套用一句俗话,局域网和互联网的价值天差地别:如果不参与到全球化的、自下而上的革新,做区块链和摆摊卖煎饼有什么区别?可能挣得还不如人家多(泪目)

作者 / Marvin Tong

编辑 / Emily Yang

ShawnRingLin


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK