Portfolio System

Browser-Based Proof-of-Work Simulation & Validation 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

Project Interface

Simulation Screens

Interface captures show the dashboard, wallet state, and mining workflow across desktop and mobile viewports.

Desktop
Desktop MiniMiner Proof-of-Work dashboard with blockchain status cards and mining action
Desktop Simulation DashboardDashboard view showing chain status, wallet count, pending transactions, difficulty, hash validity, and the next workflow step.
Desktop MiniMiner wallet screen with wallet creation and balance state
Desktop Wallet StateWallet management view with derived balances, pending outgoing amounts, available funds, and system wallet visibility.
Desktop MiniMiner mining workflow with reward wallet and difficulty details
Desktop Mining WorkflowMining screen showing reward-wallet selection, pending transaction context, reward amount, and Proof-of-Work difficulty.
Mobile
Mobile MiniMiner Proof-of-Work dashboard with chain status cards
Mobile Simulation DashboardResponsive dashboard view showing the same chain and mining signals in a compact mobile layout.
Mobile MiniMiner wallet screen with wallet creation and balance state
Mobile Wallet StateMobile wallet workflow for creating simulated wallets and reviewing chain-derived balances.
Mobile MiniMiner mining workflow with reward wallet and difficulty details
Mobile Mining WorkflowMobile mining view showing the reward-wallet requirement, pending transaction count, reward value, and difficulty.

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.

Ownership

Role And Engineering Ownership

The lab is presented as a technical system because the value is in the architecture, validation model, state boundaries, and browser-safe execution behavior.

Designed the browser simulation architecture around deterministic state, bounded mining work, validation rules, persistence, and import/export workflows.

Separated blockchain behavior from React views through dedicated modules for blocks, transactions, wallets, mining, validation, and simulation data.

Implemented the JavaScript/WebAssembly fallback direction so the simulator remains portable while still showing compute-bound execution concerns.

Evidence

Confirmed Evidence Signals

The lab is public-facing and documented through concrete browser workflows rather than source-code disclosure.

Public browser lab with wallet, transaction, mining, validation, benchmark, persistence, import/export, and tamper-detection workflows

Screenshots available for dashboard, wallet, and mining workflows across desktop and mobile

Architecture documented around React, Vite, Zustand, crypto-js, Recharts, and optional C++ WebAssembly execution

Constraints

Execution Constraints

The simulator keeps the learning value of Proof-of-Work while respecting browser responsiveness and safety boundaries.

Reflection

Engineering Lessons

The project turns Proof-of-Work concepts into practical engineering lessons about state, validation, and compute boundaries.