Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

seal: Remove ext_dispatch_call and ext_get_runtime_storage #6464

Merged
3 commits merged into from
Jun 24, 2020

Conversation

athei
Copy link
Member

@athei athei commented Jun 22, 2020

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.

Those are way too hard to audit and make only sense with specific
chains. They shouldn't be in the core API.
@athei athei requested review from pepyakin and Robbepop June 22, 2020 13:13
@parity-cla-bot
Copy link

It looks like @athei signed our Contributor License Agreement. 👍

Many thanks,

Parity Technologies CLA Bot

@athei 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
@athei athei added this to To Do in Smart Contracts via automation Jun 22, 2020
@athei athei removed the request for review from Robbepop June 22, 2020 14:12
@athei athei mentioned this pull request Jun 22, 2020
3 tasks
@pepyakin pepyakin moved this from To Do to In Progress in Smart Contracts Jun 23, 2020
@pepyakin
Copy link
Contributor

This looks fine, although I think we would need to rebase it on top #6382

@athei
Copy link
Member Author

athei commented Jun 23, 2020

Sure. I will do this once #6382 is in.

@athei athei added A8-mergeoncegreen and removed A7-needspolkadotpr A0-please_review Pull request needs code review. labels Jun 24, 2020
@pepyakin
Copy link
Contributor

bot merge

@ghost
Copy link

ghost commented Jun 24, 2020

Trying merge.

@ghost ghost merged commit 19b4b70 into master Jun 24, 2020
Smart Contracts automation moved this from In Progress to Done Jun 24, 2020
This pull request was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
C1-low PR touches the given topic and has a low impact on builders.
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

None yet

4 participants