DEV Community

Hasan Ali
Hasan Ali

Posted on • Originally published at hasanali.me on

Learning Ethereum/Solidity Smart Contract Development – Week # 1

I’ve started working with blockchain by playing around with block explorers and RPC APIs. Setting up RPC APIs and connecting them to a frontend web was all that I know to do. But what I really wanted is to learn the core of blockchains and wanted to know how to become a blockchain developer. I was confused too at that time because the blockchain ecosystem was booming expeditiously and new development tools were coming, so it was making more difficulty for me to decide where to start.

I found this course on Udemy about “Ethereum and Solidity: The Complete Developer’s Guide” which laid down first steps of my journey of blockchain development.

Now being a blockchain developer, I’ve been asked this question more frequently, so I think I should write detailed notes of my solidity development course, from which anyone who wants to start blockchain development can start learning just like I did.

The first week is the introduction to Ethereum blockchain and kind of list of terminologies and their explanations but after that, we’ll dive into coding smart contracts.

Prerequisites:

  1. You should have a basic understanding of blockchain, just a basic knowledge of addresses, wallets and how blockchain works in a nutshell. If you don’t know about basics of blockchain don’t worry check out Anders playlist
Blockchain 101 – A Visual Demo
Blockchain 101 – Part 2 – Public / Private Keys and Signing
  1. If you know React.js, it will be a plus point because in future we’ll be developing frontend for smart contracts in it. If you don’t know react don’t worry check out this free React.js course

History of Ethereum:

In December 2013 after the release of bitcoin whitepaper, Vatalik Buterin visions the idea to use the blockchain technology not just as a mode of payment transfer but also as a virtual machine which can run programs and codes and thus the idea of smart contracts was introduced. Vatalik wasn’t the first one to introduce the idea of smart contracts, it was proposed before by Nick Szabo too, but this was the first successful implementation of that idea.

Blockchain:

Blockchain is a database which keeps a record of all transactions and anyone can keep and maintain this database so its decentralized (not controlled by a authority)

Ethereum:

Ethereum is a special type of blockchain, instead of only keeping a record of transactions it also provides storage to host programming code on it which is executed by Ethereum Virtual Machine.

Metamask:

Metamask is a chrome browser extension allows user to interact with Ethereum applications in browser. Install it and explore it. (https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en)

Smart Contract:

Smart Contract is a special account in Ethereum blockchain which has 3 things in it.

  1. Balance : Amount of Ethereum in this account
  2. Storage : Data store for this contract
  3. Code : Smart contract code

Solidity:

Solidity is the programming language introduced by Ethereum to write smart contracts. It’s a strongly typed language very similar to javascript.

Smart Contract Lifecycle:

When a smart contract is programmed in solidity it’s then compiled by Solidity Compiler which gives us two things.

  1. Bytecode: This is the code which is deployed on Ethereum network
  2. Application Binary Interface (ABI): ABI is a long JSON object contain smart contract methods and information from which we can interact with smart contract.

Top comments (0)