CryptoChain

CryptoChain är en fullständig implementation av en blockkedja för en egen kryptovaluta med transaktionshantering, validering och nätverkssynkronisering via WebSocket. Systemet inkluderar en transaktionspool, MongoDB-lagring och JWT-autentisering. Frontend är byggd i React/Vite.

Projektbeskrivning

Detta projekt är utvecklat som en slutlig inlämningsuppgift och implementerar en komplett blockkedja med:

Funktioner

Backend

Frontend

Teknisk struktur

Backend

Frontend

Installation och körning

Förutsättningar

Backend-installation

  1. Klona repot och navigera till projektmappen:
    git clone https://github.com/Gl373/CryptoChain
    cd CryptoChain
    
  2. Installera beroenden:
    npm install
    
  3. Konfigurera miljövariabler:
    cp backend/config/.env.example backend/config/.env
    # Uppdatera .env 
    
  4. Starta en nod:
    npm run dev
    

Starta flera noder (exempel):

# Nod 1
PORT=3000 SOCKET_PORT=5001 npm start
# Nod 2
PORT=3001 SOCKET_PORT=5002 NODES=localhost:5001 npm start
# Nod 3
PORT=3002 SOCKET_PORT=5003 NODES=localhost:5001,localhost:5002 npm start

Frontend-installation

  1. Navigera till frontend-mappen:
    cd frontend
    
  2. Installera beroenden:
    npm install
    
  3. Starta utvecklingsservern:
    npm run dev
    

API-dokumentation

Autentisering

POST /api/v1/auth/register
POST /api/v1/auth/login

Transaktioner

POST /api/v1/transactions
GET /api/v1/transactions

Block

GET /api/v1/blocks
POST /api/v1/blocks/mining

Viktigt om transaktionspool och mining

Säkerhet

Testning och TDD

Felsökningstips