GRANDPA
Introducción
GRANDPA, que significa " Acuerdo de prefijo derivado de ANcestor recursivo basado en fantasma " , son los algoritmos de consenso utilizados por Avail . GRANDPA funciona en conjunto con otro consenso. GRANDPA en sí mismo es un algoritmo de finalización de bloques y, como tal, debe combinarse con mecanismos de creación de bloques como Aura.(se abre en una nueva pestaña)o BABE (Avail usa BABE) para garantizar una cadena de bloques que funcione correctamente.
La finalidad en el contexto de GRANDPA significa que una vez que se agrega un bloque a la cadena de bloques, es irreversible y no se puede revertir. Esto contrasta con la finalidad probabilística que se encuentra en algunos otros mecanismos de consenso.
Para observar una ilustración sencilla de GRANDPA en acción, la inspección de los archivos de registro del nodo Avail revela tanto la importación de bloques como la posterior finalización de estos bloques. En el siguiente extracto de registros, el primer bloque que se finalizará es 127972, seguido de 127973 y 127974. Como se enfatizó anteriormente, esto significa que la información contenida en los bloques de 127974 y los que le preceden ha alcanzado la finalidad, volviéndolos inmutables e irreversibles.
Funciones del ABUELO
A continuación se ofrece una descripción general de cómo funciona GRANDPA dentro de Avail, más allá de la finalidad.
Protocolo GHOST : GRANDPA utiliza el protocolo GHOST (Subárbol más observado y codicioso), un concepto tomado del protocolo blockchain de Ethereum. El protocolo GHOST ayuda a seleccionar la cadena más segura y acordada considerando no solo la cadena principal sino también los "tíos" o bloques competidores.
Derivación recursiva de ancestros : GRANDPA emplea un mecanismo de derivación recursiva de ancestros para determinar de manera eficiente la finalidad de los bloques. Este proceso implica determinar un ancestro común entre un conjunto de bloques en competencia en la red. Este ancestro común se utiliza luego para finalizar los bloques.
Tolerancia a fallas bizantinas : GRANDPA es tolerante a fallas bizantinas, lo que significa que puede mantener su corrección y seguridad incluso cuando algunos nodos de la red se comportan de manera maliciosa o fallan. Esto es crucial para garantizar la solidez del algoritmo de consenso frente a posibles ataques.
Dispositivo de finalidad : GRANDPA a menudo se denomina "dispositivo de finalidad" porque se centra específicamente en proporcionar finalidad a los bloques producidos por el algoritmo de consenso BABE en la cadena Avail. Mientras que BABE es responsable de proponer y producir bloques, GRANDPA finaliza estos bloques, asegurándose de que se agreguen permanentemente a la cadena de bloques.
Pasos de finalización del ABUELO
Secuencia de eventos del ABUELO para lograr la finalización de nuevos bloques:
Un nodo asignado como "primario" difunde el bloque más alto que considera potencialmente final de la ronda anterior.
Luego de un retraso en la red, cada validador transmite un "voto previo" para el bloque más alto que cree que debería finalizarse. Suponiendo que la gran mayoría de los validadores sean honestos, este bloque debería extender la cadena transmitida inicialmente por el primario. Esta cadena recién propuesta podría constar de varios bloques más que la última cadena que se finalizó oficialmente.
Cada validador calcula el bloque más alto que puede considerarse finalizado en función de la recopilación de votos previos. Si el conjunto de votos previos extiende la última cadena finalizada oficialmente, cada validador procede a emitir un "compromiso previo" a favor de esa cadena en particular.
Posteriormente, cada validador espera la recepción de compromisos previos adecuados para formular un mensaje de compromiso, respaldando oficialmente la cadena recién finalizada.
Last updated