AMA:对话 NULS 核心团队技术负责人王志坚,重构微服务生态体系

本次《链客 Talk》邀请到的主讲嘉宾是”NULS”核心团队技术负责人—王志坚,驾临链客现场,为大家分享”重构微服务生态体系”这一主题。

《链客 talk》欢迎所有行业内技术大咖以及 CEO 创始人,来一起见证区块链技术的缘起时刻!

问题 1:您好,据悉 NULS 独创的 POC 共识挖矿机制兼具 POS 和 DPOS 优点,请问 poc 的具体优势体现是什么?

王志坚:**POC 相对其他的共识机制,更注重平衡。它的特点是:第一,参与门槛低,全员参与,全员收益;第二,性能和去中心化的平衡,在保证去中心化特性的同时,保证了性能,NULS 主网上线前进行的性能测试,采用不同国家的普通节点(4C16G10M), 就可以稳定的实现 TPS1000,完全可以满足当前 NULS 实际需要,而不是需要超级计算机来做节点。第三,公平的竞争机制,通过信用体系来保证网络的稳定,如果节点不稳定,就会影响委托者的收益,会被委托者通过投票转移的方式,剔出共识节点网络。第四,动态的节点数量,nuls 的节点数量是由参与者通过投票动态改变的,任何人都可以参与。但 NULS 设计了一些节点参数,保证节点数量维持在一个合理的范围,就像目前节点数量在 100 个左右。第五,红黄牌机制,对不稳定或者作恶的节点,有不同的惩罚措施,包括减少收益、停止收益、 剔出共识并锁定保证金,保证节点维护者重视节点运行维护。

通过这些措施,保证共识网络的稳定、高效运行,保证所有参与人可以公平的分享 NULS 网络维护激励。

问题 2:NULS 是一个主打模块化开发的基础公链项目, NULS2.0 是基于微服务架构设计,模块度更高的区块链底层网络,我们知道 NULS2.0 已经正式上线,请问 2.0 版本对比老版本有哪些提升?

王志坚:NULS 2.0 的提升主要体现在两个方面,一个是网络本身的提升,一个是区块链基础设施的提升。

网络的提升包括:

第一,架构升级,增加了扩展性,支持多语言底层扩展,丰富了 DAPP 实现方式;

第二,UTXO 模型更改为账户余额模型,解决了 poc 共识机制零钱过多的问题,降低了交易费用和效率,减少了存储空间;

第三,支持跨链,2.0 版本已经实现了同构区块链的跨链,并对合约资产跨链和异构跨链提供了底层支持,目前团队已经开始合约资产跨链和异构跨链功能的开发工作,不久后将完成跨链生态系统搭建;

第四,性能提升,1.0 的性能限制在 840TPS 左右,在实际使用中由于交易大小不好控制,只有峰值可以达到 2.0 的 TPS 目前是代码限制为 1000,后续可以根据实际需求,适当进行调整;

第五,体系的升级,1.0 只提供了网页钱包和节点钱包,2.0 从推出开始就包含节点钱包、网页钱包、桌面轻钱包、手机端钱包,不同的终端有不同的发展方向,为 NULS 后续发展规划提供了基础。

基础设施的提升:

第一,从 Java 模块化架构,改为多语言、多进程的微服务架构。对所有开发者更友好;

第二,模块化粒度更精细,在了解了协议和业务后,开发者可以更容易的开发替代品,来适应自己的业务需求,可以实现模块组合,根据不同的需要,可以对基础模块进行选择,只选择自己需要的模块来搭建区块链。

第三,标准协议的制定,2.0 版本制定了一系列标准协议,为未来 NULS 发展完善了基础条件。

问题 3:能聊聊 10 分钟造链产品 : NULS ChainBox 是怎么回事吗?跨链项目 Cosmos 和 Polkadot,也有自己的 SDK 或框架用于支持造链,并且各自获得了一定市场,有许多项目选择他们的工具进行造链,和他们相比,NULS 的优势在哪里?为什么应该选择 NULS 造链?

王志坚:NULS 从诞生开始,一直把”让区块链更简单”作为自己的使命。Cosmos 和 Polkadot 都是行业中的明星项目,NULS2.0 在设计过程中也和它们社区的人员进行过沟通,NULS 在很多设计中借鉴了它们的经验。

NULS 的 ChainBox 的特点是:不限制开发语言,底层任意模块可替换,包含完整的同构、异构跨链协议,提供通用的区块链工具(浏览器、轻钱包)。

行业中实际的造链需求,并不是简单地发送几个业务交易就可以实现的。每一条区块链都有很多不同的需求,这些需求涵盖了组网方式、共识机制、协议制定、经济模型、性能指标等等功能和指标,基于以上的实际需求,NULS 认为灵活性是造链工具非常重要的特性,单纯的强调几分钟造链更多的是吸引眼球,实际的造链还是要深入工具或框架内部,来进行比较。在灵活性上 NULS 有非常大的优势,在 NULS 的设计中,有一个产品叫模块仓库,可以让开发者可以上传自己的模块给他人使用,随着 NULS2.0 底层的完善,将会有越来越多的模块被开发出来,放入模块仓库,对造链者来说,一个灵活扩展的、有现成功能模块供选择的、支持跨链、提供各种工具的底层基础设施,将是非常合适的选择。

问题 4:单体应用架构与微服务架构本质上存在哪些区别?

王志坚:针对这个问题,来自玻利维亚的 NULS 全球技术社区的成员,参与了 NULS2.0 底层模块 Nustar 开发的 Berzeck,曾经写过一篇文章《一个关于进化的故事》。在文章中是这样描述单体架构的应用的:”一个单体架构的应用程序就像一个肥胖、迟缓、单细胞的有机体,所有功能都编码在一个单一的单元内并对外暴露在环境中,如果细胞受损,那么这个有机体就会死亡,应用程序的拷贝要么是”完全复制”,要么是”完全不复制”,因此复制效率是非常低的,基本功能的更改是一个艰难的过程,过程中整个生物体可能会仅仅因为一个错误而受损。

这种类型的应用程序随时间推移而能获得的演变和发展的程度是有实际限制的。”,而模块化微服务架构,我们畅想为:”多细胞有机生物,微服务治理就是神经网络,每个模块就是一个基因组,可以可控的进行快速升级、进化。”

问题 5:NULS 如何高效实现从单体架构向微服务架构过渡的?

王志坚:NULS 从诞生之初,就有一个愿景,做易用的区块链基础设施。所以 NULS 1.0 最初确定了基于模块化架构的区块链底层架构,这样开发者可以把自己的业务,在独立的模块中实现,既增加了业务的独立性,又可以增强代码的复用性。在实际推广过程中,发现 1.0 的开发语言 Java 虽然是当前世界中的主流开发语言之一,但非常多的区块链开发者,并不习惯 Java 作为主语言来开发区块链,包括 NULS 技术社区中的很多伙伴,也觉得如果有一个不限制语言的底层将更有利于吸引开发者,更有利于区块链底层技术发展。于是我们设计了 2.0 架构,因为 1.0 已经做了模块化的尝试,积累了一些模块化的经验,实现了高度的模块化和业务隔离,所以 2.0 过渡时,我们并没有遇到特别大的困难。

问题 6:从技术角度出发,NULS 结合区块链思维如何重构微服务生态体系?

王志坚:**就像 Docker 的出现,带来了容器生态系统的爆发,成千上万的企业、团队把自己的软件容器化,包括 NULS。我们希望 NULS 也可以带来类似的变化,我们搭建微服务底层架构,开发者可以制作自己的业务的微服务模块,当模块仓库中有充足的资源时,我们可以针对性的发布一些使用方法,反向推动模块的开发,实现一个良性的循环。既为开发者和使用者带来价值,又能引领区块链行业和技术的发展,这是我们 NULS 希望参与创造的美好未来。

问题 7:近期 Libra 成为区块链行业的一个热点话题,您如何看待 VISA MASTERCARD 等 7 家公司退出 Libra 协会的深层原因,难道真的是政治威胁,是否也有关于竞争因素的考量?为什么美国议员如此刁难 Facebook?Libra 的前景如何?

王志坚:社会发展的车轮在前进的过程中总会遇到曲折、荆棘,但永远不会停止前进。不论这几家公司是因为什么原因退出,都不会阻挡区块链改变世界的步伐。历史证明,任何变革都会有反对的声音,这并不可怕,可怕的是一出现不同的声音,改革就戛然而止。Libra 作为一个先行者,很自然的会出现一系列的风险问题,但总体来说这是一种进步的尝试,我相信他的前景是光明的。后续也会有更多 Libra 这样的项目涌现出来,风险和机遇从来都是并存的。当前是区块链行业发展的早期,随着技术的进步、机制的完善,越来越多的企业、组织甚至国家会参与其中,形成一种大势,只有拥抱这种大势,主动参与,才不会被时代的车轮碾压。

问题 8:共识机制是区块链的灵魂核心,那么对于区块链特别是联盟链及私链来看,跨链技术就是实现价值网络的关键,结合 NULS 的跨链技术来谈一谈跨链技术的未来发展趋势?

王志坚:跨链在 2019 年是一个非常火热的话题,也涌现出了非常多的跨链项目。NULS 从立项之初,就立志搭建一个多链并行、价值互通的区块链生态网络。跨链的未来是非常清晰的,就是实现链与链之间的资产流通和信息传递。在实现过程中,NULS 更注重标准协议的定义,去中心化特性以及资产安全。NULS 目前已经完成了同构跨链,也完成了异构跨链的设计,开发人员正紧锣密鼓的开发合约资产跨链和异构跨链,相信年底将初步完成并推出市场。但完成底层跨链支持只是第一步,真正重要的是生态的建立构建多样的跨链应用场景,创造链与链之间的协作需求,NULS 希望全力投入这个工作中,并能作为行业的引领者,践行用区块链改变世界的初心。

AMA:对话 NULS 核心团队技术负责人王志坚,重构微服务生态体系