-
Notifications
You must be signed in to change notification settings - Fork 220
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
Bootstrap ocaps are stored durably in vat-bootstrap #4548
Comments
Don't need to impl this for Restival. For Restival, need it to be clear how the world boots. Starting RUN Protocol is separate from bootstrap. How can we add things to bootstrap after launch, how do we fix them? We don't want accumulated non-durable stuff that will complicate this. |
Also audit for objects that are allowed to go out of scope.
|
@dtribble and I agreed to postpone this: He had proposed that it stored all of it state in a baggage and then go away each time so that each invcation of the big Javasript hammer starts only from baggage. This would ensure that any limitations in our current bootstrap are irrelevant because we could load a different contractor bootstrap. I don't know how to deliver the JavaScript big hammer messages into a vat that went away. It's not obvious how that would work. |
@michaelfig and I broke ground on this today: 4d5a81e |
@turadg re testing plan: a test that shows no unexpected exports from the bootstrap vat would be cool. I hope that's straightforward to do. I hope to get a clue from @gibson042 or the like. |
substantial progress today, though things still feel a bit all-over-the-floor. fd083b1 * 4548-boot-no-precious-state WIP: lots of progress on test-vaults-integration.js next challenge:
|
I thought I moved namesByAddress to the provisioning vat, but now (3e8e09f) I'm back to wallet races:
|
bootstrap exports 14 objectsWe'd like to minimize bootstrap exports. Here's hoping to inventory these a bit closer...
mapping to in-vat oids:
messages to v1 bearing one of these oids, either as the target or an arg slot:
|
Bootstrap export audit resultstest('audit bootstrap exports', async t => {
const expectedIfaces = [
// in bridgeCoreEval()
// TODO(#7576): support unregister
'coreHandler',
// in bridgeProvisioner()
// TODO(#7576): support unregister
'provisioningHandler',
// makePrioritySendersManager() TODO(#7576): support unregister
'prioritySenders manager',
// TODO? move to provisioning vat?
'clientCreator',
// in registerNetworkProtocols(). TODO: outboard #7044
'ProtocolHandler', // in makeLoopbackProtocolHandler()
'callbacks',
'listener',
// TODO(#7563): disable stakeFactory in test-vaults-config
'stakeReporter',
]; see also scheduled work:
and not yet scheduled: |
Problem to be solved
Bootstrap is not upgradable yet holds precious state in closure.
Description of design
Either make the bootstrap vat upgradable or move its (non-copyable) precious state into upgradable vats.
We're opting for the latter so that if necessary we can make a new bootstrap vat and have it retrieve everything precious from the space. (This requires that everything precious is created in some other vat than the original bootstrap).
Tasks
Goals (optional)
Testing plan
demonstrate upgrading the bootstrap vatdon't need to because with the precious state secured elsewhere the bootstrap vat can be blown awayIf times allows, write a test that creates a new bootstrap and core-eval can provide it with everything it needs from the space.
The text was updated successfully, but these errors were encountered: