--- openapi: get /dwn/v1/encryption/status title: Query Encryption Status description: Monitor the health and state of the consensus encryption system og:title: DWN Encryption System Status --- The encryption system uses validator consensus to generate keys that no single party controls. ## System Components ### Key Management - **currentKeyVersion**: Active encryption key version - **lastRotation**: Timestamp of last rotation - **nextRotation**: Scheduled rotation time ### Validator Participation - **validatorSet**: Active validator addresses - **singleNodeMode**: Development mode flag - **minValidatorsForKeyGen**: Required threshold ### System Metrics - **totalEncryptedRecords**: Global encrypted record count ## Health Monitoring Set up alerts for upcoming key rotations to ensure smooth operations. ### Health Checks ```javascript // Check rotation schedule const rotationDue = nextRotation < Date.now(); // Verify validator participation const hasQuorum = validatorSet.length >= minValidatorsForKeyGen; // Monitor growth const recordGrowthRate = totalEncryptedRecords / daysSinceLaunch; ``` ## Key Rotation Schedule ### Automatic Rotation - Triggered by `keyRotationDays` parameter - Requires validator consensus - Zero-downtime process ### Manual Rotation - Governance proposals - Security incidents - Validator changes Key rotation requires sufficient validator participation. Monitor validator set health. ## Development vs Production ### Production Mode - Full validator consensus - Distributed key generation - No single point of failure ### Single-Node Mode - Local key generation - Simplified consensus - For development only ## Monitoring Dashboard Create monitoring dashboards using these metrics for operational visibility. ### Key Metrics ```bash # Query status STATUS=$(snrd query dwn encryption-status -o json) # Extract metrics echo "Key Version: $(echo $STATUS | jq .currentKeyVersion)" echo "Validators: $(echo $STATUS | jq '.validatorSet | length')" echo "Records: $(echo $STATUS | jq .totalEncryptedRecords)" echo "Next Rotation: $(echo $STATUS | jq .nextRotation)" ```