do I need to use fabric sdk if am using hyperledger composer - hyperledger-fabric

I am using hyperledger composer for transaction invocation and all the stuffs related to resource(participants, assets etc) manipulation. I have generated the server using composer-rest-server, and also generated the angular frontend using yeoman generator.
This makes me to ask what is the use of fabric sdk? Will I need it in the above mentioned scenario?
Please clarify, thanks.

There are two ways to write chaincode in Hyperledger Fabric,
1) Using GoLang
2) Using NodeJS
In order to connect Hyperledger Fabric and Invoke chaincode transaction. You will require SDK. Based on your application technology stack, You can either use Fabric NodeJS SDK, Fabric Java SDK and Fabric Python SDK.
On other hand; Hyperledger composer is different way of writing chaincode, which is guide of framework which can help you to accelerate your chaincode development. If you have developed business network using composer, then you can either use "composer rest server" or "composer-admin" and "composer-client" node module. You dont need to use any SDK in order to interact with Business network deployed on hyperledger fabric. Kindly refer following diagram for more clarity.

Related

Does the new Hyperledger fabric sdk support chaincode installation and instantiation?

This is a statement from Hyperledger Fabric NodeJS SDK v2.2 documentation in the section "Migrating client applications from v1.4 to v2.0":
Note that the SDK no longer aims to provide administrative and
management capability. The command-line interface should be used for
these operations.
Does this mean that the new SDK does not support actions like chaincode installation and instantiation. I understand that in v2.2 the chaincode lifecycle is different and the steps are package and install chaincode, approve and commit chaincode definition. Can any of these actions be performed using the SDK?
You can use Hyperledger Fabric SDK GO. It currently supports Fabric v2.2.
You can check our repo Akachain Admin Tool as an example. It provides RESTful API for an administrator to interact with a Hyperledger Fabric network using Fabric Go SDK

How to interact with the chaincode (installed using composer) through peer node cli?

I had developed an application using composer. But it is now deprecated. So i'm trying at least to use the chaincode generated using composer.
Is it possible to interact with the chaincode generated using composer through 'peer chaincode' command?
Composer doesn't generate chaincode. A business network is tightly bound to the composer framework. A business network is an implementation written to the composer specification and contains the composer runtime to understand and interpret that implementation at runtime. Therefore a Composer Business network is not standalone chaincode.
The client side of composer for client application provides the necessary operational tools as well as the business application apis in order to correctly interact with a business network. Although technically you could work out how to invoke a business network from client code without using composer it would not be trivial.

Where to start with Hyperledger Fabric Development?

I am pretty new to Hyperledger fabric and try to understand what all topics I need to learn so that I am able to create one full application.
Like for Ethereum , I followed below steps.
1. Setup Ethereum development environment.
2. Used the solidity language to develop the smart contract and used remix as beginner to create smart contract.
3. Use of Truffle Framework for development, testing etc.
4. deploy the smart contract to blockchain either from remix or using truffle framework.
5. Use Web3 to access that smart contract function deployed on blockchain from front end.
Please help me with me similar steps for Hyperledger Fabric.
I heard about lot of terms like composer, modeling language, ACL, Scripts files under that. I also heard about Go language and SDK there.
My understanding is that, first of all Hyperledger Fabric need to be setup on the local system that I am able to do and next step is do the development of DAPP.
One option to that development is by using Hyperledger composer but I dont see use of Go language there. So I wanted to know if composer if the only option to do the development or we have any other way.
Hyperledger Composer is a tool, that 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.
The Fabric tutorials includes the development in to way:
You can use either Go language to write chain code or you can use composer language.
You can try both.
There is also Fabric Java SDK available for building Java client applications that interact with the blockchain.
I advise you at first to deploy a first hyperledger network in localhost (use docker-compose). You can help yourself with the fabric-sample https://github.com/hyperledger/fabric-samples.
You must understand the mechanisms of transactions (proposal, endorsement etc.) the roles of each component.
After that learning to deploy a chaincode, learn the development of GO chaincodes linked to hyperledger fabric.
Then you can approach the hyperledger SDK (NodeJS or Java).
Start with Hyperledger Composer, its a hyperledger fabric building tool: (https://hyperledger.github.io/composer/latest/introduction/introduction.html)
Composer allows you to experiment and play around with Hyperledger Fabric Blockchain through an online web interface. No need to jump into core building blocks when using Composer. The language used is mostly javascript / yml based so its easy to pick up.
Next step is to work directly with Hyperledger Fabric. But by the time you would have gone through Composer that will be your decision.
About the languages used, Hyperledger Fabric blockchain can be setup using GO, Node or Java.
as a start you can try hyperledger composer which is tool made to accelerate the implementation of your blockchain application smart contracts, ACL to your participant so to understand whats going on pleas follow the documentation in the following link
and you will find this online composer playground very helpful to get your hands on implementation and test your application flow then you can export your application file as .bna file and deploy it on your hyperledger fabric framework.
after that you have to install the prerequisites for hyperledger localy which you can find in the following link
after that you have to decide the type of fabric your going to use will it be single organization fabric which will use solo messaging server to handle synchronization between order peer and your peer.However, you can use multi organization fabric to be your framework which rely upon kafka and zookeeper to manage state between your multi orders and deploy your application.However, you can find node fabric SDK to manage your hyperledger fabric.

If I have existing nodejs web app how can i configure it with hyperledger?

As hyperledger is an enterprise blockchain solution so it does not make any sense to create a complete application from scratch, are there any resources available to explore integrating hyperledger with existing applications(specifically MEAN application)?
There are two options for integrating Hyperledger Fabric with the MEAN stack:
1) The Fabric Node SDK: https://fabric-sdk-node.github.io
2) If the Hyperledger Fabric smart contracts are built with Hyperledger Composer, Composer generates a REST API which can then be easily integrated with existing MEAN applications

How do I get the REST API's enabled for interacting in a Hyperledger fabric peer node?

I am trying out the Hyperledger fabric Chaincode for Developers tutorial. The CLI chaincode commands to deploy and invoke the chaincode is working.
How can I enable the REST API as in the Fabric Documentation here or here. The link provided in the documentation https://github.com/hyperledger/fabric/blob/master/peer/core.yaml is not found currently.
Starting from version 1.0.0 Hyperledger Fabric no longer expose REST API to interact the peers. Instead you have set of SDK which encapsulates interaction protocol allowing you to implement client logic which. At the moment you can take a look on following SDKs:
NodeJS SDK
Golang SDK
Java SDK
Python SDK
And documentation you are referring is from v0.6 which is no longer relevant, please use updated one here. The section of chaincode for developers might be very useful for your case.

Resources