CITA架构与云计算服务

hi 欢迎来到小秘课堂第一期,今天咱们来说讲 CITA 架构与云计算服务之间的那些事儿,欢迎主讲人谢晗剑 git

讲师:谢晗剑github

编辑:vivi编程

微服务架构

那一年架构大师 Martin Fowler 写了一篇名字叫作 Microservices 的著名文章,微服务的思想倒是在那以前就流行在架构师的圈子里面。这思想与结构化编程的理念一脉相承,即软件系统的功能应该切分为尽量的简单的模块,而后经过某种标准的方式组装起来。在进程内咱们能够将代码解耦成一个个类和对象,经过对象间消息把它们组合起来;在UNIX系统里面咱们实现了一个个极小而专注的工具,利用管道组合这些小工具从而完成各类复杂的任务;因而在企业级架构中,将系统拆分红一个个独立的应用,相互之间经过HTTP协议或是企业消息总线进行链接,也就是天然而然的事情了。安全

每个微服务都是一名匠人,它只专一于一件事情,并且可以很好的完成它。将一个软件系统重构为微服务架构的过程,就是不断的将单个独立的任务发掘出来而且将其代理给一位位值得托付的工匠的过程。(还真是像咱们发展创业团队的过程哟 0_0)服务器

若是咱们仔细观察交易从被用户构造出来发送到网络开始的整个处理流程,咱们会发现主要有这样几个阶段:网络

  1. 交易在网络上被广播,扩散。架构

  2. 网络给交易安排一个惟一并且递增的“序号”,例如交易所在的区块高度+区块内 index 就是一个“序号”。微服务

  3. 每一个节点都看到了交易的序号,而且按照顺序对交易进行处理,例如将交易做为参数传给智能合约就是一种处理方式。工具

  4. 用户经过节点提供的接口,得到交易被处理后的结果区块链

这几个主要阶段正好对应了cita里面的四个主要微服务

  1. 网络服务

  2. 共识服务

  3. 执行服务

  4. RPC服务

cita 网络中的每个全节点都会运行这一组服务。因为这些服务能够运行在多台服务器上,所以 cita 里面的节点概念再也不和服务器一一绑定,而是变成了由一台或者多台物理服务器构成的集群。集群运行在企业内部,所以同一节点的微服务之间能够相互信任,共享相同的安全边界。

微服务经过消息中间件链接。网络负责与 P2P 网络中的其它节点创建链接,交换消息。不管交易被发送到哪一个节点,都会被扩散并被本节点的网络酱接收到,网络酱接收到这个交易以后,会经过消息的形式把它递交给共识酱。共识又会请网络酱帮忙和其余节点的共识酱交换消息,以对这个交易的序号达成共识。在共识完成以后,执行会接手,调用某个智能合约对交易进行处理。最后用户经过询问 RPC,获取交易的处理结果。(呼... 终于完成,呀比~ \(^o^)/ )

经过这样一种相互配合、团队协做的流水线做业,cita 节点将一个个交易搬到了区块链上。在这样一种做业方式中,节点再也不是一位须要本身完成全部工做的小做坊老板,而是一座拥有大量熟练工人的工厂。每一位微服务都专心一件事情,所以能够把这件事作得很好很高效。不只如此,流水线的每一个环节均可以有不少选项:咱们能够请 Tendermint 来负责共识,也能够请 PBFT 或者 PoA 来作这件事,只要结果同样,流水线其余环节的工人彻底不会意识到他们是在和共识部门的哪位工人在协做。在 cita “工厂”里面,组件可插拔不是口号,而是现实。

一样的,小做坊受生产流程所限,产出上限固定,没法应对销售旺季交易量保障的状况;而 cita 工厂因为创建了一套标准的协做体系,只须要增长更多的流水线和工人就可以从容应对这些状况!哦也(^-^)V

Scalability

cita 的这个特色就是传说中的 scalability

“等等,scalability 不是区块链的一个还没有解决的问题吗?大家不是吹牛吧?” ?_?

目前区块链网络的 scale 问题源自其多复本的设计思路,因为每个交易都会被复制到全部节点上处理和验证,节点在验证交易的同时也是在进行重复计算,形成了整个网络的交易处理能力约等于网络中单个节点的处理能力,不管怎么增长节点都没有用。咱们经常讨论的,就是如何能作出一个方案,在保证安全的前提下可以经过增长节点来提升区块链的处理能力,行话又称为水平扩展(scale out)

咱们知道,scalability 能够分为两种,除了上述水平扩展外,还有垂直扩展(scale up):若是增长节点没用,能不能想办法提升单个节点的能力呢?既然整个网络的处理能力约等于网络中的单个节点,若是单个节点的能力很强,那么整个网络的处理能力不是就提升了吗?

这就是 cita 具备 scalability 的缘由。经过节点的微服务架构,cita 能够作到节点内的水平扩展,从区块链这个层面看,即是节点在垂直扩展了。相较于国际大公司经过专有硬件来提高单节点处理能力的方案,cita 只须要运行在普通PC 服务器上,不只可以为用户节约成本,水平扩展能力也比单机架构更强。

这么好的思路,为何公有链不用呢?

敏锐的读者可能已经发现了问题所在:中心化

对于公有链的设计者来讲,节点应该被尽量多的用户运行在尽量多的计算机上。运行一个计算机集群虽然能提高节点能力,可是维护集群所须要的专业知识以及资源投入,倒是普通用户不具有的。若是在公有链中使用这样的设计,必然出现的状况是只有少数具备专业知识、可以投入必定资源的人才有能力运行全节点,这与公有链的节点对等无中心的目标是相悖的。

cita 则是针对企业级用户设计的区块链。做为 cita 的目标用户,企业天生就具备运行一个集群的资源和能力。在云计算以及容器化技术已经很是成熟的今天,企业级用户能够轻松的将 cita 服务部署到多台服务器上,并对这些服务进行管理。相较于其余区块链技术,cita 微服务架构可以真正发挥云服务的潜力,能够说,cita 不只仅是针对企业级用户设计,也是针对云服务设计的区块链若是您有兴趣成为咱们的合做伙伴或者用户,欢迎与咱们联系。联系方式:contact@cryptape.com,欢迎来撩~

关于讲师

谢晗剑(Jan Xie)

秘猿科技 CEO。Nervos Foundation 联合创始人,首席架构师。以太坊 Ethereum 核心研发团队成员。中国以太坊及区块链技术社区 EthFans 发起人。曾担任知名数字货币交易所架构师与核心开发者,设计与开发了世界上第一个开源数字货币交易所 Peatio。

Github:https://github.com/janx

秘猿科技 repo:https://github.com/cryptape

链接开发者与运营方的合做平台 CITAHub:https://www.citahub.com/

有任何技术问题能够在论坛讨论:https://talk.nervos.org

相关文章
相关标签/搜索