Polkadot Fundamentals and Substrate Development
Building A blockchain
Since we have Rust installed, it is now time to build our own blockchain using Substrate and experiencing the powerful features it brings.
Compile and Starting a Substrate Node
The template for a substrate node is present on github and this is the one we need to clone to be able to start a substrate node on our system.
git clone https://github.com/substrate-developer-hub/substrate-node-template
Let’s change our directory and go inside the project that we’ve just cloned -
- cd substrate-node-template
It’s a good idea to always create a new branch, so that you can compare with the original project in case something goes wrong or you make some wrong changes to the project by mistake. So, let’s create a new branch -
git switch -c my-new-branch
To start the node, we first need to build and compile this project and then we will get the compiled file that we can run. We will use the “--release” flag to build optimized artifacts.
cargo build --release
Now we will start the node with the following command -
The –dev flag indicates that we want the node to run in development mode. This option is great during development because it deletes all active data such as keys, blockchain database and networking information when you stop the node.
After this you should see the node running in your terminal
Install and Starting Front-End Template
Substrate also has a front end template for the dashboard so you can interact with the node through a UI and not just through the terminal.
For the front end, yarn and nodeJS are both required.
So first, check your nodejs and yarn versions -
node --version yarn --version
If you don’t have these, feel free to install before proceeding.
Just like we cloned the template for the node, we need to clone the project that has the code for the front-end template -
git clone https://github.com/substrate-developer-hub/substrate-front-end-template
We now need to change our directory to the project we just cloned -
Now we will install the project using yarn -
And now we just have to start the front end with the following command -
http://localhost:8000/ will automatically be opened in your default browser once the front end starts, but you can also open it manually. Now from the dashboard, you will be able to interact with the node.
On the dashboard, you will notice the “balances” section, look at the balances of various users such as Dave, who have zero balance.
Now we will try and transfer some money to Dave.
Select dave from the list and transfer at least 1000000000000 to dave.
All we need to do is first check the balances table and see if the value was transferred to Dave and also need to check the events table for the transfer event.
After a successful transfer, you can continue to explore the front-end template components or stop the local Substrate node to erase any state changes you have made. Because you specified the --dev option when you started the node, stopping the local node stops the blockchain and purges all persistent block data so that you can start with a clean state next time you start the node.
To stop the local Substrate node:
- Return to the terminal shell where the node output is displayed.
- Press Control-c to terminate the running process.
- Verify your terminal returns to the terminal prompt in the substrate-node-template directory.