50222

How can I add two orderers to the same channel?

Question:

I'm trying to build a network with two orders using Kafka.

In the first network example there is a script named./script.sh that creates a channel with an associated orderer that runs this command:

peer channel create -o orderer.example.com:7050 -c $CHANNEL_NAME -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem >&log.txt

I already started implementing Kafka. But my question is How can I change this command to create a channel with two orders? Or is there a better way to do this?

Answer1:

You do not add orderers to channel. An orderer belongs to an orderer organization. You can define multiple consortium that an orderer organization can serve. The definition of consortium is provided inside the definition of the Orderer Organization.

When you create an channel, you define which consortium it belongs to. The members you define in the channel, needs to be a part of that consortium.

Hence, if you define an orderer organization and you have multiple orderer nodes in them, it will serve all channels that its organization is a part of via consortiums.

Consider the below simplified example of configtx.yaml :

ProfileForGenesisOrderer1: Orderer: Organizations: - *OrdererOrg1 Consortiums: Consortium1: Organizations: - *Org1 - *Org2 - *Org3 ProfileForGenesisOrderer2: Orderer: Organizations: - *OrdererOrg2 Consortiums: Consortium2: Organizations: - *Org4 - *Org5 - *Org6 ChannelOne: Consortium: Consortium1 Application: <<: *ApplicationDefaults Organizations: - *Org1 - *Org3 ChannelOne: Consortium: Consortium2 Application: <<: *ApplicationDefaults Organizations: - *Org6 - *Org4

An orderer belonging to OrdererOrg1 will only its Consortium1 hence serve ChannelOne. Same is the case for OrdererOrg2.

Recommend

  • Subsetting R data frame with NAs in index variable
  • Hyperledger fabric 1.2 service discovery error
  • Hyperledger Composer BNA deployment results in 'TCP write failed'
  • $GOPATH value keeps reseting to empty during new sessions of the terminal
  • Searching for a product even if code is misspelled
  • How to draw arc in Fabric.js
  • How to add more orderer nodes to a running hyperledger fabric network
  • How to integrate HyperLedger composer Business network with Hyperledger explorer?
  • How can I add two orderers to the same channel?
  • fixing versions of tools used by go
  • How to use “internal” packages?
  • HyperLedger-Fabric ChainCode Deployment - Base64 error
  • IE toDataUrl() Security Error
  • How control DAG concurrency in airflow
  • Getting a Python Virtual Environment, Fabric and Sudo to Work Together
  • Issue with Crashlytics and Answers kit
  • fabricjs: _render method of my fabric.Object subclass is never called
  • Enable and disable mouse events for canvas using Fabric.js
  • Gradle Build stuck at generate debug sources
  • How to add URL to an image in Fabric.js?
  • Fabric doesn't update my latest build version
  • Fabric, can't get default locale on django
  • Random number generator security: BCryptGenRandom vs RNGCryptoServiceProvider
  • 'failed to emit precompiled header' while adding new pod into existing Project
  • ngTouch module prevent redirect to url from href attribute
  • How to add texture (image) to SceneKit model so that it covers the model (mesh) uniformly?
  • Pros and cons in using multiple actor types in same Service Fabric service
  • Setting up the network for Kubernetes
  • Non-detached PKCS#7 SHA1+RSA signature without M2Crypto
  • websocket handshake on node.js
  • Cannot debug project after upgrading to Service Fabric SDK v2.3.301
  • Spring Security bcrypt encoding login is not working
  • How to generate and display a QR Code in ionic 2
  • How to view images from protected folder with php?
  • Display images in Django
  • Resize panoramic image to fixed size
  • Shallow update not allowed (git > 1.9)
  • Importing jscolor library in angular 2
  • How do I rollback to a specific git commit
  • Revoking OAuth Access Token Results in 404 Not Found