Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Blockchain: Practical dApps Development using Solidity
Rating: 4.2 out of 5(52 ratings)
584 students

Blockchain: Practical dApps Development using Solidity

Using Ethereum, Solidity, and Smart Contracts to build dApss with Web3, React and IPFS
Created byAbel Choy
Last updated 1/2022
English

What you'll learn

  • Ethereum Blockchain Techology
  • Solidity Programming Language
  • Development Tools for dApps
  • Write Smart Contracts for ERC20, ERC721, ERC1155, and Escrow Services
  • Smart Contract Security Issues and Solutions
  • Write front-end Web3 application to interact with Smart Contracts and IPFS

Course content

9 sections43 lectures16h 9m total length
  • Introduction5:09

    Course overview:  an introduction of the entire course curriculum. From fundamental concepts of Blockchain technology, Ethereum, Smart Contract, Solidity to Coding sections on ERC standards.

  • Blockchain - What? How? Why?12:21

    Blockchain is a time stamped, append only transaction log.

    Blockchain is: 

    • Globally open – accessible on the Internet by anyone,

    • Distributed – thousands of computer nodes running it and maintaining it,

    • Secured by Cryptography technology - that any tampering can be easily detected, and uses digital signature to authenticate and verify transactions

    • Decentralized – a Peer-to-peer network with no Single point of failure.

    • Auditable – every transaction can be verified ( sender, recipient, value, time-stamp,

    • In short - it is a Distributed Ledger System that record values

    • Blockchain - is the Internet of Values.   A Trust Machine!!

  • Bitcoin - Decentralized Money33:08

    Bitcoin - is the world first decentralized peer-to-peer digital currency. Before the invention of Bitcoin there were many attempts to introduce electronic cash system but failed. 

    Bitcoin - a successful innovation by Satoshi Nakamoto had demonstrated that we can have secured digital currency on the Internet and make or receive payment directly with anyone on the system without the need of intermediaries such as banks or institutions.   

    This is a revolutionary and transformative technology.  The crypto currency Bitcoin, is protected by cryptographic technology, 'proof of work' consensus protocol and decentralized network architecture.   

  • Ethereum and dApps40:56

    Ethereum is a global decentralized super computer.  To understand this statement is to know how Ethereum extend beyond Bitcoin blockchain decentralized payment system.

    In this lecture you will see the motivation and contrast of Ethereum with Bitcoin.

    You will learn about EVM (Ethereum Virtual Machine) and the idea of Smart Contract, various Client software and Gas price in Ethereum eco-system.

Requirements

  • Basic programming knowledge will be helpful.

Description

This course is designed for anyone new to Blockchain technology and Solidity programming. You will learn and use Solidity to write Smart Contract and deploy it on Ethereum as a Decentralized application - dApps.   

DApp is a new trend of writing programs which is able to enforce the contract based on rules, logic and events; and execute automatically  by transferring Ether payment based on those conditions.  

DApp do not require intermediaries like banks or institutions as it is able to validate, authorize and settle transactions and record them on the immutable Blockchain.  It's essentially a 'Trust Machine' where transaction is open, verifiable and permanent on the blockchain.

Blockchain is the most promising technology of the future since the invention of the Internet.

What you will learn in this course:

  • Ethereum Blockchain Technology

  • Solidity Programming Language

  • Development Tools for dApps

  • Write Smart Contracts for ERC20, ERC721, ERC1155, and Escrow Services

  • Smart Contract Security Issues and Solutions

  • Write front-end Web3 application to interact with Smart Contracts and IPFS

The Blockchain technology that we are learning in this course was actually inspired by the innovative and successful implementation of Bitcoin system.

Bitcoin was invented by Satoshi Nakamoto in his / her paper titled "Bitcoin: A Peer-to-Peer Electronic Cash System“.   ( 2009 )   Bitcoin is both a digital currency and direct peer-to-peer payment system.   (i.e. no banks or governments involved in the transfer)

Interestingly, the word 'Blockchain' was not mentioned in the white paper.  It was later discovered by developers and communities that this Bitcoin is running on a new technology (we call it Blockchain) which solved the 'Double Spending' problem where many earlier electronic cash proposal failed.

The Bitcoin Blockchain proposed and implemented by Nakamoto essentially fuse together the following technologies which were known at that time:


  • Cryptographic hash function,

  • Proof-of-work consensus protocol,

  • Decentralized Network Architecture


    The ideas and innovation was quite ingenious. Together with the participation of the Miners in the system, every block is inspected and validated and Miners compete to have the right to add the new Block by solving a cryptographic puzzle first.

The Miners who first solved the puzzle will broadcast to the Peers and a 'Proof-of-Work" is demonstrated and verified by other Miners. The Miner who solved the puzzle got the right to add the new Block, receive Ether reward, and the process continue on.

So, every attempt by a malicious attacker to the Bitcoin network (ie. essentially attempting to re-write the transaction log) will need to compete with the entire network of Validators.  It has been shown that it is very difficult to cheat or bring down the Bitcoin network.


With the success of this innovative Blockchain technology, the developers and corporations started to evaluate whether we can use Blockchain to decentralized other assets beside money.

Assets such as property title, certification, voting system, supply-chain system, artworks, health records, etc., becomes feasible as each of the asset requires recording system (i.e. a public Distributed Ledger System) 

The idea of a trusted DLS where transactions are verified by the peer nodes continuously through cryptographic hash keys protection, and decentralized network architecture with no single point of failure - is an attractive proposition for new decentralized applications (dApps).


However, the Bitcoin blockchain has inherent limitation to be used for other more complex application as was discovered by Vitalik Buterin.  Bitcoin system is not a 'Turing Complete' machine.  (ie. you can write simple scripts on Bitcoin blockchain but it is limited to transfer of Bitcoin and not able to implement more complex applications )


In 2013/2014, Vitalik proposed and implemented Ethereum - a decentralized, open-source blockchain system with Smart Contract functionality. 

The proposal is to build an EVM (Ethereum Virtual Machine) - a Turing Complete machine - that will run on each Node / Client computer on the network.   And Smart Contracts are just programs written in Solidity - a programming language that target the EVM for deployment and execution.


With Ethereum blockchain system, developer can design Smart Contract, compile it, and deploy on the Ethereum network.  This is quite an amazing innovation.  The Ethereum blockchain thus become a Global, Open, Super Computer -where Smart Contract programs can be deployed and executed for various kind of decentralized applications. 

We will be learning Solidity programming language for Smart Contracts development and examine the language, examples and application in detail during the course.

In short, Ethereum is a programmable Blockchain.  A platform for running Smart Contracts (beside the ability to send / receive the native crypto currency Ether)


We will learn a range of Development Tools for writing Smart Contracts, compilation, deployment and testing in the course.


In a series of practical sessions, we will look at ERC20, ERC721 and ERC1155 as examples of industrial standard contracts and write our own tokens using those standards.

As Ethereum blockchain has a native crytocurrency (ETH Ether), the transfer and exchange of money is integrated with the Solidity programming code.   Hence, it is possible to automate agreements and execute them based on verified events and rules of the contract to send monry (i.e. Ether) directly to each other - thereby eliminating the intermediaries (ie. Banks, Insurance company,   (i.e. noteL  a Smart Contract can hold Ether values as well beside EOA (Externally Owned Account) by users.

The possibilities and use cases of Smart Contracts are just endless and we are limited only my our imagination.

With the possibility of financial transactions that can be executed automatically by Smart Contracts - it opens up the risks of malicious Hackers to exploit errors or bugs in a Smart Contract.    History had shown incidents of cybercrime where millions were stolen from Smart Contracts / Account Holders.


Therefore, every Smart Contract developer must have a good grounding on Smart Contract Security and know how to write code to protect the Owner and Contract itself.  We will look at the classic attack of Smart Contract in the last session and how to overcome it. 


Benefits to you for learning this course:

  • Gain knowledge and skills of Blockchain technology and dApps development

  • Prepare yourself for many high-demand job opportunities in Blockchain technology

  • Kick-start your opportunities to launch Start-up projects using Blockchain and dApps

What's the difference of this course with other courses on Blockchain:

  • This course is designed with total beginner in mind and simplify complex topics

  • We first cover the fundamental concepts of Blockchain and related topics before diving into coding

  • We avoid confusion and courses which use outdated tools

  • Learn by coding is the key to go in depth into the technology

Come, join us today!

Yours faithfully,

Abel Choy,   Software Engineer / Lecture in Computer Science

Who this course is for:

  • Anyone who wants to learn dApps development and Blockchain technology