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

metering dependency strategy #6250

Closed
dckc opened this issue Sep 17, 2022 · 4 comments
Closed

metering dependency strategy #6250

dckc opened this issue Sep 17, 2022 · 4 comments
Assignees
Labels
enhancement New feature or request needs-design xsnap the XS execution tool

Comments

@dckc
Copy link
Member

dckc commented Sep 17, 2022

What is the Problem Being Solved?

We're considering a patch to endo, applied using patch-package in agoric-sdk. Does that entail a change of metering version?

Probably, but we haven't been evaluating metering changes at that level of detail, to date.

Description of the Design

needs-design

Some ideas... take a careful look at the ses / supervisor bundle that goes into vats... and liveslots. Figure out which of these impacts metering outcomes.

Security Considerations

?

Test Plan

We currently have a test that attempts to detect metering changes in XS; the outcome of this design is likely

cc @kriskowal

@dckc dckc added enhancement New feature or request needs-design xsnap the XS execution tool labels Sep 17, 2022
@mhofman
Copy link
Member

mhofman commented Sep 17, 2022

From what I recall the lockdown and supervisor bundles are stored in the kv store the first time ever the kernel is started, so this is a problem only if 2 validators start from 2 different versions of the SDK. Without state sync a validator has technically to catch up, and will quickly fail if the bundles don't match (especially if we ever move the snapshot hashes into consensus in anticipation of state sync, see #5542 and #3769)

@Tartuffo
Copy link
Contributor

In talking with @kriskowal, whenever we sync Endo versions, we should update the metering version, just in case.

@Tartuffo Tartuffo assigned kriskowal and unassigned warner, mhofman and dckc Sep 23, 2022
@kriskowal
Copy link
Member

I’ll make a note in MAINTAINERS.md with the process I’ve been using to synchronize versions from Endo and put a line item for bumping the meter version in that process.

@kriskowal
Copy link
Member

I believe unconditionally bumping the meter each time we sync Endo is sufficient to catch all cases when syncing Endo may have caused a change in behavior, and the cases where it overreaches are tolerable. I’ve updated the process for syncing Endo and the process has worked a couple times, so I’m going to close this as addressed.

There may be a more surgical approach, but I believe that the real backstop for consistency is going to be capturing versions of swingset workers with a separate lockfile. This will probably obviate the need for meter versioning entirely. It is sufficient to know that workers under development are not consistent from hash to hash, but any vat pinned to a worker version will be consistent over time by other means.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request needs-design xsnap the XS execution tool
Projects
None yet
Development

No branches or pull requests

5 participants