分片技术,号称是解决区块链扩容问题的“必杀神器”。本体分片,可以说是“必杀神器”中的“硬核武器”。
——题记
犹记得去年冬天,在一个有些特别的日子里,太阳刚刚落山,夜幕逐渐降临,在整个世界渐渐安静下来的时候......本体分片设计全球发布!这一消息瞬间吸引了无数炙热的目光。在2019年的年初,本体分片首次线下亮相旧金山大会,举世瞩目,与全球开发者 say hi。
时光如白驹过隙,经历了180多个奋斗的日日夜夜后,本体分片测试网如约而至,开发者现在可以体验同时支持网络分片、状态分片与交易分片的本体领先分片技术的无穷奥秘。今天,本体小秘书采访了分片的主要开发专家——Edmond CONG,一起走进本体分片技术背后的那些故事。
本体分片从什么时候开始筹备,初衷和目标是什么?
Edmond:
本体的分片最早立项时已经确定了本体链群的技术方向。确立了整个技术方向后,第一步是建立稳定而易用的基础链,所以团队第一阶段就是完成本体主网的开发。但是开发主网的同时,团队很明确后续链群的设计方向,因此很多分片的设计,在主网开发时都有一定的考虑。
在去年主网上线后,本体研究团队就开启了本体链群的下一步计划。当时,团队调研很多区块链扩展性和性能的相关方案,最终选择先进行本体分片的研究和开发。
当时优先选择分片方向的初衷是:
分片技术是从区块链的基础层上对区块链进行扩展的一项技术。因为,我们当时认为区块链生态还处于早期培育阶段,更应该在基础层上为区块链生态打好技术基础,而后根据生态需要,在区块链应用角度进行进一步的扩展。
当时本体分片的设计目标为:
✔ 从基础设施角度:通过区块链分片技术,扩大区块链底层去中心化程度的同时,提高智能合约业务的性能;
✔ 从区块链应用角度:保持区块链底层技术对上层 dApp 和智能合约的易用性。
我们期望,通过分片技术使区块链网络在保持可信性的条件下可以满足大多数应用的性能需求。基于此,我们提出了本体多层网络架构的分片技术。
在从设计到开发的过程中,遇到过哪些困难,是如何克服的?
Edmond:
本体分片的设计经历了三个阶段,在每个阶段我们都遇到了一些技术难题,后面都齐心协力一一克服。
在第一阶段,我们主要确定了技术方向和主要技术问题的解决方案,并且完成整个分片协议的理论验证。在这其中,我们遇到的一个比较难的问题是,如何在分片智能合约间完成可信的跨分片事务性调用。分布式事务是一个古老的问题,但是之前都是在可信网络环境中的分布式事务,但是区块链本身要求 trustless,即区块链是一个去信任的环境。最终,我们通过分片间可验证消息队列和多版本事务提交管理(MVCO)两个技术完美解决了这个问题。另外,还有一些其他的技术难题,基本上设计的过程就是解决一道道难题的过程。
在第二阶段,我们对第一阶段的设计完成了原型实现,验证协议的正确性和整体架构的扩展性。在其中,我们也遇到一些设计和实现的问题,其中一个问题就是跨分片事务性调用时的扩展性问题,因为我们初步设计时采用智能合约锁的方式完成跨分片事务性结果的 commit。而在完成原型进行扩展性压力测试时,我们发现,在跨分片事务增加到一定比例后,跨分片事务失败的比例急剧增长,极大影响了跨分片智能合约的可用性。因此在第二阶段,我们对原始设计进行了进一步的细化,完成了基于账户模型的两阶段提交协议,从而解决了跨分片事务的扩展性。
在第三阶段,完成了理论设计和原型验证后,本体分片的开发和实现进行得非常顺利。但是,随着开发的完成,测试占据了大部分的开发工作,如何对本体多层分片网络进行完整的测试成为了我们面临的新的挑战,为此我们开发了新的白盒测试框架,从而保证本体分片的质量和安全。
总的来说,整个本体分片的研发过程是一个充满挑战和惊喜的过程,在团队所有小伙伴共同努力下,一起完成了这个难度极大的项目。
现在本体测试网已经上线,但是我们的任务还没有结束,我们要持续对其进行优化和测试,使本体分片网络切实解决区块链应用的性能需求。
相较于其他分片技术,本体分片的突出优势都有哪些?未来还会加强哪几个特性?
Edmond:
相对于其他分片技术,本体分片最突出一点为——本体分片为基于智能合约的分片策略,因此本体分片不但是为了提高区块链的扩展性和性能,更是为智能合约为核心的 dApp 生态提供更好的扩展性和性能。另外和其他分片相比,本体分片提供了异步可靠通信和同步原子调用等多种 dApp 间协作方式,从而极大方便 dApp 的开发和协作,更有利于 dApp 生态的扩展。
另外,本体多层分片的网络架构对于本体生态合作伙伴也有很好的激励,是本体合作伙伴间可以更加紧密的合作在一起,共同完成区块链的实体化落地。
本体分片总计写了多少行代码?写了多少 bug?掉了多少头发?
Edmond:
新增加的代码目前20000行左右。
由于目前还在继续测试,bug 数目还不能确定,但是随着测试用例的增加,整体 bug 是减少的趋势。(wink~)
头发掉的就更多了,希望随着本体分片的落地能慢慢长回来。
新的一年技术破局开启,有什么寄语?
Edmond:
本体是一个有着长远规划的项目,在本体项目中可以感受到本体正在沿着预期的方向,一步一个脚印地前进。
相信随着本体多层多链基础架构的落地,应用信任框架的推广,本体必将完成区块链向实体进军的使命。
如果把本体分片比作一个超级英雄,你觉得是谁?
Edmond:
灭霸?(沉思5秒后......)
可能是一拳超人琦玉。
因为头发都掉光了……