Bootcamp-AI / blockchain_solution

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Blockchain Development Nanodegree

Nanodegree Projects

Github Repo Structure

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.


Chapter 1: Blockchain Fundamentals

The Basics of Blockchain

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:

Assignment: Create Your Own Private 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.


Chapter 2: Ethereum Smart Contracts, Tokens and Dapps

Build CryptoStar Dapp on Ethereum

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.

Sample Transaction of Star & Token Info

More information about this project is available in the project folder: Ethereum Smart Contracts, Tokens and Dapps.


Chapter 3: Blockchain Architecture

Coffee Supply Chain Dapp

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 Address & Transaction Details

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.


Chapter 4: Dapps with autonomous smart contracts

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.


Chapter 5: Capstone Project: Real Estate Dapp

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.

Smart contract & transaction details

Verifier Contract 0xfE3A8F76b0c044ACd8Ff4b85a426FCb0DE8BDAb3
SolnSquareVerifier Contract 0x9d55d11E608829Aa25810187Df7fb82e8dDbD1B8

tokenID5 - https://rinkeby.etherscan.io/tx/0x199a0374edae5640f69298ccacef0506eb26b3be7545ebe05599eb17149cbf17

About


Languages

Language:JavaScript 69.4%Language:Solidity 28.0%Language:HTML 2.1%Language:CSS 0.4%