- 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.
3.5 KiB
3.5 KiB
Node Add/Remove Runbook
Adding a Validator Node
Prerequisites
- Generate validator key
- Update genesis extraData
- Configure network access
- Prepare node infrastructure
Steps
-
Generate Validator Key
./scripts/key-management/generate-validator-keys.sh 1 -
Update Genesis extraData
- Add validator address to genesis
- Generate new extraData with Besu tooling
- Update genesis.json
-
Update static-nodes.json
- Add validator enode to static-nodes.json
- Update on all validators and sentries
-
Deploy Validator Node
kubectl apply -f k8s/base/validators/statefulset.yaml -
Verify Node
- Check node is peering
- Verify block production
- Monitor metrics
Rollback
If issues occur:
- Remove validator from static-nodes.json
- Update genesis extraData
- Restart all nodes
- Verify network stability
Removing a Validator Node
Steps
-
Update static-nodes.json
- Remove validator enode
- Update on all validators and sentries
-
Update Genesis extraData
- Remove validator address from genesis
- Generate new extraData
- Update genesis.json
-
Stop Validator Node
kubectl delete statefulset besu-validator-<index> -n besu-network -
Verify Network
- Check remaining validators are working
- Verify block production
- Monitor metrics
Rollback
If issues occur:
- Add validator back to static-nodes.json
- Update genesis extraData
- Restart validator node
- Verify network stability
Adding a Sentry Node
Steps
-
Generate Node Key
./scripts/key-management/generate-validator-keys.sh 1 -
Update static-nodes.json
- Add sentry enode to static-nodes.json
- Update on all validators and sentries
-
Deploy Sentry Node
helm install besu-sentry-<index> ./helm/besu-network -f helm/besu-network/values-sentries.yaml -n besu-network -
Verify Node
- Check node is peering
- Verify P2P connections
- Monitor metrics
Removing a Sentry Node
Steps
-
Update static-nodes.json
- Remove sentry enode
- Update on all validators and sentries
-
Stop Sentry Node
helm uninstall besu-sentry-<index> -n besu-network -
Verify Network
- Check remaining sentries are working
- Verify P2P connections
- Monitor metrics
Adding an RPC Node
Steps
-
Deploy RPC Node
helm install besu-rpc-<index> ./helm/besu-network -f helm/besu-network/values-rpc.yaml -n besu-network -
Update Load Balancer
- Add RPC node to load balancer pool
- Update health checks
-
Verify Node
- Check RPC endpoint is responding
- Verify sync status
- Monitor metrics
Removing an RPC Node
Steps
-
Remove from Load Balancer
- Remove RPC node from load balancer pool
- Wait for connections to drain
-
Stop RPC Node
helm uninstall besu-rpc-<index> -n besu-network -
Verify Network
- Check remaining RPC nodes are working
- Verify load balancer health
- Monitor metrics
Troubleshooting
Node Not Peering
- Check network connectivity
- Verify static-nodes.json configuration
- Check firewall rules
- Review node logs
Node Not Syncing
- Check genesis file matches
- Verify node configuration
- Check disk space
- Review node logs
Node Performance Issues
- Check resource usage
- Verify node configuration
- Review metrics
- Consider scaling resources