-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
feat(vm): Improve tracer trait #121
feat(vm): Improve tracer trait #121
Conversation
…deb6bd627ec9dc901a78aca374f16fd14e
57259be
to
aa3172c
Compare
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #121 +/- ##
==========================================
+ Coverage 32.73% 32.75% +0.02%
==========================================
Files 536 536
Lines 28122 28126 +4
==========================================
+ Hits 9207 9214 +7
+ Misses 18915 18912 -3
☔ View full report in Codecov by Sentry. |
…6deb6bd627ec9dc901a78aca374f16fd14e
f6ab256
to
63dd153
Compare
Signed-off-by: Danil <[email protected]>
Signed-off-by: Danil <[email protected]>
0eabe2a
to
b54f04a
Compare
Signed-off-by: Danil <[email protected]>
dbd8145
to
d5aaf93
Compare
Signed-off-by: Danil <[email protected]>
54aac4a
to
db319f3
Compare
@Deniallugo - can you add more info in the PR description? |
Halt::ValidationOutOfGas, | ||
)); | ||
} | ||
TracerExecutionStatus::Continue |
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.
this is a little hard to follow - we do match
, don't return only in the Batch
variabt, and then do an if
. I think it would be cleaner with
match self.execution_mode {
VmExecutionMode::OneTx if self.tx_has_been_processed() =>
TracerExecutionStatus::Stop(TracerExecutionStopReason::Finish)
}
VmExecutionMode::Bootloader if self.ret_from_the_bootloader == Some(RetOpcode::Ok) =>
TracerExecutionStatus::Stop(TracerExecutionStopReason::Finish);
}
VmExecutionMode::Batch if self.validation_run_out_of_gas() =>
TracerExecutionStatus::Stop(TracerExecutionStopReason::Abort(
Halt::ValidationOutOfGas,
_ =>
TracerExecutionStatus::Continue
};
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.
The two variants can be squashed into one i think with |
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 have to always check self.validation_run_out_of_gas
. Independent from execution_mode.
Thanks for the other suggestions :)
The two variants can be squashed into one i think with |
Only without if..
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.
Why? We dobn't check it now since we return
@Deniallugo can you please explain why the |
It's an internal tracer for VM and it used almost with all calls and the results of the execution are presented in From performance perspective it's better to make it statically dispatched |
Halt::ValidationOutOfGas, | ||
)); | ||
} | ||
TracerExecutionStatus::Continue |
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.
The two variants can be squashed into one i think with |
Signed-off-by: Danil <[email protected]>
db319f3
to
a3cab2c
Compare
94c2986
to
a8108be
Compare
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.
Looks really nice! Left a couple of nits
Signed-off-by: Danil <[email protected]>
a8108be
to
b266161
Compare
Detected VM performance changes
|
🤖 I have created a release *beep* *boop* --- ## [16.1.0](core-v16.0.2...core-v16.1.0) (2023-10-24) ### Features * Add new commitments ([#219](#219)) ([a19256e](a19256e)) * arm64 zk-environment rust Docker images and other ([#296](#296)) ([33174aa](33174aa)) * **config:** Extract everything not related to the env config from zksync_config crate ([#245](#245)) ([42c64e9](42c64e9)) * **eth-watch:** process governor upgrades ([#247](#247)) ([d250294](d250294)) * **merkle tree:** Expose Merkle tree API ([#209](#209)) ([4010c7e](4010c7e)) * **merkle tree:** Snapshot recovery for Merkle tree ([#163](#163)) ([9e20703](9e20703)) * **multivm:** Remove lifetime from multivm ([#218](#218)) ([7eda27c](7eda27c)) * Remove fee_ticker and token_trading_volume fetcher modules ([#262](#262)) ([44f7179](44f7179)) * **reorg_detector:** compare miniblock hashes for reorg detection ([#236](#236)) ([2c930b2](2c930b2)) * Rewrite server binary to use `vise` metrics ([#120](#120)) ([26ee1fb](26ee1fb)) * **types:** introduce state diff record type and compression ([#194](#194)) ([ccf753c](ccf753c)) * **vm:** Improve tracer trait ([#121](#121)) ([ff60138](ff60138)) * **vm:** Move all vm versions to the one crate ([#249](#249)) ([e3fb489](e3fb489)) ### Bug Fixes * **crypto:** update snark-vk to be used in server and update args for proof wrapping ([#240](#240)) ([4a5c54c](4a5c54c)) * **db:** Fix write stalls in RocksDB ([#250](#250)) ([650124c](650124c)) * **db:** Fix write stalls in RocksDB (again) ([#265](#265)) ([7b23ab0](7b23ab0)) * **db:** Fix write stalls in RocksDB (for real this time) ([#292](#292)) ([0f15919](0f15919)) * Fix `TxStage` string representation ([#255](#255)) ([246b5a0](246b5a0)) * fix typos ([#226](#226)) ([feb8a6c](feb8a6c)) * **witness-generator:** Witness generator oracle with cached storage refunds ([#274](#274)) ([8928a41](8928a41)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
…mode and Rollup mode (#121) * Add example: build_commit_tx_input_data_is_correct (fails) * Abstract normal_checker_function test * Abstract checker_processes_pre_boojum_batches * Abstract checker_functions_after_snapshot_recovery test * Abstract checker_functions_after_snapshot_recovery test * Remove unnecessary auxiliar function * Fix all the failing tests * Use test_helpers module * Remove ValidiumModeL1BatchCommitDataGenerator fix * Add bytes pubdata with 0 value for the encoding (#136)
What ❔
Changing the way, how tracers are working in VM. Try to make less calls and add more static dispatching
Tracer Api changes:
Vm Changes:
Refund tracer now dispatching statically and not dynamically
Why ❔
Checklist
zk fmt
andzk lint
.