【发布时间】:2019-11-05 13:37:26
【问题描述】:
我正在尝试根据我找到的以下文档设置 Idemix:
- https://hyperledger-fabric.readthedocs.io/en/release-1.4/idemix.html
- https://hyperledger-fabric-ca.readthedocs.io/en/release-1.4/users-guide.html#getting-idemix-cri-certificate-revocation-information
- https://hyperledger-fabric.readthedocs.io/en/release-1.4/idemixgen.html
但在调用事务时,我收到以下错误:
$ docker exec -e "CORE_PEER_LOCALMSPTYPE=idemix" -e "CORE_PEER_LOCALMSPID=Org1IdemixMSP" -e "CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/User1@org1.example.com" cli peer chaincode query -C channel1 -n chaincode1 -c '{"Args":["query","a"]}'
Error: error getting default signer: error obtaining the default signing identity: no default signer setup
我采取的步骤:
- 注册用户
User1@org1.example.com到fabric CAfabric-ca-client register --id.name User1@org1.example.com --id.secret mysecret --id.type client --id.affiliation org1 --id.attrs role=2 -u http://localhost:7054 - 注册用户并创建 idemix 身份
fabric-ca-client enroll --enrollment.type idemix -u http://User1@org1.example.com:mysecret@localhost:7054 - 将
$USER1_DIR/msp/IssuerRevocationPublicKey重命名为$USER1_DIR/msp/RevocationPublicKey。在事务调用期间,名称应为RevocationPublicKey,而不是IssuerRevocationPublicKey - 准备 idemix msp。我将CA的
IssuerPublicKey和IssuerRevocationPublicKey复制到msp文件夹中。我需要将IssuerRevocationPublicKey重命名为RevocationPublicKey否则configtxgen会抱怨 -
在
configtx.yaml中,添加一个 Idemix MSP- &Org1Idemix Name: Org1IdemixMSP # ID to load the MSP definition as ID: Org1IdemixMSP msptype: idemix MSPDir: crypto-config/peerOrganizations/org1idemix.example.com/ Policies: &Org1IdemixMSPPolicies Readers: Type: Signature Rule: "OR('Org1IdemixMSP.member')" Writers: Type: Signature Rule: "OR('Org1IdemixMSP.member')" Admins: Type: Signature Rule: "OR('Org1IdemixMSP.admin')" - 创建创世区块、通道区块、启动网络 etc2(照常)
- 尝试查询交易,出现上述错误
我做了一些故障排除,根据idemixgen 文档,我发现我需要将默认签名者放入 idemix msp 中,即在 user 文件夹中。所以我将User1@org1.example.com的SignerConfig文件放入user文件夹并重新运行configtxgen。我收到以下错误:
Error loading MSP configuration for org: Org1IdemixMSP: unexpected EOF
接下来我与idemixgen 和User1@org1.example.com 中的SignerConfig 生成的SignerConfig 做了一些比较。 idemixgen生成的那个是打不开的,另一个是.json文件(如下图),所以格式不一样。使用idemixgen生成的SignerConfig运行configtxgen是成功的。我想尝试通过idemixgen 生成的身份来调用事务,但是除了默认签名者之外,没有其他方法可以生成身份。
{
"Cred": "CkQKIK/7Slvg7laNMv8n7urCKpRN4gTZJZ7xQUyqPQ0GskWFEiCq/aRBmXlQAnSeJLXViGEHLRoztSCoHU6PDXaft+STexJECiB1dosl0QwT5dR/iNwfj0UvWZLph5U6fTMUVjYXE3W/UhIg6U+q6S9xMZhL7SHYe/v//Vhsw7X7N+93Ha4qQiWu0OIaIKcFZamTWwD5VQppZDEdxv5nr4DZAOn/S0r3gchLFG66IiD7kc8IZFRji8ub7yS5ueK8ZcLm5o+WR9a7wAx7o6fKQCogieDBP6ZS9S2R/JDVaLcAcNbtGlnF2fRS37GyoZmxko4qIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACKiArm8Pnrt+hrBAk1PD9trARpE6XVbdfXN+27uSe9r8uxCogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=",
"Sk": "LwrgRX48aewbqKWrvNjo5VFfNSDIJAvdaR4brzOsnWM=",
"organizational_unit_identifier": "org1",
"enrollment_id": "User1@org1.example.com",
"credential_revocation_information": "CAESiAEKIP4MM1C0yWwgKFYPV3wokTrOHFOaEr+EPNImFraJwJ77EiBOpmBXc4rAVNta4cY32BO5JN144ofQNYnSae00o35qKxogcCBG58VCo7N2dw11Ek4+Ue/LJHWNYVhI6Qm0gb7cJ/8iIAVU47zTiMKQQu6mSSl+sp+LTL6AghqYs+ASgRFKrQSbGmgwZgIxAJRyRpR+k3SaAVRm4GM3l+zBU6V/7g73C9RQIU9kPef9XqVl0Gb+hQqrgd1HsTQ5GgIxANb6XNB+CrrQgwbt6msa0SG+aQKpSl48EeP/V7beUkshNubudBS+WjS+PRbf5aW0Nw=="
}
【问题讨论】:
标签: hyperledger-fabric hyperledger-fabric-ca