zoukankan      html  css  js  c++  java
  • 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群:

  • 相关阅读:
    使用JDBC连接MySql时出现:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration
    Mysql Lost connection to MySQL server at ‘reading initial communication packet', system error: 0
    mysql-基本命令
    C# 监听值的变化
    DataGrid样式
    C# 获取当前日期时间
    C# 中生成随机数
    递归和迭代
    PHP 时间转几分几秒
    PHP 根据整数ID,生成唯一字符串
  • 原文地址:https://www.cnblogs.com/aberic/p/9171635.html
Copyright © 2011-2022 走看看