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."
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.
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
- [Introduction](https://adamsgeeky.github.io/Blockchain/docs/category/bitcoin-theory)
- [How Bitcoin Works](https://adamsgeeky.github.io/Blockchain/docs/Recources/btheory/intro)
# objective
# Chapter 1: Abstract
## objective
- [x] Peer-to-peer cash
- [x] Digital signatures and trusted third parties
- [x] Peer to Peer network
- [x] Time Chain and Proof of Work
- [x] CPU Power
- [x] Cooperation in the network
- [x] Network structure
- [x] 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
- [x] **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
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
- Introduction to JavaScript
- JavaScript Variables
- JavaScript Arrays
- 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**
- [x] **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
- [x] 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