I am trying to understand the fabric architecture. If channels are independent blockchains then how is it connected to other blockchains in different channels in the same network? Also, can members of the same networks see the blockchain of a different channel?
Answer to first question: They are not connected. The different channel runs on the same network i.e. they may share peers/orgs/orderers, but that's it.
Second, yes, they can, if the members have subscribed to both the channels.
Related
What is the role of Participants in Composer with an issued ID in Fabric?
When I issue a Business Network Card for a Composer Participant and connect to the Network how is this related to the Fabric architecture? Is the Participant an Application in Fabric or can he communicate over an Application?
If you are using a typical example/sample Fabric - When you Issue an ID (and create a Business Network Card) you are issuing an ID from the Fabric-CA.
With Composer, every connection you make to the Fabric uses a Business Network Card (and ID). This applies to every CLI command, every playground session, the REST API and your own applications.
Composer Concepts are described here.
I'm doing a POC that involves 4 types of entities. All of them will have different types of participants in the network. I have drafted out an architecture that needs validations and considerations that I might be missing out.
Architecture:
Created 4 Orgs on the Fabric. One for each of the entities.
The first org contains 1 CA, 1 Orderer, and 2 Peers.
The other three org contains 1 CA and 2 Peers.
All the Orgs will run on a different host machine.
All the Orgs are on the same channel.
Employ docker swarm to create an overlay and make these containers talk to each other.
Next, setup composer REST server on each of these machines, such that the PeerAdminCard and BusinessAdminCard are logically mapped to its own Org.
Use permissions.acl to control access to the participant's data.
A central server will get the requests from all these Org's client and pass it to the respective composer REST server.
Questions that I have pertaining this one:
Is this feasible to implement or am I missing any crucial point?
If we use docker swarm, then there will be a kind of master-slave communication. Does it break the essence of the blockchain?
There are different interactions happening between the clients and that is the purpose of using a central server. Is there other way to handle this without a central server?
Is the acl file enough to control access to the data? If someone has a physical access to the peer's couchdb, he'll be able to see the other participant's data?
Any guidance or references will be helpful.
I have recently deployed and started a business-network with Hyperledger Composer, I have only one peer (?) in which I have created the network and now I am using the rest-server for adding participant and doing transaction from an Android app to my personal blockchain and everything goes well.
So...Need I to configure one or more peers on my network? What's the utility of doing that?
I know that other blockchains needs a lot of peers for co-validating transactions and for maintaining a big scalability / distributed data; doesn't Hyperledger do it for me without adding more peers in my network?
If you have started with Hyperledger Composer you are probably using the 'standard' development Fabric with a Single Peer. This is a 'minimal' Fabric provided to get developers a fast start without the need to configure and deploy a Fabric. But you are correct Hyperleder Fabric can be configured for Multi Peer Multi Organisation distributed ledgers.
There are tutorials in the Fabric documentation for setting up a Fabric from scratch, and also this document covers a tool for extending the Fabric.
I created a channel in hyperledger fabric, and joined 7 peers to it. i did all this using CLI container. I need to know is there any command to list all the peers which are connected to a particular channel.
Thanks
There is no API / command available to list all the peers which have joined a channel. There is an API on the peer to list all the channels the peer has joined.
There are plans to have a discovery service in a future release which would allow you to discover peers which have joined a channel across organizations (although it would be based on each peer exposing it's endpoint via gossip).
I have completed this tutorial and successfully deployed a business network over what it seems to be a generic hyperledger fabric blockchain.
What i want to do now is to create a new peer in diffenrent machine but connected to the same blockchain. Can't find any information. Any help?
Thank you community!
To deploy hyperledger on a different machine you need to take advantage of docker swarm and overlay network. You can find the guide at
Deploying Hyperledger on Multiple Hosts
for the next question about extending your existing network by adding peers, follow Extending your network
I suggest you start looking at the hyperledger fabric documentation
http://hyperledger-fabric.readthedocs.io/en/latest/
You will need to understand about a hyperledger fabric network topology. There are many things you need to understand in order to understand how to configure a peer correctly and join it to a channel. The build your first network section will take you through creating a fabric network from scratch.