Portfolio System

MiniMiner PoW Lab

A browser-based Proof-of-Work blockchain lab that simulates wallets, transactions, pending pools, blocks, mining rewards, validation, tamper detection, benchmarks, persistence, and a JavaScript/WASM mining engine fallback.

Simulation Scope

Proof-of-Work Concepts In The Browser

MiniMiner simulates Proof-of-Work mining for education and does not mine real cryptocurrency.

Wallets
Transactions
Mining Rewards
Validation
Tamper Detection
Benchmarks
Persistence
WASM Fallback

Build

Technical Stack

The simulator keeps blockchain behavior, UI state, mining work, validation, persistence, and optional WebAssembly acceleration separated into clear modules.

Stack

React, Vite, Zustand, Tailwind CSS, Recharts, crypto-js, C++ WebAssembly

  • block.js
  • blockchain.js
  • transaction.js
  • wallet.js
  • miner.js
  • validation.js
  • simulation.js
  • useMinerStore.js

Engineering

What The Project Shows

MiniMiner is designed as a teaching lab and a portfolio signal for frontend architecture, deterministic state, validation rules, and browser-safe compute.

Wallet creation with derived balances from confirmed blockchain transactions

Validated pending transactions with available-balance checks and SYSTEM wallet restrictions

Responsive Proof-of-Work mining with progress, cancellation, rewards, difficulty, and active engine reporting

Explorer and validation flows that expose hashes, nonces, previous hashes, mining stats, and tamper detection

Benchmark runs across difficulty levels with table and chart output

localStorage persistence with JSON export, import, and reset workflows

Optional C++ WebAssembly miner with automatic JavaScript fallback

Architecture

Design Decisions

The app is intentionally local, deterministic, and inspectable so users can understand the full lifecycle from pending transactions to mined blocks.

01

Core blockchain logic is separated from React pages through dedicated block, transaction, wallet, miner, validation, and simulation modules

Core blockchain logic is separated from React pages through dedicated block, transaction, wallet, miner, validation, and simulation modules.

02

Zustand coordinates UI actions, persistence, mining jobs, settings, import/export, and derived chain state

Zustand coordinates UI actions, persistence, mining jobs, settings, import/export, and derived chain state.

03

Mining runs in bounded batches and yields back to the browser so the UI remains usable during Proof-of-Work

Mining runs in bounded batches and yields back to the browser so the UI remains usable during Proof-of-Work.

04

Validation recomputes hashes and balances from chain data instead of trusting stored wallet balances

Validation recomputes hashes and balances from chain data instead of trusting stored wallet balances.

Usage Flow

How The Lab Is Used

The workflow shows mining rewards, confirmed transactions, validation, and tamper detection without touching real cryptocurrency networks.