Getting Started with Blockchain Development

Getting Started with Blockchain Development

Blockchain is like what is on every tech bro's lips from designers to developers to product managers and more. However blockchain development is not what some take it to mean, I am writing this article to at least help anyone who is a developer or designer that wants to transit into blockchain know the rudiments of blockchain and what makes it count in our todays world.

What is Blockchain?

Blockchain is a system of recording information in a way that makes it difficult or impossible to change, hack, or cheat the system. A blockchain is essentially a digital ledger of transactions that is duplicated and distributed across the entire network of computer systems on the blockchain.

Blockchain are networks of computers that has what we call Blockchain client.

Each Blockchain has it's own client e.g Ethereum and bitcoin Blockchain.

Blockchain client programming languages are quite low level languages like C, C++, Rust, Golang etc. To build a block chain client you may need to understand the Operating System, Network and file structure. It's quite difficult in terms of computer science complexity (Not beginner friendly), however it's not something you can't do.

Being a Blockchain Client developer is not what most Blockchain developers you know do, Rather they build apps on a Blockchain network. Just like in Web development most developers Build Apps that run on the Browser but not the actual Browser Operating system.

Developers who build Blockchain Client are called Blockchain Core developers.

While those who build apps that run on a Blockchain are called Blockchain App developers.

In most cases when people say Blockchain development they mean Blockchain App development.

On Coin market cap there about 9000 projects, a lot of project doesn't have their own Blockchain rather they build inside of Blockchain.

You can checkout more on Dapp Radar to check popularity and different projects strength.

bitpanda-academy-beginners-23-what-is-ethereum.jpg

Ethereum used to be the highest ranking Blockchain project but is being Challenged by the Binance Smart chain which is more scalable and lower transaction fees, I believe Ethereum will have its own Scaled solutions with the aid of chains like L2 chain.

However chains like Binance Smart chain and Tron are based on the technology of Ethereum. Almost Every other blockchain that depends on Ethereum Virtual Machine (EVM) is based on the Ethereum network with this I strongly recommend you focus on Ethereum development.

In the Process of Blockchain development you will need to understand.

  1. Proof of Work (POW) algorithm
  2. Data Structures
  3. How a wallet works
  4. Public & Private keys
  5. How addresses are created.
  6. Account types
  7. Transactions
  8. Smart contracts

WEB DEVELOPMENT

Front-End-and-Back-End.png

A big mistake I think a lot of people make going into blockchain is not learning web development. Blockchain development is built on top of Web development so you need to know web development.

The thing is web development is very broad with a lot of languages however you don't need to know all the languages.

In web development we have 2 parts Frontend and Backend.

For Blockchain App development we focus more on the frontend with languages like:

  1. Html
  2. CSS
  3. JavaScript

More importantly we need to use a framework and I strongly suggest REACT JS.

What I have mentioned so far is for frontend web development as a blockchain app developer you also need to know a bit of Backend (Node.js) our main interest in node js is the package manager (npm) we use it to install dependencies and tools for blockchain development.

SMART CONTRACT DEVELOPMENT

smart-contracts-in-blockсhain-in-comparison-to-the-ordinary-contracts-image-2.png

Smart contracts are simply programs stored on a blockchain that run when predetermined conditions are met. They typically are used to automate the execution of an agreement so that all participants can be immediately certain of the outcome, without any intermediary's involvement or time loss.

When we build blockchain apps the most important is smart contracts, smart contracts are small programs that live in the blockchain.

What differentiates smart contract from a normal program is that once deployed it cannot be changed (i.e the code cannot change) they are immutable however the data is not you can change the data but it costs money to change the data of a smart contract. In a complex app code it costs more money so we try to simplify our code to the simplest in order to lower execution cost this is called GAS OPTIMIZATION.

With Smart contracts we can move money natively without integrating with PayPal, Pay stack or stripe. This is why smart contracts are so powerful. It is almost impossible to hack a smart contract but bugs can be introduced and hackers take advantage of this.

SOLIDITY

5jd65usaioipnkv5xs5a.jpg

There are couple of languages used for blockchain development, the most popular one is SOLIDITY, the syntax looks like JavaScript but its quite distinct.

In real life projects we use truffle IDE for SOLIDITY. It comes with a local Ethereum called Ganache blockchain,

download (1).png

You can use Ganache across the entire development cycle; enabling you to develop, deploy, and test your DApps in a safe and deterministic environment. with Ganache you can deploy your smart contracts on real network completely separate from the Ethereum network that is called Mainnet. You can send as many Ether/transactions for a test and get infinite values of fake ether for development testing.

Public testers are networks used by protocol developers or smart contract developers to test both protocol upgrades as well as potential smart contracts in a production-like environment before deployment to Mainnet.

1_7yVCUf1rZTpgT0_-EQTtiw.jpeg

Another Service you would probably use is Infura: Infura is a Web3 backend and Infrastructure-as-a-Service (IaaS) provider that offers a range of services and tools for blockchain developers. This includes the Infura API (Application Programming Interface) suite. The flagship Infura Ethereum API is at the heart of the Infura Web3 service.

FRONTEND WEB DEVELOPMENT

If you have smart contracts on a Blockchain the only way to communicate with it is through the command lie, however this is very Terrible for users that's why we also need to build a frontend to let our users interact with a smart contract.

Smart Contract + Frontend = Decentralized Application (Dapp).

The challenge here now is integrating our frontend with the smart contract, we use a JavaScript contract called Web3.js.

Web3.js

web3js is a collection of libraries that allow you to interact with a local or remote Ethereum node using HTTP, IPC or WebSocket.

The article already looks too long, I hope to write another one that talks about Defi;

defi-projects.jpg

Uniswap, Compound, flash loans, liquidations and Staking.

I hope you learned something new from this article.

Blockchain to the world 🚀🚀