Blockchain software development is a fast-growing market.
Given that blockchain is a relatively new technology, undertaking any project that incorporates it is a challenge.
If you are a startup or small business that is planning to embark on such a project, it is important that you understand what you need to plan for when undertaking blockchain software development.
In this article, I will outline what developing a project with blockchain will involve.
The market for blockchain development
How large is the market for blockchain software development? Let‘s review just a few quick facts, as follows:
- At the time of writing this, CoinMarketCap reports that the cryptocurrency market capitalization is over $ 130 billion, with 2,092 cryptocurrencies. New cryptocurrencies are launched frequently.
- Cryptocurrencies are no longer confined to crypto start-ups. Large businesses are also discovering its‘ value. An example is JPMorgan Chase. The American banking giant had reservations about cryptocurrencies earlier, however, they now plan to launch one. Read more about it in “JPMorgan is launching its own cryptocurrency”.
- The market for blockchain development is large, even if you look beyond cryptocurrencies. It‘s expected to reach $ 23.3 billion by 2023, with an astonishing CAGR of 80.2%! Read more about it in this Cision PR Newswire report.
Blockchain development: What do you plan for?
A blockchain software development project needs elaborate planning around several aspects, as follows:
Download Our Project Specification Template
Aspect #1: Decide if you really need blockchain
Not every new technology might deliver business value for you. Will blockchain prove beneficial to you? To know this, ask yourself the following questions:
- Are you implementing a business model that involves peer-to-peer transactions without middlemen?
- If you are, then a public decentralized blockchain is useful.
- Otherwise, such a blockchain doesn’t serve you.
- Is your proposed business model such that stakeholders can‘t trust each other?
- Then, they need a transaction processing system where no one needs to explicitly trust each other. The system would decentralize the transaction validation.
- Public blockchain networks like Bitcoin and Ethereum provide this with their “Proof of Work” (POW) consensus algorithm. However, POW is intensely energy-hungry and expensive. Read about it in “Proof of Work vs Proof of Stake comparison”.
- If your proposed business has trusted participants, then you should not implement such a blockchain.
- Do you need a distributed database that a public blockchain offers?
- Public blockchains replicate the database on every node. This reduces the economic incentives for hackers. If they take out one server, thousands of other servers continue to keep the network up!
- If your business doesn‘t need such a distributed database with so much redundancy, then you should think of using traditional databased like Oracle, SQL Server, etc. Traditional databases have impressive track records over the decades, and they are highly performant.
Read more about these pertinent questions in “Do I really need blockchain? 4 important factors to consider”.
Aspect #2: Decide if you need a crypto token
Assuming you brainstormed with your team and decided that you need a blockchain, it‘s time to decide whether you need a crypto token. Ask yourself the following questions:
- Are you selling a product/service that must have a crypto token? Are there providers selling a similar product/service without a crypto token? If there are, how are they selling? If there is an existing business model for your proposed product/service, and if it’s working reasonably, then you may not need crypto tokens.
- Should your customers definitely need to buy crypto tokens to access your blockchain platform? Then, you should plan for a utility token. This kind of tokens provide access to a platform, and that‘s their primary use case.
- Are you planning to introduce a crypto token with a promise of future profits for your customers? Well, you are selling a securities investment contract, and that‘s quite different from a blockchain-based product/service. You need to follow securities regulations, and delink your blockchain project from the securities you are issuing!
Read more about this in “Utility tokens vs. security tokens comparison guide”.
Aspect #3: Choose between public vs private blockchain
Now you need to plan what kind of blockchain should you use, i.e., public vs private. Consider the following:
- Can you afford a fully open network where anonymous or pseudonymous participants can join? If you can, then a public blockchain like Ethereum is fine for you. On the other hand, if you need to restrict your platform to only trusted parties, then you should go with a permissioned blockchain. These are also called “Enterprise blockchains”.
- Will you process sensitive data? If you do, then you need a private blockchain where you can implement access control and guard your confidential data. If your data can be open for public viewing, then a public blockchain is fine.
- Public blockchains like Bitcoin and Ethereum don‘t scale well. Every node has the entire information of the blockchain. Every node participates in the transaction validation process. The network can only be as fast as the slowest node. If scalability and transaction throughput are crucial to you, think of using a private blockchain.
Read more about these in “Public vs private (permissioned) blockchain comparison”.
Aspect #4: Scope your blockchain development project
Focus on the project scope. What are you developing?
If you are setting up a decentralized business, then you are planning to develop a “Decentralized App” (DApp). A DApp is a web app with the following characteristics:
- The front-end can be in any language, however, the back-end should run smart contracts.
- A DApp must run on a decentralized blockchain.
- It should be open-source.
- A DApp must use a cryptographic token, created using modern cryptographic algorithms.
- No one user should control the majority of these tokens.
- Any change to the DApp should follow the consensus of its’ users.
- A DApp should store data on a decentralized blockchain following cryptographic standards.
Read more about DApps in “How to convert web app Into a Dapp”. You will use a public blockchain for this.
Now, you need to develop smart contracts for DApps. Smart contracts are pieces of code with certain distinct characteristics, as follows:
- Smart contracts are open-source.
- They contain “IF-THEN-ELSE” code and transfers cryptographic assets upon fulfillment of predefined conditions.
- Smart contracts are stored on a blockchain. They are transparent and no one can tamper with them after deployment.
- They execute autonomously, and the execution is irreversible.
I have earlier explained smart contracts in “How to deploy smart contract on Ethereum?”.
If you are planning a blockchain project in an enterprise context, then you aren‘t developing a DApp. You can use smart contracts even in that case. However, you could be developing on an enterprise blockchain like Hyperledger Fabric (Fabric). In Fabric parlance, smart contracts are called “chaincodes”.
Aspect #5: Select a DApp blockchain platform
If you are developing a DApp, you need to choose a blockchain platform for it. You have several choices, e.g.:
Ethereum is the most established DApp and smart contract development platform. Let‘s see the following quick facts about it:
Read How We Helped a Marketing Company to Build a Back-Office Custom Ads Dashboard
- Ethereum offers a suite of protocols for DApp development. “Ethereum Virtual Machine” (EVM) is the central component here. It executes the code of DApps and smart contracts.
- Smart contracts on Ethereum are mostly written in Solidity, i.e., a proprietary language. A software developer can also use Vyper for this.
- Ethereum is highly popular. Over 84% of “Initial Coin Offerings” (ICOs) in 2017-2018 used this platform, as this report
- Ethereum offers fully decentralized security with the help of modern data encryption and the POW algorithm. This also reduces its‘ scalability and transaction throughput.
- It plans to transition to “Proof of Stake” (PoS) algorithm later, which should improve scalability.
- Ethereum has a well-developed set of crypto token standards. This helps developers to build their tokens. The most common standard is ERC20. You can read about important ERC standards in “5+ ERC standards every Ethereum developer should know about”.
- As of now, developers can use sidechains to achieve scalability. They can use more efficient consensus algorithms for their DApps on their own sidechains. Loom Network, a blockchain start-up offers “Software Development Kits” (SDKs) for creating DApps on “DAppChains”, i.e., application-specific sidechains. Read more about it in “How to scale an Ethereum Dapp”.
Read about setting up a smart contract and DApp development on Ethereum in “Blockchain software development using the Ethereum network”.
NEO is a smart contract platform developed by a team from China, and it‘s quite like Ethereum. The distinct characteristics of NEO are as follows:
- They focus on compliance and claim that they support a GDPR-compliant digital identity solution.
- They use a “Delegated Byzantine Fault Tolerance” (dBFT) consensus algorithm. This involves a team of delegates with clear identities. A 66% consensus among these delegates is sufficient for transaction validation. This improves scalability and transaction throughput.
- NEO allows smart contract development using popular languages like C#, Java, Python.
Read more about NEO in “ETH vs. EOS, NEO, ADA”.
EOS is another smart contract platform that‘s similar to Ethereum. The differences are as follows:
- Smart contract development on EOS is possible with C++.
- EOS offers better scalability and transaction throughput since it uses the “Delegated Proof of Stake” (DPoS) consensus algorithm.
- Unlike Ethereum, there is no transaction cost in EOS. Users lease their tokens to cover bandwidth.
Read more about EOS in “EOS vs Ethereum: is EOS a good alternative?”.
Lisk is not a smart contract platform. The following are the relevant characteristics of this platform:
- This is a platform for building blockchain applications using sidechains. Every application runs on its‘ separate sidechain.
- Lisk uses a DPoS consensus algorithm, which makes it faster.
- Lisk offers SDKs to help developers further.
- Lisk allows integration of smart contract platforms with apps running on its’ side chains.
Read more about Lisk in “Comparison of smart contract platforms”.
Aspect #6: Developing in an enterprise context? Select an enterprise blockchain platform
If you are planning for an enterprise blockchain project, you will use an enterprise blockchain platform. I will describe the key options you have, which are as follows:
Hyperledger Fabric (Fabric)
Fabric is one of the most matured enterprise blockchain platforms. Note the following relevant points about Fabric, including its‘ advantages:
- It‘s a project developed by the Hyperledger Consortium, an industry group with the objective of promoting enterprise blockchains, open-source tools, and frameworks.
- It‘s a permissioned blockchain framework. Businesses can implement it for their specific use cases, including smart contract use cases.
- IBM and several technology giants back it. Big businesses like Maersk are already exploring it.
- Developers can code “chaincodes”, i.e., smart contracts on Fabric using Java, “Golang”, and Node.js, which many developers already know. Read more about it in “Pros and cons of Hyperledger Fabric for blockchain networks”.
- Fabric uses consensus algorithms that mirror the transaction processing and approval workflows in enterprises.
- Hyperledger Fabric is a scalable and performant blockchain.
- It has a modular architecture. Developers can benefit from pluggable components like consensus algorithm, and develop their apps quickly.
- Fabric has a “Membership Service Provider”, making it easy to implement a permissioned blockchain.
- This framework uses data-partitioning in the form of “Channels” for transactions involving confidential data.
- Fabric has a “Hardware Security Model” (HSM), additional hardware-based security to protect digital signatures.
- Starting late 2018, Fabric is also enabling developers to code Ethereum smart contracts on this platform. Read about it in “Using Hyperledger Fabric to setup Ethereum smart contracts”.
R3 Corda, also called “Corda” is another well-known enterprise blockchain platform. Salient points about Corda are as follows:
- Corda is from R3.
- This permissioned blockchain has different access levels for different category of nodes. Organizations using Corda can set up these nodes according to the different organizational roles they have.
- Corda is specifically designed for the financial services industry. This sets it apart from Fabric, which is industry-agnostic.
- This platform uses smart contracts. Smart contracts in Corda have specific legal expressions, which makes them suitable for the heavily-regulated financial service industry.
- The consensus mechanism in Corda ascertains both transaction validity and uniqueness, as follows:
- Smart contracts ensure validity.
- The protocol program checks whether any other transactions use any of the input states of the transaction under validation. If no other transaction has used any of these input states, then the transaction in question is unique.
Read “Consensus model” to know more about the consensus algorithm in Corda.
Aspect #7: Budgeting
Your work of budgeting a blockchain development project involves the following:
Budgeting for the development manpower
Your development manpower budget depends on your project scope and architecture, as follows:
- You will need to hire programmers with Ethereum development and Solidity skills if you are developing an Ethereum DApp.
- For enterprise blockchain development, you will need to hire Fabric or Corda developers.
- Business analysts, testers, and project manager are the other roles you need.
Read “How much does it cost to build a blockchain project?” for more details.
Budgeting for the infrastructure
Budgeting for the infrastructure will depend on your project scope, as follows:
- If you are developing DApps using Ethereum/NEO/EOS/Lisk, you will not need to buy infrastructure. Instead, you will need to buy the respective crypto tokens, for e.g., Ether (ETH) for Ethereum. This will allow you to build, deploy, and run your DApps on the respective platforms.
- To build your apps on enterprise blockchains like Fabric or Corda, you will need to procure any of the following “Blockchain as a Service” (BaaS) accounts:
- “IBM Blockchain platform”;
- “Hyperledger Fabric on SAP cloud platform”;
- “Hyperledger Fabric on Azure” from Microsoft;
- “Hyperledger Fabric (HVM)” from AWS;
- Corda on AWS, for which you can read “Building blockchain applications with Corda Enterprise on AWS”.
Undertaking a strategic blockchain development project?
A blockchain development project can be complex. The technology is new, moreover, the skills are mostly niche. You need to plan it right, to set yourself up for success.
However, this requires significant consulting and software architecture expertise. Consider taking professional help. You can read our guide “How to find the best software development company?”. This will help you in finding the right consulting, software architecture, and development partner.
Download Our Project Specification Template
Latest posts by Aran Davies (see all)
- Can Distributed Computing Take On The Might Of AWS? - September 17, 2019
- AI Solutions To Digital Identity - September 15, 2019
- 10 Great Tools For VR Development - September 14, 2019