Substrate — Polkadot的基石

上礼拜我们提到了DOT,这礼拜开始我们来针对几个著名的加密货币项目,使用程序代码的角度来给大家讲解一下程序基本面,首先我们从Polkadot开始,提到Polkadot我们就不得不提到他所用到的Framework: Substrate

什么是Substrate?

Substrate 是一个区块链的software framework,所谓的software framework在程序的我会把它定义为:

software framework: 一套定义了执行流程的模组化程序工具

一般来说,我们在写程序的时候,有点像是在下指令给别人执行,而这个执行流程是可以复用的,以部落格来说好了,读文章跟写文章这两个功能大概是所有部落格服务都要有的,于是我们就可以把这两个服务流程给他模组化,让所有想实现这两个功能的都可以直接套用。

执行流程:

我们用一个生活化的例子来说明执行流程:

假设今天妈妈要你去菜市场的杂物摊买鸡蛋,他的流程可能是这样的:

1. 先去钱包拿300元

2. 骑脚车去菜市场的路口

3. 路口后往左转的右边店家的第三家

4. 买10颗鸡蛋

5. 找钱,骑脚车回家

6. 因为时间很赶,所以全部麻烦在十分钟完成

程序语言就是在执行类似的东西,只是他有语意上的定义以及他是要写给电脑看的。简单的事情可能很快就能完成,但如果是很是复杂的事情,每一个人要写一个不一样的东西其实有点烦人。

就如上面所说,因为中间有很多东西是可以共用的,那我能不能把这些公用的功能模组化? 这样大家就不用写一样的东西了。

以上面的买鸡蛋指令当例子来模组化的话,那这样买东西的framework 可以是:

1. 先去__拿___元

2. 使用__移动去___的___

3. 走到___的地方

4. 买___的___

5. 找钱,使用__宜动去___的___

6. 因为时间很赶,所以全部麻烦在十分钟完成

填空的地方就看你的需求而定,这样就形成了一个小型的framework了,因为他已经把你的流程决定了,你只要在空格上填上你要的就行了。

因为他把共用的功能帮你完成,剩下不同跟订制的部分就是你可以发挥的地方。因此,相对全部功能都要自己开发,这样的流程可以帮助你加快开发速度。在程序开发史上,Framework的产生可以说是该行业要蓬勃发展的一个征兆。

打个比方来说,在Web framework发展的过程中,我们可以看到很多网站的应用开始变得玲琅满目,因为每个人可能靠着相对简单的程序代码就可以经营一个网站,而且他可以根据自己的需求而进行客制化。

另一个简单的例子是AI,熟悉AI发展的人都知道, Tensorflow、Pytorch这样的framework 简直是许多Machine learning 研究者跟开发者的福音,没有这种工具,很多研究跟应用大概需要很多年才有办法研发出来。因为不是每一个研究者都对程序语言跟计算的研究这么深入,他们可能是专注在数学跟演算法上,如果他们要自己实作这些程序细节,所花费的功夫可能是现在时间的两三倍以上。

架构:

在Substrate 的架构上,它分为几个部分,一个是Primitive,一部分是Client,在网上则是Frame的部分,这边大概做一个解释,详细的部分各位可以在github 上做观看。

Primitive

主要的部分在于一些区块链的基础建设,像是通信机制、共识的演算法等大家在建设区块链都会用到的部分,这些基础建设都已经帮你铺好,他就有点像你在间房屋的时候,已经把建设所需的设备跟材料都已经帮你备齐,你要的就是应用这些材料区建设你的房屋。

Client

就像是你在建设房屋一样,把上面Primitive 的准备材料拿出来应用,打造成一个家的毛胚屋,所以他会把骨架架好,把你的钢筋水泥铺好,把整个房间隔间都弄好。我们拿其中的Service模组来说好了,他已经定义好整个服务的架构应该是怎样,接下来你就可以根据这个架构来设定你的服务。

Frame

把外表进行改装跟装潢,把这个家装修成你要的样子,把你想要的特色跟价值给营造出来。在这个资料夹里面,他所包含主要是整个区块链所要实作的机制的程序代码。

例如:里面有个功能叫做Treasury,他就是在链上的一个机制,用来治理整个区块链,像这样主要面对使用者的功能通常会放在Frame上面,而开发者在开发自己的链的时候,主要也是新增功能在这个资料夹里面,然后他就会变成整个链的Runtime 之一,因为VM 机制的关系,他可以保证你在更新的时候减少硬分岔的可能性。

在以往的开发时间,如果开发者需要订制自己的区块链的话,很多时候只能去修改以太坊或者比特币的原始码,或者是自己重写一个,自己重写的话所需的时间太多,一班的商业开发者难以进行这样的赌注,但有了这个Framework,他便可以比较轻松的完成这样的工作,这对整个区块链的发展是有很大的影响的。

扩展性:

以刚刚我们看到的那几层架构来说,我们可以很清楚的知道,他把整个程序架构分层几个部分,意味着使用者可以根据自己的需求去修改跟增加功能跟套件,很多时候你在订制自己想要的功能时候,只需要增加Frame 的部分就够了,这个部分往往代表的是你的区块链特有的功能跟特色。

跟整个ETH 的机制不太一样,在ETH 里面,你所做的是使用EVM 的方法去执行你的智能合约,理论上,这个合约可以是一个更通用的计算程序,比如说一个游戏,如此一来你的合约上面所运行就是一个游戏。但目前来说,这个运行的速度太慢,而且要把现在Solidity 的设计改成这么通用,其实还有很多路要走。

而在Polkadot 上面,除了可以发布类似的智能合约来进行计算,你还可以自己订制一条专门在运行游戏的游戏链。这个游戏链可能就是由玩家自己去运营的,不会有任何的厂商来控制这个游戏,完全由游戏本身的链来进行管理,可以说,这个Framework 打开了整个链的应用模式,让这些商业应用的可能性大大的提高了,同时间也把难度给降低了。

结语:

还记得从1990年开始,网络的出现改变了我们生活的型态,那个时候我记得有一个比赛,是由一群人关在一个房间里面好几天,不能出门要撑在那个房间最久的就获胜,在那个时代,这个游戏到最后是变成大家在忍耐饥饿。

但最近你会发现这件事情是在正常不过了,因为网络的生态渐渐发生改变了
电商的能力越来越强大,网络世界不只拉近我们之间的距离,他同时重新定义了我们这个世界的经济样貌。

因为网络我们在上面分享甚至开店进而发展出不同的事业,而去中心化可能也扮演着类似的角色,透过这些网络自愿参与的人的分享跟贡献,他逐渐可能撑起一个服务所需要的资源,到那个时候,这些币就不在只是被炒作的标的,他代表着这个服务的经济价值,就像这些网络商店跟网络服务所走过的路一样。

本文链接地址:https://www.wwsww.cn/DOT/7556.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。