ICN Beta Testing Guide
Status: Internal Testing Phase Environment: K3s Staging Cluster Updated: 2025-12-12
Quick Access
| Service | URL | Notes |
|---|---|---|
| Web UI | http://10.8.30.40:30030 | Timebank pilot interface |
| Gateway API | http://10.8.30.40:30080 | REST + WebSocket API |
| Grafana | http://10.8.30.40:30300 | Monitoring dashboard |
| Prometheus | http://10.8.30.40:30090 | Metrics (internal) |
Getting Started
1. Create Your Identity
First, generate your ICN identity (DID) using icnctl:
# From repo root, navigate to Rust workspace
cd icn
cargo build --release
# Initialize identity
./target/release/icnctl id init
# Show your DID
./target/release/icnctl id show
# Example output: did:icn:zJ6mmCu26hgYegsZJLVQvSF7Ms56UKfo5t7cwUFbpPRiC
2. Get an Auth Token
Option A: Use the helper script (Recommended)
# From repo root
ICN_PASSPHRASE="your-passphrase" ./scripts/generate-test-token.sh
This will output your DID and token ready to paste into the Web UI.
Option B: Use icnctl directly
# From icn/ workspace directory
cd icn
# Get token (handles challenge-response automatically)
ICN_PASSPHRASE="your-passphrase" ./target/release/icnctl auth token \
--gateway http://YOUR_GATEWAY_URL:30080 \
--coop-id test-coop
3. Access the Web UI
- Open the Pilot UI in your browser (deployment-specific URL)
- Enter:
- Gateway URL: Your gateway URL
- Cooperative ID:
test-coop - Your DID: (from step 1)
- Token: (from step 2)
- Click "Connect"
Test Scenarios
Scenario 1: Basic Payment
Goal: Send and receive mutual credit hours
- Log into Web UI with your identity
- Navigate to "Payments" tab
- Enter recipient DID and amount (e.g., 5 hours)
- Add a memo (e.g., "Test payment")
- Click "Send Payment"
- Verify balance updated
- Check transaction in history
Success Criteria:
- Payment shows in sender's history
- Balance decreased by payment amount
- No errors displayed
Scenario 2: Governance Voting
Goal: Create and vote on proposals
- Navigate to "Governance" tab
- View existing proposals
- Cast vote on an open proposal
- Verify vote was recorded
Success Criteria:
- Can view all proposals
- Vote submission succeeds
- Vote count updates
Scenario 3: Real-time Updates
Goal: Verify WebSocket events work
- Open Web UI in two browser windows
- In Window 1: Send payment to yourself (or another test user)
- In Window 2: Observe real-time balance update
Success Criteria:
- Balance updates without page refresh
- No WebSocket connection errors
Scenario 4: Offline Behavior
Goal: Test offline resilience
- Log into Web UI
- Disconnect from network (airplane mode or disable interface)
- Try to send a payment
- Reconnect to network
- Verify queued operation completes
Success Criteria:
- Offline indicator appears
- Operation queued with message
- Auto-retries on reconnection
Monitoring & Debugging
Check System Health
# Gateway health
curl -s http://10.8.30.40:30080/v1/health | jq .
# Node status
ssh ubuntu@10.8.30.40 "sudo kubectl -n icn get pods"
# Node logs
ssh ubuntu@10.8.30.40 "sudo kubectl -n icn logs -f deployment/icn-daemon --tail=50"
# Pilot UI logs
ssh ubuntu@10.8.30.40 "sudo kubectl -n icn logs -f deployment/pilot-ui"
Grafana Dashboard
Open http://10.8.30.40:30300 for metrics:
- ICN Node Dashboard: Network, gossip, ledger metrics
- Byzantine Detection: Quarantine status, anomalies
- Performance: Latency, throughput, errors
Reporting Issues
Bug Report Template
When you find an issue, please record:
- What you were trying to do
- What happened instead
- Steps to reproduce
- Screenshots/logs if available
- Browser/environment info
Where to Report
- GitHub Issues: Create issue with
[BETA]tag - Shared doc: Add to the Beta Testing Log
Known Limitations
- Single node: Currently running 1 ICN node (not full mesh)
- Test coop: Using
test-coopfor all testing - Internal only: Not accessible outside local network
Feedback Collection
After each testing session, please note:
- Usability: Was the UI intuitive? Any confusion?
- Performance: Did things feel fast? Any delays?
- Features: What worked well? What's missing?
- Bugs: Any errors or unexpected behavior?
Contact
- Lead: Matt Faherty
- Slack/Discord: #icn-beta-testing (coming soon)
- Email: dev@icn.coop
Thank you for testing! Your feedback is essential for improving ICN readiness for broader deployment.