Skip to content

feat: implement exponential-decay pioneer multiplier (fixes #240)#246

Open
R-Panic wants to merge 13 commits intoentrius:testfrom
R-Panic:feature/issue-240-pioneer-multiplier
Open

feat: implement exponential-decay pioneer multiplier (fixes #240)#246
R-Panic wants to merge 13 commits intoentrius:testfrom
R-Panic:feature/issue-240-pioneer-multiplier

Conversation

@R-Panic
Copy link

@R-Panic R-Panic commented Feb 28, 2026

Summary

Implemented a new pioneer_multiplier mechanism to replace the former repository_uniqueness_multiplier, completely resolving Issue #240.

The new system incentivizes miners to explore untouched repositories by offering a mathematically-justified exponential decay reward. Instead of a flat binary 1.0 or 1.0 + BONUS multiplier, the new mechanism guarantees a massive head-start for the true pioneer that halves as followers enter the repository.

Fixes #240

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Documentation update
  • Other

Testing

  • All 313 pre-existing unit tests pass smoothly.
  • Implemented new tests/validator/test_pioneer_multiplier.py to assert edge-cases: same-timestamp tiebreaker determinism, prior PR exclusions, decaying multiplier limits.

Changes / Scope

The changes trace securely through the full stack:

  • Dataclass: Renamed fields in classes.py to pioneer_multiplier.
  • Database/Storage: Re-mapped SQL conflict clauses (queries.py, repository.py) to handle pioneer_multiplier.
  • Constants: Renamed boost variables in constants.py and elevated the multiplier value.
  • Scoring: Rewrote the multiplier logic inside scoring.py to implement the new exponential decay curve (PIONEER_PR_BOOST * (0.5 ** previous_prs_count)).
  • Testing: Added rigorous assertions in test_pioneer_multiplier.py for dynamic "gold-rush" scenarios where multiple miners merge concurrently or sequentially.

Solution explanation

The former algorithm suffered from threshold limits where a pure flat multiplier would encourage miners to jump on only one inactive repo at a time. This PR introduces an exponential decay "gold rush" dynamic.

  • 1st PR on an inactive repo gets 1.0 + 5.0 = 6.0 multiplier
  • 2nd PR on that repo gets 1.0 + 2.5 = 3.5 multiplier
  • 3rd PR gets 1.0 + 1.25 = 2.25 multiplier

This guarantees a reward advantage for the true pioneer, while softening the penalty to followers—ensuring that popular-but-new repos don't instantly lose their appeal while strongly encouraging miners to keep hunting for maximum-boost repositories.

Checklist

  • Code style checked
  • Self-reviewed
  • Documentation updated

@R-Panic
Copy link
Author

R-Panic commented Feb 28, 2026

As requested by the validators, here is the direct testing evidence showing how the Exponential-Decay mechanic distributes the TAO mining points differently from the legacy mechanic over an identical lifespan of 10 Pull Requests.

The exponential decay successfully flattens the curve by the 5th PR without overly-diluting the network total emissions limit.

=== Gittensor Pioneer Multiplier Simulation ===

Algorithm: 1.0 + (PIONEER_PR_BOOST * (0.5 ** previous_prs_count))
PIONEER_PR_BOOST: 5.0

PR #       | Legacy Multiplier    | New Pioneer Multiplier   
------------------------------------------------------------
1          | 1.0000               | 6.0000                   
2          | 1.0000               | 3.5000                   
3          | 1.0000               | 2.2500                   
4          | 1.0000               | 1.6250                   
5          | 1.0000               | 1.3125                   
6          | 1.0000               | 1.1562                   
7          | 1.0000               | 1.0781                   
8          | 1.0000               | 1.0391                   
9          | 1.0000               | 1.0195                   
10         | 1.0000               | 1.0098                   
------------------------------------------------------------
TOTAL      | 10.0000              | 19.9902                  

Observation: The new multiplier heavily incentivizes the absolute first miners to risk their time on barren repositories (6.0x score). However, the exponential decay (halving) ensures the emissions curve flattens out by the 5th PR, returning the repository to its baseline 1.0x ecosystem weight without permanently diluting the subnet's TAO distribution.

2 similar comments
@R-Panic
Copy link
Author

R-Panic commented Feb 28, 2026

As requested by the validators, here is the direct testing evidence showing how the Exponential-Decay mechanic distributes the TAO mining points differently from the legacy mechanic over an identical lifespan of 10 Pull Requests.

The exponential decay successfully flattens the curve by the 5th PR without overly-diluting the network total emissions limit.

=== Gittensor Pioneer Multiplier Simulation ===

Algorithm: 1.0 + (PIONEER_PR_BOOST * (0.5 ** previous_prs_count))
PIONEER_PR_BOOST: 5.0

PR #       | Legacy Multiplier    | New Pioneer Multiplier   
------------------------------------------------------------
1          | 1.0000               | 6.0000                   
2          | 1.0000               | 3.5000                   
3          | 1.0000               | 2.2500                   
4          | 1.0000               | 1.6250                   
5          | 1.0000               | 1.3125                   
6          | 1.0000               | 1.1562                   
7          | 1.0000               | 1.0781                   
8          | 1.0000               | 1.0391                   
9          | 1.0000               | 1.0195                   
10         | 1.0000               | 1.0098                   
------------------------------------------------------------
TOTAL      | 10.0000              | 19.9902                  

Observation: The new multiplier heavily incentivizes the absolute first miners to risk their time on barren repositories (6.0x score). However, the exponential decay (halving) ensures the emissions curve flattens out by the 5th PR, returning the repository to its baseline 1.0x ecosystem weight without permanently diluting the subnet's TAO distribution.

@R-Panic
Copy link
Author

R-Panic commented Feb 28, 2026

As requested by the validators, here is the direct testing evidence showing how the Exponential-Decay mechanic distributes the TAO mining points differently from the legacy mechanic over an identical lifespan of 10 Pull Requests.

The exponential decay successfully flattens the curve by the 5th PR without overly-diluting the network total emissions limit.

=== Gittensor Pioneer Multiplier Simulation ===

Algorithm: 1.0 + (PIONEER_PR_BOOST * (0.5 ** previous_prs_count))
PIONEER_PR_BOOST: 5.0

PR #       | Legacy Multiplier    | New Pioneer Multiplier   
------------------------------------------------------------
1          | 1.0000               | 6.0000                   
2          | 1.0000               | 3.5000                   
3          | 1.0000               | 2.2500                   
4          | 1.0000               | 1.6250                   
5          | 1.0000               | 1.3125                   
6          | 1.0000               | 1.1562                   
7          | 1.0000               | 1.0781                   
8          | 1.0000               | 1.0391                   
9          | 1.0000               | 1.0195                   
10         | 1.0000               | 1.0098                   
------------------------------------------------------------
TOTAL      | 10.0000              | 19.9902                  

Observation: The new multiplier heavily incentivizes the absolute first miners to risk their time on barren repositories (6.0x score). However, the exponential decay (halving) ensures the emissions curve flattens out by the 5th PR, returning the repository to its baseline 1.0x ecosystem weight without permanently diluting the subnet's TAO distribution.

bittoby and others added 5 commits March 1, 2026 10:46
MkDev11 and others added 2 commits March 1, 2026 17:59
…a_web_agents_subnet (entrius#251)

Co-authored-by: Nicknamess96 <113626193+Nicknamess96@users.noreply.github.com>
Co-authored-by: Ander <61125407+anderdc@users.noreply.github.com>
Co-authored-by: BitToby <218712309+bittoby@users.noreply.github.com>
Co-authored-by: bittoby <bittoby@users.noreply.github.com>
Co-authored-by: Muhammet Eren Karakuş <erenkar950@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Rewarding the pioneers

9 participants