¿Existe una especificación formal para el EVM?

El libro amarillo especifica el EVM, aunque de una manera que favorece el formalismo sobre la legibilidad:

ingrese la descripción de la imagen aquí

Pero no hay indicios de si esto está actualizado con el estado actual del ecosistema Ethereum o no, y no he podido encontrar una especificación formal de VM en ningún otro lugar. ¿Hay uno?

Respuestas (1)

El papel amarillo está actualizado y es la única especificación técnica que conozco. Debajo del título, dice Homestead Draft, que se refiere a la publicación de Homestead más reciente del 14 de marzo de 2016.

borrador de la granja

Acabo de revisar algunas fórmulas hoy y noté que subieron en la numeración, por lo que puede considerar que esta especificación siempre se actualiza con los últimos cambios de diseño.

Por cierto , puedes seguir el progreso en github .

Gracias. Eso responde a la pregunta "¿está actualizado?" (aunque no de una manera particularmente reconocible), pero no a la pregunta "¿hay una especificación separada?". Habiendo leído el apéndice relacionado con la VM, realmente no es un formato muy útil para cualquiera que quiera implementar la VM; el autor parece amar los formalismos sobre la legibilidad.
¿Ha mirado las implementaciones de código abierto de la máquina virtual? Por ejemplo, pyetherem o ethereumjs-vm? Estudiar ese código debería proporcionar información más que suficiente para implementar su propia VM
@dbryson Sí, y nuevamente, ayuda, pero no es una especificación.
Yellowpaper es la única especificación afaik.
@ 5chdn Si edita su respuesta para decir tanto, la aceptaré con gusto (luego me quejo de las personas que diseñan sistemas pero no los documentan correctamente).
@NickJohnson La legibilidad y el nivel de formalismo en una especificación es algo subjetivo; ya que está en github, siéntase libre y cualquiera puede enviar solicitudes de extracción para mejorar su legibilidad :)
@eth Desafortunadamente, no creo que sea posible un estilo más legible sin volver a escribir todo el documento. En mi opinión, el problema es la dependencia de la notación matemática (variables griegas de una sola letra, etc.), cuando una especificación de estilo RFC sería mucho más útil para los implementadores.