github RunOnFlux/flux v8.5.0

7 hours ago

Summary

This release introduces significant improvements to FluxOS including enhanced daemon health monitoring, boot-time hardware validation, datacenter/enterprise app support, improved geolocation services with static IP detection, and several critical bug fixes for app lifecycle management.


Major Features

  1. Daemon Health Monitoring & Automatic App Cleanup
  • Implements a two-threshold monitoring system for daemon health
    • Startup threshold: 15 minutes grace period for initial sync
    • Runtime threshold: 2 hours for established connections
  • Performs periodic health checks every 15 minutes
  • Validates RPC freshness with 10-block/300-second timeout in isDaemonSynced()
  • Triggers automatic removal of all applications when daemon is unhealthy ("nuclear" cleanup)
  1. Boot-Time Hardware Validation
  • Validates CPU, RAM, and HDD requirements against node specifications at boot
  • Calculates cumulative resource usage across all running applications
  • Removes incompatible apps sorted by blockchain height (newest first) when resources are insufficient
  • Prevents resource over-commitment scenarios
  1. App Update Race Condition Handling
  • Implements a queue system for app updates that arrive before registration completes
  • Queue entries expire after 30 minutes with a maximum of 200 entries
  • Fixes zombie app cleanup from expired temporary messages
  • Adds guards for missing specifications in temp messages
  • Corrects else block pairing for expired app cleanup logic
  1. Enterprise/Datacenter App Support
  • Adds datacenter property to v8 application specifications
  • Only known enterprise clients (whitelisted addresses) can set datacenter: true
  • Datacenter nodes delay installation of non-datacenter apps (recheck after 27 minutes)
  • New configuration: enterpriseAppOwners whitelist in default.js
  • New API endpoint: /flux/enterpriseappowners to retrieve enterprise app owners
  1. Enhanced Geolocation Service
  • Improved data information collection for node geolocation
  • Static IP detection and tracking
  • IP change history monitoring
  • Existing nodes without IP change history are not penalized (immediately considered static)
  • Removed fallback mechanism from hasPublicIpOnInterface() for more accurate detection
  1. Vetted Apps & Repositories
  • Added vetted app repositories list (helpers/vettedrepositories.json)
  • Vetted apps bypass user-blocked ports validation
  • Only app owners or Flux Team can uninstall vetted applications
  • Enhanced protection for enterprise deployments

Bug Fixes

  • Zombie app cleanup: Fixed race condition where apps could become orphaned during updates
  • RPC freshness: isDaemonSynced() now verifies data freshness with timeout checks
  • Duplicate require: Removed duplicate messageStore import
  • Specification scope: Fixed conditional block scoping issues for app specs
  • Scanned height: Ensures only one scanned height record (highest) is retained

Code Cleanup & Refactoring

  • Fractus removal: Removed all Fractus-specific conditions from source code (no longer needed)
  • Port mapping reorder: Ports are now mapped before Docker image download (improves reliability)
  • Function signature update: validateApplicationUpdateCompatibility() now accepts pre-fetched previous specs directly
  • Error handling: getPreviousAppSpecifications() returns null instead of throwing errors

New API Endpoints
┌───────────────────────────────┬────────┬────────────────────────────────────────────────┐
│ Endpoint │ Cache │ Description │
├───────────────────────────────┼────────┼────────────────────────────────────────────────┤
│ /flux/enterpriseappowners │ 1 hour │ Returns list of enterprise app owner addresses │
├───────────────────────────────┼────────┼────────────────────────────────────────────────┤
│ /benchmark/getstoredbenchmark │ 1 hour │ Returns stored benchmark data │
└───────────────────────────────┴────────┴────────────────────────────────────────────────┘

Documentation

  • Added new documentation: docs/flux-node-service.md for Flux node service setup and configuration

Files Modified

Core Services:

  • advancedWorkflows.js - App specification handling improvements
  • appInstaller.js - Port mapping reorder, Fractus removal
  • appSpawner.js - Datacenter logic, vetted app bypass
  • appUninstaller.js - Vetted app protection
  • geolocationService.js - Static IP detection
  • benchmarkService.js - New stored benchmark API
  • fluxService.js - Enterprise app owner endpoints

New Services:

  • daemonHealthMonitor.js - Health monitoring and cleanup
  • hardwareValidationService.js - Boot-time validation

Configuration:

  • ZelBack/config/default.js - Enterprise owners whitelist
  • ZelBack/src/routes.js - New endpoints
  • helpers/vettedrepositories.json - Vetted repos list
  • package.json - Version bump to 8.5.0

Don't miss a new flux release

NewReleases is sending notifications on new releases.