Introducción al contrato del sistema eos de la serie Bucket de la serie eos: contrato de operación del sistema eosio.system (1)
La elección de supernodo y la votación de supernodo de Eos se basan en cuentas. La función de votación de eosio.system está integrada en el comando del sistema cleos y puede utilizar fácilmente herramientas de línea de comandos para operarla.
La votación se divide en dos roles: cuenta de votación y cuenta de nodo candidato. Si quieren votar/ser elegidos, deben seguir los siguientes pasos:
A continuación, les mostraré los pasos específicos:
1. net, solo los apostados. Solo se puede usar EOS para votar.
El comando delegadobw puede especificar qué cuenta tiene EOS y qué cuenta utilizará los recursos hipotecados.
2. La cuenta se registra como cuenta candidata a supernodo para que otras cuentas puedan votar por ella.
Para registrar una cuenta de candidato de supernodo, debe proporcionar una clave pública, que se utilizará para la verificación de la firma después de ser elegido como supernodo.
3. Vote por la cuenta candidata al supernodo.
Puedes ver que el votante2 ha votado exitosamente por bp1.
Echemos un vistazo a la explicación detallada del comando voteproducer. El sistema cleos voteproducer prods es un comando enviado directamente al supernodo. Puede especificar la cuenta de votación y enviarla a varias cuentas de candidatos del supernodo a la vez. Los nombres de las cuentas deben ordenarse alfabéticamente, de pequeño a grande, con un máximo de 30 cuentas.
Cuando una cuenta de votación quiere cancelar la votación, solo necesita canjear el EOS comprometido. El período de canje es de 3 días.
A continuación, le mostraré los pasos del canje:
1. Para cancelar la hipoteca, puede utilizar el comando undelegatebw del sistema cleos, que es similar al comando delegadobw.
Mi cadena privada cambió el período de canje a 3 minutos. Puede ver el comando undeletebw, que llamó al método de reembolso internamente. Después de 33 minutos, se canjeó el EOS prometido en la cuenta. Hablaré sobre los detalles específicos del código fuente más adelante.
El código fuente de chosebw/undelegatebw esencialmente utiliza el método changebw.
Changebw realizará las siguientes operaciones:
El sistema determinará si la operación es delegarbw o no delegarbw, y si la cuenta es delegarbw. El parámetro de transferencia es verdadero, lo que significa que la cuenta y el destinatario son diferentes, los recursos de EOS están hipotecados al destinatario y la propiedad de EOS se transfiere juntos.
Para la actualización de la tabla de reembolsos, existen diferentes operaciones según diferentes situaciones:
El método undelegatebw mencionado anteriormente, cuando haya EOS que deba canjearse, se activará y entra en vigencia tres días después, posponer la transacción, esta transacción activará el método de reembolso para canjear EOS.
El método determinará si request_time refund_delay en la tabla de reembolso es menor que la hora actual. La operación de canje solo se puede realizar si es menor que la hora actual. request_time La hora para actualizar la tabla de reembolsos de unelegatebw.
El código fuente de la operación de votación utiliza esencialmente el método update_votes.
Esta cuenta se puede registrar como cuenta candidata de supernodo o cuenta proxy de agente. Las cuentas de agentes pueden concentrar los derechos de voto de las cuentas ordinarias y votar en lugar de las cuentas ordinarias.
Antes de votar, se deben realizar una serie de comprobaciones previas, como por ejemplo:
Para animar a los usuarios a votar en serio, EOS introduce el concepto de peso de votación. El peso de la votación disminuirá con el tiempo y cuando el usuario vuelva a activar la operación de votación, el peso de la votación se actualizará al nuevo peso. Por lo tanto, los usuarios deben volver a votar periódicamente por sus supernodos favoritos para garantizar que la efectividad de sus votos no disminuya.
Este artículo presenta el funcionamiento y el código fuente de la votación de eos y la promesa de recursos, y luego presenta las funciones relacionadas y la implementación del código fuente de la subasta de nombres de dominio eosio.system, ¡así que estad atentos!