diff --git a/conf.py b/conf.py index 56d933ba..a430f055 100644 --- a/conf.py +++ b/conf.py @@ -110,7 +110,7 @@ # The short X.Y version. version = '1.4' # The full version, including alpha/beta/rc tags. -release = 'v1.4.0' +release = 'v1.4.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/WeBASE-Console-Suit/index.md b/docs/WeBASE-Console-Suit/index.md index 54949bec..b9db2417 100644 --- a/docs/WeBASE-Console-Suit/index.md +++ b/docs/WeBASE-Console-Suit/index.md @@ -226,7 +226,34 @@ CRUD:CRUD通过在Solidity合约中支持分布式存储预编译合约,可 系统管理目前支持权限管理、系统配置管理、证书管理的功能。 -**权限管理**:支持链权限管理和普通权限(四种)管理:(基于FISCO BCOS 2.0.0 - 2.4.x的权限管理) +**权限管理** + +**基于FISCO BCOS 2.5.0及以上版本的基于角色的权限管理**:支持链委员会管理和运维管理员管理: +- **链委员会管理**:链委员会的修改操作均需要通过多个委员投票完成,链委员拥有投票权,可以增删节点、修改链配置、添加撤销运维、冻结解冻合约、对用户表的写权限控制; + - 修改委员会成员(新增/撤销委员)、修改委员投票阈值、修改委员投票权重值等操作均需要通过投票进行修改; + - 投票阈值为投票生效的阈值,**有效投票权重数/委员总权重数>生效阈值**投票才能生效,阈值为开区间,即:投票权重比例必须大于阈值(不包含等于); + - 每次投票操作,如果是委员投票,则记录操作内容和投票委员,不重复计票; + - 投票设置过期时间,根据块高,blockLimit的10倍(即10000),固定不可改; + - 用户不能同时成为链委员和运维管理员; +- **运维管理**: 运维由链委员直接赋予(无需通过投票赋予),运维可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约; + +> **注:**链委员会为空时,不作链委员会权限限制,所有用户拥有委员权限,可以自由给自身或其他用户添加链委员权限;设置了第一个链委员后,非链委员用户无权限;请妥善保管链委员的私钥! +> +> 运维管理员为空时,所有用户拥有运维权限;同理,设置了第一个运维管理员后,非运维用户无权限; + +FISCO-BCOS基于角色的权限管理机制详情可以参考文档[使用手册-基于角色的权限控制](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html#id2),具体的设计原理可以参考文档 +[系统设计-基于角色的权限控制](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/design/security_control/chain_governance.html) + +链委员会管理: + +![](../../images/WeBASE-Console-Suit/governance_committee.png) + +运维管理员管理: + +![](../../images/WeBASE-Console-Suit/governance_operator.png) + + +**基于FISCO BCOS 2.0.0 - 2.4.x版本的基于表的权限管理**:支持链权限管理和普通权限(四种)管理: - 链权限管理为分配权限的链管理员,可以使用权限分配功能,非链管理员账户无权限分配功能; - 普通权限管理包含四种权限: 部署合约和创建用户表权限, 节点管理权限, CNS管理权限, 系统参数管理权限; @@ -234,7 +261,7 @@ CRUD:CRUD通过在Solidity合约中支持分布式存储预编译合约,可 > > 普通权限管理员为空时,所有用户拥有特定功能,如:节点管理员为空时,所有用户可以管理节点状态,设置了第一个节点管理员后,非节点管理员不可管理节点状态; -FISCO-BCOS权限管理机制详情可以参考文档[FISCO-BCOS权限控制](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html) +FISCO-BCOS基于表的权限管理机制详情可以参考文档[FISCO-BCOS基于表的权限控制](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html) 链权限管理: @@ -377,10 +404,17 @@ FISCO-BCOS证书说明可以参考FISCO-BCOS使用手册的[证书说明](https: ### 账号管理 -账号管理提供管理台登陆账号的管理功能。管理台用户分为两种角色: +账号管理提供管理台登陆账号的管理功能。管理台用户分为三种角色: - 普通用户,只有查看权限; + - 管理员用户,拥有管理平台的读写权限; +- 开发者用户,拥有开发者自身的合约和私钥用户的读写权限,数据概览权限; + + 开发者模式默认关闭。如需开启此功能,可以在WeBASE-Node-Manager配置文件application.yml中修改developerModeEnable为true,然后重启服务。 + + ![](../../images/WeBASE-Console-Suit/developer_mode_enable.png) + 注:此处账号与私钥管理的私钥用户为两种不同的概念,账号用于管理台权限控制,私钥用户为区块链账户。 账号管理: diff --git a/docs/WeBASE-Front/appendix.md b/docs/WeBASE-Front/appendix.md index 4666de3b..9f1f5b3e 100644 --- a/docs/WeBASE-Front/appendix.md +++ b/docs/WeBASE-Front/appendix.md @@ -2,46 +2,45 @@ ## 1. 安装问题 + ### 1.1 Java部署 -此处给出OpenJDK安装简单步骤,供快速查阅。更详细的步骤,请参考[官网](https://openjdk.java.net/install/index.html)。 +#### CentOS环境安装Java + -#### ① 安装包下载 +**注意:CentOS下OpenJDK无法正常工作,需要安装OracleJDK[下载链接](https://www.oracle.com/technetwork/java/javase/downloads/index.html)。** -从[官网](https://jdk.java.net/java-se-ri/11)下载对应版本的java安装包,并解压到服务器相关目录 - -```shell -mkdir /software -tar -zxvf openjdkXXX.tar.gz /software/ ``` +# 创建新的文件夹,安装Java 8或以上的版本,将下载的jdk放在software目录 +# 从Oracle官网(https://www.oracle.com/technetwork/java/javase/downloads/index.html)选择Java 8或以上的版本下载,例如下载jdk-8u201-linux-x64.tar.gz +$ mkdir /software -#### ② 配置环境变量 - -- 修改/etc/profile - -``` -sudo vi /etc/profile -``` +# 解压jdk +$ tar -zxvf jdk-8u201-linux-x64.tar.gz -- 在/etc/profile末尾添加以下信息 +# 配置Java环境,编辑/etc/profile文件 +$ vim /etc/profile -```shell -JAVA_HOME=/software/jdk-11 -PATH=$PATH:$JAVA_HOME/bin -CLASSPATH==.:$JAVA_HOME/lib -export JAVA_HOME CLASSPATH PATH -``` +# 打开以后将下面三句输入到文件里面并保存退出 +export JAVA_HOME=/software/jdk-8u201 #这是一个文件目录,非文件 +export PATH=$JAVA_HOME/bin:$PATH +export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar -- 重载/etc/profile +# 生效profile +$ source /etc/profile -``` -source /etc/profile +# 查询Java版本,出现的版本是自己下载的版本,则安装成功。 +java -version ``` -#### ③ 查看版本 +#### Ubuntu环境安装Java + ``` -java -version + # 安装默认Java版本(Java 8或以上) + sudo apt install -y default-jdk + # 查询Java版本 + java -version ``` ### 1.2 Gradle部署 @@ -152,7 +151,8 @@ FAILURE: Build failed with an exception. nested exception is javax.net.ssl.SSLException: Failed to initialize the client-side SSLContext: Input stream not contain valid certificates. ``` -答:CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点,因此在使用CentOS操作系统时,推荐从[OpenJDK网站](https://jdk.java.net/java-se-ri/11)自行下载。 +答:CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点,因此在使用CentOS操作系统时,推荐使用[OracleJDK](#jdk)。 + - 7:启动报错“Processing bcos message timeout” @@ -163,7 +163,7 @@ org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating ... ``` -答:一些Oracle JDK版本缺少相关包,导致节点连接异常。推荐使用OpenJDK,从[OpenJDK网站](https://jdk.java.net/java-se-ri/11)自行下载。 +答:一些OpenJDK版本缺少相关包,导致节点连接异常。推荐使用[OracleJDK](#jdk)。 - 8:启动失败,日志却没有异常 diff --git a/docs/WeBASE-Front/install.md b/docs/WeBASE-Front/install.md index b13ebf27..c2c86eac 100644 --- a/docs/WeBASE-Front/install.md +++ b/docs/WeBASE-Front/install.md @@ -7,7 +7,7 @@ | Java | JDK8或以上版本 | | FISCO-BCOS | V2.0.x版本 | -**备注:** Java推荐使用[OpenJDK](./appendix.html#java ),建议从[OpenJDK网站](https://jdk.java.net/java-se-ri/11) 自行下载(CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点) +**备注:** Java推荐使用[OracleJDK](https://www.oracle.com/technetwork/java/javase/downloads/index.html),可参考[JDK配置指引](./appendix.html#jdk)(CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点) ### 国密支持 diff --git a/docs/WeBASE-Front/interface.md b/docs/WeBASE-Front/interface.md index af2f7b6f..6be8aef0 100644 --- a/docs/WeBASE-Front/interface.md +++ b/docs/WeBASE-Front/interface.md @@ -3139,6 +3139,9 @@ b、正确发送数据上链返回值信息(交易收据) ## 6. 系统管理接口 +使用FISCO BCOS v2.5.0 与 WeBASE-Front v1.4.1 (及)以上版本将使用预编译合约中的ChainGovernance接口(从本章节[接口6.13](#governance)开始),详情可参考[FISCO BCOS基于角色的权限控制](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html#id2) + + ### 6.1. 查询权限接口 #### 6.1.1 查询权限接口 @@ -3970,7 +3973,7 @@ HTTP POST | 序号 | 输入参数 | 类型 | 可为空 | 备注 | | ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | | 1 | groupId | Int | 否 | 群组编号 | -| 2 | signUserId | String | 否 | WeBASE-Sign签名用户编号 | +| 2 | signUserId | String | 否 | WeBASE-Sign签名用户编号,当`handleType`为`getStatus`或`listManager`时,可不传 | | 3 | contractAddress | String | 否 | 已部署的合约地址 | | 4 | handleType | String | 否 | 操作类型:freeze-冻结;unfreeze-解冻;grantManager-授权;getStatus-查询合约状态;listManager-查询合约权限列表 | | 5 | grantAddress | String | 是 | 授权用户地址,操作类型为grantManager时需传入 | @@ -3999,6 +4002,481 @@ HTTP POST } ``` + +### 6.13. 基于角色的权限管理 + + +使用FISCO BCOS v2.5.0 与 WeBASE-Front v1.4.1 (及)以上版本将使用预编译合约中的ChainGovernance接口(本章节[接口6.13](#governance)),详情可参考[FISCO BCOS基于角色的权限控制](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html#id2) + +包含链治理委员管理、链运维管理等功能 + +### 6.13.1. 查看链治理委员列表 + +#### 接口描述 + +委员的权限包括治理投票、增删节点、冻结解冻合约、冻结解冻账号、修改链配置和增删运维账号。 + +增加委员需要链治理委员会投票,有效票大于阈值才可以生效,且不重复计票 +- 委员默认的投票权重为1,默认投票生效阈值50%,若有两个委员,则需要两个委员都投票增加/撤销的委员权限,`有效票/总票数=2/2=1>0.5`才满足条件。 +- 投票有过期时间,根据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。‘ + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/committee/list** + +#### 调用方法 + +HTTP GET + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | + +***2)入参示例*** + +``` +http://localhost:5002/WeBASE-Front/governance/committee/list?groupId=1 +``` + +#### 响应参数 + +**1)数据格式** + +``` +[ + { + "address": "0xd031e61f6dc4dedd7d77f90128ed33caafbed0af", + "enable_num": "2" + } +] +``` + + +### 6.13.2. 增加链治理委员 + +#### 接口描述 + +委员的权限包括治理投票、增删节点、冻结解冻合约、冻结解冻账号、修改链配置和增删运维账号。 + +增加委员需要链治理委员会投票,有效票大于阈值才可以生效,且不重复计票 +- 委员默认的投票权重为1,默认投票生效阈值50%,若有两个委员,则需要两个委员都投票增加/撤销的委员权限,`有效票/总票数=2/2=1>0.5`才满足条件。 +- 投票有过期时间,根据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。‘ + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/committee** + +#### 调用方法 + +HTTP POST + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | +| 2 | signUserId | String | 否 | WeBASE-Sign签名用户编号 | +| 3 | address | String | 否 | 新的链治理委员地址 + +***2)入参示例*** + +``` +{ + "groupId": 1, + "signUserId": "user1001", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e" +} +``` + +#### 响应参数 + +**1)数据格式** + +透传链上返回结果 +``` +{ + "code":0, + "msg":"success" +} +``` + + +### 6.13.3. 取消链治理委员 + +#### 接口描述 + +委员的权限包括治理投票、增删节点、冻结解冻合约、冻结解冻账号、修改链配置和增删运维账号。 + +增加委员需要链治理委员会投票,有效票大于阈值才可以生效,且不重复计票 +- 委员默认的投票权重为1,默认投票生效阈值50%,若有两个委员,则需要两个委员都投票增加/撤销的委员权限,`有效票/总票数=2/2=1>0.5`才满足条件。 +- 投票有过期时间,根据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。‘ + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/committee** + +#### 调用方法 + +HTTP DELETE + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | +| 2 | signUserId | String | 否 | WeBASE-Sign签名用户编号 | +| 3 | address | String | 否 | 待取消的链治理委员地址 + +***2)入参示例*** + +``` +{ + "groupId": 1, + "signUserId": "user1001", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e" +} +``` + +#### 响应参数 + +**1)数据格式** + +透传链上返回结果 +``` +{ + "code":0, + "msg":"success" +} +``` + + +### 6.13.4. 查看链治理委员投票权重 + +#### 接口描述 + +委员默认的投票权重为1 + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/committee/weight** + +#### 调用方法 + +HTTP GET + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | +| 2 | address | String | 否 | 链治理委员地址 + +***2)入参示例*** + +``` +http://localhost:5002/WeBASE-Front/governance/committee/weight?groupId=1&address=0x009fb217b6d7f010f12e7876d31a738389fecd51 +``` + +#### 响应参数 + +**1)数据格式** + +成功时:直接返回权重值 +``` +2 +``` + +失败时,如查询非委员用户的权重值: + +``` +{ + "code": -52001, + "msg": "address not committee" +} +``` + +### 6.13.5. 更新链治理委员投票权重 + +#### 接口描述 + +委员默认的投票权重为1 + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/committee/weight** + +#### 调用方法 + +HTTP PUT + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | +| 2 | signUserId | String | 否 | WeBASE-Sign签名用户编号 | +| 3 | address | String | 否 | 链治理委员地址 +| 4 | weight | Int | 否 | 权重值 | + +***2)入参示例*** + +``` +{ + "groupId": 1, + "signUserId": "user1001", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e", + "weight": 2 +} +``` + +#### 响应参数 + +**1)数据格式** + +透传链上返回结果 +``` +{ + "code":0, + "msg":"success" +} +``` + + + +### 6.13.6. 查看链投票阈值 + +#### 接口描述 + +阈值默认为50,即票数>50% + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/threshold** + +#### 调用方法 + +HTTP GET + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | + +***2)入参示例*** + +``` +http://localhost:5002/WeBASE-Front/governance/threshold?groupId=1 +``` + +#### 响应参数 + +**1)数据格式** + +直接返回threshold值 +``` +50 +``` + + +### 6.13.7. 更新链投票阈值 + +#### 接口描述 + +阈值默认为50,即票数>50% + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/threshold** + +#### 调用方法 + +HTTP PUT + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | +| 2 | signUserId | String | 否 | WeBASE-Sign签名用户编号 | +| 3 | address | String | 否 | 新的链治理委员地址 +| 4 | threshold | Int | 否 | 群组投票阈值 | + +***2)入参示例*** + +``` +{ + "groupId": 1, + "signUserId": "user1001", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e", + "threshold": 60 +} +``` + +#### 响应参数 + +**1)数据格式** + +透传链上返回结果 +``` +{ + "code":0, + "msg":"success" +} +``` + + +### 6.13.8. 查看运维列表 + +#### 接口描述 + +由链治理委员添加运维账号,运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。 + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/operator/list** + +#### 调用方法 + +HTTP GET + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | + +***2)入参示例*** + +``` +http://localhost:5002/WeBASE-Front/governance/operator/list?groupId=1 +``` + +#### 响应参数 + +**1)数据格式** + +``` +[ + { + "address": "0x304852a7cc6511e62c37b6e189850861e41282b0", + "enable_num": "3" + } +] +``` + + +### 6.13.9. 增加运维接口 + +#### 接口描述 + +由链治理委员添加运维账号,运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。 + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/operator** + +#### 调用方法 + +HTTP POST + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | +| 2 | signUserId | String | 否 | WeBASE-Sign签名用户编号 | +| 3 | address | String | 否 | 新的运维地址 + +***2)入参示例*** + +``` +{ + "groupId": 1, + "signUserId": "user1001", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e" +} +``` + +#### 响应参数 + +**1)数据格式** + +透传链上返回结果 +``` +{ + "code":0, + "msg":"success" +} +``` + +### 6.13.10. 取消运维接口 + +#### 接口描述 + +由链治理委员添加/取消运维账号;运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。 +据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。 + +#### 接口URL + +**http://localhost:5002/WeBASE-Front/governance/operator** + +#### 调用方法 + +HTTP DELETE + +#### 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | groupId | Int | 否 | 群组编号 | +| 2 | signUserId | String | 否 | WeBASE-Sign签名用户编号 | +| 3 | address | String | 否 | 待取消的运维地址 + +***2)入参示例*** + +``` +{ + "groupId": 1, + "signUserId": "user1001", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e" +} +``` + +#### 响应参数 + +**1)数据格式** + +透传链上返回结果 +``` +{ + "code":0, + "msg":"success" +} +``` + ## 7. 链上事件订阅接口 ### 7.1. 获取出块事件的订阅信息列表 @@ -5229,7 +5707,7 @@ b、正确发送数据上链返回值信息(交易收据) ## 11. 附录 ### 1. 返回码信息列表 - + | code | message | 描述 | | ------ | -------------------------------------------- | -------------------------- | @@ -5282,6 +5760,10 @@ b、正确发送数据上链返回值信息(交易收据) | 201042 | There is no sol files in source | solidity文件不存在 | | 201043 | invalid group operate type | 群组操作类型不正确 | | 201044 | invalid data type | 不正确的数据类型 | +| 201045 | encode string can not be empty | 已签名的参数内容不能为空 | +| 201046 | transaction failed | 交易上链失败 | +| 201050 | Fail to parse json | 链上返回值反序列化失败 | +| 201051 | get consensus status fail | 交易上链失败 | | 201101 | groupId cannot be empty | 群组编号不能为空 | | 201102 | tableName cannot be empty | 表名不能为空 | | 201103 | permissionType cannot be empty | 权限类型不能为空 | @@ -5316,11 +5798,9 @@ b、正确发送数据上链返回值信息(交易收据) | 201151 | Unsupported contract param type to encoded | 不支持编码的合约参数类型 | | 201152 | Unsupported contract param type to decoded | 不支持解码的合约参数类型 | | 201153 | unable to create instance of type, check input params | 无法创建该合约参数类型的实例,请检查入参 | - | 201200 | params not fit | 参数不符合要求 | | 201201 | address is invalid | 账户地址不正确 | | 201202 | permission denied, please check chain administrator permission | 权限不足,请检查用户 | - | 201208 | unsupported for this system config key | 不支持设置该系统配置 | | 201209 | provide value by positive integer mode, from 100000 to 2147483647 | 请输入正值或[100000, 2147483647]范围的值 | | 201210 | set system config value fail for params error or permission denied | 设置系统配置失败,请检查权限 | @@ -5349,7 +5829,25 @@ b、正确发送数据上链返回值信息(交易收据) | 201248 | Contract abi invalid, please check abi | 合约ABI格式错误,请检查入参 | | 201255 | contract address already exists | 合约地址已存在 | | 201256 | abi info of this id not exists | abi不存在 | -| 201257 | Abi Id cannot be empty | abi编号不能为空 | +| 201301 | threshold must be greater than zero | 链阈值必须大于0 | +| 201302 | committee weight must be greater than zero | 链委员权重必须大于0 | +| 201303 | chain governance address cannot be blank | 链管理委员/运维地址不能为空 | +| 201501 | web3sdk create key pair fail and return null | sdk创建私钥对失败并返回Null | +| 201502 | pem/p12 manager get key pair error for input params | pem/p12证书获取私钥对失败,检查入参 | +| 201503 | pem/p12 manager get key pair error for bc dependency error | pem/p12证书获取私钥对失败,检查bc依赖包版本 | +| 201504 | sign service return error | 签名服务并返回异常 | +| 201510 | transaction receipt status return error | 交易回执状态码非0x0,交易执行失败 | +| 201511 | contract abi parse json error | 合约ABI转JSON失败 | +| 201512 | call contract error for io exception | 调用合约的交易上链失败 | +| 201513 | get transaction receipt fail for exec | 获取交易回执失败,返回执行错误 | +| 201514 | get transaction receipt fail for time out | 获取交易回执失败,链上链下请求超时 | +| 201515 | transaction receipt fail and parse output fail | 转化交易回执中output输出值失败 | +| 201516 | transaction receipt fail and output is null | 交易回执output为空 | +| 201517 | call contract constant method fail | 合约状态异常,调用合约constant方法失败 | +| 201521 | get list of manager on chain fail | 获取链上管理员列表失败 | +| 201522 | table key length error | 用户表的键值长度大于最大值255 | +| 201523 | crud's param parse json error | CRUD方法的入参转Entry/Condition失败,请检查入参 | +| 201524 | precompiled common transfer to json fail | 预编译错误码转JSON失败 | ### 2. Precompiled Service说明 @@ -5402,4 +5900,25 @@ contract TableFactory { | -51500 | contract name and version already exist | | | -51501 | condition parse error | | | -51502 | condition operation undefined | | - +| -51600 | invalid ciphers | | +| -51700 | group sig failed | | +| -51800 | ring sig failed | | +| -51900 | contract frozen | | +| -51901 | contract available | | +| -51902 | contract repeat authorization | | +| -51903 | invalid contract address | | +| -51904 | table not exist | | +| -51905 | no authorized | | +| -52000 | committee member exist | | +| -52001 | committee member not exist | | +| -52002 | invalid request permission denied | | +| -52003 | invalid threshold | | +| -52004 | operator can't be committee member | | +| -52005 | committee member can't be operator | | +| -52006 | operator exist | | +| -52007 | operator not exist | | +| -52008 | account not exist | | +| -52009 | invalid account address | | +| -52010 | account already available | | +| -52011 | account frozen | | +| -52012 | current value is expected value | | diff --git a/docs/WeBASE-Front/upgrade.md b/docs/WeBASE-Front/upgrade.md index b48b716e..0c6efe27 100644 --- a/docs/WeBASE-Front/upgrade.md +++ b/docs/WeBASE-Front/upgrade.md @@ -2,6 +2,12 @@ WeBASE-Front升级的兼容性说明,请结合[WeBASE-Front Changelog](https://github.com/WeBankFinTech/WeBASE-Front)进行阅读 +#### v1.4.1 + +##### 新增链权限接口与web3接口 +- 新增ChainGovernance接口 +- 新增getBlockHeaderByHash与getBlockHeaderByNumber接口 + #### v1.4.0 ##### 增加版本号接口 diff --git a/docs/WeBASE-Install/developer.md b/docs/WeBASE-Install/developer.md index d273188c..c1095608 100644 --- a/docs/WeBASE-Install/developer.md +++ b/docs/WeBASE-Install/developer.md @@ -17,7 +17,7 @@ 1. 下载安装包 ```shell - wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.0/webase-front.zip + wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.1/webase-front.zip ``` diff --git a/docs/WeBASE-Install/visual_deploy.md b/docs/WeBASE-Install/visual_deploy.md index 01c35be1..6ec562c8 100644 --- a/docs/WeBASE-Install/visual_deploy.md +++ b/docs/WeBASE-Install/visual_deploy.md @@ -11,8 +11,6 @@ 在进行可视化部署之前,请按照部署要求,准备相应的部署环境。 - - #### 系统环境 ##### 硬件配置 @@ -273,7 +271,6 @@ http://{deployIP}:{webPort} - 删除节点时,节点必须处于停止状态; - ### 常见问题 @@ -317,8 +314,8 @@ yum localinstall containerd.io-1.2.13-3.2.el7.x86_64.rpm #### 拉取 Docker 镜像 镜像版本: -- v2.5.0 -- v2.5.0-gm +- v2.6.0 +- v2.6.0-gm **提示:** - 最近的镜像版本,请参考:[https://hub.docker.com/r/fiscoorg/fisco-webase/tags](https://hub.docker.com/r/fiscoorg/fisco-webase/tags) @@ -329,12 +326,12 @@ yum localinstall containerd.io-1.2.13-3.2.el7.x86_64.rpm ```Bash # 检查本地是否有镜像 -docker images -a |grep -i "fiscoorg/fisco-webase" | grep -i v2.5.0 +docker images -a |grep -i "fiscoorg/fisco-webase" | grep -i v2.6.0 # 如果有如下输出,表示本地已有镜像;否则表示本地没有镜像 -fiscoorg/fisco-webase v2.5.0 bf4a26d5d389 5 days ago 631MB +fiscoorg/fisco-webase v2.6.0 bf4a26d5d389 5 days ago 631MB # 如果是国密,版本号会带 -gm -fiscoorg/fisco-webase v2.5.0-gm bf4a26d5d389 5 days ago 631MB +fiscoorg/fisco-webase v2.6.0-gm bf4a26d5d389 5 days ago 631MB ``` * 如果本地没有镜像(如果本地有镜像,跳过) @@ -344,9 +341,9 @@ fiscoorg/fisco-webase v2.5.0-gm bf4a26d5d389 5 days ago 631MB ```Bash # 从 CDN 拉取镜像 tar 文件 # 非国密 - wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.0/docker-fisco-webase.tar + wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.1/docker-fisco-webase.tar # 国密 - wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.0/docker-fisco-webase-gm.tar + wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.1/docker-fisco-webase-gm.tar # 解压镜像 tar 文件 docker load -i docker-fisco-webase.tar @@ -356,14 +353,16 @@ fiscoorg/fisco-webase v2.5.0-gm bf4a26d5d389 5 days ago 631MB ```Bash # 执行 Docker 拉取命令 - docker pull fiscoorg/fisco-webase:v2.5.0 + docker pull fiscoorg/fisco-webase:v2.6.0 + # 国密 + docker pull fiscoorg/fisco-webase:v2.6.0-gm ``` * 压缩镜像到 `tar` 文件 ```Bash # 压缩镜像为 tar 文件 -docker save -o docker-fisco-webase.tar fiscoorg/fisco-webase:v2.5.0 +docker save -o docker-fisco-webase.tar fiscoorg/fisco-webase:v2.6.0 ``` * 发送镜像 `tar` 文件到部署节点的主机 @@ -387,9 +386,9 @@ docker load -i docker-fisco-webase.tar docker images -a |grep -i "fiscoorg/fisco-webase" # 如果有如下输出,表示拉取成功 -fiscoorg/fisco-webase v2.5.0 bf4a26d5d389 5 days ago 631MB +fiscoorg/fisco-webase v2.6.0 bf4a26d5d389 5 days ago 631MB # 如果是国密,版本号会带 -gm -fiscoorg/fisco-webase v2.5.0-gm bf4a26d5d389 5 days ago 631MB +fiscoorg/fisco-webase v2.6.0-gm bf4a26d5d389 5 days ago 631MB ``` #### 手动下载 TASSL diff --git a/docs/WeBASE-Node-Manager/appendix.md b/docs/WeBASE-Node-Manager/appendix.md index 4adbf210..b3cabc04 100644 --- a/docs/WeBASE-Node-Manager/appendix.md +++ b/docs/WeBASE-Node-Manager/appendix.md @@ -1,7 +1,76 @@ ## 附录 -### 1. 问题及方案 -#### 一般问题 + +### 1. 安装问题 + +#### 1.1 Java部署 + + +##### CentOS环境安装Java + + +**注意:CentOS下OpenJDK无法正常工作,需要安装OracleJDK[下载链接](https://www.oracle.com/technetwork/java/javase/downloads/index.html)。** + +``` +# 创建新的文件夹,安装Java 8或以上的版本,将下载的jdk放在software目录 +# 从Oracle官网(https://www.oracle.com/technetwork/java/javase/downloads/index.html)选择Java 8或以上的版本下载,例如下载jdk-8u201-linux-x64.tar.gz +$ mkdir /software + +# 解压jdk +$ tar -zxvf jdk-8u201-linux-x64.tar.gz + +# 配置Java环境,编辑/etc/profile文件 +$ vim /etc/profile + +# 打开以后将下面三句输入到文件里面并保存退出 +export JAVA_HOME=/software/jdk-8u201 #这是一个文件目录,非文件 +export PATH=$JAVA_HOME/bin:$PATH +export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar + +# 生效profile +$ source /etc/profile + +# 查询Java版本,出现的版本是自己下载的版本,则安装成功。 +java -version +``` + +##### Ubuntu环境安装Java + + +``` + # 安装默认Java版本(Java 8或以上) + sudo apt install -y default-jdk + # 查询Java版本 + java -version +``` + +#### 1.2 Gradle部署 + +此处给出简单步骤,供快速查阅。更详细的步骤,请参考[官网](http://www.gradle.org/downloads)。 + +(1)从[官网](http://www.gradle.org/downloads)下载对应版本的Gradle安装包,并解压到相应目录 + +```shell +mkdir /software/ +unzip -d /software/ gradleXXX.zip +``` + +(2)配置环境变量 + +```shell +export GRADLE_HOME=/software/gradle-4.9 +export PATH=$GRADLE_HOME/bin:$PATH +``` + +(3)查看版本 + +``` +gradle -version +``` + + +### 2. 常见问题及方案 +##### 一般问题 * 问:执行shell脚本报下面错误: ``` [app@VM_96_107_centos deployInputParam]$ bash start.sh @@ -16,7 +85,7 @@ dos2unix *.sh ``` -#### 数据库问题 +##### 数据库问题 * 问:服务访问数据库抛出异常: ``` The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. @@ -38,7 +107,7 @@ ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (110) GRANT ALL PRIVILEGES ON *.* TO 'TestUser'@'%' IDENTIFIED BY '此处为TestUser的密码’' WITH GRANT OPTION; ``` -#### WeBASE-Node-Manager服务搭建问题 +##### WeBASE-Node-Manager服务搭建问题 * 问:执行构建命令`gradle build -x test`抛出异常: ``` A problem occurred evaluating root project 'WeBASE-Node-Manager'. @@ -48,7 +117,7 @@ Could not find method compileOnly() for arguments [[org.projectlombok:lombok:1.1 方法1、已安装的Gradle版本过低,升级Gradle版本到4.10以上即可。 方法2、直接使用命令:`./gradlew build -x test`,如果提示gradlew为非可执行文件,执行`chmod +x ./gradlew`再次执行build操作即可。 -#### 启动问题 +##### 启动问题 * 问:启动Node-Manager进程后,后台日志显示`not found any front`: @@ -114,7 +183,7 @@ Could not find method compileOnly() for arguments [[org.projectlombok:lombok:1.1 | scheduler.awaitTerminationSeconds | 600 | 定时任务的线程等待超时时长(秒) | | scheduler.waitForTasksToCompleteOnShutdown | true | 定时任务完成后再停止线程 | -### 3. 升级兼容性 +#### 3. 升级兼容性 请查看[升级说明](upgrade.md) diff --git a/docs/WeBASE-Node-Manager/install.md b/docs/WeBASE-Node-Manager/install.md index 7fb3d70c..ed81c7f4 100644 --- a/docs/WeBASE-Node-Manager/install.md +++ b/docs/WeBASE-Node-Manager/install.md @@ -11,8 +11,8 @@ ## 2. 注意事项 -* Java推荐使用[OpenJDK](https://openjdk.java.net/ ),建议从OpenJDK网站自行下载(CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点)[下载地址](https://jdk.java.net/java-se-ri/11) [安装指南](https://openjdk.java.net/install/index.html) -* 在服务搭建的过程中,如碰到问题,请查看 [常见问题解答](./install_FAQ.md) +* Java推荐使用[OracleJDK](https://www.oracle.com/technetwork/java/javase/downloads/index.html),[JDK配置指引](./appendix.html#jdk) +* 在服务搭建的过程中,如碰到问题,请查看 [常见问题解答](./install_FAQ.html) * 安全温馨提示: 强烈建议设置复杂的数据库登录密码,且严格控制数据操作的权限和网络策略 **通过WeBASE-Sign私钥管理** diff --git a/docs/WeBASE-Node-Manager/interface.md b/docs/WeBASE-Node-Manager/interface.md index c8b43dff..9bdfd9c1 100644 --- a/docs/WeBASE-Node-Manager/interface.md +++ b/docs/WeBASE-Node-Manager/interface.md @@ -189,10 +189,10 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/front/find } ``` - ### 1.3 删除前置信息 #### 1.3.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/front/{frontId}** * 请求方式:DELETE @@ -203,9 +203,9 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/front/find ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | frontId | int | 否 | 前置编号 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | -------- | ---- | ------ | -------- | +| 1 | frontId | int | 否 | 前置编号 | ***2)入参示例*** @@ -219,15 +219,74 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/front/500001 ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | data | object | 是 | 返回信息实体(空) | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | -------- | ------ | ---- | -------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | data | object | 是 | 返回信息实体(空) | + + +***2)出参示例*** + +* 成功: + +``` +{ + "code": 0, + "data": {}, + "message": "Success" +} +``` + +* 失败: + +``` +{ + "code": 102000, + "message": "system exception", + "data": {} +} +``` + +### 1.4 刷新前置信息 + +#### 1.3.1 传输协议规范 + +* 网络传输协议:使用HTTP协议 +* 请求地址:**/front/refresh** +* 请求方式:GET +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 1.3.2 请求参数 + +***1)入参表*** + +无 + + +***2)入参示例*** + +``` +http://127.0.0.1:5001/WeBASE-Node-Manager/front/refresh +``` + + +#### 1.3.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | -------- | ------ | ---- | -------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | data | object | 是 | 返回信息实体(空) | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -237,6 +296,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/front/500001 ``` * 失败: + ``` { "code": 102000, @@ -1258,11 +1318,11 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/block/blockByNumber/1/11 ## 5 合约管理模块 - ### 5.1 查询合约列表 #### 5.1.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/contract/contractList/{groupId}/{pageNumber}/{pageSize}** * 请求方式:POST @@ -1273,14 +1333,15 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/block/blockByNumber/1/11 ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | groupId | int | 否 | 群组id | -| 2 | contractName | String | 否 | 合约名 | -| 3 | contractAddress | String | 否 | 合约地址 | -| 4 | pageSize | int | 否 | 每页记录数 | -| 5 | pageNumber | int | 否 | 当前页码 | -| 6 | contractStatus | int | 否 | 1未部署,2已部署 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ---------------- | +| 1 | groupId | int | 否 | 群组id | +| 2 | contractName | String | 是 | 合约名 | +| 3 | contractAddress | String | 是 | 合约地址 | +| 4 | pageSize | int | 否 | 每页记录数 | +| 5 | pageNumber | int | 否 | 当前页码 | +| 6 | contractStatus | int | 是 | 1未部署,2已部署 | +| 7 | account | String | 是 | 关联账户 | ***2)入参示例*** @@ -1288,36 +1349,43 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/block/blockByNumber/1/11 http://127.0.0.1:5001/WeBASE-Node-Manager/contract/contractList ``` +``` +{"groupId":"1","pageNumber":1,"pageSize":500} +``` + #### 5.1.3 返回参数 ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | totalCount | Int | 否 | 总记录数 | -| 4 | data | List | 是 | 列表 | -| 5.1 | | Object | | 返回信息实体 | -| 5.1.1 | contractId | int | 否 | 合约编号 | -| 5.1.2 | contractPath | String | 否 | 合约所在目录 | -| 5.1.3 | contractName | String | 否 | 合约名称 | -| 5.1.4 | groupId | Int | 否 | 所属群组编号 | -| 5.1.5 | contractStatus | int | 否 | 1未部署,2已部署 | -| 5.1.6 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | -| 5.1.7 | contractSource | String | 否 | 合约源码base64 | -| 5.1.8 | contractAbi | String | 是 | 合约编译后生成的abi文件内容 | -| 5.1.9 | contractBin | String | 是 | 合约编译后生成的bin,可用于交易解析 | -| 5.1.10 | bytecodeBin | String | 是 | 合约编译后生成的bytecodeBin,可用于合约部署 | -| 5.1.11 | contractAddress | String | 是 | 合约地址 | -| 5.1.12 | deployTime | LocalDateTime | 是 | 部署时间 | -| 5.1.13 | contractVersion | String | 否 | 合约版本(会去除该字段) | -| 5.1.14 | description | String | 是 | 备注 | -| 5.1.15 | createTime | LocalDateTime | 否 | 创建时间 | -| 5.1.16 | modifyTime | LocalDateTime | 是 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ------ | --------------- | ------------- | ---- | ------------------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | totalCount | Int | 否 | 总记录数 | +| 4 | data | List | 是 | 列表 | +| 5.1 | | Object | | 返回信息实体 | +| 5.1.1 | contractId | int | 否 | 合约编号 | +| 5.1.2 | contractPath | String | 否 | 合约所在目录 | +| 5.1.3 | contractName | String | 否 | 合约名称 | +| 5.1.4 | groupId | Int | 否 | 所属群组编号 | +| 5.1.5 | contractStatus | int | 否 | 1未部署,2已部署 | +| 5.1.6 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | +| 5.1.7 | contractSource | String | 否 | 合约源码base64 | +| 5.1.8 | contractAbi | String | 是 | 合约编译后生成的abi文件内容 | +| 5.1.9 | contractBin | String | 是 | 合约编译后生成的bin,可用于交易解析 | +| 5.1.10 | bytecodeBin | String | 是 | 合约编译后生成的bytecodeBin,可用于合约部署 | +| 5.1.11 | contractAddress | String | 是 | 合约地址 | +| 5.1.12 | deployTime | LocalDateTime | 是 | 部署时间 | +| 5.1.13 | contractVersion | String | 否 | 合约版本(会去除该字段) | +| 5.1.14 | description | String | 是 | 备注 | +| 5.1.15 | account | String | 是 | 关联账户 | +| 5.1.16 | createTime | LocalDateTime | 否 | 创建时间 | +| 5.1.17 | modifyTime | LocalDateTime | 是 | 修改时间 | + ***2)出参示例*** * 成功: + ``` { "code": 0, @@ -1337,6 +1405,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/contractList "bytecodeBin": "60806040526004361061004c576000398de7e4ddf5fdc9ccbcfd44565fed695cd960b0029", "deployTime": "2019-06-11 18:11:33", "description": null, + "account": "admin", "createTime": "2019-06-05 16:40:40", "modifyTime": "2019-06-11 18:11:33" } @@ -1346,6 +1415,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/contractList ``` * 失败: + ``` { "code": 102000, @@ -1359,6 +1429,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/contractList #### 5.2.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/contract/{contractId}** * 请求方式:GET @@ -1368,10 +1439,10 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/contractList ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | groupId | int | 否 | 群组id | -| 2 | contractId | int | 否 | 合约编号 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ---------- | ---- | ------ | -------- | +| 1 | groupId | int | 否 | 群组id | +| 2 | contractId | int | 否 | 合约编号 | ***2)入参示例*** @@ -1384,31 +1455,34 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/200001 ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | | Object | | 返回信息实体 | -| 3.1 | contractId | int | 否 | 合约编号 | -| 3.2 | contractPath | String | 否 | 合约所在目录 | -| 3.3 | contractName | String | 否 | 合约名称 | -| 3.4 | groupId | Int | 否 | 所属群组编号 | -| 3.5 | contractStatus | int | 否 | 1未部署,2已部署 | -| 3.6 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | -| 3.7 | contractSource | String | 否 | 合约源码 | -| 3.8 | contractAbi | String | 是 | 编译合约生成的abi文件内容 | -| 3.9 | contractBin | String | 是 | 合约编译的runtime-bytecode(runtime-bin),用于交易解析| -| 3.10 | bytecodeBin | String | 是 | 合约编译的bytecode(bin),用于部署合约 | -| 3.11 | contractAddress | String | 是 | 合约地址 | -| 3.12 | deployTime | LocalDateTime | 是 | 部署时间 | -| 3.13 | contractVersion | String | 否 | 合约版本(会去除该字段) | -| 3.14 | description | String | 是 | 备注 | -| 3.15 | createTime | LocalDateTime | 否 | 创建时间 | -| 3.16 | modifyTime | LocalDateTime | 是 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | --------------- | ------------- | ---- | ----------------------------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | | Object | | 返回信息实体 | +| 3.1 | contractId | int | 否 | 合约编号 | +| 3.2 | contractPath | String | 否 | 合约所在目录 | +| 3.3 | contractName | String | 否 | 合约名称 | +| 3.4 | groupId | Int | 否 | 所属群组编号 | +| 3.5 | contractStatus | int | 否 | 1未部署,2已部署 | +| 3.6 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | +| 3.7 | contractSource | String | 否 | 合约源码 | +| 3.8 | contractAbi | String | 是 | 编译合约生成的abi文件内容 | +| 3.9 | contractBin | String | 是 | 合约编译的runtime-bytecode(runtime-bin),用于交易解析 | +| 3.10 | bytecodeBin | String | 是 | 合约编译的bytecode(bin),用于部署合约 | +| 3.11 | contractAddress | String | 是 | 合约地址 | +| 3.12 | deployTime | LocalDateTime | 是 | 部署时间 | +| 3.13 | contractVersion | String | 否 | 合约版本(会去除该字段) | +| 3.14 | description | String | 是 | 备注 | +| 3.15 | account | String | 是 | 关联账户 | +| 3.16 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.17 | modifyTime | LocalDateTime | 是 | 修改时间 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -1427,6 +1501,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/200001 "contractBin": "608060405234801561001057600080004d4c", "deployTime": "2019-06-11 18:11:33", "description": null, + "account": "admin", "createTime": "2019-06-05 16:40:40", "modifyTime": "2019-06-11 18:11:33" } @@ -1434,6 +1509,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/200001 ``` * 失败: + ``` { "code": 102000, @@ -1455,6 +1531,7 @@ constructor(bytes b,address[] a) -> ["0x1a",["0x7939E26070BE44E6c4Fc759Ce55C6C8b #### 5.3.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/contract/deploy** * 请求方式:POST @@ -1465,18 +1542,19 @@ constructor(bytes b,address[] a) -> ["0x1a",["0x7939E26070BE44E6c4Fc759Ce55C6C8b ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | groupId | Int | 否 | 所属群组编号 | -| 2 | contractName | String | 否 | 合约名称 | -| 3 | contractSource | String | 否 | 合约源码 | -| 4 | contractAbi | String | 否 | 编译合约生成的abi文件内容 | -| 5 | contractBin | String | 否 | 合约编译的runtime-bytecode(runtime-bin),用于交易解析 | -| 6 | bytecodeBin | String | 否 | 合约编译的bytecode(bin),用于部署合约 | -| 7 | contractId | String | 否 | 合约名称 | -| 8 | contractPath | String | 否 | 合约所在目录 | -| 9 | user | String | 否 | 私钥用户的地址 | -| 10 | constructorParams | List | 是 | 构造函数入参 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ----------------- | ------ | ------ | ----------------------------------------------------- | +| 1 | groupId | Int | 否 | 所属群组编号 | +| 2 | contractName | String | 否 | 合约名称 | +| 3 | contractSource | String | 否 | 合约源码 | +| 4 | contractAbi | String | 否 | 编译合约生成的abi文件内容 | +| 5 | contractBin | String | 否 | 合约编译的runtime-bytecode(runtime-bin),用于交易解析 | +| 6 | bytecodeBin | String | 否 | 合约编译的bytecode(bin),用于部署合约 | +| 7 | contractId | String | 否 | 合约名称 | +| 8 | contractPath | String | 否 | 合约所在目录 | +| 9 | user | String | 否 | 私钥用户的地址 | +| 10 | account | String | 是 | 关联账户 | +| 11 | constructorParams | List | 是 | 构造函数入参 | ***2)入参示例*** @@ -1493,6 +1571,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/deploy "contractAbi": "[]", "contractSource": "cHJhZ21hIHNvbGlkaXR5IF4wLICAJbmFtZSA9IG47CiAgICB9Cn0=", "user": "0x2db346f9d24324a4b0eac7fb7f3379a2422704db", + "account": "admin", "contractName": "HeHe", "contractId": 200008, "contractPath": "Hi", @@ -1504,31 +1583,34 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/deploy ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | | Object | | 返回信息实体 | -| 3.1 | contractId | int | 否 | 合约编号 | -| 3.2 | contractPath | String | 否 | 合约所在目录 | -| 3.3 | contractName | String | 否 | 合约名称 | -| 3.4 | groupId | Int | 否 | 所属群组编号 | -| 3.5 | contractStatus | int | 否 | 1未部署,2已部署 | -| 3.6 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | -| 3.7 | contractSource | String | 否 | 合约源码 | -| 3.8 | contractAbi | String | 是 | 编译合约生成的abi文件内容 | -| 3.9 | contractBin | String | 是 | 合约编译的runtime-bytecode(runtime-bin),用于交易解析| -| 3.10 | bytecodeBin | String | 是 | 合约编译的bytecode(bin),用于部署合约 | -| 3.11 | contractAddress | String | 是 | 合约地址 | -| 3.12 | deployTime | LocalDateTime | 是 | 部署时间 | -| 3.13 | contractVersion | String | 否 | 合约版本(会去除该字段) | -| 3.14 | description | String | 是 | 备注 | -| 3.15 | createTime | LocalDateTime | 否 | 创建时间 | -| 3.16 | modifyTime | LocalDateTime | 是 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | --------------- | ------------- | ---- | ----------------------------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | | Object | | 返回信息实体 | +| 3.1 | contractId | int | 否 | 合约编号 | +| 3.2 | contractPath | String | 否 | 合约所在目录 | +| 3.3 | contractName | String | 否 | 合约名称 | +| 3.4 | groupId | Int | 否 | 所属群组编号 | +| 3.5 | contractStatus | int | 否 | 1未部署,2已部署 | +| 3.6 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | +| 3.7 | contractSource | String | 否 | 合约源码 | +| 3.8 | contractAbi | String | 是 | 编译合约生成的abi文件内容 | +| 3.9 | contractBin | String | 是 | 合约编译的runtime-bytecode(runtime-bin),用于交易解析 | +| 3.10 | bytecodeBin | String | 是 | 合约编译的bytecode(bin),用于部署合约 | +| 3.11 | contractAddress | String | 是 | 合约地址 | +| 3.12 | deployTime | LocalDateTime | 是 | 部署时间 | +| 3.13 | contractVersion | String | 否 | 合约版本(会去除该字段) | +| 3.14 | description | String | 是 | 备注 | +| 3.15 | account | String | 是 | 关联账户 | +| 3.16 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.17 | modifyTime | LocalDateTime | 是 | 修改时间 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -1548,6 +1630,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/deploy "contractAddress": "0xa2ea2280b3a08a3ae2e1785dff09561e13915fb2", "deployTime": "2019-06-11 18:58:33", "description": null, + "account": "admin", "createTime": null, "modifyTime": null } @@ -1555,6 +1638,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/deploy ``` * 失败: + ``` { "code": 102000, @@ -1568,6 +1652,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/deploy 方法入参(funcParam)为JSON数组,多个参数以逗号分隔(参数为数组时同理),示例: + ``` function set(string s) -> ["aa,bb\"cc"] // 双引号要转义 function set(uint n,bool b) -> [1,true] @@ -1576,6 +1661,7 @@ function set(bytes b,address[] a) -> ["0x1a",["0x7939E26070BE44E6c4Fc759Ce55C6C8 #### 5.4.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/contract/transaction** * 请求方式:POST @@ -1587,16 +1673,16 @@ function set(bytes b,address[] a) -> ["0x1a",["0x7939E26070BE44E6c4Fc759Ce55C6C8 ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | groupId | Int | 否 | 所属群组编号 | -| 2 | user | String | 否 | 私钥用户的地址 | -| 3 | contractName | String | 否 | 合约名称 | -| 4 | contractId | Int | 否 | 合约编号 | -| 5 | funcName | String | 否 | 合约方法名 | -| 6 | contractAddress | String | 是 | 合约地址 | -| 7 | funcParam | List | 是 | 合约方法入参 | -| 8 | contractAbi | List | 否 | 合约abi/合约单个函数的abi | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | ------------------------- | +| 1 | groupId | Int | 否 | 所属群组编号 | +| 2 | user | String | 否 | 私钥用户的地址 | +| 3 | contractName | String | 否 | 合约名称 | +| 4 | contractId | Int | 否 | 合约编号 | +| 5 | funcName | String | 否 | 合约方法名 | +| 6 | contractAddress | String | 是 | 合约地址 | +| 7 | funcParam | List | 是 | 合约方法入参 | +| 8 | contractAbi | List | 否 | 合约abi/合约单个函数的abi | ***2)入参示例*** @@ -1622,15 +1708,17 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/transaction ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | data | object | 是 | 返回信息实体(空) | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | -------- | ------ | ---- | -------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | data | object | 是 | 返回信息实体(空) | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -1640,6 +1728,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/transaction ``` * 失败: + ``` { "code": 102000, @@ -1653,6 +1742,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/transaction #### 5.5.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址: **/contract/findByPartOfBytecodeBin** * 请求方式:GET @@ -1662,10 +1752,10 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/transaction ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | groupId | int | 否 | 所属群组编号 | -| 2 | partOfBytecodeBin | String | 否 | 包含合约bytecodeBin的的字符串 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ----------------- | ------ | ------ | ----------------------------- | +| 1 | groupId | int | 否 | 所属群组编号 | +| 2 | partOfBytecodeBin | String | 否 | 包含合约bytecodeBin的的字符串 | ***2)入参示例*** @@ -1685,29 +1775,32 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findByPartOfBytecodeBin ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | | Object | | 返回信息实体 | -| 3.1 | contractId | int | 否 | 合约编号 | -| 3.2 | contractName | String | 否 | 合约名称 | -| 3.3 | groupId | Int | 否 | 所属群组编号 | -| 3.4 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | -| 3.5 | contractSource | String | 否 | 合约源码 | -| 3.6 | contractAbi | String | 是 | 编译合约生成的abi文件内容 | -| 3.7 | contractBin | String | 是 | 合约编译的runtime-bytecode(runtime-bin),用于交易解析| -| 3.8 | bytecodeBin | String | 是 | 合约编译的bytecode(bin),用于部署合约 | -| 3.9 | contractAddress | String | 是 | 合约地址 | -| 3.10 | deployTime | LocalDateTime | 是 | 部署时间 | -| 3.11 | contractVersion | String | 否 | 合约版本 | -| 3.12 | description | String | 是 | 备注 | -| 3.13 | createTime | LocalDateTime | 否 | 创建时间 | -| 3.14 | modifyTime | LocalDateTime | 是 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | --------------- | ------------- | ---- | ----------------------------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | | Object | | 返回信息实体 | +| 3.1 | contractId | int | 否 | 合约编号 | +| 3.2 | contractName | String | 否 | 合约名称 | +| 3.3 | groupId | Int | 否 | 所属群组编号 | +| 3.4 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | +| 3.5 | contractSource | String | 否 | 合约源码 | +| 3.6 | contractAbi | String | 是 | 编译合约生成的abi文件内容 | +| 3.7 | contractBin | String | 是 | 合约编译的runtime-bytecode(runtime-bin),用于交易解析 | +| 3.8 | bytecodeBin | String | 是 | 合约编译的bytecode(bin),用于部署合约 | +| 3.9 | contractAddress | String | 是 | 合约地址 | +| 3.10 | deployTime | LocalDateTime | 是 | 部署时间 | +| 3.11 | contractVersion | String | 否 | 合约版本 | +| 3.12 | description | String | 是 | 备注 | +| 3.13 | account | String | 是 | 关联账户 | +| 3.14 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.15 | modifyTime | LocalDateTime | 是 | 修改时间 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -1726,6 +1819,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findByPartOfBytecodeBin "deployTime": null, "contractVersion": "v6.0", "description": null, + "account": "admin", "createTime": "2019-04-15 21:14:40", "modifyTime": "2019-04-15 21:14:40" } @@ -1733,6 +1827,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findByPartOfBytecodeBin ``` * 失败: + ``` { "code": 102000, @@ -1744,31 +1839,29 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findByPartOfBytecodeBin ### 5.6. 保存合约接口 #### 5.6.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/contract/save** * 请求方式:POST * 请求头:Content-type: application/json * 返回格式:JSON - - #### 5.6.2 请求参数 ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | groupId | int | 否 | 所属群组编号 | -| 2 | contractId | int | 是 | 合约编号,传入contractId表示更新,否则新增 | -| 3 | contractName | String | 否 | 合约名称 | -| 4 | contractPath | String | 否 | 合约所在目录 | -| 5 | contractSource | String | 是 | 合约源码的base64 | -| 6 | contractAbi | String | 是 | 合约编译后生成的abi文件内容 | -| 7 | contractBin | String | 是 | 合约编译后生成的bin,可用于交易解析 | -| 8 | bytecodeBin | String | 是 | 合约编译后生成的bytecodeBin,可用于合约部署 | - - +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | -------------- | ------ | ------ | ------------------------------------------- | +| 1 | groupId | int | 否 | 所属群组编号 | +| 2 | contractId | int | 是 | 合约编号,传入contractId表示更新,否则新增 | +| 3 | contractName | String | 否 | 合约名称 | +| 4 | contractPath | String | 否 | 合约所在目录 | +| 5 | contractSource | String | 是 | 合约源码的base64 | +| 6 | contractAbi | String | 是 | 合约编译后生成的abi文件内容 | +| 7 | contractBin | String | 是 | 合约编译后生成的bin,可用于交易解析 | +| 8 | bytecodeBin | String | 是 | 合约编译后生成的bytecodeBin,可用于合约部署 | +| 9 | account | String | 是 | 关联账户,新建时不能为空 | ***2)入参示例*** @@ -1782,7 +1875,8 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findByPartOfBytecodeBin "contractAbi": “[]” "contractBin": "60806040526004361061004c576000357c0100000000000000000000000029", "bytecodeBin": "6080604052348015610010572269b80029", - "contractId": 1 + "contractId": 1, + "account": "admin" } ``` @@ -1790,33 +1884,34 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findByPartOfBytecodeBin ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | | Object | | 返回信息实体 | -| 3.1 | contractId | int | 否 | 合约编号 | -| 3.2 | contractPath | String | 否 | 合约所在目录 | -| 3.3 | contractName | String | 否 | 合约名称 | -| 3.4 | groupId | Int | 否 | 所属群组编号 | -| 3.5 | contractStatus | int | 否 | 1未部署,2已部署 | -| 3.6 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | -| 3.7 | contractSource | String | 否 | 合约源码base64 | -| 3.8 | contractAbi | String | 是 | 合约编译后生成的abi文件内容 | -| 3.9 | contractBin | String | 是 | 合约编译后生成的bin,可用于交易解析 | -| 3.10 | bytecodeBin | String | 是 | 合约编译后生成的bytecodeBin,可用于合约部署 | -| 3.11 | contractAddress | String | 是 | 合约地址 | -| 3.12 | deployTime | LocalDateTime | 是 | 部署时间 | -| 3.13 | contractVersion | String | 否 | 合约版本(会去除该字段) | -| 3.14 | description | String | 是 | 备注 | -| 3.15 | createTime | LocalDateTime | 否 | 创建时间 | -| 3.16 | modifyTime | LocalDateTime | 是 | 修改时间 - +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | --------------- | ------------- | ---- | ------------------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | | Object | | 返回信息实体 | +| 3.1 | contractId | int | 否 | 合约编号 | +| 3.2 | contractPath | String | 否 | 合约所在目录 | +| 3.3 | contractName | String | 否 | 合约名称 | +| 3.4 | groupId | Int | 否 | 所属群组编号 | +| 3.5 | contractStatus | int | 否 | 1未部署,2已部署 | +| 3.6 | contractType | Int | 否 | 合约类型(0-普通合约,1-系统合约) | +| 3.7 | contractSource | String | 否 | 合约源码base64 | +| 3.8 | contractAbi | String | 是 | 合约编译后生成的abi文件内容 | +| 3.9 | contractBin | String | 是 | 合约编译后生成的bin,可用于交易解析 | +| 3.10 | bytecodeBin | String | 是 | 合约编译后生成的bytecodeBin,可用于合约部署 | +| 3.11 | contractAddress | String | 是 | 合约地址 | +| 3.12 | deployTime | LocalDateTime | 是 | 部署时间 | +| 3.13 | contractVersion | String | 否 | 合约版本(会去除该字段) | +| 3.14 | description | String | 是 | 备注 | +| 3.15 | account | String | 是 | 关联账户 | +| 3.16 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.17 | modifyTime | LocalDateTime | 是 | 修改时间 | ### 5.7 获取Abi信息 #### 5.7.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址: **/abi/{abiId}** * 请求方式:GET @@ -1826,9 +1921,9 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/contract/findByPartOfBytecodeBin ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | abiId | Long | 否 | abi编号 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | -------- | ---- | ------ | ------- | +| 1 | abiId | Long | 否 | abi编号 | ***2)入参示例*** @@ -1841,23 +1936,26 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/1 ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | | Object | | 返回信息实体 | -| 3.1 | abiId | int | 否 | 合约编号 | -| 3.2 | contractName | String | 否 | 合约名称 | -| 3.3 | groupId | Int | 否 | 所属群组编号 | -| 3.4 | contractAddress | String | 否 | 合约地址 | -| 3.5 | contractAbi | String | 是 | 导入的abi文件内容 | -| 3.6 | contractBin | String | 是 | 合约runtime-bytecode(runtime-bin)| -| 3.7 | createTime | LocalDateTime | 否 | 创建时间 | -| 3.8 | modifyTime | LocalDateTime | 是 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | --------------- | ------------- | ---- | --------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | | Object | | 返回信息实体 | +| 3.1 | abiId | int | 否 | 合约编号 | +| 3.2 | contractName | String | 否 | 合约名称 | +| 3.3 | groupId | Int | 否 | 所属群组编号 | +| 3.4 | contractAddress | String | 否 | 合约地址 | +| 3.5 | contractAbi | String | 是 | 导入的abi文件内容 | +| 3.6 | contractBin | String | 是 | 合约runtime-bytecode(runtime-bin) | +| 3.7 | account | String | 否 | 所属账号 | +| 3.8 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.9 | modifyTime | LocalDateTime | 是 | 修改时间 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -1869,6 +1967,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/1 "contractAddress": "0x3214227e87bccca63893317febadd0b51ade735e", "contractAbi": "[{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"setSender\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"name\",\"type\":\"string\"}],\"name\":\"SetName\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"uint256[2]\"}],\"name\":\"EventList\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SetSender\",\"type\":\"event\"}]", "contractBin": "608060405260043610610057576000357...", + "account": "admin", "createTime": "2020-05-18 10:59:02", "modifyTime": "2020-05-18 10:59:02" } @@ -1880,8 +1979,9 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/1 #### 5.8.1 传输协议规范 + * 网络传输协议:使用HTTP协议 -* 请求地址: **/abi/list/{groupId}/{pageNumber}/{pageSize}** +* 请求地址: **/abi/list/{groupId}/{pageNumber}/{pageSize}?account={account}** * 请求方式:GET * 返回格式:JSON @@ -1889,17 +1989,18 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/1 ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | groupId | int | 否 | 群组编号 | -| 2 | pageNumber | int | 否 | 页码,从1开始 | -| 3 | pageSize | int | 否 | 页大小 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ---------- | ------ | ------ | ------------- | +| 1 | groupId | int | 否 | 群组编号 | +| 2 | pageNumber | int | 否 | 页码,从1开始 | +| 3 | pageSize | int | 否 | 页大小 | +| 4 | account | String | 是 | 所属账号 | ***2)入参示例*** ``` -http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 +http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5?account= ``` @@ -1907,23 +2008,26 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | | Object | | 返回信息实体 | -| 3.1 | abiId | int | 否 | 合约编号 | -| 3.2 | contractName | String | 否 | 合约名称 | -| 3.3 | groupId | Int | 否 | 所属群组编号 | -| 3.4 | contractAddress | String | 否 | 合约地址 | -| 3.5 | contractAbi | String | 是 | 导入的abi文件内容 | -| 3.6 | contractBin | String | 是 | 合约runtime-bytecode(runtime-bin)| -| 3.7 | createTime | LocalDateTime | 否 | 创建时间 | -| 3.8 | modifyTime | LocalDateTime | 是 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | --------------- | ------------- | ---- | --------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | | Object | | 返回信息实体 | +| 3.1 | abiId | int | 否 | 合约编号 | +| 3.2 | contractName | String | 否 | 合约名称 | +| 3.3 | groupId | Int | 否 | 所属群组编号 | +| 3.4 | contractAddress | String | 否 | 合约地址 | +| 3.5 | contractAbi | String | 是 | 导入的abi文件内容 | +| 3.6 | contractBin | String | 是 | 合约runtime-bytecode(runtime-bin) | +| 3.7 | account | String | 否 | 所属账号 | +| 3.8 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.9 | modifyTime | LocalDateTime | 是 | 修改时间 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -1932,6 +2036,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 { "abiId": 1, "groupId": 1, + "account": "admin", "contractName": "TTT", "contractAddress": "0x3214227e87bccca63893317febadd0b51ade735e", "contractAbi": "[{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"n\",\"type\":\"string\"}],\"name\":\"setSender\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"name\",\"type\":\"string\"}],\"name\":\"SetName\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"\",\"type\":\"uint256[2]\"}],\"name\":\"EventList\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"SetSender\",\"type\":\"event\"}]", @@ -1950,6 +2055,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 > 将其他平台已部署的合约导入到本平台进行管理 #### 5.9.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/abi** * 请求方式:POST @@ -1961,14 +2067,13 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | groupId | int | 否 | 所属群组编号 | -| 2 | contractAddress | String | 否 | 合约地址 | -| 3 | contractName | String | 否 | 合约名称 | -| 4 | contractAbi | String | 否 | 合约编译后生成的abi文件内容 | - - +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | --------------------------- | +| 1 | groupId | int | 否 | 所属群组编号 | +| 2 | contractAddress | String | 否 | 合约地址 | +| 3 | contractName | String | 否 | 合约名称 | +| 4 | contractAbi | String | 否 | 合约编译后生成的abi文件内容 | +| 5 | account | String | 否 | 所属账号 | ***2)入参示例*** @@ -1976,6 +2081,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 ``` { "groupId": 1, + "account": "admin", "contractAddress": "0x3214227e87bccca63893317febadd0b51ade735e", "contractName": "HelloWorld", "contractAbi": [{"constant":false,"inputs":[{"name":"n","type":"string"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"get","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":false,"name":"name","type":"string"}],"name":"SetName","type":"event"}] @@ -1986,15 +2092,17 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | data | object | 是 | 返回信息实体(空) | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | -------- | ------ | ---- | -------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | data | object | 是 | 返回信息实体(空) | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -2003,11 +2111,12 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 ``` -### 5.10. 导入已部署合约的abi +### 5.10. 修改已部署合约的abi > 将其他平台已部署的合约导入到本平台进行管理 #### 5.10.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/abi** * 请求方式:PUT @@ -2019,15 +2128,13 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | abiId | long | 否 | abi编号 | -| 2 | groupId | int | 否 | 所属群组编号 | -| 3 | contractAddress | String | 否 | 合约地址 | -| 4 | contractName | String | 否 | 合约名称 | -| 5 | contractAbi | String | 否 | 合约编译后生成的abi文件内容 | - - +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | --------------- | ------ | ------ | --------------------------- | +| 1 | abiId | long | 否 | abi编号 | +| 2 | groupId | int | 否 | 所属群组编号 | +| 3 | contractAddress | String | 否 | 合约地址 | +| 4 | contractName | String | 否 | 合约名称 | +| 5 | contractAbi | String | 否 | 合约编译后生成的abi文件内容 | ***2)入参示例*** @@ -2046,15 +2153,17 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/abi/list/1/1/5 ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | data | object | 是 | 返回信息实体(空) | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | -------- | ------ | ---- | -------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | data | object | 是 | 返回信息实体(空) | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -2415,7 +2524,7 @@ http://localhost:5001/WeBASE-Node-Manager/mailServer/config/1 |------|-------------|---------------|--------|-------------------------------| | - | - | - | - | - | - +​ ***2)入参示例*** @@ -2722,7 +2831,7 @@ http://localhost:5001/WeBASE-Node-Manager/alert/1 |------|-------------|---------------|--------|-------------------------------| | 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | | 2 | message | String | 否 | 描述 | -| 3 | data | Object | 否 | 成功时返回 | +| 3 | data | Object | 否 | 成功时返回 | | 3.1 | | Object | |返回信息实体 | | 3.1.1 | ruleId | Int | 否 | 告警类型配置的编号 | | 3.1.2 | ruleName | String | 否 | 告警类型的名字/告警邮件标题 | @@ -2788,7 +2897,7 @@ http://localhost:5001/WeBASE-Node-Manager/alert/1 |------|-------------|---------------|--------|-------------------------------| | - | - | - | - | - | - +​ ***2)入参示例*** @@ -3813,7 +3922,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/group/generate/78e467957af3d0f77e19b95 ### 8.5 向多个节点生成新群组 -​向`nodeList`中所有节点的前置发起请求,以当前时间生成`timestamp`时间戳,以`nodeList`为创世块的**共识节点列表**,生成新群组配置信息;节点和前置一一对应,节点编号可以从前置列表获取。 +向`nodeList`中所有节点的前置发起请求,以当前时间生成`timestamp`时间戳,以`nodeList`为创世块的**共识节点列表**,生成新群组配置信息;节点和前置一一对应,节点编号可以从前置列表获取。 **群组生成后,需对应调用新群组启动的接口,并确保新节点加入新群组的共识节点/观察节点** @@ -3898,9 +4007,9 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/group/generate ### 8.6 动态操作群组 -​​可以对已存在的群组或新生成的群组进行动态操作,包括启动、停止、删除、恢复、状态查询。 +可以对已存在的群组或新生成的群组进行动态操作,包括启动、停止、删除、恢复、状态查询。 -​**说明:** 生成新群组后,需要向每个前置调用启动群组的操作,并确保新节点是新群组中的共识节点/观察节点 +**说明:** 生成新群组后,需要向每个前置调用启动群组的操作,并确保新节点是新群组中的共识节点/观察节点 节点加入已存在群组并启动后,可调用`POST /precompiled/consensus`接口将该节点加入到新加入群组的共识节点或观察节点中 @@ -3966,7 +4075,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/group/operate/78e467957af3d0f77e19b952 ### 8.7 批量启动群组 -​批量启动多个节点的群组,向`nodeList`中所有节点批量发起启动群组的请求;nodeId可以从前置列表获取。 +批量启动多个节点的群组,向`nodeList`中所有节点批量发起启动群组的请求;nodeId可以从前置列表获取。 #### 8.7.1 传输协议规范 @@ -4044,7 +4153,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/group/batchStart ### 8.8 多个节点获取该节点的多个群组状态 -​向多个节点获取该**节点视角下**`groupIdList`中所有群组的状态;nodeId可以从前置列表获取。 +向多个节点获取该**节点视角下**`groupIdList`中所有群组的状态;nodeId可以从前置列表获取。 群组状态包含:群组不存在"INEXISTENT"、群组正在停止"STOPPING"、群组运行中"RUNNING"、群组已停止"STOPPED"、群组已删除"DELETED" @@ -4598,11 +4707,11 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/role/roleList?groupId=300001&pageNumbe ## 11 用户管理模块 - ### 11.1 新增私钥用户 #### 11.1.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/user/userInfo** * 请求方式:POST @@ -4613,11 +4722,12 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/role/roleList?groupId=300001&pageNumbe ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | userName | string | 否 | 用户名称 | -| 2 | description | string | 是 | 备注 | -| 3 | groupId | Int | 否 | 所属群组 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ----------- | ------ | ------ | -------- | +| 1 | userName | string | 否 | 用户名称 | +| 2 | description | string | 是 | 备注 | +| 3 | groupId | Int | 否 | 所属群组 | +| 4 | account | string | 否 | 关联账户 | ***2)入参示例*** @@ -4629,7 +4739,8 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo { "groupId": "300001", "description": "密钥拥有者", - "userName": "user1" + "userName": "user1", + "account": "admin" } ``` @@ -4638,25 +4749,28 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | data | object | 是 | 返回信息实体(成功时不为空) | -| 3.1 | userId | int | 否 | 用户编号 | -| 3.2 | userName | string | 否 | 用户名称 | -| 3.3 | groupId | int | 否 | 所属群组编号 | -| 3.4 | description | String | 是 | 备注 | -| 3.5 | userStatus | int | 否 | 状态(1-正常 2-停用) 默认1 | -| 3.6 | publicKey | String | 否 | 公钥信息 | -| 3.7 | address | String | 是 | 在链上位置的hash | -| 3.8 | hasPk | Int | 否 | 是否拥有私钥信息(1-拥有,2-不拥有) | -| 3.9 | createTime | LocalDateTime | 否 | 创建时间 | -| 3.10 | modifyTime | LocalDateTime | 否 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | ----------- | ------------- | ---- | ---------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | data | object | 是 | 返回信息实体(成功时不为空) | +| 3.1 | userId | int | 否 | 用户编号 | +| 3.2 | userName | string | 否 | 用户名称 | +| 3.3 | groupId | int | 否 | 所属群组编号 | +| 3.4 | description | String | 是 | 备注 | +| 3.5 | userStatus | int | 否 | 状态(1-正常 2-停用) 默认1 | +| 3.6 | publicKey | String | 否 | 公钥信息 | +| 3.7 | address | String | 是 | 在链上位置的hash | +| 3.8 | hasPk | Int | 否 | 是否拥有私钥信息(1-拥有,2-不拥有) | +| 3.9 | account | string | 否 | 关联账户 | +| 3.10 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.11 | modifyTime | LocalDateTime | 否 | 修改时间 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -4671,6 +4785,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo "address": "0x40ec3c20b5178401ae14ad8ce9c9f94fa5ebb86a", "hasPk": 1, "description": "sda", + "account": "admin", "createTime": "2019-03-15 18:00:27", "modifyTime": "2019-03-15 18:00:27" } @@ -4678,6 +4793,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo ``` * 失败: + ``` { "code": 102000, @@ -4691,6 +4807,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo #### 11.2.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/user/bind** * 请求方式:POST @@ -4701,11 +4818,12 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | userName | string | 否 | 用户名称 | -| 2 | description | string | 是 | 备注 | -| 3 | groupId | Int | 否 | 所属群组 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ----------- | ------ | ------ | -------- | +| 1 | userName | string | 否 | 用户名称 | +| 2 | description | string | 是 | 备注 | +| 3 | groupId | Int | 否 | 所属群组 | +| 4 | account | string | 否 | 关联账户 | ***2)入参示例*** @@ -4719,7 +4837,8 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo "userName": "sdfasd", "publicKey": "0x4189fdacff55fb99172e015e1adb96dc77b0cae1619b1a41cc360777bee6682fcc9752d8aabf144fbf610a3057fd4b5", "groupId": "300001", - "description": "sdfa" + "description": "sdfa", + "account": "admin" } ``` @@ -4728,25 +4847,28 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | data | object | 是 | 返回信息实体(成功时不为空) | -| 3.1 | userId | int | 否 | 用户编号 | -| 3.2 | userName | string | 否 | 用户名称 | -| 3.3 | groupId | int | 否 | 所属群组编号 | -| 3.4 | description | String | 是 | 备注 | -| 3.5 | userStatus | int | 否 | 状态(1-正常 2-停用) 默认1 | -| 3.6 | publicKey | String | 否 | 公钥信息 | -| 3.7 | address | String | 是 | 在链上位置的hash | -| 3.8 | hasPk | Int | 否 | 是否拥有私钥信息(1-拥有,2-不拥有) | -| 3.9 | createTime | LocalDateTime | 否 | 创建时间 | -| 3.10 | modifyTime | LocalDateTime | 否 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | ----------- | ------------- | ---- | ---------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | data | object | 是 | 返回信息实体(成功时不为空) | +| 3.1 | userId | int | 否 | 用户编号 | +| 3.2 | userName | string | 否 | 用户名称 | +| 3.3 | groupId | int | 否 | 所属群组编号 | +| 3.4 | description | String | 是 | 备注 | +| 3.5 | userStatus | int | 否 | 状态(1-正常 2-停用) 默认1 | +| 3.6 | publicKey | String | 否 | 公钥信息 | +| 3.7 | address | String | 是 | 在链上位置的hash | +| 3.8 | hasPk | Int | 否 | 是否拥有私钥信息(1-拥有,2-不拥有) | +| 3.9 | account | string | 否 | 关联账户 | +| 3.10 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.11 | modifyTime | LocalDateTime | 否 | 修改时间 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -4761,6 +4883,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo "address": "0x40ec3c20b5178401ae14ad8ce9c9f94fa5ebb86a", "hasPk": 1, "description": "sda", + "account": "admin", "createTime": "2019-03-15 18:00:27", "modifyTime": "2019-03-15 18:00:27" } @@ -4768,6 +4891,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo ``` * 失败: + ``` { "code": 102000, @@ -4781,6 +4905,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo #### 11.3.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/user/userInfo** * 请求方式:PUT @@ -4792,10 +4917,10 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | userId | int | 否 | 用户编号 | -| 2 | description | String | 是 | 备注 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ----------- | ------ | ------ | -------- | +| 1 | userId | int | 否 | 用户编号 | +| 2 | description | String | 是 | 备注 | ***2)入参示例*** @@ -4815,25 +4940,28 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | data | object | 是 | 返回信息实体(成功时不为空) | -| 3.1 | userId | int | 否 | 用户编号 | -| 3.2 | userName | string | 否 | 用户名称 | -| 3.3 | groupId | int | 否 | 所属群组编号 | -| 3.4 | description | String | 是 | 备注 | -| 3.5 | userStatus | int | 否 | 状态(1-正常 2-停用) 默认1 | -| 3.6 | publicKey | String | 否 | 公钥信息 | -| 3.7 | address | String | 是 | 在链上位置的hash | -| 3.8 | hasPk | Int | 否 | 是否拥有私钥信息(1-拥有,2-不拥有) | -| 3.9 | createTime | LocalDateTime | 否 | 创建时间 | -| 3.10 | modifyTime | LocalDateTime | 否 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | ----------- | ------------- | ---- | ---------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | data | object | 是 | 返回信息实体(成功时不为空) | +| 3.1 | userId | int | 否 | 用户编号 | +| 3.2 | userName | string | 否 | 用户名称 | +| 3.3 | groupId | int | 否 | 所属群组编号 | +| 3.4 | description | String | 是 | 备注 | +| 3.5 | userStatus | int | 否 | 状态(1-正常 2-停用) 默认1 | +| 3.6 | publicKey | String | 否 | 公钥信息 | +| 3.7 | address | String | 是 | 在链上位置的hash | +| 3.8 | hasPk | Int | 否 | 是否拥有私钥信息(1-拥有,2-不拥有) | +| 3.9 | account | string | 否 | 关联账户 | +| 3.10 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.11 | modifyTime | LocalDateTime | 否 | 修改时间 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -4848,6 +4976,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo "address": "0x40ec3c20b5178401ae14ad8ce9c9f94fa5ebb86a", "hasPk": 1, "description": "newDescription", + "account": "admin", "createTime": "2019-03-15 18:00:27", "modifyTime": "2019-03-15 18:00:27" } @@ -4855,6 +4984,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo ``` * 失败: + ``` { "code": 102000, @@ -4867,6 +4997,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo #### 11.4.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/user/privateKey/{userId}** * 请求方式:GET @@ -4876,9 +5007,9 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userInfo ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | userId | int | 否 | 用户编号 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | -------- | ---- | ------ | -------- | +| 1 | userId | int | 否 | 用户编号 | ***2)入参示例*** @@ -4892,17 +5023,19 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/privateKey/4585 ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | data | Object | 否 | 返回私钥信息实体 | -| 3.1 | privateKey | String | 否 | 私钥 | -| 3.2 | address | String | 否 | 用户链上地址 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | ---------- | ------ | ---- | -------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | data | Object | 否 | 返回私钥信息实体 | +| 3.1 | privateKey | String | 否 | 私钥 | +| 3.2 | address | String | 否 | 用户链上地址 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -4915,6 +5048,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/privateKey/4585 ``` * 失败: + ``` { "code": 102000, @@ -4927,6 +5061,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/privateKey/4585 #### 11.5.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/user/userList/{groupId}/{pageNumber}/{pageSize}?userParam={userName}** * 请求方式:GET @@ -4936,12 +5071,13 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/privateKey/4585 ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | groupId | int | 否 | 所属群组id | -| 2 | pageSize | Int | 否 | 每页记录数 | -| 3 | pageNumber | Int | 否 | 当前页码 | -| 4 | userParam | String | 是 | 查询参数(用户名或公钥地址) | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ---------- | ------ | ------ | ---------------------------- | +| 1 | groupId | int | 否 | 所属群组id | +| 2 | pageSize | Int | 否 | 每页记录数 | +| 3 | pageNumber | Int | 否 | 当前页码 | +| 4 | userParam | String | 是 | 查询参数(用户名或公钥地址) | +| 5 | account | string | 是 | 关联账户 | ***2)入参示例*** @@ -4955,27 +5091,30 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userList/300001/1/10?userParam=as ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | -| 3 | totalCount | Int | 否 | 总记录数 | -| 4 | data | List | 是 | 用户列表 | -| 4.1 | | Object | | 用户信息对象 | -| 4.1.1 | userId | int | 否 | 用户编号 | -| 4.1.2 | userName | string | 否 | 用户名称 | -| 4.1.3 | groupId | int | 否 | 所属群组编号 | -| 4.1.4 | description | String | 是 | 备注 | -| 4.1.5 | userStatus | int | 否 | 状态(1-正常 2-停用) 默认1 | -| 4.1.6 | publicKey | String | 否 | 公钥信息 | -| 4.1.7 | address | String | 是 | 在链上位置的hash | -| 4.1.8 | hasPk | Int | 否 | 是否拥有私钥信息(1-拥有,2-不拥有) | -| 4.1.9 | createTime | LocalDateTime | 否 | 创建时间 | -| 4.1.10 | modifyTime | LocalDateTime | 否 | 修改时间 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ------ | ----------- | ------------- | ---- | ---------------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | totalCount | Int | 否 | 总记录数 | +| 4 | data | List | 是 | 用户列表 | +| 4.1 | | Object | | 用户信息对象 | +| 4.1.1 | userId | int | 否 | 用户编号 | +| 4.1.2 | userName | string | 否 | 用户名称 | +| 4.1.3 | groupId | int | 否 | 所属群组编号 | +| 4.1.4 | description | String | 是 | 备注 | +| 4.1.5 | userStatus | int | 否 | 状态(1-正常 2-停用) 默认1 | +| 4.1.6 | publicKey | String | 否 | 公钥信息 | +| 4.1.7 | address | String | 是 | 在链上位置的hash | +| 4.1.8 | hasPk | Int | 否 | 是否拥有私钥信息(1-拥有,2-不拥有) | +| 4.1.9 | account | string | 否 | 关联账户 | +| 4.1.10 | createTime | LocalDateTime | 否 | 创建时间 | +| 4.1.11 | modifyTime | LocalDateTime | 否 | 修改时间 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -4992,6 +5131,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userList/300001/1/10?userParam=as "address": "0x40ec3c20b5178401ae14ad8ce9c9f94fa5ebb86a", "hasPk": 1, "description": "sda", + "account": "admin", "createTime": "2019-03-15 18:00:27", "modifyTime": "2019-03-15 18:00:28" } @@ -5000,6 +5140,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userList/300001/1/10?userParam=as ``` * 失败: + ``` { "code": 102000, @@ -5016,6 +5157,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userList/300001/1/10?userParam=as 其中私钥字段用Base64加密 #### 11.6.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/user/import** * 请求方式:POST @@ -5026,12 +5168,13 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/userList/300001/1/10?userParam=as ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | privateKey | string | 否 | Base64加密后的私钥内容 | -| 2 | userName | string | 否 | 用户名称 | -| 3 | description | string | 是 | 备注 | -| 4 | groupId | Int | 否 | 所属群组 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ----------- | ------ | ------ | ---------------------- | +| 1 | privateKey | string | 否 | Base64加密后的私钥内容 | +| 2 | userName | string | 否 | 用户名称 | +| 3 | description | string | 是 | 备注 | +| 4 | groupId | Int | 否 | 所属群组 | +| 5 | account | string | 否 | 关联账户 | ***2)入参示例*** @@ -5044,7 +5187,8 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/import "privateKey": "OGFmNWIzMzNmYTc3MGFhY2UwNjdjYTY3ZDRmMzE4MzU4OWRmOThkMjVjYzEzZGFlMGJmODhkYjhlYzVhMDcxYw==", "groupId": "300001", "description": "密钥拥有者", - "userName": "user1" + "userName": "user1", + "account": "admin" } ``` @@ -5053,14 +5197,16 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/import ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | -------- | ------ | ---- | -------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -5069,6 +5215,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/import ``` * 失败: + ``` { "code": 201031, @@ -5083,6 +5230,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/import 可导入控制台所生成的私钥.pem文件 #### 11.7.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/user/importPem** * 请求方式:POST @@ -5093,12 +5241,13 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/import ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | pemContent | string | 否 | pem文件的内容,必须以`-----BEGIN PRIVATE KEY-----\n`开头,以`\n-----END PRIVATE KEY-----\n`结尾的格式 | -| 2 | userName | string | 否 | 用户名称 | -| 3 | description | string | 是 | 备注 | -| 4 | groupId | Int | 否 | 所属群组 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ----------- | ------ | ------ | ------------------------------------------------------------ | +| 1 | pemContent | string | 否 | pem文件的内容,必须以`-----BEGIN PRIVATE KEY-----\n`开头,以`\n-----END PRIVATE KEY-----\n`结尾的格式 | +| 2 | userName | string | 否 | 用户名称 | +| 3 | description | string | 是 | 备注 | +| 4 | groupId | Int | 否 | 所属群组 | +| 5 | account | string | 否 | 关联账户 | ***2)入参示例*** @@ -5111,7 +5260,8 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/importPem "pemContent":"-----BEGIN PRIVATE KEY-----\nMIGEAgEAMBAGByqGSM49AgEGBSuBBAAKBG0wawIBAQQgC8TbvFSMA9y3CghFt51/\nXmExewlioX99veYHOV7dTvOhRANCAASZtMhCTcaedNP+H7iljbTIqXOFM6qm5aVs\nfM/yuDBK2MRfFbfnOYVTNKyOSnmkY+xBfCR8Q86wcsQm9NZpkmFK\n-----END PRIVATE KEY-----\n", "groupId": "1", "description": "密钥拥有者", - "userName": "user2" + "userName": "user2", + "account": "admin" } ``` @@ -5120,14 +5270,16 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/importPem ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | -------- | ------ | ---- | -------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -5136,6 +5288,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/importPem ``` * 失败: + ``` { "code": 201232, @@ -5150,6 +5303,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/importPem 可导入控制台生成的私钥.p12文件 #### 11.8.1 传输协议规范 + * 网络传输协议:使用HTTP协议 * 请求地址:**/user/importP12** * 请求方式:POST @@ -5160,13 +5314,14 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/importPem ***1)入参表*** -| 序号 | 输入参数 | 类型 | 可为空 | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | p12File | MultipartFile | 否 | .p12文件 | -| 2 | p12Password | string | 是 | .p12文件的密码,缺省时默认为"",即空密码;p12无密码时,可传入空值或不传;不包含中文 | -| 3 | userName | string | 否 | 用户名称 | -| 4 | description | string | 是 | 备注 | -| 5 | groupId | Int | 否 | 所属群组 | +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +| ---- | ----------- | ------------- | ------ | ------------------------------------------------------------ | +| 1 | p12File | MultipartFile | 否 | .p12文件 | +| 2 | p12Password | string | 是 | .p12文件的密码,缺省时默认为"",即空密码;p12无密码时,可传入空值或不传;不包含中文 | +| 3 | userName | string | 否 | 用户名称 | +| 4 | description | string | 是 | 备注 | +| 5 | groupId | Int | 否 | 所属群组 | +| 6 | account | string | 否 | 关联账户 | ***2)入参示例*** @@ -5180,14 +5335,16 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/importP12 ***1)出参表*** -| 序号 | 输出参数 | 类型 | | 备注 | -|------|-------------|---------------|--------|-------------------------------| -| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | -| 2 | message | String | 否 | 描述 | +| 序号 | 输出参数 | 类型 | | 备注 | +| ---- | -------- | ------ | ---- | -------------------------- | +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | ***2)出参示例*** + * 成功: + ``` { "code": 0, @@ -5196,6 +5353,7 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/user/importP12 ``` * 失败:(p12文件的密码错误) + ``` { "code": 201236, @@ -5354,6 +5512,9 @@ http://127.0.0.1:5001/WeBASE-Node-Manager/method/findById/2/methodIasdfdttttt ## 13 系统管理模块 +系统管理中的权限管理接口 +- 使用FISCO BCOS v2.5.0 与 WeBASE-Node-Manager v1.4.1 (及)以上版本将使用预编译合约中的ChainGovernance接口(本章节[接口13.14](#governance)开始),详情可参考[FISCO BCOS基于角色的权限控制](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html#id2) +- 使用低于FISCO BCOS v2.5.0 与 WeBASE-Node-Manager v1.4.1版本,则使用接口13.1至13.4接口 ### 13.1 查看权限管理 @@ -5966,7 +6127,7 @@ http://localhost:5001/WeBASE-Node-Manager/sys/config/list?groupId=1&pageSize=10& | 4 | configValue | String | 否 | | 5 | useAes | Boolean | 是 | 发交易的私钥是否为加密私钥,默认为false - +​ ***2)入参示例*** @@ -6038,7 +6199,7 @@ http://localhost:5001/WeBASE-Node-Manager/sys/config | 2 | pageSize | int | 否 | | 3 | pageNumber | int | 否 | - +​ ***2)入参示例*** @@ -6256,15 +6417,956 @@ http://localhost:5001/WeBASE-Node-Manager/precompiled/crud } ``` -## 14 证书管理模块 -### 14.1 获取证书列表接口 -获取证书的list列表,返回的列表包含证书指纹、证书内容、证书名字、证书的父证书、证书对应nodeid(节点证书)、证书有效期 +### 13.14 获取链治理委员列表 + -注:首次启动项目会自动拉取每一个Front的证书 +使用FISCO BCOS v2.5.0 与 WeBASE-Node-Manager v1.4.1 (及)以上版本将使用预编译合约中的ChainGovernance接口(本章节[接口13.14](#governance)开始),详情可参考[FISCO BCOS基于角色的权限控制](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html#id2) -#### 14.1.1 传输协议规范 +委员的权限包括治理投票、增删节点、冻结解冻合约、冻结解冻账号、修改链配置和增删运维账号。 + +增加委员需要链治理委员会投票,有效票大于阈值才可以生效,且不重复计票 +- 委员默认的投票权重为1,默认投票生效阈值50%,若有两个委员,则需要两个委员都投票增加/撤销的委员权限,`有效票/总票数=2/2=1>0.5`才满足条件。 +- 投票有过期时间,根据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。 +- 一个用户不能同时作为委员和运维 + +#### 13.14.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/committee/list** +* 请求方式:GET +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.14.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 2 | pageSize | int | 否 | +| 3 | pageNumber | int | 否 | + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/committee/list?groupId=1&pageSize=5&pageNumber=1 +``` + +#### 13.14.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | | 返回码,0:成功 其它:失败 | +| 2 | message | String | | 描述 +| 3 | data | List数组 | | 直接返回数组 +| 4 | totalCount | int | | 总数目 + + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success", + "data": [ + { + "address": "0x009fb217b6d7f010f12e7876d31a738389fecd51", + "enable_num": "84" + } + ], + "totalCount": 1 +} +``` + + +### 13.15 增加链治理委员 + +增加委员需要链治理委员会投票,有效票大于阈值才可以生效,且不重复计票 +- 委员默认的投票权重为1,默认投票生效阈值50%,若有两个委员,则需要两个委员都投票增加/撤销的委员权限,`有效票/总票数=2/2=1>0.5`才满足条件。 +- 投票有过期时间,根据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。 + +#### 13.15.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/committee** +* 请求方式:POST +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.15.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 2 | fromAddress | String | 否 | 链治理委员地址 | +| 3 | address | String | 否 | 新的链治理委员地址 + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/committee +``` + +``` +{ + "groupId": 1, + "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e" +} +``` + + +#### 13.15.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success" +} +``` + +* 失败: +``` +{ + "code": -52000, + "message": "committee member already exist" +} +``` + + +### 13.16 去除链管理委员接口 + +增加委员需要链治理委员会投票,有效票大于阈值才可以生效,且不重复计票 +- 委员默认的投票权重为1,默认投票生效阈值50%,若有两个委员,则需要两个委员都投票增加/撤销的委员权限,`有效票/总票数=2/2=1>0.5`才满足条件。 +- 投票有过期时间,根据块高,过期时间为块高超过blockLimit的10倍时过期;过期时间固定不可改。 + +#### 13.16.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/committee** +* 请求方式:DELETE +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.16.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 2 | fromAddress | String | 否 | 链治理委员地址 | +| 3 | address | String | 否 | 待取消的链治理委员地址 + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/committee +``` + +``` +{ + "groupId": 1, + "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e" +} +``` + + +#### 13.16.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success" +} +``` + +* 失败: +``` +{ + "code": -52001, + "message": "committee member not exist" +} +``` + + +### 13.17 获取链治理委员投票权重 + +委员默认的投票权重为1 + +#### 13.17.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/committee/weight** +* 请求方式:GET +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.17.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 2 | address | String | 否 | + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/committee/weight?groupId=1&address=0x009fb217b6d7f010f12e7876d31a738389fecd51 +``` + +#### 13.17.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | | 返回码,0:成功 其它:失败 | +| 2 | message | String | | 描述 +| 3 | data | Integer | | 权重值 + + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success", + "data": 2 +} +``` + +### 13.18 更新链治理委员投票权重值 + +委员默认的投票权重为1 + +#### 13.18.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/committee/weight** +* 请求方式:PUT +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.18.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 2 | fromAddress | String | 否 | 链治理委员地址 | +| 3 | address | String | 否 | 新的链治理委员地址 +| 4 | weight | int | 否 | 投票权重值 + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/committee/weight +``` + +``` +{ + "groupId": 1, + "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e", + "weight": 2 +} +``` + + +#### 13.18.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success" +} +``` + +* 失败: +``` +{ + "code": -52001, + "message": "committee member not exist" +} +``` + + +### 13.19 获取链治理投票阈值 + +默认投票阈值为50,即超过(不包括)50%的票数权重即可通过 + +#### 13.19.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/threshold** +* 请求方式:GET +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.19.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/threshold?groupId=1 +``` + +#### 13.19.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | | 返回码,0:成功 其它:失败 | +| 2 | message | String | | 描述 +| 3 | data | Integer | | 阈值 + + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success", + "data": 50 +} +``` + +### 13.19 更新链治理投票阈值 + +委员默认的投票权重为1 + +#### 13.19.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/threshold** +* 请求方式:PUT +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.19.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 2 | fromAddress | String | 否 | 链治理委员地址 | +| 3 | threshold | int | 否 | 投票阈值 + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/threshold +``` + +``` +{ + "groupId": 1, + "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1", + "threshold": 60 +} +``` + + +#### 13.19.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success" +} +``` + +* 失败,如非委员更新阈值: +``` +{ + "code": -52001, + "message": "committee member not exist" +} +``` + + +### 13.20 查看运维列表 + +由链治理委员添加运维账号,运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。 + +#### 13.20.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/operator/list** +* 请求方式:GET +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.20.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 2 | pageSize | int | 否 | +| 3 | pageNumber | int | 否 | + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/operator/list?groupId=1&pageSize=5&pageNumber=1 +``` + +#### 13.20.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | | 返回码,0:成功 其它:失败 | +| 2 | message | String | | 描述 +| 3 | data | List数组 | | 直接返回数组 +| 4 | totalCount | int | | 总数目 + + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success", + "data": [ + { + "address": "0x009fb217b6d7f010f12e7876d31a738389fecd51", + "enable_num": "4" + } + ], + "totalCount": 1 +} +``` + + +### 13.21 增加运维接口 + +由链治理委员添加/去除运维账号,运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。 + +#### 13.21.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/operator** +* 请求方式:POST +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.21.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 3 | fromAddress | String | 否 | 链治理委员地址 | +| 4 | address | String | 否 | 运维地址 + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/operator +``` + +``` +{ + "groupId": 1, + "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e" +} +``` + + +#### 13.21.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success" +} +``` + +* 失败: +``` +{ + "code": -52001, + "message": "committee member not exist" +} +``` + +或 + +``` +{ + "code": -52005, + "message": "committee member cannot be operator" +} +``` + + +### 13.22 去除运维接口 + +由链治理委员添加/去除运维账号,运维账号可以部署合约、创建表、管理合约版本、冻结解冻本账号部署的合约。 + +#### 13.22.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/operator** +* 请求方式:DELETE +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.22.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 3 | fromAddress | String | 否 | 链治理委员地址 | +| 4 | address | String | 否 | 运维地址 + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/governance/operator +``` + +``` +{ + "groupId": 1, + "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1", + "address": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e" +} +``` + + +#### 13.22.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success" +} +``` + +* 失败: +``` +{ + "code": -52001, + "message": "committee member not exist" +} +``` + + +### 13.23 合约状态管理 + +由**合约部署者**(一般由运维所部属)与链治理委员共同管理合约的状态,包含冻结/解冻合约、查询合约状态功能 + +#### 13.23.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/precompiled/contract/status** +* 请求方式: POST +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.23.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 2 | fromAddress | String | 否 | 合约管理者地址 | +| 3 | contractAddress | String | 否 | 已部署的合约地址 | +| 4 | handleType | String | 否 | 操作类型:freeze-冻结;unfreeze-解冻;getStatus-查询合约状态; | + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/precompiled/contract/status +``` + +``` +{ + "groupId": 1, + "fromAddress": "0xd5bba8fe456fce310f529edecef902e4b63129b1", + "contractAddress": "0x2357ad9d97027cd71eea1d639f1e5750fbdfd38e", + "handleType": "freeze" +} +``` + + +#### 13.23.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success" +} +``` + +* 失败: +``` +{ + "code": -52007, + "message": "operator member not exist" +} +``` + + +### 13.24 批量查看合约冻结状态 + +传入多个合约地址的List,查看该合约地址的冻结状态 + +#### 13.24.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/precompiled/contract/status/list** +* 请求方式:POST +* 请求头:Content-type: application/json +* 返回格式:JSON + +#### 13.24.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组id +| 2 | addressList | List | 否 | 多个合约地址的列表 + + +***2)入参示例*** + +``` +http://localhost:5001/WeBASE-Node-Manager/precompiled/contract/status/list +``` + +``` +{ + "groupId": 1, + "addressList": ["0x009fb217b6d7f010f12e7876d31a738389fecd51", "0x6b9fb217b6d7f010f12e7876d31a738389feef62"] +} +``` + +#### 13.24.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | | 返回码,0:成功 其它:失败 | +| 2 | message | String | | 描述 +| 3 | data | Map | | 直接返回Map, 0-正常,1-冻结 如:["0x009fb217b6d7f010f12e7876d31a738389fecd51": 0, "0x6b9fb217b6d7f010f12e7876d31a738389feef62": 1] + + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success", + "data": [ + "0x009fb217b6d7f010f12e7876d31a738389fecd51": 0, + "0x6b9fb217b6d7f010f12e7876d31a738389feef62": 1 + ], + "totalCount": 1 +} +``` + + + +### 13.25 获取链委员会投票记录列表 + +当链委员会发起一笔交易时会产生一条投票记录,此接口返回某群组下的修改记录列表 + +#### 13.25.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/vote/record/list** +* 请求方式:GET +* 返回格式:JSON + +#### 13.25.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组编号 | +| 2 | pageNumber | int | 否 | 页码,从1开始 | +| 3 | pageSize | int | 否 | 页大小 | + + +***2)入参示例*** + +``` +http://127.0.0.1:5001/WeBASE-Node-Manager/vote/record/list?groupId=1&pageNumber=1&pageSize=10 +``` + + +#### 13.25.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | | Object | | 返回信息实体 | +| 3.1 | id | int | 否 | 合约记录编号 | +| 3.2 | groupId | Int | 否 | 所属群组编号 | +| 3.3 | timeLimit | Long | 否 | 投票块高限制范围 | +| 3.4 | fromAddress | String | 否 | 链委员的地址 | +| 3.5 | type | Int | 否 | 投票类型,1-增加委员,2-去除委员,3-更新委员权重,4-更新阈值 | +| 3.6 | toAddress | String | 否 | 被修改的外部账户地址,当类型为1,2,3时为非空 | +| 3.7 | detail | String | 否 | 投票内容详情,当类型为3,4时为非空;3-`{weight: 2}`,4-`{threshold: 2}` | +| 3.8 | createTime | LocalDateTime | 否 | 创建时间 | +| 3.9 | modifyTime | LocalDateTime | 是 | 修改时间 | +| 4 | totalCount | Int | | 总数 | + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success", + "data": [ + { + "id": 1, + "groupId": 1, + "timeLimit": 200, + "fromAddress": "0x2ac4227e87bccca63893317febadd0b51ad33e1", + "type": 3, + "toAddress": "0x3214227e87bccca63893317febadd0b51ade735e", + "detail": "{weight: 2}", + "createTime": "2020-09-18 10:59:02", + "modifyTime": "2020-09-18 10:59:02" + } + ], + "totalCount": 1 +} +``` + + +### 13.26 删除链委员会投票记录 + +删除投票记录 + +#### 13.26.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/vote/record/{voteId}** +* 请求方式:DELETE +* 返回格式:JSON + +#### 13.26.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | voteId | int | 否 | 投票记录编号 | + + +***2)入参示例*** + +``` +http://127.0.0.1:5001/WeBASE-Node-Manager/vote/record/{voteId} +``` + + +#### 13.26.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success" +} +``` + + + +### 13.27 获取链治理委员列表(包含权重) + +获取链治理委员列表,同时返回委员投票的权重值 + +#### 13.27.1 传输协议规范 +* 网络传输协议:使用HTTP协议 +* 请求地址: **/governance/committee/list/sorted** +* 请求方式:GET +* 返回格式:JSON + +#### 13.27.2 请求参数 + +***1)入参表*** + +| 序号 | 输入参数 | 类型 | 可为空 | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | groupId | int | 否 | 群组编号 | +| 2 | pageNumber | int | 否 | 页码,从1开始 | +| 3 | pageSize | int | 否 | 页大小 | + + +***2)入参示例*** + +``` +http://127.0.0.1:5001/WeBASE-Node-Manager/governance/committee/list/sorted?groupId=1&pageNumber=1&pageSize=10 +``` + + +#### 13.27.3 返回参数 + +***1)出参表*** + +| 序号 | 输出参数 | 类型 | | 备注 | +|------|-------------|---------------|--------|-------------------------------| +| 1 | code | Int | 否 | 返回码,0:成功 其它:失败 | +| 2 | message | String | 否 | 描述 | +| 3 | | Object | | 返回信息实体 | +| 3.1 | weight | Int | 否 | 委员投票权重值 | +| 3.2 | weightRate | BigDecimal | 否 | 权重比 | +| 3.3 | address | String | 否 | 委员的用户地址 | +| 3.4 | enable_num | Int | 否 | 委员生效块高 | +| 4 | totalCount | Int | | 总数 | + + +***2)出参示例*** +* 成功: +``` +{ + "code": 0, + "message": "success", + "data": [ + { + "weight": 1, + "weightRate": 33.3 + "address": "0x2ac4227e87bccca63893317febadd0b51ad33e1", + "enable_num": 3 + } + ], + "totalCount": 1 +} +``` + + + +## 14 证书管理模块 + +### 14.1 获取证书列表接口 + +获取证书的list列表,返回的列表包含证书指纹、证书内容、证书名字、证书的父证书、证书对应nodeid(节点证书)、证书有效期 + +注:首次启动项目会自动拉取每一个Front的证书 + +#### 14.1.1 传输协议规范 * 网络传输协议:使用HTTP协议 * 请求地址: **/cert/list** * 请求方式:GET @@ -6277,9 +7379,9 @@ http://localhost:5001/WeBASE-Node-Manager/precompiled/crud | 序号 | 输入参数 | 类型 | 可为空 | 备注 | |------|-------------|---------------|--------|-------------------------------| -| | - | - | | +| | - | - | | - +​ ***2)入参示例*** @@ -6357,7 +7459,7 @@ http://localhost:5001/WeBASE-Node-Manager/cert/list |------|-------------|---------------|--------|-------------------------------| | 1 | fingerPrint | String | 否 | 证书指纹,证书唯一标识 | - +​ ***2)入参示例*** @@ -6556,7 +7658,7 @@ http://localhost:5001/WeBASE-Node-Manager/cert | 2 | pageNumber | Integer | 否 | 页码,从1开始 | | 3 | pageSize | Integer | 否 | 页容量 | - +​ ***2)入参示例*** @@ -6630,7 +7732,7 @@ http://localhost:5001/WeBASE-Node-Manager/event/newBlockEvent/list/{groupId}/{pa | 2 | pageNumber | Integer | 否 | 页码,从1开始 | | 3 | pageSize | Integer | 否 | 页容量 | - +​ ***2)入参示例*** @@ -7390,7 +8492,7 @@ http://localhost:5001/WeBASE-Node-Manager/deploy/type |------|-------------|---------------|--------|-------------------------------| | 1 | -- | - | 否 | - - +​ ***2)入参示例*** @@ -7441,7 +8543,7 @@ http://localhost:5001/WeBASE-Node-Manager/encrypt |------|-------------|---------------|--------|-------------------------------| | 1 | -- | - | 否 | - - +​ ***2)入参示例*** @@ -7456,7 +8558,7 @@ http://localhost:5001/WeBASE-Node-Manager/version | 序号 | 输出参数 | 类型 | | 备注 | |------|-------------|---------------|--------|-------------------------------| -| 1 | - | String | 否 | 版本号 | +| 1 | - | String | 否 | 版本号 | ***2)出参示例*** @@ -7468,6 +8570,161 @@ v1.4.0 ## 附录 +### 1. 返回码信息列表 + + +`X01XXX`为WeBASE-Front[节点前置错误码](../WeBASE-Front/interface.html#code),`X02XXX`为WeBASE-Node-Manager节点管理服务错误码,`X03XXX`为WeBASE-Sign[签名服务错误码](../WeBASE-Sign/interfaces.html#code)。 + + +| code | message | 描述 | +| ------ | -------------------------------------------- | -------------------------- | +| 0 | success | 成功 | +| 102001 | system error | 系统异常 | +| 102002 | system exception: please check front | 系统异常,请检查前置状态 | +| 102003 | No group belongs to this groupId(node not belongs to this group) | 当前节点不属于当前群组 | +| 202000 | invalid front id | 不正确的前置ID(添加节点前置失败) | +| 202001 | database exception | 数据库异常 | +| 202002 | not found any front for this group | 找不到此群组的任何前置 | +| 202003 | not support this ip | 不支持该ip | +| 202004 | front already exists | 前置已经存在 | +| 202005 | group id cannot be empty | 群组不能为空 | +| 202006 | invalid group id | 无效的网络编号 | +| 202007 | checkCode is null | 校验码为空 | +| 202008 | invalid checkCode | 无效的校验码 | +| 202009 | save front fail | 保存前置失败 | +| 202010 | request front fail | 请求前置失败 | +| 202011 | abiInfo cannot be empty | abi信息不能为空 | +| 202012 | user id cannot be empty | 用户编号不能为空 | +| 202013 | invalid user | 无效的用户编号 | +| 202014 | user already exists | 用户信息已经存在 | +| 202015 | contract already exists | 合约信息已经存在 | +| 202017 | invalid contract id | 无效的合约编号 | +| 202018 | invalid param info | 无效的入参信息 | +| 202019 | contract name cannot be repeated | 合约名称不能重复 | +| 202023 | contract has not deploy | 合约尚未部署 | +| 202026 | account info already exists | 该帐号已经存在 | +| 202027 | account info not exists | 该帐号不存在 | +| 202028 | account name empty | 帐号名称不能为空 | +| 202029 | invalid account name | 无效的账号名称 | +| 202030 | password error | 密码错误 | +| 202031 | role id cannot be empty | 角色编号不能为空 | +| 202032 | invalid role id | 无效的角色编号 | +| 202033 | invalid contract address | 无效的合约地址 | +| 202034 | login fail | 登录失败 | +| 202035 | contract has been deployed | 该合约已经部署 | +| 202036 | publicKey cannot be empty | 公钥不能为空 | +| 202037 | associated account cannot be empty | 关联账号不能为空 | +| 202040 | contract deploy not success | 合约部署失败 | +| 202045 | the new password cannot be same as old | 新旧密码不能一致 | +| 202050 | publicKey's length is 130,address's length is 42 | 公钥长度为130,公钥地址长度为42 | +| 202051 | wrong host or port | 错误的主机或端口 | +| 202052 | invalid token | 无效的token | +| 202053 | token expire | token过期 | +| 202054 | Available front url is empty, check front status | 合约尚未部署 | +| 202060 | cert handle error | 证书句柄错误 | +| 202061 | store cert error | 存储证书错误 | +| 202062 | cert format error, must start with -----BEGIN CERTIFICATE-----\\n, end with end | 证书格式错误,必须由 --BEGIN CERTIFICATE-- 包 | +| 202063 | saving front's cert error | 保存前置证书错误 | +| 202070 | Mail server config error | 邮件服务器配置错误。 | +| 202071 | Mail server config param empty/not match | 邮件服务器配置参数为空/不匹配 | +| 202072 | Mail server config error, db's server config is empty | 邮件服务器配置错误,数据库的服务器配置为空 | +| 202076 | Alert rule error | 警报规则错误。 | +| 202077 | Alert rule param not match | 警报规则参数不匹配。 | +| 202080 | Send mail error, please check mail server configuration | 发送邮件错误,请检查邮件服务器配置。 | +| 202081 | Send mail error, please enable mail server before send | 发送邮件错误,请在发送前启用邮件服务器。 | +| 202086 | Alert log error | 警报日志错误。 | +| 202087 | Alert log param: status/logId is empty | 警报日志参数:status/logId为空。 | +| 202090 | Update guomi methodId error | 更新国密methodId错误 | +| 202091 | Front's encrypt type not matches with nodemgr | Front的加密类型与nodemgr不匹配 | +| 202096 | contract address already exists | 合约地址已存在 | +| 202097 | abi info of this id not exists | 此ID的ABI信息不存在 | +| 202098 | Contract abi invalid, please check abi | 合约ABI无效,请检查ABI | +| 202099 | Abi Id cannot be empty | 此ID的ABI信息为空 | +| 202100 | contractAddress is null | 合约地址为空 | +| 202110 | User's signUserId not exist | 用户的signUserId不存在 | +| 202111 | Fail to parse json | 解析json错误 | +| 202121 | Cert file not found, please check cert path in config | 找不到证书文件,请检查配置中的证书路径 | +| 202122 | Pem file format error, must surrounded by -----XXXXX PRIVATE KEY----- | Pem文件格式错误,必须包含-----XXXXX PRIVATE KEY----- | +| 202123 | Pem file content error | Pem文件内容错误 | +| 202124 | p12's password cannot be chinese | P12的密码不能为中文 | +| 202125 | p12's password not match | P12的密码错误 | +| 202126 | P12 file content error | P12文件内容错误 | +| 202300 | Group id already exists | 群组id已存在 | +| 202301 | Node's front not exists | 节点前置不存在 | +| 202310 | govern vote record not exist | 投票记录不存在 | +| 202311 | permission denied on chain | 链上权限被禁止 | +| 202401 | No configured of docker registry url. | 没有配置 Docker 镜像更新 URL 地址 | +| 202402 | Fetch image tag from docker registry error. | 从 Docker 源更新镜像版本失败 | +| 202403 | Fetch Docker image tag list error, unknown config type. | 查询 Docker 镜像版本失败(未知类型) | +| 202404 | Save chain's configuration to file error. | 保存链配置信息文件失败 | +| 202405 | Docker image tag invalid. | 错误的镜像版本 | +| 202406 | Configuration of host is empty. | 主机配置参数为空 | +| 202407 | Chain exists, deploy failed. | 链已存在,部署失败 | +| 202408 | Save chain data to DB error. | 插入链信息到数据库失败 | +| 202409 | Generate host, agency, group configuration error. | 生成主机,机构,群组配置信息文件失败 | +| 202410 | Execute build_chain.sh script error. | 执行 build_chain.sh 链生成脚本失败 | +| 202411 | Host, agency, group configuration error. | 主机,机构,群组配置信息错误 | +| 202412 | Host ip and num error. | 主机 IP,节点数量配置错误 | +| 202413 | Agency name invalid, only [a-zA-Z0-9_] is valid. | 机构名称格式错误,只能包含大小写字母,数字,下划线 | +| 202414 | Group id error, only positive integer is valid. | 群组编号格式错误,必须为正整数 | +| 202415 | Login to host /ip/ through SSH error. Please check SSH configuration. | SSH登录主机/ip/失败,请检查 SSH 配置 | +| 202416 | Save agency data into DB error. | 插入新机构信息到数据库失败 | +| 202417 | Save group data into DB error. | 插入新群组信息到数据库失败 | +| 202418 | Save host data into DB error. | 插入主机信息到数据库失败 | +| 202419 | Save front data into DB error. | 插入前置信息到数据库失败 | +| 202420 | Save node data into DB error. | 插入节点信息到数据库失败 | +| 202421 | Save node and front mapping data into DB error. | 插入前置和群组映射关系到数据库失败 | +| 202422 | Parse node index from directory error. | 从目录获取节点序号失败 | +| 202423 | A single host IP only belongs to one agency. | 一个 IP 主机,只能属于一个机构 | +| 202424 | Unknown error during deploying. | 部署时发生未知错误 | +| 202425 | SSH login through username and password is unsupported yet. | 不支持使用 SSH 密码登录主机 | +| 202426 | Chain has no agency. | 当前链没有所属机构 | +| 202427 | No deployed chain | 链不存在 | +| 202428 | IP format error. | IP 格式错误 | +| 202429 | Agency name cannot be blank when IP is new. | 主机 IP 是新 IP 时,机构名称不能为空 | +| 202430 | Agency name already exists. | 存在同名机构 | +| 202431 | Add new node error. | 新增节点错误 | +| 202432 | No valid chain certification. | 链证书无效 | +| 202433 | Generate agency private key and crt file error. | 生成机构私钥和证书失败 | +| 202434 | Host without agency error." | 主机所属机构为空 | +| 202435 | Node num should be positive integer, and less then 10. | 主机数量格式错误,正整数,并且小于 10 | +| 202436 | Generate sdk | 生成主机 SDK 私钥和证书失败 | +| 202437 | Generate node private key and crt files error. | 生成新节点私钥和证书失败 | +| 202438 | Copy SDK files error. | 拷贝 SDK 证书和私钥失败 | +| 202439 | Upload SDK files error. | 上传 SDK 证书和私钥失败 | +| 202440 | Upload node config files error. | 上传节点证书和私钥失败 | +| 202441 | Copy group config files from original node error. | 从旧节点复制群组配置文件失败 | +| 202442 | Delete tmp directory of agency error. | 删除机构临时目录失败 | +| 202443 | Delete tmp directory of SDK error. | 删除 SDK 临时目录失败 | +| 202444 | Delete tmp directory of node error. | 删除节点临时目录失败 | +| 202445 | Unknown nodeid. | 未知节点编号(nodeid) | +| 202446 | Stop node error. | 停止节点失败(停止容器) | +| 202447 | Start node error. | 启动节点失败(启动容器) | +| 202448 | Both new image tag and old are the same. | 链升级的新版本和链的现有版本相同 | +| 202449 | Upgrade chain to new image tag error. | 链升级失败 | +| 202450 | Delete node failed, node is still in group. | 节点仍属于群组,删除失败 | +| 202451 | Parse node's config files error. | 读取节点配置文件失败 | +| 202452 | Delete node's config error. | 删除节点配置文件失败 | +| 202453 | Stop node before deleting. | 节点正在运行,删除失败,请先停止节点 | +| 202454 | Update p2p part of related nodes error. | 更新关联节点 P2P 配置失败 | +| 202455 | Delete chain error. | 删除链失败 | +| 202456 | Node is still a sealer or observer, delete failed. | 节点处于观察或共识状态,删除失败 | +| 202457 | Fetch node list from host's configuration files | 从主机配置文件获取节点列表失败 | +| 202458 | Generate application.yml for front error | 生成前置 application.yml 配置文件失败 | +| 202459 | Init host with shell script error. | 通过脚本初始化主机失败 | +| 202460 | Sync files error. | 传输文件失败 | +| 202461 | Control container through Docker api error. | Docker 容器操作失败 | +| 202462 | Two nodes at least. | 至少两个节点。 | +| 202463 | Group need two sealers at least. | 群组至少需要两个共识节点。 | +| 202464 | WebaseSignAddess configuration error in Application.yml | application.yml中的webaseSignAddess配置错误 | +| 202465 | Error getting docker image mode | 获取镜像方式错误 | +| 202466 | Please pull the Docker image manually in host /ip/ | 主机/ip/请手动拉取 Docker 镜像 | +| 202467 | Max 4 nodes on a single host | 单个主机最多部署 4 个节点 | +| 202468 | Cannot install node on WeBASE-Node-Manager host. | 无法在WeBASE-Node-Manager主机上安装节点。 | +| 302000 | user not logged in | 未登录的用户 | +| 302001 | Access denied | 没有权限 | +| 402000 | param exception | 参数错误 | + ### 2. Precompiled Service说明 对预编译合约接口的使用有疑惑,可以查看FISCO BCOS的[PreCompiledService API说明](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/sdk/java_sdk.html#precompiled-service-api) @@ -7494,3 +8751,50 @@ contract TableFactory { | 0x1005 | 存储表权限管理 | AuthorityPrecompiled.cpp | | 0x1006 | 并行合约配置 | ParallelConfigPrecompiled.cpp | + +**Precompiled Service API 错误码** + +| 错误码 | 消息内容 | 备注 | +| :----- | :---------------------------------------------- | :----- | +| 0 | success | | +| -50000 | permission denied | | +| -50001 | table name already exist | | +| -50100 | unknow function call | | +| -50101 | table does not exist | | +| -51000 | table name and address already exist | | +| -51001 | table name and address does not exist | | +| -51100 | invalid node ID | SDK错误码 | +| -51101 | the last sealer cannot be removed | | +| -51102 | the node is not reachable | SDK错误码 | +| -51103 | the node is not a group peer | SDK错误码 | +| -51104 | the node is already in the sealer list | SDK错误码 | +| -51105 | the node is already in the observer list | SDK错误码 | +| -51200 | contract name and version already exist | SDK错误码 | +| -51201 | version string length exceeds the maximum limit | SDK错误码 | +| -51300 | invalid configuration entry | | +| -51500 | contract name and version already exist | | +| -51501 | condition parse error | | +| -51502 | condition operation undefined | | +| -51600 | invalid ciphers | | +| -51700 | group sig failed | | +| -51800 | ring sig failed | | +| -51900 | contract frozen | | +| -51901 | contract available | | +| -51902 | contract repeat authorization | | +| -51903 | invalid contract address | | +| -51904 | table not exist | | +| -51905 | no authorized | | +| -52000 | committee member exist | | +| -52001 | committee member not exist | | +| -52002 | invalid request permission denied | | +| -52003 | invalid threshold | | +| -52004 | operator can't be committee member | | +| -52005 | committee member can't be operator | | +| -52006 | operator exist | | +| -52007 | operator not exist | | +| -52008 | account not exist | | +| -52009 | invalid account address | | +| -52010 | account already available | | +| -52011 | account frozen | | +| -52012 | current value is expected value | | + diff --git a/docs/WeBASE-Node-Manager/upgrade.md b/docs/WeBASE-Node-Manager/upgrade.md index a21fa3bf..16d4b3e6 100644 --- a/docs/WeBASE-Node-Manager/upgrade.md +++ b/docs/WeBASE-Node-Manager/upgrade.md @@ -2,6 +2,53 @@ WeBASE-Node-Manager升级的兼容性说明,请结合[WeBASE-Node-Manager Changelog](https://github.com/WeBankFinTech/WeBASE-Node-Manager)进行阅读 +#### v1.4.1 +新增FISCO BCOS v2.5.0及以上版本的基于角色的权限管理功能,新增了开发者模式 +- 新的权限管理基于角色,可参考FISCO BCOS[权限控制文档](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html) +- 开发者模式:新增了用户角色developer,可进行查询交易,合约部署调用等功能,无法使用管理员的系统管理与监控等功能。 + +##### 数据表更新 + +登录 MySQL 后,选择数据库 `use webasenodemanager;` 后,按顺序执行下面的 SQL 语句进行 DB 升级。 + +**数据表字段新增** +- 新增了`tb_user`, `tb_contract`中的`account`字段,并更新了唯一约束。 +- 用户角色表`tb_role`中新增了默认值`developer` +- 合约表`tb_contract`中新增了`deploy_address`和`deploy_user_name`字段,记录部署的私钥用户信息 + +```SQL +-- tb_user修改 +alter table tb_user add column account varchar(50) binary NOT NULL COMMENT '关联账号'; +alter table tb_user drop index `unique_name` +alter table tb_user add UNIQUE KEY `unique_name` (group_id,user_name,account); + +-- tb_contract修改 +alter table tb_contract add column account varchar(50) binary NOT NULL COMMENT '关联账号'; +alter table tb_contract drop index `uk_group_path_name` +alter table tb_contract add UNIQUE KEY uk_group_path_name (group_id,contract_path,contract_name,account); +alter table tb_contract add column deploy_address varchar(64) DEFAULT NULL COMMENT '合约部署者地址'; +alter table tb_contract add column deploy_user_name varchar(64) DEFAULT NULL COMMENT '合约部署者用戶名'; +-- tb_role修改 +INSERT INTO `tb_role` (role_name,role_name_zh,create_time,modify_time)VALUES ('developer', '开发者', now(), now()); +``` + +**数据表结构更改** +- 新增了链委员管理投票信息表`tb_govern_vote` +```SQL +CREATE TABLE IF NOT EXISTS tb_govern_vote ( + id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '链治理委员投票记录ID', + group_id int(11) NOT NULL COMMENT '群组ID', + time_limit bigint DEFAULT NULL COMMENT '投票截止块高', + from_address varchar(64) NOT NULL COMMENT '管理员地址', + type tinyint(8) NOT NULL COMMENT '投票类型,1-选举,2-去除,3-修改委员权重,4,-修改阈值', + to_address varchar(64) DEFAULT NULL COMMENT '选举/去除的地址', + detail varchar(64) DEFAULT NULL COMMENT '3-修改权重,4-修改阈值时存储具体信息', + create_time datetime NOT NULL COMMENT '创建时间', + modify_time datetime NOT NULL COMMENT '最近一次更新时间', + PRIMARY KEY (id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='链治理委员投票信息'; +``` + #### v1.4.0 v1.4.0 新增了可视化部署区块链的功能,同时支持节点的动态管理(扩容、停止、删除等)功能,同时兼容原有的手动搭链添加WeBASE-Front节点前置的模式 diff --git a/docs/WeBASE-Sign/interfaces.md b/docs/WeBASE-Sign/interfaces.md index c0559e24..2eba39c2 100644 --- a/docs/WeBASE-Sign/interfaces.md +++ b/docs/WeBASE-Sign/interfaces.md @@ -587,7 +587,7 @@ v1.4.0 ## 附录 ### 1. 返回码信息列表 - + | Code | message | 描述 | |---------|---------------------------------------|----------------------------| | 0  | success | 正常 | diff --git a/docs/WeBASE-Transaction/install.md b/docs/WeBASE-Transaction/install.md index ff6389e2..4e747945 100644 --- a/docs/WeBASE-Transaction/install.md +++ b/docs/WeBASE-Transaction/install.md @@ -2,11 +2,11 @@ ## 1. 前提条件 -| 环境 | 版本 | -| --------- | ------------------- | -| Java | JDK8或以上版本 | -| 数据库 | MySQL-5.6或以上版本 | -| ZooKeeper | ZooKeeper-3.4.10 | +| 环境 | 版本 | +| --------- | ------------------------- | +| Java | JDK8或以上版本 | +| 数据库 | MySQL-5.6或以上版本 | +| ZooKeeper | ZooKeeper-3.6.0或以上版本 | **备注:** @@ -153,7 +153,7 @@ job.dataflow.shardingTotalCount=3 # * 说明:本工程使用Sharding-JDBC分库分表,支持单一数据源,也支持多库多表。 # * 单库单表:配置单个数据源,将分库策略和分表策略注释或删除 # * 多库多表:配置多数据源,以群组分库,以年份分表,用户自定义每年分成几个表(注:分表策略的路由字段不可修改[id,gmt_create]) -# * 样例:以两个数据源为例(数据库需事先创建),每张表根据年分表,每年再分成两个子表,以2019和2020年的表为例 +# * 样例:以两个数据源为例(数据库需事先创建),每张表根据年分表,每年再分成两个子表,以2020和2021年的表为例 # 配置所有的数据源,如此处定义了ds0,ds1两个数据源,对应两个库 sharding.jdbc.datasource.names=ds0,ds1 @@ -177,13 +177,13 @@ sharding.jdbc.config.sharding.default-database-strategy.inline.sharding-column=g sharding.jdbc.config.sharding.default-database-strategy.inline.algorithm-expression=ds$->{group_id % 2} # 定义tb_deploy_transaction的分表策略,如此处以创建时间的年份和自增id取模2来路由到子表 -sharding.jdbc.config.sharding.tables.tb_deploy_transaction.actual-data-nodes=ds$->{0..1}.tb_deploy_transaction_$->{2019..2020}_$->{0..1} +sharding.jdbc.config.sharding.tables.tb_deploy_transaction.actual-data-nodes=ds$->{0..1}.tb_deploy_transaction_$->{2020..2021}_$->{0..1} sharding.jdbc.config.sharding.tables.tb_deploy_transaction.table-strategy.complex.sharding-columns=id,gmt_create sharding.jdbc.config.sharding.tables.tb_deploy_transaction.table-strategy.complex.algorithm-class-name=com.webank.webase.transaction.config.MyComplexShardingAlgorithm sharding.jdbc.config.sharding.tables.tb_deploy_transaction.key-generator-column-name=id # 定义tb_stateless_transaction的分表策略,如此处以创建时间的年份和自增id取模2来路由到子表 -sharding.jdbc.config.sharding.tables.tb_stateless_transaction.actual-data-nodes=ds$->{0..1}.tb_stateless_transaction_$->{2019..2020}_$->{0..1} +sharding.jdbc.config.sharding.tables.tb_stateless_transaction.actual-data-nodes=ds$->{0..1}.tb_stateless_transaction_$->{2020..2021}_$->{0..1} sharding.jdbc.config.sharding.tables.tb_stateless_transaction.table-strategy.complex.sharding-columns=id,gmt_create sharding.jdbc.config.sharding.tables.tb_stateless_transaction.table-strategy.complex.algorithm-class-name=com.webank.webase.transaction.config.MyComplexShardingAlgorithm sharding.jdbc.config.sharding.tables.tb_stateless_transaction.key-generator-column-name=id diff --git a/docs/WeBASE-Web/upgrade.md b/docs/WeBASE-Web/upgrade.md index 13ce63ed..1eddd1e5 100644 --- a/docs/WeBASE-Web/upgrade.md +++ b/docs/WeBASE-Web/upgrade.md @@ -2,6 +2,12 @@ WeBASE-Web升级说明,请结合[WeBASE-Web Changelog](https://github.com/WeBankFinTech/WeBASE-Web)和[WeBASE管理平台使用手册](../WeBASE-Console-Suit/index.html)进行阅读。 + +#### v1.4.1 +新增FISCO BCOS v2.5.0及以上版本的基于角色的权限管理功能,新增了开发者模式 +- 新的权限管理基于角色,可参考FISCO BCOS[权限控制文档](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/manual/permission_control.html) +- 开发者模式:新增了用户角色developer,可进行查询交易,合约部署调用等功能,无法使用管理员的系统管理与监控等功能。 + #### v1.4.0 v1.4.0 主要在兼容原有手动部署底层服务,手动添加 WeBASE-Front 前置服务的基础上,新增了可视化部署底层服务,以及节点的动态管理功能。 diff --git a/docs/WeBASE/ChangeLOG.md b/docs/WeBASE/ChangeLOG.md index dfbb1f30..65fdd7cf 100644 --- a/docs/WeBASE/ChangeLOG.md +++ b/docs/WeBASE/ChangeLOG.md @@ -1,6 +1,23 @@ # 版本及兼容 ## 支持FISCO-BCOS 2.X.X系列版本 + + +### WeBASE v1.4.1 + +WeBASE v1.4.1 版本支持 FISCO-BCOS 2.5.x及以上版本。WeBASE 子系统推荐使用下表的版本搭配,FISCO-BCOS 推荐使用 [FISCO BCOS 2.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v2.6.0)版本。 + +| WeBASE子系统名称 | 配套版本地址 | FISCO-BCOS 2.X.X | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| [节点前置服务](https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Front/index.html) | [WeBASE-Front Release v1.4.1](https://github.com/WeBankFinTech/WeBASE-Front/releases/tag/v1.4.1) | [FISCO BCOS 2.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v2.6.0) | +| [节点管理服务](https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Node-Manager/index.html) | [WeBASE-Node-Manager Release v1.4.1](https://github.com/WeBankFinTech/WeBASE-Node-Manager/releases/tag/v1.4.1) | [FISCO BCOS 2.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v2.6.0) | +| [WeBASE管理平台](https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Web/index.html) | [WeBASE-Web Release v1.4.1](https://github.com/WeBankFinTech/WeBASE-Web/releases/tag/v1.4.1) | [FISCO BCOS 2.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v2.6.0) | +| [数据导出代码生成子系统](https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Codegen-Monkey/index.html) | [WeBASE-Codegen-Monkey v1.2.0](https://github.com/WeBankFinTech/WeBASE-Codegen-Monkey/releases/tag/v1.2.0) | [FISCO BCOS 2.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v2.6.0) | +| [数据导出子系统](https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Collect-Bee/index.html) | [WeBASE-Collect-Bee v1.2.0](https://github.com/WeBankFinTech/WeBASE-Collect-Bee/releases/tag/v1.2.0) | [FISCO BCOS 2.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v2.6.0) | +| [签名服务](https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Sign/index.html) | [WeBASE-Sign Release v1.4.0](https://github.com/WeBankFinTech/WeBASE-Sign/releases/tag/v1.4.0) | [FISCO BCOS 2.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v2.6.0) | +| [交易服务](https://webasedoc.readthedocs.io/zh_CN/latest/docs/WeBASE-Transaction/index.html) | [WeBASE-Transaction Release v1.4.0](https://github.com/WeBankFinTech/WeBASE-Transaction/releases/tag/v1.4.0) | [FISCO BCOS 2.6.0](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v2.6.0) | + + ### WeBASE v1.4.0 WeBASE v1.4.0 版本支持 FISCO-BCOS 2.4.x, 2.5.x版本,推荐使用2.4.x版本。WeBASE 子系统推荐使用下表的版本搭配,FISCO-BCOS 推荐使用 [FISCO BCOS 2.4.1+](https://github.com/FISCO-BCOS/FISCO-BCOS/releases/tag/v2.4.1)版本。 diff --git a/docs/WeBASE/install.md b/docs/WeBASE/install.md index e8948352..f1f25670 100644 --- a/docs/WeBASE/install.md +++ b/docs/WeBASE/install.md @@ -20,18 +20,18 @@ #### 平台要求 -推荐使用CentOS 7.2+, Ubuntu 16.04及以上版本, 一键部署脚本将自动安装`openssl, curl, wget, git`相关依赖项。 +推荐使用CentOS 7.2+, Ubuntu 16.04及以上版本, 一键部署脚本将自动安装`openssl, curl, wget, git, nginx`相关依赖项。 -其余系统可能导致安装依赖失败,可自行安装`openssl, curl, wget, git`依赖项后重试 +其余系统可能导致安装依赖失败,可自行安装`openssl, curl, wget, git, nginx`依赖项后重试 #### 检查Java -JDK8或以上版本: +推荐JDK8-JDK13版本,使用OracleJDK[安装指引](#jdk): ``` java -version ``` -- Java推荐使用[OpenJDK](#id10 ) ,建议从[OpenJDK网站](https://jdk.java.net/java-se-ri/11) 自行下载(CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点) +注意:CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),会导致JavaSDK无法正常连接区块链节点。 #### 检查mysql @@ -40,23 +40,23 @@ MySQL-5.6或以上版本: mysql --version ``` -- Mysql安装部署可参考[数据库部署](#id14) +- Mysql安装部署可参考[数据库部署](#mysql) #### 检查Python - + 使用Python3.5或以上版本: ``` python --version ``` -- Python安装部署可参考[Python部署](#id17) +如已安装python3,也可通过`python3 --version`查看,在运行脚本时,使用`python3`命令即可 + +- Python3安装部署可参考[Python部署](#python3) #### PyMySQL部署(Python3.5+) Python3.5及以上版本,需安装`PyMySQL`依赖包 -python3.5+版本安装`PyMysql`依赖包方法: - - CentOS ``` @@ -83,7 +83,7 @@ python3.5+版本安装`PyMysql`依赖包方法: 获取部署安装包: ```shell -wget https://github.com/WeBankFinTech/WeBASELargeFiles/releases/download/v1.4.0/webase-deploy.zip +wget https://github.com/WeBankFinTech/WeBASELargeFiles/releases/download/v1.4.1/webase-deploy.zip ``` 解压安装包: ```shell @@ -96,7 +96,7 @@ cd webase-deploy ## 修改配置 -① mysql数据库需提前安装,已安装直接配置即可,还未安装请参看[数据库部署](#id14); +① mysql数据库需提前安装,已安装直接配置即可,还未安装请参看[数据库部署](#mysql); ② 修改配置文件(vi common.properties),没有变化的可以不修改; @@ -119,10 +119,10 @@ cd webase-deploy ```shell # WeBASE子系统的最新版本(v1.1.0或以上版本) -webase.web.version=v1.4.0 -webase.mgr.version=v1.4.0 -webase.sign.version=v1.4.0 -webase.front.version=v1.4.0 +webase.web.version=v1.4.1 +webase.mgr.version=v1.4.1 +webase.sign.version=v1.4.1 +webase.front.version=v1.4.1 # 节点管理子系统mysql数据库配置 mysql.ip=127.0.0.1 @@ -138,8 +138,9 @@ sign.mysql.user=dbUsername sign.mysql.password=dbPassword sign.mysql.database=webasesign -# 节点前置子系统h2数据库名 +# 节点前置子系统h2数据库名和所属机构 front.h2.name=webasefront +front.org=fisco # WeBASE管理平台服务端口 web.port=5000 @@ -176,7 +177,7 @@ node.dir=/data/app/nodes/127.0.0.1/node0 # 搭建新链时需配置 # FISCO-BCOS版本 -fisco.version=2.4.1 +fisco.version=2.6.0 # 搭建节点个数(默认两个) node.counts=nodeCounts ``` @@ -193,11 +194,10 @@ node.counts=nodeCounts ```shell # WeBASE子系统的最新版本(v1.1.0或以上版本) -webase.web.version=v1.4.0 -webase.mgr.version=v1.4.0 -webase.sign.version=v1.4.0 -# Docker 镜像版本,默认不需要修改 -fisco.webase.docker.cdn.version=v1.4.0 +webase.web.version=v1.4.1 +webase.mgr.version=v1.4.1 +webase.sign.version=v1.4.1 +fisco.webase.docker.cdn.version=v1.4.1 # 节点管理子系统mysql数据库配置 mysql.ip=127.0.0.1 @@ -344,49 +344,49 @@ http://{deployIP}:{webPort} ## 附录 + ### 1. Java环境部署 -此处给出OpenJDK安装简单步骤,供快速查阅。更详细的步骤,请参考[官网](https://openjdk.java.net/install/index.html)。 - -#### ① 安装包下载 +#### CentOS环境安装Java + -从[官网](https://jdk.java.net/java-se-ri/11)下载对应版本的java安装包,并解压到服务器相关目录 +**注意:CentOS下OpenJDK无法正常工作,需要安装OracleJDK[下载链接](https://www.oracle.com/technetwork/java/javase/downloads/index.html)。** -```shell -mkdir /software -tar -zxvf openjdkXXX.tar.gz /software/ ``` +# 创建新的文件夹,安装Java 8或以上的版本,推荐JDK8-JDK13版本,将下载的jdk放在software目录 +# 从Oracle官网(https://www.oracle.com/technetwork/java/javase/downloads/index.html)选择Java 8或以上的版本下载,例如下载jdk-8u201-linux-x64.tar.gz +$ mkdir /software -#### ② 配置环境变量 +# 解压jdk +$ tar -zxvf jdk-8u201-linux-x64.tar.gz -- 修改/etc/profile +# 配置Java环境,编辑/etc/profile文件 +$ vim /etc/profile -``` -sudo vi /etc/profile -``` +# 打开以后将下面三句输入到文件里面并保存退出 +export JAVA_HOME=/software/jdk-8u201 #这是一个文件目录,非文件 +export PATH=$JAVA_HOME/bin:$PATH +export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar -- 在/etc/profile末尾添加以下信息 +# 生效profile +$ source /etc/profile -```shell -JAVA_HOME=/software/jdk-11 -PATH=$PATH:$JAVA_HOME/bin -CLASSPATH==.:$JAVA_HOME/lib -export JAVA_HOME CLASSPATH PATH -``` - -- 重载/etc/profile - -``` -source /etc/profile +# 查询Java版本,出现的版本是自己下载的版本,则安装成功。 +java -version ``` -#### ③ 查看版本 +#### Ubuntu环境安装Java + ``` -java -version + # 安装默认Java版本(Java 8或以上) + sudo apt install -y default-jdk + # 查询Java版本 + java -version ``` ### 2. 数据库部署 + 此处以Centos安装*MariaDB*为例。*MariaDB*数据库是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。*MariaDB*完全兼容 MySQL,包括API和命令行。其他安装方式请参考[MySQL官网](https://dev.mysql.com/downloads/mysql/)。 @@ -469,6 +469,9 @@ mysql > create database webasenodemanager; ``` ### 3. Python部署 + + +python版本要求使用python3.x, 推荐使用python3.5及以上版本 - CentOS @@ -482,40 +485,11 @@ mysql > create database webasenodemanager; sudo apt-get install -y python-requests ``` -### 4. 安装MySql python依赖包(使用于python2.7+) - -#### 查看python版本 - -``` -python --version -``` -python2.7+版本,需要安装`MySQL-python`,安装方法如下: - -*注*:同时支持python3.5+,python3.5+时需要安装`Py-MySQL`依赖包,可参考 [检查python环境-PyMysql](#pymysql-python3-5) - -python2.7+版本安装`MySQL-python`依赖包方法: - -#### 4.1 MySQL-python部署(Python2.7) - -- CentOS - - ``` - sudo yum install -y MySQL-python - ``` - -- Ubuntu - - ``` - sudo apt-get install -y python-pip - sudo pip install MySQL-python - ``` - - - ## 常见问题 ### 1. Python命令出错 +- SyntaxError报错 ``` File "deploy.py", line 62 print helpMsg @@ -523,19 +497,17 @@ python2.7+版本安装`MySQL-python`依赖包方法: SyntaxError: Missing parentheses in call to "print". Did you mean print(helpMsg)? ``` -答:检查Python版本 - -### 2. 使用Python2时找不到MySQLdb - +- 找不到fallback关键字 ``` -Traceback (most recent call last): -... -ImportError: No module named MySQLdb +File "/home/ubuntu/webase-deploy/comm/utils.py", line 127, in getCommProperties + value = cf.get('common', paramsKey,fallback=None) +TypeError: get() got an unexpected keyword argument 'fallback' ``` -答:需要安装MySQL-python,安装请参看 [附录](#mysql-python) +答:检查[Python版本](#checkpy),推荐使用python3.5及以上版本 -### 3. 使用Python3时找不到pymysql + +### 2. 使用Python3时找不到pymysql ``` Traceback (most recent call last): @@ -545,23 +517,11 @@ ImportError: No module named 'pymysql' 答:需要安装PyMySQL,安装请参看 [pymysql](#pymysql-python3-5) -### 4. 安装MySQL-python遇到问题 - -``` -Command "python setup.py egg_info" failed with error code 1 -``` - -答:运行下面两个命令 -``` -pip install --upgrade setuptools -python -m pip install --upgrade pip -``` - -### 5. 部署时某个组件失败,重新部署提示端口被占用问题 +### 3. 部署时某个组件失败,重新部署提示端口被占用问题 答:因为有个别组件是启动成功的,需先执行“python deploy.py stopAll”将其停止,再执行“python deploy.py installAll”部署全部。 -### 6. 管理平台启动时Nginx报错 +### 4. 管理平台启动时Nginx报错 ``` ... @@ -573,7 +533,7 @@ Exception: execute cmd error ,cmd : sudo /usr/local/nginx/sbin/nginx -c /data/a 答:缺少/etc/nginx/mime.types文件,建议重装nginx。 -### 7. 部署时数据库访问报错 +### 5. 部署时数据库访问报错 ``` ... @@ -590,7 +550,7 @@ OperationalError: (1045, "Access denied for user 'root'@'localhost' (using passw 答:确认数据库用户名和密码 -### 8. 节点sdk目录不存在 +### 6. 节点sdk目录不存在 ``` ... @@ -599,17 +559,17 @@ OperationalError: (1045, "Access denied for user 'root'@'localhost' (using passw 答:确认节点安装目录下有没有sdk目录(企业部署工具搭建的链可能没有),如果没有,需手动创建"mkdir sdk",并将节点证书(ca.crt、node.crt、node.key)复制到该目录,再重新部署。 -### 9. 前置启动报错“nested exception is javax.net.ssl.SSLException” +### 7. 前置启动报错“nested exception is javax.net.ssl.SSLException” ``` ... nested exception is javax.net.ssl.SSLException: Failed to initialize the client-side SSLContext: Input stream not contain valid certificates. ``` -答:CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点,因此在使用CentOS操作系统时,推荐从[OpenJDK网站](https://jdk.java.net/java-se-ri/11)自行下载。 +答:CentOS的yum仓库的OpenJDK缺少JCE(Java Cryptography Extension),导致Web3SDK无法正常连接区块链节点,因此在使用CentOS操作系统时,推荐使用[OracleJDK](#jdk)。 -### 10.前置启动报错“Processing bcos message timeout” +### 8.前置启动报错“Processing bcos message timeout” ``` ... @@ -618,9 +578,9 @@ org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating ... ``` -答:一些Oracle JDK版本缺少相关包,导致节点连接异常。推荐使用OpenJDK,从[OpenJDK网站](https://jdk.java.net/java-se-ri/11)自行下载。 +答:一些OpenJDK版本缺少相关包,导致节点连接异常。推荐使用[OracleJDK](#jdk)。 -### 11. 服务进程起来了,服务不正常 +### 9. 服务进程起来了,服务不正常 ``` ... @@ -629,36 +589,41 @@ org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating 答:查看日志,确认问题原因。确认后修改重启,如果重启提示服务进程在运行,先执行“python deploy.py stopAll”将其停止,再执行“python deploy.py startAll”重启。 -### 12. WeBASE-Web登录页面的验证码加载不出来 - -答:检查WeBASE-Node-Manager后台服务是否已启动成功:在webase-node-mgr目录下,运行`bash status.sh`或者查看目录中`log/WeBASE-Node-Manager.log`日志文件,查看是否启动失败; - -### 13. WeBASE CDN加速服务 - -答:WeBASE CDN 加速服务提供 WeBASE 各子系统安装包的下载服务。 - -为了提供更稳定的下载服务,从 WeBASE v1.4.0 开始使用新的 CDN 下载地址。具体使用方法如下: - -CDN 下载地址: -```Bash -https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/{release_version}/webase-{subsystem}.zip -``` - -其中`{release_version}`为`v1.x.x`格式,`{subsystem}`则是子系统名字,支持下载`sign, front, node-mgr, web`子系统的zip安装包(全小写),暂不支持webase-transaction的安装包下载。 - -可以直接通过`wget`或者`curl -O`命令直接获取安装包。比如: - -- 获取WeBASE-Node-Manager v1.4.0的安装包`webase-node-mgr.zip` +### 10. WeBASE-Web登录页面的验证码加载不出来 + +答:检查WeBASE-Node-Manager后台服务是否已启动成功。若启动成功,检查后台日志: + +* 进入 `webase-node-mgr` 目录下,执行 `bash status.sh` 检查服务是否启动,如果服务没有启动,运行 `bash start.sh` 启动服务; + +* 如果服务已经启动,按照如下修改日志级别 + * `webase-node-mgr/conf/application.yml` + + ``` + #log config + logging: + level: + com.webank.webase.node.mgr: debug + ``` + + * `webase-node-mgr/conf/log/log4j2.xml` + + ``` + + + + + + + ``` -``` -wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.0/webase-node-mgr.zip -// 或 -curl -O https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.0/webase-node-mgr.zip -``` +* 修改日志level后,重启服务 `bash stop.sh && bash start.sh` +* 重启服务后,检查日志文件 `log/WeBASE-Node-Manager.log`。 + + * 检查是否有异常信息。如果有异常信息,根据具体的异常信息检查环境配置,或者通过搜索引擎进行排查。 -### 14. WeBASE代码仓库国内gitee镜像 +### 11. WeBASE 国内镜像与CDN加速服务 -答:WeBASE代码仓库在国内的gitee镜像地址为`https://gitee.com/WeBank/WeBASE`,WeBASE其他子系统的仓库则是`https://gitee.com/WeBank/`+ `WeBASE-XXX`,如WeBASE-Front的gitee代码仓库为`https://gitee.com/WeBank/WeBASE-Front` +答:WeBASE CDN 加速服务提供 WeBASE 各子系统安装包的下载服务,可参考[国内镜像和CDN加速攻略](./mirror.html) diff --git a/docs/WeBASE/introduction.md b/docs/WeBASE/introduction.md index 5b22f883..6bbed8d2 100644 --- a/docs/WeBASE/introduction.md +++ b/docs/WeBASE/introduction.md @@ -26,24 +26,27 @@ WeBASE所有子系统独立存在,均可独立部署,独立提供服务。 ![[]](../../images/WeBASE/function.png) ## 各子系统简介 -- **节点前置服务** [WeBASE-Front](https://github.com/WeBankFinTech/WeBASE-Front) 集成web3sdk,提供RESTful风格的接口,客户端可以使用http的形式和节点进行交互,内置内存数据库,采集节点健康度数据。内置web控制台,实现节点的可视化操作。 + +- **节点前置服务** [WeBASE-Front仓库](https://github.com/WeBankFinTech/WeBASE-Front) 集成web3sdk,提供RESTful风格的接口,客户端可以使用http的形式和节点进行交互,内置内存数据库,采集节点健康度数据。内置web控制台,实现节点的可视化操作。 - **节点管理服务** -[WeBASE-Node-Manager](https://github.com/WeBankFinTech/WeBASE-Node-Manager) +[WeBASE-Node-Manager仓库](https://github.com/WeBankFinTech/WeBASE-Node-Manager) 处理前端页面所有web请求,管理各个节点的状态,管理链上所有智能合约,对区块链的数据进行统计、分析,对异常交易的审计,私钥管理等。 - **WeBASE管理平台** -[WeBASE-Web](https://github.com/WeBankFinTech/WeBASE-Web) +[WeBASE-Web仓库](https://github.com/WeBankFinTech/WeBASE-Web) 可视化操作平台,可基于此平台查看节点信息,开发智能合约等。 - **交易服务** -[WeBASE-Transcation](https://github.com/WeBankFinTech/WeBASE-Transcation) 接收交易请求,缓存交易到数据库中,异步上链,可大幅提升吞吐量,解决区块链的tps瓶颈。 +[WeBASE-Transcation仓库](https://github.com/WeBankFinTech/WeBASE-Transcation) 接收交易请求,缓存交易到数据库中,异步上链,可大幅提升吞吐量,解决区块链的tps瓶颈。 - **私钥托管和签名服务** -[WeBASE-Sign](https://github.com/WeBankFinTech/WeBASE-Sign) 托管用户私钥,提供云端签名。 +[WeBASE-Sign仓库](https://github.com/WeBankFinTech/WeBASE-Sign) 托管用户私钥,提供云端签名。 - **数据导出代码生成工具** -[WeBASE-Codegen-Monkey](https://github.com/WeBankFinTech/WeBASE-Codegen-Monkey) 代码生成工具,通过配置可以生成数据导出的核心代码。 +[WeBASE-Codegen-Monkey仓库](https://github.com/WeBankFinTech/WeBASE-Codegen-Monkey) 代码生成工具,通过配置可以生成数据导出的核心代码。 - **数据导出服务** -[WeBASE-Collect-Bee](https://github.com/WeBankFinTech/WeBASE-Collect-Bee) 导出区块链上的基础数据,如当前块高、交易总量等,通过智能合约的配置,导出区块链上合约的业务数据,包括event、构造函数、合约地址、执行函数的信息等。 +[WeBASE-Collect-Bee仓库](https://github.com/WeBankFinTech/WeBASE-Collect-Bee) 导出区块链上的基础数据,如当前块高、交易总量等,通过智能合约的配置,导出区块链上合约的业务数据,包括event、构造函数、合约地址、执行函数的信息等。 + +各子系统的技术文档可到[WeBASE子系统文档](https://fintech.webank.com/developer/docs/webase/docs/WeBASE/subsystem.html)中查看 \ No newline at end of file diff --git a/docs/WeBASE/mirror.md b/docs/WeBASE/mirror.md new file mode 100644 index 00000000..3cbf2e8f --- /dev/null +++ b/docs/WeBASE/mirror.md @@ -0,0 +1,103 @@ +# 国内镜像和CDN加速攻略 +本节为访问GitHub较慢的用户提供国内源码镜像与安装包下载地址,以及WeBASE文档加速访问介绍。 + +## WeBASE及子系统源码及安装包 + +### 源码同步 + +WeBASE当前仓库源码位于[https://github.com/WebankFinTech/WeBASE](https://github.com/WebankFinTech/WeBASE),每个新的版本发布会将代码合入master分支。 + +为了方便国内用户,我们同样在gitee上提供了镜像仓库[https://giteee.com/Webank/WeBASE](https://giteee.com/Webank/WeBASE),每次新版本发布后,镜像仓库会同步GitHub上官方仓库的更新,如果从GitHub下载失败,请尝试使用Gitee镜像仓库。 + +WeBASE各子系统的Github代码仓库则是`https://github.com/WebankFinTech/` + `WeBASE-XXX`,对应的gitee仓库则是`https://gitee.com/WeBank/` + `WeBASE-XXX` + +如WeBASE-Front的Github代码仓库为`https://github.com/WebankFinTech/WeBASE-Front`,Gitee代码仓库为`https://gitee.com/WeBank/WeBASE-Front` + +### 一键部署与安装包 + +WeBASE每个新版本发布后,会在[WeBASELargefiles](https://github.com/WeBankFinTech/WeBASELargefiles/releases)GitHub的Releases中提供对应的WeBASE一键部署工具和对应安装包。 + +其中WeBASELargefiles提供webase-deploy一键部署工具(即WeBASE源码中`/deploy`文件夹),以及webase-front.zip, webase-node-mgr.zip, webase-sign.zip, webase-web.zip子系统的安装包。 + +同时提供以下国内镜像,**可加速下载安装包**: +```Bash +https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/{release_version}/webase-{subsystem}.zip +``` +其中`{release_version}`为`v1.x.x`格式,`{subsystem}`则是子系统名字。 + +支持下载`sign, front, node-mgr, web`子系统的zip安装包(全小写),暂不支持webase-transaction的安装包下载。 + +*注:可视化部署中通过国内镜像手动下载docker镜像,文件名则是`docker-fisco-webase.tar`或国密版`docker-fisco-webase-gm.tar`* + +## WeBASE文档 + +WeBASE文档使用readthedocs管理,全部开源于[https://webasedoc.readthedocs.io/zh_CN/latest/index.html](https://webasedoc.readthedocs.io/zh_CN/latest/index.html),同样提供国内镜像文档[https://fintech.webank.com/developer/docs/webase/index.html](https://fintech.webank.com/developer/docs/webase/index.html),*由于网站资源更新周期安排,国内镜像文档更新会比readthedocs有所延迟*。 + +每个版本发布会为上个版本的文档打Tag,新版本的文档会合入主干分支,文档由于会持续改进,所以是下个版本发布才打上个版本的tag。readthedocs文档支持下载PDF格式,方便用户使用。 + +## 举例:使用国内镜像进行一键部署 + +本节WeBASE 1.4.1为例进行一键部署,一键部署会默认使用国内镜像下载安装包,下面仅演示关键步骤,具体操作可参考[WeBASE一键部署](./install.html) + +### 下载WeBASE一键部署工具 + +```bash +wget https://github.com/WeBankFinTech/WeBASELargeFiles/releases/download/v1.4.0/webase-deploy.zip +``` + +如果下载失败请尝试`git clone https://github.com/WeBankFinTech/WeBASE.git`,并使用`WeBASE/deploy`目录的部署脚本即可。 + +### 单独下载WeBASE子系统的安装包 + +WeBASE一键部署(webase-deploy)会自动下载子系统安装包,用户也可以手动下载安装包或编译源码得到安装包,并复制到webase-deploy目录下。 + +如需手动下载某一子系统的安装包,可以直接通过`wget`或者`curl -O`命令直接获取安装包。比如: + +- 获取WeBASE-Node-Manager v1.4.1的安装包`webase-node-mgr.zip` + +``` +wget https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.1/webase-node-mgr.zip +// 或 +curl -LO https://osp-1257653870.cos.ap-guangzhou.myqcloud.com/WeBASE/releases/download/v1.4.1/webase-node-mgr.zip +``` + +若通过源码编译获取安装包并用于一键部署工具,需要进行文件夹的重命名,参考下一章节。 + +## 举例:使用国内源码镜像编译WeBASE-Front + +本节以WeBASE-Front子系统为例,从gitee镜像下载源码并编译,编译后的配置方法,请参考各子系统的安装部署文档。 + +### 下载源码 + +```bash +git clone https://gitee.com/WeBank/WeBASE-Front.git +``` + +### 编译源码 + +依据WeBASE-Front节点前置安装文档的[环境要求](../WeBASE-Front/install.html)进行配置,如jdk(oracle jdk8及以上),配置gradle(4.10或以上)或直接使用gradlew脚本进行编译 + +```bash +// java版本 +java -version +// 进入源码目录 +cd WeBASE-Front +// 已有gradle时,使用gradle +gradle build -x test +// 不配置gradle,直接使用gradlew +chmod +x ./gradlew && ./gradlew build -x test +``` + +### 修改配置 +编译完成后,将在当前目录得到`dist`文件夹 + +重命名dist包中的`conf_template`为`conf`后,并将节点的sdk证书复制到`conf`目录后,即可启动。 + +修改配置的具体方法,可参考[WeBASE-Front部署](../WeBASE-Front/install.html) +``` +cd dist +mv conf_template conf +// 此处需要复制ca.crt, node.crt, node.key +cp /fisco/nodes/127.0.0.1/sdk/* ./conf +bash start.sh +``` diff --git a/docs_en/conf.py b/docs_en/conf.py index f7589a68..a7595ef1 100644 --- a/docs_en/conf.py +++ b/docs_en/conf.py @@ -110,7 +110,7 @@ # The short X.Y version. version = '1.4' # The full version, including alpha/beta/rc tags. -release = 'v1.4.0' +release = 'v1.4.1' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/images/WeBASE-Console-Suit/developer_mode_enable.png b/images/WeBASE-Console-Suit/developer_mode_enable.png new file mode 100644 index 00000000..506d5982 Binary files /dev/null and b/images/WeBASE-Console-Suit/developer_mode_enable.png differ diff --git a/images/WeBASE-Console-Suit/governance_committee.png b/images/WeBASE-Console-Suit/governance_committee.png new file mode 100644 index 00000000..fb533c84 Binary files /dev/null and b/images/WeBASE-Console-Suit/governance_committee.png differ diff --git a/images/WeBASE-Console-Suit/governance_operator.png b/images/WeBASE-Console-Suit/governance_operator.png new file mode 100644 index 00000000..85eaffcf Binary files /dev/null and b/images/WeBASE-Console-Suit/governance_operator.png differ diff --git a/images/WeBASE-Console-Suit/login_user_add_2.png b/images/WeBASE-Console-Suit/login_user_add_2.png index f9b6ee76..3520bf97 100644 Binary files a/images/WeBASE-Console-Suit/login_user_add_2.png and b/images/WeBASE-Console-Suit/login_user_add_2.png differ diff --git a/index.rst b/index.rst index 7486f463..d8fae7aa 100644 --- a/index.rst +++ b/index.rst @@ -6,15 +6,15 @@ WeBASE 技术文档 .. admonition:: Overview - - WEBASE整体架构,请参考 `整体架构 <./docs/WeBASE/introduction.html>`_ - - WEBASE搭建,请参考 `安装 <./docs/WeBASE/install.html>`_ - - WeBASE-Front详细介绍请参考 `WeBASE-Front <./docs/WeBASE-Front/README.html>`_ - - WeBASE-Node-Manager详细介绍请参考 `WeBASE-Node-Manager <./docs/WeBASE-Node-Manager/README.html>`_ - - WeBASE-Web详细介绍请参考 `WeBASE-Web <./docs/WeBASE-Web/README.html>`_ - - WeBASE-Codegen-Monkey详细介绍请参考 `WeBASE-Codegen-Monkey <./docs/WeBASE-Codegen-Monkey/index.html>`_ - - WeBASE-Collect-Bee详细介绍请参考 `WeBASE-Collect-Bee <./docs/WeBASE-Collect-Bee/index.html>`_ - - WeBASE-Sign详细介绍请参考 `WeBASE-Sign <./docs/WeBASE-Sign/README.html>`_ - - WeBASE-Transaction详细介绍请参考 `WeBASE-Transaction <./docs/WeBASE-Transaction/index.html>`_ + - WEBASE整体架构,请参考 `整体架构文档 <./docs/WeBASE/introduction.html>`_ + - WEBASE搭建,请参考 `安装文档 <./docs/WeBASE/install.html>`_ 或`WeBASE源码仓库 `_ + - WeBASE-Front详细介绍请参考 `WeBASE-Front文档 <./docs/WeBASE-Front/README.html>`_ 或`WeBASE-Front源码仓库 `_ + - WeBASE-Node-Manager详细介绍请参考 `WeBASE-Node-Manager文档 <./docs/WeBASE-Node-Manager/README.html>`_ 或`WeBASE-Node-Manager源码仓库 `_ + - WeBASE-Web详细介绍请参考 `WeBASE-Web文档 <./docs/WeBASE-Web/README.html>`_ 或`WeBASE-Web源码仓库 `_ + - WeBASE-Codegen-Monkey详细介绍请参考 `WeBASE-Codegen-Monkey文档 <./docs/WeBASE-Codegen-Monkey/index.html>`_ 或`WeBASE-Codegen-Monkey源码仓库 `_ + - WeBASE-Collect-Bee详细介绍请参考 `WeBASE-Collect-Bee文档 <./docs/WeBASE-Collect-Bee/index.html>`_ 或`WeBASE-Collect-Bee源码仓库 `_ + - WeBASE-Sign详细介绍请参考 `WeBASE-Sign文档 <./docs/WeBASE-Sign/README.html>`_ 或`WeBASE-Sign源码仓库 `_ + - WeBASE-Transaction详细介绍请参考 `WeBASE-Transaction文档 <./docs/WeBASE-Transaction/index.html>`_ 或`WeBASE-Transaction源码仓库 `_ .. toctree:: :maxdepth: 3 @@ -24,6 +24,7 @@ WeBASE 技术文档 docs/WeBASE-Console-Suit/index.md docs/WeBASE/subsystem.md docs/WeBASE/quick-start.md + docs/WeBASE/mirror.md docs/WeBASE/CONTRIBUTING.md docs/WeBASE/ChangeLOG.md .. diff --git a/release_note.txt b/release_note.txt index 0d0c52f8..66d62a80 100644 --- a/release_note.txt +++ b/release_note.txt @@ -1 +1 @@ -v1.4.0 +v1.4.1