Skip to content

Commit

Permalink
fix all-bugs of web3sdk and sdk
Browse files Browse the repository at this point in the history
  • Loading branch information
cyjseagull committed Nov 7, 2018
1 parent 985cbd5 commit 00a5cab
Show file tree
Hide file tree
Showing 23 changed files with 203 additions and 254 deletions.
2 changes: 1 addition & 1 deletion docs/features/CNS/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ CNS中,调用合约接口时,传入合约映射的name,接口名称以及参数
#### a. 管理合约模块
在管理合约中保存命名服务中name与合约信息的映射关系,合约具体信息包含合约地址、abi、版本号等,并且提供接口供外部辅助工具cns_manager.js实现添加、更新、覆盖、重置功能。同时,底层交易框架内存中会有一份该合约内容的备份,在该合约内容发生变动时,内存同步更新。
- 当前CNS中实现的映射关系为 : 合约名+合约版本号 => 合约详情(abi 合约地址等)
- 合约实现: systemcontractv2/ContractAbiMgr.sol
- 合约实现: systemcontract/ContractAbiMgr.sol
- 辅助合约: ContractBase.sol(位于tool/ContractBase.sol)
- 对部署的合约进行多版本版本管理,可以让合约继承ContractBase.sol,在构造函数中调用ContractBase.sol的构造函数初始化version成员。

Expand Down
2 changes: 1 addition & 1 deletion docs/features/UTXO/UTXO-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@

## 2 使用说明

本文档分别提供UTXO交易在web3sdk(以下简称sdk)及nodejs中的使用说明。其中sdk的一般性使用说明请参考[web3sdk使用说明文档](https://github.com/FISCO-BCOS/FISCO-BCOS/blob/master/doc/web3sdk%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md),其中nodejs的一般性使用说明请参考[FISCO BCOS区块链操作手册](https://github.com/FISCO-BCOS/FISCO-BCOS/tree/master/doc/manual)。如无特定说明,sdk执行UTXO交易命令的位置位于web3sdk工程根目录执行gradle build生成的dist/bin目录下,nodejs执行UTXO交易命令的位置位于FISCO-BCOS/tool目录下。
本文档分别提供UTXO交易在web3sdk(以下简称sdk)及nodejs中的使用说明。其中sdk的一般性使用说明请参考[web3sdk使用说明文档](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/web3sdk/index.html),其中nodejs的一般性使用说明请参考[FISCO BCOS区块链操作手册](https://github.com/FISCO-BCOS/FISCO-BCOS/tree/master/doc/manual)。如无特定说明,sdk执行UTXO交易命令的位置位于web3sdk工程根目录执行gradle build生成的dist/bin目录下,nodejs执行UTXO交易命令的位置位于FISCO-BCOS/tool目录下。

### 2.0 前期准备:启用UTXO交易

Expand Down
10 changes: 5 additions & 5 deletions docs/features/弹性联盟链共识框架/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,19 +123,19 @@ babel-node tool.js NodeAction registerNode xxx.json

##### 在新链上启用这个功能

只需要按照文档正常部署系统合约即可,在`systemcontractv2`目录下运行:
只需要按照文档正常部署系统合约即可,在`systemcontract`目录下运行:

```
bable-node deploy.js
```

#### 二、使用规则

所有和该功能相关的合约与脚本工具都位于`systemcontractv2`目录下
所有和该功能相关的合约与脚本工具都位于`systemcontract`目录下

##### 1.编写规则

用户需要根据自己的需要,编写自己的规则。编写规则的文件为在`systemcontractv2`目录下的`ConsensusControl.sol`文件中的函数:
用户需要根据自己的需要,编写自己的规则。编写规则的文件为在`systemcontract`目录下的`ConsensusControl.sol`文件中的函数:

ConsensusControl.sol:

Expand Down Expand Up @@ -320,5 +320,5 @@ contract ConsensusControl is ConsensusControlAction {
若希望在已有的链上启用这个新的功能,则要求**重新部署系统合约**,或至少重新部署 `NodeAction.sol``ConsensusControlMgr.sol`,并将这两个合约重新注册到已有的系统合约中,之后才能使用 `ConsensusControlTool.js` 工具

也就是说在已有的链中替换了新版本的执行文件并希望启用该功能,需要:
* 重新部署一次系统合约,并重新执行之前对系统合约管理过的组件相关操作,并把**除了**`NodeAction.sol`之外的**原来的系统合约所管理的合约组件**重新注册到新的系统合约中(首先先获取原系统合约管理组件的地址及对应关系,并参考 systemcontractv2/deploy.js 文件的写法重新注册到新系统合约中),之后重新按照原来添加节点的方式重新添加节点恢复到原来的连接状态
* 重新部署 `NodeAction.sol``ConsensusControlMgr.sol`(参考 systemcontractv2/deploy.js 文件),并将这两个合约重新注册到已有的系统合约中,并重新按照原来添加节点的方式重新添加节点恢复到原来的连接状态
* 重新部署一次系统合约,并重新执行之前对系统合约管理过的组件相关操作,并把**除了**`NodeAction.sol`之外的**原来的系统合约所管理的合约组件**重新注册到新的系统合约中(首先先获取原系统合约管理组件的地址及对应关系,并参考 systemcontract/deploy.js 文件的写法重新注册到新系统合约中),之后重新按照原来添加节点的方式重新添加节点恢复到原来的连接状态
* 重新部署 `NodeAction.sol``ConsensusControlMgr.sol`(参考 systemcontract/deploy.js 文件),并将这两个合约重新注册到已有的系统合约中,并重新按照原来添加节点的方式重新添加节点恢复到原来的连接状态
20 changes: 0 additions & 20 deletions docs/features/易用性浅谈/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,6 @@ FISCO BCOS是聚焦于金融领域的区块链底层平台,期望通过开源

FISCO BCOS的易用性涵盖了安装部署、代码开发、业务构建、运营运维等方面,在以下5点的表现尤为突出。


### 一键安装脚本

FISCO BCOS支持一键快速安装部署,几条命令就可以运行FISCO BCOS。下载代码后,只需一步,即可完成安装。简单快捷,且成功率高,尤其适合初学者快速体验FISCO BCOS。

一键安装支持两种场景:

- 1)单机器2节点:即场景涉及两个区块链节点的部署,两个节点都在一台机器上;两个节点相互连接,形成一条由两个节点组成的区块链。部署只需运行shell,执行成功后,即可通过查看进程及日志,判断节点是否运行正常

- 2)两机器4节点:即场景涉及4个区块链节点的部署,其中两个在FISCO BCOS所安装机器本地,两个在另一台机器上;4个节点相互连接,形成一条由4个节点组成的区块链。部署需先生成节点,再分别启动两台机器的节点,随后即可在任一机器上执行shell验证是否正常运行。

一键安装脚本可用于开发和体验环境的构建,如需添加更多节点以组成规模更大的网络,详细安装方法请参考FISCO BCOS使用说明书相关章节。

附:

[一键安装FISCO BCOS脚本使用说明](https://github.com/bcosorg/bcos/wiki/%E4%B8%80%E9%94%AE%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2)

[FISCO BCOS使用说明书](https://github.com/bcosorg/bcos/blob/master/doc/manual/manual.md)


### SDK工具

FISCO BCOS平台提供的SDK工具,可同时支持java和node.js两种开发语言。在SDK基础上,开发者可开发面向最终用户的客户端程序,调用链上节点的功能接口,在客户端上即可以访问链上部分或全部的数据,向区块链发起交易。
Expand Down
55 changes: 28 additions & 27 deletions docs/features/机构证书准入/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
>
> (3)节点在配置了systemproxyaddress字段后,已经重启使得系统合约生效。
>
> (4)/mydata/FISCO-BCOS/tools/web3lib/下的config.js已经正确的配置了节点的RPC端口。
> (4)/mydata/FISCO-BCOS/web3lib/下的config.js已经正确的配置了节点的RPC端口。
### 2.1 配置节点证书

Expand All @@ -32,7 +32,7 @@

FISCO BCOS通过授权某节点对应的公钥server.crt,控制此节点是否能够与其它节点正常通信。

**注意:若要尝试使用[AMOP链上链下](amop使用说明文档.md),请直接使用sample目录下的证书。AMOP暂不支持与新生成的证书进行连接。**
**注意:若要尝试使用[AMOP(链上链下)](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/features/AMOP/README.html),请直接使用sample目录下的证书。AMOP暂不支持与新生成的证书进行连接。**

**(1)生成根证书ca.crt**

Expand Down Expand Up @@ -95,8 +95,6 @@ openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out s

### 2.2 开启所有节点的SSL验证功能

**注意:1.3+版本已自动配置,若使用1.3+版本,可跳过本节。**

在进行节点证书授权管理前,需开启区块链上每个节点的SSL验证功能。

> 此处以创世节点为例,其它节点也应采用相同的操作。
Expand Down Expand Up @@ -142,10 +140,10 @@ serial=8A4B2CDE94348D22

#### 2.3.2 编写证书准入状态文件

> 在tools/systemcontract目录下编写
> 在systemcontract目录下编写
```shell
/mydata/FISCO-BCOS/tools/systemcontract
/mydata/FISCO-BCOS/systemcontract
vim ca.json
```

Expand All @@ -165,26 +163,29 @@ vim ca.json
```

证书准入状态文件其它字段说明如下。

```eval_rst
+-------------+------------------------------+
| **字段** | **说明** |
+=============+==============================+
| hash | 公钥证书序列号 |
+-------------+------------------------------+
| pubkey | 公钥证书,填空即可 |
+-------------+------------------------------+
| orgname | 机构名称,填空即可 |
+-------------+------------------------------+
| notbefore | 证书生效时间 |
+-------------+------------------------------+
| notafter | 证书过期时间 |
+-------------+------------------------------+
| status | 证书状态 0:不可用 1:可用 |
+-------------+------------------------------+
| whitelist | ip白名单,填空即可 |
+-------------+------------------------------+
| blacklist | ip黑名单,填空即可 |
+-------------+------------------------------+
+-------------+---------------------+
|**字段** | **说明** |
+-------------+---------------------+
|hash | 公钥证书序列号 |
+-------------+---------------------+
|pubkey | 公钥证书,填空即可 |
+-------------+---------------------+
|orgname | 机构名称,填空即可 |
+-------------+---------------------+
|notbefore | 证书生效时间 |
+-------------+---------------------+
|notafter | 证书过期时间 |
+-------------+---------------------+
| status | 证书状态 : |
| | 0:不可用 1:可用 |
+-------------+---------------------+
| whitelist | ip白名单,填空即可 |
+-------------+---------------------+
| blacklist | ip黑名单,填空即可 |
+-------------+---------------------+
```

#### 2.3.3 将证书准入状态写入系统合约
Expand Down Expand Up @@ -238,7 +239,7 @@ babel-node tool.js ConfigAction set CAVerify false
> 修改相应证书对应的证书准入状态文件ca.json
```shell
/mydata/FISCO-BCOS/tools/systemcontract
/mydata/FISCO-BCOS/systemcontract
vim ca.json
```

Expand Down Expand Up @@ -286,7 +287,7 @@ whitelist=
blacklist=
```

## 三、证书注意事项:
##三、证书注意事项:

妥善保管 server.key,切勿泄露,同时应把证书,server.crt 和 server.key 备份到安全位置

Expand Down
4 changes: 2 additions & 2 deletions docs/features/系统参数/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,10 @@

举例: 更改出块时间间隔(注意:参数值目前get/set都是以16进制计算表示的)

cd systemcontractv2;
cd systemcontract;
babel-node tool.js ConfigAction set intervalBlockTime 1000

举例: 允许空块落盘

cd systemcontractv2;
cd systemcontract;
babel-node tool.js ConfigAction set omitEmptyBlock false
2 changes: 1 addition & 1 deletion docs/features/系统合约/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ FISCO BCOS区块链为了满足准入控制、身份认证、配置管理、权

## 实现概述

当前FISCO BCOS对系统代理模块、节点管理模块、机构证书模块、权限管理模块、全网配置模块都做了对应的合约实现。合约源代码目录为systemcontractv2/。下面依次介绍各个合约实现的接口与逻辑。
当前FISCO BCOS对系统代理模块、节点管理模块、机构证书模块、权限管理模块、全网配置模块都做了对应的合约实现。合约源代码目录为systemcontract/。下面依次介绍各个合约实现的接口与逻辑。

### 系统代理合约

Expand Down
73 changes: 20 additions & 53 deletions docs/features/群签名环签名/README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,5 @@
# 群签名&&环签名

## 目录
<!-- TOC -->

- [1 基本介绍](#1-基本介绍)
- [1.1 场景](#11-场景)
- [1.2 相关代码](#12-相关代码)
- [2 部署](#2-部署)
- [2.1 开启群签名&&环签名ethcall](#21-开启群签名环签名ethcall)
- [2.2 关闭群签名&&环签名ethcall](#22-关闭群签名环签名ethcall)
- [3 使用](#3-使用)
- [4 注意事项](#4-注意事项)

<!-- TOC -->

<br>
<br>

## 1 基本介绍

### 1.1 场景
Expand All @@ -43,21 +26,29 @@ FISCO-BCOS实现了群签名和环签名链上验证功能,主要包括如下

<br>

[返回目录](#目录)

<br>


### 1.2 相关代码

FISCO BCOS提供了群签名&&环签名链上验证功能,下表详细介绍了相关代码模块:

| <div align = left>模块</div> | <div align = left>代码</div> | <div align = left>说明</div> |
| -------------------------- | ---------------------------------------- | ---------------------------------------- |
| 依赖软件安装模块 | scripts/install_pbc.sh<br>deploy_pbc.sh | 群签名库的实现依赖于pbc和pbc-sig库,可调用deploy_pbc.sh安装pbc和pbc-sig |
| 群签名&&环签名库源码 | deps/src/group_sig_lib.tgz | 群签名&&环签名库源码压缩包 |
| 编译模块 | cmake/FindPBC.cmake<br>cmake/ProjectGroupSig.cmake | 在FISCO BCOS中编译群签名&&环签名库源码相关的cmake文件 |
| 群签名&&环签名验证实现模块 | libevm/ethcall/EthcallGroupSig.h<br>libevm/ethcall/EthcallRingSig.h | 使用ethcall,调用群签名&&环签名库,实现群签名&&环签名链上验证功能 |
```eval_rst
+-------------------+----------------------------------+-----------------------------------------------------------+
| 模块 | 代码 | 说明 |
+-------------------+----------------------------------+-----------------------------------------------------------+
|依赖软件安装模块 | scripts/install_pbc.sh | 群签名库的实现依赖于pbc和pbc-sig库, 调用deploy_pbc.sh安装 |
| | deploy_pbc.sh | |
+-------------------+----------------------------------+-----------------------------------------------------------+
|群签名,环签名源码 | deps/src/group_sig_lib.tgz | 群签名&&环签名库源码压缩包 |
+-------------------+----------------------------------+-----------------------------------------------------------+
|实现模块 | libevm/ethcall/EthcallGroupSig.h | 使用ethcall,调用群签名&&环签名库, |
| | libevm/ethcall/EthcallRingSig.h | 实现群签名&&环签名链上验证功能 |
+-------------------+----------------------------------+-----------------------------------------------------------+
|编译模块 | cmake/FindPBC.cmake | FISCO BCOS中编译群签名&&环签名库源码相关的cmake文件 |
| | cmake/ProjectGroupSig.cmake | |
+-------------------+----------------------------------+-----------------------------------------------------------+
```

为了给用户提供最大的使用灵活性,FISCO BCOS支持群签名&&环签名ethcall开关功能(默认关闭群签名&&环签名ethcall):

Expand All @@ -67,19 +58,14 @@ FISCO BCOS提供了群签名&&环签名链上验证功能,下表详细介绍

下节详细描述了开启和关闭群签名&&环签名ethcall的部署方法。

<br>

[返回目录](#目录)

<br>
<br>


## 2 部署


开启和关闭群签名&&环签名ethcall之前,必须保证您的机器可正确部署FISCO BCOS,FISCO BCOS详细部署方法可参考[FISCO BCOS区块链操作手册](https://github.com/FISCO-BCOS/FISCO-BCOS/tree/master/doc/manual).


### 2.1 开启群签名&&环签名ethcall


Expand Down Expand Up @@ -153,9 +139,6 @@ bash start.sh

<br>

[返回目录](#目录)

<br>


### 2.2 关闭群签名&&环签名ethcall
Expand Down Expand Up @@ -185,9 +168,6 @@ make -j4 #注: 这里j4表明用4线程并发编译,可根据机器CPU配置
bash start.sh
```

<br>

[返回目录](#目录)

<br>

Expand All @@ -204,7 +184,7 @@ sig-service-client客户端提供了以下功能:
- 访问[群签名&&环签名服务](https://github.com/FISCO-BCOS/sig-service)rpc接口;
- 将群签名&&环签名信息写入链上(发交易)

具体使用和部署方法请参考[群签名&&环签名客户端操作手册](https://github.com/FISCO-BCOS/FISCO-BCOS/tree/master/doc/manual).
具体使用和部署方法请参考[群签名&&环签名客户端操作手册](https://github.com/FISCO-BCOS/sig-service-client).

<br>

Expand All @@ -220,12 +200,6 @@ sig-service签名服务部署在机构内,为群签名&&环签名客户端([si

sig-service的使用和部署方法请参考[群签名&&环签名RPC服务操作手册](https://github.com/FISCO-BCOS/sig-service).

<br>

[返回目录](#目录)

<br>



## 4 注意事项
Expand All @@ -252,10 +226,3 @@ sig-service的使用和部署方法请参考[群签名&&环签名RPC服务操作

[客户端sig-service-client](https://github.com/FISCO-BCOS/sig-service-client)向链上发签名信息,[群签名&&环签名服务](https://github.com/FISCO-BCOS/sig-service)为客户端提供签名生成服务

<br>

[返回目录](#目录)

<br>


8 changes: 4 additions & 4 deletions docs/guomi/gen_node.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ server.key

## 初始化普通节点环境

类似于 [创世节点环境初始化](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/guomi/genesis_node.html#id3)`_ ,普通节点使用generate_node.sh脚本初始化普通节点环境。
类似于 [创世节点环境初始化](https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/guomi/genesis_node.html#id3), 使用generate_node.sh脚本初始化普通节点环境。

```bash
# 进入脚本所在目录(设源码位于~/mydata目录)
Expand Down Expand Up @@ -86,7 +86,7 @@ State: Running (pid: 11524)
$ bash ./generate_node.sh -o ~/mydata -n node1 -l 127.0.0.1 -r 8546 -p 30304 -c 8892 -e 127.0.0.1:30303,127.0.0.1:30304 -x 0xee80d7c98cb9a840b9c4df742f61336770951875 -i 3d4fe4c876cac411d4c7180b5794198fb3b4f3e0814156410ae4184e0a51097a01bf63e431293f30af0c01a57f24477ad1704d8f676bc7e345526ba1735db6a7 -s 0xf02a10f685a90c3bfc2eccd906b75fe3feeec9ad -g
# 创建节点环境
---------- Generate node basic files ----------
RUN: sh generate_node_basic.sh -o ~/mydata -n node1 -l 127.0.0.1 -r 8546 -p 30304 -c 8892 -e 127.0.0.1:30303,127.0.0.1:30304 -x 0xee80d7c98cb9a840b9c4df742f61336770951875 -g
RUN: bash generate_node_basic.sh -o ~/mydata -n node1 -l 127.0.0.1 -r 8546 -p 30304 -c 8892 -e 127.0.0.1:30303,127.0.0.1:30304 -x 0xee80d7c98cb9a840b9c4df742f61336770951875 -g
#...此处省略若干行....
SUCCESS execution of command: sh generate_node_basic.sh -o ~/mydata -n node1 -l 127.0.0.1 -r 8546 -p 30304 -c 8892 -e 127.0.0.1:30303,127.0.0.1:30304 -x 0xee80d7c98cb9a840b9c4df742f61336770951875 -g
# 创建普通节点genesis.json
Expand Down Expand Up @@ -156,9 +156,9 @@ root 20995 0.2 0.1 2171448 13316 pts/3 Sl 09:15 0:05 ./fisco-bcos --
root 21727 0.7 0.1 2023984 14092 pts/4 Sl 09:52 0:01 ./fisco-bcos --genesis /mydata/node1/genesis.json --config /mydata/node1/config.json

# 通过最新日志check节点连接: 刷出"Recv topic"日志,表明节点连接正常
$ tail -f ~/mydata/node1/log_2018081219.log | grep "Recv topic"
$ tail -f ~/mydata/node1/log/log_2018081219.log | grep "Recv topic"
DEBUG|2018-08-12 19:34:13:659| Recv topic type:0 topics:0
DEBUG|2018-08-12 19:34:14:659| Recv topic type:0 topics:0
DEBUG|2018-08-12 19:34:15:659| Recv topic type:0 topics:0
DEBUG|2018-08-12 19:34:16:659| Recv topic type:0 topics:0
```
```
Loading

0 comments on commit 00a5cab

Please sign in to comment.