Browse Source

modify the file of 安装部署.*

tags/1.0.1
zhaoguangwei 6 years ago
parent
commit
36bd35130b
3 changed files with 313 additions and 701 deletions
  1. BIN
      source/deployment/deployment-peer/src/main/resources/docs/imgs/browser.jpeg
  2. +65
    -64
      source/deployment/deployment-peer/src/main/resources/docs/安装部署.MD
  3. +248
    -637
      source/deployment/deployment-peer/src/main/resources/docs/安装部署.html

BIN
source/deployment/deployment-peer/src/main/resources/docs/imgs/browser.jpeg View File

Before After
Width: 3340  |  Height: 1786  |  Size: 298 kB Width: 1919  |  Height: 936  |  Size: 210 kB

+ 65
- 64
source/deployment/deployment-peer/src/main/resources/docs/安装部署.MD View File

@@ -1,5 +1,6 @@
# JDChain安装部署指南 # JDChain安装部署指南


本部署指南基于JDChain1.0.0.RELEASE版本来构建。
## 1. 部署环境 ## 1. 部署环境
### 1.1 系统部署结构 ### 1.1 系统部署结构
![部署结构](imgs/structure.png) ![部署结构](imgs/structure.png)
@@ -56,21 +57,21 @@ unzip jdchain-peer-$version.zip
Peer打包程序解压完后的安装包结构如下: Peer打包程序解压完后的安装包结构如下:


+ bin + bin
- keygen.sh
- ledger-init.sh
- startup.sh
- shutdown.sh
- keygen.sh
- ledger-init.sh
- startup.sh
- shutdown.sh
+ config + config
- init
+ ledger-init.conf
+ local.conf
+ bftsmart.config(默认)
- keys
+ %.priv
+ %.pub
+ %.pwd
- ledger-binding.conf
- application.properties
- init
+ ledger.init
+ local.conf
+ bftsmart.config(默认)
- keys
+ %.priv
+ %.pub
+ %.pwd
- ledger-binding.conf
- application.properties
+ docs + docs
+ libs + libs
+ system + system
@@ -93,10 +94,10 @@ chmod 777 *
Gateway节点打包程序为:jdchain-gateway-$version.tar.gz或jdchain-gateway-$version.zip,其解压完后的安装包结构如下: Gateway节点打包程序为:jdchain-gateway-$version.tar.gz或jdchain-gateway-$version.zip,其解压完后的安装包结构如下:


+ bin + bin
- startup.sh
- shutdown.sh
- startup.sh
- shutdown.sh
+ config + config
- gateway.conf
- gateway.conf
+ lib + lib




@@ -125,12 +126,12 @@ JDChain提供了创建用户的工具,可直接通过命令行生成一个新
**请将所有Peer节点都按照上述流程注册一个独立的用户,在实际生产环境中该过程可能由不同的参与方完成。** **请将所有Peer节点都按照上述流程注册一个独立的用户,在实际生产环境中该过程可能由不同的参与方完成。**


### 2.3 账本初始化 ### 2.3 账本初始化
账本初始化是所有参与Peer节点进行共识,并生成初始化账本至数据库的过程。该过程需要所有节点共同参与,同时启动。
账本初始化是所有参与Peer节点进行共识,并生成初始化账本至数据库的过程。该过程需要所有节点共同参与,**同时启动**


#### 2.3.1 初始化配置 #### 2.3.1 初始化配置
*config/init* 目录下有三个配置文件需要修改:**local.conf** 、 **ledger-init.conf** 和 **bftsmart.config** 。
*config/init* 目录下有三个配置文件需要修改:**local.conf** 、 **ledger.init** 和 **bftsmart.config** 。
+ local.conf描述账本初始化的本地(即当前节点)配置; + local.conf描述账本初始化的本地(即当前节点)配置;
+ ledger-init.conf描述账本初始化过程中涉及到的其他参与Peer节点配置信息;
+ ledger.init描述账本初始化过程中涉及到的其他参与Peer节点配置信息;
+ bftsmart.config为BFTSmart进行共识的相关配置。 + bftsmart.config为BFTSmart进行共识的相关配置。


##### 2.3.1.1 local.conf配置 ##### 2.3.1.1 local.conf配置
@@ -157,18 +158,11 @@ ledger.db.uri=rocksdb:///export/app/peer/rocks.db/rocksdb0.db


#账本数据库的连接口令 #账本数据库的连接口令
ledger.db.pwd= ledger.db.pwd=

#共识配置文件路径
consensus.conf=../bftsmart.config

#共识Providers配置
#BftSmart共识Provider:com.jd.blockchain.consensus.bftsmart.BftsmartConsensusProvider
consensus.service-provider=com.jd.blockchain.consensus.bftsmart.BftsmartConsensusProvider
``` ```
其中local.parti.id从 **0** 开始编号,且不同Peer节点不能相同;local.parti.privkey为当前节点私钥,即 *config/keys/%.priv* 文件中的内容;其他参数根据实际环境进行配置。 其中local.parti.id从 **0** 开始编号,且不同Peer节点不能相同;local.parti.privkey为当前节点私钥,即 *config/keys/%.priv* 文件中的内容;其他参数根据实际环境进行配置。




##### 2.3.1.2 ledger-init.conf配置
##### 2.3.1.2 ledger.init配置
```config ```config
#账本的种子;一段16进制字符,最长可以包含64个字符;可以用字符“-”分隔,以便更容易读取; #账本的种子;一段16进制字符,最长可以包含64个字符;可以用字符“-”分隔,以便更容易读取;
ledger.seed=932dfe23-fe23232f-283f32fa-dd32aa76-8322ca2f-56236cda-7136b322-cb323ffe ledger.seed=932dfe23-fe23232f-283f32fa-dd32aa76-8322ca2f-56236cda-7136b322-cb323ffe
@@ -176,37 +170,49 @@ ledger.seed=932dfe23-fe23232f-283f32fa-dd32aa76-8322ca2f-56236cda-7136b322-cb323
#账本的描述名称;此属性不参与共识,仅仅在当前参与方的本地节点用于描述用途; #账本的描述名称;此属性不参与共识,仅仅在当前参与方的本地节点用于描述用途;
#ledger.name= #ledger.name=


#声明的账本创建时间;格式为 “yyyy-MM-dd HH:mm:ss.SSSZ”,表示”年-月-日 时:分:秒:毫秒时区“;例如:“2019-10-17 05:21:58.069+0800”,其中,+0800 表示时区是东8区
created-time=2019-10-17 05:21:58.069+0800

#共识服务提供者;必须;
consensus.service-provider=com.jd.blockchain.consensus.bftsmart.BftsmartConsensusProvider

#共识服务的参数配置;必须;
#consensus.conf=/export/app/peer/config/init/bftsmart.config
consensus.conf=bftsmart.config

#密码服务提供者列表,以英文逗点“,”分隔;必须;
crypto.service-providers=com.jd.blockchain.crypto.service.classic.ClassicCryptoService, \
com.jd.blockchain.crypto.service.sm.SMCryptoService

#参与方的个数,后续以 cons_parti.id 分别标识每一个参与方的配置; #参与方的个数,后续以 cons_parti.id 分别标识每一个参与方的配置;
cons_parti.count=4 cons_parti.count=4




#第0个参与方的名称
cons_parti.0.name=parti-0.com
#第0个参与方的公钥文件路径
#第0个参与方的名称
cons_parti.0.name=
#第0个参与方的公钥文件路径
cons_parti.0.pubkey-path= cons_parti.0.pubkey-path=
#第0个参与方的公钥内容(由keygen工具生成),此参数优先于 pubkey-path 参数
cons_parti.0.pubkey=endPsK36koyFr1D245Sa9j83vt6pZUdFBJoJRB3xAsWM6cwhRbna
#第0个参与方的账本初始服务的主机
#第0个参与方的公钥内容(由keygen工具生成);此参数优先于 pubkey-path 参数;
cons_parti.0.pubkey=
#第0个参与方的账本初始服务的主机
cons_parti.0.initializer.host=127.0.0.1 cons_parti.0.initializer.host=127.0.0.1
#第0个参与方的账本初始服务的端口
cons_parti.0.initializer.port=17000
#第0个参与方的账本初始服务是否开启安全连接
#第0个参与方的账本初始服务的端口
cons_parti.0.initializer.port=8800
#第0个参与方的账本初始服务是否开启安全连接
cons_parti.0.initializer.secure=false cons_parti.0.initializer.secure=false



#第1个参与方的名称
cons_parti.1.name=parti-1.com
#第1个参与方的公钥文件路径
#第1个参与方的名称;
cons_parti.1.name=
#第1个参与方的公钥文件路径;
cons_parti.1.pubkey-path= cons_parti.1.pubkey-path=
#第1个参与方的公钥内容(由keygen工具生成),此参数优先于 pubkey-path 参数
cons_parti.1.pubkey=endPsK36sC5JdPCDPDAXUwZtS3sxEmqEhFcC4whayAsTTh8Z6eoZ
#第1个参与方的账本初始服务的主机
#第1个参与方的公钥内容(由keygen工具生成);此参数优先于 pubkey-path 参数;
cons_parti.1.pubkey=
#第1个参与方的账本初始服务的主机
cons_parti.1.initializer.host=127.0.0.1 cons_parti.1.initializer.host=127.0.0.1
#第1个参与方的账本初始服务的端口
cons_parti.1.initializer.port=17010
#第1个参与方的账本初始服务是否开启安全连接
#第1个参与方的账本初始服务的端口
cons_parti.1.initializer.port=8810
#第1个参与方的账本初始服务是否开启安全连接
cons_parti.1.initializer.secure=false cons_parti.1.initializer.secure=false

``` ```
账本初始化过程中,需要其他Peer节点的公钥信息进行验证及保存,因此每个节点都需要获取其他Peer节点的公钥信息至本地。配置中cons_parti.N.*****中的N需按照实际每个参与方定义的序号配置(该配置为local.conf中的local.parti.id)。其他参数根据实际环境进行配置。 账本初始化过程中,需要其他Peer节点的公钥信息进行验证及保存,因此每个节点都需要获取其他Peer节点的公钥信息至本地。配置中cons_parti.N.*****中的N需按照实际每个参与方定义的序号配置(该配置为local.conf中的local.parti.id)。其他参数根据实际环境进行配置。


@@ -214,14 +220,12 @@ cons_parti.1.initializer.secure=false


##### 2.3.1.1 bftsmart.config配置 ##### 2.3.1.1 bftsmart.config配置
```config ```config
system.block.txsize=15

system.block.maxdelay=500

system.server.0.pubkey=endPsK36koyFr1D245Sa9j83vt6pZUdFBJoJRB3xAsWM6cwhRbna
system.server.0.network.host=127.0.0.1 system.server.0.network.host=127.0.0.1
system.server.0.network.port=16000 system.server.0.network.port=16000


system.server.1.network.host=127.0.0.1
system.server.1.network.port=16010

system.servers.num = 4 system.servers.num = 4


system.servers.f = 1 system.servers.f = 1
@@ -231,9 +235,6 @@ system.initial.view = 0,1,2,3
> 注意:上述只是将bftsmart.config文件中主要需要修改的参数显示,以方便进行相关说明,其他参数的修改可参考具体文件中的具体说明 > 注意:上述只是将bftsmart.config文件中主要需要修改的参数显示,以方便进行相关说明,其他参数的修改可参考具体文件中的具体说明


参数具体说明如下: 参数具体说明如下:
+ system.block.txsize:每个区块结块期望含交易数量;
+ system.block.maxdelay:区块结块时最大时延(单位:毫秒),该参数与system.block.txsize符合优先发生原则;
+ system.server.$n.pubkey:第n节点的公钥信息;
+ system.server.$n.network.host:第n个节点的域名; + system.server.$n.network.host:第n个节点的域名;
+ system.server.$n.network.port:第n个节点的共识端口; + system.server.$n.network.port:第n个节点的共识端口;
+ system.servers.num:共识节点总数; + system.servers.num:共识节点总数;
@@ -249,7 +250,7 @@ cd bin
执行命令之后,会在 *config* 目录下生成ledger-binding.conf文件,该文件即账本初始化生成的文件,Peer节点启动时需要依赖该文件。 执行命令之后,会在 *config* 目录下生成ledger-binding.conf文件,该文件即账本初始化生成的文件,Peer节点启动时需要依赖该文件。
> 1)注意:因为JDChain支持多账本形式,若config/ledger-binding.conf文件在初始化之前就存在的话,初始化操作后不会覆盖其中的内容,会以追加的方式写入。若第一次创建账本,建议先将该文件删除再进行初始化! > 1)注意:因为JDChain支持多账本形式,若config/ledger-binding.conf文件在初始化之前就存在的话,初始化操作后不会覆盖其中的内容,会以追加的方式写入。若第一次创建账本,建议先将该文件删除再进行初始化!


> 2)注意:Peer节点会定时检测ledger-binding.conf,有新账本加入时会自动进行更新,不需要重启Peer节点!
> 2)注意:Peer节点会定时检测ledger-binding.conf,有新账本加入时会自动进行更新,不需要重启Peer节点!目前默认时间为封5自动更新,即:每个小时的5/15/25/35/45/55分钟会执行;


账本初始化成功后,每个Peer节点对应的Rocksdb都会写入该账本相关的数据。 账本初始化成功后,每个Peer节点对应的Rocksdb都会写入该账本相关的数据。


@@ -262,9 +263,9 @@ Peer节点启动依赖于 *config* 目录下ledger-binding.conf的配置,该
cd bin cd bin
./startup.sh ./startup.sh
``` ```
> 1)注意:startup.sh命令中可修改启动端口,默认为:-p 17080;
> 1)注意:startup.sh命令中可修改启动端口,默认为:-p 7080;


> 2)注意:Peer节点会与账本中涉及到的参与方进行通信,当通信不成功(例如有节点尚未启动)时,会自动进行重试,因此多个Peer节点启动可不必完全同时进行。
> 2)注意:Peer节点会与账本中涉及到的参与方进行通信,当通信不成功(例如有节点尚未启动)时,会自动进行重试,因此多个Peer节点启动可不必完全同时进行。目前默认设置为重试16次操作,每次间隔时间2秒。


### 2.5 Gateway节点安装 ### 2.5 Gateway节点安装
GateWay(网关)节点可以认为是一个过滤节点,交易的提交及账本的查询都需要通过网关节点与Peer节点进行通信。 GateWay(网关)节点可以认为是一个过滤节点,交易的提交及账本的查询都需要通过网关节点与Peer节点进行通信。
@@ -272,7 +273,7 @@ Gateway程序可独立部署,不需要依赖Peer节点,它的操作环境是


```config ```config
#网关的HTTP服务地址; #网关的HTTP服务地址;
http.host=127.0.0.1
http.host=0.0.0.0
#网关的HTTP服务端口; #网关的HTTP服务端口;
http.port=8081 http.port=8081
#网关的HTTP服务上下文路径,可选; #网关的HTTP服务上下文路径,可选;
@@ -292,15 +293,15 @@ peer.providers=com.jd.blockchain.consensus.bftsmart.BftsmartConsensusProvider
data.retrieval.url=http://192.168.151.39:10001 data.retrieval.url=http://192.168.151.39:10001


#默认公钥的内容(Base58编码数据); #默认公钥的内容(Base58编码数据);
keys.default.pubkey=endPsK36koyFr1D245Sa9j83vt6pZUdFBJoJRB3xAsWM6cwhRbna
keys.default.pubkey=
#默认私钥的路径;在 pk-path 和 pk 之间必须设置其一; #默认私钥的路径;在 pk-path 和 pk 之间必须设置其一;
keys.default.privkey-path= keys.default.privkey-path=
#默认私钥的内容(加密的Base58编码数据);在 pk-path 和 pk 之间必须设置其一; #默认私钥的内容(加密的Base58编码数据);在 pk-path 和 pk 之间必须设置其一;
keys.default.privkey=177gjsj5PHeCpbAtJE7qnbmhuZMHAEKuMsd45zHkv8F8AWBvTBbff8yRKdCyT3kwrmAjSnY
keys.default.privkey=
#默认私钥的解码密码; #默认私钥的解码密码;
keys.default.privkey-password=DYu3G8aGTMBW1WrTw76zxQJQU4DHLw9MLyy7peG4LKkY
keys.default.privkey-password=
``` ```
其中keys.default.%配置是网关的角色配置,目前暂不支持网关自定义角色,因此,网关可选择4个参与方的任何一个作为其配置(主要是密钥对)。
其中keys.default.% 配置是网关的角色配置,目前暂不支持网关自定义角色,因此,网关可选择4个参与方的任何一个作为其配置(主要是密钥对)。
>注意:keys.default.privkey-password填写内容为*2.2章节*中生成的%.pwd文件中的内容! >注意:keys.default.privkey-password填写内容为*2.2章节*中生成的%.pwd文件中的内容!


启动网关节点只需要执行:startup.sh即可,参考命令: 启动网关节点只需要执行:startup.sh即可,参考命令:


+ 248
- 637
source/deployment/deployment-peer/src/main/resources/docs/安装部署.html
File diff suppressed because it is too large
View File


Loading…
Cancel
Save