-
Notifications
You must be signed in to change notification settings - Fork 74
feat(edge-net): Add join CLI with multi-contributor public key support #100
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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!