京东区块链技术架构分为JD Chain和JD BaaS两部分。其中,JD Chain是核心引擎,JD BaaS是企业级服务平台。
一、概述
京东区块链技术架构分为JD Chain和JD BaaS两部分。其中,JD Chain是核心引擎,解决区块链底层的相关技术问题。JD BaaS是企业级服务平台,提供灵活易用和可伸缩的区块链系统管理能力,支持公有云、私有云及混合云环境快速部署,降低企业使用成本,促进应用落地。
二、架构
和传统的区块链系统一样,JD Chain区块链系统也包含:密码算法、共识协议、账本、数据存储和API这五个部分。
三、功能模块
按照JD Chain自己的设计思路,它主要分为四个部分:网关服务、共识服务、数据账本和工具包。
网关服务
JD Chain的网关服务是应用的接入层,提供终端接入、私钥托管、安全隐私和协议转换等功能。
共识服务
公式服务是JD Chain的核心实现层,包括共识网络、身份管理、安全权限、交易处理、智能合约和数据检索等功能,来保证各节点间账本信息的一致性。
数据账本
数据账本为各参与方提供区块链底层服务功能,包括区块、账户、配置和存储。
工具包
节点可以使用JD Chain中提供的工具包获取上述三个层级的功能服务,并响应相关应用和业务。工具包贯穿整个区块链系统,使用者只需调用特定的接口即可使用对应工具。工具包包括数据管理、开发包(SDK)、安装部署和服务监控等。
四、节点类型
JD Chain中定义了三种不同类型的节点:
客户端节点(Client)
客户端节点是通过SDK进行区块链操作的上层应用。
网关节点(Gateway)
网关节点是提供网关服务的节点,用于连接客户端节点和共识节点。
共识节点(Peer)
共识节点是共识协议的参与方,产生一致性的账本。
JD Chain通过这些节点实现信息交互,不同类型的节点可以在同一物理机上部署运行。
五、共识算法
JD Chain共识算法采用BFTSmart(Byzantine Fault-Tolerant State Machine Replication),该算法需要节点数为:N=3f+1(其中N为节点总数,f为恶意节点数),因此该共识至少需要四个Peer节点参与。
相关论文:
http://www.di.fc.ul.pt/~bessani/publications/tutorial-smr.pdf
http://www.gsd.inesc-id.pt/~mpc/pubs/document.iscc.pdf
六、交易流程
每个参与方在实际处理过程都需要使用Client作为交易处理的载体,每个Client中都有该参与方在该链对应的用户。
1.启动交易
参与方通过Client发送所持有的生产数据。Client为实际业务系统,通过调用JD Chain提供的SDK将某溯源产品的生产数据封装为交易。该交易附有业务系统的签名信息,SDK将该交易封装成正确的请求格式,通过Http将其发送至Gateway节点。
2.验证交易
Gateway节点收到Client发送的交易后,首先对交易进行验证(包括交易的格式及签名信息),验证通过后Gateway节点会在原交易基础上附加自己的签名信息,然后将交易发送至Peer节点群进行共识。
3.共识交易
Peer节点群对交易共识成功后会输出排序后的交易列表,该交易列表对于每个Peer节点而言是平等的,每个Peer节点都会接收到完全一致的按顺序的交易列表。
4.应答交易
Peer节点收到排序后交易后对其进行检查(包括合法性验证、验签等),检查通过后会根据实际结块规则生成区块并更新账本。然后将结块的信息作为应答发送至Gateway节点,进而发送至Client节点。
一次交易流程:
1.Client调用SDK生成对应的交易请求,并通过SDK将该交易发送至Gateway(HTTP协议)。
2.Gateway会对交易进行合法性验证,并进行验签,然后使用自身节点的用户进行签名,再将交易发送至Peer节点群进行共识。
3.Peer节点群接收连续的交易并进行共识,共识通过后会输出排序后的交易列表至每个Peer节点。
4.每个Peer节点对接收的交易列表进行合法性检查、验签,验证通过后会执行对应的交易并根据结块规则生成区块,更新账本。完成后会将应答(含结块信息)发送至对应Gateway,进而发送至Client。
5.时序图
网友评论