• 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服务器上安装最新版Dockerdocker 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中关于排序服务以及节点服务的信息相对应。 

    相对其他配置如通道及合约的也是如上对应,具体参数释义如下表所示: 

    EnvironmentDescriptionmap
    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入口文档

    MethodREST APIDescription
    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群:

  • 相关阅读:
    LeetCode--342--4的幂
    LeetCode--326--3的幂
    python3-
    LeetCode--303--区域和检索
    LeetCode--292--Nim游戏
    《Cracking the Coding Interview》——第16章:线程与锁——题目6
    《Cracking the Coding Interview》——第16章:线程与锁——题目5
    《Cracking the Coding Interview》——第16章:线程与锁——题目4
    《Cracking the Coding Interview》——第16章:线程与锁——题目3
    《Cracking the Coding Interview》——第16章:线程与锁——题目2
  • 原文地址:https://www.cnblogs.com/aberic/p/9171635.html
Copyright © 2020-2023  润新知