- 🔗 IoB Platform Integration - Receives logs and fetches building data from main IoB platform
- 🏗️ Automated Tokenization - Deploy ICRC2 tokens for buildings from IoB data
- 🗄️ Tokenized Building Registry - Separate registry for blockchain-based building tokens
- 🔐 Dual mTLS Authentication - Secure communication with IoB platform + service UI access
- 🔗 ICP Blockchain - Immutable storage on Internet Computer Protocol
- 🔒 Cryptographic Integrity - keccak256 hashing for all operations
- 🚀 Production Ready - nginx + automatic certificate management
- 📡 Comprehensive APIs - REST endpoints for tokenization and audit operations
- 🖥️ Management Interface - Web UI for service administration (in development)specialized blockchain service for the Internet of Buildings (IoB) ecosystem that provides secure audit logging and building tokenization on the Internet Computer Protocol (ICP). This service works alongside the main IoB platform to offer immutable audit trails and ICRC2 token deployment for building assets.
⚠️ Important: This is a separate service that integrates with the main IoB platform, not the main IoB platform itself. It handles blockchain operations and audit logging for building tokenization.
This service provides blockchain capabilities for the IoB ecosystem:
- Audit Log Receiver - Receives building operation logs from the main IoB platform
- Building Data Fetching - Uses mTLS to securely fetch original building data from IoB platform
- Tokenization Bridge - Converts IoB building data into blockchain tokens
- ICRC2 Deployment - Automated ledger canister creation for tokenized buildings
- Registry Management - Maintains registry of tokenized buildings
- Token Operations - Minting, transfers, and balance management on ICP
- Chain Storage - All building operations logged immutably on ICP canisters
- Cryptographic Integrity - keccak256 hashing for tamper-proof verification
- Cross-Platform Logging - Receives and stores logs from main IoB platform operations
- mTLS for IoB Integration - Secure communication with main IoB platform
- mTLS for Service UI - Client certificate authentication for this service's web interface
- ICP Identity - Blockchain identity management for on-chain operations
- REST API - Comprehensive backend services
- Web Interface - Modern UI for building and token management (planned)
- Production Ready - Enterprise-grade deployment with nginx
- REST API - Blockchain operations and audit logging endpoints
- Web Interface - Management UI for tokenized buildings and logs (with mTLS auth)
- IoB Integration - Secure communication with main IoB platform
iob-chain-logger/
├── api/ # Node.js REST API server
│ ├── src/
│ │ ├── controllers/ # API route handlers
│ │ ├── routes/ # Express route definitions
│ │ ├── middleware/ # Authentication & validation
│ │ ├── canister/ # ICP canister clients
│ │ ├── deployer/ # ICRC2 ledger deployment
│ │ └── server.js # Main application entry
│ ├── certs/ # mTLS certificates
│ └── package.json # API dependencies
├── ui/ # Web interface (TODO:)
│ └── .gitkeep # Future: Next.js + TailwindCSS
├── log-canister/ # Audit logging canister (Azle)
│ ├── src/ # TypeScript canister code
│ └── dfx-declarations/ # Generated bindings
├── registry-canister/ # Building registry canister (Azle)
│ ├── src/ # TypeScript canister code
│ └── dfx-declarations/ # Generated bindings
├── ledger-canister/ # ICRC2 token templates
│ ├── ledger.wasm.gz # Compiled ledger canister
│ └── ledger.did # Candid interface
├── docs/ # Documentation
│ ├── SETUP.md # Deployment & configuration
│ ├── DEVELOPMENT.md # Development guide
│ └── SETUP-NGINX.md # Production nginx setup
└── scripts/ # Utility scripts
└── generate-test-certs.sh
POST /api/buildings
- Tokenize a building from main IoB platform dataGET /api/buildings
- List all tokenized buildings in this serviceGET /api/buildings/:uuid
- Get tokenized building detailsGET /api/buildings/user/:principal
- Get tokenized buildings by owner
POST /api/buildings/:uuid/mint
- Mint additional tokens for a buildingPOST /api/buildings/:uuid/transfer
- Transfer building tokensGET /api/buildings/:uuid/balance
- Get token balance for a building
POST /api/logs
- Register audit log from main IoB platformPOST /api/logs/verify
- Verify an existing log entryGET /api/logs/uuid/:uuid
- Get logs by UUIDGET /api/logs/action/:action
- Get logs by action type
GET /api/system/health
- Service health checkGET /api/certificates/info
- mTLS certificate informationGET /api/certificates/debug
- Debug certificate informationGET /api-docs
- Interactive API documentation
Note: This service maintains its own registry of tokenized buildings only. Original building data remains in the main IoB platform and is fetched via secure mTLS when needed for tokenization.
Each log entry generates a keccak256 hash from:
hash = keccak256(uuid + action + userFingerprint)
- Complete Setup Guide - Unified installation, development, and deployment guide
- API Documentation - Complete REST API reference with endpoints and examples
- nginx Configuration - Production deployment with mTLS support
- Node.js + Express - REST API server
- Internet Computer Protocol (ICP) - Blockchain storage
- Azle (TypeScript) - Canister development framework
- mTLS Authentication - Client certificate security
- ICRC2 Standard - Fungible token specification
- ESLint + Prettier - Code quality & formatting
- Swagger/OpenAPI - API documentation
- Docker - Containerization support
- Nginx - Production reverse proxy
- Next.js + TypeScript - React framework
- TailwindCSS + shadcn/ui - Component library
- Dual Authentication - mTLS + ICP Identity
MIT License - see LICENSE file for details.
For setup issues, see SETUP.md.