-
Notifications
You must be signed in to change notification settings - Fork 699
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
Create complete and exhaustive list of sources of indeterminism in PVF #653
Comments
For the stack limit, I just had the following idea: Extend the upcoming time dispute mechanism: Approval checkers could not only report time, but also maximum stack depth. AssumptionWe are able to assume some upper bound for the stack depth fluctuations across supported architectures/implementations/etc. IdeaLet's assume above upper bound for fluctuation is 2, then we can have the backers commit to some bound X. Approval checkers are allowed a much larger limit like 6*X. Now in the honest case, approval checkers will never exceed the limit - hence no indeterminism. For the dishonest case, we do the same as in time disputes: We start charging the backers once the approval checkers say that the stack limit was larger than 2*X, because we can then be sure, even with implementation differences that the backers Possible ExtensionsWe might be able to extend the "time dispute" mechanism to address all not otherwise solvable indeterminism sources. |
This issue has been mentioned on Polkadot Forum. There might be relevant details there: https://forum.polkadot.network/t/ux-implications-of-pvf-executor-environment-versioning/2519/25 |
Here's a couple to start the list:
|
Not exactly indeterminism, but closely related:
|
I found an old issue listing sources of indeterminism: #990. I haven't gone through in depth, but I see some have already been mentioned here. |
* Attempts message proof. * Adds basic inbound and outbound channel config * Ropsten start services script * Replace localhost with ropsten in configure contracts * changed urls * added beefy light client sink url * inject private keys from variables * Do config file replacements in one go * Ropsten script changes. * moved variables out of envrc template * removed more variables from example envrc * remove ropsten script * get from environment or use default * insert test account into accounts list * fixed imports * consistent naming * get infura key * add test accounts * fixed beefy issue. dont re-use accounts * Testing changes * Transfer less eth * Transfer less ETH * Temp testing changes * Tweaks message verification code. * Adds geth, lodestar and beacon relay * Adds some more logs and fix config. * Comments out beacon relayer temporarily * Message verification changes. * Message verification works. * Cleanup of message verification. * Message verification relayer cleanup. * Cleanup and updating start-services. * Reverts Bootstrap test. * Adds lodestar to readme. * Removes unnecessary log * PR comments. * Removes binary. Co-authored-by: claravanstaden <Cats 4 life!> Co-authored-by: Alistair Singh <alistair.singh7@gmail.com>
Signed-off-by: koushiro <koushiro.cqx@gmail.com>
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
* Add test proving bug * Add checks for duplicate headers * Fix Clippy error
In order to systematically address all sources of indeterminism we have in PVF execution (and preparation), we should start with a list.
I would like to have in the guide a list of all possible sources we can think of, with sections following that list explaining each one in detail together with implemented or possible mitigations.
The text was updated successfully, but these errors were encountered: