State Channel, VM, Mempool y Mejoras de Rendimiento

Además de Proof of Fraud de Bitcoin-NG, el nuevo epoch release introdujo una serie de correcciones y mejoras en los state channels, Sophia, VM y mempool.

La semana pasada se cargó un nuevo release en nuestro repositorio de GitHub. El release se centra en Proof of Fraud de Bitcoin-NG.

Como cubrimos ampliamente en nuestra publicación anterior, la mayor contribución de este release es el protocolo Proof of Fraud (PoF) que es responsable de informar un líder de minería malintencionado que crea bifurcaciones en una generación.

Además, este release implementa numerosas funciones relacionadas con los state channels, mempool, la máquina virtual y el rendimiento. Estas son las actualizaciones:

  • Cambia la dificultad de un número de punto flotante a un valor entero como se ve en P2P message PING y el estado del nodo.
  • Agrega un límite fijo de gas por microbloque.
  • Agrega gas fijo a todas las transacciones (las transacciones de creación de contratos y llamadas de contrato utilizan el gas fijo más el gas necesario para su ejecución).
  • Modifica mempool para seleccionar transacciones hasta el límite de gas por microbloque.
  • Reestructura el formato de serialización de los encabezados reduciendo el campo de la versión a 32 bits e introduciendo un campo de indicadores en 32 bits.
  • Actualiza la Finite State Machine (también conocido como FSM) de los state channels para que finalice ahora si detecta que alguien está intentando cerrar el canal en cadena.
  • Agrega las funciones incorporadas String.length y String.concat para las cadenas Sophia.
  • Soluciona un error de Sophia donde None coincidiría con un patrón de Some(x).
  • Agrega eventos (logs) generados por la VM al árbol de estado de llamadas.
  • Arregla la instrucción AEVM CALL para colocar 0 (en lugar de 1) en la pila si el operando de valor no está cubierto por el saldo de la cuenta que se está ejecutando actualmente.
  • Arregla las operaciones primitivas de Sophia AEVM para verificar que el valor especificado esté cubierto por el saldo de la cuenta que se ejecuta actualmente, independientemente de si el valor es utilizado por la operación primitiva.
  • Se corrigió un error que afectaba la sincronización de grandes generaciones (> 64K).
  • Mueve la codificación/decodificación del valor de Sophia del código de bytes AEVM al código Erlang. Esto afecta al consenso.
  • Hace más eficiente la ejecución de algunas instrucciones relacionadas con la cadena en los contratos.
  • Hace que la instrucción TIMESTAMP sea determinista utilizando el timestamp del microbloque actual.
  • Hace que la instrucción DIFFICULTY sea determinista utilizando la dificultad en el bloque clave anterior.
  • Hace que el costo de gas de las operaciones primitivas de oracle VM sea proporcional al TTL de los objetos (oracles, consultas, respuestas) en los árboles de estado.
  • Mejorar la estabilidad de la HTTP API del usuario.

Sigue el progreso del desarrollo en Pivotal Tracker.


¿Interesado en æternity? Síguenos:

GitHub | Forum | Reddit | Telegram | Twitter | Facebook | Mail


Leave a Reply

Your email address will not be published. Required fields are marked *