fabric-sdk-rest 把 Fabric SDK 封装为 REST API
项目地址:https://github.com/hyperledger/fabric-sdk-rest
这个项目可以把 Fabric SDK 封装为 REST API。
下载和配置 fabric-sdk-rest
下载项目:
cd /opt
git clone https://github.com/hyperledger/fabric-sdk-rest.git
cd fabric-sdk-rest
利用 npm 进行一些依赖包的下载、构建等:
cd packages/loopback-connector-fabric && npm link && cd -
cd packages/fabric-rest && npm link loopback-connector-fabric && npm install && cd -
npm install
下面使用 fabric-samples/fabcar
的 basic-network 环境进行测试。
首先,利用项目自带脚本配置 datasources.json
:
setup.sh -f /opt/fabric-samples/basic-network/ -ukat
cat packages/fabric-rest/server/datasources.json
启动 basic-network
cd /opt/fabric-samples/fabcar
./startFabric.sh
node enrollAdmin.js
node registerUser.js
node query.js
最后的query.js可以测试出Fabric网络是否好用。如果之前曾经执行过用户注册,可以跳过前面两个js。
最后启动REST服务:
cd packages/fabric-rest
./fabric-rest-server -p 3000
VM的3000端口已经用NAT映射到了宿主机windows下,所以用浏览器可以打开地址localhost:3000来测试该REST服务。
启动 blockchain-explorer
启动blockchain-explorer服务的目的是为了与fabric-sdk-rest的查询结果进行对比,当然可以跳过这个部分。
blockchain-explorer的配置文件config.json需要修改,以便连接到basic-network环境。config.json的配置:
{
"network-config": {
"org1": {
"name": "peerOrg1",
"mspid": "Org1MSP",
"peer1": {
"requests": "grpc://127.0.0.1:7051",
"events": "grpc://127.0.0.1:7053",
"server-hostname": "peer0.org1.example.com",
"tls_cacerts": "./basic-network/crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt"
},
"admin": {
"key": "./basic-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/keystore",
"cert": "./basic-network/crypto-config/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp/signcerts"
}
}
},
"host":"localhost",
"port":"8081",
"channel": "mychannel",
"GOPATH":"../artifacts",
"keyValueStore":"/tmp/fabric-client-kvs",
"eventWaitTime":"30000",
"mysql":{
"host":"127.0.0.1",
"port":"3306",
"database":"fabricexplorer",
"username":"root",
"passwd":"1"
}
}
目前的 blockchain-explorer 还处于开发阶段,不太完善,只能访问相对它自己根路径的证书文件,所以只好把basic-network使用的Fabric证书文件复制过来:
cd /opt/fabric-samples
cp basic-network/ ~/blockchain-explorer/ -R
启动 blockchain-explorer:
cd ~/blockchain-explorer && ./start.sh
宿主windows下浏览器访问localhost:8081,可以看到basic-network的基本区块链信息,包括某个块的事务id,如:d6e4713ba3e5c7dc54d5d1d8f93f0b78d97291fd4f1f7120259630140e0e4eff
。
使用 fabric-sdk-rest
用浏览器打开地址localhost:3000,进入fabric-sdk-rest的Swagger-UI页面。
点击链接GET /fabric/1_0/channels/{channelName}/transactions/{transactionID}
,在channelName域中输入mychannel
,在transactionId域中输入(粘贴)d6e4713ba3e5c7dc54d5d1d8f93f0b78d97291fd4f1f7120259630140e0e4eff
,点Try it out!
按钮可以看到响应中的json串。可以到这里查看输出结果。
还可以点击链接GET /fabric/1_0/channels/{channelName}/blocks
,然后在BlockId域中输入4
(或其他正确的值),blockHash留空,然后点击Try it out!`按钮,查询4号区块的信息。响应的json串包含了这个区块的信息和交易信息。可以参考这个区块结构图来查看区块数据和交易数据。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论