feat(edge-net): Add join CLI with multi-contributor public key support#100
feat(edge-net): Add join CLI with multi-contributor public key support#100
Conversation
ruvnet
commented
Jan 2, 2026
- Add join.js CLI for joining EdgeNet with public key identity
- Support generating new Pi-Key identities with Ed25519 signing
- Enable encrypted identity export/import (Argon2id + AES-256-GCM)
- Add multi-contributor demonstration and cross-verification
- Update main CLI to include join command
- Fix test file syntax errors and assertion bounds
- All 186 Rust tests pass, WASM module fully functional
- Add join.js CLI for joining EdgeNet with public key identity - Support generating new Pi-Key identities with Ed25519 signing - Enable encrypted identity export/import (Argon2id + AES-256-GCM) - Add multi-contributor demonstration and cross-verification - Update main CLI to include join command - Fix test file syntax errors and assertion bounds - All 186 Rust tests pass, WASM module fully functional
- Implement PersistentIdentity class for months/years persistence - Store identities in ~/.ruvector/identities with encrypted backup - Track contribution history in ~/.ruvector/contributions - Add --list command to show all stored identities - Add --history command to show contribution milestones - Auto-restore identities across sessions - Track "return after absence" milestones (>30 days) - Session tracking with timestamps - Add multi-contributor-test.js for network simulation - All contributions preserved indefinitely
- Add network.js with peer discovery, QDAG contribution ledger, and contribution verification protocol - Add join.html for browser-based network joining with Web Crypto API - Update join.js with NetworkManager integration for QDAG recording - Add --peers and --network commands for network status viewing - Update package.json with new files and scripts The QDAG (Quantum DAG) ledger provides: - Contribution recording with parent selection for DAG structure - Weight-based confirmation (3 confirmations for finality) - Peer-to-peer synchronization support (simulated in local mode) - Contributor statistics and network-wide metrics The browser join page provides: - WASM-based Pi-Key identity generation - PBKDF2 + AES-256-GCM encrypted identity backup/restore - Real-time contribution tracking and credit display - localStorage persistence for cross-session identity
…ge networks - Add networks.js with NetworkGenesis, NetworkRegistry, and MultiNetworkManager - Support for public, private (invite-only), and consortium networks - Each network has its own genesis block, QDAG ledger, and peer registry - Network IDs derived from genesis hash for tamper-evident identity - Invite code generation for private networks with base64url encoding New CLI options: --networks List all known networks --discover Discover available networks --create-network Create a new network with custom name/type --network-type Set network type (public/private/consortium) --switch Switch active network for contributions --invite Provide invite code for private networks Security features: - Network isolation with separate storage per network - Cryptographic network identity from genesis hash - Invite codes for access control on private networks - Ed25519 signatures for network announcements Well-known networks: - mainnet: Primary public compute network - testnet: Testing and development network
ruvnet
left a comment
There was a problem hiding this comment.
Code Review: PR #100 - Edge-Net Join CLI with Multi-Contributor Support
Overall Assessment: Looks Good ✅
This is a well-structured implementation of a multi-contributor network joining system with proper cryptographic identity management.
🌟 Strengths
1. Cryptographic Security
- Ed25519 signing for identity generation
- PBKDF2 (100k iterations) + AES-256-GCM for encrypted backups
- Proper salt/IV generation with
crypto.getRandomValues()
2. Multi-Network Architecture
- Support for public, private (invite-only), and consortium networks
- Genesis hash-based network identity for tamper-evidence
- QDAG (Quantum DAG) ledger with confirmation weights
3. Persistence Design
- Long-term identity storage in
~/.ruvector/identities - Contribution history tracking in
~/.ruvector/contributions - Cross-session identity restoration
4. Browser & Node.js Support
join.htmlwith Web Crypto APIjoin.jsCLI with Node.js polyfills- Consistent API across environments
📝 Minor Suggestions (Non-Blocking)
1. Password Validation (join.html:261)
Consider adding complexity requirements (uppercase, number, symbol) beyond just length.
2. Peer Count Simulation (join.html:428)
The simulated peer discovery is fine for demo - add a comment noting this should be replaced with real WebRTC/WebSocket in production.
3. PBKDF2 Iterations
100,000 iterations is reasonable. Consider making it configurable or bumping to 600,000 for high-security contexts (OWASP 2023 recommendation).
🔐 Security Checklist
- Ed25519 key generation
- AES-256-GCM authenticated encryption
- PBKDF2 key derivation with salt
- Proper IV handling (12 bytes for GCM)
- No hardcoded secrets
- localStorage only stores encrypted private keys
📊 Summary
| Aspect | Rating |
|---|---|
| Code Quality | ⭐⭐⭐⭐⭐ |
| Security | ⭐⭐⭐⭐ |
| Documentation | ⭐⭐⭐⭐ |
| Architecture | ⭐⭐⭐⭐⭐ |
Great work on the multi-network support and QDAG ledger integration!
Merging Edge-Net join CLI with multi-contributor support