- Chapter 1: Blockchain Fundamentals
- Chapter 2: Build CryptoStar Dapp on Ethereum
- Chapter 3: Blockchain Architecture
- Chapter 4: Dapps with autonomous smart contracts
- Chapter 5: Capstone Project: Real Estate Dapp
This folder structure is a multi-root workspace configured in Visual Studio Code. To open the workspace in VS Code, open the blockchain-dev-course.code-workspace
file. Each root folder is a chapter containing a final project for submission and practice exercises building up to the final project. Each project contains a README.md
file with further instructions on running the project code.
In the first chapter of the course, I learned the basics of blockchain technology, managing transactions, Bitcoin core & testnet to test applications, managing data in lockchain like assets, etc. During this course, code exercises were in order to teach the fundamentals of creating your own private blockchain. These are the subfolders added to the repo. They all build up to eventuelly completing the first assignment.
Exercises:
- Hash Key Introduction: hashing information with crypto-js.
- Javascript Promises Introduction: Introduction to working with the 'promises' method.
- Blockchain Practice Block: Creating your first block with data.
- Block Data Model: Creating a simple blockchain with block data.
- Encode Decode Files: Encode and decode assets like images and add this data in a block to the blockchain.
- ExpressJS Introduction: An introduction to using ExpressJS to run your blockchain.
In this project, I created a private blockchain to record ownership of stars. Built as an express.js
app, I implemented the code in src/block.js
and src/blockchain.js
that provides the functionality of validating a block on the blockchain, decoding the block, and constructing a chain of blocks that can be signed with an Bitcore wallet. The project also exposes endpoints to search for blocks by block height, block hash, and by the address of the wallet that signed the block. I tested the application with API calls in POSTMAN.
More information about this project is available in the project folder: Blockchain Fundamentals.
The purpose of this project is to develop familiarity with building a decentralized app (dApp) on Ethereum.
This project is build cryptostar dapp that implements a star notary smart contract, where the information about people's favorite stars in the sky can be managed by means of the blockchain.
-
Name:
StarCoin
-
Symbol:
SUN
-
Token & Contract Address: [
0x469E00808fd3F96D3Aaed508973B7c42A1867BeC
] https://rinkeby.etherscan.io/address/0x469E00808fd3F96D3Aaed508973B7c42A1867BeC -
Sample star creation transaction hash:
0x841e3b8828e7d2989a3d8f2e439127547f78c39936d16da254c2ce3d786f5ebd
-
Contract decoded: (https://rinkeby.etherscan.io/bytecode-decompiler?a=0xdf7a49a99732465ad617ca3b6b0eb858afa74647)
More information about this project is available in the project folder: Ethereum Smart Contracts, Tokens and Dapps.
This repository containts an Ethereum DApp that demonstrates a Supply Chain flow between a Seller and Buyer. The user story is similar to any commonly used supply chain process. A Seller can add items to the inventory system stored in the blockchain. A Buyer can purchase such items from the inventory system. Additionally a Seller can mark an item as Shipped, and similarly a Buyer can mark an item as Received.
The coffee beans are harvested by the farmers, are then sold to the distributors, and the distributors then distribute them to the retailers, and finally, the consumer purchases them.
Contract has been deployed on rinkeby test network: 0x61f6e2cca26d016272f56525d20ea6740558265c Transaction Details: 0x1195c69cfe27ebdf4d8aba99603a8d6b808d53677fdbf84202e6fb1772b119cc
More information about this project is available in the project folder: Blockchain Architecture.
FlightSurety is a project for Blockchain course on flight insurance. This project is based on the ethereum blockchain.
Features:
- Passengers can buy flight insurance
- If flight is delayed they are credited 1.5 times the cost of the insurance.
- 2 smart contracts
- 1 interface contract
- Multi-party consesus implementation
- Seperation of concerns as architectual pattern
NOTE : The starter code of this project was modified so it functions with the latest Truffle & Web3 configurations. It follows an updated Solidity Compiler 0.6.5
More information about this project is available in the project folder: Dapp with autonomous smart contracts and oracles.
This project teaches to mint your own tokens that represent your title to the properties. Before minting a token, you need verified ownership of the property. This will be done by using zk-SNARKs to create a verification system to prove ownership without revealing specific information of that property. Zk-SNARKS provides privacy. Once the token is verified it is placed on the Rinkeby blockchain testnet and on blockchain market place OpenSea's testnet.
OpenSea is a decentralized marketplace that is used for selling for crypto assets. On OpenSea, you can buy or sell any of these items through a smart contract, meaning that no central authority ever holds custody of your items.
Verifier Contract | 0xfE3A8F76b0c044ACd8Ff4b85a426FCb0DE8BDAb3 |
---|---|
SolnSquareVerifier Contract | 0x9d55d11E608829Aa25810187Df7fb82e8dDbD1B8 |
tokenID5 - https://rinkeby.etherscan.io/tx/0x199a0374edae5640f69298ccacef0506eb26b3be7545ebe05599eb17149cbf17