Los grandes eventos de lanzamiento de blockchain multicliente distribuidos son poco comunes. Ayer (30 de julio) fue el quinto aniversario del nacimiento de ETH 1.0: se puede ver que un evento de cumpleaños tan importante es aún más raro.
ETH 2.0 testnet Medalla, que se puso en marcha el 4 de agosto, puede ser la única vista previa antes del lanzamiento oficial de la cadena de balizas a finales de este año.
El mecanismo de creación de ETH 2.0 es un poco complicado, que es lo que llamamos el proceso de autoarranque de blockchain. Voy a explicarlo en detalle. Para la especificación técnica real, puede ver mis comentarios en "Notas de especificación ETH 2.0".
A continuación, "génesis" se refiere al momento en que la cadena de balizas se activa y comienza a procesar certificaciones y bloques, que es el comienzo de la ranura 0 de la época 0.
(Si no desea leer el artículo largo, puede saltar directamente a la sección "Escena" y comenzar a leer).
Aquí hay un poco de historia primero. Cualquiera puede convertirse en un validador de ETH 2.0 enviando un depósito de 32 ETH y algunos otros datos al contrato de ETH 1.0. Por ejemplo, puede convertirse en un validador en la red de prueba Medalla a través del portal Lanchpad. ¡Tenga en cuenta que en la red de prueba Medalla, estamos usando la red de prueba ETH de Goerli! No intente enviar mainnet ETH al contrato. Por supuesto, cuando se lance oficialmente la cadena de balizas, utilizaremos la red principal ETH real.
Los contratos de margen solo reaccionarán a depósitos válidos, es decir, depósitos únicos de 32 ETH o más, depósitos múltiples por un total de 32 ETH o más (datos adicionales a verificar, por ejemplo, firmas criptográficas). Cualquier margen inválido o insuficiente será ignorado.
En la fase previa a la génesis, solo los nodos de la cadena de balizas participarán en la red ETH 2.0; una vez que se complete la creación, los validadores pueden participar de inmediato en el mecanismo de consenso. Los nodos de la cadena Beacon mantienen el estado del sistema y se comunican entre sí en una red de igual a igual.
Por lo tanto, antes de la génesis, habrá algunos nodos de cadena de balizas escuchando ETH 1.0 y monitoreando el depósito efectivo en el contrato de depósito. De hecho, los nodos de la cadena de balizas no necesitan monitorear ETH 1.0 todo el tiempo: los bloques en ETH 1.0 tienen una marca de tiempo, por lo que los nodos pueden ponerse al día en cualquier momento antes de la génesis.
Como todos sabemos, la cadena ETH 1.0 se puede revertir y las transacciones que ya estaban en la cadena también pueden volverse inválidas debido a cambios en la cadena de bloques. Es por eso que cuando transfiere ETH a un intercambio, debe esperar 30 bloques para que se confirme la transacción. Las reversiones suelen ser pequeñas, solo 1 o 2 bloques, pero cuando la red está bajo ataque, las reversiones son mucho mayores. Para evitar una reversión de ETH 2.0, tenemos mucho cuidado de mantener un retraso de 14*1024 segundos (alrededor de 4 horas) al sincronizar ETH 1.0. Llamo a esto la "distancia de seguimiento" a ETH 1.0.
Para la creación, las dos preguntas más importantes son "cuándo" y "quién". Específicamente, "¿Cuándo ocurrirá la génesis?" y "¿Quién será el validador de génesis?" Estas dos preguntas determinan el estado de génesis de la cadena de balizas, y otros estados se derivan del estado de génesis.
El proceso general es el siguiente:
Supervise las entradas de margen en ETH 1.0.
Después de esperar lo suficiente, con suficiente margen, se crea el estado de creación.
Dos días después, se lanza ETH 2.0 al desencadenar el evento de génesis.
Específicamente, en el paso 2, queremos encontrar el primer bloque ETH 1.0 que satisfaga las siguientes dos condiciones: (a) hay suficiente margen bloqueado; (b) la marca de tiempo en el bloque no es demasiado antigua. El estado de Génesis está determinado por este bloque.
Las tres configuraciones de parámetros principales que afectan "cuándo" y "quién" son las siguientes:
MIN_GENESIS_TIME, se refiere a la hora más temprana en que ocurrió el evento de creación. En lo que respecta a Medalla, es hora de Unix 1596546000, es decir, hora de Beijing el 4 de agosto a las 9:00 pm (martes).
GENESIS_DELAY es 172800 segundos, o aproximadamente 48 horas. Este es el intervalo de tiempo entre la creación del estado de génesis y la activación del evento de génesis. Los equipos de clientes pueden usar este tiempo para grabar el estado de génesis en su software de nodo de cadena de balizas. De esta manera, los nodos de la cadena de balizas que no ejecutan nodos de validación no necesitan continuar monitoreando la cadena ETH 1.0. También tenemos tiempo para organizar transmisiones y fiestas de génesis.
MIN_GENESIS_ACTIVE_VALIDATOR_COUNT se refiere a la cantidad mínima de depósitos válidos que necesitamos bloquear en el contrato de margen ETH 1.0 antes de que se pueda crear el estado de génesis. Para Medalla (y mainnet), se requiere un mínimo de 16384 validadores.
Lección aprendida del lanzamiento de la red de prueba de Medalla: Si bien tenemos tiempo para organizar la fiesta, 44 horas es un poco exagerado para garantizar que el nodo de lanzamiento esté en buenas condiciones, que el software de cliente actualizado contenga toda la información necesaria y que sea fácil. para que los usuarios finales utilicen rush. Podemos aumentar GENESIS_DELEY para mainnet.
El estado de génesis se genera sobre la base del primer bloque ETH 1.0 que cumple las siguientes dos condiciones:
Cuando se crea este bloque, el número de validadores debe ser al menos 16384 (MIN_GENESIS_ACTIVE_VALIDATOR_COUNT).
La marca de tiempo no es demasiado antigua (no más antigua que MIN_GENESIS_TIME - GENESIS_DELAY).
Según el orden en que se cumplan las dos condiciones anteriores, el proceso de génesis puede completarse de las dos formas siguientes:
En este caso, la condición 1 se cumple primero. Antes del tiempo de génesis más temprano, hemos obtenido suficiente margen.
De acuerdo con MIN_GENESIS_TIME - GENESIS_DELAY (tiempo de génesis más temprano menos retraso de génesis), el punto de tiempo de la condición 2 de Medalla es a las 9:00 p. m. del 2 de agosto (domingo), hora de Beijing.
El bloque ETH 1.0 que usamos para desencadenar el evento de génesis tuvo que ser extraído después de este punto en el tiempo. Suponga que este bloque fue minado a las 9:00:05 pm del 2 de agosto, hora de Beijing (5 segundos después de las 9:00).
Si el contrato de margen ha recibido al menos 16384 márgenes válidos (incluidas todas las transacciones de margen en este bloque), todos los márgenes recibidos en el contrato de margen también se incluyen en el estado de génesis. Por lo tanto, hay más de 16384 validadores de Génesis en la cadena ETH 2.0. (En la red de prueba de Altona, configuramos MIN_GENESIS_ACTIVE_VALIDATOR_COUNT en 640, pero los últimos validadores de génesis tenían 685).
Este bloque ETH 1.0 desencadena el cálculo del estado de génesis. El evento de génesis de Medalla ocurrirá exactamente 48 horas después de la marca de tiempo de este bloque. Siguiendo el ejemplo anterior, es el 4 de agosto a las 9:00:05 p. m. hora de Beijing.
Una cosa a tener en cuenta es que, considerando la distancia de seguimiento de ETH 1.0, en realidad tenemos que esperar 4 horas antes de obtener el estado de génesis. En otras palabras, en el escenario actual, tenemos que esperar hasta las 5:00 p. m. del 2 de agosto, hora de Beijing, para obtener el estado de creación.
Resumen
El evento de génesis se activará unos segundos después del tiempo de génesis más temprano si se cumple primero con el requisito de depósito mínimo. Los validadores que se registraron 48 horas antes del evento de génesis serán incluidos en el estado de génesis.
En este caso, la condición 2 se cumple primero. Debido a la lenta entrada de depósitos de margen, los requisitos mínimos no se cumplieron dentro del tiempo especificado.
En este caso, el bloque ETH 1.0 que usamos para desencadenar el evento de génesis debe contener el depósito válido 16384. Supongamos que este bloque fue minado a las 8:34:56 pm del 5 de agosto, hora de Beijing.
El estado de la cadena de balizas ahora contendrá 16384 validadores y otros depósitos válidos en este bloque. Por lo tanto, si este bloque contiene varios depósitos, el depósito incluido en el estado de la cadena de balizas será ligeramente superior al requisito mínimo.
El tiempo de génesis es 48 horas después de la marca de tiempo del bloque. Siguiendo el ejemplo anterior, son las 8:34:56 p. m. del 7 de agosto, hora de Beijing.
Nuevamente, considerando la distancia de seguimiento de ETH 1.0, tenemos que esperar hasta 4 horas después de que se extraiga este bloque de ETH 1.0 para obtener el estado de génesis.
Resumen
Si las entradas de margen son lentas, el evento de génesis se activará 48 horas después de la extracción del bloque ETH 1.0 que contiene el margen válido 16384. El estado de génesis contendrá al menos 16834 validadores, y posiblemente un ligero aumento debido a la cantidad de transacciones de margen incluidas en este bloque ETH1.0 (lo que eleva la cantidad total de validadores por encima de 16834).
Este artículo ha presentado el contenido básico del mecanismo de creación de ETH 2.0.
Si desea convertirse en un validador de génesis en la red de prueba de Medalla, asegúrese de enviar el depósito al contrato de depósito a las 9:00 p. m. del 2 de agosto, hora de Beijing.
Si no envía un depósito antes de que se confirme el estado de génesis, solo puede esperar en la fila de acuerdo con el tiempo de compromiso y solo puede unirse al conjunto de validadores después de la génesis. Las colas pueden durar horas o días.
¡Espero verte en Medalla!
Tags:
Explotar minas en terreno llano. Esta vez, la tormenta proviene de la comunidad de discusión oficial de los desarrolladores de Ethereum "Ethereum Magician Forum". Porque hay una propuesta en la propuesta del desarroll.
Jinjin Finance Blockchain, noticias del 22 de agosto Hoy en día, las personas pueden obtener ingresos pasivos simplemente almacenando sus activos encriptados en plataformas DeFi y servicios DeFi.
La plataforma estable de cambio de divisas Curve planea agregar otro grupo de fondos: HBTC/WBTC.El 26 de agosto de 2020, para aumentar aún más la liquidez de las monedas ancladas en Bitcoin en Ethereum.
Los grandes eventos de lanzamiento de blockchain multicliente distribuidos son poco comunes. Ayer (30 de julio) fue el quinto aniversario del nacimiento de ETH 1.
BTC rompió efectivamente la marca de 12,000 enteros. A lo largo del mercado histórico, cada vez que Bitcoin se reduce a la mitad.
Este artículo no está dirigido a ningún cliente. Necesitamos saber que cada cliente e incluso cada especificación puede contener deficiencias y lagunas.
La dificultad de la minería de Bitcoin ha aumentado un 9 % desde la reducción a la mitad del 11 de mayo de 2020.