Upgrading existing Hyperledger Fabric orderer from solo to Kafka based - hyperledger-fabric

I've a hyperledger fabric based network setup up and running which is having solo orderer. Now, I need to migrate the orderer from solo to Kafka. Can I do this without affecting the existing network? Seamlessly I want to upgrade. The channel and data should not be lost. Please let me know if it is feasible.

In the documentation says that if orderer type is set then it cannot be changed.

No, you need to first bring down the network, update the config file then restart the network. There is no way to do this dynamically.

Related

How can I add new orderNode on running hyperLedgerFabric?

I have setup a hyperledger fabric network with 1 orderer node, but i want to know how to add new orderer node to a running production hyperledger network using Solo conesuss algorithm
As the name Solo implies, it's a single entity so you can't add another ordering node. You would never use Solo for production either. You should use raft which can have multiple ordering nodes (but you need to understand the implications of multiple ordering nodes using raft so definitely refer to the hyperledger fabric documentation).

How to integrate multiple nodes setup in hypeledger explorer

I am looking some solution for hyperledger explorer as I am trying to integrate with my fabric network which has 1 Orderer and 2 Org nodes.
I have successfully setup hyperledger explorer with one node but I need for two nodes which can show the blocks and transaction on both nodes?
Thanks in advance
You have to add node address in config.json file and enable gossip external endpoint on both nodes
CORE_PEER_GOSSIP_EXTERNALENDPOINT
I had the same problem and the issue was, that I didn't set up the anchor peers. I recommend going through the official documentation, but in case you need some general pointers, you should do it in the following way: in config.tx set up anchor peers for each organisation, use configtxgen after creating channels to update them with anchor peers, when you join all the standard peers to a channel, update it once again with the appropriate anchor peer using the peer channel update command.

If I use orderer solo, don't need to make kafka node?

If I use orderer type of solo, don't need to make kafka node?
I trying to set up virtualbox.
I plan to set 4VM like this: orderer,peer0(org0),peer1(org1), client
Should I make VM of kafka??
No. Kafka and Solo ordering are different.
Be aware that you should not use solo for production. It is for demonstration purpose only.
Here is Fabric FAQ about this: https://hyperledger-fabric.readthedocs.io/en/release-1.4/Fabric-FAQ.html#id1
You can refer to this for more information.

Why we need to use Solo in Development and Kafka in Production in Hyperledger Fabric?

Please explain the difference between the Solo and Kafka.
1)Why we need to use Solo in Development and Kafka in Production on Hyperledger Fabric?
2)Can we use only Kafka for both Development and Production?
3)How the Consensus mechanism exactly work in Hyperledger Fabric, can anyone
explain with example ?
Thanks in advance!
There is no reason you cannot use a Kafka-based orderer in
development; however if you are developing on a local machine the
Solo orderer requires much less overhead to get up and running
Yes (see answer above)
Suggest you read https://hyperledger-fabric.readthedocs.io/en/release-1.3/txflow.html first and then ask question in the Hyperledger Rocket Chat
1) One important reason to use Kafka in production is that it will be more fault tolerant than solo. You only have a single orderer with solo and that is a single point of failure.
2) Yes you can
3) See: https://hyperledger-fabric.readthedocs.io/en/release-1.4/kafka.html

Creating orderer node in Hyperledger Fabric

I am new to Hyperledger Fabric and am starting a new project which is to transfer asset from one person to another. Here are the steps which I think I need to follow to achieve the completion of the project, do tell me if I am wrong or I missed something:
Create an orderer node.
Create a channel.
Create peers and endorser nodes.
Connect each peer and endorser node to channel.
Write chaincode and endorsing policies.
Create transaction to update ledger state.
If I am right, can someone help me with creation of orderer node, or provide me a link which helps. Also wanted to ask that orderer node creation is possible using node SDK.
In Hyperledger Fabric there are 3 types of nodes. Each node is a process running on some machine (perhaps in a container) and communicates with other nodes in the network.
The nodes are:
- Orderer node
- Peer node
- Client node that embeds a client SDK in some language/framework (node.js, golang, java).
You can't create a node on its own. Each node, is correlated with some organization and has its own certificates and private key.
You can take a look at https://github.com/hyperledger/fabric-samples/ (read the https://hyperledger-fabric.readthedocs.io/en/latest/getting_started.html to understand how) and this would allow you to grasp better the core concepts.
After that when you'll be more certain and more knowledgeable, you could also try to deploy your own setup of Fabric on multiple machines.
You can take a look at https://github.com/yacovm/fabricDeployment to how to do so.
There are two aspects to deploying Hyperledger Fabric... the operational aspects (deploying the containers that run the orderer, peer, ca, etc runtime components) and the transactional aspects (creating channels and issuing transaction proposals etc).
Suggest that you look into the tutorials provided. Specifically, I would start with "building your first network". This example gets into the details of how to deploy the network, create a channel and issue transactions.

Resources