Releases: allora-network/allora-chain
Releases · allora-network/allora-chain
v0.6.0
Added
- #624 Add
nurse
internal healthcheck service based onpprof
. Seehealth/README.md
. - #642 Add release signing keys
- #648 Update emissions v5 migration to reset way more maps => complete cleanup of poisonously negative values
Changed
- #538 Refactor Inference Synthesis to use Functions instead of "Builder Pattern"
- #625 Determine what percentage of rewards to pay to each topic based on time-based accumulation rather than instantaneously.
Fixed
- #615 Improvement to merit-based sortition to enable more cycling through the crowd
- #615 Fixed runaway regret calculation where large influx of workers would cause the regret to grow negatively without bound
- #635 Fixed occasional nil pointer dereference bug when calling
GetNetworkInferences
. Also, actually filled in loss block height return value.
Added
- 612 Load testnet state into local fork via in-place-testnet command
Security
v0.6.0-rc
v0.6.0-rc-1 Release candidate 1 for v0.6.0 release.
v0.5.1
Implement in-place-testnet on version v0.5.0 (#628) <!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺ v ✰ Thanks for creating a PR! You're awesome! ✰ v Please note that maintainers will only review those PRs with a completed PR template. ☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --> ## Purpose of Changes and their Description Port in-place-testnet implementation to current version on main (v0.5.0) so we can use it to test the upgrade to version v0.6.0. Cherry picked from this PR: https://github.com/allora-network/allora-chain/pull/612 ## Link(s) to Ticket(s) or Issue(s) resolved by this PR https://linear.app/alloralabs/issue/PROTO-2668/implement-in-place-testnet-on-version-v050 ## Are these changes tested and documented? - [x] If tested, please describe how. If not, why tests are not needed. - [ ] If documented, please describe where. If not, describe why docs are not needed. - [ ] Added to `Unreleased` section of `CHANGELOG.md`? Tested using: https://www.notion.so/upshothq/Testing-upgrades-locally-or-on-devnet-11f34d40db4880abac30d507ed4ee2a6 ## Still Left Todo *Fill this out if this is a Draft PR so others can help.*
v0.5.0
Summary
- Implement a fix for incomplete migration of topic fields from the v0.4.0 upgrade.
- Add additional RPC endpoint to allow for recalculating
the inflation rate / target emission rate more often than once per month. - Update to use rewardable topics as active topics instead of using them separately.
- Other miscellaneous minor fixes
Added
- #584 Allow admins to force target emission recalculation on params update and via dedicated mint RPC endpoint
- #592 Update to use rewardable topics as active topics and rename
PickChurnableActiveTopics
toUpdateNoncesOfActiveTopics
- #602 Refactor: Fix query server proto v4 (refactors #592)
- #607 Add events for building research monitoring suite
Fixed
- #582 Additional topic fields validation
- #587 Update Migration Tests to include NaN Initial Regrets Test
- #590 Clear NaN in maps by deleting all map values during migration
- #595 Emit inference and forecast score events in case of 1 actor
- #596 EMA protection against NaN values
- #598 Math Operations on NaNs Should Return Errors
- #604 Migration: clean additional stores. Ensure record pruning on reward failure. Autocli fix of multi-reputer-stake function.
Security
v0.4.0-docker-upgrade
Same as the official v0.4.0 release however also includes updates to the docker compose file for those validators running docker images.
v0.4.0
v0.4.0
Summary
Implements fixes for our June 2024 Sherlock.xyz audit, including important fixes for determining which topics are considered active.
Added
- #542 Add scalable management of active topics with associated queries such as
GetActiveTopicsAtBlock
andGetNextChurningBlockByTopicId
- #556 Scores now take an exponential moving average of the score rather than using the instantaneous score value from this epoch.
- #568 Added merit based sortition so more actors can have their chance to prove their talents
Removed
- #542 As part of active topic management, we removed
GetActiveTopics
and other (especially paginated) remnants of an unpartitioned store of active topics.
Fixed
- #544 Added check against zero-rewards after conversion to cosmosInt
- #547 Improve error handling on InsertPayload, fixed/added tests err handling
- #550 Fix reputer window upper limit
- #555 Refactor: Rename TestSuite names
- #567 Fix worker nonce window closing as soon as it opens
Security
v0.4.0-release-RC
add online, weak merit based sortition without new scores yet (#568) <!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺ v ✰ Thanks for creating a PR! You're awesome! ✰ v Please note that maintainers will only review those PRs with a completed PR template. ☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --> ## Purpose of Changes and their Description ### Why "Weak"? @jmdkastro formulated a well-defined theory of merit-based sortition plus simulation. This rhymes with that, but is not exactly that. A consequence of https://github.com/allora-network/allora-chain/pull/567 will be way greater stagnation in the active set, as those with scores have an actual opportunity to make it into their topic's epochs. Hence, there is a need to quickly add a non-corrosive form of permeability to the network. This route maximizes our ability to serve large cohorts of workers while enabling for more sophisticated methods later, potentially as fast-follows. ### How it Works #### Definition * **Active set** = Your inference/forecast/reputer loss payload is considered as part of rewards/inference synthesis calculations * **Passive set** = Your inference/forecast/reputer loss payload is not considered as part of rewards/inference synthesis calculations We differentiate between these 2 sets because calculations for the active set are expensive => this must be bounded. However, we must cycle through participants, so we now need a name for those "passively considered" actors. #### When scores are calculated in rewards * An EMA score is updated for each actor of each type * A topic-defined quantile of the active set is taken for each actor type (inferer, forecaster, reputer) * This will be used in the next epoch * For example if EMA score among active set is [10,20,30] then topic quantile might be 12 (linear interpolation) #### In the next epoch * We skim the top in an online fashion i.e. * If we have not yet met our limit per actor type per epoch, then we add the actor payload to the active set * If we have met our limit per actor, then we ask if the EMA score of the new actor is better than the lowest in the current active set. * If yes, then we pop the lowest scorer by EMA score out of the active set and update their EMA using the topic quantile of the previous epoch * If no, then we update the EMA score of the rejected actor using the topic quantile of the previous epoch In summary, if you're in the active set, your EMA score gets updated based on your performance in this round, and if you're int he passive set, your EMA score gets updated based on the performance of the previous epoch's active set. In either case, we do calculations in an online fashion => the true limit of actors for which we can do calculations is the cumulative blockspace within a worker submission window. ## Link(s) to Ticket(s) or Issue(s) resolved by this PR ## Are these changes tested and documented? - [ ] If tested, please describe how. If not, why tests are not needed. - [ ] If documented, please describe where. If not, describe why docs are not needed. - [ ] Added to `Unreleased` section of `CHANGELOG.md`? ## Still Left Todo * Fix tests * Add more coverage --------- Co-authored-by: michael <[email protected]> Co-authored-by: Tyler <[email protected]> Co-authored-by: T <[email protected]> Co-authored-by: Guilherme Brandão <[email protected]>
v0.4.0-RC
Ema the scores 2 (#560) <!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺ v ✰ Thanks for creating a PR! You're awesome! ✰ v Please note that maintainers will only review those PRs with a completed PR template. ☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --> ## Purpose of Changes and their Description ## Link(s) to Ticket(s) or Issue(s) resolved by this PR ## Are these changes tested and documented? - [ ] If tested, please describe how. If not, why tests are not needed. - [ ] If documented, please describe where. If not, describe why docs are not needed. - [ ] Added to `Unreleased` section of `CHANGELOG.md`? ## Still Left Todo *Fill this out if this is a Draft PR so others can help.* --------- Co-authored-by: Tyler <[email protected]>
v0.3.1-upgrade-test
Remove duplicated import
v0.3.1-devnet-upgrade-test
Remove duplicated import