好长时间没有更新博客,网上也有很多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连接的时候,在检查一下当前所有事件连接是否正确,或未增加的,为增加的,再更加情况增加组织事件:

Hyperledger Fabric 之 Channel ,创建channel链接几项注意点的更多相关文章

  1. 搭建基于hyperledger fabric的联盟社区(一) --前言

    三个月前上面发了一个关于智群汇聚和问题求解研究的项目,我们公司做其中的一个子项目,就是基于区块链的科技信息联盟构建.利用区块链的去中心化特性,构建一个基于区块链的科技社区,以提供科技群智汇聚采集的基础 ...

  2. Hyperledger Fabric on SAP Cloud Platform

    今天的文章来自Wen Aviva, 坐Jerry面对面的程序媛. Jerry在之前的公众号文章<在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图>已经介绍过Aviva ...

  3. 浅析Hyperledger Fabric共识算法 摘自http://www.cocoachina.com/blockchain/20180829/24728.html

    Hyperledger Fabric共识算法 区块链系统是一个分布式架构,交易账本信息由各个节点管理,组成一个庞大的分布式账本.在分布式系统中,各个节点收到的交易信息的顺序可能存在差异(例如,网络延迟 ...

  4. Hyperledger Fabric【区块链学习一】

    Hyperledger Fabric 学习 什么是区块链 什么是区块链在我们没有接触的时候,只知道它是一个去中心化的存储方式.当我们发生交易,或者动作的时候我们会将记录通知给所有参与者共同维护,达到去 ...

  5. Hyperledger Fabric(v1.2.0)代码分析1——channel创建

    Hyperledger Fabric(v1.2.0)代码分析1--channel创建 0. e2e_cli Hyperledger Fabric提供了一个e2e的例子,该例中创建了一个基础的区块链网络 ...

  6. Hyperledger Fabric——balance transfer(三)创建和加入Channel

    详细解析blance transfer示例的创建通道(Channel)和加入节点到通道的过程. 创建Channel 1.首先看app.js的路由函数 var createChannel = requi ...

  7. Hyperledger Fabric 中channel配置相关数据结构

    channel Configuration Transaction Hyperledger Fabric区块链网络中的配置存储在一个configuration-transaction的集合中,每个ch ...

  8. Hyperledger Fabric channel配置交易

    一个超级账本区块链网络里每个channel的共享配置都是存储在一个配置交易里.每个配置交易通常被简称为configtx. Channel 配置有以下重要属性: 1.有版本标识:配置里的所有元素都有一个 ...

  9. Hyperledger Fabric 1.0 从零开始(六)——创建Fabric多节点集群

    4:创建Fabric多节点集群 4.1.配置说明 首先可以根据官方Fabric自带的e2e_cli列子中的集群方案来生成我们自己的集群,与案例不同的是我们需要把容器都分配到不同的服务器上,彼此之间通过 ...

随机推荐

  1. Delphi事件的广播

    原文地址:Delphi事件的广播 转作者:MondaySoftware 明天就是五一节了,辛苦了好几个月,借此机会应该尽情放松一番.可是想到Blog好久没有写文章,似乎缺些什么似的.这几个月来在项目中 ...

  2. SharePoint Add-in Model 介绍 - 引文(先导篇)

    1. SharePoint 平台 如果你已经很熟悉 SharePoint 平台,可跳过本章节. 1.1 SharePoint 是什么 在介绍 Add-in Model 之前,简要提一下 SharePo ...

  3. 更改当前电源策略(使用SetActivePwrScheme API函数),自定义电源按钮动作(设置GLOBAL_POWER_POLICY)

    #include <windows.h> #include <Powrprof.h> #pragma comment(lib, "Powrprof.lib" ...

  4. Linux 下配置 phpredis 的过程和遇到的问题

    其实对于 Linux 系统和 LNMP 环境并不是很熟,如果有错误请指正. 一.关于 PHP PHP 的编译参考了此文:http://blog.aboutc.net/linux/65/compile- ...

  5. XMLHttpRequest对象的属性与方法

    XMLHttpRequest对象是Ajax的核心,它有很多属性和方法.1,readyState属性当一个XMLHttpRequest对象被创立后,readyState属性标示了当前对象处于什么状态,可 ...

  6. Python 爬虫从入门到进阶之路(七)

    在之前的文章中我们一直用到的库是 urllib.request,该库已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Hum ...

  7. 关于web系统整体优化提速总结

    关于web系统整体优化提速总结 一.背景 随着公司业务的拓展,随之而来就是各种系统横向和纵向的增加,PV.UV也都随之增加,原有的系统架构和模式慢慢遇上了瓶颈,需要逐步的对系统从整体上进行改造升级,通 ...

  8. 节能减排到底如何----google earth engine 告诉你!!

    (First,再次严谨说明,本人成果未经允许,切勿发表到相关学术期刊,如果有技术交流,qq1044625113,顺便打个广告,兼职GEE开发,欢迎联系!) 终于过了严寒的冬天,2017年的冬天中国南方 ...

  9. Spring 注解编程之模式注解

    Spring 框架中有很多可用的注解,其中有一类注解称模式注解(Stereotype Annotations),包括 @Component, @Service,@Controller,@Reposit ...

  10. 【设计模式】行为型11解释器模式(Interpreter Pattern)

      解释器模式(Interpreter Pattern) 解释器模式应用场景比较小,也没有固定的DEMO,中心思想就是自定义解释器用来解释固定的对象. 定义:给定一个语言,定义它的文法表示,并定义一个 ...