Skip to content

Commit 9197bfb

Browse files
i-m-adityaAditya Pandeylightsing
authored
Lazy commitment zktrie (#39)
* Lazy commitment zktrie * patch * removing patched zktrie from Cargo.toml --------- Co-authored-by: Aditya Pandey <[email protected]> Co-authored-by: lightsing <[email protected]>
1 parent a4a7fd4 commit 9197bfb

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

Cargo.lock

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/core/src/executor/mod.rs

+13-4
Original file line numberDiff line numberDiff line change
@@ -193,30 +193,35 @@ impl EvmExecutor<'_> {
193193
let storage_root_before = acc_data.storage_root;
194194
// get storage tire
195195
cycle_tracker_start!("update storage_tire");
196-
let mut storage_tire = zktrie_state
196+
let mut storage_trie = zktrie_state
197197
.zk_db
198198
.new_trie(storage_root_before.as_fixed_bytes())
199199
.expect("unable to get storage trie");
200200
for (key, value) in db_acc.storage.iter() {
201201
if !value.is_zero() {
202202
cycle_track!(
203-
storage_tire
203+
storage_trie
204204
.update_store(&key.to_be_bytes::<32>(), &value.to_be_bytes())
205205
.expect("failed to update storage"),
206206
"Zktrie::update_store"
207207
);
208208
} else {
209209
cycle_track!(
210-
storage_tire.delete(&key.to_be_bytes::<32>()),
210+
storage_trie.delete(&key.to_be_bytes::<32>()),
211211
"Zktrie::delete"
212212
);
213213
}
214214

215215
#[cfg(feature = "debug-storage")]
216216
debug_recorder.record_storage(*addr, *key, *value);
217217
}
218+
219+
if storage_trie.is_trie_dirty() {
220+
storage_trie.prepare_root();
221+
}
222+
218223
cycle_tracker_end!("update storage_tire");
219-
acc_data.storage_root = H256::from(storage_tire.root());
224+
acc_data.storage_root = H256::from(storage_trie.root());
220225

221226
#[cfg(feature = "debug-storage")]
222227
debug_recorder.record_storage_root(*addr, acc_data.storage_root);
@@ -256,6 +261,10 @@ impl EvmExecutor<'_> {
256261
cycle_tracker_end!("commit account {}", addr);
257262
}
258263

264+
if zktrie.is_trie_dirty() {
265+
zktrie.prepare_root();
266+
}
267+
259268
let root_after = zktrie.root();
260269

261270
zktrie_state.switch_to(root_after);

0 commit comments

Comments
 (0)