Etna Upgrade
The Avalanche9000 (Etna Upgrade) is focused on reinventing Subnets and providing other UX enhancements. One of the major changes in this upgrade is how users manage subnets and their validators. See ACP 77.
Pre-Etna vs. Post-Etna
Pre-Etna
- A node had to be a Primary Network Validator before it could validate a Subnet.
- All validators, delegators, and rewards for permissionless subnets were managed on the P-Chain.
Post-Etna:
The Avalanche network now supports both Subnets and Layer 1 blockchains (L1s):
- Subnets (legacy flow):
- Do not pay a continuous fee.
- Validators must be Primary Network Validators.
- L1s (new flow):
- Pay a continuous fee.
- Validators do not need to be Primary Network Validators.
- Can be either permissioned or permissionless, depending on the chain manager.
This shift moves the responsibility of validator management from the P-Chain to the Subnets themselves. Permissionless Subnets have been rebranded as L1s, reflecting their true potential as independent Layer 1 blockchains. The P-Chain now handles only the registration of these L1 validators and imposes a subscription fee based on the number of active validators for each L1.
Each L1 manages its validators through a Validator Manager Smart Contract deployed on a specific blockchain within that L1, streamlining operations and decentralizing management.
Impact on existing subnets
Existing subnets will continue to operate under the legacy flow unless they choose to convert to an L1 using the ConvertSubnetToL1Tx
transaction. Validators of these Subnets must remain Primary Network Validators. There is no mandatory action required for existing Subnets; however, they can opt to leverage the new L1 functionalities if desired.
L1 validator registration
To convert a permissioned Subnet into an L1, you need to issue a ConvertSubnetToL1Tx
transaction, providing the validator manager smart contract address and the blockchain ID where this contract is deployed. This transaction requires an array of initial L1 validators with the following details:
nodeID
: NodeID of the validator being added.weight
: Weight of the validator being added.balance
: Initial balance for this validator.signer
: The BLS public key and proof-of-possession for the validator.disableOwner
: The P-Chain owner (a set of addresses and threshold) authorized to disable the validator using DisableL1ValidatorTx..remainingBalanceOwner
: The P-Chain owner where any leftover AVAX from the validator’s balance will be sent when the validator is removed from the validator set.
Additional L1 validators can be added later by issuing a RegisterL1ValidatorTx
and providing the necessary validator details. These L1 validators are assigned a unique validationID
to identify them across the network. The validationID
remains valid from the registration of a NodeID
on a Subnet until it is disabled by setting its weight to 0
.
Weight and balance
Weight and Balance of an L1 validator can be updated by issuing following transactions corresponding to their L1 validationID
:
SetL1ValidatorWeightTx
- Updates the weight of an L1 validator. If the weight is set to0
, then the validator will be removed and the remaining balance will be returned toRemainingBalanceOwner
.IncreaseL1ValidatorBalanceTx
- Increases the balance of an L1 validator which will be used as a maintenance fee to the Primary Network.DisableL1ValidatorTx
- Marks the validator as inactive and returning the remaining balance to theRemainingBalanceOwner
.
Continuous fee mechanism
L1 validators are required to maintain a balance on the P-Chain to cover continuous fees for their participation in the network. The fee is deducted over time from the validator’s balance and is used to compensate for the resources consumed on the Primary Network. Validators should monitor their balance regularly and use the IncreaseL1ValidatorBalanceTx
to top up their balance as needed to prevent becoming inactive.
Fee calculation:
- The continuous fee is calculated based on network parameters and the number of active L1 validators.
- The minimum fee rate is 512 nAVAX per second, which equates to approximately 1.33 AVAX per month per validator when the number of validators is at or below the target.
Recommendations for validators:
- Set up alerts or monitoring tools to track balance levels.
- Plan regular intervals for balance top-ups to ensure uninterrupted validation services.
- Remember that any unspent balance can be reclaimed using the
DisableL1ValidatorTx
.
Data API changes
To incorporate Etna-related data, we have made the following changes to the Data API’s Primary Network endpoints:
1. List L1 validators
New endpoint: List L1 Validators
- Purpose: Allows listing all or specific L1 validators.
- Parameters or query changes:
L1ValidationID
: Get details of a specific L1 validator.SubnetID
: Filter validators of a particular subnet.NodeID
: Filter validators associated with a specificNodeID
.IncludeInactiveL1Validators
: Include inactive L1 validators in the response.
- Response Changes:
- Returns a list of L1 validators. Refer to the endpoint documentation for full details.
2. List L1 validator transactions
Updated endpoint: List latest transactions on the primary network
- Changes:
- Added a new query parameter
L1ValidationID
.
- Added a new query parameter
- Purpose:
- By providing
L1ValidationID
, you receive all transactions linked to the validator’svalidationID
, such asConvertSubnetToL1Tx
,IncreaseL1ValidatorBalanceTx
, orDisableL1ValidatorTx
.
- By providing
- Sorting and filtering:
- Transactions can only be sorted in descending order by their
timestamp
. - Additional filters include start and end timestamp bounds and transaction types (
txTypes
).
- Transactions can only be sorted in descending order by their
- Response changes:
- Refer to New Transaction Properties for details.
3. New transaction properties
Updated endpoints:
Parameters or query changes:
- None
Response changes:
The PChainTransaction
response type now includes the following new properties:
L1ValidatorManagerDetails
:BlockchainID
: The blockchain ID where the validator manager is deployed.ContractAddress
: Address of the validator manager smart contract.
L1ValidatorDetails
validationID
: Unique identifier for this L1 validation.nodeID
: NodeID of the validator.subnetID
: SubnetID of which this validationID belongs to.weight
: Weight to be used when participating in validation process.remainingBalance
: Remaining L1 validator balance in nAVAX until inactive.balanceChange
: Change in Balance of validator in the current transaction.
AmountL1ValidatorBalanceBurned
- Asset details and amount of AVAX burned to increase the L1 validator balance
4. New block properties
Updated endpoints:
Parameters or query changes:
- None
Response changes:
Each P-Chain block will now include properties representing L1 validators state at that block height:
ActiveL1Validators
: Total active L1 validatorsL1ValidatorsAccruedFees
: Total fees accrued by network (in nAVAX) from active L1 validators
5. New Subnet Properties
Updated endpoint:
Parameters or query changes:
- None
Response changes:
Each Subnet will now have a new property IsL1 to identify whether it has been converted to an L1 or not. For all L1s, there will be a new property:
isL1
: Whether the subnet is converted to L1 or notL1ValidatorManagerDetails
: IncludesblockchainID
and contract address of the validator manager.
Additional Resources
For more detailed information and technical specifications, please refer to the following resources:
- ACP-77: Reinventing Subnets: ACP 77 provides an in-depth explanation of the changes introduced in the Etna Upgrade.
- What to Expect After the Etna Upgrade: This guide outlines the operational impact on existing network participants expected from the activation of the AvalancheGo “Etna” upgrade.
- Subnet & L1 Validators, What’s the Difference?: This guide defines the difference between Subnet and L1 validators, differentiating the roles and responsibilities of each.
- Validator Manager Smart Contract Documentation: Validator Manager Smart Contract contains technical details on deploying and interacting with the validator manager.
- AvalancheGo Implementation Details: For developers interested in the implementation, refer to the AvalancheGo repository.
- Etna DevNet Resources: The Etna DevNet is a temporary Avalanche network instance that was created for the purpose of testing and integrating with the changes introduced in the Etna upgrade prior to their activation on the Fuji testnet.
The Etna Upgrade marks a significant milestone in the evolution of the Avalanche network, introducing more flexibility and autonomy for Subnets through the concept of Layer 1 blockchains. By understanding and leveraging these new features, network participants can optimize their operations and contribute to the growth and decentralization of the Avalanche ecosystem.
Was this page helpful?