There are three approaches for creating applications on the Hyperledger Fabric blockchain: templates, outsourcing and in-house development. Let us call the pros and cons, the cost and development algorithm for each.
How to create an application using templates
Hyperledger templates are working and ready-to-launch applications, smart contracts and blockchains. They are created by professional programmers in large companies in order to simplify the process of introducing the blockchain into a business, since the application of templates does not require large financial and labor resources.
For ease of understanding, Hyperledger templates can be compared with templates for creating WordPress sites or their analogs. Using WordPress, any Internet user can create a website in half an hour without programming skills, web design and layout.
It’s not so easy to work with templates for Hyperledger-based applications, but this is a matter of time. After 5–10 years, the template database will contain solutions for all occasions - from a simple transaction between users to the safest and secure plebiscite system, and the complexity of their application will not differ from the complexity of working with WordPress.
AWS Blockchain TemplateIn November 2018, Amazon Web Services (AWS) launched a web service for easy and quick launch of new distribution registries and DApps called Blockchain Templates. It is based on a set of templates that speed up and simplify work with blockchain technologies. AWS templates designed for Hyperledger Fabric or Ethereum blockchains.
AWS launched its service with a focus on small and medium businesses that do not have the resources to develop DApps on their own. However, anyone who wishes may use it. In particular, AWS templates use T-Mobile for personal identification/verification systems and Guidewire for automating some processes in the insurance business.
To use AWS Blockchain Templates, you need:
1. Launch Hyperledger Fabric Private Network.
2. Deploy the necessary components to run the templates.
3. Launch AWS CloudFormation.
Templates are provided absolutely free, but they only work within the AWS ecosystem. The cost of services used when starting and using templates is payable.
IBM Blockchain. Service from the IT giant to simplify the development, management and operation of decentralized business networks. With it, you can create secure centralized distribution networks for projects that require restrictions in accessing information on the blockchain. IBM’s solution is based on the Linux Foundation’s Open Source Hyperledger Fabric project.
The IBM platform is popular in large productions, logistic giants, mega-corporations and states. In particular, it can be noted that, on the basis of IBM Blockchain, a logistics platform is being developed for Maersk, the largest sea freight carrier, and IBM has won a tender for 1 billion Australian dollars to develop an information processing system in Australian government structures.
ChainZilla. This is a startup developing a platform that will allow companies and individuals to launch applications, blockchains, smart contracts (Ethereum), cryptocurrency wallets and ICO with minimal effort.
Oracle Blockchain Cloud Service (OBCS). Another cloud service to run ready-made business solutions. This time with a focus on tracking the movement of goods through the sales chain and secure cash transactions. Such companies as Intelipost, Neurosoft, CargoSmart, Indian Oil, Certified Origins and many others use the OBCS platform. Including Nigeria Customs.
Alibaba Cloud Container Service. Platform for automatic setup and deployment of blockchain applications from the world-famous trading platform with a capitalization of 70 billion dollars.
How to create an application using outsourcing
Outsourcing is the transfer of certain tasks or processes to third-party contractors on a subcontract basis. In our case, this is the transfer of the task to create a blockchain application, its deployment and testing. The best option is if there are enough resources to hire experienced programmers and there is no desire to engage in self-development or to supervise it within your own company.
Choosing a developer companyThere are a lot of Hyperledger blockchain-based application development companies, but only some of them are experts in their field, since blockchain is a new technology that only 5,000 programmers worldwide understand at a professional level. Such statistics are cited by William Mougayar, a cryptoinvestor and author of «The Business Blockchain».
What to look for when searching for a company-developer:
● Look for teams that have a list of completed projects with a detailed description of what was required of them and what happened in the end. Use software products in cases and evaluate their usability, reliability and performance.
● Find contacts of companies that have already worked with a development company of interest, and contact them.
● Working time, language of communication, the cost of remuneration of programmers, commissions for transfers - it all depends on the location of the customer and the performer.
● It is advisable to choose developers who have already worked in the area that you need.
● Informational trail. Use resources such as WebChecker, GlassDoor, BBB.com and LinkedIn to verify counterparty.
When you mark several companies for interviews, pay attention to who is talking to you and where. This should be a representative person in a well-furnished office. Ask him to give you a tour to see hardware and programmers.
Algorithm of cooperation with the developer company
Cooperation with the company in outsourcing can be divided into 7 stages:
● Evaluation and planning. The company-developer carries out an evaluation of the project and makes an approximate list of upcoming work. This is needed to understand how long it will take to develop an application and how much it will cost the customer.
● Business analyst. Defines the basic requirements for the application and how users will interact with it. A scheme of user interests is created, the project budget is clarified.
● Design. Orientational design, applications, screen map and transition diagrams are created - UI / UX specification.
● Coding. Programmers get to work - MVP or project alpha is being developed.
● Testing. A special team checks the product obtained in the previous step for errors, performance and compliance with the TT. Testing can take place in several stages: closed alpha testing, open beta testing and pre-release testing.
● Release. Deploying an application for work within the company or launching it on the market of Google Play and the App Store.
● Development and technical support. Correction of errors that were not detected in the early stages of testing. Adding new tools to the application functionality, changing the design in accordance with user requests.
How to create an application on your own
Development team in the company
You can create a blockchain application on your own by hiring a team of programmers to staff. This gives you complete control over the development process, but you need to look for resources and workspace for programmers. Which is quite burdensome, since the average cost of a blockchain programmer in North America is from 80 to 100 dollars per hour.
Of course, you can hire specialists from other countries and work with them remotely, but if you choose this option, it is better to outsource the development. Since there will be many problems with adjusting the development process, communication between different specialists, control over their work and suchlike.
Developing an application by yourselfThe most difficult approach to creating blockchain applications, especially if you do not have advanced programming skills. If they are, things will go faster and easier, but in this case the application development process will not be easy. Is it necessary to create something quite simple (and not needed by anyone).
Quick Start Guide for Blockchain DevelopersFor developing Dapps based on Hyperledger technology, it’s best to use IBM Blockchain Platform Starter Plan — software for developing decentralized distribution registries and DApps. IBM platform allows you to quickly move from work on the guide to self-development of Dapps on Ethereum for business and other areas of human activity.
● Platform overview IBM.
● Entry into the development of Dapps on the platform IBM.
Contents of the Start PlanThe launch plan provides for quick and easy setup of pre-configured applications with a set of tools for their deployment, experimentation and testing. To get started with a template, just select it and start using the IBM Cloud.
With the help of the starting plan you can:
● Deploy ready-made application templates, experiment with them and see the transfer of values on the blockchain in action. Deployment occurs in the IBM Cloud toolchains.
● Develop and test your own applications in the platform sandbox. Development can take place online, i.e. it is possible during coding and configuration to check the performance of the application or its individual elements.
● Invite other companies to your network, configure interaction with your application or blockchain via the API in the Swagger interface.
● Add other IBM Blockchain Platform member organizations to your account. This allows you to test the transfer of values between multiple organizations.
● Develop skills to manage the blockchain network, which can then be used in a corporate environment.
To make the platform users better understand the capabilities of the launch plan, the IBM team prepared a training video in which Don and Mark tell how to work on this site, what interesting features it has and where to get additional help if it is needed.
Getting Started with the IBM Startup Plan
● Sign up to participate in the Startup Plan.
● You will be redirected to the directory page in the IBM Cloud. Select Membership Plan and click on “Starter Membership Plan” and then “Sign up to Create”.
● Choose a name for your network, then under the membership plan, select “Starter Membership Plan” and click “Create”.
● You will see the welcome screen, where you will be able to view the video guide from Don and Marco.
● Select “Develop apps.” The system will guide you through a few simple steps to install the IBM Blockchain Platform: Develop.
After that, it is advisable to study the documentation of the Startup Plan. There are several main sections on platform toolkit, asset catalog, tools for network modeling, etc.
Development of the first application
Creating an application on the IBM platform is required through the HF SDK, which allows:
● set chain code;
● initialize chain code on your channels;
● register members, create your own channels;
● initialize participants and invite them into the created channels;
● call the chain code toolkit for the update;
● receive information about system elements, for example, transactions;
● track channel events.
Help and support
Where to get help in developing applications on the IBM platform:
● In the dW Answers section, you can find answers to common questions asked by other participants. Here you can ask your question.
● For detailed help on the Blockchain Platform, a support section will do. This section contains many guides for self-study, instructions for working with the platform.
● If you encounter bugs or defects in the platform, the feedback service will help. The answer, as a rule, comes in a few minutes by email.
● For specific questions, Hyperledger will do Stack Overflow and Hyperledger Rocket.Chat channels.
● For additional questions about Hyperledger use Hyperledger Channel Guide.