搭建RESTful API来使用Fabric Node SDK 开篇
在Balance-Transfer中,有关于Node SDK比较完备的例子。
SDK的官方文档在这里:https://fabric-sdk-node.github.io/
Balance-Transfer中的各项配置项都已经准备了,如果需要重新生成artifacts,务必在生成之后相应的修改docker-compose.yaml,network-config.yaml
启动网络
运行./runApp.sh后,得到类似的结果:
Stopping peer1.org1.example.com ... done
Stopping peer0.org1.example.com ... done
Stopping peer1.org2.example.com ... done
Stopping peer0.org2.example.com ... done
Stopping ca_peerOrg1 ... done
Stopping ca_peerOrg2 ... done
Stopping orderer.example.com ... done
Removing peer1.org1.example.com ... done
Removing peer0.org1.example.com ... done
Removing peer1.org2.example.com ... done
Removing peer0.org2.example.com ... done
Removing ca_peerOrg1 ... done
Removing ca_peerOrg2 ... done
Removing orderer.example.com ... done
Removing network artifacts_default ========== No containers available for deletion ========== ========== No images available for deletion =========== Creating network "artifacts_default" with the default driver
Creating ca_peerOrg2 ... done
Creating orderer.example.com ... done
Creating ca_peerOrg1 ... done
Creating peer0.org2.example.com ... done
Creating peer0.org1.example.com ... done
Creating peer1.org1.example.com ... done
Creating peer1.org2.example.com ... done ============== node modules installed already ============= [2018-05-16 15:38:59.455] [INFO] SampleWebApp - ****************** SERVER STARTED ************************
[2018-05-16 15:38:59.461] [INFO] SampleWebApp - *************** http://localhost:4000 ******************
在新的窗口运行 docker ps,得到
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5a59ea698c3f hyperledger/fabric-peer "peer node start" About a minute ago Up About a minute 0.0.0.0:8056->7051/tcp, 0.0.0.0:8058->7053/tcp peer1.org2.example.com
a08384cc48cc hyperledger/fabric-peer "peer node start" About a minute ago Up About a minute 0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp peer0.org1.example.com
027c68057998 hyperledger/fabric-peer "peer node start" About a minute ago Up About a minute 0.0.0.0:7056->7051/tcp, 0.0.0.0:7058->7053/tcp peer1.org1.example.com
6e738124e03b hyperledger/fabric-peer "peer node start" About a minute ago Up About a minute 0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp peer0.org2.example.com
bfd5f1b1fe75 hyperledger/fabric-ca "sh -c 'fabric-ca-..." About a minute ago Up About a minute 0.0.0.0:7054->7054/tcp ca_peerOrg1
b8d0b10740b3 hyperledger/fabric-orderer "orderer" About a minute ago Up About a minute 0.0.0.0:7050->7050/tcp orderer.example.com
9e807c581f33 hyperledger/fabric-ca "sh -c 'fabric-ca-..." About a minute ago Up About a minute 0.0.0.0:8054->7054/tcp ca_peerOrg2
执行测试
运行./testAPIs.sh ,得到如下结果:
POST request Enroll on Org1 ...
{"success":true,"secret":"","message":"Jim enrolled Successfully","token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MjY0OTI1MzIsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE1MjY0NTY1MzJ9.fnA1TvBIXD6TIVCJ_OfBgIdD42ljuYlv9zSAu_Hqv8M"}
ORG1 token is eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MjY0OTI1MzIsInVzZXJuYW1lIjoiSmltIiwib3JnTmFtZSI6Ik9yZzEiLCJpYXQiOjE1MjY0NTY1MzJ9.fnA1TvBIXD6TIVCJ_OfBgIdD42ljuYlv9zSAu_Hqv8M
POST request Enroll on Org2 ...
{"success":true,"secret":"","message":"Barry enrolled Successfully","token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MjY0OTI1MzQsInVzZXJuYW1lIjoiQmFycnkiLCJvcmdOYW1lIjoiT3JnMiIsImlhdCI6MTUyNjQ1NjUzNH0.p3A_bcJGUltUjBI9u8J187aU2W2mQTgFsEalQNJcf-I"}
ORG2 token is eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MjY0OTI1MzQsInVzZXJuYW1lIjoiQmFycnkiLCJvcmdOYW1lIjoiT3JnMiIsImlhdCI6MTUyNjQ1NjUzNH0.p3A_bcJGUltUjBI9u8J187aU2W2mQTgFsEalQNJcf-I
POST request Create channel ...
{"success":true,"message":"Channel 'mychannel' created Successfully"}
POST request Join channel on Org1
{"success":true,"message":"Successfully joined peers in organization Org1 to the channel:mychannel"}
POST request Join channel on Org2
{"success":true,"message":"Successfully joined peers in organization Org2 to the channel:mychannel"}
POST Install chaincode on Org1
{"success":true,"message":"Successfully install chaincode"}
POST Install chaincode on Org2
{"success":true,"message":"Successfully install chaincode"}
POST instantiate chaincode on peer1 of Org1
主要测试了,注册用户,创建channel,Join channle,安装chaincode,初始化chaincode,调用chaincode,查询chaincode
搭建RESTful API来使用Fabric Node SDK 开篇的更多相关文章
- 使用Fabric Node SDK进行Invoke和Query
前面的文章都是在讲解Fabric网络的搭建和ChainCode的开发,那么在ChainCode开发完毕后,我们就需要使用Fabric SDK做应用程序的开发了.官方虽然提供了Node.JS,Java, ...
- Hyperledger Fabric Node SDK和应用开发
Hyperledger Fabric 提供了多种语言的SDK版本,其中提出比较早.比较稳定而全面的是Node.js版本的SDK. 前面提到的fabric示例(如first-network和e2e-cl ...
- 使用CodeIgniter框架搭建RESTful API服务
使用CodeIgniter框架搭建RESTful API服务 发表于 2014-07-12 | 分类于 翻译笔记 | 6条评论 在2011年8月的时候,我写了一篇博客<使用Cod ...
- Hyperledger Fabric 实战(十): Fabric node SDK 样例 - 投票DAPP
Fabric node SDK 样例 - 投票DAPP 参考 fabric-samples 下的 fabcar 加以实现 目录结构 . ├── app │ ├── controllers │ │ └─ ...
- 使用 Beego 搭建 Restful API 项目
1 环境准备 首先你需要在你的环境安装以下软件: go:编程语言运行环境 git:版本控制工具 beego:go 语言流行的开发框架 bee:beego 配套的快速搭建工具 你喜欢的数据库:这里以 M ...
- 搭建RESTful API 之 实现WSGI服务的URL映射
javarestfull 搭建参考 http://blog.csdn.net/hejias/article/details/47424511 问题引出:对于一个稍具规模的网站来说,实现的功能不可能通过 ...
- 玩转 SpringBoot 2 快速搭建 | RESTful Api 篇
概述 RESTful 是一种架构风格,任何符合 RESTful 风格的架构,我们都可以称之为 RESTful 架构.我们常说的 RESTful Api 是符合 RESTful 原则和约束的 HTTP ...
- Go实战--通过gin-gonic框架搭建restful api服务(github.com/gin-gonic/gin)
生命不止,继续 go go go !!! 先插播一条广告,给你坚持学习golang的理由: <2017 软件开发薪酬调查:Go 和 Scala 是最赚钱的语言> 言归正传! 之前写过使用g ...
- TP5.0搭建restful API 应用
1.配置环境变量,如果没配置会显示如下错误. 配置方法 1)右键此电脑-> 属性-> 高级系统设置->环境变量->Path 2)在Path后加上php目录的名称 如:E:\PH ...
随机推荐
- MySQL数据实时增量同步到Kafka - Flume
转载自:https://www.cnblogs.com/yucy/p/7845105.html MySQL数据实时增量同步到Kafka - Flume 写在前面的话 需求,将MySQL里的数据实时 ...
- 删除iis日志(deliislogs.vbs)
'path 目录 'ext 文件扩展名'expiredDays 保留多少天以内的文件Sub LogCleaner(path,ext,expiredDays) On Error Resume Next ...
- [蓝桥杯]ALGO-181.算法训练_According to Bartjens
问题描述 计算器和计算机的大量普及也有其弊端.即便是受过专业技术训练的学生们也很可能缺乏计算能力.由于电脑的大量使用,很多人无法心算出7*8这样的算式,甚至是用纸和笔也算不出13*.不过谁在意呢? B ...
- 如何将maven依赖项打进jar包,将一个完整的项目打进jar包
目的:我的目的就是将项目所有的文件,包括pom文件中依赖的jar包都打进一个jar包里面. 过程:将下面的内容放到pom文件里面. </dependencies> <build> ...
- 使用pm2来保证Spring Boot应用稳定运行
Spring Boot开发web应用就像开发普通的java程序一般简洁,因为其内嵌了web容易,启动的时候只需要一条命令java -jar server.jar即可,非常方便.但是由此而来的问题是万一 ...
- C常量与控制语句
在C语言中定义常量的两种方式 在C语言编程中定义常量有两种方法. const关键字 #define预处理器 1. const关键字 const关键字用于定义C语言编程中的常量. const float ...
- php解析excel文件
public static function getStaffByXlsx($path) { /*dirname(__file__): 当前代码所在的目录,$path: ”/文件名“ */ $PHPR ...
- 一入爬虫深似海,从此游戏是路人!总结我的python爬虫学习笔记!
前言 还记得是大学2年级的时候,偶然之间看到了学长在学习python:我就坐在旁边看他敲着代码,感觉很好奇.感觉很酷,从那之后,我就想和学长一样的厉害,就想让学长教我,请他吃了一周的饭,他答应了.从此 ...
- Hive 任务优化 tips
1. 集群任务队列: 一般有 root.default, root.online, root.offline, root.spark-thiftserver Hue提交的任务一般默认在 defau ...
- 卷积神经网络(CNN)张量(图像)的尺寸和参数计算(深度学习)
分享一些公式计算张量(图像)的尺寸,以及卷积神经网络(CNN)中层参数的计算. 以AlexNet网络为例,以下是该网络的参数结构图. AlexNet网络的层结构如下: 1.Input: 图 ...