多通道与多个 BNA Hyperledger Composer

Multi-Channel vs Multiple BNAs Hyperledger Composer

根据官方 hyperledger composer 文档,composer 只能在单个通道上工作:

https://hyperledger.github.io/composer/latest/reference/connectionprofile

在我打算实现的设计中,我有多个通道同时运行。因此,我是否必须为每个通道创建一个 BNA 定义,并且每次我想创建一个通道时 'launch' 它?

为了节省在结构层重新开发整个系统的潜在痛苦和开发时间,我是否可以将拥有多个通道等同于简单地启动多个作曲家 BNA?

在连接配置文件中,您可以有多个通道,这是我的一个项目的版本示例:

"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

我也有和你一样的困惑。但是看完这个issue,我明白了为什么composer connection profile 不支持多声道。
https://github.com/hyperledger/composer/issues/2103
由于不同的频道各有特点,将它们全部定义为一个是很可怕的 connection profile 如果您使用 composer-rest-api 它将始终使用 channels

中的第一个元素