Skip to content

Ecolash/Blockchain-as-a-Service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

32 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

CS60118 Cloud Computing Project: BaaS Platform

Blockchain as a Service (BaaS) platform for the CS60118 Cloud Computing course. This project provides a multi-tenant control plane for provisioning and managing Hyperledger Fabric networks through a web frontend, REST API, and orchestration services.

Overview

The platform is designed to reduce the operational complexity of enterprise blockchain deployment. Instead of manually wiring Fabric components, users work through a dashboard and API to create networks, deploy chaincode, track audit events, and monitor platform health.

Core capabilities

  • Multi-tenant onboarding with JWT authentication and RBAC.
  • Fabric network lifecycle management: create, clone, start, stop, and delete.
  • Chaincode deployment, invocation, and ledger queries.
  • Immutable audit logging with export and verification support.
  • Cost estimation and cost history for provisioned networks.
  • Webhook notifications with retry handling.
  • Monitoring with Prometheus and Grafana.
  • Demo mode for learning and local development without a full Cello deployment.

Architecture

flowchart LR
  U[Browser / Frontend] --> A[Node.js API]
  A --> M[(MongoDB)]
  A --> C[Hyperledger Cello]
  C --> F[Hyperledger Fabric Network]
  A --> O[Audit, Cost, Notification Services]
  A --> P[Prometheus]
  P --> G[Grafana]
Loading

Repository Layout

  • api/ - Express backend, models, services, and routes.
  • frontend/ - React + Vite dashboard.
  • chaincode/ - Fabric smart contracts for audit, access control, and asset registry.
  • fabric-network/ - Fabric configuration and deployment scripts.
  • cello/ - Cello setup scripts and templates.
  • monitoring/ - Prometheus and Grafana configuration.
  • scripts/ - Seed, simulation, and export utilities.
  • tests/ - API and chaincode tests.
  • report/ - Project report and supporting documentation.

Prerequisites

  • Docker and Docker Compose v2
  • Node.js 20 LTS or newer
  • Go 1.21+ for chaincode tests
  • Make

Quick Start

From the repository root:

cp .env.example .env
make setup
make build
make start-demo
make seed

Then open:

The demo setup starts the core app stack without requiring a full external Cello installation.

Demo Credentials

After seeding, use one of these accounts:

  • Admin: admin@baas.local / Admin123!
  • Developer: dev@baas.local / Dev123!
  • Viewer: viewer@baas.local / View123!

Useful Commands

make setup          # Install API and frontend dependencies
make build          # Build Docker images
make start          # Start the full stack
make start-demo     # Start the demo-focused stack
make stop           # Stop containers
make logs           # Follow container logs
make seed           # Load demo users and sample data
make test           # Run API and chaincode tests
make simulate       # Run the load simulation script
make export-audit   # Export the audit trail to CSV
make setup-master   # Start the Cello master setup
make setup-worker   # Start the Cello worker setup

Environment

The main runtime settings live in .env. The most important values are:

  • DEMO_MODE=true for local/demo runs.
  • CELLO_API_URL for connecting to a real Cello deployment.
  • MONGO_URI for the metadata database.
  • JWT_SECRET for authentication.
  • PROMETHEUS_PORT and GRAFANA_PORT for monitoring.

See .env.example for the full set of defaults.

Notes on Modes

Demo mode

This is the easiest way to explore the project. Cello behavior is simulated, so you can exercise the frontend and API without provisioning a real Fabric cluster.

Production mode

Set DEMO_MODE=false and provide a reachable Cello endpoint to connect the platform to a real orchestration layer. Use this when you want to run the full Hyperledger Fabric workflow.

Course Deliverables

  • Project report: report/
  • Presentation: Presentation.pdf
  • Demo and infrastructure scripts: scripts/, cello/, and fabric-network/

About

๐—™๐˜‚๐—น๐—น-๐—ฆ๐˜๐—ฎ๐—ฐ๐—ธ ๐—•๐—ฎ๐—ฎ๐—ฆ ๐—ฃ๐—น๐—ฎ๐˜๐—ณ๐—ผ๐—ฟ๐—บ | ๐—›๐˜†๐—ฝ๐—ฒ๐—ฟ๐—น๐—ฒ๐—ฑ๐—ด๐—ฒ๐—ฟ ๐—–๐—ฒ๐—น๐—น๐—ผ & ๐—™๐—ฎ๐—ฏ๐—ฟ๐—ถ๐—ฐ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors