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

Contract Upgrade: v7-board #10394

Closed
Chris-Hibbert opened this issue Nov 1, 2024 · 0 comments · Fixed by #10516
Closed

Contract Upgrade: v7-board #10394

Chris-Hibbert opened this issue Nov 1, 2024 · 0 comments · Fixed by #10516
Assignees
Labels
contract-upgrade enhancement New feature or request

Comments

@Chris-Hibbert
Copy link
Contributor

What is the Problem Being Solved?

As mentioned in #8158, we need the ability to restart all vats. This issue is concerned with restarting v7-Board.

Description of the Design

The board is built from lib-board.js.

upgrade-vats.test.ts shows that it is upgradeable.

According to kernel team measurements, the vat is consuming uncomfortable amounts of space that is growing over time. We believe that a simple upgrade will be able to collect a lot of storage that is being retained by a deprecated implementation of WeakMap used by passStyleOf that would be replaced by the upgrade.

To invoke the upgrade, we'll need a new proposal to be added to upgrade.go. upgrade.go won't be cleaned up post upgrade-18 at this point, so this should go in a section of `CoreProposalSteps marked distinctly for upgrade 19.

Security Considerations

v7-board is heavily relied on, so we need to provide convincing tests that upgrade is safe.

Scaling Considerations

No new concerns. This will clear up one of our problem areas.

Test Plan

For verification, we want is a test in a3p-integration that upgrades the board, and verifies that clients can still look things up both to and from an ID. The board is accessible from proposals, so the test could evaluate a proposal, as we did in probeZcfBundleCap.test.js.

Upgrade Considerations

This is intended to be included in our next upgrade, upgrade 19.

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
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants