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>
This commit is contained in:
1 parent
158060bfe4
commit
6055faff1b
7 files changed
+2420
-123
No files matched your search
@@ -459,8 +459,8 @@ impl pallet_session::Config for Runtime {
|
||||
|
||||
impl origin_chain_provenance::Config for Runtime {
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
// Weights INTERIM hand-derived DB-aware (cierra el DoS de proof_size=0 de los
|
||||
// placeholders). Regenerable vía `benchmark pallet` cuando aterrice HW/omni-bencher.
|
||||
// Pesos medidos en el banco de referencia (la Pi 5, certificados de Laurha): ver la
|
||||
// cabecera de su weights.rs.
|
||||
type WeightInfo = origin_chain_provenance::weights::SubstrateWeight<Runtime>;
|
||||
}
|
||||
|
||||
@@ -484,7 +484,8 @@ impl origin_chain_fees::Config for Runtime {
|
||||
/// — pool-alimentación y pool-consumo apuntan a la misma cuenta og/subsy
|
||||
/// (jamás re-declarar el literal: un typo divergiría las cuentas).
|
||||
type SubsidyPalletId = EmissionSubsidyPalletId;
|
||||
// Weights INTERIM hand-derived DB-aware (ver weights.rs). Regenerable en HW.
|
||||
// Pesos medidos en el banco de referencia (la Pi 5, certificados de Laurha): ver la
|
||||
// cabecera de su weights.rs.
|
||||
type WeightInfo = origin_chain_fees::weights::SubstrateWeight<Runtime>;
|
||||
}
|
||||
|
||||
@@ -503,7 +504,8 @@ impl origin_chain_fees::Config for Runtime {
|
||||
|
||||
impl origin_chain_agent_identity::Config for Runtime {
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
// Weights INTERIM hand-derived DB-aware (ver weights.rs). Regenerable en HW.
|
||||
// Pesos medidos en el banco de referencia (la Pi 5, certificados de Laurha): ver la
|
||||
// cabecera de su weights.rs.
|
||||
type WeightInfo = origin_chain_agent_identity::weights::SubstrateWeight<Runtime>;
|
||||
}
|
||||
|
||||
@@ -633,7 +635,8 @@ impl origin_chain_governance::Config for Runtime {
|
||||
type MinOverrideQuorum = DiezPorCientoDeLoQuePuedeVotar;
|
||||
type VoteQuorum = DiezPorCientoDeLoQuePuedeVotar;
|
||||
type TreasuryPalletId = GovernanceTreasuryPalletId;
|
||||
// Weights INTERIM hand-derived DB-aware (ver weights.rs). Regenerable en HW.
|
||||
// Pesos medidos en el banco de referencia (la Pi 5) y ensamblados desde los certificados de
|
||||
// Laurha: ver la cabecera de origin_chain_governance::weights.
|
||||
type WeightInfo = origin_chain_governance::weights::SubstrateWeight<Runtime>;
|
||||
}
|
||||
|
||||
@@ -684,7 +687,8 @@ impl origin_chain_emission::Config for Runtime {
|
||||
// Reusa el MISMO vault de governance (og/gvtry) para el treasury.
|
||||
type TreasuryPalletId = GovernanceTreasuryPalletId;
|
||||
type SubsidyPalletId = EmissionSubsidyPalletId;
|
||||
// Weights INTERIM hand-derived DB-aware (ver weights.rs). Regenerable en HW.
|
||||
// Pesos medidos en el banco de referencia (la Pi 5, certificados de Laurha): ver la
|
||||
// cabecera de su weights.rs.
|
||||
type WeightInfo = origin_chain_emission::weights::SubstrateWeight<Runtime>;
|
||||
}
|
||||
|
||||
|
||||
@@ -374,6 +374,10 @@ pub const IMPL_NAME: &str = borrowed_str(&VERSION.impl_name);
|
||||
/// lógica ni ningún storage, sólo lo que cuesta cada extrinsic. Es el primer upgrade que se
|
||||
/// aplica en vivo a la testnet de la casa (rp1), por `set_code`.
|
||||
///
|
||||
/// **v20 (2026-11-02), sólo pesos:** los 17 extrinsics del gobierno cobran lo que certificó Laurha
|
||||
/// en el banco de referencia de la rp1 (ver la cabecera de `origin_chain_governance::weights`). Ya
|
||||
/// no queda ningún smoke. No cambia el código, ni el storage, ni la codificación.
|
||||
///
|
||||
/// **v19 (2026-10-29), RV17 decidido por David:** el quórum es el 10 % de lo que PUEDE VOTAR (la
|
||||
/// emisión menos las cuentas sin llave: pools, vault, bonds y revive). «Sí, del 10 % de lo que
|
||||
/// puede votar» (David, 29-oct). En mainnet pasa de ~100M a ~35,1M OGC; en la testnet de la casa
|
||||
@@ -1043,7 +1047,7 @@ pub const VERSION: sp_version::RuntimeVersion = sp_version::RuntimeVersion {
|
||||
spec_name: alloc::borrow::Cow::Borrowed("origin-chain"),
|
||||
impl_name: alloc::borrow::Cow::Borrowed("origin-chain-charon"),
|
||||
authoring_version: 1,
|
||||
spec_version: 19,
|
||||
spec_version: 20,
|
||||
impl_version: 1,
|
||||
apis: RUNTIME_API_VERSIONS,
|
||||
transaction_version: 1,
|
||||
@@ -1204,7 +1208,7 @@ mod tests {
|
||||
/// mismo commit en que la version subio a 12.
|
||||
#[test]
|
||||
fn spec_version_vigente_y_transaction_version_intacta() {
|
||||
assert_eq!(RUNTIME_VERSION, 19);
|
||||
assert_eq!(RUNTIME_VERSION, 20);
|
||||
assert_eq!(TRANSACTION_VERSION, 1);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user