If you’re looking to build technology around trust, transparency, decentralization or automation for your next business, a Blockchain application is the new way to do it.
Building Your First Blockchain App
• If you’ve created an app, website or business, you’ve used a database. Remember: when we say “the Blockchain”, we’re simply referring to a type of database — one that’s massive, decentralized, peer-to-peer and cryptographically secure.
• Apps are constantly making implementation choices based on security, performance and programming language constraints. When you base your application on Blockchain, it’s really just another implementation choice.
• Developing an app on a Blockchain will influence your programming language choice, app design and testing/debugging processes. In turn, you’ll receive transparency, security and automation (if you develop Smart Contracts).
• Although the Blockchain community has grown significantly in the last several years, there still aren’t that many blockchain apps or developers. There’s tons of room for innovation and no better time to jump in on the Blockchain revolution than now.
Application development for a Blockchain app begins the same way as any other app. What problem are you solving? Who are your users? Will it be open sourced? How will you differentiate yourself? Who’s your competition? Answers to these questions will guide your development process from the get-go.
It’s important to note: Blockchain projects often take more time to build than your average mobile application or front-end project. Consider the amount of time it’s actually going to take to build a Blockchain app before you start writing code — especially if you’re building it yourself and even more so if it’s your first time.
Once you’ve answered these high-level questions, you can focus on implementation. Ready to get started?
SCOPING A BLOCKCHAIN APP
In this section, you’ll see the term “DApp” — decentralized application — quite a bit. We’ll discuss DApps more in-depth later, but here’s what you need to know now: DApps are open-source, autonomous, cryptocurrency-based apps whose backend is a Blockchain.
There are three major approaches to building Blockchain apps:
• Platform (Type I DApp)
• Software (Type II DApp)
• Specialized Software (Type III DApp)
If you’re a novice or this is your first time developing a Blockchain application, we recommend the Platform or Software approach. Forking Bitcoin or Litecoin code is a great way to learn Blockchain basics. Likewise, building a simple app on top of platforms like Ethereum is an excellent way to ramp-up early skills.
Remember: There’s no wrong choice here. The approach you choose ultimately depends on your project’s goals, scope and the problem your application solves.
“PLATFORM” (TYPE I DAPP)
This means: Building a new Blockchain and token system, either from scratch or by forking existing Blockchains. This approach is like creating your own operating system that other people will eventually build on.
Real world examples of DApp I projects include Bitcoin, Ethereum and Hyperledger Fabric, all of which are Blockchain platforms other developers can build on.
Choose this approach if: You have a broad, systems-oriented vision and want other people to build apps and services on your platform.
• Pros: You have creative direction over your new Blockchain and the ability to differentiate yourself in the Blockchain ecosystem. Building a new Blockchain by forking Bitcoin, Litecoin or other existing is also one of the best ways to learn how Blockchains work.
• Cons: Building a Blockchain from scratch is difficult: it requires understanding everything from cryptography to peer-to-peer network programming. Creating a successful new platform requires careful design, planning and community-building — all of which can take hundreds of hours on top of the Blockchain development itself. This is why most new Blockchains are Bitcoin or Litecoin forks with a few new enhancements.
“SOFTWARE” (TYPE II DAPP)
This means: Building an app that uses a pre-existing Blockchain platform, i.e. Bitcoin, Ethereum, Hyperledger Fabric or similar. This approach is like creating an app that runs on a known operating system.
Real-world examples include Golem, a “decentralized supercomputer” which leverages users’ spare computing power to process practically anything, and the Twitter-inspired EtherTweet. These are like software because they’re built directly on top of a Blockchain like Ethereum.
Choose this approach if: You’re addressing a specific problem with a targeted solution. Whether it’s an app or an API, you’re developing on top of a specific Blockchain.
• Pros: You’ll benefit from an established community while still getting to design a scoped solution. Less technical knowledge is typically needed for this than the “Platform” approach mentioned above since the blockchain platform natively handles cryptography and peer-to-peer networking.
• Cons: Using an existing platform means inheriting that platform’s limitations and bugs.
“SPECIALIZED SOFTWARE” (TYPE III DAPP)
This means: Building an app, plug-in or protocol that integrates with other Blockchain apps or protocols, i.e. any of Bitcoin’s many existing open source projects.
Real-world examples include the cloud-storage solution StorJ, which is built on top of MaidSafe, which is built on top of the SAFE Network. This approach is similar to building specialized software because it’s not built directly on top of the Blockchain; it’s built on a Blockchain-based service.
Choose this approach if: You want to create a specialized solution on top of other community projects, but you don’t necessarily care about directly building on the blockchain or forking Blockchain code.
• Pros: You’ll get the Blockchain’s benefits and the ability to leverage robust features of community projects outside your own.
• Cons: As with the software approach, you’ll inherit the limitations and bugs of whatever community projects you work with.