2021SC@SDUSC
目录
一、项目简介
(1)区块链简介
(2)JD Chain简介
(3)设计核心
(4)功能模块
二、项目分工
三、安装部署
一、项目简介
(1)区块链简介
什么是区块链?从科技层面来看,区块链涉及数学、密码学、互联网和计算机编程等很多科学技术问题。从应用视角来看,简单来说,区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块 。
(2)JD Chain简介
JD Chain是京东数字科技自主研发的区块链底层引擎,是针对企业区块链技术应用接入门槛高、业务适用性差、性能不足、操作复杂等问题,而设计开发的区块链框架和系统。它提供了一个面向企业应用场景的通用区块链框架系统,支持JAVA的SDK与合约代码,能够作为企业级区块链基础设施,为商业应用创新提供高效、灵活和安全的解决方案。
特点
高性能:全新底层架构,交易处理达2万TPS,交易确认为秒级,支持海量存储。
积木化定制:共识、账本、合约、存储各自独立,采用标准接口,灵活切换密码算法。
强安全和隐私保护:提供多种具隐私保护能力算法,支持国密算法等多套密码体系
有效数据治理:支持业务数据穿透检索、多维分析,独立备份、归档、监管和审计。
多链协同:支持多链管理,包括链间验证与交易执行等,并可组合轻量公链模式。
低成本易维护:可进行轻量网关节点部署,合约代码可复用、升级、本地化测试。
(3)设计核心
区块链的核心可以归结为两点:运用密码算法保障信息的完整性与不可否认性;在上述基础上,运用共识协议使信息复制保存到不同业务方,实现多方对信息共同背书。基于这两点可定义出区块链的5个核心部分:密码算法、共识协议、数据账本模型、数据存储、API(应用编程接口Application Programing Interface,以下简称API)。围绕总体设计原则,JD Chain的设计思路如下:
密码算法
密码算法的选择需要满足安全和合规的要求,同时面临源自实际业务场景的多样性要求。JD Chain在密码方面的关键任务是设计可插拔的密码框架,定义标准的SPI(服务提供者接口Service Provider Interface, 以下简称SPI)。系统默认支持国密算法以满足合规要求。基于密码SPI可以快速适配其它的密码算法实现,支持多密码体系。JD Chain将提供具有隐私保护功能密码算法和安全协议,来满足具体应用与业务的需求。
共识协议
共识协议的核心任务是保障区块链网络中有效节点的状态一致性。另外在选择共识协议时,还需要考虑业务场景中的安全性要求、时效性要求和节点规模等诸多因素。JD Chain在共识协议方面的关键任务是设计可插拔的共识框架,解耦共识协议与数据账本模型,定义标准的共识协议SPI,以满足业务场景的多样化需求。
数据账本模型
数据账本的核心任务是对数据进行有效地组织和管理,因此,需要定义数据的结构和数据处理的操作模型。JD Chain的数据账本模型以“键值”结构来组织业务数据,定义标准的读写操作,记录数据变更历史,维护数据完整性与不可否认性,管理数据的存在性证明。
数据存储
数据存储的核心任务是把数据账本高效地读写到持久化介质中。JD Chain把数据账本模型映射为“键值”结构,为数据的存储提供更好的伸缩性。另外,还定义了标准的持久化服务SPI,能够适配不同的数据库引擎,更好地复用企业现有的IT基础设施,满足企业的多样化需求。
API
JD Chain的API设计需要提供标准化的操作接口,考虑通讯协议和编程语言的广泛性,支持端到端的离线密码计算,向企业提供更安全可信和易用的编程接口。
(4)功能模块
JD Chain按功能层次分为4个部分:网关服务、共识服务、数据账本和工具包。
二、项目分工
我们根据项目的四个功能模块网关服务、共识服务、数据账本和工具包进行分工,每个人负责一个模块,我负责的是工具包模块。
工具包模块的内容包括:
节点可以使用JD Chain中提供的工具包获取上述三个层级的功能服务,并响应相关应用和业务。工具包贯穿整个区块链系统,使用者只需调用特定的接口即可使用对应工具。工具包包括数据管理、开发包(SDK)、安装部署和服务监控等。
上述三个功能层级都有对应的开发包,以接口形式提供给使用者,这些开发包包括密码算法、智能合约、数据检索的SPI等。
数据管理是对数据信息进行管理操作的工具包,这些管理操作包括备份、转移、导出、校验、回溯,以及多链情况下的数据合并、拆分等操作。
安装部署类工具包括密钥生成、数据存储等辅助功能,帮助各节点执行区块链系统。
服务监控工具能够帮组使用者获取即时吞吐量、节点状态、数据内容等系统运行信息,实现运维管理和实时监控。
三、安装部署
根据官方完整的步骤进行部署:JD Chain官方完整部署步骤



