Behavioral Discrepancy between gtest and g1 runtimes

Behavioral Discrepancy Report (gtest vs g1, excluding weights)

Scope

This report lists runtime behavior differences found between:

  • runtime/gtest/src
  • runtime/g1/src

Weight files are intentionally excluded.

Discrepancies

1) Proxy type mismatch: TechnicalCommitteePropose missing in g1

  • gtest: ProxyType::TechnicalCommitteePropose exists and is allowed to proxy TechnicalCommittee::propose.
    • Reference: runtime/gtest/src/lib.rs:156, runtime/gtest/src/lib.rs:191
  • g1: this proxy variant and its filter arm do not exist.
    • Reference: runtime/g1/src/lib.rs:156

Behavior impact: A proxy authorization path available on gtest is unavailable on g1.

2) Smith issuance cap mismatch: SmithMaxByIssuer

  • gtest: SmithMaxByIssuer = 100
    • Reference: runtime/gtest/src/parameters.rs:131
  • g1: SmithMaxByIssuer = 12
    • Reference: runtime/g1/src/parameters.rs:138

Behavior impact: Smith certification issuance limits are much stricter on g1.

3) Membership renewal period mismatch: MembershipRenewalPeriod

  • gtest: 56 * DAYS
    • Reference: runtime/gtest/src/parameters.rs:115
  • g1: 2 * MONTHS
    • Reference: runtime/g1/src/parameters.rs:121

Using current shared constants, this is:

  • gtest: 806,400 blocks
  • g1: 876,600 blocks
  • delta: 70,200 blocks (about 4.875 days at 6s/block)

Behavior impact: Membership renewal timing window is longer on g1.

Edited by Éloïs