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

Client: Async VM Initialization #3187

Merged
merged 14 commits into from
Dec 12, 2023
Merged

Conversation

holgerd77
Copy link
Member

This moves to a proper async VM initialization in the client. Lot's of tests to fix and adopt, but already fixed a lot, so getting there.

Open to be continued during the day if someone feels like it, otherwise I'll continue tomorrow.

Copy link

codecov bot commented Dec 11, 2023

Codecov Report

Merging #3187 (17c30fc) into master (9698584) will increase coverage by 0.48%.
The diff coverage is 63.88%.

Additional details and impacted files

Impacted file tree graph

Flag Coverage Δ
block 87.52% <ø> (ø)
blockchain 91.60% <ø> (ø)
client 84.58% <63.88%> (?)
common 98.25% <ø> (ø)
devp2p 82.11% <ø> (ø)
ethash ∅ <ø> (?)
evm 73.88% <ø> (ø)
statemanager 85.72% <ø> (ø)
trie 89.72% <ø> (-0.05%) ⬇️
tx 95.73% <ø> (?)
util 89.05% <ø> (ø)
vm 80.83% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

@holgerd77
Copy link
Member Author

@scorbajio @acolytec3 thanks a lot for the continued test fixes, that helps a lot, both practically and on my motivation to continue here (since it always a bit daunting to "cause" so many new test failures with the need to fix "just" for a somewhat simple cleanup)! 🤩

@@ -259,8 +265,8 @@ describe('[Miner]', async () => {
// no skipHardForkValidation
const miner = new Miner({ config: goerliConfig, service })
const { txPool } = service
await service.execution.setupMerkleVM()
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are several (most except for 1) cases where this also works with await service.execution.open(), just tested, will replace since we should rather use the "public" (internal) API for things like that for setup which then closer resembles the real situation.

@holgerd77
Copy link
Member Author

Tested mainnet sync on this up to a point with a proven block execution (so: a contract execution). This worked fine!

jochem-brouwer
jochem-brouwer previously approved these changes Dec 12, 2023
Copy link
Member

@jochem-brouwer jochem-brouwer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (assuming CI passes)

Copy link
Contributor

@acolytec3 acolytec3 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Tests should pass now.

@holgerd77 holgerd77 merged commit 98fc3ab into master Dec 12, 2023
45 of 46 checks passed
@holgerd77 holgerd77 deleted the client-async-vm-initialization branch December 12, 2023 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants