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
Related
Both Hyperledger Fabric and Hyperledger Iroha are platforms for building distributed ledger applications.
What are the main differences between them? When to choose one over the other to implement a blockchain solution?
Hyperledger Iroha and Fabric are just 2 of 5 independent Hyperledger blockchain technologies:
Hyperledger Fabric
Hyperledger Sawtooth
Hyperledger Indy (Identity Management focus)
Hyperledger Iroha (Extensive client API support, including mobile platforms)
Hyperledger Burrow (Ethereum EVM implementation)
How is Iroha different?
Byzantine fault tolerant consensus algorithm (called YAC) is high-performance and allows for finality of transactions with low latency.
Includes built-in commands for common tasks such as create digital assets, register accounts, and transfer assets between accounts.
Has a robust permission system, allowing permissions to be set for all commands, queries, and joining of the network.
I would evaluate each technology to see which one best fits your needs.
Fabric and Iroha are different Hyperledger technologies.
Unlike Fabric where peers polls for validation, Iroha applications interacts with peers in a simple client-server fashion.
Iroha uses YAC consensus algorithm.
The most significant difference is provided by the entity called accounts. Accounts have roles associated with them and only those accounts that holds grantable permission can perform any actions.
I don't know about your use case, so I'll generalise using a small example here. Go for Iroha in use cases similar to KYC. Iroha specialises in accounts and roles(set of permissions) associated with it. You can handle similar scenario with Fabric too, but then you need to take care about access rights, grants etc. Similarly, various use cases can be solved using multiple technologies. Iroha would also be preferable in scenarios involving creation and transfer of assets.
This will be helpful for you. Cheers!
I’m interested into the development of Blockchain Apps using Fabric and Composer.
I’ve got just one question: while Ethereum is a public blockchain so you can deploy your Smart Contract on it and use them freely, can we do the same thing with Fabric? Let me explain: Ethereum has a running Blockchain on which we can work and access, but Fabric has not, right? Should I set up an entire new blockchain network before (setting up all the nodes, giving permissions etc.)?
Thank you
Hyperledger Fabric is different to the blockchain systems you mention in it is private and permissioned. Rather than an open permissionless system that allows unknown identities to participate in the network (requiring protocols like “proof of work” to validate transactions and secure the network), the members of a Hyperledger Fabric network enroll through a trusted Membership Service Provider (MSP). Member organisations would generally set up their own Fabric infrastructure, if they're participating in the blockchain network (context provided earlier). See more on FAQ here -> http://hyperledger-fabric.readthedocs.io/en/release-1.2/Fabric-FAQ.html and understand more on key Fabric Concepts here -> http://hyperledger-fabric.readthedocs.io/en/release-1.2/key_concepts.html . As for Hyperledger Composer, that is a development framework, with tools etc to accelerate development and abstract things to a business level (ie App development using structure/validated, model driven development as a given). See more here -> https://hyperledger.github.io/composer/latest/introduction/introduction (and also see the architectural and key concept links there).
So yes, you will have a running, private blockchain network (including all of the functionality discussed in the docs) with Hyperledger Fabric.
As in Ethereum we can able to create public blockchain and then the user can able to run smart contract on it, same thing we can do in Hyperledger fabric also.
Hyperledger Fabric has the same functionality as smart contracts called as “chaincode”.
A chaincode is a program that is written to read and update the ledger state. All the business logic handled by chaincode.
For example, if a transaction created then chaincode share and update the ledger throughout the network.
About a Fabric based running blockchain we can work on it and can access it but that's only possible when someone from existing network invites you.
It is quite difficult to say you should setup an entire new blockchain network until I know your use case. Based on your use case you can setup an entire new blockchain network using fabric which will be private.
I am working on a project for creating a platform which specializes on cryptocurrency trading. I want to migrate from Ethereum blockchain to Hyperledger fabric. My question is can I use Hyperledger fabric for existing cryptocurrency trade transactions, e.g. Ethereum, Bitcoin and so on?
Hyperledger fabric does not have native cryptocurrency support.Though you can always include bitcoin api(bitcoin for developers) with your contract. But hyperledger fabric being private/consortium kind of Blockchain I don't know what exactly you are looking out for.
I want to use some of the features and conponents of Hyperledger Fabric in Hhyperledger Indy? Can I use them?
Sorry, no. They are independent blockchain technologies (as are Hyperledger Sawooth or Hyperledger Burrow). Some of the code may be reusable, but the APIs/SDKs are completely different.
Edit: but you should be able to have an application that uses Hyperledger Indy for identity management and, independently, Hyperledger Fabric (or Sawtooth or Burrow or Iroha) for your ledger data.
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.