热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

HyperLedger/FabricSDK使用Docker容器镜像快速部署上线

HyperLedgerFabricSDKDockerImage该项目在github上的地址是:https:github.comabericfabric-sdk-container
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服务器上安装最新版Dockerdocker 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入口文档

Method REST API Description
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中配置的变量写错,可以通过该方法重新设置节点服务信息

代码简要说明参考HyperLedger/Fabric JAVA-SDK with 1.1


推荐阅读
  • 如果说以比特币为代表的货币区块链技术为1.0,以以太坊为代表的合同区块链技术为2.0,那么实现了完备的权限控制和安全保障的Hyperledger项目毫无疑问代表着区块链技术3.0 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 本文介绍了Android平台各个版本的API级别、版本号以及平台亮点,从Android 1.0到Android 10.0,共涵盖了多个版本的特点和发展历程。详细内容请参考https://developer.android.google.cn/guide/topics/manifest/uses-sdk-element.html。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • Maven构建Hadoop,
    Maven构建Hadoop工程阅读目录序Maven安装构建示例下载系列索引 序  上一篇,我们编写了第一个MapReduce,并且成功的运行了Job,Hadoop1.x是通过ant ... [详细]
  • 在这分布式系统架构盛行的时代,很多互联网大佬公司开源出自己的分布式RPC系统框架,例如:阿里的dubbo,谷歌的gRPC,apache的Thrift。而在我们公司一直都在推荐使用d ... [详细]
  • 服务注册中心到底应该选AP模型还是CP模型?
    当下,分布式系统正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态 ... [详细]
author-avatar
CC周兵价_667
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有