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 to 0, then the validator will be removed and the remaining balance will be returned to RemainingBalanceOwner.
  • 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 the RemainingBalanceOwner.

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 specific NodeID.
    • IncludeInactiveL1Validators: Include inactive L1 validators in the response.
  • Response Changes:

2. List L1 validator transactions

Updated endpoint: List latest transactions on the primary network

  • Changes:
    • Added a new query parameter L1ValidationID.
  • Purpose:
    • By providing L1ValidationID, you receive all transactions linked to the validator’s validationID, such as ConvertSubnetToL1Tx, IncreaseL1ValidatorBalanceTx, or DisableL1ValidatorTx.
  • 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).
  • Response changes:

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 validators
  • L1ValidatorsAccruedFees: 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 not
  • L1ValidatorManagerDetails: Includes blockchainID and contract address of the validator manager.

Additional Resources

For more detailed information and technical specifications, please refer to the following resources:

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.