Files
smom-dbis-138/runbooks/validator-transitions.md
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

111 lines
2.5 KiB
Markdown

# Validator Transitions Runbook
## Overview
This runbook provides procedures for adding and removing validators from the network.
## Adding a Validator
### Prerequisites
- New validator keys generated
- Validator infrastructure ready
- Coordination with existing validators
### Procedure
1. **Generate Validator Keys**
```bash
./scripts/key-management/generate-validator-keys.sh 1
```
2. **Store Keys in Key Vault**
```bash
az keyvault secret set --vault-name defi-oracle-kv --name validator-key-new --value <private-key>
```
3. **Update Genesis File**
- Add validator address to extraData
- Regenerate genesis file using Besu operator
4. **Update Static Nodes**
- Add validator enode to static-nodes.json
- Update all node configurations
5. **Deploy Validator**
```bash
# Update StatefulSet replica count
kubectl scale statefulset/besu-validator --replicas=5 -n besu-network
```
6. **Verify Validator**
- Check validator is producing blocks
- Verify validator is in validator set
- Monitor validator performance
## Removing a Validator
### Prerequisites
- Coordination with validator operator
- Backup of validator data
- Maintenance window scheduled
### Procedure
1. **Plan Removal**
- Notify all validators
- Schedule maintenance window
- Plan rollback procedure
2. **Update Genesis File**
- Remove validator address from extraData
- Regenerate genesis file
3. **Update Static Nodes**
- Remove validator enode from static-nodes.json
- Update all node configurations
4. **Remove Validator Pod**
```bash
kubectl scale statefulset/besu-validator --replicas=3 -n besu-network
```
5. **Verify Removal**
- Check validator set
- Verify network is still producing blocks
- Monitor network performance
## Validator Key Rotation
See [Key Rotation Script](../scripts/key-management/rotate-keys.sh) for detailed procedures.
## Troubleshooting
### Validator Not Producing Blocks
1. Check validator status
2. Verify validator keys
3. Check network connectivity
4. Verify IBFT configuration
5. Check logs
### Validator Not in Validator Set
1. Verify validator address in extraData
2. Check static nodes configuration
3. Verify network connectivity
4. Check validator keys
## Contacts
- **Validators**: validators@d-bis.org
- **Network Operators**: operators@d-bis.org
## References
- [Node Add/Remove Runbook](node-add-remove.md)
- [Parameter Change Runbook](parameter-change.md)
- [Key Management Scripts](../scripts/key-management/)