ICN Deployment Active
Date: December 12, 2025 Status: Historical Snapshot (not current operational status)
This document captures a point-in-time environment from December 12, 2025. Runtime defaults, ports, and service health may have changed since then. For current status, use live checks and see
docs/ci/CI_CURRENT_STATUS.md.
Deployment Summary
The ICN infrastructure is deployed and running successfully.
Active Services
| Service | Status | Port | URL |
|---|---|---|---|
| ICN Daemon | ✅ Healthy | 8080 | http://localhost:8080 |
| Gateway API | ✅ Running | 8080 | http://localhost:8080/v1/health |
| Web UI | ✅ Running | 3000 | http://localhost:3000 |
| QUIC P2P | ✅ Running | 7777 | - |
| Metrics | ✅ Running | 9090 | http://localhost:9090/metrics |
| gRPC API | ✅ Running | 5601 | - |
Test Network Nodes
Three additional ICN nodes are running for network testing:
- icn-node1: http://localhost:8081 (Gateway)
- icn-node2: http://localhost:8082 (Gateway)
- icn-node3: http://localhost:8083 (Gateway)
Mobile App Integration
Current Configuration
The mobile app SDK is configured and ready to connect:
// sdk/react-native/examples/CoopWallet/src/client.ts
const client = createMobileClient({
baseUrl: 'http://localhost:8080', // Change to server IP for device testing
wallet,
storage,
});
Mobile Features Implemented
✅ Phase 1: Core Integration
- Identity management with DID
- Payment creation and listing
- Member profiles
- WebSocket real-time events
- Authentication with JWT tokens
✅ Phase 2: Push Notifications
- Background message listener
- Notification channel setup
- Local notification display
- Event-driven notification triggers
- Deep linking to payment details
✅ Phase 3: Trust Graph
- Trust attestation API endpoints
- ICN context provider for global state
- Trust visualization components (ready)
- Trust score computation integration
Features Ready But Not Yet Wired
- Event-driven Notifications - WebSocket listeners need to trigger notifications
- Offline Mode Queue - Pending payment queue with sync on reconnect
- Trust Attestation UI - Form component created but not integrated
- Background Sync - Service for periodic data synchronization
Configuration Files
ICN Daemon Config
Location: deploy/config/icn.toml
Key settings:
- Gateway: Enabled on 0.0.0.0:8080
- Network: mDNS discovery enabled, min_trust_threshold = 0.0
- Bootstrap peers: Empty array (local deployment)
- Rate limiting: Enabled with tiered limits
Docker Compose
Location: deploy/docker-compose.yml
Services:
icnd: ICN daemon with gatewayweb-ui: Nginx serving pilot UIprometheus: Metrics collection (port conflict, not started)grafana: Dashboards (not started)
API Endpoints Available
Gateway REST API
Base URL: http://localhost:8080/v1
Health & Status:
GET /health- Health checkGET /status- Daemon status
Authentication:
POST /auth/challenge- Get auth challengePOST /auth/verify- Verify signature and get JWT
Identity:
GET /identity- Get local DIDPOST /identity/init- Initialize identity
Payments:
POST /payments- Create paymentGET /payments- List paymentsGET /payments/:id- Get payment details
Members:
GET /members- List membersGET /members/:did- Get member profile
Trust:
POST /trust/attest- Create trust attestationGET /trust/:did- Get trust scoreGET /trust/:did/edges- Get trust edges
WebSocket:
ws://localhost:8080/v1/ws- Real-time event stream
WebSocket Events
Connected clients receive:
payment.created- New payment createdpayment.confirmed- Payment confirmed by recipienttrust.attested- New trust attestationmember.updated- Member profile changed
Testing the Deployment
Backend Health Check
curl http://localhost:8080/v1/health
# Expected: {"status":"ok","version":"0.1.0"}
WebSocket Connection Test
# Install websocat: cargo install websocat
websocat ws://localhost:8080/v1/ws
Mobile App Test (Development)
Start Metro bundler:
cd sdk/react-native/examples/CoopWallet npx react-native startRun on iOS:
npx react-native run-iosRun on Android:
npx react-native run-android
For physical device testing, update baseUrl to use your server's IP address instead of localhost.
Next Steps
Immediate (Wire Up Existing Features)
Connect WebSocket Events to Notifications
- Wire
payment.created→ show notification - Wire
payment.confirmed→ show notification - Wire
trust.attested→ show notification
- Wire
Integrate Trust Attestation UI
- Add trust form to member profile screen
- Connect to trust API endpoints
- Show trust scores in member list
Add Offline Mode
- Implement pending payment queue
- Add sync indicator to UI
- Handle reconnection logic
Production Readiness
Security:
- Generate production JWT secret
- Enable HTTPS with SSL certificate
- Configure firewall rules
Monitoring:
- Fix Prometheus port conflicts
- Start Grafana dashboards
- Set up alerting
Mobile Deployment:
- Configure production API endpoint
- Set up push notification credentials (FCM/APNs)
- Build release APK/IPA
Recent Changes
Today's Session (2025-12-12)
- ✅ Added trust graph integration to mobile SDK
- ✅ Created ICN context provider for global state
- ✅ Implemented WebSocket event handling hooks
- ✅ Fixed gateway test failures (100% passing)
- ✅ Deployed ICN daemon successfully
- ✅ Fixed configuration issues (bootstrap_peers, health_port)
Components Created
Mobile SDK:
sdk/react-native/src/mobile-client.ts- Enhanced client with trust methodssdk/react-native/src/hooks.ts- React hooks for ICN statesdk/react-native/src/context.tsx- ICN context provider
Documentation:
WEBSOCKET_EVENTS_COMPLETE.md- WebSocket event documentationMOBILE_TRUST_INTEGRATION.md- Trust integration guide
Known Issues
- Prometheus Port Conflict: Ports 9091-9093 already in use by test network nodes
- Web UI 403: Nginx configuration may need adjustment
- Grafana Not Started: Depends on Prometheus
In the recorded snapshot environment, none of these issues blocked core functionality; the ICN daemon and gateway API remained operational.
Support
- Logs:
docker logs -f icn-daemon - Config:
deploy/config/icn.toml - Docs:
docs/directory - Tests:
cd icn && cargo test
Deployment Status: OPERATIONAL ✅
The core ICN infrastructure is live and ready for mobile app integration and testing.