Skip to content

Commit c30cbb5

Browse files
committed
Update with new operation example
1 parent 81e909a commit c30cbb5

File tree

2 files changed

+74
-30
lines changed

2 files changed

+74
-30
lines changed

hyperledger/membersrcv-usage.md

Lines changed: 46 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
权限管理机制是 hyperledger fabric 项目的一大特色。下面给出使用权限管理的一个应用案例。
44

5-
### 下载相关镜像
6-
首先启动相关的环境
5+
### 启动集群
6+
首先现在相关镜像
77

88
```sh
99
$ docker pull yeasy/hyperledger:latest
@@ -21,31 +21,50 @@ $ docker-compose -f docker-compose-with-membersrvc.yml up
2121
```
2222

2323
### 用户登陆
24-
以 jim 账户登录,URL:
24+
当启用了权限管理后,首先需要登录,例如以内置账户 jim 账户登录。
25+
26+
登录 vp0,并执行登录命令。
27+
28+
```sh
29+
$ docker exec -it pbft_vp0_1 bash# peer network login jim08:23:13.604 [networkCmd] networkLogin -> INFO 001 CLI client login...08:23:13.604 [networkCmd] networkLogin -> INFO 002 Local data store for client loginToken: /var/hyperledger/production/client/Enter password for user 'jim': 6avZQLwcUe9b
30+
```
31+
32+
也可以用 REST 方式:
33+
2534
```sh
2635
POST HOST:5000/registrar
2736
```
37+
2838
Request:
29-
```
39+
40+
```json
3041
{
3142
"enrollId": "jim",
3243
"enrollSecret": "6avZQLwcUe9b"
3344
}
3445
```
3546

3647
Response:
37-
```
48+
49+
```json
3850
{
3951
"OK": "User jim is already logged in."
4052
}
4153
```
54+
4255
### chaincode 部署
43-
https://github.com//hyperledger/fabric/examples/chaincode/go/chaincode_example02 的chaincode部署到 PBFT 集群上,并初始化 a、b 两个账户
56+
登录之后,chaincode 的部署、调用等操作与之前类似,只是需要通过 -u 选项来指定用户名
4457

45-
URL
58+
在 vp0 上执行命令
4659

4760
```sh
48-
POST HOST:5000/chaincode
61+
# peer chaincode deploy -u jim -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'
62+
```
63+
64+
也可以通过 REST 方式进行:
65+
66+
```sh
67+
POST HOST:7050/chaincode
4968
```
5069

5170
Request:
@@ -76,17 +95,23 @@ Response:
7695
"jsonrpc": "2.0",
7796
"result": {
7897
"status": "OK",
79-
"message": "28bb2b2316171a706bb2810ec35d095f430877bf443f1061ef0f60bbe753ed440700a5312c16390d3b30199fe9465c3b75d5944358caae01ca81ef28128a1bfb"
98+
"message": "980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d"
8099
},
81100
"id": 1
82101
}
83102
```
84103

85104
### chaincode 调用
86-
在账户 a,b 间进行转账,URL:
87105

106+
在账户 a、b 之间进行转账 10 元的操作。
88107
```sh
89-
POST HOST:5000/chaincode
108+
$ peer chaincode invoke -u jim -n 980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'
109+
```
110+
111+
也可以通过 REST 方式进行:
112+
113+
```sh
114+
POST HOST:7050/chaincode
90115
```
91116

92117
Request:
@@ -98,7 +123,7 @@ Request:
98123
"params": {
99124
"type": 1,
100125
"chaincodeID":{
101-
"name":"28bb2b2316171a706bb2810ec35d095f430877bf443f1061ef0f60bbe753ed440700a5312c16390d3b30199fe9465c3b75d5944358caae01ca81ef28128a1bfb"
126+
"name":"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d"
102127
},
103128
"ctorMsg": {
104129
"function":"invoke",
@@ -117,17 +142,21 @@ Response:
117142
"jsonrpc": "2.0",
118143
"result": {
119144
"status": "OK",
120-
"message": "2b3b6cf3-9887-4dd5-8f2e-3634ec9c719a"
145+
"message": "66308740-a2c5-4a60-81f1-778dbed49cc3"
121146
},
122147
"id": 3
123148
}
124149
```
125150
### chaincode 查询
126151

127-
查询 a 账户的余额 URL:
152+
查询 a 账户的余额。
153+
154+
155+
156+
也可以通过 REST 方式进行:
128157

129158
```sh
130-
POST HOST:5000/chaincode
159+
POST HOST:7050/chaincode
131160
```
132161

133162
Request:
@@ -139,7 +168,7 @@ Request:
139168
"params": {
140169
"type": 1,
141170
"chaincodeID":{
142-
"name":"28bb2b2316171a706bb2810ec35d095f430877bf443f1061ef0f60bbe753ed440700a5312c16390d3b30199fe9465c3b75d5944358caae01ca81ef28128a1bfb"
171+
"name":"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d"
143172
},
144173
"ctorMsg": {
145174
"function":"query",
@@ -169,7 +198,7 @@ Response:
169198
URL:
170199

171200
```sh
172-
GET HOST:5000/chain/blocks/2
201+
GET HOST:7050/chain/blocks/2
173202
```
174203

175204
Response:

hyperledger/usage.md

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,55 @@
33
### 双方交易案例
44
两方(如 a 和 b)之间进行价值的转移。
55

6-
集群启动后,进入一个 VP 节点。
6+
集群启动后,进入一个 VP 节点。以 pbft 模式为例,节点名称为 `pbft_vp0_1`
77

88
```sh
9-
$ docker exec -it vp0 bash
9+
$ docker exec -it pbft_vp0_1 bash
1010
```
1111

1212
部署 chaincode example02。
1313

1414
```sh
1515
$ peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'
16-
13:16:35.643 [crypto] main -> INFO 001 Log level recognized 'info', set to INFO
17-
5844bc142dcc9e788785e026e22c855957b2c754c912702c58d997dedbc9a042f05d152f6db0fbd7810d95c1b880c210566c9de3093aae0ab76ad2d90e9cfaa5
16+
08:23:25.028 [chaincodeCmd] getChaincodeSpecification -> INFO 001 Local user 'jim' is already logged in. Retrieving login token.
17+
08:23:26.162 [chaincodeCmd] chaincodeDeploy -> INFO 002 Deploy result: type:GOLANG chaincodeID:<path:"github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02" name:"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d" > ctorMsg:<args:"init" args:"a" args:"100" args:"b" args:"200" >
18+
08:23:26.163 [main] main -> INFO 003 Exiting.....
19+
```
20+
21+
部署成功后,系统中会自动生成几个 chaincode 容器,例如
22+
23+
```sh
24+
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
25+
07d5c07bbab3 dev-vp1-980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d "/opt/gopath/bin/980d" 15 minutes ago Up 15 minutes dev-vp1-980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d
26+
52b1be5a7bda dev-vp0-980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d "/opt/gopath/bin/980d" 15 minutes ago Up 15 minutes dev-vp0-980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d
27+
480df639c212 dev-vp2-980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d "/opt/gopath/bin/980d" 15 minutes ago Up 15 minutes dev-vp2-980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d
28+
14ecdae1adbf dev-vp3-980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d "/opt/gopath/bin/980d" 15 minutes ago Up 15 minutes dev-vp3-980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d
1829
```
1930

2031
查询 a 手头的价值,为初始值 100。
2132

2233
```sh
23-
$ peer chaincode query -n 5844bc142dcc9e788785e026e22c855957b2c754c912702c58d997dedbc9a042f05d152f6db0fbd7810d95c1b880c210566c9de3093aae0ab76ad2d90e9cfaa5 -c '{"Function": "query", "Args": ["a"]}'
24-
13:20:07.952 [crypto] main -> INFO 001 Log level recognized 'info', set to INFO
25-
100
34+
$ peer chaincode query -n 980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d -c '{"Function": "query", "Args": ["a"]}'
35+
08:37:12.415 [chaincodeCmd] getChaincodeSpecification -> INFO 001 Local user 'jim' is already logged in. Retrieving login token.
36+
08:37:12.516 [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 002 Successfully queried transaction: chaincodeSpec:<type:GOLANG chaincodeID:<name:"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d" > ctorMsg:<args:"query" args:"a" > secureContext:"jim" >
37+
Query Result: 100
38+
08:37:12.516 [main] main -> INFO 003 Exiting.....
2639
```
2740

2841
a 向 b 转账 10 元。
2942

3043
```sh
31-
$ peer chaincode invoke -n 5844bc142dcc9e788785e026e22c855957b2c754c912702c58d997dedbc9a042f05d152f6db0fbd7810d95c1b880c210566c9de3093aae0ab76ad2d90e9cfaa5 -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'
32-
13:20:31.028 [crypto] main -> INFO 001 Log level recognized 'info', set to INFO
33-
ec3c675b-a2fe-4429-ab44-7f389e454657
44+
$ peer chaincode invoke -n 980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d -c '{"Function": "invoke", "Args": ["a", "b", "10"]}'
45+
08:37:51.211 [chaincodeCmd] getChaincodeSpecification -> INFO 001 Local user 'jim' is already logged in. Retrieving login token.
46+
08:37:51.309 [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 002 Successfully invoked transaction: chaincodeSpec:<type:GOLANG chaincodeID:<name:"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d" > ctorMsg:<args:"invoke" args:"a" args:"b" args:"10" > secureContext:"jim" > (66308740-a2c5-4a60-81f1-778dbed49cc3)
47+
08:37:51.309 [main] main -> INFO 003 Exiting.....
3448
```
3549

3650
查询 a 手头的价值,为新的值 90。
3751

3852
```sh
39-
$ peer chaincode query -n 5844bc142dcc9e788785e026e22c855957b2c754c912702c58d997dedbc9a042f05d152f6db0fbd7810d95c1b880c210566c9de3093aae0ab76ad2d90e9cfaa5 -c '{"Function": "query", "Args": ["a"]}'
40-
13:20:35.725 [crypto] main -> INFO 001 Log level recognized 'info', set to INFO
41-
90
53+
$ peer chaincode query -n 980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d -c '{"Function": "query", "Args": ["a"]}'
54+
08:55:12.961 [chaincodeCmd] chaincodeInvokeOrQuery -> INFO 001 Successfully queried transaction: chaincodeSpec:<type:GOLANG chaincodeID:<name:"980d4bb7f69578592e5775a6da86d81a221887817d7164d3e9d4d4df1c981440abf9a61417eaf8ad6f7fc79893da36de2cf4709131e9af39bca6ebc2e5a1cd9d" > ctorMsg:<args:"query" args:"a" > >
55+
Query Result: 90
56+
08:55:12.962 [main] main -> INFO 002 Exiting.....
4257
···

0 commit comments

Comments
 (0)