Skip to content

Commit

Permalink
quick_start/develop documents check and modify (#1692)
Browse files Browse the repository at this point in the history
  • Loading branch information
LucasLi1024 committed May 31, 2023
1 parent 02293b3 commit 0084539
Show file tree
Hide file tree
Showing 11 changed files with 157 additions and 220 deletions.
30 changes: 19 additions & 11 deletions 3.x/zh_CN/docs/develop/account.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,11 @@ bash get_account.sh
执行上面的命令,可以得到类似下面的输出,包括账户地址和以账户地址为文件名的私钥PEM文件与公钥PUB文件。

```shell
[INFO] Account Address : 0xa04beef19c812628a2aa1f0fc73e0963f84ec75e
[INFO] Private Key (pem) : accounts/0xa04beef19c812628a2aa1f0fc73e0963f84ec75e.pem
[INFO] Public Key (pem) : accounts/0xa04beef19c812628a2aa1f0fc73e0963f84ec75e.pem.pub
[INFO] Account privateHex: 0x3c73c7ee2d549c7a39fddd3e0449677f3c201f0f4c6c540c93ab38f8aab03388
[INFO] Account publicHex : 0x5309fa17ae97f81f80a1da3d6b116377ace351dffdcbfd0e91fbb3bcf0312d363c78b8aaf929b3661c1f02e8b2c318358843de6a2dcc66cc0d5260a0d6874a6e
[INFO] Account Address : 0x3d1771fb60963fbaf5906c6b2a574c77dae7c136
[INFO] Private Key (pem) : accounts/0x3d1771fb60963fbaf5906c6b2a574c77dae7c136.pem
[INFO] Public Key (pem) : accounts/0x3d1771fb60963fbaf5906c6b2a574c77dae7c136.pem.pub
```

- 指定PEM私钥文件计算账户地址
Expand All @@ -81,7 +83,9 @@ bash get_account.sh -k accounts/0xa04beef19c812628a2aa1f0fc73e0963f84ec75e.pem
执行上面的命令,结果如下

```shell
[INFO] Account Address : 0xa04beef19c812628a2aa1f0fc73e0963f84ec75e
[INFO] Account Address : 0x3d1771fb60963fbaf5906c6b2a574c77dae7c136
[INFO] Account privateHex: 0x3c73c7ee2d549c7a39fddd3e0449677f3c201f0f4c6c540c93ab38f8aab03388
[INFO] Account publicHex : 0x5309fa17ae97f81f80a1da3d6b116377ace351dffdcbfd0e91fbb3bcf0312d363c78b8aaf929b3661c1f02e8b2c318358843de6a2dcc66cc0d5260a0d6874a6e
```

#### 3. 使用脚本生成PKCS12格式私钥
Expand All @@ -95,26 +99,30 @@ bash get_account.sh -p
执行上面的命令,可以得到类似下面的输出,按照提示输入密码,生成对应的p12文件和pub文件。

```shell
[INFO] Account privateHex: 0x7fe388c7617b7b2241f0a67a789f38f29dd731ae6ce3510302ab26fd429d65ce
[INFO] Account publicHex : 0x8d90d7e3e5b88b62941b23db10f35d13d1a06265e14993d43dff8562d23fded7466c006b74fa04b71c86c20a27ca20915e2f5e01dc466af9e080ff71229957e8
[INFO] Note: the entered password cannot contain Chinese characters!
Warning: -chain option ignored with -nocerts
Enter Export Password:
Verifying - Enter Export Password:
[INFO] Account Address : 0xd97a6a101d15c228a38c09d157843d2697535f7f
[INFO] Private Key (p12) : accounts/0xd97a6a101d15c228a38c09d157843d2697535f7f.p12
[INFO] Public Key (pem) : accounts/0xd97a6a101d15c228a38c09d157843d2697535f7f.pem.pub
[INFO] Account Address : 0x6a707388d949ca429c1473e6c5ce334ad9c455be
[INFO] Private Key (p12) : accounts/0x6a707388d949ca429c1473e6c5ce334ad9c455be.p12
[INFO] Public Key (pem) : accounts/0x6a707388d949ca429c1473e6c5ce334ad9c455be.pem.pub
```

- 指定p12私钥文件计算账户地址,**按提示输入p12文件密码**

```shell
bash get_account.sh -P accounts/0xd97a6a101d15c228a38c09d157843d2697535f7f.p12
bash get_account.sh -P accounts/0x6a707388d949ca429c1473e6c5ce334ad9c455be.p12
```

执行上面的命令,结果如下

```shell
Enter Import Password:
MAC verified OK
[INFO] Account Address : 0xd97a6a101d15c228a38c09d157843d2697535f7f
[INFO] Account Address : 0x6a707388d949ca429c1473e6c5ce334ad9c455be
[INFO] Account privateHex: 0x7fe388c7617b7b2241f0a67a789f38f29dd731ae6ce3510302ab26fd429d65ce
[INFO] Account publicHex : 0x8d90d7e3e5b88b62941b23db10f35d13d1a06265e14993d43dff8562d23fded7466c006b74fa04b71c86c20a27ca20915e2f5e01dc466af9e080ff71229957e8
```

## 账户的存储
Expand Down Expand Up @@ -267,7 +275,7 @@ dcc703c0e500b653ca82273b7bfad8045d85a470

```eval_rst
.. important::
账户的管理冻结、解冻、废止操作以,均需要将开启区块链权限模式,详情请参考`权限治理使用指南 <https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/develop/committee_usage.html>`_
账户的管理冻结、解冻、废止操作,均需要将开启区块链权限模式,详情请参考`权限治理使用指南 <https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/develop/committee_usage.html>`_
```

在开启区块链权限模式之后,每次发起合约调用均会检查账户状态是否正常(tx.origin),账户的状态以存储表的形式记录在BFS `/usr/` 目录下,存储表名为 `/usr/` + 账户地址,如果查不到账户状态默认该账户为正常。BFS `/usr/` 目录底下的账户状态只有在主动设置账户状态时才会创建。**账户状态管理的接口只有治理委员才能操作。**
Expand Down
43 changes: 16 additions & 27 deletions 3.x/zh_CN/docs/develop/amop.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Java SDK支持链上信使协议AMOP(Advanced Messages Onchain Protocol),

AMOP支持任何一个订阅了某话题的订阅者都能收到该话题相关的推送消息

AMOP模块的接口类可参考文件java-sdk中的``sdk-amop/src/main/org/fisco/bcos/sdk/amop/Amop.java``文件,其中主要包含以下几个接口:
AMOP模块的接口类可参考文件java-sdk中的``src/main/java/org/fisco/bcos/sdk/v3/amop/Amop.java``文件,其中主要包含以下几个接口:

### 1.1 subscribeTopic

Expand Down Expand Up @@ -204,7 +204,11 @@ amop.subscribeTopic("MyTopic", cb);
```
## 2. 快速试用AMOP

### 第一步:下载项目
### 第一步:搭建FISCO BCOS区块链网络

参考[搭建第一个区块链网络](../quick_start/air_installation.md)搭建FISCO BCOS区块链网络。

### 第二步:下载项目

```shell
mkdir -p ~/fisco && cd ~/fisco
Expand All @@ -219,41 +223,26 @@ cd java-sdk-demo
bash gradlew build
```

### 第二步:搭建FISCO BCOS区块链网络

根据[指引](../../../quick_start/air_installation.md)搭建FISCO BCOS区块链网络。

### 第三步:配置

* 复制证书:将你搭建FISCO BCOS网络节点``nodes/${ip}/sdk/`` 目录下的证书复制到``java-sdk-demo/dist/conf``目录下。

* 修改配置:`cp config-example.toml config.toml`

### 第四步:运行Demo

#### 公有话题Demo

新打开一个终端,下载java-sdk-demo的代码,并build。

```shell
cd ~/fisco
# 获取java-sdk-demo代码
git clone https://github.com/FISCO-BCOS/java-sdk-demo

# 若因为网络问题导致长时间拉取失败,请尝试以下命令:
git clone https://gitee.com/FISCO-BCOS/java-sdk-demo

cd java-sdk-demo
# 进入dist目录
cd dist
cp ~/fisco/nodes/127.0.0.1/sdk/* conf/
```

# build项目
bash gradlew build
* 修改配置
```shell
cp conf/config-example.toml conf/config.toml
```

### 第四步:运行Demo

**运行订阅者:**

```shell
# 进入java-sdk-demo/dist目录
cd dist
# 在java-sdk-demo/dist目录
# 我们订阅名为”testTopic“的话题
java -cp "apps/*:lib/*:conf/" org.fisco.bcos.sdk.demo.amop.Subscribe testTopic
```
Expand Down
38 changes: 20 additions & 18 deletions 3.x/zh_CN/docs/develop/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@ Java SDK为区块链应用开发者提供了Java API接口,按照功能,Java
- Client接口声明位于 `Client.java` 文件中
```

**特别注意:Client接口均有两种,一种是带有node的接口,另一种是不带node的接口。带有node的接口可以让节点RPC发送请求到指定已连接的节点。如果不指定,节点RPC则会随机发送请求到节点。**

**特别注意:**
**1. Client接口均有两种,一种是带有node的接口,另一种是不带node的接口。带有node的接口可以让节点RPC发送请求到指定已连接的节点。如果不指定,节点RPC则会随机发送请求到节点。**
**2. 以下接口示例,都是关闭了节点ssl通信的前提下。若要关闭节点的ssl通信配置项,请将节点配置文件`config.ini``[rpc]` 项设置为 `disable_ssl=true`**
## 1. 合约操作接口

### sendTransaction

发送交易到区块链RPC
发送交易到区块链

**参数**

Expand Down Expand Up @@ -408,7 +409,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getBlockHashByNumber","params":[

-

### getTransactionByHash
### getTransaction

根据交易哈希获取交易信息。

Expand All @@ -422,9 +423,9 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getBlockHashByNumber","params":[

- BcosTransaction: 指定哈希对应的交易信息。

### getTransactionByHashAsync
### getTransactionAsync

根据交易哈异步希获取交易信息
根据交易哈希异步获取交易信息

**参数**

Expand Down Expand Up @@ -484,9 +485,9 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getTransactionReceipt","params":
}
}
```
### getTransactionReceiptAync
### getTransactionReceiptAsync

根据交易哈希获取交易回执信息
根据交易哈希异步获取交易回执信息

**参数**

Expand Down Expand Up @@ -553,7 +554,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getPendingTxSize","params":["gro

**参数**

- endpoint: 被查询的节点的`IP:Port`
-

**返回值**

Expand All @@ -562,7 +563,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getPendingTxSize","params":["gro
**示例:**
```
// Request
curl -X POST --data '{"jsonrpc":"2.0","method":"getPeers","params":["127.0.0.1:20200"],"id":1}' http://127.0.0.1:20200
curl -X POST --data '{"jsonrpc":"2.0","method":"getPeers","params":["group0"],"id":1}' http://127.0.0.1:20200
// Result
{
Expand Down Expand Up @@ -627,7 +628,6 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getPeers","params":["127.0.0.1:2

**参数**

- endpoint:被查询的节点的`IP:Port`
- callback:获取之后的回调

**返回值**
Expand Down Expand Up @@ -740,7 +740,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getObserverList","params":[],"id
]
}
```
### getObserverListAsync
### getObserverList

异步获取Client对应群组的观察节点列表。

Expand Down Expand Up @@ -791,7 +791,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getSealerList","params":[],"id":
}
```

### getSealerListAsycn
### getSealerListAsync

异步获取Client对应群组的共识节点列表。

Expand Down Expand Up @@ -836,10 +836,11 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getPbftView","params":["group0",
**参数**

- node:可让RPC发送请求到指定节点
- callback:获取PBFT视图信息之后的回调

**返回值**

- PbftView: PBFT视图信息。
-

### getConsensusStatus

Expand All @@ -851,6 +852,8 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getPbftView","params":["group0",

**返回值**

- ConsensusStatus: 节点共识状态。

**示例:**
```
// Request
Expand All @@ -863,7 +866,6 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getConsensusStatus","params":["g
"result": "{\"blockNumber\":7,\"changeCycle\":0,\"connectedNodeList\":4,\"consensusNodeList\":[{\"index\":0,\"nodeID\":\"0055dcaf073a332aa1ad90ff53ef028680d24f9bf2fcbc07ec4bbd4879413f75118a570bcf8001c4526fdb8c1319e51ae63444431ec8ab839465c05e178e7c49\",\"weight\":1},{\"index\":1,\"nodeID\":\"2a7aecf4acf010b0c13697e84ffd4f18544835662845621f936166d88cf073f16b1daa6883de457e6129377d21412b4c77099e8a50e8ea521752adcddeb8b331\",\"weight\":1},{\"index\":2,\"nodeID\":\"535439908979b89171283dca78520763e0a32c64631d7f34ee1d3f74c408a31aaa8565c50924ba6817cd33c13fe9dc928e36b8a1df022fc825d3687c2b273258\",\"weight\":1},{\"index\":3,\"nodeID\":\"dd99ab883677a8aef2c2a3847b9671e501bd6930792700398627eb0a1ba04fe81015745b6287be5f36786c0cc8ff12e9dd3215dc5a4210b012d77330a739a2c3\",\"weight\":1}],\"consensusNodesNum\":4,\"hash\":\"ef49fef70085ec4ae736c1e82ba74e98a860a53763f2484b8254b0d08a2c6865\",\"index\":0,\"isConsensusNode\":true,\"leaderIndex\":3,\"maxFaultyQuorum\":1,\"minRequiredQuorum\":3,\"nodeID\":\"0055dcaf073a332aa1ad90ff53ef028680d24f9bf2fcbc07ec4bbd4879413f75118a570bcf8001c4526fdb8c1319e51ae63444431ec8ab839465c05e178e7c49\",\"timeout\":false,\"view\":3}\n"
}
```
- ConsensusStatus: 节点共识状态。

### getConsensusStatusAsync

Expand Down Expand Up @@ -1201,7 +1203,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getGroupNodeInfo","params":["gro

- name:合约名
- version:版本名
- address:合约地址
- contractAddress:合约地址
- abi:合约ABI

**返回值**
Expand Down Expand Up @@ -1301,7 +1303,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getGroupNodeInfo","params":["gro

**参数**

- tableName: 需要插入记录的表名;
- kvTablePrecompiled: 需要插入记录的表名;
- key: 主key被设置的值;
- fieldNameToValue: 每个field到其对应值的映射。

Expand All @@ -1320,7 +1322,7 @@ curl -X POST --data '{"jsonrpc":"2.0","method":"getGroupNodeInfo","params":["gro

**返回值**

- Map<String, String>: 查询结果。
- String: 查询结果。

#### desc

Expand Down
2 changes: 1 addition & 1 deletion 3.x/zh_CN/docs/develop/console_deploy_contract.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ cp -r nodes/127.0.0.1/sdk/* console/conf

```eval_rst
.. note::
- 请确保机器的30300~30303,20200~20203,8545~8548端口没有被占用
- 请确保机器的30300~30303,20200~20203端口没有被占用
- 控制台的配置方法和命令请参考 `这里 <../operation_and_maintenance/console/index.html>`_ 实现。
```

Expand Down
6 changes: 3 additions & 3 deletions 3.x/zh_CN/docs/develop/contract_life_cycle.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ FISCO BCOS平台支持Solidity、Liquid、Precompiled三种智能合约使用形

[Liquid官方文档](https://liquid-doc.readthedocs.io/zh_CN/latest/)

[预编译合约使用文档](../contract_develop/c++_contract/index.html)
[预编译合约使用文档](../contract_develop/c++_contract/index.md)

## 2. 智能合约部署与调用

Expand Down Expand Up @@ -70,15 +70,15 @@ FISCO BCOS平台支持Solidity、Liquid、Precompiled三种智能合约使用形

- 保留旧合约数据升级的情况较为复杂,具体解决方案有以下几种:
- (推荐)用户在开发智能合约时就需要主动将合约分为 **逻辑合约****数据合约**,数据合约用于存储需要在链上存储的数据,开放数据读写接口供逻辑合约使用,逻辑合约在计算时调用数据合约的读写接口。当需要升级时,只需要升级逻辑合约,新的逻辑合约调用旧的数据合约接口,旧的逻辑合约不再使用。
- (推荐)相当于第一种方案的扩展,需要存储的数据都使用CRUD数据接口进行存储,CRUD的数据是通过节点共识并持久存储在链上的。详情请参考[使用CRUD预编译合约开发应用](./precompiled/use_crud_precompiled.md)[使用KV存储预编译合约开发应用](./precompiled/use_kv_precompiled.md)
- (推荐)相当于第一种方案的扩展,需要存储的数据都使用CRUD数据接口进行存储,CRUD的数据是通过节点共识并持久存储在链上的。详情请参考[使用CRUD预编译合约开发应用](../contract_develop/c++_contract/use_crud_precompiled.md)[使用KV存储预编译合约开发应用](../contract_develop/c++_contract/use_kv_precompiled.md)
- 通过使用delegate call的代理合约主动调用逻辑合约,产生的状态数据均保存在代理合约中,逻辑合约保持接口不变的情况下可以升级。
- 不保留数据升级的情况更加简单,用户将升级的合约重新部署,将会有新的地址。应用基于新地址的合约进行操作即可,也将使用新合约的数据,旧合约记录的数据将存在链上,需要应用主动避免新业务逻辑调用旧合约数据。

## 5. 智能合约权限管理操作

```eval_rst
.. important::
合约生命周期管理冻结、解冻、废止操作以及合约部署调用权限控制,均需要将开启区块链权限模式,详情请参考`权限治理使用指南 <https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/develop/committee_usage.html>`_
合约生命周期管理冻结、解冻、废止操作以及合约部署调用权限控制,均需要将开启区块链权限模式,详情请参考`权限治理使用指南 <https://fisco-bcos-doc.readthedocs.io/zh_CN/latest/docs/develop/committee_usage.html>`_
```

在开启区块链权限模式之后,每次合约部署将在存储层创建合约存储数据表之外,会额外创建一张合约权限数据表,用于记录合约管理员地址、合约状态、合约接口ACL。默认情况下,合约的管理员地址就是发起部署合约操作的账户地址(如果存在合约创建合约,合约管理员地址为交易发起账户tx.origin)。
Expand Down

0 comments on commit 0084539

Please sign in to comment.