Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Patch to install.sh #719

Closed
wants to merge 279 commits into from
Closed

Patch to install.sh #719

wants to merge 279 commits into from

Conversation

casual1st
Copy link
Contributor

@casual1st casual1st commented Dec 19, 2024

Purpose of Changes and their Description

This should be merged to the main branch. Users fail to install allorad when they try to use the official guide due to the changes in architecture naming convention: https://docs.allora.network/devs/get-started/cli#installing-allorad

Are these changes tested and documented?

Here is the test result:

/tmp/allorad 100%[=====================================================================================================================================>] 153.96M 43.8MB/s in 3.4s

2024-12-19 13:15:15 (45.7 MB/s) - ‘/tmp/allorad’ saved [161443488/161443488]

Installation complete. The allorad is now available in /root/.local/bin

  • 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.

xmariachi and others added 30 commits November 18, 2024 23:10
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
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
* Updates cometbft 0.38.12 -> 0.38.15
* Uses Optimistic Execution

## Link(s) to Ticket(s) or Issue(s) resolved by this PR

## Are these changes tested and documented?

- [x] If tested, please describe how. If not, why tests are not needed.
-- Tested locally only with one offchain node
- [ ] If documented, please describe where. If not, describe why docs
are not needed.
- [x] Added to `Unreleased` section of `CHANGELOG.md`?
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
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

Whitelists reintroduced so protocol vanguards can better nurture our
budding network.

This file is the best entrypoint into understanding everything I did at
the most raw level. Every other change is a consequence of the functions
I created here:
```
x/emissions/keeper/whitelist.go
```

Roles (permissions) of existing whitelist has been expanded and new
whitelists and related abstractions have been introduced:
* whitelist admin
   * can add others to whitelists
   * can change global params (as is already the case today)
   * moderated by super admin
* global whitelist
* can participate in all roles across topics except super admin (cannot
add other admins nor update global params)
   * moderated by super admin
* topic creator whitelist
   * can create topics
   * moderated by super admin
* per topic worker whitelist
   * can participate in given topic as worker
   * moderated by topic creator and super admin
* per topic reputer whitelist
   * can participate in given topic as reputer
   * moderated by topic creator and super admin
* feature flag via global params to turn on/off whitelist entirely per
whitelist
* global topic creator and global actor whitelist feature flag, toggled
by super admins via new global params
   * per topic worker whitelist feature flag
   * per topic reputer whitelist feature flag
* these 2^^ per-topic feature flags toggled by topic creator and super
admin
* feature flag = on => whitelist checked ;; off => anyone can attempt to
participate
* minor organizations: whitelist methods moved to their own file, out of
crowded `keeper.go`
* whitelist abstractions
   * `setters` - update state for some whitelist
   * `getters` - read what a whitelist's state
   * `permissions` - actions someone can take, if permitted
* `qualifiers` - helper functions for `permissions` that wrap `getters`

This PR also creates `x/emissions` module `v6`, `allorad` chain
`v0.7.0`, and upgrade/migration logic for `v0.6.0 -> v0.7.0`. This is
used to ensure all topic whitelists are turned on, that all new txs and
queries are properly versioned, and that new global parameters are
properly initialized.

## Breaking Changes for Clients

Indexer, Producer, offchain-node, Labs' BE, and other clients need to
update their endpoint URLs `.../emissions/v5/...` to
`.../emissions/v6/...`

## Link(s) to Ticket(s) or Issue(s) resolved by this PR

https://linear.app/alloralabs/issue/PROTO-2678/reintroduce-whitelists

## Are these changes tested and documented?

- [x] If tested, please describe how. If not, why tests are not needed.
   - Unit tests created
- [ ] If documented, please describe where. If not, describe why docs
are not needed.
- Documentation release should be coordinated with feature enablement on
appropriate chain. Will coordinate with @kush-alloralabs
- [x] Added to `Unreleased` section of `CHANGELOG.md`?

## Still Left Todo

Done.
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
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

This PR adds options to makefile, ide config and documentation to allow
remote debugging of allorad.

Changes are harmless and do not impact current workflows.

## 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.*
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
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
* Remove custom PrepareProposalHandler that was not validating as the
ProcessProposalHandler.


## Link(s) to Ticket(s) or Issue(s) resolved by this PR

## Are these changes tested and documented?

- [X] If tested, please describe how. If not, why tests are not needed.
-- tested locally with a worker. No unit tests applicable.
- [X] If documented, please describe where. If not, describe why docs
are not needed. -- no need, just using default behaviour
- [x] Added to `Unreleased` section of `CHANGELOG.md`?
Bumps the go_modules group with 1 update in the / directory: [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter).


Updates `github.com/hashicorp/go-getter` from 1.7.4 to 1.7.5
- [Release notes](https://github.com/hashicorp/go-getter/releases)
- [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml)
- [Commits](hashicorp/go-getter@v1.7.4...v1.7.5)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/go-getter
  dependency-type: indirect
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <[email protected]>
…ules group across 1 directory (allora-network#675)

Bumps the go_modules group with 1 update in the / directory:
[github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter).

Updates `github.com/hashicorp/go-getter` from 1.7.4 to 1.7.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hashicorp/go-getter/releases">github.com/hashicorp/go-getter's
releases</a>.</em></p>
<blockquote>
<h2>v1.7.5</h2>
<h2>What's Changed</h2>
<ul>
<li>Prevent Git Config Alteration on Git Update by <a
href="https://github.com/dduzgun-security"><code>@​dduzgun-security</code></a>
in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/497">hashicorp/go-getter#497</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/dduzgun-security"><code>@​dduzgun-security</code></a>
made their first contribution in <a
href="https://redirect.github.com/hashicorp/go-getter/pull/497">hashicorp/go-getter#497</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hashicorp/go-getter/compare/v1.7.4...v1.7.5">https://github.com/hashicorp/go-getter/compare/v1.7.4...v1.7.5</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/hashicorp/go-getter/commit/5a63fd9c0d5b8da8a6805e8c283f46f0dacb30b3"><code>5a63fd9</code></a>
Merge pull request <a
href="https://redirect.github.com/hashicorp/go-getter/issues/497">#497</a>
from hashicorp/fix-git-update</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/5b7ec5f039197dd363e912c8367329f8399557c6"><code>5b7ec5f</code></a>
fetch tags on update and fix tests</li>
<li><a
href="https://github.com/hashicorp/go-getter/commit/9906874a23919a81eff097d84fdb8f98525ac880"><code>9906874</code></a>
recreate git config during update to prevent config alteration</li>
<li>See full diff in <a
href="https://github.com/hashicorp/go-getter/compare/v1.7.4...v1.7.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/hashicorp/go-getter&package-manager=go_modules&previous-version=1.7.4&new-version=1.7.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/allora-network/allora-chain/network/alerts).

</details>
<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
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

This PR fixes the release generation. This was implemented in v0.6.3 and
is already working. This PR is to bring the fix to dev.

## 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.*
Bumps the go_modules group with 1 update in the / directory: [cosmossdk.io/math](https://github.com/cosmos/cosmos-sdk).


Updates `cosmossdk.io/math` from 1.3.0 to 1.4.0
- [Release notes](https://github.com/cosmos/cosmos-sdk/releases)
- [Changelog](https://github.com/cosmos/cosmos-sdk/blob/main/CHANGELOG.md)
- [Commits](cosmos/cosmos-sdk@log/v1.3.0...log/v1.4.0)

---
updated-dependencies:
- dependency-name: cosmossdk.io/math
  dependency-type: direct:production
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <[email protected]>
kpeluso and others added 28 commits December 18, 2024 17:41
…rk#714)

## Purpose of Changes and their Description

This PR introduces a new score initialization mechanism for new
participants using the formula:
`initialEmaScore = lowestEmaScoreInActiveSet - lambda *
standardDeviationOfEmaScoresInActiveSet`

This provides a reasonable starting point that requires consistent good
performance to enter the active set.

The lambda parameter (lambda > 0) allows governance to adjust how
challenging it is for new participants to enter the active set:
- Higher lambda: More conservative, requiring longer consistent
performance
- Lower lambda: More lenient, allowing faster entry into the active set

We update the topic's initial EMA score for each actor (inferer,
forecaster, and reputer) during reward distribution.

When an actor submits their payload, we check if they are a new actor.
If they are, we initialize their score using the topic's initial EMA
score, calculated using the active set's statistics.

## Link(s) to Ticket(s) or Issue(s) resolved by this PR

https://linear.app/alloralabs/issue/PROTO-3082/fix-actor-score-ema-initialization

## 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.*
…k#716)

<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
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

### High Level Intentions -- Whitelist Improvements

1. params proto props omitempty + new params
2. global worker whitelist
3. global reputer whitelist
4. bulk adds
	* global parameter to meter this
5. global admins
	* add to topic and global lists
	* managed by super admins

### global params to add -- DONE

0. omitempty
1. global_worker_whitelist_enabled
2. global_reputer_whitelist_enabled
3. global_admin_whitelist_appended
4. max_whitelist_input_array_length

### stores to add -- DONE

1. GlobalWorkerWhitelist
2. GlobalReputerWhitelist
3. GlobalAdminWhitelist

### acl logic to add -- DONE

1. global admins can update global and topic worker and reputer
whitelists when global admin whitelist appended. when not appended, no
one can except whitelist (super) admins
2. only global workers and reputers can work and reputer, resp, across
all topics, when their resp whitelist enabled. when diabled, anyone can
* Note: We must be sure that Global whitelist is enabled as well for
global_worker_whitelist_enabled and global_reputer_whitelist_enabled to
have meaningful effect
3. whitelist (super) admins can update all global whitelists

### rpc tx to add -- DONE

1. add global worker
2. rm global worker
3. add global reputer
4. rm global reputer
5. add global admin
6. rm global admin
7. bulk add topic workers
8. bulk add global workers
9. bulk add topic reputers
10. bulk add global reputers

### rpc q to add -- DONE

1. is_global_worker_whitelist
2. is_global_reputer_whitelist
3. is_global_admin
4. can_update_global_worker_whitelist
5. can_update_global_reputer_whitelist

## Link(s) to Ticket(s) or Issue(s) resolved by this PR

## Are these changes tested and documented?

- [x] If tested, please describe how. If not, why tests are not needed.
   - Unit tests created.
- [x] If documented, please describe where. If not, describe why docs
are not needed.
   - Documentation for this will be more carefully crafted elsewhere.
- [x] Added to `Unreleased` section of `CHANGELOG.md`?

## Still Left Todo

Just rebase atop base branch.
## Purpose of Changes and their Description

Penalise underperforming actors that are missing epochs when they become
live again.

A penalty will be applied to their EMA score, the penalty used in the
initial EMA score, it is applied as many times as the number of
previously missed epochs towards the initial score.

## Link(s) to Ticket(s) or Issue(s) resolved by this PR

https://linear.app/alloralabs/issue/PROTO-3089/add-sortition-penalties

## Are these changes tested and documented?

- [x] If tested, please describe how. If not, why tests are not needed.
- [x] If documented, please describe where. If not, describe why docs
are not needed.
- [x] Added to `Unreleased` section of `CHANGELOG.md`?
This should be merged to the main branch. Users fail to install allorad when they try to use the official guide due to the changes in architecture naming convention: https://docs.allora.network/devs/get-started/cli#installing-allorad

Signed-off-by: R <[email protected]>
@casual1st casual1st closed this Dec 19, 2024
@casual1st casual1st deleted the patch-2 branch December 19, 2024 13:05
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.

9 participants