Wondering what to plan for when undertaking blockchain software development?
This is a good question that we will cover in this article. Good blockchain software development saves time and money and also helps ensure your project is as good as it can be.
Blockchain development: What do you plan for?
A blockchain software development project needs elaborate planning around several aspects, as follows:
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 blockchain network up!
- If your business doesn‘t need such distributed blockchain databases with so much redundancy, then you should think of using traditional databases 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 token provides 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 is 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 transfer 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 a smart contract on Ethereum?”.
If you are planning to build your own 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:
- Ethereum offers a suite of blockchain 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 blockchain 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 the “Proof of Stake” (PoS) algorithm later, which should improve scalability.
- Ethereum has a well-developed set of crypto token standards. This helps blockchain software 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 that developers already use for web development.
Read more about NEO in “ETH vs. EOS, NEO, ADA”.
Hire expert developers for your next project
1,200 top developers
us since 2016
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 the 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 the 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 blockchain development 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. A blockchain developer can benefit from pluggable components like consensus algorithm, and develop 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 in 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 categories 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 an ethereum blockchain developer with Ethereum development and Solidity programming language 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 managers 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, 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 app development project?
A blockchain software development project can be complex. Blockchain technology is new, moreover, the skills for the blockchain ecosystem are mostly a 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 from blockchain development companies.
You can read our guide “How to find the best software development company?”. This will help you in finding the right consulting, blockchain architecture, blockchain technologies, and development partner for your successful blockchain adoption.
If you are still looking for an experienced blockchain development partner, DevTeam.Space can help you.
Get in touch by describing your initial blockchain development requirements through this form and one of our technical managers will help you partner with our expert blockchain developer community for their exceptional blockchain development services.
FAQs on Blockchain Development
For the successful development of blockchain products, your developers should know blockchain programming languages like Solidity and GO to create smart contracts. Moreover, they should have enough knowledge of blockchain basics to set up public or enterprise blockchain platforms like Ethereum and Hyperledger fabric as per requirements.
A blockchain project depends on multiple factors. Firstly, see if your business processes really need a blockchain services solution, then decide if you need crypto tokens for it. Also, finalize the scope of your blockchain solutions. E.g. is it a DApp to facilitate financial transactions, etc. Then start planning the development aspect like blockchain development tools, platforms, blockchain developers, blockchain companies, etc.
Lack of blockchain development skills, limited understanding of the blockchain ecosystem, restricted financial resources, etc. are a few reasons that hinder the successful development of blockchain applications. To overcome these challenges try exploring top blockchain development companies and partner with the one that suits your business needs.