如何在执行chaincode时确保分类帐同步?

时间:2018-08-29 02:28:14

标签: hyperledger-fabric

我已经组成了Hyperledger Fabric网络并安装并实例化了我的链码。但是,当我测试我的链码时,有一些事情不是我期望的。

例如,我的链码具有一个用于创建用户(使用PutState)的API,但是如果给定的用户名已经存在(使用GetQueryResult进行检查),它将通过返回错误来拒绝。

当我使用shell脚本测试链代码时,它可以很好地与以下代码配合使用:

# create user successfully
docker exec -it cli peer chaincode invoke ...
sleep 3
# attempt to create user with the same username which should fail and it does fail
docker exec -it cli peer chaincode invoke ...

但是,如果没有sleep 3,它不会失败并成功写入分类帐。当我检查写在状态DB中的数据时,我看到了不应该写的后一个数据。

我认为是因为在处理第二个请求时,第一个分类帐(或块?)尚未转移到验证对等方。

如何避免这种行为?还是链代码不应该处理的事情?

0 个答案:

没有答案