fabric-sdk-container v1.0-beta 新增支持多服务节点
HyperLedger/Fabric SDK Docker Image
该项目在github上的地址是:https://github.com/aberic/fabric-sdk-container (感谢Star)。
这是一个基于fabric-sdk-java的项目,该项目的主要目的是简化HyperLedger/Fabric开发人员在SDK应用层上的工作流程,使得开发和部署更加简单。
该项目使用方便,只需要部署有Docker及docker compose环境即可轻松调用Fabric网络接口,包括执行、查询智能合约,以及trace相关的溯源接口。
版本说明
0.x系列的版本主要是非Docker应用方面的项目,即相互交流的源码层项目。
1.x及以上系列的版本均Docker项目,帮助开发人员快速部署SDK应用,减少开发环节,从而实现业务的快速落地。
提供链接的为已发布版本,未提供连接的为待实现版本。
目前主要版本如下列表所示:
v0.1:无数据库版,适合轻量级的Fabric平台应用。
v0.2:含关系型数据库版,适合单服务管理多Fabric网络。
v1.0-alpha:提供Docker容器服务,方便SDK快速部署。此版本为单排序服务及单节点服务配置,符合绝大部分需求。
v1.0-beta:新增支持多服务节点。
v1.0-RC:新增通过SDK加入通道、安装合约、实例化合约以及升级合约等功能。
使用sdk-container
1、确定Linux内核在3.10
及以上。
2、在待部署SDK服务器上安装最新版Docker
及docker compose
环境。
3、执行docker pull aberic/fabric-sdk:1.0-beta
下载镜像。
4、在docker-sdk.yaml
文件中配置好Fabric网络中所期望连接的排序服务及节点服务参数,这两类服务各允许设置一台,后续的版本中会增加使用SDK多服务网络方案。
5、执行docker-compose -f docker-sdk.yaml up
启动SDK镜像服务,如果不需要观察日志,则在命令最后追加-d
即可。
6、服务启动完成后,参考下面的API介绍以便更快投入使用。
docker-sdk.yaml说明
关于docker-sdk.yaml编排文件中的参数,主要来自两个地方,一是二进制生成的证书文件目录crypto-config(点击链接自行学习二进制文件生成指定证书文件以及参考crypto-config文件配置),二是在当前Fabric网络中创建的通道以及通道中创建的智能合约信息。
首先参考crypto-config,在该文件中定义的参数与docker-sdk.yaml中关于排序服务以及节点服务的信息相对应。
相对其他配置如通道及合约的也是如上对应,具体参数释义如下表所示:
Environment | Description | map |
---|---|---|
ORG_NAME | 节点所属组织名称 | 参见crypto-config文件中 -> PeerOrgs-Name |
ORG_TLS | 节点是否开启TLS | 根据自身创建网络情况选择true或false |
ORG_USERNAME | 节点所属组织用户名称 | 参见crypto-config目录下的两个用户,默认配置中选择的Admin |
ORG_CRYPTO_CONFIG_DIR | 映射到容器中的crypto-config目录 | 即crypto-config目录 |
ORG_MSP_ID | 节点所属组织ID | 参见configtx文件中 -> Organizations-&Org1-Name |
ORG_DOMAIN_NAME | 节点所属组织域名名称 | 参见crypto-config文件中 -> PeerOrgs-Domain |
ORG_ORDERER_DOMAIN_NAME | 节点所属排序服务域名名称 | 参见crypto-config文件中 -> OrdererOrgs-Domain |
ORG_CHANNEL_NAME | 自行创建的通道名称 | 如:peer channel create -o orderer.example.com:7050 -c mychannel -t 50 -f ./channel-artifacts/mychannel.tx 命令所创建的mychannel |
ORG_CHAINCODE_NAME | 智能合约名称 | 如:peer chaincode install -n testcc -p github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02 -v 1.0 命令所创建的testcc |
ORG_CHAINCODE_PATH | 智能合约路径 | 如:peer chaincode install -n testcc -p github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02 -v 1.0 命令中的github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02 |
ORG_CHAINCODE_VERSION | 智能合约版本 | 如:peer chaincode install -n testcc -p github.com/hyperledger/fabric/aberic/chaincode/go/chaincode_example02 -v 1.0 命令中的1.0 |
ORG_PROPOSAL_WAIT_TIME | 单个提案请求超时时间以毫秒为单位 | 默认90000 |
ORG_INVOKE_WAIT_TIME | 事务等待时间以秒为单位 | 默认120 |
ORDERER_NAME | 排序服务名称 | 参见configtx文件中 -> Orderer-Addresses |
ORDERER_LOCATION | 排序服务访问路径 | 根据自身设置实际情况修改,一般为grpc://host:port 的格式 |
PEER_NAME | 节点服务域名名称 | 参见crypto-config目录下的节点域名列表 |
PEER_EVENT_HUB_NAME | 节点服务事件域名名称 | 同上 |
PEER_LOCATION | 节点服务路径 | 根据自身设置实际情况修改,一般为grpc://host:port 的格式 |
PEER_EVENT_HUB_LOCATION | 节点服务事件路径 | 根据自身设置实际情况修改,一般为grpc://host:port 的格式 |
PEER_IS_EVENT_LISTENER | 节点所属组织名称 | 根据自身需求选择是否监听回调服务 |
docker-sdk.yaml中的image: aberic/fabric-sdk
,可以指定其版本号,默认是latest。
docker-sdk.yaml中volumes的挂载与ORG_CRYPTO_CONFIG_DIR变量相关,volumes使用方法请学习compose相关知识。
docker-sdk.yaml中的ports,后一个为容器中端口号,不用修改,冒号前的可以指定为自身服务器未占用的端口号,最终调用sdk接口时通过冒号前指定的端口号即可。
API入口文档
Method | REST API | Description |
---|---|---|
POST | /sdk/chaincode | 执行、查询 |
POST | /sdk/trace | 在指定频道内根据transactionID查询区块、在指定频道内根据hash查询区块、在指定频道内根据区块高度查询区块以及查询当前频道的链信息,包括链长度、当前最新区块hash以及当前最新区块的上一区块hash |
POST | /sdk/org/add | 新增组织信息 |
POST | /sdk/orderer/add | 新增排序服务器信息 |
POST | /sdk/peer/add | 新增节点服务器信息 |
该版本目前为即上即用的版本,仅提供单排序服务及单节点服务,因此API文档中未提供安装、实例化及升级操作,但在后续更新中,会支持安装、实例化及升级的功能。如果有PAAS服务的需要,可以自行参考v0.2中的方案来解决。
API方法示例参考:HyperLedger/Fabric SDK使用Docker容器镜像快速部署上线
代码简要说明参考:HyperLedger/Fabric JAVA-SDK with 1.1
项目微信交流群:
Fabric交流互助2群:
fabric-sdk-container v1.0-beta 新增支持多服务节点的更多相关文章
- PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区
PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区 PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具
- 短视频去水印v1.0(还支持74个平台)
软件介绍: 一款很好用的短视频去水印软件,支持74个平台无水印解析,还支持批量视频解析只需要输入账号主页链接就可以了哦,快来下载试试吧! 软件版本:1.0 支持系统:安卓 软件大小:22. ...
- Fuckey V1.0 Beta版发布!!!
Fuckey,以前叫FullNexus4,只因为当时想做一个软件给自己的Nexus 4,方便方便一下,不过这名字感觉太局限了,毕竟很多朋友不是使用的Nexus 4的手机,但却还是使用了FullNexu ...
- 在Ubuntu中部署并测试Fabric 1.0 Beta
[更新:1.0Beta已经是过去式了,现在出了1.0.0的正式版,请大家参照 http://www.cnblogs.com/studyzy/p/7437157.html 安装Fabric 1.0.0 ...
- 区块链之Hyperledger(超级账本)Fabric v1.0 的环境搭建(更新)
参考链接:https://blog.csdn.net/so5418418/article/details/78355868 https://blog.csdn.net/wgh1015398431/ ...
- 区块链 Hyperledger Fabric v1.0.0 环境搭建
前言:最近项目涉及到超级账本,在有些理论知识的基础上,需要整一套环境来. 这是一个特别要注意的事情,笔者之前按照网络上推荐,大部分都是推荐ubuntu系统的,于是下载Ubuntu系统(16.04.5和 ...
- HyperLedger/Fabric SDK使用Docker容器镜像快速部署上线
HyperLedger/Fabric SDK Docker Image 该项目在github上的地址是:https://github.com/aberic/fabric-sdk-container ( ...
- Kube-OVN v1.10.0:新增Windows节点支持,用户自定义子网ACL等10+硬核功能
在Kube-OVN社区小伙伴的共同努力下,Kube-OVN v1.10.0于五月份正式发布.Kube-OVN v1.10.0版本中,我们一如既往地对Kube-OVN 的功能.性能.稳定性和易用性进行了 ...
- 【Andorid】短视频拍摄SDK——Vitamio Recorder 2.0 发布(支持ffmpeg命令行)
简介 VCamera SDK Android 版(短视频拍摄SDK)是炫一下(北京)科技有限公司推出的软件开发工具包,为Android开发者提供简单.快捷的接口,帮助开发者实现Android平台上的短 ...
随机推荐
- 【转】Mysql学习---MySQL悲观锁中的排它锁
[原文]https://www.toutiao.com/i6595305814087434760/ 悲观锁中的排它锁. 排它锁关键字:for update 特点:会锁住行或者表,防止其他事务进行修改操 ...
- jQuery 使用ajax,并刷新页面
<script> function del_product_information(id) { $.ajax({ url: "{% url 'del_product_inform ...
- Docker技术入门与实战 第二版-学习笔记-4-Dockerfile外其他生成镜像的方法
其它生成镜像的方法 即除了标准地使用Dockerfile来生成镜像外,还有一些其他的方法 1)从 rootfs 压缩包导入 格式:docker import [选项] <文件>|<U ...
- BeiDou开源项目
本文主要围绕着BeiDou是什么及其安装和快速开始等两个方面,希望能够对初学者和对此感兴趣的朋友有所帮助. 一. BeiDou是什么 它是服务器呈现的React应用程序的同构框架 特征如下: ✔︎高性 ...
- WorldWind源码剖析系列:四叉树瓦片集合类QuadTileSet
四叉树瓦片集合类QuadTileSet是影像瓦片渲染的主要类.使用地形管理器来为3D地形渲染查询高程值.依赖于用来刷新基于经度.纬度.视角范围瓦片的更新线程.该类继承自可渲染对象类Renderable ...
- ICC 常用命令
1. 列出当前design 用到的 db 库: list_libs 2. 列出当前design 用到的 reference 库: report_mw_lib -mw_referenc_librar ...
- python+requests实现接口测试 - cookies的使用 (转载)
出自:https://www.cnblogs.com/nizhihong/p/6699492.html 在很多时候,发送请求后,服务端会对发送请求方进行身份识别,如果请求中缺少识别信息或存在错误的识别 ...
- Android分享到微信时点击分享无反应的问题解决(注意事项)
问题描述:调用分享到微信的sdk点击程序的分享按钮程序无反应 解决办法: 问题原因:微信分享对客户端的要求相当严格,首先你必须在给应用注册账号时,把注册信息相对的填写完整,其中“应用包名”,“应用的签 ...
- ChromeExtension入门浅谈
0.写在前面的话 朋友上班时每天好几个时段都有个客流信息需要汇报到微信里,都是照着网页上的数据手动填写,着实麻烦.所以给写了个简单的函数每次到控制台里去运行,但是体验也并不好,今天就花了一整天的时间鼓 ...
- iOS开发之使用UIView-Positioning简化页面布局
使用过代码布局的人可能会有这样的感觉,给控件设置frame的时候比较繁琐.最 近在Github上看到有一个UIView的一个分类UIView-Positioning,这个分类提供了一些属性,比如lef ...