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

feat: Track storage_refunds and pubdata_costs stats #48

Merged
merged 4 commits into from
Jul 23, 2024

Conversation

slowli
Copy link
Contributor

@slowli slowli commented Jul 23, 2024

What ❔

  • Tracks storage_refunds and pubdata_costs in WorldDiff in order to fill in the corresponding data in the VM glue code.
  • Fixes decommit opcode semantics, refunding extra gas cost if the decommitted bytecode is not fresh (i.e., was decommitted previously).

Why ❔

  • storage_refunds and pubdata_costs data is not read directly on the EN, but is persisted for each batch in the state keeper. By design, this data is expected to filled in by the state keeper, so filling it retrospectively could be a problem.
  • Divergency in decommit opcode semantics is easily observable (e.g., by gas costs).

fix: Fix decommit opcode semantics

@slowli slowli requested review from montekki and joonazan July 23, 2024 08:31
@slowli slowli marked this pull request as ready for review July 23, 2024 08:31
Copy link
Contributor

@joonazan joonazan left a comment

Choose a reason for hiding this comment

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

I don't see any other issues, though I didn't check the decommit changes but I trust they are an improvement.

src/world_diff.rs Outdated Show resolved Hide resolved
@slowli slowli requested a review from joonazan July 23, 2024 11:19
Copy link
Contributor

@joonazan joonazan left a comment

Choose a reason for hiding this comment

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

LGTM

@joonazan joonazan enabled auto-merge (squash) July 23, 2024 13:08
@slowli slowli force-pushed the aov/io-batch-stats branch from 1dbcb90 to c4d03bb Compare July 23, 2024 13:24
@joonazan joonazan merged commit 2882a12 into master Jul 23, 2024
7 checks passed
@joonazan joonazan deleted the aov/io-batch-stats branch July 23, 2024 13:25
joonazan pushed a commit that referenced this pull request Sep 24, 2024
🤖 I have created a release *beep* *boop*
---


## [0.2.0](v0.1.0...v0.2.0)
(2024-09-23)


### Features

* Brush up repo for publishing
([#58](#58))
([69ac5ed](69ac5ed))
* exposes necessary methods on heap newtype
([#43](#43))
([9342db7](9342db7))
* implement kernel mode
([#42](#42))
([2407d39](2407d39))
* Stable tracer interface
([#46](#46))
([dc73bb4](dc73bb4))
* Track `storage_refunds` and `pubdata_costs` stats
([#48](#48))
([2882a12](2882a12))


### Bug Fixes

* base being in the kernel on address, not code address
([#31](#31))
([d9cb911](d9cb911))
* bugs in initial writes change
([#36](#36))
([8defb4a](8defb4a))
* don't repeatedly get initial values
([#35](#35))
([50fdbfa](50fdbfa))
* filter out initial writes of zero
([#39](#39))
([a291c24](a291c24))
* Fix `Heap` equality comparison
([#51](#51))
([a0cf04b](a0cf04b))
* Fix decommit opcode semantics
([2882a12](2882a12))
* Fix decommitment cost divergence
([#57](#57))
([d385127](d385127))
* Fix decommitment logic on out-of-gas
([#56](#56))
([2276b7b](2276b7b))
* fuzz test ([#30](#30))
([d516967](d516967))
* fuzz.sh ([#64](#64))
([e8e72b5](e8e72b5))
* fuzzer now makes short programs; fix crash in near call
([#52](#52))
([985a778](985a778))
* infinite test ([#34](#34))
([81185a5](81185a5))
* invalid instruction unsoundness
([#61](#61))
([74577d9](74577d9))
* record history for aux heap as well
([#49](#49))
([2877059](2877059))
* record pubdata used by precompiles
([#27](#27))
([a7de066](a7de066))
* report correct heap sizes in ContextMeta
([#26](#26))
([493fcec](493fcec))
* revert pubdata on failed near call, too
([#28](#28))
([fabc553](fabc553))
* StateInterface::current_frame did not work with near calls
([#65](#65))
([53f8f88](53f8f88))
* track transaction number in changes
([#33](#33))
([e683ae8](e683ae8))


### Performance Improvements

* Implement segmented heap
([#53](#53))
([d2405bc](d2405bc))
* optimize external snapshots
([#47](#47))
([952ecd4](952ecd4))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: zksync-era-bot <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants