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: Validium #1461

Merged
merged 343 commits into from
Mar 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
343 commits
Select commit Hold shift + click to select a range
85954ad
Apdapt testonly
jorbush Feb 23, 2024
c4b6cde
Remove TODOs comments
jorbush Feb 23, 2024
0a5407e
Revert "Remove TODOs comments"
jorbush Feb 23, 2024
ce6247e
add support for validium in external mode
toni-calvin Feb 23, 2024
57f4bbe
update tests
toni-calvin Feb 23, 2024
ba00a14
remove unused parameter
toni-calvin Feb 23, 2024
ee59553
Merge branch 'feat_validium_pubdata_abstraction' of github.com:Lambda…
ilitteri Feb 23, 2024
4470772
Update contracts submodule commit to matter-labs
ilitteri Feb 23, 2024
e78e9e0
Update contracts submodule commit
ilitteri Feb 23, 2024
254d87b
Update contracts submodule commit
ilitteri Feb 23, 2024
a6959f4
Remove obscure use of VALIDIUM_MODE env
ilitteri Feb 23, 2024
652b33a
Merge branch 'feat_validium_pubdata_abstraction' into feat_remove_val…
ilitteri Feb 23, 2024
95ab24a
Revert "use a function for the function selector"
ilitteri Feb 23, 2024
c2c464d
Remove call implementation
ilitteri Feb 23, 2024
e165fac
impl Detokenize for L1BatchCommitDataGeneratorMode
ilitteri Feb 23, 2024
3a9e133
Add executor_contract getter
ilitteri Feb 23, 2024
da18d24
Call getPubdataPriceMode using Executor's contract ABI
ilitteri Feb 23, 2024
8528d02
Fix unhandled error
ilitteri Feb 23, 2024
bb64792
Update contracts submodule commit
ilitteri Feb 23, 2024
2e240eb
Fix L1BatchCommitDataGeneratorMode::from_tokens
ilitteri Feb 23, 2024
19f3938
Add comment
ilitteri Feb 23, 2024
629c325
refactor configLine into struct
toni-calvin Feb 26, 2024
d9341fe
Update contracts submodule commit
ilitteri Feb 26, 2024
6ecb2a5
Merge branch 'feat_remove_validium_mode_env_usage' of github.com:Lamb…
ilitteri Feb 26, 2024
272e35f
update ext node config
toni-calvin Feb 26, 2024
d5fdb5c
rename var
toni-calvin Feb 26, 2024
ec0af17
Fix: pubdata in Validium mode should be an empty array
ilitteri Feb 26, 2024
4c6de9f
Merge branch 'feat_validium_pubdata_abstraction' of github.com:Lambda…
ilitteri Feb 26, 2024
d1fb75e
Merge branch 'feat_validium_pubdata_abstraction' of github.com:Lambda…
ilitteri Feb 26, 2024
bb42d5b
Update contracts submodule commit
ilitteri Feb 26, 2024
213b2b1
Update contracts submodule commit
ilitteri Feb 26, 2024
c99c61e
Stash
jorbush Feb 27, 2024
0a04805
Update contracts submodule commit
ilitteri Feb 27, 2024
ccda961
add validium mode assert for smallPubdata test
ColoCarletti Feb 27, 2024
2c56a4d
remove console.log
ColoCarletti Feb 27, 2024
1aa9736
add documentation
ColoCarletti Feb 27, 2024
fe24f89
Check mode
jorbush Feb 28, 2024
8525ce9
fix effective gas price calculation to be backward compatible with le…
Feb 28, 2024
f902523
Remove unused function
ilitteri Feb 28, 2024
cc34e81
Remove unnecessary test and TODOs
jorbush Feb 28, 2024
d35e74d
add ext-node-validium.toml file
toni-calvin Feb 28, 2024
15d31f6
Update how the config is set now
ilitteri Feb 28, 2024
6310305
Merge pull request #1235 from lambdaclass/feat_add_validium_support_e…
ilitteri Feb 28, 2024
c6e3fe8
Merge pull request #1236 from lambdaclass/optional-commit_data_generator
ilitteri Feb 28, 2024
4b95657
Update .gitignore
ilitteri Feb 28, 2024
78148e9
Merge branch 'add-ext-node-config-in-init' of github.com:LambdaClass/…
ilitteri Feb 28, 2024
447f9c3
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Feb 28, 2024
89c32ff
Revert "rename var"
ilitteri Feb 28, 2024
b99e4b0
Revert "update ext node config"
ilitteri Feb 28, 2024
2dcebfd
Revert "refactor configLine into struct"
ilitteri Feb 28, 2024
9ed55e0
Delete infrastructure/zk/src/config_constants.ts
ilitteri Feb 28, 2024
daf7e4d
Update config.ts
ilitteri Feb 28, 2024
e1e01dd
Init system using DeploymentMode enum
ilitteri Feb 28, 2024
1adeb3a
Fix lightweight-init and reinit cmds
ilitteri Feb 28, 2024
f89ebda
Fix hyperchain_wizard
ilitteri Feb 28, 2024
2a9cf8f
Fix conditional
ilitteri Feb 28, 2024
304e331
Merge pull request #1237 from lambdaclass/fix_validium_mode_config_files
ilitteri Feb 28, 2024
8d8b3ce
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Feb 28, 2024
3805f90
Fix merge
ilitteri Feb 28, 2024
f2e90fc
Fix compilation error in tests (because of a merge)
ilitteri Feb 28, 2024
172ef3f
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Feb 28, 2024
3e8559d
Merge pull request #1239 from lambdaclass/validium_update_contracts_s…
ilitteri Feb 28, 2024
9b37ccd
Update contracts submodule commit
ilitteri Feb 28, 2024
773efe8
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Feb 28, 2024
5783c1b
Remove unused imports
ilitteri Feb 29, 2024
ea433ef
Update contracts submodule commit
ilitteri Feb 29, 2024
719686e
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Feb 29, 2024
ee31fdf
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Feb 29, 2024
06fad6a
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Feb 29, 2024
981c26c
Merge branch 'adapt-protobuf_config-tests' of github.com:LambdaClass/…
ilitteri Feb 29, 2024
baa1083
Revert "Add executor_contract getter"
ilitteri Feb 29, 2024
06752d6
Fix method name
ilitteri Feb 29, 2024
d6c1c20
Improve assert comment
ilitteri Feb 29, 2024
e3d131c
small refactor
ColoCarletti Feb 29, 2024
538b64f
Fix call to getPubdataPricingMode method
ilitteri Feb 29, 2024
52c177a
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Feb 29, 2024
51875a3
Merge pull request #1242 from lambdaclass/feat_remove_validium_mode_e…
ilitteri Feb 29, 2024
e5d19ec
Merge pull request #1275 from lambdaclass/adapt-protobuf_config-tests
ilitteri Feb 29, 2024
1685e29
Merge pull request #1277 from lambdaclass/add-ext-node-config-in-init
ilitteri Feb 29, 2024
08c969d
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Feb 29, 2024
e392d18
Merge remote-tracking branch 'origin/validium_mode_example_crate' int…
ColoCarletti Feb 29, 2024
d58e1ac
Refactor
ilitteri Feb 29, 2024
000775a
Remove unused import
ilitteri Feb 29, 2024
9586ecc
Handle special case where these changes are merged before the contrac…
ilitteri Feb 29, 2024
c241c78
Update era.dic
ilitteri Feb 29, 2024
a41f07c
Init template
jorbush Mar 1, 2024
d7789fc
Fix comment
ilitteri Mar 1, 2024
ac7f5fb
Address nits
ilitteri Mar 1, 2024
410b32c
Merge pull request #1240 from lambdaclass/add-commitment-mode-cross-c…
ilitteri Mar 1, 2024
e9154c3
Use matrix for modes
jorbush Mar 4, 2024
7661ecc
Delete unnecessary workflow
jorbush Mar 4, 2024
6d262e0
undo formatting
jorbush Mar 4, 2024
7e14873
Use matrix for External Node
jorbush Mar 4, 2024
5037ed1
Add mode to workflow label
jorbush Mar 4, 2024
e05af15
Add zksync_eth_client as dep in EN
ilitteri Mar 4, 2024
bdd8462
ConsistencyChecker now receives impl EthInterface instead of eth_clie…
ilitteri Mar 4, 2024
ef5210c
Cross-check batch commit data generation mdoe with L1
ilitteri Mar 4, 2024
10f3109
Refactor cross-check function
ilitteri Mar 4, 2024
566549e
Merge main
ilitteri Mar 4, 2024
ef38285
Rename `CommitBatches` and `CommitBatchInfo` to `CommitBatchesRollup`…
Oppen Feb 23, 2024
d682be4
Big L1CommitBatchesDataGenerator refactor
Oppen Feb 29, 2024
4a2f79e
Fix publish criterion
Oppen Feb 29, 2024
dab6387
Fixes?
Oppen Mar 1, 2024
23c106e
Remove FIXME
Oppen Mar 1, 2024
ce86e8f
Restore contracts
Oppen Mar 1, 2024
c8e6901
Restore consistency checker
Oppen Mar 4, 2024
2278532
Fix double hardcoding to CommitBatchesRollup
Oppen Mar 4, 2024
c3d6441
Fix double 'into_tokens'
Oppen Mar 4, 2024
2192b61
Lints
Oppen Mar 4, 2024
45649c9
Lints
Oppen Mar 4, 2024
3d2da18
Merge remote-tracking branch 'upstream/feat_validium_pubdata_abstract…
jorbush Mar 5, 2024
630187d
Remove generic in ConsistencyChecker::new
ilitteri Mar 5, 2024
cbe634c
Merge pull request #1343 from lambdaclass/add_commit_data_gen_mode_cr…
ilitteri Mar 5, 2024
f19bd63
Slightly more specific comments to new structures
Oppen Mar 5, 2024
01e53bd
Minor refactor for encode_l1_commit
Oppen Mar 5, 2024
aa0ad57
Doc comments
Oppen Mar 5, 2024
0b9b0e2
Copy-paste
Oppen Mar 5, 2024
f4e6026
Add clean
jorbush Mar 5, 2024
f9a638e
Add config compile
jorbush Mar 5, 2024
f85b954
Test validium mode only
jorbush Mar 5, 2024
7a4b045
Debug database.ts
jorbush Mar 5, 2024
33e7717
Merge remote-tracking branch 'upstream/feat_validium_pubdata_abstract…
Oppen Mar 5, 2024
89cd0a5
remove unnecessary clean
jorbush Mar 5, 2024
b8856b4
Debug in rollup mode
jorbush Mar 5, 2024
81c7715
Debug db opts
jorbush Mar 5, 2024
12cbe29
Use other configuartion
jorbush Mar 5, 2024
9a5b9e8
Add config compile
jorbush Mar 5, 2024
0ac81d3
add PubdataPricing trait
ColoCarletti Mar 5, 2024
dbf8784
fix tests
ColoCarletti Mar 5, 2024
b1fef74
fix protobuf
ColoCarletti Mar 5, 2024
f128b46
Fix command ci
jorbush Mar 5, 2024
f1b49bd
Revert "Merge remote-tracking branch 'origin/validium_mode_example_cr…
ColoCarletti Mar 5, 2024
c4f982a
zk fmt
ColoCarletti Mar 5, 2024
846d5bc
Update new toml
jorbush Mar 5, 2024
96a4e41
move PubdataPricing
ColoCarletti Mar 5, 2024
ae2781e
fmt
ColoCarletti Mar 5, 2024
3df0417
fmt
ColoCarletti Mar 5, 2024
d685e07
Use matrix and new config
jorbush Mar 5, 2024
edbc278
spellcheck
Oppen Mar 5, 2024
941639d
Merge pull request #1325 from lambdaclass/feat_validium_data_commit_a…
ilitteri Mar 5, 2024
6f88c5c
refactor state_keeper tests
ColoCarletti Mar 5, 2024
693cf7f
remove debug
jorbush Mar 5, 2024
5d485c0
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ColoCarletti Mar 5, 2024
dc5da60
Update submodule commit
ColoCarletti Mar 5, 2024
2c711cc
Merge remote-tracking branch 'upstream/feat_validium_pubdata_abstract…
jorbush Mar 6, 2024
fdfd2b5
Update submoduleUpdate to point to correct submodule
jorbush Mar 7, 2024
c88bfbb
Update contracts
jorbush Mar 7, 2024
724e46a
Remove line
jorbush Mar 7, 2024
2d009a8
Fix fomat
jorbush Mar 7, 2024
909a9c8
remove validium check
ColoCarletti Mar 7, 2024
99fdbed
fix typo and add await
ColoCarletti Mar 7, 2024
35bb614
Fix lint error
jorbush Mar 8, 2024
596db93
add threshold variable
ColoCarletti Mar 8, 2024
b4bbc67
remove bob account
ColoCarletti Mar 8, 2024
e4561f2
Merge pull request #1296 from lambdaclass/feat_modify_integration_tes…
ColoCarletti Mar 8, 2024
dd73f50
Ensure we use the result of ensure_l1_batch_commit_data_generation_mode
Oppen Mar 5, 2024
452e39e
Add unit tests for ensure_l1_batch_commit_data_generation_mode
Oppen Mar 8, 2024
ce31ab4
Merge remote-tracking branch 'upstream/feat_validium_pubdata_abstract…
jorbush Mar 11, 2024
c533893
Fix unit test
jorbush Mar 12, 2024
f893968
Fix linter
jorbush Mar 12, 2024
77a0fc7
add test_casing for unittests
ColoCarletti Mar 12, 2024
057d0c3
remove debugging assert
ColoCarletti Mar 12, 2024
cae86e6
Update submodule commit
ilitteri Mar 12, 2024
bdc934f
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Mar 12, 2024
cc2f427
refactor eth_sender unittests
ColoCarletti Mar 12, 2024
c062ec4
refactor state_keeper unittests
ColoCarletti Mar 12, 2024
aa79f32
rename DeploymentMode
ColoCarletti Mar 12, 2024
676faf5
refactor gas_adjuster unittests
ColoCarletti Mar 12, 2024
a242860
Revert "fix effective gas price calculation to be backward compatible…
jorbush Mar 13, 2024
6ef6423
move DeploymentMode to testonly
ColoCarletti Mar 13, 2024
676b195
Update the legacy test so that the gas price from the legacy transact…
jorbush Mar 13, 2024
84456d8
Test without failing test
jorbush Mar 13, 2024
3988cba
Restore mistakenly removed comment
ilitteri Mar 13, 2024
dbc53de
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Mar 13, 2024
b647886
Fix merge conflict
ilitteri Mar 13, 2024
5fb16dd
Merge pull request #1357 from lambdaclass/feat_pubdata_pricing_trait
ilitteri Mar 13, 2024
24443c7
Revert "Ensure we use the result of ensure_l1_batch_commit_data_gener…
Oppen Mar 14, 2024
effe329
Rephrase comment
Oppen Mar 14, 2024
c2bd85b
Refactor mock errors by taking the value
Oppen Mar 14, 2024
1edff8b
Use assert_matches for Ok cases
Oppen Mar 14, 2024
c994358
zk fmt
Oppen Mar 14, 2024
58db79b
Uncomment test
jorbush Mar 14, 2024
a77732e
Merge remote-tracking branch 'upstream/feat_validium_pubdata_abstract…
jorbush Mar 14, 2024
b840979
Merge pull request #1270 from lambdaclass/fix-effective-gas-price-cal…
ilitteri Mar 14, 2024
ecc2d85
Merge remote-tracking branch 'upstream/feat_validium_pubdata_abstract…
jorbush Mar 14, 2024
2675e52
Update era.dic
ilitteri Mar 14, 2024
bab7721
Fix unit test
jorbush Mar 14, 2024
38392cf
Fix revert test for validium
jorbush Mar 14, 2024
45e4956
Fix upgrade test for validium
jorbush Mar 14, 2024
2684786
fmt
jorbush Mar 14, 2024
475dedb
Merge pull request #1393 from lambdaclass/feat_validium_test_generato…
ilitteri Mar 14, 2024
4b14536
refactor tests
ColoCarletti Mar 14, 2024
9908789
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ColoCarletti Mar 14, 2024
02e25e9
fix build commit tx test
ColoCarletti Mar 14, 2024
72be7f9
Merge pull request #1431 from lambdaclass/feat_test_casing_in_consist…
ColoCarletti Mar 14, 2024
d679734
Merge branch 'main' of github.com:matter-labs/zksync-era into feat_va…
ilitteri Mar 14, 2024
359a249
Fix merge conflicts
ilitteri Mar 14, 2024
da04c91
Fix merge conflicts part 2
ilitteri Mar 14, 2024
30e3b29
Update submodule commit
ilitteri Mar 14, 2024
78665af
Update submodule commit part 3
ilitteri Mar 14, 2024
c05f27c
Update vk hash
ilitteri Mar 14, 2024
fc5846b
Fix snapshot-recovery test for validium
jorbush Mar 15, 2024
823e3ae
Use external node validium configuration for validium
jorbush Mar 15, 2024
c5a7629
Use the correct database url for node configuration
jorbush Mar 15, 2024
bbbf705
Update submodule commit
ilitteri Mar 15, 2024
eaccb7e
Distinguish between modes using PubdataPriceMode
jorbush Mar 19, 2024
dc63096
Fix Web3 RPC URL
jorbush Mar 19, 2024
f2b01ff
change checkout for validium contracts
ColoCarletti Mar 19, 2024
897fe60
Use main mode as provider
jorbush Mar 19, 2024
1a441f2
Use a new provider
jorbush Mar 19, 2024
b4531e5
Merge pull request #1459 from lambdaclass/fix_modify_checkout_commit_…
popzxc Mar 20, 2024
76a7f0a
Show upgrade test
jorbush Mar 20, 2024
f089724
Distinguish validium node configuration for docker
jorbush Mar 21, 2024
3482f4e
Update gitignore
jorbush Mar 21, 2024
840d076
Set environment
jorbush Mar 21, 2024
d9e35f4
See variables available
jorbush Mar 21, 2024
52507f2
Use a .env variable
jorbush Mar 22, 2024
1276be8
Use docker for CI
jorbush Mar 22, 2024
bdf6c7f
Remove console.log()
jorbush Mar 22, 2024
4fbfef8
Revert format vscode
jorbush Mar 22, 2024
8862d6c
Merge remote-tracking branch 'upstream/feat_validium_pubdata_abstract…
jorbush Mar 22, 2024
99aa4c9
Merge pull request #1312 from lambdaclass/validium-ci-jobs-integratio…
ilitteri Mar 22, 2024
e72923a
Fix main merge conflicts
ilitteri Mar 22, 2024
985276f
Merge branch 'feat_validium_pubdata_abstraction' of github.com:matter…
ilitteri Mar 22, 2024
c62fd3c
Merge branch 'main' of github.com:matter-labs/zksync-era into feat_va…
ilitteri Mar 27, 2024
b7cb4b2
Fix merge conflicts
ilitteri Mar 27, 2024
12c5cd2
Address PR comments
ilitteri Mar 27, 2024
b5508a1
Update max_pubdata_per_batch config to a temporary value
ilitteri Mar 27, 2024
4ee7da1
Revert contracts submodule commit
ilitteri Mar 27, 2024
28ba4f7
Add comments
ilitteri Mar 27, 2024
3967fc8
Rollup format
ilitteri Mar 27, 2024
81d69c0
Revert contracts submodule commit
ilitteri Mar 27, 2024
d453904
Revert fmt
ilitteri Mar 27, 2024
3911866
Merge branch 'main' into feat_validium_pubdata_abstraction_merge_main
ilitteri Mar 27, 2024
21e37ca
Fix contracts checkout
popzxc Mar 27, 2024
5d1502d
Update DB passwords for validium docker toml files
ilitteri Mar 27, 2024
975ce96
Merge branch 'feat_validium_pubdata_abstraction_merge_main' of github…
ilitteri Mar 27, 2024
cc910ce
Fix merge conflicts
ilitteri Mar 27, 2024
6cd9992
Fix linter
ilitteri Mar 27, 2024
eb61ba6
Fix validium docker toml files
ilitteri Mar 27, 2024
6a50a33
Add word to era dic
ilitteri Mar 27, 2024
b656983
Update CI
ilitteri Mar 27, 2024
3cf321b
Fix integration tests
ilitteri Mar 27, 2024
a85a88e
Fix linter
ilitteri Mar 27, 2024
2553a35
Fix CI
ilitteri Mar 27, 2024
ac5b2a5
Fix CI
ilitteri Mar 27, 2024
b3dd08f
Fix revert-and-restart-en.test.ts, in Validium spentAmount could be l…
ilitteri Mar 27, 2024
198ce35
Merge branch 'main' into feat_validium_pubdata_abstraction_merge_main
popzxc Mar 28, 2024
8d10cdf
Fix merge conflict
popzxc Mar 28, 2024
b94981d
Merge branch 'main' into feat_validium_pubdata_abstraction_merge_main
RomanBrodetski Mar 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 50 additions & 15 deletions .github/workflows/ci-core-reusable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
workflow_call:
inputs:
compilers:
description: 'JSON of required compilers and their versions'
description: "JSON of required compilers and their versions"
type: string
required: false
default: '[{ "zksolc": ["1.3.14", "1.3.16", "1.3.17", "1.3.1", "1.3.7", "1.3.18", "1.3.19", "1.3.21"] } , { "zkvyper": ["1.3.13"] }]'
Expand All @@ -19,6 +19,7 @@ jobs:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with:
submodules: "recursive"
fetch-depth: 0

- name: Setup environment
run: |
Expand Down Expand Up @@ -70,6 +71,7 @@ jobs:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with:
submodules: "recursive"
fetch-depth: 0

- name: Setup environment
run: |
Expand Down Expand Up @@ -118,13 +120,14 @@ jobs:
ci_run sccache --show-stats
ci_run cat /tmp/sccache_log.txt
integration:
name: Integration (consensus=${{ matrix.consensus }})
name: Integration (consensus=${{ matrix.consensus }}, deployment_mode=${{ matrix.deployment_mode }})
strategy:
# In matrix jobs, fail-fast is true by default.
# To be consistent with the rest of the workflow we disable it explicitly.
fail-fast: false
matrix:
consensus: [false, true]
deployment_mode: ["Rollup", "Validium"]
env:
SERVER_COMPONENTS: "api,tree,eth,state_keeper,housekeeper,basic_witness_input_producer,commitment_generator${{ matrix.consensus && ',consensus' || '' }}"

Expand All @@ -133,6 +136,7 @@ jobs:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with:
submodules: "recursive"
fetch-depth: 0

- name: Setup environment
run: |
Expand All @@ -150,7 +154,7 @@ jobs:
wget https://github.com/ethereum/solc-bin/raw/gh-pages/linux-amd64/solc-linux-amd64-v0.8.23%2Bcommit.f704f362
mv solc-linux-amd64-v0.8.23+commit.f704f362 $(pwd)/etc/solc-bin/0.8.23/solc
chmod +x $(pwd)/etc/solc-bin/0.8.23/solc

mkdir -p $(pwd)/etc/solc-bin/zkVM-0.8.23-1.0.0
wget https://github.com/matter-labs/era-solidity/releases/download/0.8.23-1.0.0/solc-linux-amd64-0.8.23-1.0.0 -O $(pwd)/etc/solc-bin/zkVM-0.8.23-1.0.0/solc
chmod +x $(pwd)/etc/solc-bin/zkVM-0.8.23-1.0.0/solc
Expand Down Expand Up @@ -182,8 +186,13 @@ jobs:
ci_run git config --global --add safe.directory /usr/src/zksync/contracts/system-contracts
ci_run git config --global --add safe.directory /usr/src/zksync/contracts
ci_run zk
ci_run zk init

if [[ "${{ matrix.deployment_mode }}" == "Rollup" ]]; then
ci_run zk init
elif [[ "${{ matrix.deployment_mode }}" == "Validium" ]]; then
ci_run zk env dev_validium_docker
ci_run zk config compile dev_validium_docker
ci_run zk init --validium-mode
fi

# `sleep 5` because we need to wait until server started properly
- name: Run server
Expand All @@ -203,7 +212,12 @@ jobs:
# We use `yarn` directly because the test launches `zk` commands in both server and EN envs.
# An empty topmost environment helps avoid a mess when redefining env vars shared between both envs
# (e.g., DATABASE_URL).
run: ENABLE_CONSENSUS=${{ matrix.consensus }} PASSED_ENV_VARS=ENABLE_CONSENSUS ci_run yarn snapshot-recovery-test snapshot-recovery-test
run: |
if [[ "${{ matrix.deployment_mode }}" == "Validium" ]]; then
ci_run zk config compile ext-node-validium
ci_run zk config compile ext-node-validium-docker
fi
ENABLE_CONSENSUS=${{ matrix.consensus }} DEPLOYMENT_MODE=${{ matrix.deployment_mode }} PASSED_ENV_VARS="ENABLE_CONSENSUS,DEPLOYMENT_MODE" ci_run yarn snapshot-recovery-test snapshot-recovery-test

- name: Fee projection tests
run: ci_run zk test i fees
Expand All @@ -212,7 +226,7 @@ jobs:
run: |
ci_run pkill zksync_server || true
ci_run sleep 2
ENABLE_CONSENSUS=${{ matrix.consensus }} PASSED_ENV_VARS=ENABLE_CONSENSUS ci_run zk test i revert
ENABLE_CONSENSUS=${{ matrix.consensus }} DEPLOYMENT_MODE=${{ matrix.deployment_mode }} PASSED_ENV_VARS="ENABLE_CONSENSUS,DEPLOYMENT_MODE" ci_run zk test i revert

# This test should be the last one as soon as it
# finished bootloader will be different
Expand Down Expand Up @@ -252,11 +266,12 @@ jobs:
ci_run cat /tmp/sccache_log.txt

external-node:
name: External node (consensus=${{ matrix.consensus }})
name: External node (consensus=${{ matrix.consensus }}, deployment_mode=${{ matrix.deployment_mode }})
strategy:
fail-fast: false
matrix:
consensus: [false, true]
deployment_mode: ["Rollup", "Validium"]
runs-on: [matterlabs-ci-runner]

env:
Expand All @@ -268,6 +283,7 @@ jobs:
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
with:
submodules: "recursive"
fetch-depth: 0

- name: Setup environment
run: |
Expand All @@ -289,17 +305,27 @@ jobs:
ci_run git config --global --add safe.directory /usr/src/zksync/contracts/system-contracts
ci_run git config --global --add safe.directory /usr/src/zksync/contracts
ci_run zk
ci_run zk init
if [[ "${{ matrix.deployment_mode }}" == "Rollup" ]]; then
ci_run zk init
elif [[ "${{ matrix.deployment_mode }}" == "Validium" ]]; then
ci_run zk env dev_validium_docker
ci_run zk config compile dev_validium_docker
ci_run zk init --validium-mode
fi

# `sleep 30` because we need to wait until server started properly
- name: Run server
run: |
ci_run zk server --components=$SERVER_COMPONENTS &>>server.log &
ci_run sleep 30

- name: Run external node
run: |
ci_run zk env ext-node-docker
if [[ "${{ matrix.deployment_mode }}" == "Rollup" ]]; then
ci_run zk env ext-node-docker
elif [[ "${{ matrix.deployment_mode }}" == "Validium" ]]; then
ci_run zk env ext-node-validium-docker
fi
ci_run zk db setup
ci_run zk external-node $EXT_NODE_FLAGS &>>ext-node.log &
ci_run sleep 30
Expand All @@ -309,15 +335,24 @@ jobs:

- name: Run revert test
run: |
ENABLE_CONSENSUS=${{ matrix.consensus }} PASSED_ENV_VARS=ENABLE_CONSENSUS ci_run zk test i revert-en
ENABLE_CONSENSUS=${{ matrix.consensus }} DEPLOYMENT_MODE=${{ matrix.deployment_mode }} PASSED_ENV_VARS="ENABLE_CONSENSUS,DEPLOYMENT_MODE" ci_run zk test i revert-en
# test terminates the nodes, so we restart them.
ZKSYNC_ENV=docker ci_run zk server --components=$SERVER_COMPONENTS &>>server.log &
ZKSYNC_ENV=ext-node-docker ci_run zk external-node $EXT_NODE_FLAGS &>>ext-node.log &
if [[ "${{ matrix.deployment_mode }}" == "Rollup" ]]; then
ZKSYNC_ENV=docker ci_run zk server --components=$SERVER_COMPONENTS &>>server.log &
ZKSYNC_ENV=ext-node-docker ci_run zk external-node $EXT_NODE_FLAGS &>>ext-node.log &
elif [[ "${{ matrix.deployment_mode }}" == "Validium" ]]; then
ZKSYNC_ENV=dev_validium_docker ci_run zk server --components=$SERVER_COMPONENTS &>>server.log &
ZKSYNC_ENV=ext-node-validium-docker ci_run zk external-node $EXT_NODE_FLAGS &>>ext-node.log &
fi
ci_run sleep 30

- name: Run upgrade test
run: |
ci_run zk env docker
if [[ "${{ matrix.deployment_mode }}" == "Rollup" ]]; then
ci_run zk env docker
elif [[ "${{ matrix.deployment_mode }}" == "Validium" ]]; then
ci_run zk env dev_validium_docker
fi
CHECK_EN_URL="http://0.0.0.0:3060" ci_run zk test i upgrade

- name: Show server.log logs
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,14 @@ Cargo.lock
/etc/env/*
!/etc/env/base
!/etc/env/dev.toml
!/etc/env/dev_validium.toml
!/etc/env/dev_validium_docker.toml
!/etc/env/docker.toml
!/etc/env/ext-node.toml
!/etc/env/ext-node-docker.toml
!/etc/env/ext-node-validium.toml
!/etc/env/*.yaml
!/etc/env/ext-node-validium-docker.toml
/etc/tokens/localhost.json
/etc/zksolc-bin/*
/etc/zkvyper-bin/*
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

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

4 changes: 4 additions & 0 deletions checks-config/era.dic
Original file line number Diff line number Diff line change
Expand Up @@ -916,10 +916,14 @@ shivini
balancer
lookups
stateful
getPubdataPricingMode
Uint
implementors
WIP
oneshot
p2p
StorageProcessor
StorageMarker
SIGINT
opentelemetry
PubdataSendingMode
1 change: 1 addition & 0 deletions core/bin/external_node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ zksync_core.workspace = true
zksync_dal.workspace = true
zksync_db_connection.workspace = true
zksync_config.workspace = true
zksync_eth_client.workspace = true
zksync_storage.workspace = true
zksync_utils.workspace = true
zksync_state.workspace = true
Expand Down
9 changes: 8 additions & 1 deletion core/bin/external_node/src/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use anyhow::Context;
use serde::Deserialize;
use url::Url;
use zksync_basic_types::{Address, L1ChainId, L2ChainId};
use zksync_config::ObjectStoreConfig;
use zksync_config::{configs::chain::L1BatchCommitDataGeneratorMode, ObjectStoreConfig};
use zksync_core::{
api_server::{
tx_sender::TxSenderConfig,
Expand Down Expand Up @@ -250,6 +250,9 @@ pub struct OptionalENConfig {
// This is intentionally not a part of `RemoteENConfig` because fetching this info from the main node would defeat
// its purpose; the consistency checker assumes that the main node may provide false information.
pub contracts_diamond_proxy_addr: Option<Address>,

#[serde(default = "OptionalENConfig::default_l1_batch_commit_data_generator_mode")]
pub l1_batch_commit_data_generator_mode: L1BatchCommitDataGeneratorMode,
}

impl OptionalENConfig {
Expand Down Expand Up @@ -364,6 +367,10 @@ impl OptionalENConfig {
10_000
}

const fn default_l1_batch_commit_data_generator_mode() -> L1BatchCommitDataGeneratorMode {
L1BatchCommitDataGeneratorMode::Rollup
}

pub fn polling_interval(&self) -> Duration {
Duration::from_millis(self.polling_interval)
}
Expand Down
9 changes: 9 additions & 0 deletions core/bin/external_node/src/config/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ fn parsing_optional_config_from_empty_env() {
128 * BYTES_IN_MEGABYTE
);
assert_eq!(config.max_response_body_size(), 10 * BYTES_IN_MEGABYTE);
assert_eq!(
config.l1_batch_commit_data_generator_mode,
L1BatchCommitDataGeneratorMode::Rollup
);
}

#[test]
Expand All @@ -45,6 +49,7 @@ fn parsing_optional_config_from_env() {
("EN_MERKLE_TREE_MULTI_GET_CHUNK_SIZE", "1000"),
("EN_MERKLE_TREE_BLOCK_CACHE_SIZE_MB", "32"),
("EN_MAX_RESPONSE_BODY_SIZE_MB", "1"),
("EN_L1_BATCH_COMMIT_DATA_GENERATOR_MODE", "Validium"),
];
let env_vars = env_vars
.into_iter()
Expand Down Expand Up @@ -72,4 +77,8 @@ fn parsing_optional_config_from_env() {
32 * BYTES_IN_MEGABYTE
);
assert_eq!(config.max_response_body_size(), BYTES_IN_MEGABYTE);
assert_eq!(
config.l1_batch_commit_data_generator_mode,
L1BatchCommitDataGeneratorMode::Validium
);
}
37 changes: 32 additions & 5 deletions core/bin/external_node/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use prometheus_exporter::PrometheusExporterConfig;
use tokio::{sync::watch, task};
use zksync_basic_types::L2ChainId;
use zksync_concurrency::{ctx, limiter, scope, time};
use zksync_config::configs::database::MerkleTreeMode;
use zksync_config::configs::{chain::L1BatchCommitDataGeneratorMode, database::MerkleTreeMode};
use zksync_core::{
api_server::{
execution_sandbox::VmConcurrencyLimiter,
Expand All @@ -19,6 +19,10 @@ use zksync_core::{
commitment_generator::CommitmentGenerator,
consensus,
consistency_checker::ConsistencyChecker,
eth_sender::l1_batch_commit_data_generator::{
L1BatchCommitDataGenerator, RollupModeL1BatchCommitDataGenerator,
ValidiumModeL1BatchCommitDataGenerator,
},
l1_gas_price::MainNodeFeeParamsFetcher,
metadata_calculator::{MetadataCalculator, MetadataCalculatorConfig},
reorg_detector,
Expand All @@ -32,9 +36,11 @@ use zksync_core::{
batch_status_updater::BatchStatusUpdater, external_io::ExternalIO, ActionQueue,
MainNodeClient, SyncState,
},
utils::ensure_l1_batch_commit_data_generation_mode,
};
use zksync_dal::{metrics::PostgresMetrics, ConnectionPool, Core, CoreDal};
use zksync_db_connection::healthcheck::ConnectionPoolHealthCheck;
use zksync_eth_client::clients::QueryClient;
use zksync_health_check::{AppHealthCheck, HealthStatus, ReactiveHealthCheck};
use zksync_state::PostgresStorageCaches;
use zksync_storage::RocksDB;
Expand Down Expand Up @@ -253,16 +259,37 @@ async fn init_tasks(
remote_diamond_proxy_addr
};

let eth_client_url = config
.required
.eth_client_url()
.context("L1 client URL is incorrect")?;
let eth_client = QueryClient::new(&eth_client_url).unwrap();

ensure_l1_batch_commit_data_generation_mode(
config.optional.l1_batch_commit_data_generator_mode,
diamond_proxy_addr,
&eth_client,
)
.await?;

let l1_batch_commit_data_generator: Arc<dyn L1BatchCommitDataGenerator> = match config
.optional
.l1_batch_commit_data_generator_mode
{
L1BatchCommitDataGeneratorMode::Rollup => Arc::new(RollupModeL1BatchCommitDataGenerator {}),
L1BatchCommitDataGeneratorMode::Validium => {
Arc::new(ValidiumModeL1BatchCommitDataGenerator {})
}
};

let consistency_checker = ConsistencyChecker::new(
&config
.required
.eth_client_url()
.context("L1 client URL is incorrect")?,
Box::new(eth_client),
10, // TODO (BFT-97): Make it a part of a proper EN config
singleton_pool_builder
.build()
.await
.context("failed to build connection pool for ConsistencyChecker")?,
l1_batch_commit_data_generator,
)
.context("cannot initialize consistency checker")?
.with_diamond_proxy_addr(diamond_proxy_addr);
Expand Down
Loading
Loading