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 with DA #2010

Merged
merged 97 commits into from
Jul 2, 2024
Merged
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
4ba029f
feat: validium with da
dimazhornyk Apr 5, 2024
e6bab18
merge 'main' into feat-validium-with-da
dimazhornyk Apr 27, 2024
638d0a7
chore: tmp
dimazhornyk Apr 30, 2024
a25d0ee
chore: tmp
dimazhornyk May 1, 2024
ea7d881
chore: define basic types
dimazhornyk May 8, 2024
7022f75
resolve conflicts
dimazhornyk May 8, 2024
8466a74
chore: proper configs
dimazhornyk May 10, 2024
47e0a16
feat: add example of GCS da client
dimazhornyk May 14, 2024
710855a
sync to upstream
dimazhornyk May 16, 2024
1fedf44
feat: basic implementation
dimazhornyk May 22, 2024
29cd8ef
chore: remove env file
dimazhornyk May 22, 2024
da99a3a
chore: resolve conflicts
dimazhornyk May 22, 2024
7be4273
chore: update contracts
dimazhornyk May 22, 2024
0f47dbe
chore: minor fixes
dimazhornyk May 22, 2024
cbc4680
fix spellcheck
dimazhornyk May 22, 2024
77c0caf
Merge branch 'main' into feat-validium-with-da
dimazhornyk May 23, 2024
f8efc23
fix db query
dimazhornyk May 23, 2024
8978fe0
Merge branch 'main' into feat-validium-with-da
dimazhornyk May 23, 2024
57306e4
simplify query, remove unnecessary log
dimazhornyk May 23, 2024
484e6cc
fix queries for Rollup, add da_dispatcher to CI tests
dimazhornyk May 23, 2024
c81abc0
sqlx
dimazhornyk May 23, 2024
918aab1
fix config unwrap
dimazhornyk May 23, 2024
080bfd8
resolve conflicts
dimazhornyk May 24, 2024
c4e591a
Merge branch 'main' into feat-validium-with-da
dimazhornyk May 24, 2024
cd3ce03
simplify the workflow
dimazhornyk May 24, 2024
a1afc87
Merge branch 'feat-validium-with-da' of github.com:matter-labs/zksync…
dimazhornyk May 24, 2024
a924d8c
try fixing workflow
dimazhornyk May 24, 2024
9635e61
update env for validium in docker
dimazhornyk May 24, 2024
3f55deb
add PUBDATA_SOURCE_CUSTOM to consistency checker
dimazhornyk May 24, 2024
10180f5
fix revert test
dimazhornyk May 24, 2024
765a2c4
fix upgrade test
dimazhornyk May 24, 2024
c399625
start the server with da_dispatcher for Validium in EN tests
dimazhornyk May 25, 2024
26980a5
pull 'main' into feat-validium-with-da
dimazhornyk May 27, 2024
08affa0
code review fixes
dimazhornyk May 30, 2024
3888d8a
fix CI
dimazhornyk May 30, 2024
57d6fb3
Merge branch 'main' into feat-validium-with-da
dimazhornyk May 30, 2024
a60f9db
regenerate sqlx folder
dimazhornyk May 30, 2024
16f59ab
Merge branch 'feat-validium-with-da' of github.com:matter-labs/zksync…
dimazhornyk May 30, 2024
e9310fe
cargo sqlx prepare
dimazhornyk May 30, 2024
b28ebb1
swap lines
dimazhornyk May 30, 2024
943d40a
fix
dimazhornyk May 30, 2024
c62146e
add transient errors
dimazhornyk May 30, 2024
79bdaeb
Merge branch 'main' of github.com:matter-labs/zksync-era into feat-va…
dimazhornyk May 30, 2024
0c0cd75
fix cargo lock
dimazhornyk May 30, 2024
ae91f3f
zk fmt
dimazhornyk May 30, 2024
21d9320
replace todo with a github issue
dimazhornyk May 30, 2024
5be906c
add some safeguards
dimazhornyk May 31, 2024
bb2c211
Merge branch 'main' into feat-validium-with-da
dimazhornyk May 31, 2024
f14f163
Merge branch 'main' of github.com:matter-labs/zksync-era into feat-va…
dimazhornyk May 31, 2024
5ee5657
Merge branch 'feat-validium-with-da' of github.com:matter-labs/zksync…
dimazhornyk May 31, 2024
e68d9d6
fix
dimazhornyk May 31, 2024
35398cd
address comments
dimazhornyk Jun 3, 2024
4aa8ef4
feat: fully utilize the node framework for external DA
dimazhornyk Jun 4, 2024
e2dddfe
pull main into external-da-node-framework
dimazhornyk Jun 4, 2024
683f739
arrangements for better usage of node-framework
dimazhornyk Jun 5, 2024
778ead7
fix spellcheck
dimazhornyk Jun 5, 2024
8f2fcab
pull main and resolve conflicts
dimazhornyk Jun 5, 2024
148c027
remove unused code
dimazhornyk Jun 5, 2024
abed58e
zk fmt
dimazhornyk Jun 5, 2024
51ffccc
fix
dimazhornyk Jun 5, 2024
5d3f9ef
use different version of contracts
dimazhornyk Jun 5, 2024
3f62afc
minor tweaks
dimazhornyk Jun 6, 2024
103af83
Merge branch 'main' of github.com:matter-labs/zksync-era into feat-va…
dimazhornyk Jun 6, 2024
5f34a50
fix lint
dimazhornyk Jun 6, 2024
cc4009f
fix lint and tests
dimazhornyk Jun 6, 2024
ac05afb
fix test
dimazhornyk Jun 6, 2024
e65109a
add fee test logs
dimazhornyk Jun 6, 2024
1b998b4
fix fee test
dimazhornyk Jun 6, 2024
c35b4a2
make da_dispatcher configs optional in proto
dimazhornyk Jun 7, 2024
bd88b51
use DalError
dimazhornyk Jun 7, 2024
7593a7f
Merge branch 'main' of github.com:matter-labs/zksync-era into feat-va…
dimazhornyk Jun 7, 2024
d14bab1
fix prover config
dimazhornyk Jun 7, 2024
b3ab2d9
resolve conflicts
dimazhornyk Jun 7, 2024
5b867ba
Merge branch 'main' of github.com:matter-labs/zksync-era into feat-va…
dimazhornyk Jun 10, 2024
144defc
address Shahar's comments
dimazhornyk Jun 10, 2024
a884df4
run dispatch and poll_for_inclusion in parallel
dimazhornyk Jun 10, 2024
743f982
fix unit test
dimazhornyk Jun 10, 2024
d3a4cd5
address review comments
dimazhornyk Jun 11, 2024
3cf6f2e
add key to the context
dimazhornyk Jun 11, 2024
b6abd12
remove unneeded line
dimazhornyk Jun 12, 2024
cf75561
Merge branch 'main' of github.com:matter-labs/zksync-era into feat-va…
dimazhornyk Jun 12, 2024
1323d9e
update prover/Cargo.lock
dimazhornyk Jun 12, 2024
59cbc45
fix comments
dimazhornyk Jun 13, 2024
67c4533
Merge branch 'main' of github.com:matter-labs/zksync-era into feat-va…
dimazhornyk Jun 13, 2024
1d2bf47
enable da_dispather by default and skip the initialization if not Cus…
dimazhornyk Jun 13, 2024
3b62022
improve naming, imports and error message
dimazhornyk Jun 16, 2024
39e5e43
Merge branch 'main' of github.com:matter-labs/zksync-era into feat-va…
dimazhornyk Jun 16, 2024
a2c26bc
fix prover/Cargo.lock
dimazhornyk Jun 16, 2024
7ce721a
chore: fix code review nits
dimazhornyk Jun 18, 2024
d4414a8
resolve conflicts
dimazhornyk Jun 23, 2024
9e6d27f
resolve conflicts
dimazhornyk Jun 27, 2024
7d25472
resolve conflicts
dimazhornyk Jul 1, 2024
1f1c18f
address code review comments
dimazhornyk Jul 1, 2024
9beda54
fix scripts
dimazhornyk Jul 1, 2024
4072e4b
use stop_receiver with tokio::select
dimazhornyk Jul 2, 2024
2d63d19
Merge branch 'main' of github.com:matter-labs/zksync-era into feat-va…
dimazhornyk Jul 2, 2024
be72770
fix da_client node_framework
dimazhornyk Jul 2, 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
4 changes: 2 additions & 2 deletions .github/workflows/ci-core-reusable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ jobs:
base_token: ["Eth", "Custom"]
deployment_mode: ["Rollup", "Validium"]
env:
SERVER_COMPONENTS: "api,tree,eth,state_keeper,housekeeper,commitment_generator${{ matrix.consensus && ',consensus' || '' }}"
SERVER_COMPONENTS: "api,tree,eth,state_keeper,housekeeper,commitment_generator${{ matrix.consensus && ',consensus' || '' }}${{ matrix.deployment_mode == 'Validium' && ',da_dispatcher' || '' }}"
dimazhornyk marked this conversation as resolved.
Show resolved Hide resolved

runs-on: [matterlabs-ci-runner]
steps:
Expand Down Expand Up @@ -301,7 +301,7 @@ jobs:
runs-on: [matterlabs-ci-runner]

env:
SERVER_COMPONENTS: "api,tree,eth,state_keeper,housekeeper,commitment_generator${{ matrix.consensus && ',consensus' || '' }}"
SERVER_COMPONENTS: "api,tree,eth,state_keeper,housekeeper,commitment_generator${{ matrix.consensus && ',consensus' || '' }}${{ matrix.deployment_mode == 'Validium' && ',da_dispatcher' || '' }}"
EXT_NODE_FLAGS: "${{ matrix.consensus && '-- --enable-consensus' || '' }}"

steps:
Expand Down
41 changes: 41 additions & 0 deletions Cargo.lock

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

6 changes: 6 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ members = [
"core/node/shared_metrics",
"core/node/db_pruner",
"core/node/fee_model",
"core/node/da_dispatcher",
"core/node/eth_sender",
"core/node/vm_runner",
"core/node/test_utils",
Expand All @@ -43,6 +44,7 @@ members = [
"core/lib/circuit_breaker",
"core/lib/dal",
"core/lib/env_config",
"core/lib/da_client",
"core/lib/eth_client",
"core/lib/eth_signer",
"core/lib/l1_contract_interface",
Expand Down Expand Up @@ -189,6 +191,7 @@ zk_evm_1_3_3 = { package = "zk_evm", git = "https://github.com/matter-labs/era-z
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 = "3e6f101ee4124308c4c974caaa259d524549b0c6" }
zksync_consensus_bft = { version = "0.1.0", git = "https://github.com/matter-labs/era-consensus.git", rev = "3e6f101ee4124308c4c974caaa259d524549b0c6" }
zksync_consensus_crypto = { version = "0.1.0", git = "https://github.com/matter-labs/era-consensus.git", rev = "3e6f101ee4124308c4c974caaa259d524549b0c6" }
Expand All @@ -199,6 +202,7 @@ zksync_consensus_storage = { version = "0.1.0", git = "https://github.com/matter
zksync_consensus_utils = { version = "0.1.0", git = "https://github.com/matter-labs/era-consensus.git", rev = "3e6f101ee4124308c4c974caaa259d524549b0c6" }
zksync_protobuf = { version = "0.1.0", git = "https://github.com/matter-labs/era-consensus.git", rev = "3e6f101ee4124308c4c974caaa259d524549b0c6" }
zksync_protobuf_build = { version = "0.1.0", git = "https://github.com/matter-labs/era-consensus.git", rev = "3e6f101ee4124308c4c974caaa259d524549b0c6" }
zksync_da_layers = { package = "hyperchain_da", git = "https://github.com/matter-labs/hyperchain-da.git", rev = "5629d56ec3d851a7ff03e72c5e0765c55af595d5" }

# "Local" dependencies
multivm = { path = "core/lib/multivm" }
Expand All @@ -218,6 +222,7 @@ zksync_dal = { path = "core/lib/dal" }
zksync_db_connection = { path = "core/lib/db_connection" }
zksync_env_config = { path = "core/lib/env_config" }
zksync_eth_client = { path = "core/lib/eth_client" }
zksync_da_client = { path = "core/lib/da_client" }
zksync_eth_signer = { path = "core/lib/eth_signer" }
zksync_health_check = { path = "core/lib/health_check" }
zksync_l1_contract_interface = { path = "core/lib/l1_contract_interface" }
Expand Down Expand Up @@ -248,6 +253,7 @@ zksync_block_reverter = { path = "core/node/block_reverter" }
zksync_commitment_generator = { path = "core/node/commitment_generator" }
zksync_house_keeper = { path = "core/node/house_keeper" }
zksync_node_genesis = { path = "core/node/genesis" }
zksync_da_dispatcher = { path = "core/node/da_dispatcher" }
zksync_eth_sender = { path = "core/node/eth_sender" }
zksync_node_db_pruner = { path = "core/node/db_pruner" }
zksync_node_fee_model = { path = "core/node/fee_model" }
Expand Down
1 change: 1 addition & 0 deletions checks-config/era.dic
Original file line number Diff line number Diff line change
Expand Up @@ -965,6 +965,7 @@ decrement
Bbellman
Sbellman
DCMAKE
blob_id
preloaded
e2e
upcasting
Expand Down
7 changes: 4 additions & 3 deletions core/bin/zksync_server/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ use zksync_config::{
FriProverGatewayConfig, FriWitnessGeneratorConfig, FriWitnessVectorGeneratorConfig,
L1Secrets, ObservabilityConfig, PrometheusConfig, ProofDataHandlerConfig, Secrets,
},
ApiConfig, ContractVerifierConfig, DBConfig, EthConfig, EthWatchConfig, GasAdjusterConfig,
GenesisConfig, ObjectStoreConfig, PostgresConfig, SnapshotsCreatorConfig,
ApiConfig, ContractVerifierConfig, DADispatcherConfig, DBConfig, EthConfig, EthWatchConfig,
GasAdjusterConfig, GenesisConfig, ObjectStoreConfig, PostgresConfig, SnapshotsCreatorConfig,
};
use zksync_core_leftovers::{
genesis_init, initialize_components, is_genesis_needed, setup_sigint_handler,
Expand Down Expand Up @@ -48,7 +48,7 @@ struct Cli {
/// Comma-separated list of components to launch.
#[arg(
long,
default_value = "api,tree,eth,state_keeper,housekeeper,tee_verifier_input_producer,commitment_generator"
default_value = "api,tree,eth,state_keeper,housekeeper,tee_verifier_input_producer,commitment_generator,da_dispatcher"
)]
components: ComponentsToRun,
/// Path to the yaml config. If set, it will be used instead of env vars.
Expand Down Expand Up @@ -306,5 +306,6 @@ fn load_env_config() -> anyhow::Result<TempConfigStore> {
object_store_config: ObjectStoreConfig::from_env().ok(),
observability: ObservabilityConfig::from_env().ok(),
snapshot_creator: SnapshotsCreatorConfig::from_env().ok(),
da_dispatcher_config: DADispatcherConfig::from_env().ok(),
})
}
14 changes: 14 additions & 0 deletions core/bin/zksync_server/src/node_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ use zksync_node_framework::{
commitment_generator::CommitmentGeneratorLayer,
consensus::{ConsensusLayer, Mode as ConsensusMode},
contract_verification_api::ContractVerificationApiLayer,
da_dispatcher::DataAvailabilityDispatcherLayer,
eth_sender::{EthTxAggregatorLayer, EthTxManagerLayer},
eth_watch::EthWatchLayer,
healtcheck_server::HealthCheckLayer,
Expand Down Expand Up @@ -399,6 +400,16 @@ impl MainNodeBuilder {
Ok(self)
}

fn add_da_dispatcher_layer(mut self) -> anyhow::Result<Self> {
let eth_sender_config = try_load_config!(self.configs.eth);
let da_config = try_load_config!(self.configs.da_dispatcher_config);
self.node.add_layer(DataAvailabilityDispatcherLayer::new(
da_config,
eth_sender_config,
));
Ok(self)
}

pub fn build(mut self, mut components: Vec<Component>) -> anyhow::Result<ZkStackService> {
// Add "base" layers (resources and helper tasks).
self = self
Expand Down Expand Up @@ -480,6 +491,9 @@ impl MainNodeBuilder {
Component::CommitmentGenerator => {
self = self.add_commitment_generator_layer()?;
}
Component::DADispatcher => {
self = self.add_da_dispatcher_layer()?;
}
}
}
Ok(self.node.build()?)
Expand Down
58 changes: 58 additions & 0 deletions core/lib/config/src/configs/da_dispatcher.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
use std::time::Duration;

use serde::Deserialize;

use crate::ObjectStoreConfig;

#[derive(Clone, Debug, PartialEq, Deserialize)]
pub struct DALayerInfo {
pub name: String,
#[serde(default)]
pub private_key: String,
dimazhornyk marked this conversation as resolved.
Show resolved Hide resolved
}

#[derive(Clone, Debug, PartialEq, Deserialize)]
#[serde(tag = "da_mode")]
pub enum DataAvailabilityMode {
DALayer(DALayerInfo),
dimazhornyk marked this conversation as resolved.
Show resolved Hide resolved
GCS(ObjectStoreConfig),
NoDA,
}

#[derive(Debug, Clone, PartialEq, Deserialize)]
pub struct DADispatcherConfig {
#[serde(flatten)]
pub da_mode: DataAvailabilityMode,
dimazhornyk marked this conversation as resolved.
Show resolved Hide resolved
pub polling_interval: Option<u32>,
dimazhornyk marked this conversation as resolved.
Show resolved Hide resolved
pub query_rows_limit: Option<u32>,
pub max_retries: Option<u16>,
}

impl DADispatcherConfig {
pub fn for_tests() -> Self {
Self {
da_mode: DataAvailabilityMode::DALayer(DALayerInfo {
name: "zkDA".into(),
private_key: "0x0".into(),
}),
polling_interval: Some(5),
query_rows_limit: Some(100),
max_retries: Some(5),
}
}

pub fn polling_interval(&self) -> Duration {
match self.polling_interval {
Some(interval) => Duration::from_secs(interval as u64),
None => Duration::from_secs(5),
}
}

pub fn query_rows_limit(&self) -> u32 {
self.query_rows_limit.unwrap_or(100)
}

pub fn max_retries(&self) -> u16 {
self.max_retries.unwrap_or(5)
}
}
3 changes: 2 additions & 1 deletion core/lib/config/src/configs/eth_sender.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ pub enum PubdataSendingMode {
#[default]
Calldata,
Blobs,
Custom,
}

#[derive(Debug, Deserialize, Clone, PartialEq)]
Expand Down Expand Up @@ -114,7 +115,7 @@ pub struct SenderConfig {
// Max acceptable fee for sending tx it acts as a safeguard to prevent sending tx with very high fees.
pub max_acceptable_priority_fee_in_gwei: u64,

/// The mode in which we send pubdata, either Calldata or Blobs
/// The mode in which we send pubdata
dimazhornyk marked this conversation as resolved.
Show resolved Hide resolved
pub pubdata_sending_mode: PubdataSendingMode,
}

Expand Down
2 changes: 2 additions & 0 deletions core/lib/config/src/configs/general.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use crate::{
configs::{
chain::{CircuitBreakerConfig, MempoolConfig, OperationsManagerConfig, StateKeeperConfig},
da_dispatcher::DADispatcherConfig,
fri_prover_group::FriProverGroupConfig,
house_keeper::HouseKeeperConfig,
FriProofCompressorConfig, FriProverConfig, FriProverGatewayConfig,
Expand Down Expand Up @@ -32,4 +33,5 @@ pub struct GeneralConfig {
pub eth: Option<EthConfig>,
pub snapshot_creator: Option<SnapshotsCreatorConfig>,
pub observability: Option<ObservabilityConfig>,
pub da_dispatcher_config: Option<DADispatcherConfig>,
}
2 changes: 2 additions & 0 deletions core/lib/config/src/configs/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ pub use self::{
api::ApiConfig,
contract_verifier::ContractVerifierConfig,
contracts::{ContractsConfig, EcosystemContracts},
da_dispatcher::DADispatcherConfig,
database::{DBConfig, PostgresConfig},
eth_sender::{EthConfig, GasAdjusterConfig},
eth_watch::EthWatchConfig,
Expand All @@ -27,6 +28,7 @@ pub mod chain;
pub mod consensus;
pub mod contract_verifier;
pub mod contracts;
pub mod da_dispatcher;
pub mod database;
pub mod eth_sender;
pub mod eth_watch;
Expand Down
5 changes: 3 additions & 2 deletions core/lib/config/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
#![allow(clippy::upper_case_acronyms, clippy::derive_partial_eq_without_eq)]

pub use crate::configs::{
ApiConfig, ContractVerifierConfig, ContractsConfig, DBConfig, EthConfig, EthWatchConfig,
GasAdjusterConfig, GenesisConfig, ObjectStoreConfig, PostgresConfig, SnapshotsCreatorConfig,
ApiConfig, ContractVerifierConfig, ContractsConfig, DADispatcherConfig, DBConfig, EthConfig,
EthWatchConfig, GasAdjusterConfig, GenesisConfig, ObjectStoreConfig, PostgresConfig,
SnapshotsCreatorConfig,
};

pub mod configs;
Expand Down
5 changes: 3 additions & 2 deletions core/lib/config/src/testonly.rs
Original file line number Diff line number Diff line change
Expand Up @@ -340,9 +340,10 @@ impl Distribution<configs::eth_sender::ProofLoadingMode> for EncodeDist {
impl Distribution<configs::eth_sender::PubdataSendingMode> for EncodeDist {
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> configs::eth_sender::PubdataSendingMode {
type T = configs::eth_sender::PubdataSendingMode;
match rng.gen_range(0..2) {
match rng.gen_range(0..3) {
0 => T::Calldata,
_ => T::Blobs,
1 => T::Blobs,
_ => T::Custom,
ischasny marked this conversation as resolved.
Show resolved Hide resolved
}
}
}
Expand Down
21 changes: 21 additions & 0 deletions core/lib/da_client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[package]
dimazhornyk marked this conversation as resolved.
Show resolved Hide resolved
name = "zksync_da_client"
version.workspace = true
edition.workspace = true
authors.workspace = true
homepage.workspace = true
repository.workspace = true
license.workspace = true
keywords.workspace = true
categories.workspace = true

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
async-trait = "0.1.74"

zksync_config.workspace = true
zksync_types.workspace = true
zksync_da_layers.workspace = true
zksync_object_store.workspace = true
tracing = "0.1.40"
Loading
Loading