将新的组织添加到现有的联盟中?超级账本面料

时间:2019-10-30 09:49:43

标签: hyperledger-fabric

有3个组织:Org1,Org2和Org3。
Org1和Org2创建了一个名为# Example dataset data_mountain_A <- data.frame(elevation=c(0,500,1000,1500,2000), temperature=c(20,16,12,8,5), name="A") data_mountain_B <- data.frame(elevation=c(0,500,1000,1500,2000,2500,3000), temperature=c(20,16,12,8,5,0,-5), name="B") data_merge <- rbind(data_mountain_A, data_mountain_B) # Creates the temperature intervals data_merge$temperature_intervals <- cut(data_merge$temperature,seq(-5,20,5)) # Fancy colors colfunc <- colorRampPalette(c("white","light blue","dark green")) # Plot ggplot(data=data_merge, aes(fill=temperature_intervals, y=elevation, x=name)) + geom_bar(stat="identity") + scale_fill_manual(values=colfunc(5)) 的财团

现在,我想将SampleConsortium添加到Org3中。尚未创建任何渠道。

在文档中,有一个教程可以将组织添加到现有渠道。我希望组织加入该联盟而不是该渠道。

我该怎么做?请添加将非常有帮助的资源。

谢谢!

2 个答案:

答案 0 :(得分:1)

我已经编写了将组织添加/删除组织并添加到渠道的脚本。

## Make sure network is up
## Make sure certificates are generated using cryptogen
## Make sure you are executing this script in cli
## docker exec -it cli bash

export ORDERER_CA=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
export CHANNEL_NAME=byfn-sys-channel

CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/users/Admin@example.com/msp
CORE_PEER_ADDRESS=orderer.example.com:7050
CORE_PEER_LOCALMSPID=OrdererMSP
CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/tls/ca.crt


peer channel fetch config config_block.pb -c $CHANNEL_NAME -o orderer.example.com:7050 --tls --cafile $ORDERER_CA

configtxlator proto_decode --input config_block.pb --type common.Block | jq .data.data[0].payload.data.config > config.json

#### Add Org into Consortium ######
jq -s '.[0] * {"channel_group":{"groups":{"Consortiums":{"groups": {"SampleConsortium": {"groups": {"Org3MSP":.[1]}}}}}}}' config.json ./channel-artifacts/org3.json > modified_config.json

#### Delete Org from Consortium ######
 cat config.json | jq "del(.channel_group.groups.Consortiums.groups.SampleConsortium.groups.Org3MSP)" > modified_config.json

#### Add Organization to channel #####
jq -s '.[0] * {"channel_group":{"groups":{"Application":{"groups": {"Org3MSP":.[1]}}}}}' config.json ./channel-artifacts/org3.json > modified_config.json

#### Delete Oraganization from channel ####
jq 'del(.channel_group.groups.Application.groups.Org3MSP)' config.json > modified_config.json


configtxlator proto_encode --input config.json --type common.Config --output config.pb

configtxlator proto_encode --input modified_config.json --type common.Config --output modified_config.pb

configtxlator compute_update --channel_id $CHANNEL_NAME --original config.pb --updated modified_config.pb --output org3_update.pb

configtxlator proto_decode --input org3_update.pb --type common.ConfigUpdate | jq . > org3_update.json

echo '{"payload":{"header":{"channel_header":{"channel_id":"byfn-sys-channel", "type":2}},"data":{"config_update":'$(cat org3_update.json)'}}}' | jq . > org3_update_in_envelope.json

configtxlator proto_encode --input org3_update_in_envelope.json --type common.Envelope --output org3_update_in_envelope.pb


peer channel signconfigtx -f org3_update_in_envelope.pb

peer channel update -f org3_update_in_envelope.pb -c $CHANNEL_NAME -o orderer.example.com:7050 --tls --cafile $ORDERER_CA

答案 1 :(得分:0)

感谢@alexander对此tutorial link的支持。

该教程由Allison Irvin

编写
  

Updating the Consortium Definition in Hyperledger Fabric

这个问题的答案:

  

我们必须更新系统创世块以添加新组织   在财团中。然后,只有新组织才能创建渠道。

教程简介:
渠道的创建由联盟成员控制,联盟成员由一个或多个在网络级别定义的组织组成。随着Fabric网络的发展和壮大,预计需要具备创建渠道能力的组织的列表将会改变。因此,我们需要在不中断任何网络组件的情况下添加或修改Consortia定义的能力。