Skip to content

Releases: allora-network/allora-chain

v0.6.0

23 Oct 01:25
v0.6.0
e971cd2
Compare
Choose a tag to compare

Added

  • #624 Add nurse internal healthcheck service based on pprof. See health/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

  • #603 Validate all Values for Correctness Prior to Storing them in the Keeper
  • #620 Add a static analyzer to detect non-deferred .Close() calls, improve migration error handling
  • #622 Add telemetry metrics on queries/txs

v0.6.0-rc

23 Oct 00:13
v0.6.0-rc-1
1c19459
Compare
Choose a tag to compare
v0.6.0-rc Pre-release
Pre-release
v0.6.0-rc-1

Release candidate 1 for v0.6.0 release.

v0.5.1

18 Oct 19:16
e58f0d2
Compare
Choose a tag to compare
v0.5.1 Pre-release
Pre-release
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

19 Sep 22:00
c1585f9
Compare
Choose a tag to compare

Summary

  1. Implement a fix for incomplete migration of topic fields from the v0.4.0 upgrade.
  2. Add additional RPC endpoint to allow for recalculating
    the inflation rate / target emission rate more often than once per month.
  3. Update to use rewardable topics as active topics instead of using them separately.
  4. 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 to UpdateNoncesOfActiveTopics
  • #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

  • #588 Add String Max Length Module Parameter, Enforce Max String Length on Creation of New Topics
  • #610 Ensure that BlockHeight of scores is consistently set to be a topic epoch nonce. Also simplify the condition for idempotent payload submission.

v0.4.0-docker-upgrade

04 Sep 00:31
776d968
Compare
Choose a tag to compare

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

04 Sep 00:03
be9dd1e
Compare
Choose a tag to compare

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 and GetNextChurningBlockByTopicId
  • #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

  • See our recent June 2024 security audit for a full description of bugs found during that audit.
  • #554 Check Signature on Worker or Reputer Payload Matches Inferer/Forecaster/Reputer inside Bundle

v0.4.0-release-RC

07 Sep 01:55
ab4b3ab
Compare
Choose a tag to compare
v0.4.0-release-RC Pre-release
Pre-release
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

07 Sep 01:55
e602dac
Compare
Choose a tag to compare
v0.4.0-RC Pre-release
Pre-release
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

30 Aug 23:27
f5dfa07
Compare
Choose a tag to compare
v0.3.1-upgrade-test Pre-release
Pre-release
Remove duplicated import

v0.3.1-devnet-upgrade-test

30 Aug 22:07
f5dfa07
Compare
Choose a tag to compare
Pre-release
Remove duplicated import