新项目中需要进行chaincode开发工作。并且可能需要chaincode 间互相调用的操作。这里记录一下我的调研过程。
首先问题
1:chaincode 间是否可以互相调用,是从fabric 哪个版本开始支持,最新版是否支持?
2:chaincode 间互相调用的边界?如,是否支持不同channel 间的chaincode调用?还是只支持同一channel 里的chaincode 调用?
3:chaincode 间的调用是否支持写操作?
基于以上三个问题,开始探索之路。
首先利用百度,检索chaincode 间调用的博客。发现还是有很多的文章,这里放一些我看的文章地址:
https://blog.csdn.net/xiaohuanglv/article/details/89033472
通过上面一个文章我们可以发现几乎已经回答了我们所有的问题。1:chaincode 间可以相互调用,笔者当前使用的是fabric1.4 TLS(版本),支持chaincode 间相互调用。2:chaincode 支持不同channel 间与同一channel 间的相互调用。3:不同channel 间的相互调用不能执行写操作。同一channel 间的调用支持写操作。(也就是会修改最终的状态数据库,我还是喜欢叫世界状态)
接着我们需要查看fabric 官方文章的介绍。
官方文章笔者没有找到,对invokechaincode 的内容介绍。暂不说明
最后就是我们实际操作,以及源码研究了。
先简单曝一下In