As you get started developing for blockchain you’ll quickly recognize that some things are different. The good news is that a lot is the same. Our goal at TryCrypto is to remove hurdles and speed up your development process, but we do want to slow down enough to convey concepts that are foundational to blockchain development.
There are tons of resources on the internet about blockchain and crypto. The information we’re going to provide in this blog/video is focused on the core tenets of blockchain and crypto from a development perspective.
Let’s have a look at core principles you’ll want to keep in mind when developing for blockchain:
Blockchain is a decentralized technology and is the underlying technology of crypto
There are numerous blockchains - some public, some private.
At its core, a block is a set of transactions, a ledger.
A block is immutable, it cannot be changed once it is on a blockchain.
Any updates to the block invalidate the block and automatically create a new one
Each block has a hash and it also contains the hash of its predecessor. This is what establishes the “chain”.
Mining is a mathematical process that looks to match hashes via a private and public key.
You can think of it as a math problem. When a miner finds the appropriate hash combination, it signals that it has found the correct answer to the math problem. Other miners to validate that the answer is correct. Both the machine that finds the correct hash and those who confirm the correct answer are compensated with tokens or coins.
When a block is submitted to the blockchain it is submitted with “gas” which is the amount of currency willing to be paid for miners to mine the hash of the block.
There is no guarantee that your block will be mined.
Cryptocurrencies can be created on the fly.
You need to embrace a “Frugal” development mentality when it comes to blockchain development because in the long run this saves you money and time.
It’s best to write code that fails fast so as to save transactions and thus cost
The repo of a dapp consists of:
A smart contract stack consisting of a selected blockchain, a development language, a server-side API, and front-end framework (for giving a UI so users can interact with your dapp)
Smart Contract Features consisting of access control, asset and value tracking, file storage, authentication, and collection(s)
The layers of a dapp are:
HTML/CSS/JS on the presentation layer
An underlying Smart Contract that resides on the blockchain, which interacts with
A back-end API of your choosing.
Because blockchain is inherently distributed, there are no concerns of scalability and load handling.
Blockchain is a state machine, it is not “stateless” as some web based protocols are.
Not every part of your application needs to be “on-chain”.
All data is public.
Understanding these core tenets of blockchain development is critical as you begin your journey in developing for blockchain. This is great info to constantly keep in mind as you write code regardless of your level of experience in this technology.
And now that you’re on your way and dipping your toes into decentralized dapp development, why not save yourself some headaches and get started developing with DappStarter.TryCrypto.com