Introduction and Getting Started
  • Why this course? (Course Promo)
  • The Blockchain and Cryptocurrencies - What, Why, and How
  • Code the Blockchain in 10 minutes | Lightning Version
  • [Required] Course Repository, Software Installation, Tips and Tricks
  • [Optional] Mega JavaScript and Node.js Overview
Blocks | The Blockchain Backend
  • Set Up the Blockchain Application
  • Create the Block Class
  • Create the Block Class | TDD Style
  • The Genesis Block | Tests
  • The Genesis Block | Code
  • Mine Blocks
  • Crypto Hash and SHA-256
  • Hash in MineBlock
  • Recap: Blocks | The Blockchain Backend
The Chain | the Blockchain Backend
  • The Blockchain Class
  • Chain Validation and Replacement Overview | Free Preview
  • Chain Validation | Tests
  • Chain Validation | Code
  • Chain Replacement
  • Stub Console Output in Tests
  • Recap: The Chain and Proof of Work | the Blockchain Backend
Proof of Work | The Blockchain Backend
  • Proof of Work and the 51% Attack
  • Difficulty and the Nonce Value | Tests
  • Difficulty and the Nonce Value | Code
  • Dynamic Difficulty and the Mine Rate
  • Adjust the Difficulty in MineBlock
  • Improve the Proof of Work System | Average Work Script
  • Improve the Proof of Work System | Binary hashes
  • Prevent Difficulty Jumps
  • Recap: Proof of Work | the Blockchain Backend
API and Network | The Blockchain Backend
  • Blockchain API and Network Overview
  • Setup Express API
  • Post Request to Mine a Block
  • Real-Time Messaging Network through Pub/Sub | Overview
  • Pub/Sub Options: Redis or PubNub
  • Install Redis
  • Redis Publisher/Subscriber Class
  • Install PubNub
  • PubNub: a Non-Redis Pub/Sub Alternative
  • Broadcast Chain
  • Start Peers and Broadcast Chain on API Mine
  • Sync Chain on Connect
  • Avoid Redundant Interactions
  • Recap: API and Network | the Blockchain Backend
Wallets, Keys, and Transactions | The Cryptocurrency Backend
  • Wallets, Keys, and Transactions Overview
  • Code Organization
  • Create and Test Wallet Class
  • Key Pair and Public Key Addresses
  • Sign Data and Verifying Signatures
  • Transaction Objects and the OutputMap | Tests
  • Transaction Objects and the OutputMap | Code
  • Transaction Inputs
  • Cohesive Utility
  • Validate Transaction
  • Wallet Create Transaction
  • Update Transactions with Multiple Outputs
  • Improve the CryptoHash
  • Transaction Update Edge Cases
  • Recap: Wallets, Keys, and Transactions | The Cryptocurrency Backend
Transaction Pool | The Blockchain and Cryptocurrency Backend
  • Transaction Pool Overview
  • Create the Transaction Pool and Set Transactions
  • API Transactions and Main Transaction Pool
  • Handle Invalid Transactions
  • Transaction Updates in the API
  • Get Transaction Pool Map
  • Broadcast Transaction
  • Pubnub Set Transaction Edge Case
  • Sync Transaction Pool Map on Connect
  • Recap: Transaction Pool | the Blockchain Backend
Mine Transactions | The Blockchain and Cryptocurrency Backend
  • Mine Transactions Overview
  • Transaction Miner Class
  • Grab Valid Transactions
  • Reward Transaction
  • Clear Blockchain Transactions
  • Mine Transactions Endpoint
  • Clear Recorded Transactions on Successful Replace
  • Blockchain Balance Overview
  • Calculate the Wallet Balance
  • Calculate the Balance before each Transaction
  • Wallet Balance From Recent Transaction
  • Wallet-Info Request
  • Validate Transaction Blocks Overview
  • Valid Transaction Data | Tests
  • Valid Transaction Data | Code
  • Validate Input Balances
  • Prevent Duplicate Transactions in Block
  • Validate Transaction Chain
  • Recap: Mine Transactions | The Blockchain and Cryptocurrency Backend
The Blockchain and Cryptocurrency Backend | Review
  • The Blockchain and Cryptocurrency Backend | Review
The Frontend Blockchain
  • The Frontend Blockchain Overview