Blockchain
A complete Blockchain solution has the following key components:
- The Blockchain Network comprising of connected nodes (which we will cover in this guide).
- A Smart Contract (which we will cover in a separate guide).
- A User Application to interact with the Blockchain and Smart Contract (which we will cover in a separate guide).
Blockchain Network
This section shows you how to install, deploy and manage a private Blockchain network. The purpose of a Blockchain network is to deploy Smart Contracts and execute various transactions. Data from the Blockchain can be accessed using a web or mobile application. The deployment and deployment of a Smart Contract and the use of a Web App will be covered in following sections.
A Blockchain network is made up by Participants (individuals or organizations that transaction on the network). Every participant deploys and runs a Node, which executes transactions and synchronizes them with the other participants nodes on the network. Every participant has an Account which is used to maintain a balance of the currency traded on the network. Participants have to pay to execute transactions on a network.
There are multiple Blockchain implementations, each with their own technology stack and their own currency (in some cases this is publicly traded as cryptocurrency with real monetary value). We will be using Ethereum (which uses a currency named as Ether) for our implementation.
Blockchain Network Types
Within each implementation there are multiple types of networks, categorized by their purpose:
- Mainnet
This is the primary public network used for trading the Blockchain cryptocurrency (Ethereum and Ether for example). Cryptocurrency on this network has a real (generally dollar denominated) monetary value. The network can be used to execute public transactions and deploy publicly accessible Smart Contracts deployed and managed by a publicly recognized organization or a consortium.
- Testnet
This is a public network that closely mimics the Mainnet but the traded currency has no real monetary value. The purpose of this network is to allow developers to test transaction and Smart Contracts before deploying them on the Mainnet.
- Private Network
A private network can be set up by any organization or a consortium of organizations using the same technology stack used by the public networks (with some limitations) with access only to select participants. A private network can be used to execute transactions and deploy Smart Contracts accessible only within the selected participants.
- Devnet
A Devnet is a private network used by developers to execute test transactions and deploy and test Smart Contracts.
Implementation Options
You have two options to learn the process of implementing a Blockchain network, deploying a Smart Contract and executing transactions.
- Option 1: Use a Testnet
With this option you will learn most of the fundamentals of using a Blockchain network but not how to set up a network. This is generally enough for most practical learning purposes. The learning curve is less steep than option 2.
Sepolia is one of the more popular Ethereum Testnets. As mentioned earlier, there is a cost for executing transactions, and therefore every participant will need to have some Ether in their account. Although the currency used on Testnets has no monetary value, adding Ether to a Testnet account costs real money. While this was free earlier, the increased usage of Testnets has created a shortage and hence the need to restrict usage by requiring a real monetary payment to ensure only serious participation.
Therefore, while this is the easier option to get started, you will have to be willing to spend a little money to acquire Ether to test your solutions.
- Option 2: Setup a Devnet
With this option you will get an in depth learning since you deploy every component from scratch.
While there is still a cost to execute transactions, you can distribute Ether to participants free of cost and without limits.
The other value of setting up your own Devnet is that you can actually deploy a node for each participant, even on different remote machines, which replicates a Blockchain network accurately. Using Sepolia, you can only create participant accounts thus simulating a node.
The challenge with this option is that setting up and running a Devnet requires a high level of technical skill and a reasonably powerful computer (although most modern computers have the required computing capacity) to run the node.
We will provide detailed guides for both options. You can choose the one that works for you, taking into consideration the requirements, limitations, and advantages of each option. While some of the terms and concepts related to Blockchain will be explained briefly in this guide, you can refer to the lessons on Blockchain for a more detailed understanding.