Difference between a participant and organization in hyperlrdger composer - hyperledger-fabric

I am trying to create participants (bank employe) in hyperledger composer . So how do i achieve this that all the bank employees come under a single organization of its bank

Basically the organization concepts it has more importance in the Hyperledger Fabric.
For example we can take the example of banks, if you have two organizations these could be:
Bank 1
Bank 2
Regarding the participants (bank emplyee) those are more familiarized with the Composer specifically the Business Network Definition
If you want the participants can have an identity that allow them to interact with the Business Network as an Admin.
If you want more information, or an example I wrote two post that helps you to setup and publish an hyperledger fabric with a published Business Network
Setup an Hyperledger Fabric in Multiple Hosts
Publish a Business Network in multi jose Hyperledger Fabric

Related

Is it necessary of Deploying a Hyperledger Composer blockchain business network to Hyperledger Fabric (multiple organizations)

I created a composer business network and successfully deployed in to the fabric network(Single organization) . The next step is deploying to the fabric network(Multiple organizations). I'm not understanding the purpose of deploying to Multiple organizations . Is it necessary to deploy the composer network into fabric Multiple organizations. Can any one help me from this confusion .
Thanks in advance..
IMHO, The OP is asking "Why do I need to deploy to Multi-org fabric network", not how.
While it is not required for you to deploy anything to a multi-organizational fabric network, typically in real-world scenarios you'd be mostly deploying to such a network structure.
Enterprise Blockchain solutions typically are most useful when they are bringing together different organizations which do business together, and though they are co-operating with each other while doing so, they typically don't trust each other.
Normally, in a non-blockchain scenario, these organizations would each have their own system of record keeping, and all business transactions would get entered into multiple independent record books. This creates all sorts of delays, dependencies and need for arbitration when one organization's records don't agree with the other organization's records.
The blockchain becomes a single record for all these co-operating but untrusting organizations. All data entered in to the blockchain is first reviewed by all the organizations, and only after consensus is it entered into the records.
This kind of setup is only possible using the multi-org network, with each peer hosting it's own peers that it trusts to review the transactions and perform consensus. THAT'S WHY you need this kind of setup in real-world scenarios.
The composer multi-org tutorial provides the information needed to understand the operational aspects needed to run a business network in a multi-organisational fabric network. The tutorial can be found here
https://hyperledger.github.io/composer/latest/tutorials/deploy-to-fabric-multi-org
From there you will see that defining an endorsement policy (in the case of the tutorial, both organisations have to endorse transactions) that you need to install the business network onto at least 1 of the peers in each organisation (in the case of the multi-org tutorial the business network is installed to all peers in the organisation).
Once installed and the business network started those peers are able to endorse the transaction.
hyperledger fabric is designed to allow multiple different organisations to share a ledger between them. This is a very common use case of hyperledger fabric.

How to share data between two chaincodes on Hyperledger Fabric on Single Channel?

I have started to learn Hyperledger Fabric and Composer. I am able to create a simple Business Network using Composer and deploy it on Fabric, but I have a question. Let's say I have 2 BNA (instantiated on single channel) files both having same namespace (org.example) and having same participant name as well, as Customer (identifier will be org.example.Customer). Is there any way that I can access the participants created by first Business Network App in another Business Network App? Logically what I can think of is since both have been instantiated in the same channel with different chaincode and same model file, data should be cross accessible. But it isn't.
Although chaincodes share the same ledger when installed on the same channel (and as business networks are just chaincodes this applies to them also). Fabric still partitions the data that a chaincode can read/write by it's chaincode id. So when you install 2 business networks onto the same channel they will have different chaincode id's and so their data is separately partitioned.
As mentioned in the other answer (although the link is not quite correct), what you can do is make use of a feature of composer to be able to invoke another business network on the same or even different channel from the executing business network.
As the 2 business networks are on the same channel you can not only read information but you are also able to invoke transactions that can change information. (You can only read information if the business networks are on different channels).
The correct link for the tutorial is here
https://hyperledger.github.io/composer/latest/tutorials/invoke-composer-network
Unfortunately this tutorial is rather basic and only offers a glimpse of how to interact with other business networks.
Is available a tutorial about how to interact from a bna to another one.
Here the link to the official Hyperledger Composer documentation.
https://hyperledger.github.io/composer/latest/tutorials/invoke-composer-network

Hyperledger Composer Channels concepts

I have been building an application in hyperledger composer.
All the tutorials I find related to hyperledger fabrics talks a lot about Orderers, Channels, Peers, Ledger etc. But none of the hyperledger composer tutorial relates the concepts of Asset, transaction or Participants to those.
For instance, hyperledger composer supports only a single channel, then how is the privacy of a transaction maintained there? Is it through the permission.acl file?
Also relating to the famous Vehicle lifecycle network.
Will each of those manufacturer be an organization(having several peers within it) in a blockchain network?
Do all the manufactures needs to host a peer(containing both the ledger and chaincode)?
Does the regulator body also need a peer?
Please help me understanding it clearly.
See here https://hyperledger.github.io/composer/latest/introduction/key-concepts for Concepts and here -> https://hyperledger.github.io/composer/latest/introduction/introduction for an Intro to Hyperledger Composer and a slidedeck on Composer concepts can be found here -> https://www.slideshare.net/MattLucas3/blockchain-composed-v207
Manufacturer will be a member organisation of the blockchain network
Its likely a Manufacturer will want to host it, or have it hosted as a major party. Its also possible that an organisation doesn't stand up any infrastructure and relies on a portal into the blockchain if it is agreed it should have an interest, by the consortium that stand up the blockchain network. Same applies for the Regulator in that respect.
Sadly, the concept of private channels is a feature of Hyperledger fabric and isn't available in the composer framework. But, to achieve the privacy of transaction that you are talking about you can use the ACL rules effectively. You can control who sees which transaction by defining rules in the acl file and applying them on the Historian record that contains all the transactions.
You must read about historian record (Will prove to be very useful while writing the acl for controlling transaction records): https://hyperledger.github.io/composer/unstable/reference/historian.html
Also, For data privatization in hyperledger composer there are certain practices and ways that will prove to be very useful. Go through this article: https://medium.com/coinmonks/implementing-data-privatization-within-hyperledger-composer-2bc99a11c344
Now, about the second part of your questions- Hyperledger composer doesn't involves all those endorsing peers, committing peers endorsing policy and such. In hyperledger composer when we create the rest server and the angular application and all the transactions are recorded from a single identity. For achieving a multi-user model for production using composer we can use the multi-user mode of the composer rest server and the authentication feature of the same. This helps in creating different identities/wallet for different users and then the transactions are recorded from those respective wallets.

Process in Hyperledger Fabric

I have some questions about Hyperledger Fabric:
1. How dose a blockchain work in hyperledger composer and fabric?
2. In Hyperledger Fabric, you don't use a miner, how does it work without mining in a blockchain?
3. In hyperledger composer use JavaScript write transaction (smart contract), how does it work with a blockchain?
Thank you.
hi I would suggest to read the docs to get a better understanding.
Fabric http://hyperledger-fabric.readthedocs.io/en/latest/blockchain.html and https://hyperledger.github.io/composer/introduction/introduction.html - it should be pretty clear from reading the introduction pages.
Hyperledger Composer simplifies application development on top of the Hyperledger Fabric blockchain infrastructure.
If you are interested in the blockchain infrastructure, start with the Fabric tutorials.
If you are interested in blockchain applications, start with the Composer tutorials.
Mining is primarily the domain of public blockchains, not permissioned blockchains like Hyperledger Fabric - again, the intro section describes it and gives information/insight into how consensus is achieved.
The javacript transaction processors and business logic are a constituent part of the Composer business network (ie smart contract) that is deployed to the blockchain network
To answere to this question
In Hyperledger Fabric, you don't use a miner, how does it work without mining in a blockchain?
There is really no concept of mining in hyperledger as it is permissioned blockchain where you know who will the participants of commiting transaction. So to reach on the consensus there is a concept of endorsement where you define who will validate the transaction. Search in below tutorial for endorsement for further details.
http://hyperledger-fabric.readthedocs.io/en/latest/blockchain.html

Can some one share fabric multi channel example using hyperledger-composer

There is no clear documentation of hyperledger fabric multichannel, can someone from community share example of configuration.
This Stack Overflow thread on creating multi-channel for a Hyperledger Fabric configuration should help you (mostly in yellow and grey code blocks) -> Configure Multiple Channel in Hyperledger Fabric.
Once you have configured your custom runtime Fabric environment for your multi-Org, multi-channel setup, you can then create the requisite Hyperledger Composer config artifacts (eg. such as business network cards, one for a PeerAdmin for runtime install on the two peers in a specific organisation, and one card for a PeerAdmin to instantiate/start the business network across all the multi-Org peers joined to the specific channel in question) - and thereafter, issue cards for the individual identities that will consume/transact on the business network (on whatever channel the connection profile information is set up to communicate on). See this Multi-Org tutorial (for two Organisations, but similar principles apply) https://hyperledger.github.io/composer/tutorials/deploy-to-fabric-multi-org.html for guidance.

Resources