Commit Graph
2 Commits
Author SHA1 Message Date
CharonandClaude Opus 5.5 935ca1ef5e feat(pesos): spec 21 con el certificado de Laurha, en vivo desde el bloque 98268
GSUN-3 (dos tercios para pagar del tesoro, commit anterior) entra con sus pesos medidos.

- scripts/bench/certificados/2026-11-02-spec21-laurha.rs: el fundido de Laurha
  (sha256 03fbaf72), el máximo de 5 procesos en el santuario de la rp1 sobre el wasm de banco
  6f75bb59. Control negativo de Laurha: en el mínimo, las 14 que no cambian quedan entre
  0,990 y 1,002.
- weights.rs: submit_treasury_proposal, finalize_proposal y finalize_override cambian de
  esqueleto (leen y escriben TreasurySupermajorityOf). Se les puso el bloque del certificado y
  luego se ensamblaron los cuatro certificados. --comprobar coincide, y ningún peso baja
  respecto a spec 20.
- Cola de cast_vote: 130,07 µs de un solo proceso. Se cobra; sobre spec 20 (127,72) es un +1,8 %.
- E2E (rv17_tesoro.py) paso 2e: busca el bloque del upgrade sólo dentro de la ventana de estado
  del nodo (~256 bloques), o lo toma de ORIGIN_BLOQUE_UPGRADE. La primera versión pedía el
  estado de bloques podados y el RPC no respondía.

En vivo en la testnet de la casa, con el WASM 048ea752:
- contrafactual: contra spec 20, el E2E reprueba en 2c porque TreasurySupermajorityOf no existe;
- set_code en el bloque 98268: CodeUpdated, la firma vieja se rechaza, la nueva entra, y la
  finalidad avanza;
- E2E verde del 0 al 5, con 2c (2, 3), 2d (la sembrada sin marca) y 2e (frontera en 98268:
  5 propuestas de antes sin marca y 2 de después con ella).

Pruebas: 373 del workspace, 0 fallan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 23:39:47 -05:00
CharonandClaude Opus 5.5 6055faff1b feat(pesos): spec 20, los 17 pesos del gobierno salen de los certificados de Laurha
Ya no queda ningun smoke de Charon. weights.rs se ENSAMBLA desde los tres certificados del banco
de referencia (la Pi 5) con scripts/bench/ensamblar-pesos.py:
- Cada funcion cobra el maximo, coeficiente a coeficiente, de todos los certificados que midieron
  su mismo codigo (mismo esqueleto de lecturas, escrituras y proof que el del ultimo, que es el del
  codigo que corre).
- Con --comprobar dice si el fichero es exactamente ese ensamblado: probado en rojo cambiando a
  mano un peso.
- Los tres certificados quedan en scripts/bench/certificados/ (sha256 18b8fcd6, 1e15d04e y
  6f5cfec1), con su perfil y su evidencia en la cabecera.

Por que el maximo de todos y no solo el ultimo: «El maximo de 5 de un dia no es el de otro»
(Laurha). La revision adversaria de spec 20 encontro que cobrar solo el certificado vigente de
cada funcion dejaba treasury_disbursement en 136 us, cuando el certificado del 2-nov, sobre el
wasm que corre, mide 155 us, y otros siete por debajo de lo medido. Con la regla, ningun peso baja
respecto a spec 19; los que suben, entre el +1 % y el +33 % de ejecucion.

Probado:
- 365 tests verdes.
- Ensayo en la rp1 sobre una cadena con el codigo vivo de spec 19. Contrafactual: con estos pesos,
  el E2E reprueba contra spec 19, porque la cadena cobra los viejos. Tras el upgrade a 20 pasa
  entero, y lo cobrado es weights.rs + extensiones.

Ademas: configs.rs ya no dice «Weights INTERIM hand-derived» en los cinco pallets, que cobran
pesos certificados desde spec 17.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 18:47:00 -05:00