Skip to content

Latest commit

 

History

History
67 lines (45 loc) · 1.89 KB

File metadata and controls

67 lines (45 loc) · 1.89 KB

⛓️ MiniChain – A Conceptual Blockchain Implementation in Go

"Exploring core blockchain principles through practical engineering."

MiniChain is not a production-grade blockchain — it's a self-contained Go project built to simulate and explore key blockchain concepts, such as:

  • Block mining
  • Transaction pooling
  • Peer-to-peer communication
  • Persistent chain state
  • Simple consensus and request handling

It serves as a learning platform to understand how distributed systems and blockchains work under the hood.


🧠 Why MiniChain?

This project demonstrates real-world skills in:

  • Go concurrency (e.g., mining with goroutines)
  • Distributed system architecture
  • Modular Go application structure
  • Custom peer discovery
  • Lightweight transaction mempool
  • Simple data persistence and recovery

Think of it as a sandbox where you can learn and experiment with the mechanics of a blockchain — without the complexity of production environments like Ethereum or Bitcoin.


🧱 Project Structure

cmd/
└── node/               → CLI entry point to start a node

internal/
├── blockchain/         → Chain management & block storage
├── mempool/            → In-memory transaction queue
├── mining/             → Simulated block mining (PoW)
├── peers/              → P2P logic and peer discovery

⚙️ Build & Run

MiniChain includes a Makefile with cross-platform builds for Linux, macOS, and Windows.

make win-build
release\node.exe

make lnx-build
./release/node

make mac-build
./release/node

🚀 Use Cases

  • 🧪 Educational tool to understand blockchain architecture

  • 🔁 Build & run local nodes for testing simple P2P communication

  • ⚒️ Extend with consensus, cryptography, or REST APIs

  • 🧩 Serve as a base for distributed systems experimentation