@NewtonProtocol

Fui a buscar el tercer resultado.

La Litepaper lo establece de manera clara, al principio, casi de pasada: una Política de Newton es un conjunto de reglas programable que determina si una transacción debe continuar, retrasarse o ser denegada.

Tres resultados.

No dos.

Lo leí por encima la primera vez. Me pareció una definición, el tipo de frase que, en silencio, lo prepara todo para lo que sigue. Supuse que la implementación eventualmente llegaría al mismo lugar.

Así que fui a buscar dónde.

Newton Mainnet Beta se construye sobre autorización antes de la liquidación. Un propósito se evalúa frente a una política. Los operadores llegan al quórum. Sus aprobaciones se combinan en una única atestación. El contrato inteligente la verifica. La transacción continúa, o no.

Leí esa secuencia varias veces.

Continuar.

O no.

No pude encontrar una tercera rama.

No hay estado pendiente.

No hay sala de espera.

Ninguna señal que diga "vuelve más tarde".

Quería tener cuidado aquí, porque justo es donde es fácil excederse.

No estoy diciendo que el retraso no exista.

Estoy diciendo que no pude encontrar dónde aparece.

Así que dejé el Litepaper y abrí la documentación para desarrolladores.

La Guía de inicio rápido de Newton recorre un flujo de autorización real. Un script envía una intención.

Un operador evalúa una política de sanciones. El resultado se describe como una decisión de permitir/denegar.

Permitir o denegar.

Aún no hay tercer resultado.

Un solo ejemplo no es suficiente para probar nada, así que seguí.

En vez de la documentación que lo describe, consulté la referencia real del SDK de TypeScript.

El SDK expone cinco estados del ciclo de vida de la tarea:

Created

Respondida

AttestationSpent

AttestationExpired

SuccessfullyChallenged

Esperaba que uno de ellos representara el retraso.

Ninguno.

Created es una tarea en espera de una respuesta. Un estado del ciclo de vida, no un veredicto de la política. Los estados restantes describen trabajo que ya se había decidido.

Entonces dejé de mirar el ciclo de vida de la tarea y miré la decisión en sí.

`evaluationResult` está tipado como booleano.

Cada método de simulación devuelve la misma forma:

`allow: boolean`

En la interfaz pública, cada decisión de política que pude encontrar seguía siendo binaria.

El Litepaper define tres resultados de política.

La interfaz pública expone dos.

No pude confirmar si existe ese tercer resultado en algún lugar fuera del SDK público, dentro de la lógica del backend o en otra capa de flujo de trabajo que no se expone públicamente.

Lo que sí puedo confirmar es algo más limitado.

Los desarrolladores que construyen contra la interfaz publicada de Newton solo reciben decisiones de política booleanas. El ciclo de vida de la tarea y el veredicto de la política son conceptos separados en el sistema de tipos, y no pude encontrar "delayed" representado en ninguno de los dos.

Busqué el resultado de la tercera política de Newton.

Todavía lo estoy buscando.

$NEWT becomes more interesting to me once developers can build against that third outcome instead of only reading about it.

#Newt