CITA 2.0 正式发布!

栏目: 软件资讯 · 发布时间: 4年前

内容简介:历经一年技术研发,溪塔科技底层技术开发团队基于 CITA-Cloud 框架,正式发布了 CITA 2.0 ,联盟链底层正式迈向云原生架构。相比CITA 1.0版本,CITA 2.0在微服务架构,云原生支持以及跨链等方面有了长足的发展。下...

历经一年技术研发,溪塔科技底层技术开发团队基于 CITA-Cloud 框架,正式发布了 CITA 2.0 ,联盟链底层正式迈向云原生架构。相比CITA 1.0版本,CITA 2.0在微服务架构,云原生支持以及跨链等方面有了长足的发展。下面我们来看看,对于发展了多年的许可链底层,CITA 2.0 都有哪些能力,将带来什么变化与提升。

微服务架构优化

CITA 1.0 架构

CITA 1.0 实现了许可链的微服务架构,按照区块链的出块流程,进行流水线划分。按照出块过程中对区块链中交易的处理顺序,将底层划分为 jsonrpc,network,auth,bft,chain 和 executor 六个微服务。这种设计使得出块流程的流水线并行,进而让整个系统获得高吞吐量。这也是 CITA1.0 在性能方面能一枝独秀的原因,在 2017 年就成为行业首个可验证突破 1w TPS 大关的开源底层。详情参考 《CITA 是如何做到 15000 TPS 的》。

CITA 2.0 正式发布!

CITA 1.0 的微服务架构设计,虽然带来了高吞吐量,但也导致了各个微服务之间耦合程度高的问题,带来的困扰主要如下:

  • 核心流程耦合,不同的微服务在流程中只可处于固定位置,调整优化逻辑顺序困难,比如从“先共识再执行”调整为“先执行再共识”,工作量耗费较大;

  • 数据结构耦合,每个微服务需要实现跟前后环节对应的微服务对接,前后环节的微服务在数据结构上有耦合,需要对其它相关微服务进行修改调整,增加了对更优微服务集成的难度;

  • 计算难并行,由于执行环境和数据结构的特点,在EVM等执行环境下,无法做到并行化,对于特定大计算量场景,需要将计算移植到链外情形是,处理较为复杂;

CITA 2.0 架构

CITA 2.0 以高稳定性和高安全性为前提,对微服务划分采用正交分解方式,使得对于不同行业及不同场景的底层需求得以充分满足。实现核心流程可定制,功能组件可替换的能力。

CITA2.0借鉴了service mesh框架中控制面和数据面分离的架构思想。将核心流程全部收拢到名为controller的微服务中,(其名字也来源于service mesh框架中的控制平面 - Control Plane)。其他五个微服务network,consensus,storage,kms,executor则类似于service mesh框架中的数据平面 - Data plane,处于被动调用的地位。此架构设计的好处是:

  • 核心流程可以调整。只需要修改controller微服务即可实现从“先共识再执行”调整为“先执行再共识”,有助于适配于不同计算量的场景;

  • 微服务只需要实现自身的功能即可,大大减少了跟其他微服务的耦合。集成更优微服务集的难度大大降低,对于专注于某些组件的研究和开发人员,带来了切切实实的好处,他们可以将自己设计的模块快速的完成抽取和替换,也对场景的快速验证带来了优势;

CITA 2.0 正式发布!

云原生支持

CITA1.0 使用 docker 镜像发布,以 docker 容器的方式运行。解决了软件依赖问题,屏蔽不同操作系统的差异。随着云计算设施应用的推广,我们需要对云计算设施进行更好的利用。

对于日益增长的许可链场景,节点的参与方,将面临开发维护环境越来越复杂的境地。企业创建的链的数量和节点数量越来越多,使用的服务器也越来越多。相关的服务器,网络地址,端口,存储等资源的管理问题会越来越突出。

CITA2.0 原生支持 k8s,从而实现以下优势

  • 相关资源管理能力提升:在链和节点数量比较多的情况下,借助k8s丰富的功能和插件,运维和管理得到了极大的简化,相关资源的利用率也得到大大的提升,降低非必要资源投入,有效的管理资源使用;

  • 运维能力提升:每个微服务一个容器,节点的六个微服务一个Pod的模式。在日志收集,状态监控方面,可以更好的利用云原生社区或者云厂商提供的日志,监控等成熟解决方案,功能大大加强,扩展性可靠性也有了很大的提升,有助于生产系统的长期稳定运行;

CITA 2.0 正式发布!

跨链互操作

随着联盟链在金融,政企领域的应用,越来越多的同构和异构的区块链应运而生。这在促进区块链生态环境日渐丰富的同时,也呈现出割裂和碎片化的趋势。针对特定场景而构建的区块链应用,较少考虑到互操作性的需求,几乎每个区块链实例都具有独立、自治的生态,形成了一个个数据和价值的“孤岛”。如何实现区块链之间的互操作,使不同区块链能够协同工作,从而创造新的应用场景,同时促进创新,这是一个非常重要的挑战。

1.0 版本实现了同构链之间的跨链解决方案

跨链合约示例 · CITAHub Docs:https://docs.citahub.com/zh-CN/cita/privacy/crosschain-contract-example 

可以通过该方案实现不同应用场景下的多条同构链的互操作,通过多链实现应用数据隔离,突破单链的性能和数据容量方面的限制。

CITA 2.0 在此基础上,利用灵活的微服务架构,适配陆羽跨链协议,实现对异构链异构联盟链的互操作。( 陆羽跨链协议是一个面向可信源的互操作协议,旨在成为一套灵活、统一、可靠的互操作协议,实现对不同可信源的便捷接入与可靠操作。)

https://gitee.com/luyu-community/luyu-cross-chain-protocol/blob/master/doc/white-paper.pdf

CITA 2.0 正式发布!

核心功能迭代

微服务实现灵活组合

CITA 2.0 借助灵活的微服务架构,实现了组件的灵活替换。目前的实现中,除了 controller 微服务只有一个实现,其他5个微服务都有两个或者以上的实现。

CITA 2.0 正式发布!

以上微服务的实现可以灵活的组合,就像在肯德基点套餐一样,每个微服务任意选择一个实现,六个具体微服务实现组合在一起形成一个链。

这种组合变化非常多,将来还可以继续扩充,实现对各种应用场景适配。

举例:某客户使用Fabric项目,但因环境需要国密原生支持而迁移替换底层系统,chaincode智能合约,如何在不改变合约设计逻辑的情况下迁移到CITA 2.0 只要executor_chaincode和kms_sm两个微服务实现的组合,就能同时实现复用chaincode智能合约的目标。

支持更多共识算法

产业场景种类多,环境复杂,需求不同,往往在不同情况中对共识算法的诉求不同。例如,节点分属不同实体时,往往需要拜占庭容错的共识算法,防止个别节点作恶。对于企业内部不同分公司或者部门,信任程度更高的场景中,使用非拜占庭容错的算法,可以带来更小的网络开销和性能损耗。

CITA 2.0 实现了共识算法和其他微服务解耦,实现了共识算法的灵活替换,并且在最新版本中支持了Raft共识算法。

如前所述,根据不同的场景在consensus_bft和consensus_raft两个共识微服务实现之间选择即可,没有额外的工作量,后续也会根据场景的不同,完成对其它共识算法的支持。

复用已有的成熟组件

区块链涉及的技术非常多,包括网络,存储,共识,智能合约引擎等。完全自己开发,投入非常大,且达到企业级可靠性需要的时间比较漫长。

CITA 2.0 之所以能在短短一年之内就能发布这么多微服务实现,是因为很多实现都是复用已有的成熟实现。

  • 前面提到的 Raft 共识算法,复用 PingCAP 的 Raft (https://github.com/tikv/raft-rs)实现。此实现在PingCAP的产品中使用多年,经过生产环境的检验。复用此实现,节省了大量的开发测试人力,也使得该微服务实现可靠性直接达到生产可用级别。

  • bft 算法复用了经历过生产环境检验的 cita-bft 实现,CITA 1.0 的研发成果得到了很好的延续。

  • 密码学算法方面,CITA 2.0 可支持不同机构实现的国密算法替换。通过合作的方式直接复用高校和科研机构的成果,可科研成果落地,又为科研机构完成链路的实施提供了帮助。

生态兼容

智能合约生态兼容:CITA2.0可以通过替换executor微服务的实现来兼容多种智能合约引擎。目前兼容了以太坊和Fabric两个最大的智能合约生态,未来还可以针对具体场景兼容更多的链的生态。比如针对隐私,支持基于零知识证明的合约引擎。

异构链路互操作:对于不想放弃已有链的情况,CITA2.0可以通过陆羽跨链协议来实现不同链间的互操作,打通不同异构链的场景和生态。

性能优化

CITA 2.0 架构主要考虑稳定性与高可用性。

通过替换更可用的 kms 微服务,实现对验签,签名环节中的更安全更稳定的输出,同时 CITA 2.0 通过批量处理等优化措施弥补了微服务之间rpc调用带来的性能损耗。

在具体密码实现上,CITA2.0 采用自主开发的 efficient-sm2 作为签名算法库,在相同硬件配置下,签名提升4倍,验签提升6倍。

数据来源:efficient-sm2 benchmark
https://github.com/Pencil-Yao/efficient-sm2#bench

 

libsm

efficient-sm2

签名

208,987 ns/iter (+/- 7,795)

59,064 ns/iter (+/- 1,151)

验签

831,658 ns/iter (+/- 282,336)

156,189 ns/iter (+/- 22,855)

执行一次签名/验签的耗时(单位纳秒)

CITA 2.0 使用gRPC实现微服务间通信,接口调用链路更加清晰。微服务间实现点对点的rpc调用,通信没有瓶颈,通信的性能部分提升20%。

基于云原生的运维管理

CITA 2.0 原生支持k8s环境,提供了Charts,Operator等云原生时代的运维和管理工具。配置,部署得到了极大的简化,一条命令即可完成链的配置和部署(快速入门 ‒ CITA-Cloud 文档)。
https://cita-cloud-docs.readthedocs.io/zh_CN/latest/getting-start.html#id7

基于k8s的PaaS平台(比如Rancher,KubeSphere等),可以实现资源隔离,权限管理,多集群管理等。

基于k8s对集群和各种资源的抽象,CITA 2.0 可以适配各种网络和存储方案。

  • 网络部分:通过k8s网络插件完成自动化的网络配置,CITA 2.0 的网络微服务只需要完成区块链层的通信功能即可。

  • 存储部分:通过k8s的PV/PVC可以完成存储空间的自动划分,CITA2.0用统一的接口对接NFS,NAS,分布式存储等。

针对大型企业和平台型客户,我们还提供了RivSpace企业级区块链管理平台。该平台可以为企业提供自主可控、一站式、可视化的区块链基础服务创建、管理和维护的管理平台,支撑上层区块链应用接入,解决多链和异构链管理难题,帮助企业实现区块链技术赋能的愿景。该平台同样也是基于k8s技术构建的。

总结与展望

目前 CITA 2.0 已经在星火链网等多个场景中实施落地,但是我们不会停下前进的脚步。

接下来将会进一步整合云原生的生态能力,结合区块链行业最新的扩展技术,将进一步解耦区块链的核心功能。在打造坚固稳定的核心的同时,可以提供更高的灵活性,产生出更加贴近客户场景的开源联盟链产品。

CITA 2.0 的文档和开源地址链接,欢迎大家star,fork::https://github.com/cita-cloud 

关于 CITA2.0 · CITAHub Docs:https://docs.citahub.com/zh-CN/next/cita2.0


以上所述就是小编给大家介绍的《CITA 2.0 正式发布!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Security, Privacy and Commerce, 2nd Edition

Web Security, Privacy and Commerce, 2nd Edition

Simson Garfinkel / O'Reilly Media / 2002-01-15 / USD 44.95

Since the first edition of this classic reference was published, World Wide Web use has exploded and e-commerce has become a daily part of business and personal life. As Web use has grown, so have ......一起来看看 《Web Security, Privacy and Commerce, 2nd Edition》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具