正式环境docker部署hyperf_HyperLedger/Fabric SDK使用Docker容器镜像快速部署上线

本文介绍了如何使用Docker容器镜像快速部署HyperLedger/Fabric SDK,简化开发流程。只需在服务器上配置Docker和docker-compose环境,通过docker-compose启动YAML文件,即可开始使用。当前版本为1.0-alpha,提供了基本的SDK服务,后续将增加日志管理和性能优化。API入口文档包括执行、查询链码,查询区块等操作。
摘要由CSDN通过智能技术生成

HyperLedger/Fabric SDK Docker Image

该项目在github上的地址是:https://github.com/aberic/fabric-sdk-container (感谢Star)。

这是一个基于fabric-sdk-java的项目,该项目的主要目的是简化HyperLedger/Fabric开发人员在SDK应用层上的工作流程,使得开发和部署更加简单。

该项目使用方便,只需要你的服务器上部署有Docker及docker compose环境即可,通过docker-compose的启动命令启动YAML编排文件即可快速上手使用。

由于日志管理和性能调试方面的工作还未完成,目前该项目仅为1.0-alpha版本,后续的开发中将会着重处理日志及可配置性能方面的内容,如果这能让你感兴趣,欢迎star。

开发环境

IntelliJ IDEA

Maven

JDK-1.8

spring-boot

Docker

docker compose

版本说明

0.x系列的版本主要是非Docker应用方面的项目,即相互交流的源码层项目。

1.x及以上系列的版本均Docker项目,帮助开发人员快速部署SDK应用,减少开发环节,从而实现业务的快速落地。

目前主要版本如下列表所示:

v0.1:无数据库版,适合轻量级的Fabric平台应用。

v0.2:含关系型数据库版,适合单服务管理多Fabric网络。

v1.0-alpha:提供Docker容器服务,方便SDK快速部署。

使用sdk-container

1、确定Linux内核在3.10及以上。

2、在待部署SDK服务器上安装最新版Docker及docker compose环境。

3、执行docker pull aberic/fabric-sdk下载镜像。

4、在docker-sdk.yaml文件中配置好Fabric网络中所期望连接的排序服务及节点服务参数,这两类服务各允许设置一台,后续的版本中会增加使用SDK多服务网络方案。

5、执行docker-compose -f docker-sdk.yaml up启动SDK镜像服务,如果不需要观察日志,则在命令最后追加-d即可。

6、服务启动完成后,参考下面的API介绍以便更快投入使用。

API入口文档

MethodREST APIDescription

POST

/sdk/chaincode

执行、查询

POST

/sdk/trace

在指定频道内根据transactionID查询区块、在指定频道内根据hash查询区块、在指定频道内根据区块高度查询区块以及查询当前频道的链信息,包括链长度、当前最新区块hash以及当前最新区块的上一区块hash

POST

/sdk/org/set

设置组织信息

POST

/sdk/orderer/set

设置排序服务器信息

POST

/sdk/peer/set

设置节点服务器信息

该版本目前为即上即用的版本,仅提供单排序服务及单节点服务,因此API文档中未提供安装、实例化及升级操作,但在后续更新中,会支持安装、实例化及升级的功能。如果有PAAS服务的需要,可以自行参考v0.2中的方案来解决。

API方法示例

/sdk/chaincode

执行合约

{

"intent": "invoke",

"array": [

"set",

"A",

"0"

]

}

查询合约

{

"intent": "query",

"array": [

"get"

]

}

intent是指对智能合约进行操作的意图。

array是调用合约传入的参数,在用go编写智能合约的时候,智能合约所接收的参数为一个字符串数组,其中字符串数组的第一个参数是智能合约的方法名。这里的array所传入的参数就是智能合约所接收的数组参数。

/sdk/trace

在指定频道内根据transactionID查询区块

{

"intent": "queryBlockByTransactionID",

"traceId": "08b5db91c7723cb61651a4af1034633a2833031a1cdb4415df0d8f6727020a4f"

}

在指定频道内根据hash查询区块

{

"intent": "queryBlockByHash",

"traceId": "8f63d99744752a89a49fcee560a43c271b7f12e37dfaa3489da028b610943595"

}

在指定频道内根据区块高度查询区块

{

"intent": "queryBlockByNumber",

"traceId": "9"

}

查询当前频道的链信息(包括链长度、当前最新区块hash以及当前最新区块的上一区块hash)

{

"intent": "queryBlockchainInfo"

}

/sdk/org/set

{"id": 1,"caLocation": "http://118.89.243.236:7054","caName": "ca","caTls": false,"chaincodeName": "test2cc","chaincodePath": "chaincode/chaincode_example02","chaincodeSource": "/code","chaincodeVersion": "1.2","channelArtifactsDir": "/home/jar/channel-artifacts","channelName": "mychannel","cryptoConfigDir": "/home/jar/crypto-config","invokeWaitTime": 120,"ordererDomainName": "example.com","orgDomainName": "org1.example.com","orgMSPID": "Org1MSP","orgName": "Org1","proposalWaitTime": 90000,"tls": true,"username": "Admin"}

该方法是在sdk容器启动后根据实际需求进行调用,如YAML中配置的变量写错,可以通过该方法重新设置组织信息

/sdk/orderer/set

{"id": 1,"orgId": 1,"name": "orderer.example.com","location": "grpc://118.89.243.236:7050"}

该方法是在sdk容器启动后根据实际需求进行调用,如YAML中配置的变量写错,可以通过该方法重新设置排序服务信息

/sdk/peer/set

{"id": 1,"orgId": 1,"peerName": "peer0.org1.example.com","peerEventHubName": "peer0.org1.example.com","peerLocation": "grpc://118.89.243.236:7051","peerEventHubLocation": "grpc://118.89.243.236:7053","isEventListener": true}

该方法是在sdk容器启动后根据实际需求进行调用,如YAML中配置的变量写错,可以通过该方法重新设置节点服务信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值