• Hyperledger Fabric 之 Channel ,创建channel链接几项注意点


    好长时间没有更新博客,网上也有很多fabric的部署资料,而且也都很不错,也比较全面。我就再想重复的工作暂时就不用做了,后面抽时间在做细化和分类;
    就将学习和工作中遇到和解决的问题经验,做一些分享。

    而这部分的经验在网上也很难找到。如果过程中有什么问题,希望朋友们可以留言。谢谢!!

    1,Channel长连接

         在new出一个channel连接时候,在客户端中会以channel名称存储的链接,所以在此获取通道时候,需要使用get

         

        

      2,添加事件机制,1.2和1.3的区别

                   这里我们需要知道的时候,在fabric1.3以上的版本,已经将7053这个事件逻辑删除,将时间通知移植到了channel上面,也就是说在1.3以后的版本不需要使用addEventHub为每个

           节点增加事件。

           所以要想在代码层动态切换,就需要判断目标节点的fabric的版本

            (a)对新建channel链接,对1.3版本,则不需要增加事件

            (b)对在channel链接中,已经存在的节点事件,则需要将其删除。

          

           备注:如何获取fabric的版本信息,可以通过docker images查看节点的版本。我这里使用的是脚本读取版本的信息。

    3,多组织增加事件注意点

         也许你在实际使用fabric的过程中,会经常遇到希望接收到Org1MSP,但是接收到是Org2MSP,这样的错误。

        主要原因是在做交易的时候,传的用户归属的组织MSP传的不正确。这个是现象问题,但根本原因是在注册事件的时候,当时的用户归属MSP一定要对应目标组织。

        先来看一下sdk源码:

         

       上述,是在增加事件的时候,会使用当前channel链接中用户信息,链接服务器。也就是说一旦建立了链接,那么在整个channel的生命周期中,对目标节点的事件MSP都是当初用户的MSP。

       如何解决这个问题,那么我们就要在注册这个链接的时候想办法

       

        

        换句话说,在注册时间的时候,要检查当前用户归属的MSP,是否可以你增加的节点同属一个MSP,如果不是,则不注册事件,如果是则注册时间。当再次获取channel连接的时候,在检查一下当前所有事件连接是否正确,或未增加的,为增加的,再更加情况增加组织事件:

       

       

       

  • 相关阅读:
    4.5计算机网络笔记
    3.29计算机网络笔记
    3.22计算机网络笔记
    3.15计算机网络笔记
    用int类型表示最大公倍数
    markdown入门
    learning by doing
    技术博客(初用markdown)。
    物联网PPT智能家居王思齐和陈由钧第10组
    第六次java作业
  • 原文地址:https://www.cnblogs.com/zjlong/p/11225542.html
Copyright © 2020-2023  润新知