Course Syllabus for Decentralized eBay on Ethereum and IPFS

This is an intermediate level guided course where you build a decentralized marketplace similar to eBay. You will build a smart contract where any one can list their products they like to sell in the marketplace. Consumers can browse the products and purchase products through an auction. You will also implement an Escrow service which is used by buyers and sellers to protect their transactions and guarantee payment and delivery. This application will be built using the Solidity programming language using the Truffle framework, Javascript and HTML/CSS. IPFS will be used to store images and large text and MongoDB will be used as an offchain solution to implement the product search functionality. Few key libraries that will be used to build the application include web3js, ipfs-api and ethereumjs-util.

Prerequisites

This is an intermediate Ethereum development course. Students are expected to have basic knowledge of smart contracts and Solidity programming language. Knowledge of the Truffle framework will be helpful but not necessary. A good knowledge of Javascript is required to build the frontend.

Application Architecture

This is a fairly complex application and it is essential to understand all the components of the application and how they work together. You will learn the architecture of the application and the design decisions behind it and the implementation plan.

List Products in the store

You will implement a smart contract with all the functionality for a seller to list products to sell in the marketplace.

Vickery Auction

You will learn few different types of auctions and learn the details of the Vickery Auction system. You will then implement this auction system in your smart contract. Since all the transactions in the blockchain are public, we will implement encrypted bidding to mask the bids. This is similar to how ENS works.

IPFS and it's usage

It is not feasible to store large text and images on the blockchain. To get around this issue, we will integrate IPFS in to our application. You will learn the basics of IPFS, detailed installation steps and usage. We will use standard IPFS javascript libraries to integrate IPFS in to our application.

Web Frontend

We make heavy use of Web3js library to implement the frontend. All the smart contract functionality will be exposed through the HTML/JS frontend.

Off Chain solution using MongoDB & Ethereum Events

You will learn the concept of Events in Ethereum and a way to use these events to implement an offchain solution to build the product search functionality. You will also integrate your frontend with the offchain solution to add search functionality to your marketplace.

Escrow Service

There is no central authority in the blockchain world to enforce rules and guarantee payments. To protect buyers and sellers from fraud, we implement the Escrow Service smart contract that will be used to lock the funds in the contract. Funds are released to sellers or refunded to buyers through a 2 of 3 multisig solution (with buyer, seller and a third party arbiter). You will learn the concept of Escrow and multisig in detail and implement the Escrow service through the guided instructions.

Conclusion/Exercises

There are a number of features/enhancements that can be added to improve our marketplace. There are a number of exercises students can work on to gain more experience and become better blockchain developers.
$75.00
  • 40 hours of content
  • Support forum
  • Lifetime access
  • Free content updates