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

Collator Executor Environment Parameters #703

Open
eskimor opened this issue Mar 3, 2023 · 4 comments
Open

Collator Executor Environment Parameters #703

eskimor opened this issue Mar 3, 2023 · 4 comments

Comments

@eskimor
Copy link
Member

eskimor commented Mar 3, 2023

We should provide an additional API to be used by collators for querying (a subset) of our execution environment parameters.

Collators are way slower to upgrade than validators. Hence if we blindly expose everything we need to be very careful (and slow) with the introduction of new parameters. At the same time there are quite a few parameters which are irrelevant or at least not strictly required for collators.

With a separate API, we are able to iterate fast on new parameters that are irrelevant to collators, by not returning those newly not (yet) understood variants to collators, while at the same time utilize them fully on validators already.

Once collators have upgraded their nodes and are up2date we can return those parameters to them and they will find validators already prepared.

@eskimor
Copy link
Member Author

eskimor commented Mar 3, 2023

Once we have this API, we can make collators honor the execution environment as exposed to them to ensure they are not producing collations which would be seen as invalid by validators.

@bkchr
Copy link
Member

bkchr commented Mar 3, 2023

We should provide an additional API to be used by collators for querying (a subset) of our execution environment parameters.

IMO we should make the api return values that can detect unknown variants and ignore them. There should be no extra api for collators.

Collators are way slower to upgrade than validators.

This also only true currently, because there is only one fully functional Polkadot node implementation. In a more decentralized future, you can also not do these changes and expect everybody to upgrade in x days. Currently this is the case because we are still early, but I would expect that this gets slower.

@eskimor
Copy link
Member Author

eskimor commented Mar 3, 2023

IMO we should make the api return values that can detect unknown variants and ignore them. There should be no extra api for collators.

Agreed. This should work as well. Parameters are a Vec, we could just ignore elements we cannot decode.

This also only true currently, because there is only one fully functional Polkadot node implementation. In a more decentralized future, you can also not do these changes and expect everybody to upgrade in x days. Currently this is the case because we are still early, but I would expect that this gets slower.

True, but at that point in time we are very likely also fine with moving slower ;-) Also the addition of new variants becomes more unlikely the more we matured.

@bkchr
Copy link
Member

bkchr commented Mar 3, 2023

Agreed. This should work as well. Parameters are a Vec, we could just ignore elements we cannot decode.

The current api doesn't support this. There was this discussion around the types and "controlled decode failing", but we don't have implemented them this way. We would need to prefix every variant with its length to skip it, if decoding fails.

@Sophia-Gold Sophia-Gold transferred this issue from paritytech/polkadot Aug 24, 2023
claravanstaden pushed a commit to Snowfork/polkadot-sdk that referenced this issue Dec 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Backlog
Development

No branches or pull requests

2 participants