Skip to content

NITDA 12-weeks Blockchain Scholarship Programme

Notifications You must be signed in to change notification settings

DigitalAkhee/NITDABlockchain

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 

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
  • Abstract Assessment No.2
  • Cooperation in the network
  • Network structure
  • Messaging between nodes

Chapter 2: Introduction

objective

  • Commerce on the internet
  • Non reversible transactions
  • Privacy in commerce
  • The paradigm of fraud acceptance
  • What is needed...
  • Protecting sellers from fraud
  • Proposed solution
  • Security and honesty

Chapter 3: Transactions

objective

  • Electronic Coins
  • 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

JavaScript

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

Golang Build simple, secure, scalable systems

Syllabus

  • An Introduction of Go - why Go is worth learning.

    • 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. .
  • The Go Toolchain - how to compile and run Go programs.

    • Setting Up Go Locally Installing Go and Running Go Programs Developing Go locally on your own environment is a big step towards creating your very own Go projects and exercising your imagination! This guide will assume some knowledge of the command line and use of a code editor (we recommend VSCode), so brush up if you need too! First, downland Go to your computer by going to Golang’s download page and select your operating system under the Featured downloads section.
  • Become Familiar With Go Code

  • Introduction of Source Code Elements

  • Keywords and Identifiers

  • Basic Types and Their Value

  • Constants and Variables - also introduces untyped values and type deductions.

  • Common Operators - also introduces more type deduction rules.

  • Function Declarations and Calls

  • Code Packages and Package Imports

  • Expressions, Statements and Simple Statements

  • Basic Control Flows

  • Goroutines, Deferred Function Calls

Go Type System

  • Go Type System Overview - a must read to master Go programming.
  • Pointers
  • Structs
  • Value Parts - to gain a deeper understanding into Go values.
  • Arrays, Slices and Maps - first-class citizen container types.
  • Strings
  • Functions - function types and values, including variadic functions.
  • Channels - the Go way to do concurrency synchronizations.
  • Methods
  • Interfaces - value boxes used to do reflection and polymorphism.
  • Type Embedding - type extension in the Go way.
  • Type-Unsafe Pointers
  • Generics - use and read composite types
  • Reflections - the reflect standard package.
  • Some Special Topics
  • Line Break Rules
  • More About Deferred Function Calls
  • Some Panic/Recover Use Cases
  • Explain Panic/Recover Mechanism in Detail - also explains exiting phases of function calls.
  • Code Blocks and Identifier Scopes
  • Expression Evaluation Orders
  • Value Copy Costs in Go
  • Bounds Check Elimination

Concurrent Programming

  • Concurrency Synchronization Overview
  • Channel Use Cases
  • How to Gracefully Close Channels
  • Other Concurrency Synchronization Techniques - the sync standard package.
  • Atomic Operations - the sync/atomic standard package.
  • Memory Order Guarantees in Go
  • Common Concurrent Programming Mistakes

Memory Related

  • Memory Blocks
  • Memory Layouts
  • Memory Leaking Scenarios
Bitcoin blockchain for 5 weeks
project for 5 weeks

Coding

About

NITDA 12-weeks Blockchain Scholarship Programme

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages