install large contract in parts using smaller bundle-handling contract #5002
Labels
cosmic-swingset
package: cosmic-swingset
enhancement
New feature or request
Inter-protocol
Overarching Inter Protocol
Zoe
package: Zoe
Milestone
What is the Problem Being Solved?
As noted in a comment last week,
a 1.1MB runStake bundle seems to be too big for the current devnet (agorictest-8 tag).
@michaelfig ran into this issue in his efforts to get price oracles on devnet (#3595).
Description of the Design
The current devnet doesn't have the new bundlehash / bundlecap stuff, but we can work around the limitations:
An endoCAS.js contract receives bundle items from a deploy script a few at a time and then does
E(zoe).install(...)
on the result. (thanks to clues from @kriskowal and help from @michaelfig )For usage, see runStake-deploy.js
Security Considerations
Any contract can, like this
endoCAS.js
contract, currently get the zoe service, including the power to install code, from its zcf. @Chris-Hibbert , does that put our plans to keep contract installation permissioned until MN-3 (#4395) at-risk, I wonder? I don't think so.Test Plan
This is a temporary solution, so I don't expect to maintain it long enough to justify automated tests.
The text was updated successfully, but these errors were encountered: