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

feat(xsnap): Support legacy and latest variants #11031

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

kriskowal
Copy link
Member

@kriskowal kriskowal commented Feb 21, 2025

Closes: #11030
Refs: #10905

Description

This change adds a variant option to the xsnap constructor that multiplexes "legacy" and "latest" version trains of the underlying xsnap-worker, such that existing usage continues to use snapshot-compatible "legacy" versions and upgradable and restartable workers can use "latest" for new features that will cause divergent behavior and incompatible snapshot formats.

Security Considerations

Requires further consideration.

Scaling Considerations

This change doubles the number of binaries xsnap produces. I’ve included a compensating change that uses make -j with the number of available CPUs on the installation target. This change could be brought forward since it is orthogonal.

Documentation Considerations

Includes an explanation of the new feature and the intended compatibility concerns in README.md.

Testing Considerations

  • Requires a test that can observe a new feature in "latest" and verify its absence in "legacy"

Upgrade Considerations

This change preserves the status quo for all extant vats, but invites future changes to the SwingSet to enable new vats to electively move to the "latest" train. This implies different treatment for a chain software upgrade that can include an incompatible version of xsnap (to be assumed by default). It also implies further work to automatically promote vats (virtual workers) from "legacy" to "latest" if they successfully upgrade.

@kriskowal kriskowal force-pushed the kriskowal-xsnap-variants-11030 branch from 6e97796 to e5f7b5c Compare February 21, 2025 01:41
Copy link

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: e5f7b5c
Status:⚡️  Build in progress...

View logs

@kriskowal kriskowal force-pushed the kriskowal-xsnap-variants-11030 branch from e5f7b5c to fc9f5df Compare February 21, 2025 01:42
Copy link

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: fc9f5df
Status:⚡️  Build in progress...

View logs

Copy link

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: e5f7b5c
Status: ✅  Deploy successful!
Preview URL: https://ce4f5319.agoric-sdk.pages.dev
Branch Preview URL: https://kriskowal-xsnap-variants-110.agoric-sdk.pages.dev

View logs

@kriskowal kriskowal force-pushed the kriskowal-xsnap-variants-11030 branch from fc9f5df to 7335125 Compare February 21, 2025 01:47
Copy link

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: 7335125
Status:⚡️  Build in progress...

View logs

Copy link

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: fc9f5df
Status: ✅  Deploy successful!
Preview URL: https://f890e92c.agoric-sdk.pages.dev
Branch Preview URL: https://kriskowal-xsnap-variants-110.agoric-sdk.pages.dev

View logs

Copy link

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: 7335125
Status: ✅  Deploy successful!
Preview URL: https://3725eb7f.agoric-sdk.pages.dev
Branch Preview URL: https://kriskowal-xsnap-variants-110.agoric-sdk.pages.dev

View logs

@kriskowal kriskowal force-pushed the kriskowal-xsnap-variants-11030 branch from 7335125 to 075f974 Compare February 21, 2025 02:14
Copy link

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: 075f974
Status:⚡️  Build in progress...

View logs

Copy link

Deploying agoric-sdk with  Cloudflare Pages  Cloudflare Pages

Latest commit: 075f974
Status: ✅  Deploy successful!
Preview URL: https://9ed5818e.agoric-sdk.pages.dev
Branch Preview URL: https://kriskowal-xsnap-variants-110.agoric-sdk.pages.dev

View logs

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.

feat(xsnap): Support latest and legacy variants
1 participant