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

HyperledgerFabric2.2.1区块链问题汇总(后续有问题再更新)

搭建HyperledgerFabric时遇到了很多问题,很多坑,这里汇总一下,有些可能没保存图片,还有些问题没及时记录起来:1、生成orderer区块文件时,如下图所示:

搭建Hyperledger Fabric时遇到了很多问题,很多坑,这里汇总一下,有些可能没保存图片,还有些问题没及时记录起来:

1、生成orderer区块文件时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

必须要指定channelID修改命令如下即可:

configtxgen -profile TestTwoOrgsOrdererGenesis -channelID qkltestchannel -outputBlock ./order.genesis.block

2、创建orderer区块文件时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:OrdererDefaults引用不到,百度了一下,参考文章:https://blog.csdn.net/damonren/article/details/90753164,说是configtx.yaml配置文件的Profiles部分要放到最后面才行,修改下configtx.yaml的内容即可。

3、创建orderer区块文件时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:configtx.yaml文件缺少了策略配置,增加对应的policies即可,可参考fabric源码的test-network目录下的configtx.yaml,我的是在这个目录:~/go/src/github.com/hyperledger/fabric/scripts/fabric-samples/test-network/configtx

4、创建orderer区块文件时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:权限拒绝,因为要写入一个order.genesis.block文件,所以需要权限,输入命令:

sudo configtxgen -profile TestTwoOrgsOrdererGenesis -channelID qkltestchannel -outputBlock ./order.genesis.block

5、生成锚点更新文件时,即执行下面命令时:

sudo configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org1MSPanchors.tx -channelID qkltestchannel -asOrg Org1MSP
sudo configtxgen -profile TestTwoOrgsChannel -outputAnchorPeersUpdate ./Org2MSPanchors.tx -channelID qkltestchannel -asOrg Org2MSP

如果出现Error on inspectChannelCreateTx:org 'Org1MSP' does not have any anchor peers这种报错的话,原因:configtx.yaml底下的Org1,即peer节点的配置少了下面的属性:

AnchorPeers:
- Host: peer0.org1.qkltest.com
Port: 7051

6、启动orderer节点时,即输入命令:orderer start时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:权限问题,输入命令时,加个sudo orderer start即可

7、启动orderer节点时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:configtx.yaml文件没配置capabilities的原因,因此我们重新改下configtx.yaml文件,增加了Capabilities,不过要重新生成对应的一些区块问题,通道配置文件,锚点更新文件

8、创建通道时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:出现这种情况时,是因为找不到对应的配置文件,所以要切换到peer目录

9、创建通道时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:连接不到orderer.qkltest.com:7050,可能网络配置问题,又或者orderer配置问题,又或者orderer没有启动

10、创建通道时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:就是创建orderer区块文件时的channelID与创建通道配置文件channelID相同导致的

11、创建通道时,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:找不到对应的证书路径,可以加上--cafile指定orderer的证书路径,我的路径:/opt/hyperledger/fabricconfig/crypto-config/ordererOrganizations/qkltest.com/orderers/orderer.qkltest.com/msp/tlscacerts/tlsca.qkltest.com-cert.pem

又或者,没有设置相关的变量:

export set CORE_PEER_LOCALMSPID=Org1MSP
export set CORE_PEER_ADDRESS=peer0.org1.qkltest.com:7051
export set CORE_PEER_MSPCOnFIGPATH=/opt/hyperledger/fabricconfig/crypto-config/peerOrganizations/org1.qkltest.com/users/Admin@org1.qkltest.com/msp

12、用docker-compose启动网络时,orderer节点启动失败,如下图所示:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

原因:通常出现这种情况,就是证书路径配置错了,检查一下docker-compose-test-qkl.yaml路径,发现没有错呀,也可能是docker-compose-test-qkl.yaml文件底下orderer配置的路径下msp没有signcerts目录:

Hyperledger Fabric 2.2.1 区块链问题汇总(后续有问题再更新) - 文章图片

上面这种的解决就是再搭建Fabric第一步时配置出问题了,我是把一个orderer其中的属性Specs写成小写的specs,导致一些目录和证书缺少,没生成。需要重新修改crypto-config.yaml,再重新执行命令:

sudo cryptogen generate --cOnfig=crypto-config.yaml

可能还有很多问题,可以参考这篇文章:https://studygolang.com/articles/20611

我这边也会持续更新,有问题可以在下方提出,大家一起讨论学习,谢谢!

 



推荐阅读
  • 使用Docker安装和运行Nexus
    本文介绍了使用Docker安装和运行Nexus的方法,包括docker-compose.yml配置和启动时可能出现的权限问题解决方法。同时提供了登录控制台验证安装的地址和登录信息。 ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • 有关phpfgetss()函数的文章推荐10篇
    有关phpfgetss()函数的文章推荐10篇:了解如何使用PHP的各种文件函数。查看诸如fopen、fclose和feof之类的基本文件函数;了解诸如fgets、fgetss和f ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了如何将CIM_DateTime解析为.Net DateTime,并分享了解析过程中可能遇到的问题和解决方法。通过使用DateTime.ParseExact方法和适当的格式字符串,可以成功解析CIM_DateTime字符串。同时还提供了关于WMI和字符串格式的相关信息。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 处理docker容器时间和宿主机时间不一致问题的方法
    本文介绍了处理docker容器时间和宿主机时间不一致问题的方法,包括复制主机的localtime到容器、处理报错情况以及重启容器的步骤。通过这些方法,可以解决docker容器时间和宿主机时间不一致的问题。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了在Docker容器技术中限制容器对CPU的使用的方法,包括使用-c参数设置容器的内存限额,以及通过设置工作线程数量来充分利用CPU资源。同时,还介绍了容器权重分配的情况,以及如何通过top命令查看容器在CPU资源紧张情况下的使用情况。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • Vue3中setup函数的参数props和context配置详解
    本文详细介绍了Vue3中setup函数的参数props和context的配置方法,包括props的接收和配置声明,以及未通过props进行接收配置时的输出值。同时还介绍了父组件传递给子组件的值和模板的相关内容。阅读本文后,读者将对Vue3中setup函数的参数props和context的配置有更深入的理解。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
author-avatar
红红的累累vdHRC_958
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有