• fabric 网络操作中遇到的问题


     Failed to reach implicit threshold of 1 sub-policies, required 1 remaining: permission denied:

    错误原因:由于启动过网络并且更新了证书,在没有删除干净的环境中启动复用的之前的volume,所以导致证书认证失败。

    解决方案:执行如下命令删除卷

    docker-compose -f docker-compose-cli.yaml down --volumes --remove-orphans
    docker rm -f $(docker ps -a | grep "hyperledger/*" | awk "{print $1}")
    docker volume prune

    Error: could not send: EOF

    解决方法:参数上添加 --tls

    export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
    
    peer chaincode instantiate -o orderer.example.com:7050 --tls --cafile $ORDERER_CA -C mychannel -n mycc -v 1.0 -c '{"Args":["init","a","100","b","200"]}' -P "AND ('Org1MSP.peer','Org2MSP.peer')"

    stateBasedValidator.Validate failed, err validation of endorsement policy for chaincode mycc in tx 205:0 failed: signature set did not satisfy policy

    validation of endorsement policy for chaincode mycc in tx 205:0 failed: signature set did not satisfy policy(背书策略验证失败)

    解决方法:修改背书策略

    参考:https://hyperledger-fabric.readthedocs.io/zh_CN/release-1.4/endorsement-policies.html

    背书策略的语法如下:
    EXPR(E[, E...])

    EXPR可以是AND、OR、OutOf,E可以是一个上面示例的主体或者是另一个嵌套的EXPR策略。示例如下:

    AND('Org1.member', 'Org2.member', 'Org3.member') :要求三个主体中每一个主体都要签名。
    OR('Org1.member', 'Org2.member') :要求三个主体中至少有一个主体签名。
    OR('Org1.member', AND('Org2.member', 'Org3.member')):要求同时有主体Org1.member的签名,以及主体Org2.member与Org3.member中至少一个主体的签名。
    OutOf(2, 'Org1.member', 'Org2.member', 'Org3.member') :要求三个主体中,至少有两个主体签名。

    marked as invalid by state validator. Reason code [MVCC_READ_CONFLICT]

    错误产生:但统一账户在短时间内发生多笔交易时,大部分交易失败。例如在for循环中连续交易20次,仅有不到5次的交易成功。

    原因:该网络在每秒处理多笔交易时保证交易的正常运行,这些交易都更新同一账户中的相同资产,链码会在每次涉及它的交易进入时尝试更新这个键。然而,当许多交易同时进入时,在两者之间的时间当在对等方上模拟交易(即创建读取集)并且准备好提交到分类帐时,另一个交易可能已经更新了相同的值,所以会导致大量并行事务失败。

    参考:

    https://stackoverflow.com/questions/45347439/mvcc-read-conflict-when-submitting-multiple-transactions-concurrently

    https://github.com/hyperledger/fabric-samples/tree/release/high-throughput

  • 相关阅读:
    npm安装Vue及配置
    Node.js安装
    代码优化总结
    Java 读取文件指定行数的数据
    Navicat Premium 15 v15.0.17 数据库开发工具 安装激活详解
    发现了一个关于 gin 1.3.0 框架的 bug
    802.1X 账号密码+设备信息双重认证
    Vue项目入门(一)
    WPF登录界面
    使用“user32.dll”控制窗体
  • 原文地址:https://www.cnblogs.com/luyilan/p/14976542.html
Copyright © 2020-2023  润新知