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): Fast VM integration #1949

Merged
merged 128 commits into from
Aug 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
fab3811
start integrating vm2
joonazan Apr 11, 2024
7aadf9a
rough version of account validation gas limit
joonazan Apr 15, 2024
0846b25
add BootloaderState
joonazan Apr 15, 2024
26bcbcb
putting TX in bootloader
joonazan Apr 15, 2024
2643d7e
able to fail one test
joonazan Apr 16, 2024
fa9e2fa
properly implement history deletion
joonazan Apr 16, 2024
8f5ff12
fix formatting
joonazan Apr 16, 2024
3022d1d
pass first test
joonazan Apr 17, 2024
b9eac2a
treat zero gas as bootloader ran out
joonazan Apr 17, 2024
d15348a
enable oracle test
joonazan Apr 17, 2024
3e211cd
clippy fixes
joonazan Apr 17, 2024
5f7c227
enable more tests
joonazan Apr 17, 2024
e567d19
enable more tests
joonazan Apr 18, 2024
84c2a7f
give bootloader free memory
joonazan Apr 18, 2024
d954782
refactor hooks
joonazan Apr 18, 2024
3b9100c
add more logging; partially implement refunds
joonazan Apr 23, 2024
420f9cf
deduplicate bytecodes based on latest storage changes
joonazan Apr 24, 2024
b1f3297
implement TX fail/success correctly
joonazan Apr 24, 2024
27538ac
implement state diffs for PubdataRequested
joonazan Apr 25, 2024
6ddf8cc
implement event merging
joonazan Apr 25, 2024
556bcbb
integrate l2 to l1 messages
joonazan May 2, 2024
3c7bd29
make send_and_transfer pass
joonazan May 3, 2024
85594a3
add pubdata
joonazan May 6, 2024
533d92a
report pubdata difference, not whole pubdata
joonazan May 6, 2024
59cefe3
implements is_write_initial for world
montekki May 7, 2024
b682773
implement storage slot cost on multivm side
joonazan May 7, 2024
ca0f399
report only the last execution's pubdata and logs
joonazan May 6, 2024
202f956
support storage logs in a super dirty way
joonazan May 6, 2024
31ac603
now passes refund test
joonazan May 9, 2024
99ed680
enable the majority of tests
joonazan May 10, 2024
03585ba
populate initialness of storage log
joonazan May 13, 2024
39c373d
emit published bytecodes
joonazan May 13, 2024
caa95e8
bring l1_tx_execution closer to passing
joonazan May 13, 2024
8d55601
test transient storage and rollbacks
joonazan May 14, 2024
a3f4b03
even more snapshots
joonazan May 14, 2024
b2d7dbe
put comments on the unused hooks
joonazan May 15, 2024
1b59fe5
adapt to the removal of storage_log_queries
joonazan May 15, 2024
6487107
update tests
joonazan May 15, 2024
3dde7a7
compatibility with new changes
joonazan May 15, 2024
de72ad8
read return_data from fat pointer
montekki May 16, 2024
6945a4e
integrate into zksync_core
joonazan May 16, 2024
3465369
remove unnecessary duplication of storage and program cache
joonazan May 16, 2024
6880ddb
fix lints
joonazan May 16, 2024
35ad661
adapt to VM changes
joonazan May 21, 2024
ea34526
depend on newest vm2
joonazan May 21, 2024
fae9e9a
wip: compressed transactions and tx index
montekki May 21, 2024
96c44db
rollback the changes
montekki May 21, 2024
e3b6fe8
Merge pull request #2003 from matter-labs/fvs-integrade-vm2-step-1
joonazan May 21, 2024
a85d090
remove dependency overrides
joonazan May 22, 2024
f8bce48
don't report storagelogs that do nothing
joonazan May 22, 2024
694bea4
fixes to logs deduplication and tx number tracking
montekki May 23, 2024
eb2c87c
Merge pull request #2028 from matter-labs/fvs-track-tx-numbers-and-de…
joonazan May 23, 2024
1668af7
adapt to new vm2
joonazan May 23, 2024
1f3f963
add finish_batch from vm_latest
joonazan May 23, 2024
b8b317f
Integrate vm2 upgrade that caches initial values
joonazan May 24, 2024
3e66243
Remove storage view so is_write_initial makes sense
joonazan May 24, 2024
dbd8d78
adapt to iterators
joonazan May 24, 2024
54dbd25
Merge remote-tracking branch 'origin/main' into jms-vm2
montekki Jun 5, 2024
8771ed1
updates to newest vm2 code
montekki Jun 5, 2024
316359b
filter on l1_messenger_address
montekki Jun 5, 2024
90647e3
Merge pull request #2149 from matter-labs/fvs-update-integration-bran…
joonazan Jun 5, 2024
1d207a6
don't directly manipulate heaps
joonazan Jun 5, 2024
99a4d00
update to latest vm2
joonazan Jun 5, 2024
9414144
filter out L1 messenger storage diffs earlier
joonazan Jun 14, 2024
6d8ef7f
Merge branch 'main' into jms-vm2
joonazan Jun 19, 2024
2c553df
adapt to latest main
joonazan Jun 19, 2024
c8dffb7
support Decommit
joonazan Jun 20, 2024
ba16fa4
fix lints
joonazan Jun 20, 2024
b4a40af
adapt to removing tx_number
joonazan Jun 20, 2024
9103f44
disable tee checker and fix published bytecode checking
montekki Jun 26, 2024
b25ed57
Use specific `vm2` revision
slowli Jun 27, 2024
8b96b54
Sketch VM shadowing
slowli Jun 27, 2024
a5abc2b
Fix shadowing
slowli Jun 27, 2024
8468cd3
set_refund_for_current_tx (#2361)
montekki Jul 2, 2024
2e794e2
Refactor VM divergence checks
slowli Jul 2, 2024
acb22cf
Fix reverting bootloader call frame
slowli Jul 3, 2024
f969530
Remove unused `CurrentExecutionState` fields
slowli Jul 3, 2024
ad6ce5e
Clean up after removing `CurrentExecutionState` fields
slowli Jul 3, 2024
4d3a007
Remove some garbage
slowli Jul 3, 2024
83d11dd
Disable failing integration test
slowli Jul 3, 2024
c372bfe
Disable failing unit tests
slowli Jul 3, 2024
b23c351
Rework `StorageView` access in `VmInstance`
slowli Jul 4, 2024
5222c55
Split off `VmFactory` trait
slowli Jul 4, 2024
38517bb
Update new VM
slowli Jul 4, 2024
d11d580
Use idiomatic ordering in `ShadowVm`
slowli Jul 4, 2024
fa7f237
Merge pull request #2378 from matter-labs/jms-vm2+aov
montekki Jul 4, 2024
c393bcc
temporarily benchmark vm_fast
joonazan Jul 23, 2024
26ddf4e
adapt to newest vm2
joonazan Jul 23, 2024
616e324
add benchmark for multiple transactions
joonazan Jul 23, 2024
bbe33bc
perf: writing tx to memory is no longer quadratic
joonazan Jul 24, 2024
0b7069b
remove interim version
joonazan Jul 24, 2024
02651c8
convert less
joonazan Jul 24, 2024
f880405
remove clone
joonazan Jul 24, 2024
0c81bb3
fix compilation
joonazan Jul 24, 2024
c2518e6
remove another clone
joonazan Jul 24, 2024
f58a026
Merge pull request #2477 from matter-labs/fix-quadratic-blocks
joonazan Jul 24, 2024
e88cf85
compatibility with optimize external snapshots
joonazan Jul 24, 2024
8c21f48
adapt to delete history change
joonazan Jul 25, 2024
4c67c2c
Update from `main`
slowli Jul 25, 2024
4c8878c
update vm2 revision
joonazan Jul 26, 2024
6090791
try fix branch
joonazan Jul 26, 2024
cf8dc20
Fix refund computation
slowli Jul 26, 2024
a018fa8
Test refund computation
slowli Jul 26, 2024
fb800d1
fix: Fill `storage_refunds` / `pubdata_costs` data (#2431)
slowli Jul 26, 2024
d46b173
Update from upstream
slowli Jul 29, 2024
5db0cf5
depend on vm2 master
joonazan Jul 29, 2024
2d03f44
Merge pull request #2519 from matter-labs/aov-pla-999-fix-operator-re…
joonazan Jul 29, 2024
7b163a9
Merge branch 'jms-vm2' into jms-snapshot-compat
joonazan Jul 29, 2024
7a44759
Merge pull request #2481 from matter-labs/jms-snapshot-compat
joonazan Jul 30, 2024
f3d929f
bench: adds a benchmark for heaps read and writes
montekki Jul 30, 2024
bdce2de
infinite loop
montekki Jul 30, 2024
c2c0569
adds a random access
montekki Jul 30, 2024
2f2a454
changes test again
montekki Jul 30, 2024
9725643
16000 array size
montekki Jul 31, 2024
b4ee16d
remove sub
montekki Jul 31, 2024
e4ddb30
Merge pull request #2542 from matter-labs/jms-vm2+fvs+bench
joonazan Jul 31, 2024
69be78c
perf(vm): Improve snapshot management in batch executor (#2513)
slowli Jul 31, 2024
77b6d81
feat(vm): Allow switching between VMs for latest protocol version (#2…
slowli Aug 1, 2024
c75f6e1
refactor(vm-runner): Allow switching between VMs for latest protocol …
slowli Aug 5, 2024
ca37336
test(vm): Fix fast VM unit tests (#2560)
slowli Aug 5, 2024
7bf449b
Update from upstream
slowli Aug 6, 2024
295fa8d
Re-enable TEE verifier
slowli Aug 6, 2024
459da8e
Move `vm2` to workspace manifest and bump revision
slowli Aug 6, 2024
7ec7ba7
Brush up TODOs in `multivm`
slowli Aug 6, 2024
0dfba61
Use `vm2::FIRST_HEAP`
slowli Aug 7, 2024
e481efb
Merge pull request #2598 from matter-labs/aov-pla-1009-merge-vm-featu…
joonazan Aug 7, 2024
9a83049
Update from upstream
slowli Aug 8, 2024
7da372f
feat(vm): Allow running new VM in state keeper (#2616)
slowli Aug 9, 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
13 changes: 10 additions & 3 deletions .github/workflows/ci-core-reusable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ jobs:

loadtest:
runs-on: [matterlabs-ci-runner]
strategy:
fail-fast: false
matrix:
vm_mode: ["old", "new"]

steps:
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
Expand All @@ -82,7 +86,8 @@ jobs:

- name: Loadtest configuration
run: |
echo EXPECTED_TX_COUNT="16000" >> .env
echo EXPECTED_TX_COUNT=${{ matrix.vm_mode == 'new' && 24000 || 18000 }} >> .env
echo ACCOUNTS_AMOUNT="150" >> .env
echo FAIL_FAST=true >> .env
echo IN_DOCKER=1 >> .env
echo DATABASE_MERKLE_TREE_MODE=lightweight >> .env
Expand All @@ -105,7 +110,9 @@ jobs:
# `sleep 60` because we need to wait until server added all the tokens
- name: Run server
run: |
ci_run zk server --uring --components api,tree,eth,state_keeper,housekeeper,commitment_generator,vm_runner_protective_reads &>server.log &
EXPERIMENTAL_VM_STATE_KEEPER_FAST_VM_MODE=${{ matrix.vm_mode }} \
PASSED_ENV_VARS="EXPERIMENTAL_VM_STATE_KEEPER_FAST_VM_MODE" \
ci_run zk server --uring --components api,tree,eth,state_keeper,housekeeper,commitment_generator,vm_runner_protective_reads &>server.log &
ci_run sleep 60

- name: Deploy legacy era contracts
Expand Down Expand Up @@ -135,7 +142,7 @@ jobs:
base_token: ["Eth", "Custom"]
deployment_mode: ["Rollup", "Validium"]
env:
SERVER_COMPONENTS: "api,tree,eth,state_keeper,housekeeper,commitment_generator,vm_runner_protective_reads,vm_runner_bwip,da_dispatcher${{ matrix.consensus && ',consensus' || '' }}${{ matrix.base_token == 'Custom' && ',base_token_ratio_persister' || '' }}"
SERVER_COMPONENTS: "api,tree,eth,state_keeper,housekeeper,commitment_generator,vm_runner_protective_reads,vm_runner_bwip,vm_playground,da_dispatcher${{ matrix.consensus && ',consensus' || '' }}${{ matrix.base_token == 'Custom' && ',base_token_ratio_persister' || '' }}"

runs-on: [matterlabs-ci-runner]
steps:
Expand Down
27 changes: 27 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 @@ -215,6 +215,9 @@ zk_evm_1_4_0 = { package = "zk_evm", version = "0.140.0" }
zk_evm_1_4_1 = { package = "zk_evm", version = "0.141.0" }
zk_evm_1_5_0 = { package = "zk_evm", version = "=0.150.0" }

# New VM; pinned to a specific commit because of instability
vm2 = { git = "https://github.com/matter-labs/vm2.git", rev = "9a38900d7af9b1d72b47ce3be980e77c1239a61d" }

# Consensus dependencies.
zksync_concurrency = "=0.1.0-rc.9"
zksync_consensus_bft = "=0.1.0-rc.9"
Expand Down
6 changes: 3 additions & 3 deletions core/bin/external_node/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ async fn build_state_keeper(
stop_receiver_clone.changed().await?;
result
}));
let batch_executor_base: Box<dyn BatchExecutor> =
Box::new(MainBatchExecutor::new(save_call_traces, true));
let batch_executor = MainBatchExecutor::new(save_call_traces, true);
let batch_executor: Box<dyn BatchExecutor> = Box::new(batch_executor);

let io = ExternalIO::new(
connection_pool,
Expand All @@ -108,7 +108,7 @@ async fn build_state_keeper(
Ok(ZkSyncStateKeeper::new(
stop_receiver,
Box::new(io),
batch_executor_base,
batch_executor,
output_handler,
Arc::new(NoopSealer),
Arc::new(storage_factory),
Expand Down
5 changes: 2 additions & 3 deletions core/bin/system-constants-generator/src/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use zksync_contracts::{
use zksync_multivm::{
interface::{
dyn_tracers::vm_1_5_0::DynTracer, tracer::VmExecutionStopReason, L1BatchEnv, L2BlockEnv,
SystemEnv, TxExecutionMode, VmExecutionMode, VmInterface,
SystemEnv, TxExecutionMode, VmExecutionMode, VmFactory, VmInterface,
},
vm_latest::{
constants::{BATCH_COMPUTATIONAL_GAS_LIMIT, BOOTLOADER_HEAP_PAGE},
Expand Down Expand Up @@ -260,8 +260,7 @@ pub(super) fn execute_internal_transfer_test() -> u32 {
output: tracer_result.clone(),
}
.into_tracer_pointer();
let mut vm: Vm<_, HistoryEnabled> =
Vm::new(l1_batch, system_env, Rc::new(RefCell::new(storage_view)));
let mut vm: Vm<_, HistoryEnabled> = Vm::new(l1_batch, system_env, storage_view.to_rc_ptr());
let result = vm.inspect(tracer.into(), VmExecutionMode::Bootloader);

assert!(!result.result.is_failed(), "The internal call has reverted");
Expand Down
3 changes: 2 additions & 1 deletion core/bin/zksync_server/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use zksync_config::{
},
fri_prover_group::FriProverGroupConfig,
house_keeper::HouseKeeperConfig,
BasicWitnessInputProducerConfig, ContractsConfig, DatabaseSecrets,
BasicWitnessInputProducerConfig, ContractsConfig, DatabaseSecrets, ExperimentalVmConfig,
ExternalPriceApiClientConfig, FriProofCompressorConfig, FriProverConfig,
FriProverGatewayConfig, FriWitnessGeneratorConfig, FriWitnessVectorGeneratorConfig,
L1Secrets, ObservabilityConfig, PrometheusConfig, ProofDataHandlerConfig,
Expand Down Expand Up @@ -209,5 +209,6 @@ fn load_env_config() -> anyhow::Result<TempConfigStore> {
snapshot_recovery: None,
external_price_api_client_config: ExternalPriceApiClientConfig::from_env().ok(),
external_proof_integration_api_config: ExternalProofIntegrationApiConfig::from_env().ok(),
experimental_vm_config: ExperimentalVmConfig::from_env().ok(),
})
}
20 changes: 18 additions & 2 deletions core/bin/zksync_server/src/node_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ use zksync_node_framework::{
},
tee_verifier_input_producer::TeeVerifierInputProducerLayer,
vm_runner::{
bwip::BasicWitnessInputProducerLayer, protective_reads::ProtectiveReadsWriterLayer,
bwip::BasicWitnessInputProducerLayer, playground::VmPlaygroundLayer,
protective_reads::ProtectiveReadsWriterLayer,
},
web3_api::{
caches::MempoolCacheLayer,
Expand Down Expand Up @@ -241,8 +242,10 @@ impl MainNodeBuilder {
try_load_config!(wallets.state_keeper),
);
let db_config = try_load_config!(self.configs.db_config);
let experimental_vm_config = try_load_config!(self.configs.experimental_vm_config);
let main_node_batch_executor_builder_layer =
MainBatchExecutorLayer::new(sk_config.save_call_traces, OPTIONAL_BYTECODE_COMPRESSION);
MainBatchExecutorLayer::new(sk_config.save_call_traces, OPTIONAL_BYTECODE_COMPRESSION)
.with_fast_vm_mode(experimental_vm_config.state_keeper_fast_vm_mode);

let rocksdb_options = RocksdbStorageOptions {
block_cache_capacity: db_config
Expand Down Expand Up @@ -566,6 +569,16 @@ impl MainNodeBuilder {
Ok(self)
}

fn add_vm_playground_layer(mut self) -> anyhow::Result<Self> {
let vm_config = try_load_config!(self.configs.experimental_vm_config);
self.node.add_layer(VmPlaygroundLayer::new(
vm_config.playground,
self.genesis_config.l2_chain_id,
));

Ok(self)
}

fn add_base_token_ratio_persister_layer(mut self) -> anyhow::Result<Self> {
let config = try_load_config!(self.configs.base_token_adjuster);
let contracts_config = self.contracts_config.clone();
Expand Down Expand Up @@ -729,6 +742,9 @@ impl MainNodeBuilder {
Component::VmRunnerBwip => {
self = self.add_vm_runner_bwip_layer()?;
}
Component::VmPlayground => {
self = self.add_vm_playground_layer()?;
}
Component::ExternalProofIntegrationApi => {
self = self.add_external_proof_integration_api_layer()?;
}
Expand Down
2 changes: 1 addition & 1 deletion core/lib/basic_types/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ pub mod protocol_version;
pub mod prover_dal;
pub mod tee_types;
pub mod url;
pub mod vm_version;
pub mod vm;
pub mod web3;

/// Account place in the global state tree is uniquely identified by its address.
Expand Down
2 changes: 1 addition & 1 deletion core/lib/basic_types/src/protocol_version.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ use serde_with::{DeserializeFromStr, SerializeDisplay};

use crate::{
ethabi::Token,
vm_version::VmVersion,
vm::VmVersion,
web3::contract::{Detokenize, Error},
H256, U256,
};
Expand Down
39 changes: 39 additions & 0 deletions core/lib/basic_types/src/vm.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
//! Basic VM types that shared widely enough to not put them in the `multivm` crate.

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Copy)]
pub enum VmVersion {
M5WithoutRefunds,
M5WithRefunds,
M6Initial,
M6BugWithCompressionFixed,
Vm1_3_2,
VmVirtualBlocks,
VmVirtualBlocksRefundsEnhancement,
VmBoojumIntegration,
Vm1_4_1,
Vm1_4_2,
Vm1_5_0SmallBootloaderMemory,
Vm1_5_0IncreasedBootloaderMemory,
}

impl VmVersion {
/// Returns the latest supported VM version.
pub const fn latest() -> VmVersion {
Self::Vm1_5_0IncreasedBootloaderMemory
}
}

/// Mode in which to run the new fast VM implementation.
#[derive(Debug, Clone, Copy, Default, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum FastVmMode {
/// Run only the old VM.
#[default]
Old,
/// Run only the new Vm.
New,
/// Run both the new and old VM and compare their outputs for each transaction execution.
Shadow,
}
22 changes: 0 additions & 22 deletions core/lib/basic_types/src/vm_version.rs

This file was deleted.

48 changes: 48 additions & 0 deletions core/lib/config/src/configs/experimental.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
use std::num::NonZeroU32;

use serde::Deserialize;
use zksync_basic_types::{vm::FastVmMode, L1BatchNumber};

#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct ExperimentalDBConfig {
Expand Down Expand Up @@ -60,3 +61,50 @@ impl ExperimentalDBConfig {
100
}
}

/// Configuration for the VM playground (an experimental component that's unlikely to ever be stabilized).
#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct ExperimentalVmPlaygroundConfig {
/// Mode in which to run the fast VM implementation. Note that for it to actually be used, L1 batches should have a recent version.
#[serde(default)]
pub fast_vm_mode: FastVmMode,
/// Path to the RocksDB cache directory.
#[serde(default = "ExperimentalVmPlaygroundConfig::default_db_path")]
pub db_path: String,
/// First L1 batch to consider processed. Will not be used if the processing cursor is persisted, unless the `reset` flag is set.
#[serde(default)]
pub first_processed_batch: L1BatchNumber,
/// If set to true, processing cursor will reset `first_processed_batch` regardless of the current progress. Beware that this will likely
/// require to drop the RocksDB cache.
#[serde(default)]
pub reset: bool,
}

impl Default for ExperimentalVmPlaygroundConfig {
fn default() -> Self {
Self {
fast_vm_mode: FastVmMode::default(),
db_path: Self::default_db_path(),
first_processed_batch: L1BatchNumber(0),
reset: false,
}
}
}

impl ExperimentalVmPlaygroundConfig {
pub fn default_db_path() -> String {
"./db/vm_playground".to_owned()
}
}

/// Experimental VM configuration options.
#[derive(Debug, Clone, Default, PartialEq, Deserialize)]
pub struct ExperimentalVmConfig {
#[serde(skip)] // Isn't properly deserialized by `envy`
pub playground: ExperimentalVmPlaygroundConfig,

/// Mode in which to run the fast VM implementation in the state keeper. Should not be set in production;
/// the new VM doesn't produce call traces and can diverge from the old VM!
#[serde(default)]
pub state_keeper_fast_vm_mode: FastVmMode,
}
9 changes: 5 additions & 4 deletions core/lib/config/src/configs/general.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ use crate::{
pruning::PruningConfig,
snapshot_recovery::SnapshotRecoveryConfig,
vm_runner::{BasicWitnessInputProducerConfig, ProtectiveReadsWriterConfig},
CommitmentGeneratorConfig, ExternalPriceApiClientConfig, FriProofCompressorConfig,
FriProverConfig, FriProverGatewayConfig, FriWitnessGeneratorConfig,
FriWitnessVectorGeneratorConfig, ObservabilityConfig, PrometheusConfig,
ProofDataHandlerConfig,
CommitmentGeneratorConfig, ExperimentalVmConfig, ExternalPriceApiClientConfig,
FriProofCompressorConfig, FriProverConfig, FriProverGatewayConfig,
FriWitnessGeneratorConfig, FriWitnessVectorGeneratorConfig, ObservabilityConfig,
PrometheusConfig, ProofDataHandlerConfig,
},
ApiConfig, ContractVerifierConfig, DBConfig, EthConfig, ExternalProofIntegrationApiConfig,
ObjectStoreConfig, PostgresConfig, SnapshotsCreatorConfig,
Expand Down Expand Up @@ -51,4 +51,5 @@ pub struct GeneralConfig {
pub external_price_api_client_config: Option<ExternalPriceApiClientConfig>,
pub consensus_config: Option<ConsensusConfig>,
pub external_proof_integration_api_config: Option<ExternalProofIntegrationApiConfig>,
pub experimental_vm_config: Option<ExperimentalVmConfig>,
}
2 changes: 1 addition & 1 deletion core/lib/config/src/configs/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ pub use self::{
database::{DBConfig, PostgresConfig},
eth_sender::{EthConfig, GasAdjusterConfig},
eth_watch::EthWatchConfig,
experimental::ExperimentalDBConfig,
experimental::{ExperimentalDBConfig, ExperimentalVmConfig, ExperimentalVmPlaygroundConfig},
external_price_api_client::ExternalPriceApiClientConfig,
external_proof_integration_api::ExternalProofIntegrationApiConfig,
fri_proof_compressor::FriProofCompressorConfig,
Expand Down
Loading
Loading