Set Initial Configuration
Configure your Validator Manager with initial parameters
Setting the initial configuration is a critical step that establishes how your Validator Manager will operate.
This process involves calling the initialize
function through the TransparentUpgradeableProxy, which forwards the call to your ValidatorManager implementation.
How Initialization Works
The Initialize Function
The configuration is set by calling initialize()
with a ValidatorManagerSettings
struct. This call:
- Goes through the proxy at
0xfacade...
(not directly to the implementation) - Can only be called once due to OpenZeppelin's
initializer
modifier - Sets up the ownership structure and operational parameters
Configuration Parameters
The ValidatorManagerSettings
struct contains four essential parameters:
- Admin Address: The account that controls validator management operations (your connected wallet). Can be changed through ownership transfer.
- Subnet ID: Links the Validator Manager to your specific L1 & can't be changed after initialization.
- Churn Period Seconds:Time window for tracking validator set changes (must be ≤ 86400 seconds)
- Maximum Churn Percentage: Limits how much validator weight can change per period (1-20% protocol maximum). Example: 20% means max 1/5 of total weight can change
Set Configuration
Initial Validator Manager Configuration
Select the Validator Manager
Select the proxy contract pointing to the ValidatorManager implementation you want to initialize.
Select Subnet/L1 for the Validator Manager
Enter the SubnetID of the Subnet/L1 this Validator Manager contract will manage the validators for. The P-Chain will only accept validator set changes from the Validator Manager contract addresses and blockchainID combination that was indicated in the ConvertSubnetToL1Tx.
Set the Validator Manager Configuration
Set the intitial configuration for the Validator Manager contract. The admin address should be a multisig wallet for production L1s, since it can take full control over the L1 validator set by arbitrarily changing the validator set. The churn settings define how rapid changes to the validator set can be made.
Is this guide helpful?