Skip to content

Cyfrin/blockchain-basics-demo-app

Repository files navigation

Blockchain Basics Demo App

An interactive learning platform designed to complement the Blockchain Basics Course on Cyfrin Updraft. This application provides hands-on demonstrations of fundamental blockchain concepts, cryptography, and consensus mechanisms.

About This Project

This demo application is built to help students understand blockchain technology through interactive visualizations and practical examples. It covers essential concepts including hashing, digital signatures, proof-of-work, proof-of-stake, and decentralized finance (DeFi) operations.

Applications

Why Blockchain

Demonstrates real-world problems with traditional financial systems through interactive challenges. Users experience scenarios such as:

  • Cross-border payments and banking restrictions
  • Hyperinflation and currency instability
  • Banking hours limitations
  • Government withdrawal limits
  • Censorship and surveillance issues

This app helps users understand why decentralized systems matter by showing the limitations of centralized financial infrastructure.

Crypto Demo

Interactive demonstrations of cryptocurrency wallet operations and DeFi protocols:

  • Wallet management and transaction signing
  • Decentralized exchange (DEX) token swaps
  • DeFi staking and rewards claiming
  • Understanding gas fees and transaction confirmation

ECDSA Signature Demo

Step-by-step exploration of Elliptic Curve Digital Signature Algorithm (ECDSA):

  • Seed phrase generation (BIP39)
  • Hierarchical deterministic wallet key derivation (BIP44)
  • Public key derivation from private keys
  • Ethereum address generation
  • Message signing and signature verification
  • Understanding cryptographic proof of ownership

Inspired by the BLS Labs Demo.

Ethereum Proof of Stake Demo

Comprehensive simulation of Ethereum's proof-of-stake consensus mechanism:

  • Hash functions and data integrity
  • Block creation and signing
  • Blockchain validation and immutability
  • Validator selection and staking
  • Consensus voting and finalization
  • Attack scenarios and security mechanisms

Inspired by Anders Brownworth's Blockchain Demo.

Getting Started

Prerequisites

  • Node.js (version 16 or higher)
  • npm or yarn package manager

Installation

Clone the repository:

git clone https://github.com/Cyfrin/blockchain-basics-demo-app.git
cd blockchain-basics-demo-app

Install dependencies:

npm install

Development

Run the development server:

npm run dev

The application will be available at http://localhost:5173

Building for Production

Create an optimized production build:

npm run build

Preview the production build:

npm run preview

Technology Stack

  • React 18 with TypeScript
  • Vite for fast development and building
  • Tailwind CSS for styling
  • Ethers.js for Ethereum utilities
  • Lucide React for icons

Course Integration

This application is designed to be used alongside the Blockchain Basics Course on Cyfrin Updraft. Each demo corresponds to specific course modules and reinforces the concepts taught in the videos.

We recommend using these demos as you progress through the course to gain practical, hands-on experience with the theoretical concepts.

Contributing

We welcome contributions from the community! Whether you're fixing bugs, improving documentation, or adding new features, your help is appreciated.

How to Contribute

  1. Fork the repository
  2. Create a new branch for your feature or bug fix
  3. Make your changes with clear, descriptive commit messages
  4. Test your changes thoroughly
  5. Submit a pull request with a detailed description of your changes

License

This project is open source and available under the MIT License.

Acknowledgments

Built with support from the Cyfrin team and the blockchain education community. Special thanks to all contributors who help make blockchain education accessible and interactive.

Resources

Support

For course-related questions, visit Cyfrin Updraft. For application issues, please open an issue on GitHub.

Releases

No releases published

Packages

 
 
 

Contributors

Languages