CITA 是什么
CITA (Cryptape Inter-enterprise Trust Automation) 是一个面向企业级应用的支持智能合约的区块链框架,旨在为企业级区块链应用提供一个稳固、高效、灵活的运行平台。
CITA作为 Nervos AppChain 的核心组件,可以通过 “性能不够 机器来凑” 这种横向扩展的方式提供强大的性能支持,这也是大型互联网公司的通常做法。
CITA架构
CITA采用微服务架构,将区块链节点的必要功能解耦为六个主要微服务:RPC,Auth(授权),共识(Consensus),监控(Monitoring),执行器(Executor),网络(Network)。每一个微服务又可以有多个实例,最终这些实例共同完成一个节点的记账功能,各组件之间通过消息总线(Message Bus)交换信息相互协作。
系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。CITA把微服务的思路带入了区块链。
在整个系统中,往往是某几个处理路径耗时, 比如在互联网企业中, 最先出现的往往是IO问题,数据库问题, 而不是CPU负载过高,我们就可以增强数据库的处理能力, 从而提高总体的处理性能。CITA是微服务的架构,微服务带来的好处,都可以在CITA中体现。比如可以对模块方便的扩展,RPC调用很频繁,可以单独扩充RPC模块。RPC不需要处理太多请求的时候,就减少RPC模块。做到了可插拔,高伸缩性,有了模块的隔离,也不会改变其他模块的状态,可以做到并行处理。
而Bitcoin诞生的时候,并没有过多考虑性能问题,各种模块耦合在一起,编译完后只有2个执行文件: bitcoind,bitcoin-cli 。bitcoind是服务端,bitcoin-cli是客户端,是从用户的使用角度分割功能。Bitcoin只要有一个处理路径有性能问题, 就会拖累整体性能。
CITA 的亮点
-
水平扩展性
-
组件可插拔
-
高性能
-
稳定可靠
这是微服务带来的优势。
CITA还有其他的亮点:
多链协议,可以使任何应用或行业都可以搭建自己的链,并构建自己的生态。尽管每条链业务不同,但是可以有相同的地址,就可以统一管理各条链上的资产;
智能合约引擎,使你不但可以编写eth合约,也可以使用 Golang/Rust编写合约。
CITA是由Rust语言编写的,为何使用Rust呢? Rust是一门运行速度非常快的系统级编程语言,也是一门强调安全、并发、高效的语言。使用Rust,既能有C/C++的高效,又不用过多的担心C/C++带来的野指针,内存泄露等安全问题。
在之后的文章中,会详细介绍如何部署CITA以及Rust的基础知识,以此希望大家能更好的了解Nervos,真正发挥Nervos的优势。
参考:
https://docs.nervos.org/cita/#/architecture/architecture
https://docs.nervos.org/nervos-appchain-docs/
https://www.jianshu.com/p/e73e28c30c3d
原文始发于微信公众号(Rebase社区):Nervos AppChain 组件之 CITA