专题研究二十五:联盟链研究之Cita
专题研究二十五:联盟链研究之CITA
BSN已经支持 Hyperledger Fabric,正在适配的联盟链底层框架有 Fabric 国密、FISCO BCOS、CITA、XuperChain、梧桐链和 Brochain 等。针对公链框架,目前支持ETH和 EOS 。
现有的联盟链可以分为两大类:以 Fabric 为代表,在传统数据库主导的分布式数据库技术;以及更符合“区块链精神”的 FISCO BCOS 和 CITA。
CITA 是一个开源的区块链操作系统内核,以高稳定性,高性能,高可扩展性为设计目标。CITA 开源项目由秘猿科技 Cryptape 于 2016 年发起。目前由溪塔科技等 CITAHub 社区企业共同维护。CITA 采用微服务架构设计,提供丰富的开发工具集,灵活的区块链治理工具,开发者可为不同类型的区块链网络进行二次开发或配置。https://www.citahub.com/
https://docs.citahub.com/zh-CN/welcome CITAHub 文档概览
CITAHub 提供了一套完整的开源的区块链解决方案,CITA 作为底层区块链内核;围绕 CITA, 提供了开源的工具链 CITA Toolchain 来完善基础设施,以方便运营方,开发者以及终端用户能够快速使用,跟 CITA 直接进行数据交互的有 CITA SDK, CITA CLI。官方在 CITA SDK 基础上构建了 4 个工具:ReBirth、CITA IDE、CITA Truffle Box、CITA Web Debugger。此外还提供 3 个针对特定业务需求和开发场景的工具:Microscope、Cyton Wallet、CITA CLI。另外还有一个 first-forever-demo,通过开发或运行此 demo,能够熟悉 CITA Toolchain 的大部分子工具,并基本掌握在 CITA 上开发 DApp 的操作流程。
CITA 将一个区块链节点的共识、网络、计算、RPC 等功能进行了微服务化拆分,每一个微服务又可以有多个实例,最终这些实例共同完成一个节点的记账功能。这样,我们将区块链性能的扩展问题转化成了节点的扩展问题,当性能不足时,插入一台服务器,分担节点的工作压力即可。同时,我们将共识机制、底层逻辑进行了深度优化,例如采用Rust语言架构所有代码等。最终实现了目前开源可实证区块链系统的顶级性能。这是一组实测数据:由4核8G云主机构成的CITA的性能可达到每秒2900笔简单交易;32核64G云主机组成的CITA的性能则超过了每秒1.5万笔简单交易。采用集群构建节点性能将会更高,因此 CITA 的性能已经足以应付绝大多数应用场景。
CITA IDE 是基于 Ethereum 的 Solidity 编辑器进行修改,适配 CITA,是面向 CITA 的智能合约编辑器。CITA Truffle Box 是基于 Truffle Box 定制的适配 CITA 的 DApp 全能开发框架,在 CITA 上开发 DApp 的体验和在 Ethereum 上比较一致。CITA Web Debugger 是一个基于 Chrome 浏览器的插件,用于 DApp 调试。Cyton Wallet 分为 Android 版和 iOS 版,提供账户管理功能,Token 管理及转账功能,内置 DApp 浏览器功能,开发者可基于 Cyton Wallet 进行二次开发构建区块链钱包。Microscope 区块链浏览器,可用于查询所有 CITA 链上信息,并支持基于 CITA 的多链,可通过在元数据面板中切换目标链。
CITA 现在已经在银行,证券,票据等实际生产环境中运行,这其中我们积累了大量工程经验。
CITA 的 Docker 镜像托管在 DockerHub。 因为 CITA 是基于 Ubuntu 18.04 稳定版开发的,因此该镜像中封装了 Ubuntu 18.04 还有其他一些 CITA 运行所需要的配置和文件。
CITA 支持三种算法的组合(分别为加密算法和散列算法):
secp256k1 与 sha3;
ed25519 与 blake2b;
sm2 与 sm3。
如果你想一键搭建属于你自己的链,你可以选择租用 CITA 的云服务。只需根据您的需求,在云服务平台选择适合自己的方案直接租用,帮你省去准备服务器以及部署 CITA 的一系列操作。具体请参考下文中的云部署手册。
如果你想在 CITA 上直接开发应用,我们建议你使用已经搭好的 CITA 测试链。
CITA区块链分为两大类节点:
共识节点:共识节点具有出块和投票权限,交易由共识节点排序并打包成块,共识完成后即被确认为合法区块。
普通节点:普通节点没有出块和投票权限,其他方面和共识节点相同。可以同步和验证链上所有的原始数据,接受交易数据并向其他节点广播。
普通节点管理包括:普通节点的增删;
共识节点管理包括:共识节点的增删,共识节点出块权重的配置
CITA 作为面向企业的高性能区块链内核,拥有支持智能合约的虚拟机,用户发送交易(转账,调用合约,部署合约)中的每个运算都会消耗一定的资源,这里消耗的资源用 Quota 作为单位来计数。
CITA 作为一个通用的区块链内核,提供了诸多配置参数,让用户可以根据自己的业务场景进行定制经济模型。概括来说可以分为两种模式:
Quota 模式:
无代币的模式,系统默认模式。系统仅对用户交易消耗的资源进行统计。
Charge 模式:
有代币的模式,链上发行原生代币。系统先对用户交易消耗的资源进行统计 (quotaUsed),并换算为原生代币对用户进行收费。收取的费用有多种灵活的分配方式,方便用户根据业务场景进行定制。
CITA 提供灵活的分发方式,以适配多样的业务需求:
超级管理员可以通过发交易的方式进行分配;
也可以使用我们提供的水龙头工具,让用户自己领取代币;
也可以采用类似挖矿奖励的方式分发
账户(account): 链上唯一的标识,表现为地址。权限管理的主体对象。
外部账户(external owned account): 拥有公私钥对,可发送交易的用户。
合约账户(contract account): 拥有相关的代码(code)及存储(storage)。
服务监控:
主要监控机器指标(CPU、内存、硬盘)使用率,链指标(进程存活、是否出块);
使用开源解决方案 Zabbix、Prometheus;
针对 CITA 的开源监控系统 CITA-Monitor。
许可链在交易吞吐量低、交易实时性上很难满足行业应用的要求。另外,区块链技术发展迅速,单体应用也很难满足演进要求。为了解决这两个问题,CITA 将单个节点按照功解构为交易共识、合约引擎、链式存储、网络同步、服务网关等多个松耦合的微服务,一方面利用云计算基础设施来按需提升性能,另一方面,各个组件可独立替换升级。另外,采用消息总线进行通信,各个微服务可以利用异步消息简化处理,又可以确保消息的安全、可靠送达。当与外部系统集成时,外部系统可以直接访问消息总线,而无需 CITA 做适配。
CITA 的共识模块主要是保证多个节点对于交易的顺序和 Block 的内容达成一致。在众多的分布式算法中,我们实现了拜占庭容错的 CITA-BFT 共识算法。我们实现了拜占庭容错的 CITA-BFT 共识算法,CITA-BFT 是一个两阶段投票的拜占庭容错算法,该算法在对 BFT 类算法广泛研究的基础上对 PBFT 进行了优化,以更好地与 CITA 的微服务架构融合,利用微服务架构的横向扩展优势提升共识效率。在每个高度上,都有 N 个节点参与当前高度的共识,共识节点经过至少一轮的共识达到最终共识,当出现某些节点掉线或者网络故障等问题时,需要进行多轮共识以达到最终共识。当总共识节点数为 n 时,可容忍的故障或拜占庭节点数不超过 (n-1)/3。
在 CITA 中存在两种账号:外部账号和合约账号。外部账号通常情况下代表用户的身份,用户可以通过外部账号来发送交易。与公链不同,CITA 具有用户准入机制。首先用户自行生成私钥和公钥,私钥由用户妥善保存; 然后将公钥通过链外的方式提交给 CITA 系统中的 KYC 系统;通过申请之后,系统管理员将用户公钥通过操作账户管理合约,发送交易将用户加入 CITA 网络中。对于未准入的外部账户,无法向 CITA 发送交易。同时,CITA 内置了基于角色的权限管理,系统管理员(角色)可以根据实际情况灵活配置账户的权限。
为了更高效的检索和更新数据,区块链一般会在内存中维护某种数据结构的视图模型。对于传统的区块链,如Bitcoin 采用了 Merkle Tree 来保存交易;Ethereum 采用了 Merkle Patricia Tree,一种改进的Merkle Tree 来保存状态和交易。 CITA 采用了 Simple Merkle Tree 来保存交易列表和交易回执。
CITA 的跨链原理是?
跨链部分我们采用侧链方案,这种方案要求两条链能够相互读取对方的事件和状态,一般还要有 SPV 的能力。 链A先锁定一个资产,链 B 通过读取链 A 的信息,确认这个锁定交易已经得到确认,就在链 B 上解锁等价的资产,完成资产跨链。 采用这种方案的项目非常多。有名的 BTC Relay,比特币的侧链 RootStock,BlockStream 的元素链,还有较早的 PolkaDot 和 Cosmos,以及新近的 Wanchain 和 EOS。
https://mp.weixin.qq.com/s/EcJhFtYjfUCJYQfgirMP1w 满足《金融分布式账簿技术安全规范》要求的联盟链底层 CITA
https://bihu.com/article/1099764304 CITA 是如何达到 15000 TPS 的?
近日,中泽信业科技、链闻、BYSEC、链客、区块链研习社等 5 家机构加入 CITAHub,成为社区共建伙伴。CITAHub 的使命是打造一个连接开发者与运营方的合作平台。区块链是用来创造价值网络的工具,基于该理解,我们希望 CITAHub 能够联合各方资源,为开发价值网络提供场景、开发工具及最佳实践。
北派清华,沿袭悠久历史,底蕴深厚,携手名师,智圆行方。火币网、Conflux、亦来云、哈希世界等区块链项目的创始人均出自清华。
南派浙大,依托良好的产业发展环境,产学结合,重视创新与实践。趣链、云象、复杂美等项目的创始人便是自浙大毕业。