Hyperledger Fabric Chaincode Development Language - NodeJS, Java, or Go? - hyperledger-fabric

With consideration of existing functionality, developer productivity (assuming minimal experience in each language), support within the Fabric community, and roadmap for enhancements, is there any chaincode development language that should be preferred as the short-term and, perhaps separately, as the long-term choice?
Prior question Node.js or Go for Hyperledger Fabric's chaincode development? did not address Java as an option, and does not account for recent Fabric 1.4 platform release.

As of Hyperledger Fabric v1.4, there is base functional parity between Go, Node.js, and Java chaincode.
The previous answer in Node.js or Go for Hyperledger Fabric's chaincode development? is still fundamentally true. Base features typically get delivered in Go chaincode first. That being said, a new programming model has been introduced to Node.js chaincode in v1.4 that is explained in the new Developing Applications documentation. If the new programming model is of interest to you, Node.js chaincode would be a good choice.
At the end of the day, each of the languages have similar function, similar performance, as well as good support and community adoption.

Related

How to install Fabric Mir BFT consensus?

Having seen a few talks on Mir which is apparently implemented within the Hyperledger Fabric chain, I am completely unable to find out how to install it - doesn't seem to be much on Hyperledger's site, Sawtooth seems to be currently the product of the day (which I already have, but only PBFT's available and we need something more performant).
Apologies if I'm being dumb about this. Just can't find them.
Mir isn't implemented in Fabric just yet. It's future work.
There is, however, an integration of another BFT library in Fabric which is not an official Hyperledger effort.
The integration is based on Fabric v1.4 and is publicly available on dockerhub.
The paper of the project can be found here.

How to install Hyperledger composer-playground?

I have been trying to install it using the below link:
https://composer-playground.mybluemix.net/
Can anyone help me out with this?
I have to submit a project using Hyperledger Fabric and Composer.
Just in case people find this question, it should be noted that Hyperledger Composer is no longer actively maintained or supported. Most of the base programming model functionality was added to the various SDKs via a higher level API abstraction.

Making a development and deployment environment for blockchain applications. Tools needed

I would like to learn a little bit from Blockchain and I need to make an university task based on this question.
The main idea is to conceptually learn about what should an environment need to develop and deploy the blockchain solutions.
My problem is that I am not a developer and I am an industrial engineer. This is my first experience with something like this and I have no idea about this stuff. I read a lot about this on github sites about some of these platforms, mostly Hyperledger Fabric and Ethereum. I am very confused about what I have read is the need of an application generator, a code editor, containers such as dockers, something about APIs and REST servers, CLI tools, Frameworks, clients, libraries as node.js or npm...
I know how Blockchain works but I do not have an idea of how to create it and start with it.
So I need a list of the vital tools because I did not find anything well explained for a beginner.
Thank you.
Consider taking the Hyperledger "Introduction to Blockchain Development" course. It's free, unless you want a certificate.
https://www.edx.org/course/blockchain-for-business-an-introduction-to-hyperledger-technologies
Hyperledger has multiple blockchain platforms, such as Sawtooth or Fabric. They are all permissioned blockchains and do not use cryptocurrency.
If you want to use a public blockchain that uses cryptocurrency, consider Ethereum.

Hyperledger Composer vs Hyperledger Nodejs Api

I am new to hyperledger and bit confused about hyperledger composer & nodejs api.
I saw using composer we can create assets, transactions, participants and chaincode and in last we have to archive it this all into .bna file and finally we deploy this chaincode into network using admin card
But at other end using NodeJs API we can also write chaincode by overiding init & invoke methods.
How can we relate these all.
The best way to think about this is the following:
1) Hyperledger Fabric v1.1 supports writing chaincode in two languages: Golang and JavaScript via Node.js
If you want to do all of the heavy lifting yourself, you can write straight chaincode.
2) Hyperledger Composer provides a higher-level model-driven language for developing smart contracts. It currently only allows deployment of these artifacts to Hyperledger Fabric. It also happens to support writing functions in JavaScript as well.
So if you want to start from a higher-level model-driven approach, Hyperledger Composer is the way to go. If you want to write all of the plumbing yourself or use very low-level chaincode features, then using chaincode itself is the way to go.
Moving forward, we are looking at a better way to move between the two and not force a decision / direction up front.
There is another option, we develop a framework called Convector to be in the middle of Composer (high abstraction, low control) and raw code (low abstraction, high control, therefore high risk). We open sourced it a few days ago. At WorldSibu we don't like loosing so much control over our code like with Composer but as Gari Singh was saying, doing all the heavy lifting for each project is crazy. It is like a Mongoose for Hyperledger Fabric. It may help to check it out.
It is also worth noting that, according to IBM, Composer is no longer recommended as a production solution, but only for prototyping. In HLF 1.3, chaincode can now be written in Go, Javascript and Java.

What are the functional differences between Fabric Javascript SDK and Hyperledger Composer?

Other than the fact that Composer makes deployment and testing of prototype business networks easier and the fact that we don't have to know golang to develop chaincode, what is the difference in the functionalities that these interfaces provide that may lead one to choose one over the other?
This article can probably provide you with the answers you need:
https://blog.selman.org/2017/07/08/getting-started-with-blockchain-development/
Hyperledger Composer is both an application development framework and set of powerful tools which simplifies and expedites the creation of blockchain applications and smart contracts that are ultimately executed on the Hyperledger Fabric blockchain. Composer has its own runtime, that is generic chaincode and hosts and interprets the business network deployed - so your smart contract need only use Javascript, not chaincode in Go a (which is Fabric's domain) s you mentioned. It also has a modeling facility to create your business network model and to define such controls as Access Control lists and queries to be executed.
This architecture link should help you with further understanding -> https://www.slideshare.net/SimonStone8/hyperledger-composer-architecture
Furthermore see the Hyperledger Composer docs, see here:
https://hyperledger.github.io/composer/
TO see the Hyperledger Fabric docs - see here:
https://hyperledger-fabric.readthedocs.io/en/latest/

Resources