Skip to content

AdamsGeeky/Blockchain

Repository files navigation

NITDABlockchainScholarship(non officially) Study plan

“If You Fail to Plan, You Are Planning to Fail” — Benjamin Franklin.

"Success is no accident. It is hard work, perseverance, learning, studying, sacrifice and most of all, love of what you are doing or learning to do."

Coding

onboarding

programme will start on 8 December 2022, where you will delve deeper into the programme and complete a series of assignments. If you finish among the top 30% of the class, you will be onboarded into the main blockchain programme.

Coding

Core curriculum:

must prove your capabilities in the first 2 weeks by getting a cumulative score that puts you in the 30th percentile in all quizzes and projects in that period in order to progress in the programme. If you don’t meet this requirement, you will no longer be part of the programme after 2 weeks.

Pre-requisites

The First 2 weeks

Bitcoin theory

objective

Chapter 1: Abstract

objective

  • Peer-to-peer cash
  • Digital signatures and trusted third parties
  • Peer to Peer network
  • Time Chain and Proof of Work
  • CPU Power
  • Cooperation in the network
  • Network structure
  • Messaging between nodes

Chapter 2: Introduction

objective

Commerce on the internet has come to rely almost exclusively on financial institutions serving as trusted third parties to process electronic payments. While the system works well enough for most transaction, it still suffers from the inherent weaknesses of te the trust-based model such as:
  • hight transaction cost
  • Transaction par Day Limit
Non reversible transactions completely non-reversible transaction are not possible, since financials instaituion cannot avoid mediating disputes. the cost of mediating increases transactions costs, limiting the minimum practical transaction size and cutting off the possibility fr small casual transactions and there is a broader cost in the loss of ability to make non-reversible payments for non-reversible services
Privacy in commerce with the possibility of reversal, the need for trust spreads. Merchants who be wary of their customers, hassling them for move information than they would otherwise need.

this bring a huge problem for privacy of the good actor within the system, as their identity details often end up being stored in large merchant database with their corresponding payment details

The paradigm of fraud acceptance A certain percentage of fraud is accepted as unavoidable (traditional payment system). there cost and payment uncertainties can be avoided in person by using physical currency, but no mechanism exists to make payments over a communications channel without a trusted party.

bitcoin solve all the Above mention problems

What is needed is an Electronic payment system based on Cryptographic proof instead of trust allowing any two willing parties to transact directly with each other without the need of trusted third party **Bank**

bitcoin achieve this by using digital signature and a simple but fully feature scripting language

by using Bitcoin receive can quickly and simply validate that funds were indeed controlled(that is they own it) by the sending party and that the transaction correctly allocate the amount to their control without additional validation by third parties

Protecting sellers from fraud
Proposed solution
Security and honesty

Chapter 3: Transactions

objective

  • Electronic Coins: is the chain of Digital signature
  • Spending a coin
  • Payee verification
  • Existing solutions
  • First Seen Rule
  • Broadcasting Transactions
  • Achieving Consensus
  • Proof of acceptance

Chapter 4: Timestamp Server )

objective

  • Timestamped Hashes
  • A chain of timestamped hashes
  • Timestamp Server Video

Chapter 5: Proof of Work

objective

  • Hashcash
  • Scanning random space
  • Nonce
  • Immutable Work
  • Chained effort
  • One CPU, one vote
  • The majority decision
  • The honest chain
  • Attacking the longest chain
  • Controlling the block discovery rate

Chapter 6: Network

objective

  • Section read-through
  • Running the Network
  • The longest chain
  • Simultaneous blocks
  • Breaking the tie
  • Missed messages

Chapter 7: Incentive

objective

  • The Coinbase Transaction
  • Coin Distribution
  • Mining analogy
  • Transaction fees
  • The end of inflation
  • Encouraging honesty
  • The attacker’s dilemma
  • Incentive Video

Chapter 8: Reclaiming Disk Space

objective

  • Spent transactions
  • The Merkle Tree
  • Compacting blocks
  • Block Headers

Chapter 9: Simplified Payment Verification

objective

  • Full network nodes○
  • Merkle Branches
  • Transaction acceptance
  • Verification during attack situations
  • Maintaining an attack
  • Invalid Block Relay System
  • Businesses running nodes -

Chapter 10: Combining and Splitting Value

objective

  • Dynamically sized coins
  • Inputs and Outputs
  • A typical example
  • Fan-out

Chapter 11: Privacy

objective

  • Traditional Models
  • Privacy in Bitcoin
  • Public records
  • Stock Exchange Comparison
  • Key Re-use
  • Linking inputs

Chapter 12: Calculations

objective

  • Attacking the chain
  • Things the attacker cannot achieve...
  • The only thing the attacker can achieve...
  • The Binomial Random Walk
  • The Gambler’s Ruin
  • Exponential odds
  • Waiting for confirmation...-
  • Attack via proof of work
  • Vanishing probabilities

Pre-requisites

JavaScript

Objectives:

Identify interactions on web pages created with JavaScript. Articulate, in general terms, the importance of how JavaScript was developed and how that impacts the way

  • JavaScript is written.
  • Identify properly formed semantic HTML.
  • Articulate major concepts in CSS.
  • Identify properly formed CSS syntax.
  • Write simple JavaScript statements in the web browser console.
  • Assign and retrieve values from variables and arrays in JavaScript.

Course Outline

  1. Introduction to JavaScript
  2. JavaScript Variables
  3. JavaScript Arrays
  4. Module Summary

Golang

Course Overview

This course covers the fundamental elements of Go: data types, protocols, formats, and writing code that incorporates RFCs and JSON.

An Introduction of Go - why Go is worth learning

Golang Build simple, secure, scalable systems

  • What is Go? Go, or Golang, is a programming language developed at Google. It has received a lot of acclaim from developers for its speed and straightforward syntax.
    • An open-source programming language supported by Google
    • Easy to learn and great for teams
    • Built-in concurrency and a robust standard library
    • Large ecosystem of partners, communities, and tools
    • Why Go is worth Learning GoLang is a compiled multi-threaded programming language based on open source C and developed internally at Google. It is a single language that allows different processes to run simultaneously, which means simultaneous programming. Extremely fast, easy to maintain, and efficient, GoLang has all the advantages needed for distributed systems because it can handle multiple parts of the blockchain concurrently. The language was developed for high-performance programs running on modern distributed systems and multicore processors. Market participants perceived the launch of GoLang as an attempt to create a replacement for C/C ++. Today, the Hyperledger Fabric blockchain platform uses this programming language. It is often used in NFT marketplace development. Examples of blockchain projects that use GoLang: GoChain, Dero, Loom Network, Ethereum, Hyperledger Fabric. .

Course Outline

Overview

Data Types

Composite Data Types

Protocols and Formats

  • RFCs
  • JSON
  • File Access, ioutil
  • File Access, os
Bitcoin blockchain for 5 weeks
project for 5 weeks

Coding