This repository has been archived by the owner on Nov 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
seal: Remove ext_dispatch_call and ext_get_runtime_storage #6464
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Those are way too hard to audit and make only sense with specific chains. They shouldn't be in the core API.
It looks like @athei signed our Contributor License Agreement. 👍 Many thanks, Parity Technologies CLA Bot |
athei
added
A0-please_review
Pull request needs code review.
I7-refactor
Code needs refactoring.
B5-clientnoteworthy
C1-low
PR touches the given topic and has a low impact on builders.
and removed
I7-refactor
Code needs refactoring.
labels
Jun 22, 2020
This looks fine, although I think we would need to rebase it on top #6382 |
Sure. I will do this once #6382 is in. |
pepyakin
approved these changes
Jun 24, 2020
athei
added
A8-mergeoncegreen
and removed
A7-needspolkadotpr
A0-please_review
Pull request needs code review.
labels
Jun 24, 2020
bot merge |
Trying merge. |
ghost
deleted the
at-remove-contract-functions
branch
June 24, 2020 11:53
This pull request was closed.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Subset of: #6355
We only want to provide a basic set of APIs because once seal is deployed we cannot remove them. We can always add API later when necessary.
This PR therefore removes the following functions from the API because they either implement niche functionality or are difficult to reason about security wise:
ext_dispatch_call
This is difficult to audit as it can make arbitrary calls into the runtime. For that reason we do not want it to exist in our first deployment. In contrast to regular extrinsic dispatch we do not spawn a new runtime instance for each call executed in this way. This makes this more difficult to reason about. A good example where this is problematic would be a sequence of dispatches that DoS the memory allocator of the runtime.
ext_get_runtime_storage
Rather than having a blanket way of retrieving values from runtime storage we want runtime authors to make use of an upcoming mechanism called Chain Extensions. This will allow runtime authors to augment the API with their own functions that can supply contracts with information specific to their chain.