-
Notifications
You must be signed in to change notification settings - Fork 142
Stateless: Implement stateless execution of blocks #3683
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
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you want the stateless tests in the CI you can add it as a make file target
and include it in the eest_full_test
baseFolder = "tests/fixtures" | ||
eestType = "blockchain_tests" | ||
eestReleases = [ | ||
"eest_stable" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We are not using stable anymore
For mainnet => eest_develop
For devnet => eest_devnet
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, will update.
Good idea, I'll add the make file target but I won't add it to |
Here are the current test results when running the eest_develop blockchain tests with stateless execution enabled:
|
This adds a new
statelessProcessBlock
function which executes a block in memory by using the execution witness to populate an in memory database. The aristoputSubtrie
function is used load the subtrie of trie nodes into the database before executing the block. The witness is validated for correctness before starting the execution. After executing the block the stateroot is compared to the stateroot in the header of the current block.In order to verify the correctness of the generated execution witnesses, stateless execution can be enabled at runtime by setting the
--stateless-witness-validation=true
flag (note that this flag depends on the--stateless-provider=true
being set as well).