Commit Graph
48 Commits
Author SHA1 Message Date
Raven Scott 0d23e296be ix: Prevent claim overwriting and improve domain removal safety
Fix critical bugs in domain claim management to ensure data integrity:

- Domain addition: Check for existing claims before adding to prevent duplicates
  - Update user's own claim if it exists instead of creating duplicates
  - Skip update if hash and SSL flag unchanged (idempotent)
  - Never touch other users' claims when updating own claim

- Domain removal: Add strict validation to prevent removing other users' claims
  - Only perform full cleanup (atomicDomainCleanup) when user is confirmed resolved claimant
  - Require consensus status 'resolved' AND resolvedClaimant matches localWriter
  - Improved logging to show which removal path is taken
  - Enhanced removeOwnClaimAndVotes with explicit vote key parsing

- Hash preferences cleanup: Fix module path resolution error
  - Correct require path from admin-backend/cache.js (../../core/core)
  - Add lazy require pattern with error handling to prevent crashes
  - Ensure cleanup runs after consensus updates and domain removals
2025-12-26 16:59:56 -05:00
Raven Scott 01acfb766c feat: Add P2P Domain Conflicts management
Implement comprehensive P2P domain conflict resolution allowing users to choose between local claim hashes and consensus-resolved hashes for domains where they have local claims but another claimant won consensus.

Key features:
- P2P Domain Conflicts UI tab in Local DNS section
- Hash preference toggle (local vs resolved) with automatic client restart
- Extended selector_cache.json to store hashPreferences alongside versionPreferences
- DNS cache invalidation for immediate preference application
- REST API endpoints for conflict detection and preference management
- Automatic Holesail client restart when hash preferences change
- Complete documentation updates across README, API docs, and glossary

Resolves conflicts between local claims and consensus resolution by giving users control over which hash their domain resolves to, with seamless client management ensuring immediate effect.
2025-12-26 16:36:19 -05:00
Raven Scott 480f99ae28 feat: allow partial domain removal and add conflict status
- Add partial domain removal functionality allowing users to remove their own claims and votes even when they're not the resolved claimant
- Add conflict status detection for domains where local peer has claim but another claimant won consensus
- Update UI to display conflict status with red badge
- Enhance API responses with detailed consensus information
- Update all documentation with new features

Changes:
- core/core.js: Add removeOwnClaimAndVotes() function for partial removal
- admin/routes/domains.js: Implement partial/full removal logic in /api/remove-domain
- admin/admin-backend/routes/domains.js: Same partial removal logic for backend routes
- plugins/sdk.js: Update removeDomain() to support partial removal
- admin/ui/config.js: Add conflict status badge and update postFetch
- admin/admin-frontend/ui/config.js: Add conflict status badge and fix status rendering
- admin/utils.js: Add conflict status to utility functions
- admin/admin-frontend/utils.js: Add conflict status to utility functions
- docs/CONSENSUS.md: Add conflict status to resolution states
- docs/README_LONGFORM.md: Add conflict status to consensus states
- docs/RESTAPI.md: Update /api/resolved-domains with new fields and examples
- docs/ARCHITECTURE.md: Document full vs partial removal modes
- docs/OPENAPI.yaml: Update Domain schema and add ConsensusState schema
2025-12-26 15:32:41 -05:00
Raven Scott ea1bcb569a fix: correct consensus vote counting to prevent duplicate voter inflation
- Modified getConsensusState() to track votes per voter and ensure each voter only counts once per domain
- Added logging to detect when voters have multiple votes for different claimants
- Prevents vote count inflation that could cause wrong claimants to win consensus
- Maintains most recent vote when duplicates are detected
2025-12-26 02:31:26 -05:00
Raven Scott 7ec24c8122 Added recreation check: Before creating a missing channel, the code now checks isRecreating(pluginDomain, protocol, peerId) to prevent duplicate creation attempts 2025-12-21 07:52:38 -05:00
snxraven 8a14e33bad Merge pull request 'refactor: bind to 127.0.0.1' (#1) from Cyber/p2ns:refactor/bind-to-local into main
Reviewed-on: #1
2025-12-21 06:14:28 -05:00
Cyber 1755ecb955 refactor: bind to 127.0.0.1 2025-12-21 12:09:56 +01:00
Raven Scott bd93b03388 Fix up Automatic Updates via Websocket | peer.directory 2025-12-21 05:14:42 -05:00
snxraven 453e3e4154 revert ba417d537d
revert Remove redunant updates - we dont need them
2025-12-21 04:51:50 -05:00
Raven Scott ba417d537d Remove redunant updates - we dont need them 2025-12-21 04:46:58 -05:00
Raven Scott 93de490353 make peer.directory updates smoother 2025-12-21 04:43:09 -05:00
Raven Scott 4629a7690e Update peer.directory to full websockets with auto updating 2025-12-21 04:36:24 -05:00
Raven Scott 75a2792579 - Fix "removedIPs is not defined" error in cleanupInterfaces function
by initializing removedIPs outside conditional block
2025-12-21 02:15:59 -05:00
Raven Scott cbeffd61f7 Seperate Peer Stats and Peer list 2025-12-21 02:14:17 -05:00
Raven Scott aedf2b5beb GUI: Fix scrolling in the peers tab 2025-12-21 02:11:57 -05:00
Raven Scott 3deb968553 Attempt to stabilize channel reconnecting 2025-12-20 19:09:23 -05:00
Raven Scott 575d1c359d Auto Assign IPs when domains are resolved 2025-12-20 17:11:48 -05:00
Raven Scott 14cd0d98dd allow public holesail keys 2025-12-20 17:03:20 -05:00
Raven Scott a2cdd0497d test 2025-12-20 16:15:31 -05:00
Raven Scott 954b98d9ce test 2025-12-20 15:47:22 -05:00
Raven Scott 6128abe902 tests 2025-12-20 15:41:48 -05:00
snxraven 0dbdcdd641 revert 5e34e90de5
revert Changes to master and connections
2025-12-20 15:23:10 -05:00
Raven Scott 5e34e90de5 Changes to master and connections 2025-12-19 23:14:05 -05:00
Raven Scott ed2e3c8b5a Add loading indicator while enabling a plugin 2025-12-19 23:02:51 -05:00
Raven Scott 3275f937e8 do not init plugins that are disabled 2025-12-19 22:58:32 -05:00
Raven Scott a3ea306a76 update builder 2025-12-18 02:07:51 -05:00
Raven Scott 1e9115d599 clean up old data 2025-12-17 23:32:42 -05:00
Raven Scott 1966062a12 connection tracking 2025-12-17 22:54:46 -05:00
Raven Scott 7dc7f2ee95 Remove DS_Store 2025-12-17 22:51:24 -05:00
Raven Scott db77833402 remove test-scripts 2025-12-17 22:50:41 -05:00
Raven Scott 5f022eae91 further adjustments 2025-12-17 22:39:20 -05:00
Raven Scott eb5675adb2 fixes 2025-12-17 22:32:07 -05:00
Raven Scott ad4784d05d feat: consolidate utility functions into P2NS Plugin SDK
- Centralized common formatting, DOM, and status utilities in `includes/plugins/sdk.js`
- Created `sdk.utils.format`, `sdk.utils.dom`, and `sdk.utils.status` namespaces
- Refactored `domain.consensus` and `peer.visualize` plugins to use the global SDK
- Updated `plugin-handler` to serve SDK utilities globally via `/sdk-utils.js`
- Enhanced SDK validation by delegating to the core validation infrastructure
- Fixed bugs in metric rendering and missing frontend utility functions
2025-12-17 22:21:58 -05:00
Raven Scott 5f5ed3848e resolve circle dep 2025-12-17 21:49:54 -05:00
Raven Scott eecd85c066 Invite Diagnostics + Cleanup and Reboot 2025-12-17 21:44:58 -05:00
Raven Scott 8a82681054 fixes for invites 2025-12-17 21:18:48 -05:00
Raven Scott f5fd92f9e6 Merge remote-tracking branch 'origin/main' - resolved conflicts with invite system improvements 2025-12-17 21:15:03 -05:00
Raven Scott d1ee8b979a improvent for invites 2025-12-17 21:13:46 -05:00
snxraven 0edd78671e revert 4e74ebc1c4
revert fixes for master
2025-12-17 21:09:08 -05:00
snxraven 4f450e804d revert be2896d008
revert test fixes for invites
2025-12-17 21:09:01 -05:00
snxraven 7469c84692 revert d3b61e9823
revert fixes
2025-12-17 21:08:53 -05:00
Raven Scott d3b61e9823 fixes 2025-12-17 21:03:44 -05:00
Raven Scott be2896d008 test fixes for invites 2025-12-17 21:01:53 -05:00
Raven Scott 4e74ebc1c4 fixes for master 2025-12-17 20:54:09 -05:00
Raven Scott 00709cb446 Updates 2025-12-17 20:49:34 -05:00
Raven Scott a977320bfc show loading indicators when actions are pending 2025-12-17 20:42:00 -05:00
Raven Scott b5eaf9993d do not include internal domains within Create Client Modal 2025-12-17 20:20:48 -05:00
Raven Scott 742e27d3f7 reorg 2025-12-17 20:05:50 -05:00