An educational visualization tool that demonstrates how Proof of Work (PoW) mining works in blockchain technology. Watch in real-time as the mining algorithm searches for valid hashes!
| Feature | Description |
|---|---|
| 🌓 Theme Toggle | Switch between dark and light mode |
| 🌐 Bilingual | Indonesian 🇮🇩 and English 🇺🇸 support |
| 📊 Live Mining | Real-time nonce and hash updates |
| 🎨 Animations | Pulse, glow, and bounce effects during mining |
| 📈 Statistics | Attempts, time, and hash rate display |
| 🧱 Block History | View all successfully mined blocks |
| 📚 Education | Learn why PoW is slow and energy-intensive |
- Python 3.8+ with pip
- Node.js 18+ with npm
git clone https://github.com/reygasta/pow-visualizer.git
cd pow-visualizercd backend
pip install -r requirements.txt
python app.pyThe API server will run at http://localhost:5000
cd frontend
npm install
npm run devThe web app will be available at http://localhost:3000
pow-visualizer/
├── backend/
│ ├── app.py # Flask REST API
│ ├── blockchain.py # Block & hash logic
│ ├── mining.py # Mining session manager
│ └── requirements.txt # Python dependencies
├── frontend/
│ ├── src/
│ │ ├── components/ # React UI components
│ │ ├── contexts/ # Theme & Language contexts
│ │ ├── App.jsx # Main application
│ │ └── index.css # Tailwind styles
│ ├── package.json
│ ├── tailwind.config.js
│ └── vite.config.js
├── LICENSE
└── README.md
Frontend:
- React 18 with Vite
- Tailwind CSS
- Context API for state management
Backend:
- Python Flask
- SHA-256 hashing
- Threading for background mining
- Why mining is slow — brute force hash computation
- Why difficulty matters — exponential growth in attempts
- Why mining uses energy — continuous CPU computation
- Why mining is probabilistic — no shortcuts, just luck
This is a simulation for educational purposes only.
- ❌ Does NOT mine real cryptocurrency
- ❌ Does NOT connect to any blockchain network
- ✅ DOES demonstrate how mining algorithms work
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Made with ❤️ for blockchain education
