区块链技术博客
www.b2bchain.cn

波卡中国行南京站丨王大锤:Substrate连接公链与联盟链的桥梁

D0b2wT.gif

第9661篇文章波卡中国行南京站丨王大锤:Substrate连接公链与联盟链的桥梁,说明解释了波卡中国行南京站丨王大锤:Substrate连接公链与联盟链的桥梁,是很好的区块链入门技术文章网站,提供了相应的代码的进行解释,并且把原理说的很清晰

在今年的DeFi退烧后,波卡倚然有掌控币圈潮流风向的趋势。而做为跨链之王的波卡,其底层框架技术可谓是重中之重,Substrate就是构成波卡生态的必不可少的组件,也是波卡逐步强大的“立根之本”。Parity工程师王大锤称,Substrate是公链技术、生态和联盟链之间的桥梁,更是联盟链开发者的福音。那Substrate到底有何“过人之处”可以助推波卡的一步步强大?11月12日《波卡中国行》南京站,Parity王大锤告诉你答案。

波卡中国行南京站丨王大锤:Substrate连接公链与联盟链的桥梁

以下是 parity工程师王大锤活动演讲实录(内容稍有调整):

我是parity的工程师王大锤,今天我会从头说起,最后也会介绍今年parity团队在Substrate上的最新进展。

Substrate是高度可扩展性、可定制化的区块链框架。从传统的区块链开发中我们可以知道,区块链的开发首先必须支持底层的加密算法,包括数据库、点对点网络传输,再之上就包括共识算法、交易处理、链上治理,状态转化函数,都是开发基于状态的区块链必不可少的组件。

区块链发展的现状

目前国内区块链发展的生态还是比较割裂。公链的开发团队与联盟链的开发团队之间交集特别少,尤其是联盟链。依照目前的开发特点,公链开发比较复杂,维护成本高,升级很困难,这就导致犯错成本很高。但它的优点就是生态很丰富,不需要依赖线下的任何场景,基于一个完全乌托邦的世界,就可以开发出想象力非常丰富的各种DApp。相信在2020年这一波DeFi热潮当中已经体验过非常丰富的DeFi 、DApp的模式。

联盟链的特点,不是全开放的,目前开发联盟链基于的框架大部分是fabric,还有微众的wecross,有些还可能是自己修改的以太坊。目前,开发框架比较单一,无论使用哪种框架,大家可以自己自定义的部分就是在这之上开发智能合约,很难对链本身修改。而Fabric开发社区对集成、签名,包括CA准入方面有非常多的文档,这些文档需要有一个或者几个头部机构去牵头。原因就是在Fabric上集成一个新功能可操作性比较低,和公链一样,Fabric现在升级也很困难,而且生态比较单调。

根据如上所说,公链目前的赛道有DeFi、DAO、Staking、layer2、隐私计算、边缘计算、联合计算以及加密和各种跨链。联盟链目前还没有出现可以称之为赛道的东西,基本都在做一些非常具体的逻辑开发。

Substrate——联盟链开发者的福音

web3.0未来就是基于数字的价值互联网,愿景是把大家的数据还给大家,让每个人掌握自己的数据,以全新的规则让自己的数据流转起来,打破大机构的垄断。在国内联盟链是一个趋势,但是公链是一个开放的网络,一定是未来。

在使用Substrate前,我们也实践过一些其它框架。就目前来看,Substrate是联盟链和公链的集合点,使用Substrate可以很轻易的开发联盟链网络,这一点尤其对联盟链的开发者来说是一个福音。

Substrate的优点:

1.可定制性更强,编写业务可以更自由;

2.可以借助Substrate进入到公链生态,从而关注目前公链领域最新的动态和进展。

目前所有的公链和联盟链,开发者唯一可以做的就是开发DApp,但如果使用Substrate,基于rust语言就会把每一层结构,每一个点都抽象得非常好。如果大家使用Substrate进行区块链网络开发,基本从最底层的中间整个链的逻辑、升级和治理的逻辑、运行的逻辑,再包括最上层的Dapp,所有的开发者都可以自己定义,而且门槛低得多。

Substrate是开发区块链的框架,目前是第一个也是唯一一个框架。例如,Gavin wood使用Substrate15分钟就开发并且运行了一条区块链。

Substrate的特点:

1.可扩展性;

2.高度模块化;

3.100%开源。

Substrate是诞生在公链领域内的产品,所以100%开源,使用Substrate开发是自主可控的。另外,因为Substrate的迭代速度很快,文档也很丰富,所以使用Substrate进行开发完全没有必要担心自己会在哪一个技术上被卡住。

Substrate提供了构造一个区块链所有的组件。从底层的数据库到顶层的链上功能,其中的每一个都可插拨,都是高度模块化。借助Substrate可以拥有最大的掌控力和自由度。例如热插拔共识,可以随时升级的状态转换方法,可以跑在移动设备商的轻节点和波卡进行链交互,而使用rust语言保证了最基本的可靠性、可扩展性,是完全通用的架构,另外,Substrate还可以进行无缝链下集成以及链上治理的框架。

其中最关键的结构是Substrate runtime,这是链上治理状态转化函数的集合,绝大部分开发者基本不会涉及到底层的共识、数据库或点对点网络的开发。大部分的联盟链或公链的开发者,只要涉及到如何定义链上治理逻辑,基本上在以太坊上只有账户和余额这两个点。但在Substrate上你可以自定义任意模块,无论是对于联盟链还是公链,它都给开发者提供了极大的想象空间。

Substrate的另一个特点是可以一键升级,并且保证永不分叉。原因就是因为它把最核心的状态转化函数结合一个runtime,使其可以变成两个版本:wasm runtime版本和native runtime版本。如果当整个链上的runtime的版本和本地runtime版本不一致,本地的节点也会优先去跑链上的runtime版本,从而保证所有节点都必须跑一模一样的版本。

所以,如果用Substrate搭建一个链,永远不可能出现像比特币那样的情况。例如,它分成核心开发组还有矿工组,当核心开发组想集成任何新的特点时,只要矿工组不同意,没有达到2/3的矿工,升级自己的节点,那整个升级就不可能会发生。这也是为什么比特币已经存在这么多年但它的改进非常小的原因。对于我们自己想要开发区块链,最大的愿景是希望它可以向传统软件一样可以支持自动升级,因为可能会预见很多bug。在区块链领域内,发生bug的成本非常高,如果是经济类型的bug在区块链里,可能就会导致整个网络的瘫痪或者是公司直接解散。

为什么需要进行链上升级?

链上升级的场景很多,包括修复重要的安全漏洞,或者是像传统的互联网一样改变核心的规则,添加一些新功能,这些动作都需要使用链上升级。例如比特币的硬分叉,它需要的协作成本非常高,而且非常容易升级失败,并且它没有明确的治理策略和升级的时间点。也就是说升级可能一直拖,直到2/3的矿工愿意升级,那整个网络就可以升级成功。但可能是3个月后,也可能是5年之后,也可能永远都达不到升级的状态节点。

为什么跨链会来?

区块链是可以解决信用问题,专业化又可以解决可扩展性的问题。但是在目前的区块链内,所有的业务都会以DApp的形式存在于以太坊,它们共同受限于以太坊现有的资源。所以就会出现各种DApp之间资源争抢的现象。而一些利益追逐特点不那么明显的DApp,就会在以太坊网络发生拥堵时被用户抛弃。这时,我们就倾向于让所有的子链或DApp,可以用心去解决自己领域内的问题,而不用受限与大家共享的资源。如果可以让这些子链既不受资源的限制,又可以像以太坊上的DApp之间可以交互,那未来就会出现一个完全不同的区块链生态局面。可能会出现一个比以太坊更加丰富、更加强大的区块链生态。

就拿联盟链来说,在搭联盟时可能会帮不同的甲方搭链。有政务链、资管链、人才链、征信链、金融供应链等等。这些链之间很难连接起来,如果未来要想相互之间打通的成本也很高。按照现有区块链的一些跨链方案,它们只能在对方的链上集成轻节点。第一,效率比较低;第二,这些链之间相互都集成剩下的轻节点,工作量也非常大。也就是说其中任何一条链有升级行动,那么另外N-1条链都必须对轻节点进行相应的升级,那工作量就非常巨大,协作成本也很高。如果用波卡跨链系统就完全可以自己兴起一个核心链。假设剩下的这些单独的链它们本身也是用Substrate,一旦中间这条核心链启动起来之后,剩下的链就可以很轻松的连接到这条核心链里面,并且可以很方便和其它链进行交互,这就是波卡和Substrate和其它区块链框架最不同的一点。

波卡的发展进程

今年波卡在跨链上有比较大的开发进展,在波卡里核心的链叫Relaychain,小的链叫平行链,一个Relaychain上会连接很多个parachain。这些parachain,可能各自有各自的用途,有些parachain负责稳定,有些parachain可以跨到以太坊,它们专注于自己的业务。validator是中继链专门分配给主形链Validator,在验证完之后,它们又把这些验证的结构会广播给中继链上其它Validator进行验证,也就是说所有parachain的Validator,还会在最后相互验证其它的平衡链验证者提交的结果。

如果poblock获得大多数Validator的许可,它就可以被放到Relaychain里去,如果是平级就会简单用掷硬币的方式,来确定哪一个POVblock放到中继链。所以基于这些特点的平行链有自由度,它除了可以自定义链上状态转化函数之外,还允许运行自己的本身逻辑,并且运营自己的共识逻辑,它可以有效帮助减低POVblock的提交数量,也可以帮助平行链本身拥有更大自由度,设计出更好的平行链策略。

但是最后每一个POVblock是否将被写入Relaychain,还是由要Validator决定。联盟链开发比较关心的一点就是Substrate和企业做无缝集成,目前很多联盟链企业,在选择使用联盟链、区块链的时候,很可能遇到一个困境:大部分数据在链下,但又需要有一些业务跑到链上,并且链上的存储非常有限。

链上逻辑也很简单,但一旦设计到和链下进行交互时,必须要延伸出另外一个很庞大、很复杂的预言系统来帮助链上和链下进行交互,对于供应链来说,它的市值和经济安全性已可以承担,例如,提供一整套预言机,整个预言机本身也是一个活力行为,它本身是可以负担的起集成一个预言机应用。不过对于大部分联盟链来说没有必要,但如果没有预言机,那么从链下写到链下的数据就很难保证不造假不伪造。而现在使用Substrate内置auction worker(链下工作机)就很方便。从链下拿到数据进行计算之后,并且以交易的方式提供给链上,auction worker的运行环境和runtime完全一样,所以它支持以runtime的逻辑来计算和处理从链下拿到的数据,auction worker不仅仅是为了拿链下的数据而设计,同时还支持一些计算密集型的工作。

Substrate永远开源并且免费

Substrate目前是搭建联盟链与公链技术、生态之间最快的桥梁,目前Substrate已经是公链生态内最先进的区块链搭建框架。如果联盟链的开发者通过这种方式接受公链,并获得一些灵感,那对联盟链的业务可能会是一种降维打击。

目前基于Substrate搭建的区块链项目在全球已有200多个,有非常多的团队已经选择Substrate来搭建自己的区块链,这其中99%应该是公链项目。

今年Substrate也新增了许多功能,例如线下的预言机,支持链上和链下数据的无缝传输。Substrate有非常简单易用的系统可以帮助大家很快速确定自己写的function的收费情况。还有更加优化的数据库parity db,包括像wasm runtime这些IO的优化,runtime里每一个模块都称为pilot,目前集成在Substrate官方的pilot已经有40多个,社区内的pilot可能更数不胜数。如果想用Substrate进行开发,那它方便的不仅仅是Substrate本身,也为大家实现了各种各样模块化的工具,可以直接使用,甚至不用自己写代码,只需要把现有的pilot集成到自己的链里就可以了。

目前Substrate里有很多DApp的开发者使用soleititing开发,Substrate已经完全把以太坊contract模块放在Substrate里面实现100%对以太坊生态的兼容。另外还有一个项目叫frontier,frontier是基于Substrate搭建的包含EVM的一个链,把frontier下载启动之后就可以使用现有的以太坊生态内的任何工具,包括remix、remix智能合约、travel,都可以完全无缝使用以太坊生态内的开发工具。

对于account的自定义,相当于一个定时器功能,大家如果有一个很重要的功能,比如说链上升级,大家可以自定义一个规则,一旦达到这个点,可能是时间或者一些预知的条件,一旦达到了相应的规则,会自动触发该动作。Substrate的规则你可以自定义任意的IPC的接口,如果有任何常规的计算,都可以把它直接封装到RPC的方法里面去。之前从很早使用Substrate进行开发的开发者,它们有一个最大的困惑,因为Substrate是一个链结构的,在链本身层面上进行开发,唯一的缺点是没有办法实现像以太坊的合约里面的方法一样可以原子化触发,也就是说这一个操作在执行很多步之后,如果在中间哪一步失败的话,前面所有的操作都会被回滚。之前Substrate是不可以的,所有在使用Substrate进行开发的开发者,在这一点都必须很小心,都必须在做出任何修改之前,需要先validate modify,这是之前Substrate的开发守则,需要先验证自己的修改逻辑在所有修改逻辑验证无误之后才能修改存储。假如在中间哪一步失败了,之前的存储依然会发生,但是现在的话,Substrate已经可以做到以太坊一样,如果中间有哪一步失败的话,之前的所有存储修改都不会发生,实现了真正的原子化交易。

熟悉Substrate的开发者比较清楚,NPoS是目前波卡验证人的选举规则,因为它非常好计算,所以现在把NPoS从一个纯链上的计算,搬到了链下去做,更加节省链上资源。如果使用Substrate进行开发的话,它还自带普罗米修斯这些工具可以帮助大家很轻松的监测Substrate链上的一些重要的指标,也可以自定义一些很重要的指标进行监测。目前Substrate的fraem和core的license已经修改成Apache2,方便之前只要是基于Substrate开发的开发者,只要基于Substrate进行开发,那么自己的原码都必须是开源的,支持Apache2也可能对联盟链是有更加友好的选择。

之前基本上所有的区块链,它的执行器都是单现成的,目前Substrate正在开发一个多现成的,支持多现成的Runtime的工作机,包括最关心的跨链消息传输,这是Parity团队今年、明年的开发重点。

这是今天关于Substrate和波卡生态的分享,谢谢大家!

波卡中国行南京站丨王大锤:Substrate连接公链与联盟链的桥梁 由www.b2bchain.cn 提供
文章整理自网络,只为个人学习与分享使用
链接地址https://www.b2bchain.cn/9661.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 波卡中国行南京站丨王大锤:Substrate连接公链与联盟链的桥梁
分享到: 更多 (0)
D0b2wT.gif

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们