HyperLedger Fabric学习笔记——链码命名空间
下面两张图直观地反映了链码命名空间的作用和链码访问不在其命名空间中的world state的方法(即链码对链码的调用):
关于链码的命名空间主要有以下几点注意:
- 一般来说每个链码只有一个智能合约
- 如果多个智能合约关系非常紧密,那么它们应该放在同一个链码中,通常这只在它们共享同一个world state情况下
- 链码命名空间为不同的world state提供了隔离,要注意的是并不能自选链码命名空间,它是由Hyperledger Fabric分配的,并直接映射到链码名称
- 链码对链码的调用使用invokeChaincode()API接口,两个链码必须安装在同一个节点上
如果是查询world state,那么调用可以在与调用方链码不同的通道中进行,如果是更新world state,那么调用必须和调用方链码在同一通道中。