在Hyperledger Playground提交交易时遇错误:指定资产不存在
排查Hyperledger Playground交易错误:资产不存在问题
别担心,咱们一步步来拆解这个问题:
先确认目标资产是否真的存在
打开Hyperledger Playground的「Assets」面板,在搜索框输入7660,选择org.acme.biznet.Handset资产类型,看看能不能找到对应的资产。如果搜不到,那问题根源就是你要操作的资产还没被创建出来——先执行创建该资产的交易,再尝试当前操作。核对交易参数的准确性
检查提交交易时填写的资产ID是否完全正确:有没有输错数字、大小写错误?Hyperledger Fabric的资产ID是严格区分大小写的,哪怕多一个空格或者少一位数都会导致找不到资产。检查Chaincode的交易逻辑
如果你是自定义的Chaincode,去查看对应交易函数的代码:- 确认代码中引用的资产类型是不是
org.acme.biznet.Handset,有没有写错集合名; - 检查获取资产的逻辑(比如
ctx.stub.getState(assetId))是不是正确传递了7660这个ID参数,会不会是代码里硬编码了错误的ID,或者参数传递时出了问题。
- 确认代码中引用的资产类型是不是
验证业务流程的前置步骤
有些交易依赖前置操作,比如必须先创建资产才能执行转移、更新等操作。确认你是不是跳过了创建ID为7660的Handset资产的步骤,直接进入了后续交易环节。排查账本同步问题
如果是多Peer节点的环境,切换到不同的Peer节点重新搜索资产。有时候某个节点可能还没同步到资产创建的区块,导致查询不到。可以在Playground的右上角切换Peer节点后再次验证。
内容的提问来源于stack exchange,提问作者Tebatso Chiloane
相关产品推荐
相关产品推荐

