mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
交易所 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

公链分层应该如何设计?

收藏
分享

比特币的出现,将人类在密码学和计算机工程中的应用很好的结合到了一起,因此,比特币的出现,则带动了全球矿工、开发者们的兴趣。纷纷在比特币提供的结构思考中完成创新和应用。

以太坊的出现就是对比特币网络的改良,而EOS等其余公链的出现则在更多的途径上为区块链技术寻找解决思路。目前,大部分公链项目仍然基于以太坊网络做改良实践,开发团队改良了以太坊的代码,然后利用共识机制的变化或某些细节部分的改变来提高公链性能。在这个过程中,对于开发团队为公链设计的结构和特点就成了重点要素。

金色财经记者专访了Cybermiles CTO吕艺,讨论在公链的设计上应该用什么样的思路进行。

公链设计的对标源

众所周知,公链必然是开源的,整个基础网络会提供对于DApp开发的基础能力。这种模式是某些开源项目中已经发展非常久的模式,有计算机系统、手机系统、开源软件等。

在这样的社区中,同样也是开源自治的,技术开发者分布式的完成工作,比特币的出现,挖矿的工作量证明的机制帮助了开源社区可以形成更规范化的组织形式。

而目前的的公链开发,也可以从原有的开发经验中找到很实用的经验。

首先,开发者社区中聚集世界各地的技术开发者,但分布式的协调工作则可以顺利进行,吕艺告诉金色财经,Cybermiles的团队也是分布式的,在中国大陆以外的大洲分布了Cybermiles的工作团队,节点也是这样的。

其次,在分布式的情况下如何推进沟通工作,像Cybermiles这样的团队,同样有成熟的经验,像传统的开发途径一样,对于固定的工作都做到分割明细,“技术开发协同要分割很细,我给你1,你给我2,这样非常准确结果型的工作安排,这样团队之间便形成了有因果关系的推进方式”。

最后最重要的是要有一个非常正确的公链设计形式,其中包括了公链的结构设计,功能设计,这决定了每一层用什么样的技术方式来实现,更决定了最终是否让公链具备应用可行性。

分层关系

目前,因以太坊扩容限制的原因已被大部分开发团队认识到,因此,有非常多的团队在寻找以太坊扩容或区块链扩容的方式。

每一个公链都是分层结构,不计算链下结构和子链技术、侧链技术等,一般的公链必然有三个层次,底层网络、协议层、应用层。底层网络负责数据交换、通信,中间层是一些将底层网络的能力转化为各种行业需求的基础,通过各种协议的制定帮助公链进入行业,虚拟机、智能合约都在协议层发挥作用,而最上层则是应用层,提供给开发者开发结构,开发者就可以做开发。

“对于一个公链的思考,我们来看传统的开发,例如一个操作系统,也会分为底层、中间层、业务层。”吕艺说到。

传统的开发中,底层是架构,也是数据通讯的基础,中间层则涉及了为上下层做连接、双向服务的服务部分,例如web service。最上层也就是业务层。

对于公链来说,其分层的逻辑相同。“对于公链来说,从操作系统角度说,底层是打地基,而中间件则是开始盖房子,业务就是各类装修了”。

在区块链的开发中,每一层的开发团队去看另一层的时候,是分割的,“就像例如在底层上的节点、矿工、协议等,与业务开发层是完全没有关系的。”吕艺补充到。

公链的每一层的关系,因为每一层承担了不同的能力,为了可以对应的组合出更好的能力,每一层在功能上是分割的,在技术开发上则是不相关的,如果相互的分层中联系较多,被称为耦合度高,代表互相影响的关系越复杂,其中一个部分出现调整,就要调整相应的其他部分。

在开发中,即需要对每一层从设计上做“解耦”,使每一层的设计相对简单。金色财经还了解到,一条公链之所以被称为公链,其共有的能力是要适合各类行业应用,因此,对于每条公链的底层,一定是输出能力都是一样的,其中每条公链中具备特点的部分有很多项目在尝试。

如何让一个公链更实用

众多项目的尝试目标相同,目标在于提高性能,适合某些个性化行业应用。

以以太坊举例来说,以太坊网络表现出的能力缺陷,来自于网络限制、共识算法问题、语言漏洞、虚拟机功能单一等等问题。

这些问题都让公链没办法更加实用。“底层上面的协议层和应用层是可以表示业务的千变万化的,一个公链,越靠近底层,其中的设计规律越简单,而靠近业务层则更复杂,代码完成的指令也就越多。”吕艺说到。

因此,在代码语言一个问题上,就很难让基于以太坊的公链有更多的应用。“如果一个公链可以开放支持任何一门广泛的高级语言,这个公链的开发能力会增强非常多”。

当公链可以支持更广泛一些的语言时,其中将有非常多的工作可以用旧的开发经验来支持开发,例如C++、JS等,但目前公链中用来编写程序的语言有些局限,以太坊的EVM和solidity存在有非常多的漏洞,还会因此限制智能合约执行等问题。在传统计算机的开发进程中,非常多的lib可以组成很多的解决方案来加速开发。

写在最后

公链是区块链普世化过程中非常重要的一个角色,其提供着行业发展的基础能力,决定了在区块链行业创业的各个项目是否可以存活,也决定了每一个引以为傲的公链生态能不能有效运转。

因此,在公链的设计上,开发团队需要从更多的经验中找到一条最适合团队的,最适合市场的。在技术革命为经济社会赋能的时代,表象内部都是一个个技术上的创新,公链的创新很局限,但可以充满想象力,充满挑战。也只有完成挑战,区块链行业才能有效发展下去。

免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。