- 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.
6.5 KiB
Parameter Change Runbook
Overview
This runbook provides procedures for changing IBFT 2.0 parameters and other network parameters.
IBFT 2.0 Parameters
Block Period
Current: 2 seconds
Change Procedure:
-
Plan the Change
- Review impact on network performance
- Coordinate with validator operators
- Schedule maintenance window
-
Update Genesis File
# Update blockperiodseconds in genesis.json jq '.config.ibft2.blockperiodseconds = 5' config/genesis.json > config/genesis-new.json mv config/genesis-new.json config/genesis.json -
Restart Validators
# Rolling restart of validators kubectl rollout restart statefulset/besu-validator -n besu-network -
Verify Change
# Check block time curl -X POST -H "Content-Type: application/json" \ --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest", false],"id":1}' \ http://<rpc-endpoint>
Epoch Length
Current: 30,000 blocks
Change Procedure:
-
Plan the Change
- Review impact on validator set updates
- Coordinate with validator operators
- Schedule maintenance window
-
Update Genesis File
# Update epochlength in genesis.json jq '.config.ibft2.epochlength = 50000' config/genesis.json > config/genesis-new.json mv config/genesis-new.json config/genesis.json -
Restart Validators
# Rolling restart of validators kubectl rollout restart statefulset/besu-validator -n besu-network -
Verify Change
# Check current block number curl -X POST -H "Content-Type: application/json" \ --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' \ http://<rpc-endpoint>
Request Timeout
Current: 10 seconds
Change Procedure:
-
Update Genesis File
# Update requesttimeoutseconds in genesis.json jq '.config.ibft2.requesttimeoutseconds = 15' config/genesis.json > config/genesis-new.json mv config/genesis-new.json config/genesis.json -
Restart Validators
kubectl rollout restart statefulset/besu-validator -n besu-network
Gas Limit
Current: ~30,000,000
Change Procedure:
-
Update Genesis File
# Update gasLimit in genesis.json jq '.gasLimit = "0x3d0900"' config/genesis.json > config/genesis-new.json mv config/genesis-new.json config/genesis.json -
Restart All Nodes
kubectl rollout restart statefulset/besu-validator -n besu-network kubectl rollout restart statefulset/besu-sentry -n besu-network kubectl rollout restart statefulset/besu-rpc -n besu-network
Validator Set Changes
Add Validator
-
Generate Validator Keys
./scripts/key-management/generate-validator-keys.sh 1 -
Update Genesis File
- Add validator address to extraData
- Regenerate genesis file
-
Update Static Nodes
- Add validator enode to static-nodes.json
-
Deploy Validator
- Update StatefulSet replica count
- Deploy new validator pod
-
Verify Validator
- Check validator is producing blocks
- Verify validator is in validator set
Remove Validator
-
Plan Removal
- Coordinate with validator operator
- Schedule maintenance window
-
Update Genesis File
- Remove validator address from extraData
- Regenerate genesis file
-
Update Static Nodes
- Remove validator enode from static-nodes.json
-
Remove Validator Pod
kubectl scale statefulset/besu-validator --replicas=3 -n besu-network -
Verify Removal
- Check validator set
- Verify network is still producing blocks
Network Parameter Changes
Chain ID
Current: 138
Warning: Changing Chain ID requires network restart and may break compatibility.
Change Procedure:
-
Update Genesis File
# Update chainId in genesis.json jq '.config.chainId = 139' config/genesis.json > config/genesis-new.json mv config/genesis-new.json config/genesis.json -
Update Configuration Files
- Update chain ID in all configuration files
- Update deployment scripts
- Update documentation
-
Restart All Nodes
kubectl rollout restart statefulset/besu-validator -n besu-network kubectl rollout restart statefulset/besu-sentry -n besu-network kubectl rollout restart statefulset/besu-rpc -n besu-network
Rollback Procedures
Rollback Parameter Change
-
Restore Previous Genesis File
# Restore from backup cp config/genesis.json.backup config/genesis.json -
Restart Nodes
kubectl rollout restart statefulset/besu-validator -n besu-network -
Verify Rollback
- Check network is producing blocks
- Verify parameters are correct
Testing Parameter Changes
Test Environment
-
Deploy to Test Environment
# Deploy to test cluster kubectl apply -f k8s/base/ -n besu-network-test -
Test Parameter Changes
- Apply parameter changes
- Verify network operation
- Test edge cases
-
Monitor Performance
- Check block production
- Monitor network performance
- Verify consensus
Production Deployment
-
Schedule Maintenance Window
- Notify stakeholders
- Coordinate with validators
- Plan rollback procedure
-
Apply Changes
- Update genesis file
- Restart nodes
- Verify changes
-
Monitor Network
- Check block production
- Monitor performance
- Verify consensus
Best Practices
-
Test in Test Environment First
- Always test parameter changes in test environment
- Verify network operation
- Test edge cases
-
Coordinate with Validators
- Notify all validators before changes
- Schedule maintenance windows
- Plan rollback procedures
-
Monitor Network
- Monitor block production
- Check network performance
- Verify consensus
-
Document Changes
- Document all parameter changes
- Update configuration files
- Update documentation
-
Have Rollback Plan
- Always have rollback plan
- Test rollback procedures
- Keep backups
Contacts
- Network Operators: operators@d-bis.org
- Validators: validators@d-bis.org
- Emergency: +1-XXX-XXX-XXXX