Build a Blockchain Solution Right Now

When Blockchain technology was announced through the paper titled Bitcoin: A Peer-to-Peer Electronic Cash System by Satoshi Nakamoto in 2008, it was an innovative mix of public key cryptography (invented in the 1970s), cryptographic hash functions (born in the 1970s) and proof-of-work (invented in the 1990s).

Over the last few years, many derivate and blockchain-inspired projects have been created. Most of them are not technically blockchains, but rather distributed ledger systems.

Let us dcode the how to build a blockchain in just eight steps. For simplicity, I have used the terms blockchain and distributed ledger system interchangeably in this article.

Step 1: Identify a Suitable Use-case

There’s a ton of hype around blockchain. I’ve read that blockchains can erase global hunger, make the world corruption-free, end poverty and do a lot more without breaking a sweat. Unfortunately, that’s not true. So, step 1 is to identify a use-case that makes business sense.

There are 3 things that blockchains can do very well:

Data Authentication & Verification: this includes immutable storage, digital signatures and encryption. Data in almost any format can be stored in the blockchain. Blockchains can create public-private key pairs and also be used for generating and verifying digital signatures.
Smart Asset Management: this includes issuance, payment, exchange, escrow and retirement. A smart / crypto asset is the tokenized version of a real-world asset e.g. gold, silver, oil, land.
Smart Contracts: This is a term most often mis-understood, but that’s something for another day.

Step 2: Identify the Most Suitable Consensus Mechanism

The original blockchain, which powers the bitcoin crypto-currency, used proof of work as a consensus mechanism. But today there are multiple distributed ledger systems that offer a host of consensus mechanisms such as Proof of stake, Byzantine fault tolerant, Deposit based consensus, Federated Byzantine Agreement, Proof of Elapsed Time, Derived PBFT, Redundant Byzantine Fault Tolerance, Simplified Byzantine Fault Tolerance, Federated consensus, Round Robin and Delegated Proof of Stake.

Depending upon your use-case, you need to choose the consensus mechanism that makes the most sense.

Step 3: Identify the Most Suitable Platform

There are many blockchain platforms out there today and most of them are free and open source. Depending upon the consensus mechanism you chose in step 2, you need to select the most suitable blockchain platform.

Some of the more popular platforms, in alphabetical order are:

  1. BigChainDB
  2. Chain Core
  3. Corda
  4. Credits
  5. Domus Tower Blockchain
  6. Elements Blockchain Platform
  7. Eris:db
  8. Ethereum
  9. HydraChain
  10. Hyperledger Fabric
  11. Hyperledger Iroha
  12. Hyperledger Sawtooth Lake
  13. Multichain
  14. Openchain
  15. Quorum
  16. Stellar
  17. Symbiont Assembly

Step 4: Designing the Nodes

Blockchain solutions can be permissioned (e.g. a Government run land registry) or permission-less (e.g. Bitcoin, where anyone can become a miner). Blockchain solutions can be private (e.g. a contract management system implemented in a pharmaceutical company), public (e.g. an asset backed cryptocurrency) or hybrid (e.g. a group of banks running a shared KYC platform).

Another factor to consider at this stage is whether the nodes will run on the cloud, on-premise or both. Then comes hardware configuration issues like processors, memory and disk size. You also need to decide on the base operating systems (usually Ubuntu, CentOS, Debian, Fedora, Red Hat or Windows).

Step 5: Design the Blockchain Instance

Most blockchain platforms need very careful planned configuration for the following elements:

  1. Permissions
  2. Asset issuance
  3. Asset re-issuance
  4. Atomic exchanges
  5. Key management
  6. Multi signatures
  7. Parameters
  8. Native assets
  9. Address formats
  10. Key formats
  11. Block signatures
  12. Hand-shaking

Some parameters can be changed at run-time but some cannot, so this is a very crucial step.

Step 6: Building the APIs

Some blockchain platforms come with pre-made APIs while some don’t. The major categories of APIs that you would need are for:

Generating key pairs and addresses
Performing audit related functions
Data authenticatin through digital signatures and hashes
Data strage and retrieval
Smart-asset lifecycle management –issuance, payment, exchange, escrw and retirement
Smart contracts

Step 7: Design the Admin and User Interface

At this stage you would need to choose the front end and programming languages (e.g. HTML5, CSS, PHP, C#, Java, Javascript, Python, Ruby, Golang, Solidity, Angular JS Nodejs). You would also need to choose external databases (e.g. MySQL, MongoDB) as well as servers (including Web servers, FTP servers, mail servers).

Step 8: Adding Future Tech

You can greatly enhance the power of your Blockchain solution by integrating Artificial Intelligence, Biometrics, Bots, Cloud, Cognitive services, Containers, Data Analytics, Internet of Things and Machine Learning.

0 Comments