Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
shaozhuguang e7bdfd374a | 4 years ago | |
---|---|---|
build | 4 years ago | |
core @ 055763456e | 4 years ago | |
deploy | 4 years ago | |
docs/images | 5 years ago | |
explorer @ da3b9c925d | 4 years ago | |
framework @ dd984d7545 | 4 years ago | |
kvdb @ b2525ac94d | 4 years ago | |
libs | 4 years ago | |
project @ 09be314ded | 4 years ago | |
samples | 4 years ago | |
scripts | 4 years ago | |
test @ 92ffbdbf14 | 4 years ago | |
.gitignore | 4 years ago | |
.gitmodules | 4 years ago | |
LICENSE | 5 years ago | |
README.md | 4 years ago | |
pom.xml | 4 years ago |
[TOC]
#JD区块链
JD Chain 的目标是实现一个面向企业应用场景的通用区块链框架系统,能够作为企业级基础设施,为业务创新提供高效、灵活和安全的解决方案。
JD Chain 主要部署组件包括以下几种:
共识节点
共识节点即参与共识的节点,这是系统的核心组件,承担了运行共识协议、管理账本数据、运行智能合约的职责。
一个区块链网络由多个共识节点组成,共识节点的数量范围由选择的共识协议决定。
共识节点和账本是两个不同的概念,共识节点是个物理上的概念,账本是个逻辑上的概念。JD Chain 是一个多账本区块链系统,一个共识节点上可以装载运行多个账本。账本是数据维度的独立管理单元。共识节点和账本的关系,就像关系数据库系统中,数据库服务器和数据库实例的关系。
共识节点通常都部署在参与方的内部网络中,通过由网络管理员指定的安全的网络出口与其它的共识节点建立通讯连接。
共识节点在形态上是服务器中的一个处理进程,背后需要连接一个本地或者内网的NoSQL数据库系统作为账本的存储。当前版本,共识节点目前是单进程的,未来版本将实现多进程以及多服务器集群模式。
网关节点
网关节点是负责终端接入的节点,负责终端连接、协议转换、交易准入、本地密码运算、密钥管理等职责。
网关节点是一种轻量节点,需要绑定一个特定参与方的密钥对,连接到一个或多个共识节点。
网关节点向共识节点的连接是需要通过认证的,绑定的参与方的密钥对必须事先已经注册到区块链账本中,且得到接入授权。
终端
终端泛指可以提交交易的客户端,典型来说,包括人、自动化设备、链外的信息系统等。
终端只能通过网关节点来提交交易。终端提交的交易需要用体现该终端身份的私钥来签署,产生一份电子签名。随后当交易提交给网关节点时,网关节点需要在把交易提交到共识节点之前,对交易请求以网关节点绑定的私钥追加一项“节点签名”。
备份节点
仅对账本数据提供备份,但不参与交易共识的节点。(注:目前版本中尚未实现,将在后续版本中提供)
安装 Maven 环境
JD Chain 当前版本以 Java 语言开发,需要安装配置 JVM 和 Maven,JDK 版本不低于1.8 。(没有特殊要求,请按标准方法安装,此处不赘述)
安装 Git 工具
为了能够执行 git clone 命令获取代码仓库。 (没有特殊要求,请按标准方法安装,此处不赘述)
项目库说明
JD Chain 源代码包括 3 个代码仓库
主项目库包含以下 6 个子模块仓库,通过执行脚本 <主项目库根目录>/build/build.sh 便可以一键完成子模块的下载和整体的编译、测试和打包操作.
$ git clone git@github.com:blockchain-jd-com/jdchain.git jdchain
$ cd jdchain
$ git checkout develop
$ chmod +x build/*.sh
# 执行完整的构建,包括执行”集成测试“和”打包“两部分;提供两个参数:
# --skipTests :跳过集成测试部分;
# --update :从远程仓库更新子模块。注意,采用此参数会导致子模块本地仓库丢失尚未 commit 的代码。
# 不附带此参数的情况下不会更新子模块仓库。
$ build/build.sh --update
# 跳过集成测试,直接编译和打包;
$ build/build.sh --skipTests
# 只执行集成测试;
$ build/test.sh
当编译完成后,安装包位于主项目库的 deploy 目录中:
一个面向企业应用场景的通用区块链框架系统,能够作为企业级基础设施,为业务创新提供高效、灵活和安全的解决方案
Shell Java