What are the steps to develop a blockchain system?
The following are the broad steps to be followed for implementing a blockchain based business solution
1.Identify and define the problem being solved. What are the pain points we are addressing? What is it that the present industry solutions are missing?
2. Identify if a solution based on blockchain is necessary for solving this problem. Read this and run your use case on the mentioned bunch of conditions. Be more rigorous and run your use case through models mentioned here. In many cases a single centralized database might be more efficient than a blockchain implementation. Do a cost benefit analysis. Identify the external actors who will be impacted by the implementation. Do you foresee any new risks evolving due to the implementation? Given these risks will it be better to go for central database implementation?
3. Once decided on using a blockchain implementation, start defining and identifying the characteristics of blockchain technology that your solution will be using. A primary list of questions that one needs to answer regarding the configurable characteristics of a blockchain could be
- Would you need a public blockchain or a permissioned one?
- What are the access policies and is there a node hierarchy?
- Whether nodes on the network need to be anonymous?
- Even if anonymous, should it support audit-ability in special cases?
- Should private and confidential transactions be allowed?
- What should be the strength of the cryptographic security?
- What is the consensus mechanism to be used?
- Would the transaction’s Hash be on the blockchain instead of full data?
- Who are the validators and what is the validation logic?
- Should the blockchain be immutable?
- Will your solution require multiple blockchains to interact?
4. Once you have an idea of the kind of blockchain that will solve the problem, start identifying the blockchain platforms that are ideal for implementing the solution. Platforms that one can consider are Bitcoin Blockchain, Ethereum, Hyperledger(Fabric & Sawtooth), MultiChain, Chain, Ripple, Nxt, Openchain Some of these platforms are still getting ready. Please be informed that even the ones ready are still maturing and learning from mistakes.
5. Once the platform on which you are building the solution is identified, one has to ascertain how much of the goodies that the platform provides can be reused in our solution and how much will have to be rewritten, configured and how much of the use case specific development has to happen on top of the platform. At this juncture we should be able to make a fair estimate of the man-hours needed to create a production quality implementation. Do a second round of cost benefit analysis now.
6. If going ahead with blockchain implementation then initially build a proof of concept and implement the same on internal network, simulated environment or on a platform like IBM Bluemix, Microsoft Azure. If possible do a low-stakes-field-trial involving a small samplelink of your external actors.
7. Identify possible problems while scaling the proof of concept like performance issues, latency, storage, memory etc. Identify solutions and optimize as appropriate.
8. Get into production!