Parámetros de las Subnets Elásticas
Las Subnets Permisionadas de Avalanche pueden convertirse en Subnets Elásticas a través de la transacción
TransformSubnetTx
.
TransformSubnetTx
especifica un conjunto de parámetros estructurales para la Subnet Elástica.
Esta referencia describe estos parámetros estructurales e
ilustra las restricciones que deben cumplir.
Parámetros de la Subnet Elástica
Subnet
Subnet
tiene tipo ids.ID
y es el ID de la Subnet.
Subnet
es el ID de la transacción CreateSubnetTx
que creó la Subnet en primer lugar.
Se aplican las siguientes restricciones:
Subnet
debe ser diferente dePrimaryNetworkID
.
AssetID
AssetID
tiene tipo ids.ID
y es el ID del activo a utilizar cuando se apuesta en la Subnet.
Se aplican las siguientes restricciones:
AssetID
no debe ser elID Vacío
.AssetID
no debe ser el IDAVAX
, el activo de la Red Primaria.
InitialSupply
InitialSupply
tiene tipo uint64
y es la cantidad inicial de AssetID
transferidos en la Subnet Elástica al momento de su transformación. Dicha cantidad está
disponible para distribuir recompensas de apuesta. Se aplican las siguientes restricciones:
InitialSupply
debe ser mayor que cero.
MaximumSupply
MaximumSupply
tiene tipo uint64
y es la cantidad máxima de AssetID
que
la Subnet tiene disponible para apuesta y recompensas en cualquier momento. Se aplican las siguientes restricciones:
MaximumSupply
debe ser mayor o igual aInitialSupply
.
El suministro de una Subnet puede variar con el tiempo, pero no debe ser mayor que el máximo configurado en ningún momento, incluida la creación de la Subnet.
MinConsumptionRate
MinConsumptionRate
tiene tipo uint64
y es la tasa mínima que un validador puede ganar si se
satisface el UptimeRequirement
. Si StakingPeriod
== MinStakeDuration
, el
validador ganará la MinConsumptionRate
.
Puedes encontrar más detalles al respecto en la sección de la Fórmula de Recompensa.
Se aplican las siguientes restricciones:
MinConsumptionRate
debe ser menor o igual aPercentDenominator
.
Ver la sección Notas sobre Porcentajes para entender el papel de PercentDenominator
.
MaxConsumptionRate
MaxConsumptionRate
tiene tipo uint64
y es la tasa máxima que un validador puede ganar si se
satisface el UptimeRequirement
. Si StakingPeriod
== MaxStakeDuration
== MintingPeriod
, el
validador ganará la MaxConsumptionRate
.
Puedes encontrar más detalles al respecto en la sección de la Fórmula de Recompensa.
Se aplican las siguientes restricciones:
MaxConsumptionRate
debe ser mayor o igual aMinConsumptionRate
.MaxConsumptionRate
debe ser menor o igual aPercentDenominator
.
Ver la sección Notas sobre Porcentajes para entender el papel de PercentDenominator
.
MinValidatorStake
MinValidatorStake
tiene tipo uint64
y es la cantidad mínima de fondos requeridos para convertirse en un validador.
Se aplican las siguientes restricciones:
MinValidatorStake
debe ser mayor que cero.MinValidatorStake
debe ser menor o igual aInitialSupply
.
MaxValidatorStake
MaxValidatorStake
tiene tipo uint64
y es la cantidad máxima de fondos que un solo
validador puede recibir, incluidos los fondos delegados.
Se aplican las siguientes restricciones:
MaxValidatorStake
debe ser mayor o igual aMinValidatorStake
.MaxValidatorStake
debe ser menor o igual aMaximumSupply
.
MinStakeDuration
MinStakeDuration
tiene tipo uint32
y es el número mínimo de segundos que se puede hacer stake.
Se aplican las siguientes restricciones:
MinStakeDuration
debe ser mayor que cero.
MaxStakeDuration
MaxStakeDuration
tiene tipo uint32
y es el número máximo de segundos que se puede hacer stake.
Se aplican las siguientes restricciones:
MaxStakeDuration
debe ser mayor o igual aMinStakeDuration
.MaxStakeDuration
debe ser menor o igual aGlobalMaxStakeDuration
.
GlobalMaxStakeDuration
está definido en el génesis y se aplica tanto a la Red Primaria como a todas las
Subnets.
Su valor en Mainnet es .
MinDelegationFee
MinDelegationFee
tiene tipo uint32
y es la tasa mínima de tarifa que un delegador
debe pagar a su validador por la delegación. MinDelegationFee
es un porcentaje; la
tarifa real se calcula multiplicando la tasa de tarifa por la recompensa del delegador.
Se aplican las siguientes restricciones:
MinDelegationFee
debe ser menor o igual aPercentDenominator
.
La tasa MinDelegationFee
también se aplica a la Red Primaria. Su valor en Mainnet es .
MinDelegatorStake
MinDelegatorStake
tiene tipo uint64
y es la cantidad mínima de fondos requeridos para convertirse en un delegador.
Se aplican las siguientes restricciones:
MinDelegatorStake
debe ser mayor que cero.
MaxValidatorWeightFactor
MaxValidatorWeightFactor
tiene tipo uint8
y es el factor que calcula
la cantidad máxima de delegación que un validador puede recibir. Un valor de 1
deshabilita efectivamente la delegación. Puedes encontrar más detalles al respecto en la
sección de Verificaciones de Peso de Delegadores.
Se aplican las siguientes restricciones:
MaxValidatorWeightFactor
debe ser mayor que cero.
UptimeRequirement
UptimeRequirement
tiene tipo uint32
y es el porcentaje mínimo de su
tiempo de apuesta que un validador debe estar en línea y ser receptivo para recibir una
recompensa.
Se aplican las siguientes restricciones:
UptimeRequirement
debe ser menor o igual aPercentDenominator
.
Ver la sección Notas sobre Porcentajes para entender el papel de PercentDenominator
.
Fórmula de Recompensa
Considera un validador de una Subnet Elástica que apuesta una cantidad de AssetID
durante segundos.
Supongamos que al inicio del período de apuesta hay una cantidad de AssetID
en la Subnet.
La cantidad máxima de activos de la Subnet es AssetID
.
Entonces, al final de su período de apuesta, un validador elástico y receptivo de la Subnet recibe una recompensa calculada de la siguiente manera:
donde
Ten en cuenta que es el período completo de staking del staker, no solo el tiempo de actividad del staker, es decir, el tiempo agregado durante el cual el staker ha estado receptivo. El tiempo de actividad solo entra en juego para decidir si se debe recompensar a un staker; para calcular la recompensa real, solo se tiene en cuenta la duración del período de staking.
es la tasa a la que se recompensa al validador en función de la selección de .
y limitan :
Cuanto mayor sea , más cercano será a . Cuanto menor sea , más cercano será a .
Un staker logra la recompensa máxima por su stake si = . La recompensa es:
Ten en cuenta que esta fórmula es la misma que la fórmula de recompensa en la parte superior de esta sección porque = .
La fórmula de recompensa anterior se utiliza en la Red Primaria para calcular la recompensa de los stakers. Para referencia, puedes encontrar los parámetros de la red primaria en la sección a continuación.
Verificaciones de peso de los delegadores
Existen límites establecidos para la cantidad máxima de stake de los delegadores que un validador puede recibir.
El peso máximo que un validador puede tener es:
donde y son los parámetros de la Subnet Elástica descritos anteriormente.
Un delegador no se agregará a un validador si la combinación de sus pesos y el peso de todos los otros delegadores del validador es mayor que . Ten en cuenta que esto debe ser cierto en cualquier momento.
Ten en cuenta que establecer en 1 deshabilita la delegación, ya que .
Notas sobre Porcentajes
PercentDenominator = 1_000_000
es el denominador utilizado para calcular porcentajes.
Te permite especificar porcentajes de hasta 4 posiciones decimales.
Para denominar tu porcentaje en PercentDenominator
, simplemente multiplícalo por 10_000
.
Por ejemplo:
100%
corresponde a100 * 10_000 = 1_000_000
1%
corresponde a1 * 10_000 = 10_000
0.02%
corresponde a0.002 * 10_000 = 200
0.0007%
corresponde a0.0007 * 10_000 = 7
Parámetros de la Red Primaria en Mainnet
Una Subnet Elástica es libre de elegir cualquier parámetro que afecte las recompensas, dentro de las restricciones especificadas anteriormente. A continuación, enumeramos los parámetros de la Red Primaria en Mainnet:
AssetID = Avax
InitialSupply = 240_000_000 Avax
MaximumSupply = 720_000_000 Avax
.MinConsumptionRate = 0.10 * reward.PercentDenominator
.MaxConsumptionRate = 0.12 * reward.PercentDenominator
.Minting Period = 365 * 24 * time.Hour
.MinValidatorStake = 2_000 Avax
.MaxValidatorStake = 3_000_000 Avax
.MinStakeDuration = 2 * 7 * 24 * time.Hour
.MaxStakeDuration = 365 * 24 * time.Hour
.MinDelegationFee = 20000
, es decir,2%
.MinDelegatorStake = 25 Avax
.MaxValidatorWeightFactor = 5
. Este es un parámetro de la plataformaVM en lugar de uno de génesis, por lo que se comparte entre redes.UptimeRequirement = 0.8
, es decir,80%
.
Was this page helpful?