fabric-sdk-rest 把 Fabric SDK 封装为 REST API - 文章教程

fabric-sdk-rest 把 Fabric SDK 封装为 REST API

发布于 2021-04-08 字数 4552 浏览 845 评论 0

项目地址: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/fabcarbasic-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技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

目前还没有任何评论,快来抢沙发吧!

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

1872 文章
23 评论
32787 人气
更多

推荐作者

qq_pH6xKF

文章 0 评论 0

a3576419

文章 0 评论 0

Meets

文章 0 评论 0

许强

文章 0 评论 0

adao3056

文章 0 评论 0