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).
Related
I am going to build my own hyperledger fabric network , but I cannot see how to start my project without the fabric-sample, because all the tutorials I found did not tell me how. How can I get those folders and stuffs for my own project? .
You could go through the scripts of Fabric-samples to see what it does as a reference but in general the algorithm is the following:
define the participants in your network in crypto-config.yaml and generate their crypto materials with either cryptogen (but not for production network!) or manually.
define the network parameters like different policies, ordered type, consortium etc in configtx.yaml and generate a genesis block from it using configtxgen tool
having that you may run required nodes like peers belonging to different organizations, orderers and certificate authorities servers and actually start the network, the channels, install chaincodes as it all referenced in Fabric docs: https://hyperledger-fabric.readthedocs.io/en/release-2.2/
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.
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.
In Ethereum, we cannot define/add new responsibilities for miners unless we modify/change miners' code.
Question: In Hyperledger Fabric, can we define/add new responsibilities for/to miners by using system chaincodes? or the system chaincodes are only for certain purposes (e.g. defining policies, validation)?
edit: this edit is done after the 1st answer has been provided.
miner or nodes or peers or orderers
There is no mining or miners in Hyperledger Fabric.
As #Jworthington stated, there are no miners in Hyperlegder. You need to take a step back and understand the core difference between Public Blockchains (Ethereum) and Permissioned Blockchain (Hyperledger, Corda).
To be fair, calling Hyperledger a blockchain is a bit of a misnomer. It is a distributed legder, and does not require the action of miners to reach consensus.
Both platforms work with the concept of nodes, with differing functionality. They are both similar in that nodes host versions of the world state/ legder. In ethereum , you have miner nodes, which are full nodes, with the additional responsibility of validating transactions via Proof of Work. In Hyperlegder, nodes function either as clients (to connect with the Fabric network), peers ( copies of the world state, validate or endorse transactions) and Orderer.
When you write chain code, you craft the rules that dictate the validation of transactions by the orderer. This is installed on peers and instantiated on each of the channels. You install the chain code on peers you want to endorse transactions (using the Lifecycle System Chaincode).
Endorsers simulate and endorse transactions using the Endorsement System Chaincode (ESCC), while committer peers validate transaction using the Validation System Chaincode (VSCC).
Hope this helps.
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.