Notas de la versión - v0.8.1
Título: Mejorar los límites de recursos, la precisión de costes y la validación
Versión: v0.8.1
URL de la versión: https://github.com/blinklabs-io/plutigo/releases/tag/v0.8.1
Comparación: v0.8.0…v0.8.1
Esta versión hace más predecible la descarga de los resultados, alinea la contabilidad de costes de Plutus V4 con el modelo de referencia, reduce la sobrecarga de asignación y refuerza la codificación y la validación de valores.
Rendimiento
Sección titulada «Rendimiento»-
Añadió un presupuesto de trabajo CEK determinista de
maxDischargeWork = 1,000,000para cada resultado y lo compartió con la materialización de constantes. Cuando un resultado supera el presupuesto o se expande de forma exponencial, Plutigo devuelveErrCodeBudgetExhaustedcon el mensajeresult term too large to discharge. -
Alineó las métricas de costes de los builtins de Value de Plutus V4 con el modelo de referencia:
insertCoinylookupCoinusanValueMaxDepth, mientras quescaleValueyunionValueusanValueTotalSize. Esto evita cargos de presupuesto incorrectos que podrían rechazar transacciones válidas. -
Compartió las cachés inmutables de costes y disponibilidad de CEK entre máquinas, almacenó en caché la disponibilidad de builtins y reutilizó las estructuras temporales de los builtins. Plutigo también redujo las asignaciones de
equalsDatay mejoró la portabilidad de los benchmarks de reproducción. -
Redujo las asignaciones durante la decodificación y validación FLAT mediante arenas dimensionadas según la entrada o geométricas, magnitudes enteras respaldadas por arenas y envoltorios de tipos compuestos respaldados por arenas. Añadió pruebas centradas en las asignaciones para verificar este comportamiento.
Validación y codificación
Sección titulada «Validación y codificación»- Reforzó la codificación CBOR y JSON anidada mediante búferes compartidos, lo que hace lineal la codificación anidada. Los decodificadores concretos ahora aplican los límites de JSON a todo el documento. La validación canónica centralizada de Value rechaza de forma coherente las estructuras de Value no válidas en codecs, analizadores y builtins CEK.
Docs authored by Doc Holiday