多通道vs多个BNA Hyperledger Composer

时间:2018-09-04 09:15:31

标签: hyperledger-fabric hyperledger hyperledger-composer

根据正式的Hyperledger作曲者文档,作曲者只能在单个通道上工作:

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

在我打算实现的设计中,我有多个同时运行的通道。这样,我是否必须为每个通道创建一个BNA定义,并在每次创建通道时“启动”它?

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

2 个答案:

答案 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

中的第一个元素