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

Rotate voting rights (revoke, grant) #10134

Closed
5 tasks done
Tracked by #10135
otoole-brendan opened this issue Sep 24, 2024 · 4 comments · Fixed by #10164
Closed
5 tasks done
Tracked by #10135

Rotate voting rights (revoke, grant) #10134

otoole-brendan opened this issue Sep 24, 2024 · 4 comments · Fixed by #10164
Assignees
Labels
Governance Governance

Comments

@otoole-brendan
Copy link
Contributor

otoole-brendan commented Sep 24, 2024

What is the Problem Being Solved?

BLD stakers lack a feasible mechanism to elect a different EC membership.
Voting and proposing rights need to be revoked / granted.
This issue is about granting and revoking voting rights (rights to participate in the committee.js contract), and about priority.

Description of the Design

a core eval script based on gov-replace-committee.js

Security Considerations

TBD

Scaling Considerations

not much.

Test Plan

bootstrap test to replace 6 members of the committee with 3 continuing members. Test that:

  • 2 continuing members can change a parameter such as a PSM debt limit.
  • 2 Outgoing members cannot change parameters
  • A combination of 1 continuing and 2 outgoing members fails
  • A combination of 2 continuing and 1 outgoing members succeeds
  • outgoing members are no longer in the high priority senders list. look in vstorage

Upgrade Considerations

none; #10137 main involve an upgrade of committee.js, but it's out of scope of this issue.

@otoole-brendan
Copy link
Contributor Author

@frazarshad and @rabi-siddique could you please estimate this ticket?

@rabi-siddique
Copy link
Contributor

The core eval script is ready and working fine.

Work for the bootstrap test remains.

@dckc
Copy link
Member

dckc commented Sep 24, 2024

Use E(highPrioritySendersManager).remove(description, addr)

@otoole-brendan otoole-brendan changed the title BLD stakers lack a feasible mechanism to elect a different EC membership Rotate voting rights (revoke, grant) Sep 24, 2024
@dckc
Copy link
Member

dckc commented Sep 25, 2024

I saw some questions...

... currently our experimentation is located in packages/inter-protocol/test/psm/gov-replace-committee.js. Should we consider moving this script to the packages/inter-protocol/src/proposals folder,

yes.

Keep in mind that there are existing tests that refer to it. If the tests can point to the .../src/... location, then moving it is very well. Otherwise, we might want to leave the version in /test/ alone and put the new work under .../src/....

or is there a more appropriate directory where we organize our core eval scripts? How do we typically structure and organize core eval scripts?

Along with the core eval code in gov-replace-committee.js, you need a builder script that calls writeCoreProposal, as discussed in agoric run supports bundling proposal modules with writeCoreProposal

One example that has those pieces plus a contract started by the core eval code is

@frazarshad frazarshad self-assigned this Sep 25, 2024
@dckc dckc added the Governance Governance label Sep 27, 2024
rabi-siddique added a commit that referenced this issue Oct 2, 2024
…er (#10178)

<!-- < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < ☺
v                               ✰  Thanks for creating a PR! ✰
☺ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >  -->

<!-- Most PRs should close a specific Issue. All PRs should at least
reference one or more Issues. Edit and/or delete the following lines as
appropriate (note: you don't need both `refs` and `closes` for the same
one): -->


refs: #10134  #10133 

## Description
This pull request builds on #10166 and #10164. It updates the core eval
code to utilize the `governorCreatorFacet` for the governed contracts
via the `governedContractKit`. Initially, the aim was to use the
`governedContractKit` to access facets from price feed contracts. But
since it also includes facets for other governed contracts, I expanded
the code to incorporate these as well.

### Security Considerations
Same as #10166 and #10164 

### Scaling Considerations
<!-- Does this change require or encourage significant increase in
consumption of CPU cycles, RAM, on-chain storage, message exchanges, or
other scarce resources? If so, can that be prevented or mitigated? -->

### Documentation Considerations
<!-- Give our docs folks some hints about what needs to be described to
downstream users. Backwards compatibility: what happens to existing data
or deployments when this code is shipped? Do we need to instruct users
to do something to upgrade their saved data? If there is no upgrade path
possible, how bad will that be for users? -->

### Testing Considerations
Same as specified in #10164 

### Upgrade Considerations
<!-- What aspects of this PR are relevant to upgrading live production
systems, and how should they be addressed? -->
@mergify mergify bot closed this as completed in #10164 Oct 8, 2024
mergify bot added a commit that referenced this issue Oct 8, 2024
closes: #10134
refs: #10134

## Description
This PR implements the following:

- Core eval script to replace the committee.
- Builder script for setting up the core eval.
- Bootstrap test to verify the functionality of the implementation.

### Security Considerations
The Economic Committee plays a crucial role in managing the Inter-Protocol. The current committee doesn't easily support a smooth transition when members must retire or be replaced. An incomplete transition to a new committee could severely hamper the chain operations.

Accidentally providing access to the wrong parties (or failing to remove parties whose terms have expired) could make it hard to ensure that the right committee members have control. Other chains have been sunk or badly damaged when the stakeholders couldn't restrict some people from making changes.

### Testing Considerations
Bootstrap tests have been added in this PR to run in CI for testing.

### Documentation Considerations
Specific documentation concerns belong in #10138. It’s important to ensure the proposal is clearly documented to avoid confusion, especially with the old committee still being around.

### Upgrade Considerations:
There is minimal risk of regression because the core-eval materials are introduced in new files. The changes introduced particularly the new builder script, can be seamlessly included in any upcoming release.

### Scaling Considerations
The core eval script’s performance depends on the number of Economic Committee (EC) members. Since the committee is limited to a maximum of 12 members, the script’s complexity is treated as constant because it won’t have to handle more than 12 people.

Also, the script is executed approximately once a year, and all stakers receive a 3-day notice before it runs, making the scaling impact negligible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Governance Governance
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants