根据正式的Hyperledger作曲者文档,作曲者只能在单个通道上工作:
https://hyperledger.github.io/composer/latest/reference/connectionprofile
在我打算实现的设计中,我有多个同时运行的通道。这样,我是否必须为每个通道创建一个BNA定义,并在每次创建通道时“启动”它?
为了节省在架构级别上重新开发整个系统的潜在痛苦和开发时间,我是否可以将拥有多个渠道等同于简单地启动多个作曲家BNA视为难道?
答案 0 :(得分:1)
在连接配置文件中,您可以有多个通道,这是我的一个项目的示例版本:
"channels": {
"chan1": {
"x-status": "membership_valid",
"orderers": [
"orderer"
],
"peers": {
"org1-peer0c64": {
"x-chaincode": {}
}
},
"chaincodes": [],
"x-members": [
"org1",
"org4"
]
},
"chan2": {
"x-status": "membership_valid",
"orderers": [
"orderer"
],
"peers": {
"org1-peer0c64": {
"x-chaincode": {}
}
},
"chaincodes": [],
"x-members": [
"org1"
]
}
},
这个想法是,您可以让一个同行加入多个渠道。您可以在对等方上安装链码(bna),然后需要在通道上实例化该链码。在任何数量的通道上,您都无法阻止实例化相同的链码。
请记住,每个渠道都有自己的分类帐,它们将是独立的,但是是的,在某些情况下,需要这样的设计。
对于更复杂的情况,好的资源是:https://hyperledger.github.io/composer/latest/tutorials/deploy-to-fabric-multi-org
答案 1 :(得分:0)
我也和你一样困惑。但是在阅读了该问题之后,我了解了为什么作曲家connection profile
不支持多通道。
https://github.com/hyperledger/composer/issues/2103
由于不同的渠道都有其自身的特殊性,因此将所有这些都定义在一个connection profile
中是很可怕的
如果您使用composer-rest-api
,它将始终使用channels