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

use Durable objects for governance #5200

Open
turadg opened this issue Apr 22, 2022 · 5 comments · May be fixed by #8157
Open

use Durable objects for governance #5200

turadg opened this issue Apr 22, 2022 · 5 comments · May be fixed by #8157
Assignees
Labels
contract-upgrade enhancement New feature or request Governance Governance

Comments

@turadg
Copy link
Member

turadg commented Apr 22, 2022

What is the Problem Being Solved?

Governance state must survive vat upgrade.
For MainNet 1, we intend to support durable objects for restart and upgrade.

However, @Chris-Hibbert has determined that we can make upgrade work without durability because we store the outcomes of votes that affect parameter values. Since #5678 the parameter changes are recorded off-chain. So while this is important it's not a 1.0 launch blocker.

Description of the Design

Convert Virtual objects #4343 to Durable.

Security Considerations

Trust of statement management by storage system and disk.

Test Plan

Use new durability tester h/t @FUDCo

@turadg turadg added enhancement New feature or request Governance Governance labels Apr 22, 2022
@FUDCo
Copy link
Contributor

FUDCo commented Apr 22, 2022

The tester issue is #4997

@aj-agoric
Copy link

Hello @FUDCo I am looking to assign this ticket to someone for the sake of tracking. Would you be the correct choice?

@Chris-Hibbert
Copy link
Contributor

I'm already working on this. I'll change the assignee.

@Chris-Hibbert Chris-Hibbert assigned Chris-Hibbert and unassigned FUDCo Aug 4, 2023
@aj-agoric
Copy link

thanks @Chris-Hibbert

@dckc
Copy link
Member

dckc commented Aug 23, 2024

After upgrading vaultFactory, voteOnParamChanges failed (2024-08-23T15:05:58.783Z in emerynet logs).

A slog visualization slog.svg shows v41 (zcf-b1-9f877-vaultFactory.governor) receives a vat terminated rejection.

It looks like the resolution of E(creatorFacet).getParamMgrRetriever() from here is not durable:

provideParamGovernance() {
if (!paramGovernance) {
const { timer } = powers;
const { creatorFacet, instance } = this.state;
paramGovernance = setupParamGovernance(
E(creatorFacet).getParamMgrRetriever(),

mergify bot added a commit that referenced this issue Aug 24, 2024
…9953)

refs: #5200

## Description

Do a null upgrade of the vaultFactory governor contract in the coreEval  that upgrades the vaultFactory contract.

### Security Considerations

If the governor is correctly connected to the contract (tests in process), and can govern parameters and enable offer filters, then everything is connected as it was, and there are no new security issues.

### Scaling Considerations

None.

### Documentation Considerations

No user-visible changes.

### Testing Considerations

Test governance of the vaultFactory thoroughly on a testnet.

### Upgrade Considerations

It appears that contract governor may be upgradeable..
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
contract-upgrade enhancement New feature or request Governance Governance
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants