- π 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.