Visión General de la Prueba de Participación
Celo utiliza un protocolo de consenso de Tolerante a Fallas Bizantinas para acordar nuevos bloques a anexar a la blockchain. Las instancias del software de Celo que participan en este protocolo de consenso son conocidas como validadores. Más precisamente, son los validadores activos o validadores elegidos, para distinguirlos de los validadores registrados que están configurados para participar pero no son seleccionados activamente.
El mecanismo de prueba de participación de Celo es el conjunto de procesos que determinan qué nodos se convierten en validadores activos y cómo se organizan los incentivos para asegurar la red.
El primer conjunto de validadores activos se determina en el bloque de génesis. A partir de entonces, al final de cada época, un número fijo de bloques fijados en el momento de la creación de la red, se ejecuta una elección que puede llevar a que se agreguen o eliminen validadores.
En las Elecciones de Validadorde Celo, los poseedores del activo nativo, CELO, pueden participar y ganar recompensas por hacerlo. Las cuentas no hacen votos directos para los validadores, sino que votan por grupos de validadores.
Antes de que puedan votar, los poseedores de CELO mueven sus balances al contrato inteligente Locked Gold. Locked Gold puede utilizarse simultáneamente para: colocar votos en las elecciones de validador, mantener una participación para satisfacer los requerimientos de registro como validador o grupo validador, y también votando en las propuestas de Gobernanza. Esto significa que los validadores y grupos pueden votar y ganar recompensas con su participación.
A diferencia de otros sistemas de prueba de participación, mantener bloqueado CELO o votar por un grupo no pone esa cantidad "en riesgo" de amonestación debido al comportamiento de los validadores o grupos de validadores. Sólo la participación colocada por un validador o grupo puede ser amonestada.
#
ImplementaciónLa mayor parte del mecanismo de prueba de participación de Celo se implementa como contratos inteligentes, y como tal se puede cambiar a través del proceso de Gobernanza de Celo en cadena.
Accounts.sol
administra delegaciones clave y metadatos para todas las cuentas, incluyendo Validadores, Grupos y poseedores de CELO bloqueado.LockedGold.sol
administra el ciclo de vida de CELO bloqueado.Validators.sol
maneja el registro, la baja del registro, participación, premios de gestión de claves y epoch para validadores y grupos de validadores, así como rutinas para gestionar a los miembros de los grupos.Election.sol
gestiona las votaciones de CELO bloqueados y las recompensas de epoch y ejecuta las Elecciones de Validador.
En Celo blockchain:
consensus/istanbul/backend/backend.go
realiza las elecciones del validador en el último bloque del epoch y calcula el nuevo conjunto de validadores.consensus/istanbul/backend/pos.go
es llamado en el último bloque del epoch para procesar puntuaciones de tiempo de actividad del validador y hacer recompensas de epoch.