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(vm)!: 1 5 0 support #1508

Merged
merged 153 commits into from
Apr 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
0903d36
wip: 1.5.0
StanislavBreadless Jan 22, 2024
8d5350b
wip contracts
StanislavBreadless Jan 22, 2024
2ad61fb
wip
StanislavBreadless Jan 23, 2024
dbfa57d
unit tests pass
StanislavBreadless Jan 24, 2024
1ea3592
upd api system contracts
StanislavBreadless Jan 24, 2024
b769f86
use remote branch for 1.5.0
StanislavBreadless Jan 25, 2024
d9fe5e2
fmt
StanislavBreadless Jan 25, 2024
056919a
sync with main
StanislavBreadless Jan 25, 2024
0d42b2b
wip
StanislavBreadless Feb 7, 2024
cc64f67
wip on sekp256r1
StanislavBreadless Feb 12, 2024
9652413
sepk256r1
StanislavBreadless Feb 12, 2024
ef1045d
fmt
StanislavBreadless Feb 12, 2024
10af2db
fix unit tests
StanislavBreadless Feb 13, 2024
4e13ae6
use remote zk_evm
StanislavBreadless Feb 19, 2024
61d2cd1
correct pubdata counter
StanislavBreadless Feb 19, 2024
a7440dd
use latest contracts
StanislavBreadless Feb 20, 2024
8706505
sync with main
StanislavBreadless Feb 20, 2024
13082b0
wip new compiler 1.5.0
StanislavBreadless Feb 20, 2024
1213409
new tstore tests
StanislavBreadless Feb 20, 2024
4659a6c
add tstore
StanislavBreadless Feb 20, 2024
1b18207
minor changes
StanislavBreadless Feb 21, 2024
9167fa9
rust tests pass
StanislavBreadless Feb 21, 2024
61d9252
Merge branch 'main' into sb-1-5-0-support
StanislavBreadless Feb 21, 2024
53fd7ec
update contracts
StanislavBreadless Feb 21, 2024
883ae58
all int tests pass
StanislavBreadless Feb 21, 2024
26c7aca
fmt
StanislavBreadless Feb 21, 2024
f4fde19
add warm storage support
StanislavBreadless Feb 21, 2024
9144835
warm / cold storage support
StanislavBreadless Feb 21, 2024
f533a58
add test for hold/cold storage
StanislavBreadless Feb 21, 2024
0eba2f6
add code oracle / decommit support
StanislavBreadless Feb 23, 2024
8a69010
test for transfer sned
StanislavBreadless Feb 27, 2024
cddf965
send/transfer tests pass
StanislavBreadless Feb 27, 2024
c4d3978
upd contracts
StanislavBreadless Feb 27, 2024
aaf958f
updates contracts
StanislavBreadless Feb 28, 2024
4238b97
fmt
StanislavBreadless Feb 28, 2024
bb32c68
use remote compiler
StanislavBreadless Feb 28, 2024
913cb4e
use remote compiler
StanislavBreadless Feb 28, 2024
e7df30f
use remote zk evm
StanislavBreadless Feb 28, 2024
7ed35c8
wip on tests in system contracts
StanislavBreadless Feb 29, 2024
33dd476
wip on tests in contracts
StanislavBreadless Feb 29, 2024
ac939f5
more tests inside system contracts
StanislavBreadless Feb 29, 2024
4b88068
sync with latest zkevm
StanislavBreadless Mar 4, 2024
241ef08
sync with main
StanislavBreadless Mar 4, 2024
b537ec8
larger gas per pubdata
StanislavBreadless Mar 4, 2024
75eb758
await for fees
StanislavBreadless Mar 4, 2024
a1f6f9e
use updated contracts
StanislavBreadless Mar 5, 2024
310bc41
new contacts
StanislavBreadless Mar 5, 2024
5c4e37b
newer contracts
StanislavBreadless Mar 6, 2024
0f71b78
fmt
StanislavBreadless Mar 6, 2024
9560e2b
make work with the latest version
StanislavBreadless Mar 6, 2024
c67cf7c
update zk_evm
StanislavBreadless Mar 6, 2024
daed70e
newer contracts + better tests
StanislavBreadless Mar 6, 2024
fd76490
1.5.0 working
StanislavBreadless Mar 12, 2024
8144806
sync with main
StanislavBreadless Mar 19, 2024
82cabfb
sync 1.5.0
StanislavBreadless Mar 20, 2024
59d26ec
additional gas for pubdata
StanislavBreadless Mar 25, 2024
10d9993
upd evm opcode defs + correctly calculate statistics for decommit opcode
StanislavBreadless Mar 25, 2024
824b297
reuse constant from zkevm opcode defs
StanislavBreadless Mar 25, 2024
a8707a9
sync with main
StanislavBreadless Mar 26, 2024
d626703
rollback some of the changes
StanislavBreadless Mar 26, 2024
5f04622
update contracts and bootloader for 6 blobs
koloz193 Mar 26, 2024
2f1b710
fix lint
koloz193 Mar 26, 2024
000bec2
fix lint
koloz193 Mar 26, 2024
bfb6cfb
revert config change
koloz193 Mar 26, 2024
5fb1595
Revert "revert config change"
koloz193 Mar 26, 2024
7a1b594
sync with main
StanislavBreadless Mar 27, 2024
7e0855d
integrate 1.5.0 as the latest VM
StanislavBreadless Mar 27, 2024
d3e276a
cleanup
StanislavBreadless Mar 27, 2024
3874cfa
change used compiler
StanislavBreadless Mar 27, 2024
d70a364
cargo fix
StanislavBreadless Mar 27, 2024
68e8c8a
cargo fix 2
StanislavBreadless Mar 27, 2024
bfa6716
cleanup
StanislavBreadless Mar 27, 2024
f425708
multivm bootloader
StanislavBreadless Mar 27, 2024
f8fadb6
Merge branch 'sb-1-5-0-support' into zk-6-blobs-1-5-0
koloz193 Mar 27, 2024
8e89073
fix env
StanislavBreadless Mar 27, 2024
d9f0200
fix big_gas_limit test
StanislavBreadless Mar 27, 2024
7b32dd9
fix genesis and int tests
StanislavBreadless Mar 27, 2024
8f1c2e7
sync with main
StanislavBreadless Mar 27, 2024
8d6b530
use 1.5.0 harness
StanislavBreadless Mar 27, 2024
22b95ce
partial lint fix
StanislavBreadless Mar 27, 2024
29dc762
restore circuit statistic test
StanislavBreadless Mar 27, 2024
58847e2
update commitment
koloz193 Mar 27, 2024
f441fc3
Merge branch 'sb-1-5-0-support' into zk-6-blobs-1-5-0
koloz193 Mar 27, 2024
14d9d13
Merge branch 'main' into sb-1-5-0-support
StanislavBreadless Mar 28, 2024
7f63f8f
connect protocol version to number of blobs
koloz193 Mar 28, 2024
7c82bfd
Merge branch 'sb-1-5-0-support' into zk-6-blobs-1-5-0
koloz193 Mar 28, 2024
3097c6a
chore(genesis): add gas bound caller deployed
koloz193 Mar 29, 2024
7210cae
added comment
koloz193 Mar 29, 2024
e849f89
revert contract change
koloz193 Mar 29, 2024
12dfc09
update test
koloz193 Mar 29, 2024
bab2bbb
Merge pull request #1529 from matter-labs/zk-evm-511-add-gasbound-cal…
StanislavBreadless Mar 29, 2024
35b6e01
Merge branch 'sb-1-5-0-support' into zk-6-blobs-1-5-0
koloz193 Mar 29, 2024
4e8e6d1
address comments
koloz193 Mar 29, 2024
a60326f
update config values
koloz193 Mar 29, 2024
3cef979
Merge pull request #1499 from matter-labs/zk-6-blobs-1-5-0
StanislavBreadless Mar 29, 2024
90df7b7
upd contracts to the fixed ones
StanislavBreadless Mar 29, 2024
fe32eb8
migrate to u64
StanislavBreadless Apr 1, 2024
35cdc4b
use the same contracts as main
StanislavBreadless Apr 1, 2024
5714cb9
fix lint
StanislavBreadless Apr 1, 2024
514cbc9
fix comments
StanislavBreadless Apr 2, 2024
efdda96
ensure that gas limit is always compatible
StanislavBreadless Apr 2, 2024
210fa21
fix lint
StanislavBreadless Apr 2, 2024
80967f2
fix error
StanislavBreadless Apr 2, 2024
2489781
rename
StanislavBreadless Apr 2, 2024
13e0856
Merge branch 'main' into sb-migrate-gas-limit-to-u64
StanislavBreadless Apr 2, 2024
f224fb4
sync with origin
StanislavBreadless Apr 2, 2024
74cc25f
sync with migration to u64
StanislavBreadless Apr 2, 2024
a4eac95
update genesis setup
StanislavBreadless Apr 2, 2024
ab953c9
fix unit tests
StanislavBreadless Apr 2, 2024
a8d3f07
make large gas limit test work
StanislavBreadless Apr 2, 2024
561e893
test for large refund
StanislavBreadless Apr 2, 2024
1031e34
u64 for trace
StanislavBreadless Apr 2, 2024
3f5d5f6
better gas price testing
StanislavBreadless Apr 3, 2024
f03ded8
upd harness
StanislavBreadless Apr 3, 2024
96a1f76
fix int tests
StanislavBreadless Apr 3, 2024
c340cad
Merge branch 'main' into sb-1-5-0-support
StanislavBreadless Apr 3, 2024
4953f86
Update core/lib/multivm/src/versions/vm_latest/old_vm/oracles/decommi…
StanislavBreadless Apr 3, 2024
e37f6f0
some fixes + fee test
StanislavBreadless Apr 3, 2024
130e094
Merge remote-tracking branch 'origin/sb-1-5-0-support' into sb-1-5-0-…
StanislavBreadless Apr 3, 2024
f206df2
small rename
StanislavBreadless Apr 3, 2024
aff373b
store refunds
StanislavBreadless Apr 3, 2024
36080a5
make validium work
StanislavBreadless Apr 3, 2024
72f74da
return correct contracts
StanislavBreadless Apr 3, 2024
3537972
skip large gaslimit test for validium
StanislavBreadless Apr 3, 2024
0cd8b60
sync with main
StanislavBreadless Apr 3, 2024
dae1b2a
native 1 5 0 commitment utils
StanislavBreadless Apr 3, 2024
d0f30e3
remove todo
StanislavBreadless Apr 3, 2024
b7c43f8
sync with main + fix genesis params
StanislavBreadless Apr 3, 2024
13791b1
reoslve comment
StanislavBreadless Apr 3, 2024
9458d24
restore test
StanislavBreadless Apr 4, 2024
e8970f6
remove prints + update api bootloader
StanislavBreadless Apr 4, 2024
1cd82dd
sync with main
StanislavBreadless Apr 4, 2024
36d6386
fix seal criterion
StanislavBreadless Apr 4, 2024
f579e30
fix prover unit tests
StanislavBreadless Apr 4, 2024
163a6c4
fix unit test
StanislavBreadless Apr 4, 2024
b2ed2bd
cargo fix
StanislavBreadless Apr 4, 2024
f5b4949
fix lint
StanislavBreadless Apr 4, 2024
75b9815
spellcheck
StanislavBreadless Apr 4, 2024
190f616
respond to comments
StanislavBreadless Apr 4, 2024
7e5897b
fix lint
StanislavBreadless Apr 4, 2024
a34ed18
amend fee test
StanislavBreadless Apr 4, 2024
a0c0dcf
remove exclusion
StanislavBreadless Apr 4, 2024
2bada94
sync with main
StanislavBreadless Apr 5, 2024
994b487
fix CI
StanislavBreadless Apr 5, 2024
127d06d
sync with main
StanislavBreadless Apr 5, 2024
6f4463d
1 5 0 commitment test
StanislavBreadless Apr 5, 2024
e4eddce
add tstore circuit tracking
StanislavBreadless Apr 5, 2024
05770f1
remove unneeded assert
StanislavBreadless Apr 5, 2024
bcf469f
Merge branch 'main' into sb-1-5-0-support
StanislavBreadless Apr 5, 2024
1758c42
remove unused methods
StanislavBreadless Apr 5, 2024
42a5825
Merge branch 'main' into sb-1-5-0-support
StanislavBreadless Apr 5, 2024
31b8c8f
Merge branch 'main' into sb-1-5-0-support
StanislavBreadless Apr 5, 2024
25a816a
correct field
StanislavBreadless Apr 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
111 changes: 111 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -150,11 +150,13 @@ url = "2"
web3 = "0.19.0"

# "Internal" dependencies
# TODO: use the v1.5.0 circuit_sequencer_api once the prover is integrated
circuit_sequencer_api = { package = "circuit_sequencer_api", git = "https://github.com/matter-labs/era-zkevm_test_harness.git", branch = "v1.4.2" }
circuit_sequencer_api_1_3_3 = { package = "circuit_sequencer_api", git = "https://github.com/matter-labs/era-zkevm_test_harness.git", branch = "v1.3.3" }
circuit_sequencer_api_1_4_0 = { package = "circuit_sequencer_api", git = "https://github.com/matter-labs/era-zkevm_test_harness.git", branch = "v1.4.0" }
circuit_sequencer_api_1_4_1 = { package = "circuit_sequencer_api", git = "https://github.com/matter-labs/era-zkevm_test_harness.git", branch = "v1.4.1" }
circuit_sequencer_api_1_4_2 = { package = "circuit_sequencer_api", git = "https://github.com/matter-labs/era-zkevm_test_harness.git", branch = "v1.4.2" }
circuit_sequencer_api_1_5_0 = { package = "circuit_sequencer_api", git = "https://github.com/matter-labs/era-zkevm_test_harness.git", branch = "v1.5.0" }
crypto_codegen = { package = "codegen", git = "https://github.com/matter-labs/solidity_plonk_verifier.git", branch = "dev" }
kzg = { package = "kzg", git = "https://github.com/matter-labs/era-zkevm_test_harness.git", branch = "v1.4.2" }
vise = { git = "https://github.com/matter-labs/vise.git", version = "0.1.0", rev = "1c9cc500e92cf9ea052b230e114a6f9cce4fb2c1" }
Expand All @@ -164,6 +166,7 @@ zk_evm_1_3_1 = { package = "zk_evm", git = "https://github.com/matter-labs/era-z
zk_evm_1_3_3 = { package = "zk_evm", git = "https://github.com/matter-labs/era-zk_evm.git", tag = "v1.3.3-rc2" }
zk_evm_1_4_0 = { package = "zk_evm", git = "https://github.com/matter-labs/era-zk_evm.git", branch = "v1.4.0" }
zk_evm_1_4_1 = { package = "zk_evm", git = "https://github.com/matter-labs/era-zk_evm.git", branch = "v1.4.1" }
zk_evm_1_5_0 = { package = "zk_evm", git = "https://github.com/matter-labs/era-zk_evm.git", branch = "v1.5.0" }
zksync_concurrency = { version = "0.1.0", git = "https://github.com/matter-labs/era-consensus.git", rev = "8833a9b7fef89d1ffc5c08d53a3560164bc1c694" }
zksync_consensus_bft = { version = "0.1.0", git = "https://github.com/matter-labs/era-consensus.git", rev = "8833a9b7fef89d1ffc5c08d53a3560164bc1c694" }
zksync_consensus_crypto = { version = "0.1.0", git = "https://github.com/matter-labs/era-consensus.git", rev = "8833a9b7fef89d1ffc5c08d53a3560164bc1c694" }
Expand Down
7 changes: 7 additions & 0 deletions checks-config/era.dic
Original file line number Diff line number Diff line change
Expand Up @@ -929,3 +929,10 @@ SIGINT
opentelemetry
PubdataSendingMode
FriGpuProverArchiver
vm
demuxer
2k
4k
superset
80M
780kb
2 changes: 1 addition & 1 deletion contracts
Submodule contracts updated 175 files
4 changes: 2 additions & 2 deletions core/bin/system-constants-generator/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use std::{cell::RefCell, rc::Rc};

use multivm::{
interface::{
dyn_tracers::vm_1_4_1::DynTracer, tracer::VmExecutionStopReason, L1BatchEnv, L2BlockEnv,
dyn_tracers::vm_1_5_0::DynTracer, tracer::VmExecutionStopReason, L1BatchEnv, L2BlockEnv,
SystemEnv, TxExecutionMode, VmExecutionMode, VmInterface,
},
vm_latest::{
Expand Down Expand Up @@ -335,7 +335,7 @@ pub(super) fn execute_user_txs_in_test_gas_vm(
VmSpentResourcesResult {
// It is assumed that the entire `gas_used` was spent on computation and so it safe to convert to u32
gas_consumed: result.statistics.gas_used as u32,
total_gas_paid: total_gas_paid_upfront.as_u32() - total_gas_refunded as u32,
total_gas_paid: (total_gas_paid_upfront.as_u64() - total_gas_refunded) as u32,
pubdata_published: metrics.size() as u32,
total_pubdata_paid: 0,
}
Expand Down
19 changes: 9 additions & 10 deletions core/lib/basic_types/src/protocol_version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,16 @@ pub enum ProtocolVersionId {
Version21,
Version22,
Version23,
Version24,
}

impl ProtocolVersionId {
pub fn latest() -> Self {
Self::Version22
Self::Version23
}

pub fn next() -> Self {
Self::Version23
Self::Version24
}

/// Returns VM version to be used by API for this protocol version.
Expand Down Expand Up @@ -83,7 +84,8 @@ impl ProtocolVersionId {
ProtocolVersionId::Version20 => VmVersion::Vm1_4_1,
ProtocolVersionId::Version21 => VmVersion::Vm1_4_2,
ProtocolVersionId::Version22 => VmVersion::Vm1_4_2,
ProtocolVersionId::Version23 => VmVersion::Vm1_4_2,
ProtocolVersionId::Version23 => VmVersion::Vm1_5_0,
ProtocolVersionId::Version24 => VmVersion::Vm1_5_0,
}
}

Expand Down Expand Up @@ -131,15 +133,11 @@ impl ProtocolVersionId {
}

pub fn is_pre_1_5_0(&self) -> bool {
// In the current codebase all the protocol versions are pre-1.5.0.
// This method will be updated once the v1.5.0 is added to the server
true
self < &ProtocolVersionId::Version23
}

pub fn is_post_1_5_0(&self) -> bool {
// In the current codebase all the protocol versions are pre-1.5.0.
// This method will be updated once the v1.5.0 is added to the server
false
self >= &ProtocolVersionId::Version23
}
}

Expand Down Expand Up @@ -225,7 +223,8 @@ impl From<ProtocolVersionId> for VmVersion {
ProtocolVersionId::Version20 => VmVersion::Vm1_4_1,
ProtocolVersionId::Version21 => VmVersion::Vm1_4_2,
ProtocolVersionId::Version22 => VmVersion::Vm1_4_2,
ProtocolVersionId::Version23 => VmVersion::Vm1_4_2,
ProtocolVersionId::Version23 => VmVersion::Vm1_5_0,
ProtocolVersionId::Version24 => VmVersion::Vm1_5_0,
}
}
}
3 changes: 2 additions & 1 deletion core/lib/basic_types/src/vm_version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ pub enum VmVersion {
VmBoojumIntegration,
Vm1_4_1,
Vm1_4_2,
Vm1_5_0,
}

impl VmVersion {
/// Returns the latest supported VM version.
pub const fn latest() -> VmVersion {
Self::Vm1_4_2
Self::Vm1_5_0
}
}
2 changes: 2 additions & 0 deletions core/lib/commitment_utils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@ zksync_types.workspace = true
zksync_utils.workspace = true
circuit_sequencer_api_1_4_0.workspace = true
circuit_sequencer_api_1_4_1.workspace = true
circuit_sequencer_api_1_5_0.workspace = true

zk_evm_1_5_0.workspace = true
zk_evm_1_4_1.workspace = true
zk_evm_1_3_3.workspace = true
multivm.workspace = true
33 changes: 33 additions & 0 deletions core/lib/commitment_utils/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ use zk_evm_1_4_1::{
aux_structures::Timestamp as Timestamp_1_4_1,
zk_evm_abstractions::queries::LogQuery as LogQuery_1_4_1,
};
use zk_evm_1_5_0::{
aux_structures::Timestamp as Timestamp_1_5_0,
zk_evm_abstractions::queries::LogQuery as LogQuery_1_5_0,
};
use zksync_types::{zk_evm_types::LogQuery, ProtocolVersionId, VmVersion, H256, U256};
use zksync_utils::expand_memory_contents;

Expand All @@ -32,6 +36,14 @@ pub fn events_queue_commitment(
.collect(),
),
)),
VmVersion::Vm1_5_0 => Some(H256(
circuit_sequencer_api_1_5_0::commitments::events_queue_commitment_fixed(
&events_queue
.iter()
.map(|x| to_log_query_1_5_0(*x))
.collect(),
),
)),
_ => None,
}
}
Expand Down Expand Up @@ -60,6 +72,11 @@ pub fn bootloader_initial_content_commitment(
&full_bootloader_memory,
),
)),
VmVersion::Vm1_5_0 => Some(H256(
circuit_sequencer_api_1_5_0::commitments::initial_heap_content_commitment_fixed(
&full_bootloader_memory,
),
)),
_ => unreachable!(),
}
}
Expand Down Expand Up @@ -95,3 +112,19 @@ fn to_log_query_1_4_1(log_query: LogQuery) -> LogQuery_1_4_1 {
is_service: log_query.is_service,
}
}

fn to_log_query_1_5_0(log_query: LogQuery) -> LogQuery_1_5_0 {
LogQuery_1_5_0 {
timestamp: Timestamp_1_5_0(log_query.timestamp.0),
tx_number_in_block: log_query.tx_number_in_block,
aux_byte: log_query.aux_byte,
shard_id: log_query.shard_id,
address: log_query.address,
key: log_query.key,
read_value: log_query.read_value,
written_value: log_query.written_value,
rw_flag: log_query.rw_flag,
rollback: log_query.rollback,
is_service: log_query.is_service,
}
}