文档首页 > > 常见问题> 交易相关类> 区块链服务交易连接失败或连接超时

区块链服务交易连接失败或连接超时

分享
更新时间:2020/10/19 GMT+08:00

问题现象

区块链服务交易连接失败或连接超时。

排查思路

•排查项一:服务状态异常

•排查项二:客户端所使用的fabric-SDK与区块链服务版本不匹配。

•排查项三:peer节点账本不同步。

•排查项四:DB文件不存在。

•排查项五:CouchDB服务版本升级或重启。

解决方案

  • 排查项二:客户端所使用的fabric-SDK与区块链服务版本不匹配。

    进入BCS控制台,单击“服务管理”,单击交易异常的服务名称,并单击“更多信息”,查看版本信息。

    根据“版本信息”显示的Hyperledger Fabric版本,排查客户端所使用的fabric-sdk是否与其一致。如果版本不一致,会导致交易失败、交易超时等情况发生。

    解决方案

    根据服务实际的Hyperledger Fabric版本,下载对应的fabric-sdk包开发客户端。

    Fabric源码包下载地址:https://github.com/hyperledger/fabric

  • 排查项三:peer节点账本不同步。
    1. 进入BCS控制台,单击“服务管理”,选择交易异常的服务,进入区块链管理页面,并单击“区块浏览器”,选择交易异常的通道,查看“区块列表”中显示的当前通道区块数。

    2. 登录部署BCS区块链的云服务器,并执行docker ps|grep k8s_peer指令查看peer容器,记录交易超时的peer节点容器ID。

    3. 执行docker exec -it {容器ID} bash进入容器。

    4. 执行peer channel list查看peer节点加入的通道。

    5. 执行peer channel getinfo -c {通道名}查看peer节点账本落块情况。

      如果peer节点账本落块数与区块链浏览器中查询结果存在差异,且10min后再次查询,该peer节点账本区块数一直未增长,则可能因为资源不足、并发过高导致peer节点落块不同步,造成交易状况异常。

      请提工单进行咨询

  • 排查项四: DB文件不存在。
    1. 登录部署BCS区块链的云服务器,并执行docker ps|grep k8s_peer指令查看peer容器,记录交易状况异常的peer节点容器ID。

    2. 执行docker exec -it {容器ID} bash进入容器。

    3. 执行cd /var/log/baas-service/peer/进入peer节点日志存储路径,执行ll查看所有文件。

    4. 获取Peer节点的哈希值及序号:

      登录区块链管理页面,单击“区块浏览器”,在“Peer节点状态列表”的“Peer节点域名”列查看。

    5. Peer节点日志命名规则为peer-{哈希值}-{序号}.trace,执行 cat {文件名}|grep -C 5 "Fail to recover DB: file does not exist"搜索异常信息

      如存在“Fail to recover DB: file does not exist”相关信息,表明peer节点DB文件不存在,会导致交易状况异常。

      请提工单进行咨询

  • 排查项五:CouchDB服务版本升级或重启。

旧版本的CouchDB服务容器重启后,由于状态数据没有存入网盘中,所以重启后状态数据丢失,couchDb重新加载区块数据生成状态数据,导致服务在一段时间不可用。

十五万的区块数同步数据耗时2小时左右,同步数据期间peer的7051端口不可访问。

解决方案

将区块链服务升级至最新版本,后续再有版本升级或重启操作,将不会发生此类问题。

服务首次升级至最新版本时,由于CouchDB容器挂载网盘并同步状态数据,会导致服务一段时间无法交易,具体时间随账本区块数线性增加,每十五万的区块数同步数据耗时2小时左右,账本区块数可在“区块链管理”页面>“区块浏览器”查看。

分享:

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问