https://github.com/narsibhati-dev/coincast
CoinCast is a decentralized network where miners collaborate to create, verify, and broadcast blocks in a secure, real-time environment. The platform allows users to create wallets, sign transactions, and interact with the blockchain via an intuitive frontend. Built with Node.js and React, CoinCast brings blockchain innovation to life.
https://github.com/narsibhati-dev/coincast
Last synced: 2 months ago
JSON representation
CoinCast is a decentralized network where miners collaborate to create, verify, and broadcast blocks in a secure, real-time environment. The platform allows users to create wallets, sign transactions, and interact with the blockchain via an intuitive frontend. Built with Node.js and React, CoinCast brings blockchain innovation to life.
- Host: GitHub
- URL: https://github.com/narsibhati-dev/coincast
- Owner: NarsiBhati-Dev
- Created: 2024-08-18T17:01:01.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-08-22T04:42:03.000Z (10 months ago)
- Last Synced: 2025-01-15T20:41:31.156Z (5 months ago)
- Language: JavaScript
- Size: 14.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🌐 **CoinCast**
🚀 **A Simple Bitcoin-like Blockchain Network with Real-Time Connectivity**
_CoinCast is a decentralized network where miners collaborate to create, verify, and broadcast blocks in a secure, real-time environment. The platform allows users to create wallets, sign transactions, and interact with the blockchain via an intuitive frontend. Built with Node.js and React, CoinCast brings blockchain innovation to life._## 📜 **Table of Contents**
1. [Introduction](#-introduction)
2. [Features](#-features)
3. [Architecture](#-architecture)
4. [Tech Stack](#-tech-stack)
5. [Getting Started](#-getting-started)
6. [Usage](#-usage)## 🎉 **Introduction**
Welcome to **CoinCast**, a lightweight blockchain implementation designed to simulate the core functionalities of Bitcoin. Whether you're a developer or a blockchain enthusiast, CoinCast provides a flexible and educational platform to explore:
- 🛠️ **Miners**: Connect and exchange messages via a central WebSocket server.
- 💼 **Wallets**: Generate and manage Bitcoin-like wallets.
- 🔐 **Transactions**: Create, sign, and broadcast transactions.
- 🔗 **Blockchain**: Verify, validate, and propagate blocks across the network.## ✨ **Features**
- 🔄 **Central Server**: A WebSocket-based server that connects all miners for seamless message exchange.
- 🛠️ **Miner Server**: Build blocks, perform proof-of-work, and broadcast them to the network.
- 📝 **Blockchain Verification**: Code that verifies signatures, balances, and rejects erroneous blocks.
- ⚙️ **Automatic Blockchain Sync**: Miners catch up to the blockchain on startup, ensuring consistent network state.
- 🖥️ **Frontend Interface**: User-friendly React app to create wallets, sign transactions, and submit them to the network.## 🏗️ **Architecture**
1. **Central WebSocket Server**:
- Manages real-time communication between all connected miners.
- Distributes blocks and transactions across the network.2. **Miner Servers**:
- Perform proof-of-work, create blocks, and broadcast them via the central server.
- Use verification mechanisms to maintain blockchain integrity.3. **Frontend Application**:
- React-based UI to interact with the blockchain.
- Create wallets, sign transactions, and submit them to miners.## 🛠️ **Tech Stack**
- **Backend**: Node.js (WebSocket, Express, RPC)
- **Frontend**: React.js with Tailwind CSS
- **Database**: In-memory storage for balance tracking (optional: upgrade to a persistent DB)
- **Communication**: WebSocket, HTTP (RPC)
- **Blockchain**: Custom implementation (UTXO-based for future improvements)## 🚀 **Getting Started**
### Prerequisites
Ensure you have the following installed:
- Node.js (v14 or later)
- npm or yarn package manager
- Git### Installation
1. **Clone the repository**:
```bash
git clone https://github.com/your-username/CoinCast.git
cd CoinCast
```2. **Install dependencies**:
```bash
npm install
```3. **Run the servers**:
- **Central WebSocket Server**:
```bash
node centralServer.js
```
- **Miner Server**:
```bash
node minerServer.js
```
- **Frontend**:
```bash
cd frontend
npm run dev
```4. **Interact with the network**:
Access the frontend at `http://localhost:3000` and start interacting with the blockchain!## 💡 **Usage**
1. **Creating a Wallet**:
Use the frontend to generate a wallet with a public/private key pair.2. **Signing Transactions**:
Sign transactions using your wallet and send them to a miner for processing.3. **Mining**:
Run a miner server to participate in block creation and verification.4. **Blockchain State**:
Query the current blockchain state via the RPC server.
---### Happy Mining! ⛏️✨