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

Add ContractCodeCostInputs and new cost types #177

Merged
merged 1 commit into from
Mar 22, 2024
Merged

Conversation

graydon
Copy link
Contributor

@graydon graydon commented Mar 22, 2024

This is a sketch of changes in support of stellar/rs-soroban-env#1359 -- see that PR for explanation and links to underlying bugs.

@graydon
Copy link
Contributor Author

graydon commented Mar 22, 2024

(Continuing on from #172 which got its history messed up in github's brain due to my initial branch mis-targeting)

@graydon graydon marked this pull request as ready for review March 22, 2024 22:18
@graydon graydon merged commit fbc5373 into next Mar 22, 2024
1 check passed
@graydon graydon deleted the cheaper-instantiation branch March 22, 2024 22:25
github-merge-queue bot pushed a commit to stellar/rs-soroban-env that referenced this pull request Mar 26, 2024
This is a sketch of the first step in the plan for addressing #1292 and
eventually #827 and #1313, namely:

- add a bunch of cost types that decompose the current "worst case" VM
instantiation cost type
  - continue to charge the worst case on initial contract upload
- _store_ the decomposed cost-type inputs in the ledger, since we can
observe them after the initial upload parse
- _use_ those decomposed cost-type inputs when doing runtime
instantiation
  - add a module cache
  - populate the module cache with all modules on host startup
  - use cached modules during instantiation

This PR has accompanying changes in XDR and wasmi:

  - stellar/stellar-xdr#177
  - stellar/rs-stellar-xdr#346

Remaining to do:

  - [x] determine what the correct set of decomposed cost types even is
  - [ ] ~add more code to wasmi to enable observing more inputs~
- [x] add cost-type runners / calibrations for all the decomposed
cost-types
  - [x] protocol-gate this new behaviour
- [x] make the linker-loop do less work to match the tighter cost model
(i.e. complete #1292)
- [x] possibly _duplicate_ the set of cost types added here, so we have
a cached and uncached version of each, and implement a solution to #827
- [ ] possibly decompose the set sufficiently to model what will happen
when we take wasmi 0.32 and enable lazy translation (i.e. complete
#1313)
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.

2 participants