Hyperledger fabric 在Hyperledger结构中配置多个通道
我正在尝试使用hyper ledger结构制作两个频道。在一个渠道中会有两个组织,在另一个渠道中会有另外两个组织。在每个组织中,都会有两个对等组织。因此,共有4个组织中的8个对等点,具有两个渠道。到目前为止,我已经完成了以下工作:Hyperledger fabric 在Hyperledger结构中配置多个通道,hyperledger-fabric,hyperledger,Hyperledger Fabric,Hyperledger,我正在尝试使用hyper ledger结构制作两个频道。在一个渠道中会有两个组织,在另一个渠道中会有另外两个组织。在每个组织中,都会有两个对等组织。因此,共有4个组织中的8个对等点,具有两个渠道。到目前为止,我已经完成了以下工作: 在crypto config.yaml文件中,我声明了一个订购方和四个组织。在每个组织中,我都声明了模板计数:2和用户计数:1(有人能解释一下模板计数的含义吗?它是一个节点总数吗?) 然后使用cryptogengengenerate--config=./crypto-
crypto config.yaml
文件中,我声明了一个订购方和四个组织。在每个组织中,我都声明了模板计数:2和用户计数:1(有人能解释一下模板计数的含义吗?它是一个节点总数吗?)cryptogengengenerate--config=./crypto-config.yaml
命令生成密钥和证书configtx.yaml
文件中,我用组织名称声明了两个通道:FourOrgsOrdererGenesis:
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Consortiums:
SampleConsortium:
Organizations:
- *Org1
- *Org2
- *Org3
- *Org4
TwoOrgsChannel1:
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
TwoOrgsChannel2:
Consortium: SampleConsortium
Application:
<<: *ApplicationDefaults
Organizations:
- *Org3
- *Org4
- &OrdererOrg
Name: OrdererOrg
ID: OrdererMSP
MSPDir: crypto-config/ordererOrganizations/acme.com/msp
- &Org1
Name: Org1MSP
ID: Org1MSP
MSPDir: crypto-config/peerOrganizations/org1.acme.com/msp
AnchorPeers:
- Host: peer0.org1.acme.com
Port: 7051
- &Org2
Name: Org2MSP
ID: Org2MSP
MSPDir: crypto-config/peerOrganizations/org2.acme.com/msp
AnchorPeers:
- Host: peer0.org2.acme.com
Port: 7051
- &Org3
Name: Org3MSP
ID: Org3MSP
MSPDir: crypto-config/peerOrganizations/org3.acme.com/msp
AnchorPeers:
- Host: peer0.org3.acme.com
Port: 7051
- &Org4
Name: Org4MSP
ID: Org4MSP
MSPDir: crypto-config/peerOrganizations/org4.acme.com/msp
AnchorPeers:
- Host: peer0.org4.acme.com
Port: 7051
订购者:&orderdefaults
OrdererType: solo
Addresses:
- orderer.acme.com:7050
BatchTimeout: 2s
BatchSize:
MaxMessageCount: 10
AbsoluteMaxBytes: 99 MB
PreferredMaxBytes: 512 KB
Kafka:
Brokers:
- 127.0.0.1:9092
Organizations:
Organizations:
应用程序:&ApplicationDefaults
OrdererType: solo
Addresses:
- orderer.acme.com:7050
BatchTimeout: 2s
BatchSize:
MaxMessageCount: 10
AbsoluteMaxBytes: 99 MB
PreferredMaxBytes: 512 KB
Kafka:
Brokers:
- 127.0.0.1:9092
Organizations:
Organizations:
configtxgen-profile FourOrgsOrdererGenesis-outputBlock./channel artifacts/genesis.block
configtxgen -profile TwoOrgsChannel1 -outputCreateChannelTx ./channel-artifacts/channel1.tx -channelID mychannel1
configtxgen -profile TwoOrgsChannel2 -outputCreateChannelTx ./channel-artifacts/channel2.tx -channelID mychannel2
configtxgen -profile TwoOrgsChannel1-outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel1 -asOrg Org1MSP
configtxgen -profile TwoOrgsChannel1 -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel1 -asOrg Org2MSP
configtxgen -profile TwoOrgsChannel2-outputAnchorPeersUpdate ./channel-artifacts/Org3MSPanchors.tx -channelID mychannel2 -asOrg Org3MSP
configtxgen -profile TwoOrgsChannel2-outputAnchorPeersUpdate ./channel-artifacts/Org4MSPanchors.tx -channelID mychannel2 -asOrg Org4MSP
CHANNEL\u NAME=mychannel1 docker-compose-f docker-compose-cli.yaml-up–d
CHANNEL_NAME=mychannel2 docker-compose -f docker-compose-cli.yaml up –d
据说已经有同龄人在跑步了
因此,我的问题是:
- 如何为不同的组织创建多个渠道?我 没有得到任何详细的例子
- 有可能在两个通道之间进行通信吗
- 如果peer0同时订阅了这两个通道怎么办?它能做到吗 在两个通道中进行通信并传输数据
- 如何为不同的组织创建多个渠道?我没有得到任何详细的例子 我想你需要一个genesis块来引导订购者。Rest需要多通道配置事务文件。(.tx)。您可以使用这些通道文件,使用SDK(请参阅或)或使用fabric cli的对等命令创建和加入通道(我找不到文档,但您可以尝试以下部分:,)
- 有可能在两个通道之间进行通信吗
- 如果peer0同时订阅了这两个通道怎么办?它是否能够在两个通道中进行通信和传输数据
经过反复试验,我发现了这个问题。实际上,我想,如果我想制作多个通道,那么我必须多次使用docker compose命令,这是不正确的。创建多个通道的正确语法为: cryptogen generate--config=./crypto-config.yaml 导出结构\u CFG\u路径=$PWD 配置TXGEN-配置文件FourOrgSorderGenesis-输出块 ./channel artifacts/genesis.block configtxgen-配置文件TwoOrgsChannel1-outputCreateChannelTx ./channel artifacts/channel1.tx-channelID mychannel1 configtxgen-配置文件TwoOrgsChannel2-outputCreateChannelTx ./channel artifacts/channel2.tx-channelID mychannel2 配置TXGEN-配置文件TwoOrgsChannel1-输出端口更新 ./channel artifacts/Org1MSPanchors.tx-channelID mychannel1-asOrg Org1MSP 配置TXGEN-配置文件TwoOrgsChannel1-输出端口更新 ./channel artifacts/Org2MSPanchors.tx-channelID mychannel1-asOrg Org2MSP configtxgen-配置文件TwoOrgsChannel2-输出端口更新 ./channel artifacts/Org3MSPanchors.tx-channelID mychannel2-asOrg Org3MSP configtxgen-配置文件TwoOrgsChannel2-输出端口更新 ./channel artifacts/Org4MSPanchors.tx-channelID mychannel2-asOrg Org4MSP docker compose-f docker-compose-cli.yaml up-d
尝试此配置文件配置
FourOrgsOrdererGenesis:
Orderer:
<<: *OrdererDefaults
Organizations:
- *OrdererOrg
Consortiums:
ConsortiumOne:
Organizations:
- *Org1
- *Org2
ConsortiumTwo:
Organizations:
- *Org3
- *Org4
TwoOrgsChannel1:
Consortium: ConsortiumOne
Application:
<<: *ApplicationDefaults
Organizations:
- *Org1
- *Org2
TwoOrgsChannel2:
Consortium: ConsortiumTwo
Application:
<<: *ApplicationDefaults
Organizations:
- *Org3
- *Org4
FourOrgSordergenesis:
订购方:
你能发布错误日志吗,因为我一直在尝试同样的方法,但没有出现这样的错误。嗨@jaswans,谢谢你的回复。经过反复试验,我发现了我的问题。我在docker compose命令之前使用了通道名称,这是不正确的。正确的命令是:docker compose-f docker-compose-cli.yaml up–dHi@arnabkaycee,感谢您的澄清。我对另一件事很好奇。您知道一个对等方是否可以在没有任何通道的情况下向另一个对等方发送数据?如果为否,则在所有事务中对所有数据进行加密,因为通道使用对称加密进行加密。不是吗?@SwawibeAlam你说的没有频道发送数据是什么意思?同龄人通过流言蜚语交换事务和链码数据。嗨@arnabkaycee,我的意思是“不通过渠道发送数据”,没有渠道能做任何事情吗?如果我错了,请纠正我。HFV1.0中的过程是:首先,对等方加入一个通道。客户向背书人发送提案。背书人提供背书并通过渠道将其发送给客户。客户在频道中向订购方广播背书。订购方在通道中将块发送给提交方。一切都发生在一个通道内。现在,举例来说,如果我只有一个组织。我不需要频道。有没有可能在没有频道的情况下完成所有这些事情?嗨@arnabkaycee,我还有一个问题。您知道吗,通道数据的默认加密机制是什么?我认为这是一种对称加密。但我是