Nodo#

Un nodo es un host conectado a la red blockchain. Las funciones de nodo son:

Nodo Generador#

El nodo generador es un nodo que genera bloques. Cada nodo generador es un nodo validador. La cuenta generadora es una cuenta que un nodo usa para firmar bloques generados. Un nodo puede generar bloques si se cumplen las siguientes condiciones:

  • El saldo de generación del nodo es al menos \(10000\) DecentralCoins. Esto significa que el saldo de la cuenta en DecentralCoins, teniendo en cuenta el arrendamiento, no fue inferior a \(10000\) DecentralCoins en cada uno de los últimos \(1000\) bloques (más detalles en el artículo sobre saldo de cuenta). Cuanto mayor sea el saldo de generación, mayor será su probabilidad de ser elegible para generar el siguiente bloque.

  • La cuenta del nodo no es una smart account o dApp.

  • La generación de bloques no está deshabilitada en la configuración del nodo. De forma predeterminada, la generación de bloques está habilitada.

  • El nodo está conectado al menos a la cantidad de pares especificados en los parámetros requeridos (\(1\) por defecto).

Nodo de Validación#

Un nodo de validación es un nodo que valida transacciones.

Ingresos para Generador#

Los ingresos de un nodo por agregar un nuevo bloque a la cadena de bloques consisten en las siguientes cantidades:

  1. Recompensa de bloque: el tamaño de la recompensa actual es \(6\) DecentralCoins pero se puede cambiar votando, consulte el artículo sobre la recompensa de bloque.

  2. \(40\%\) de las tarifas de transacción totales en el bloque actual. El valor exacto se calcula de la siguiente manera:

  • \(\sum_{i}^{} 2 * (\frac{f_i}{5})\)

  • Aquí f \(_i\) es la tarifa por la \(i\)-ésima transacción. Para cada tarifa de transacción, se realiza una división entera por \(5\), luego una multiplicación por \(2\), y finalmente se suman.

  1. \(60\%\) de las tarifas de transacción totales en el bloque anterior.

  • \(\sum_{i}^{} (f_i - 2 * (\frac{f_i}{5}))\)

  • El generador de bloques recibe exactamente la parte de la tarifa que no recibió el generador de bloques anterior.

Si las tarifas de transacción se especifican en un activo patrocinado, los generadores de bloques reciben la tarifa equivalente en DecentralCoins en lugar de la tarifa (como regla general, en :matemáticas:` relación frac{40}{60}`):

feeInDecentralCoins = feeInSponsoredAsset × 0.001 / minSponsoredAssetFee

minSponsoredAssetFee es la cantidad del activo patrocinado equivalente a \(0.001\) DecentralCoins. El patrocinador establece este valor al habilitar el patrocinio. Para obtener más información, consulte el artículo sobre tarifas patrocinadas.

Recompensa de Bloque#

La recompensa de bloque es una función de cadena de bloques en virtud de la cual los nodos generadores reciben una tarifa fija en DecentralCoins por cada bloque generado. Las recompensas en bloque se pagan debido a la emisión adicional del token DecentralCoin. La comunidad de nodos generadores puede cambiar el tamaño de la recompensa mediante la votación.

Tamaño Actual de la Decompensa#

Puede ver el tamaño de la recompensa actual realizando una solicitud a la Node REST API. En respuesta a la solicitud, se devuelve un archivo JSON, cuyo valor del campo currentReward es el tamaño actual de la recompensa del bloque en Decentralitos.

Ejemplo de Respuesta:

{
  "height": 1742254,
  "totalDecentralCoinsAmount": 10001353000000000,
  "currentReward": 600000000,
  "minIncrement": 50000000,
  "term": 100000,
  "nextCheck": 1839999,
  "votingIntervalStart": 1830000,
  "votingInterval": 10000,
  "votingThreshold": 5001,
  "votes": {
    "increase": 0,
    "decrease": 0
  }
}

En el ejemplo anterior, el valor del campo currentReward del JSON es 600 000 000 decentralitos, es decir, es 6 DecentralCoins.

Cambio del Tamaño de la Recompensa en Bloque a lo Largo del Tiempo#

Cada \(100,000\) bloques, es decir, aproximadamente cada \(70\) días, comienza una nueva votación entre los generadores para cambiar el tamaño de la recompensa actual. La duración de la votación es \(10,000\) bloques. Durante este tiempo, los nodos generadores votan para aumentar, disminuir o dejar sin cambios el tamaño de la recompensa actual. El tamaño de la recompensa elegido permanece sin cambios para \(100,000\) bloques después del final de la votación.

Votación#

Un nodo generador especifica el nuevo tamaño de recompensa deseado a través de la configuración en el archivo de configuración del nodo, el valor de configuración se especifica en Decentralites. Si el valor es mayor que el tamaño de la recompensa actual, entonces el generador vota por el aumento del tamaño de la recompensa actual; si el valor es más pequeño — para la disminución. Si el valor de configuración no se especifica en el archivo de configuración, entonces el generador vota por mantener el tamaño de la recompensa actual. Cuando un nodo genera un bloque, escribe en ese bloque el valor del tamaño de recompensa deseado especificado en la configuración de su propio archivo de configuración de nodo. Si el valor de configuración no se especifica en el archivo de configuración, \(-1\) se escribe en el bloque. Durante el tiempo de votación en \(10,000\) bloques, un solo nodo puede generar varios bloques, por lo tanto, un nodo puede votar varias veces. La frecuencia con la que un nodo genera bloques está determinada por el consenso LPoS.

Cómo se Cuentan los Votos#

Para contar los votos, se inspeccionan todos los \(10,000\) bloques generados durante el período de votación. Si se registra en el bloque \(-1\) o el valor que es igual al tamaño de la recompensa actual, entonces el generador vota por mantener el tamaño de la recompensa actual. Si el valor registrado en el bloque es mayor que el tamaño de la recompensa actual, entonces el generador vota por el aumento del tamaño de la recompensa actual; si el valor es más pequeño — para la disminución. La recompensa del bloque aumenta/disminuye solo si más de la mitad de los \(10,000\) votos, es decir, \(5,001\) votos o más, se otorgaron para aumentar/disminuir. La cantidad de la recompensa actual aumenta/disminuye en \(0.5\) DecentralCoins.

:stong:`Ejemplo 1`

A la altura de la cadena de bloques de \(2,000,000\), la recompensa del bloque es igual a \(5\) DecentralCoins. A la altura de \(2,090,000\), comienza otra votación. Durante los \(10,000\) bloques de votación, se otorgaron \(6,000\) votos para aumentar la recompensa, \(1,000\) — para disminuir, \(3,000\) — para mantener el tamaño actual de la recompensa. Desde la altura de \(2\), \(100,000\) hasta la altura de \(2,199,999\), el nuevo tamaño de recompensa será \(5.5\) DecentralCoins, porque el paso de cambio de recompensa es :math :0.5 Monedas descentralizadas. La próxima votación tendrá lugar desde la altura de \(2,190,000\) hasta \(2,199,999\).

Ejemplo 2

A la altura de la cadena de bloques de \(2,100,000\), la recompensa del bloque es igual a \(5.5\) DecentralCoins. A la altura de \(2,190,000\), comienza otra votación. Durante los \(10,000\) bloques de votación, se otorgaron \(4,500\) votos para aumentar la recompensa, \(4,000\) — para disminuir, \(1,500\) — para mantener el tamaño actual de la recompensa. Desde la altura de \(2,200,000\) hasta la altura de \(2,299,999\), el «nuevo» tamaño de la recompensa será el mismo: \(5.5\) DecentralCoins. Aunque se otorgó la mayor cantidad de votos para el aumento de la recompensa, no fue suficiente para cambiar el tamaño actual de la recompensa. Para aumentar el tamaño de la recompensa actual, se deben otorgar al menos \(5,001\) votos para el aumento. La próxima votación tendrá lugar desde la altura de \(2,290,000\) hasta \(2,299,999\).

Prueba de Participación Arrendada#

Leased Proof of Stake (LPoS) es un tipo mejorado de algoritmo de consenso de prueba de participación mediante el cual la red blockchain DecentralChain tiene como objetivo lograr el consenso distribuido para asegurar la red.

Beneficios del Arrendamiento para el Propietario del Nodo#

Los nodes puede usar los tokens arrendados para generar bloques y obtener la recompensa. Para ello, el saldo generador de un nodo debe ser al menos \(10000\) DecentralCoins.

Beneficios de Arrendamiento para el Titular del Token#

LPoS permite a los titulares de tokens arrendar sus tokens a los nodos de DecentralChain y obtener un porcentaje del pago como recompensa. Al usar LPoS, los arrendadores podrán participar en el proceso de generación de nuevos bloques porque cuanto mayor sea la cantidad arrendada a un nodo DecentralChain, mayores serán las posibilidades de que ese nodo sea seleccionado para generar el siguiente bloque. Si se selecciona ese nodo, el arrendatario recibirá una recompensa. Cuando el usuario comienza a arrendar los tokens, esos tokens arrendados se bloquean y permanecen en la misma dirección con el control total de su propietario (no se transfieren al nodo, simplemente no se pueden gastar hasta que el arrendador cancele el arrendamiento). Lo único que se debe tener en cuenta al arrendar es elegir el operador de nodo correcto, ya que el nodo del operador puede funcionar con una eficiencia diferente y devolver diferentes porcentajes como recompensa.

Recompensas#

  • El propietario del nodo podrá enviar al arrendador una parte de las recompensas según sus condiciones.

  • Cuantas más transacciones se realicen en la red, más recompensas obtienen los arrendadores.

  • Estas recompensas se encuentran principalmente en DecentralCoins pero también pueden ser en forma de diferentes tokens con la característica única DecentralCoins donde se pueden aceptar diferentes tokens como tarifa.

Transacciones LPoS#

Para comenzar el arrendamiento, el titular del token debe crear una transacción de arrendamiento y especificar la dirección del destinatario (dirección del nodo) junto con la cantidad de DecentralCoins para arrendar. Hay dos tipos de transacciones que se utilizan en el LPoS:

Crear un Contrato de Arrendamiento#

Puedes usar Decentral.Exchange en línea para crear un arrendamiento

  • Asegúrate de haber iniciado sesión en tu cuenta. En la pantalla principal, vaya a Billetera > Arrendamiento.

  • En la siguiente pantalla, haga clic en Iniciar Arrendamiento y luego seleccione el destinatario entre la lista de nodos e indique la cantidad que desea arrendar.

  • Verifique toda la información y haga clic en Iniciar Arrendamiento nuevamente para confirmar.