diff --git a/zero_bin/common/src/lib.rs b/zero_bin/common/src/lib.rs index 1b0b18e9b..5570a5d5f 100644 --- a/zero_bin/common/src/lib.rs +++ b/zero_bin/common/src/lib.rs @@ -3,3 +3,4 @@ pub mod debug_utils; pub mod fs; pub mod parsing; pub mod prover_state; +pub mod version; diff --git a/zero_bin/common/src/prover_state/persistence.rs b/zero_bin/common/src/prover_state/persistence.rs index 87eb7d1ae..c65fc22a7 100644 --- a/zero_bin/common/src/prover_state/persistence.rs +++ b/zero_bin/common/src/prover_state/persistence.rs @@ -109,7 +109,7 @@ impl DiskResource for BaseProverResource { "{}/{}_base_{}_{}", &relative_circuit_dir_path(), PROVER_STATE_FILE_PREFIX, - env::var("EVM_ARITHMETIZATION_PKG_VER").unwrap_or("NA".to_string()), + env::var("EVM_ARITH_VER_KEY").unwrap_or("NA".to_string()), p.get_configuration_digest() ) } @@ -145,7 +145,7 @@ impl DiskResource for MonolithicProverResource { "{}/{}_monolithic_{}_{}", &relative_circuit_dir_path(), PROVER_STATE_FILE_PREFIX, - env::var("EVM_ARITHMETIZATION_PKG_VER").unwrap_or("NA".to_string()), + env::var("EVM_ARITH_VER_KEY").unwrap_or("NA".to_string()), p.get_configuration_digest() ) } @@ -180,7 +180,7 @@ impl DiskResource for RecursiveCircuitResource { "{}/{}_{}_{}_{}", &relative_circuit_dir_path(), PROVER_STATE_FILE_PREFIX, - env::var("EVM_ARITHMETIZATION_PKG_VER").unwrap_or("NA".to_string()), + env::var("EVM_ARITH_VER_KEY").unwrap_or("NA".to_string()), circuit_type.as_short_str(), size ) @@ -224,7 +224,7 @@ impl DiskResource for VerifierResource { "{}/{}_{}_{}", &relative_circuit_dir_path(), VERIFIER_STATE_FILE_PREFIX, - env::var("EVM_ARITHMETIZATION_PKG_VER").unwrap_or("NA".to_string()), + env::var("EVM_ARITH_VER_KEY").unwrap_or("NA".to_string()), p.get_configuration_digest() ) } diff --git a/zero_bin/common/src/version.rs b/zero_bin/common/src/version.rs new file mode 100644 index 000000000..477da8c79 --- /dev/null +++ b/zero_bin/common/src/version.rs @@ -0,0 +1,16 @@ +pub struct Version { + pub evm_arithmetization_package_version: String, + pub build_commit_hash: String, + pub build_timestamp: String, +} + +impl Version { + pub fn print(&self) { + println!( + "Evm Arithmetization package version: {}", + self.evm_arithmetization_package_version + ); + println!("Build Commit Hash: {}", self.build_commit_hash); + println!("Build Timestamp: {}", self.build_timestamp); + } +} diff --git a/zero_bin/leader/Cargo.toml b/zero_bin/leader/Cargo.toml index aa7624397..7ebfc95b4 100644 --- a/zero_bin/leader/Cargo.toml +++ b/zero_bin/leader/Cargo.toml @@ -7,7 +7,7 @@ license.workspace = true repository.workspace = true keywords.workspace = true categories.workspace = true -build = "build.rs" +build = "../version.rs" [dependencies] paladin-core = { workspace = true } diff --git a/zero_bin/leader/src/main.rs b/zero_bin/leader/src/main.rs index 94f02b729..8f16357b3 100644 --- a/zero_bin/leader/src/main.rs +++ b/zero_bin/leader/src/main.rs @@ -11,6 +11,7 @@ use paladin::runtime::Runtime; use proof_gen::proof_types::GeneratedBlockProof; use tracing::{info, warn}; use zero_bin_common::block_interval::BlockInterval; +use zero_bin_common::version::Version; use crate::client::{client_main, ProofParams}; @@ -20,9 +21,7 @@ mod http; mod init; mod stdio; -const EVM_ARITH_VER_KEY: &str = "EVM_ARITHMETIZATION_PKG_VER"; -const VERGEN_BUILD_TIMESTAMP: &str = "VERGEN_BUILD_TIMESTAMP"; -const VERGEN_RUSTC_COMMIT_HASH: &str = "VERGEN_RUSTC_COMMIT_HASH"; +const EVM_ARITH_VER_KEY: &str = "EVM_ARITH_VER_KEY"; fn get_previous_proof(path: Option) -> Result> { if path.is_none() { @@ -52,28 +51,6 @@ async fn main() -> Result<()> { ); } } - if env::var_os(VERGEN_BUILD_TIMESTAMP).is_none() { - // Safety: - // - we're early enough in main that nothing else should race - unsafe { - env::set_var( - VERGEN_BUILD_TIMESTAMP, - // see build.rs - env!("VERGEN_BUILD_TIMESTAMP"), - ); - } - } - if env::var_os(VERGEN_RUSTC_COMMIT_HASH).is_none() { - // Safety: - // - we're early enough in main that nothing else should race - unsafe { - env::set_var( - VERGEN_RUSTC_COMMIT_HASH, - // see build.rs - env!("VERGEN_RUSTC_COMMIT_HASH"), - ); - } - } let args = cli::Cli::parse(); if let paladin::config::Runtime::InMemory = args.paladin.runtime { @@ -86,12 +63,12 @@ async fn main() -> Result<()> { match args.command { Command::Version {} => { - println!( - "Evm Arithmetization package version: {}", - env::var(EVM_ARITH_VER_KEY)? - ); - println!("Build Commit Hash: {}", env::var(VERGEN_RUSTC_COMMIT_HASH)?); - println!("Build Timestamp: {}", env::var(VERGEN_BUILD_TIMESTAMP)?); + Version { + evm_arithmetization_package_version: env::var(EVM_ARITH_VER_KEY)?, + build_commit_hash: env!("VERGEN_RUSTC_COMMIT_HASH").to_string(), + build_timestamp: env!("VERGEN_BUILD_TIMESTAMP").to_string(), + } + .print(); } Command::Stdio { previous_proof, diff --git a/zero_bin/rpc/Cargo.toml b/zero_bin/rpc/Cargo.toml index cba6c926c..2dce86d99 100644 --- a/zero_bin/rpc/Cargo.toml +++ b/zero_bin/rpc/Cargo.toml @@ -7,7 +7,7 @@ license.workspace = true repository.workspace = true keywords.workspace = true categories.workspace = true -build = "build.rs" +build = "../version.rs" [dependencies] __compat_primitive_types = { workspace = true } diff --git a/zero_bin/rpc/build.rs b/zero_bin/rpc/build.rs deleted file mode 100644 index da63d6e21..000000000 --- a/zero_bin/rpc/build.rs +++ /dev/null @@ -1,30 +0,0 @@ -use anyhow::Context as _; -use vergen::{BuildBuilder, Emitter, RustcBuilder}; - -fn main() -> anyhow::Result<()> { - let build_timestamp = BuildBuilder::default().build_timestamp(true).build()?; - let rust_commit_hash = RustcBuilder::default().commit_hash(true).build()?; - - Emitter::default() - .add_instructions(&build_timestamp)? - .add_instructions(&rust_commit_hash)? - .emit()?; - - let meta = cargo_metadata::MetadataCommand::new() - .exec() - .context("failed to probe cargo-metadata")?; - let version = &meta - .packages - .iter() - .find(|it| it.name == "evm_arithmetization") - .context("couldn't find evm_arithmetization package")? - .version; - println!( - "cargo::rustc-env=EVM_ARITHMETIZATION_PACKAGE_VERSION={}.{}.x", - // patch version change should not prompt circuits regeneration - version.major, - version.minor - ); - - Ok(()) -} diff --git a/zero_bin/rpc/src/main.rs b/zero_bin/rpc/src/main.rs index cdb671ffd..4270f2d71 100644 --- a/zero_bin/rpc/src/main.rs +++ b/zero_bin/rpc/src/main.rs @@ -7,10 +7,9 @@ use rpc::{retry::build_http_retry_provider, RpcType}; use tracing_subscriber::{prelude::*, EnvFilter}; use url::Url; use zero_bin_common::block_interval::BlockInterval; +use zero_bin_common::version::Version; -const EVM_ARITH_VER_KEY: &str = "EVM_ARITHMETIZATION_PKG_VER"; -const VERGEN_BUILD_TIMESTAMP: &str = "VERGEN_BUILD_TIMESTAMP"; -const VERGEN_RUSTC_COMMIT_HASH: &str = "VERGEN_RUSTC_COMMIT_HASH"; +const EVM_ARITH_VER_KEY: &str = "EVM_ARITH_VER_KEY"; #[derive(Parser)] pub enum Cli { @@ -48,12 +47,12 @@ impl Cli { pub async fn execute(self) -> anyhow::Result<()> { match self { Self::Version {} => { - println!( - "Evm Arithmetization package version: {}", - env::var(EVM_ARITH_VER_KEY)? - ); - println!("Build Commit Hash: {}", env::var(VERGEN_RUSTC_COMMIT_HASH)?); - println!("Build Timestamp: {}", env::var(VERGEN_BUILD_TIMESTAMP)?); + Version { + evm_arithmetization_package_version: env::var(EVM_ARITH_VER_KEY)?, + build_commit_hash: env!("VERGEN_RUSTC_COMMIT_HASH").to_string(), + build_timestamp: env!("VERGEN_BUILD_TIMESTAMP").to_string(), + } + .print(); } Self::Fetch { start_block, @@ -103,28 +102,6 @@ async fn main() -> anyhow::Result<()> { ); } } - if env::var_os(VERGEN_BUILD_TIMESTAMP).is_none() { - // Safety: - // - we're early enough in main that nothing else should race - unsafe { - env::set_var( - VERGEN_BUILD_TIMESTAMP, - // see build.rs - env!("VERGEN_BUILD_TIMESTAMP"), - ); - } - } - if env::var_os(VERGEN_RUSTC_COMMIT_HASH).is_none() { - // Safety: - // - we're early enough in main that nothing else should race - unsafe { - env::set_var( - VERGEN_RUSTC_COMMIT_HASH, - // see build.rs - env!("VERGEN_RUSTC_COMMIT_HASH"), - ); - } - } tracing_subscriber::Registry::default() .with( diff --git a/zero_bin/verifier/Cargo.toml b/zero_bin/verifier/Cargo.toml index c1a76f56a..d55e681bc 100644 --- a/zero_bin/verifier/Cargo.toml +++ b/zero_bin/verifier/Cargo.toml @@ -3,7 +3,7 @@ name = "verifier" authors = ["Polygon Zero "] version = "0.1.0" edition = "2021" -build = "build.rs" +build = "../version.rs" [dependencies] clap = { workspace = true } diff --git a/zero_bin/verifier/build.rs b/zero_bin/verifier/build.rs deleted file mode 100644 index da63d6e21..000000000 --- a/zero_bin/verifier/build.rs +++ /dev/null @@ -1,30 +0,0 @@ -use anyhow::Context as _; -use vergen::{BuildBuilder, Emitter, RustcBuilder}; - -fn main() -> anyhow::Result<()> { - let build_timestamp = BuildBuilder::default().build_timestamp(true).build()?; - let rust_commit_hash = RustcBuilder::default().commit_hash(true).build()?; - - Emitter::default() - .add_instructions(&build_timestamp)? - .add_instructions(&rust_commit_hash)? - .emit()?; - - let meta = cargo_metadata::MetadataCommand::new() - .exec() - .context("failed to probe cargo-metadata")?; - let version = &meta - .packages - .iter() - .find(|it| it.name == "evm_arithmetization") - .context("couldn't find evm_arithmetization package")? - .version; - println!( - "cargo::rustc-env=EVM_ARITHMETIZATION_PACKAGE_VERSION={}.{}.x", - // patch version change should not prompt circuits regeneration - version.major, - version.minor - ); - - Ok(()) -} diff --git a/zero_bin/verifier/src/main.rs b/zero_bin/verifier/src/main.rs index 99d9cfb87..838a6f9c0 100644 --- a/zero_bin/verifier/src/main.rs +++ b/zero_bin/verifier/src/main.rs @@ -7,15 +7,14 @@ use dotenvy::dotenv; use proof_gen::proof_types::GeneratedBlockProof; use serde_json::Deserializer; use tracing::info; +use zero_bin_common::version::Version; mod cli; mod init; use cli::Command; -const EVM_ARITH_VER_KEY: &str = "EVM_ARITHMETIZATION_PKG_VER"; -const VERGEN_BUILD_TIMESTAMP: &str = "VERGEN_BUILD_TIMESTAMP"; -const VERGEN_RUSTC_COMMIT_HASH: &str = "VERGEN_RUSTC_COMMIT_HASH"; +const EVM_ARITH_VER_KEY: &str = "EVM_ARITH_VER_KEY"; fn main() -> Result<()> { dotenv().ok(); @@ -33,36 +32,14 @@ fn main() -> Result<()> { ); } } - if env::var_os(VERGEN_BUILD_TIMESTAMP).is_none() { - // Safety: - // - we're early enough in main that nothing else should race - unsafe { - env::set_var( - VERGEN_BUILD_TIMESTAMP, - // see build.rs - env!("VERGEN_BUILD_TIMESTAMP"), - ); - } - } - if env::var_os(VERGEN_RUSTC_COMMIT_HASH).is_none() { - // Safety: - // - we're early enough in main that nothing else should race - unsafe { - env::set_var( - VERGEN_RUSTC_COMMIT_HASH, - // see build.rs - env!("VERGEN_RUSTC_COMMIT_HASH"), - ); - } - } if let Some(Command::Version {}) = args.command { - println!( - "Evm Arithmetization package version: {}", - env::var(EVM_ARITH_VER_KEY)? - ); - println!("Build Commit Hash: {}", env::var(VERGEN_RUSTC_COMMIT_HASH)?); - println!("Build Timestamp: {}", env::var(VERGEN_BUILD_TIMESTAMP)?); + Version { + evm_arithmetization_package_version: env::var(EVM_ARITH_VER_KEY)?, + build_commit_hash: env!("VERGEN_RUSTC_COMMIT_HASH").to_string(), + build_timestamp: env!("VERGEN_BUILD_TIMESTAMP").to_string(), + } + .print(); return Ok(()); } diff --git a/zero_bin/leader/build.rs b/zero_bin/version.rs similarity index 100% rename from zero_bin/leader/build.rs rename to zero_bin/version.rs diff --git a/zero_bin/worker/Cargo.toml b/zero_bin/worker/Cargo.toml index 1dc01077f..9d85f2197 100644 --- a/zero_bin/worker/Cargo.toml +++ b/zero_bin/worker/Cargo.toml @@ -7,7 +7,7 @@ license.workspace = true repository.workspace = true keywords.workspace = true categories.workspace = true -build = "build.rs" +build = "../version.rs" [dependencies] paladin-core = { workspace = true } diff --git a/zero_bin/worker/build.rs b/zero_bin/worker/build.rs deleted file mode 100644 index da63d6e21..000000000 --- a/zero_bin/worker/build.rs +++ /dev/null @@ -1,30 +0,0 @@ -use anyhow::Context as _; -use vergen::{BuildBuilder, Emitter, RustcBuilder}; - -fn main() -> anyhow::Result<()> { - let build_timestamp = BuildBuilder::default().build_timestamp(true).build()?; - let rust_commit_hash = RustcBuilder::default().commit_hash(true).build()?; - - Emitter::default() - .add_instructions(&build_timestamp)? - .add_instructions(&rust_commit_hash)? - .emit()?; - - let meta = cargo_metadata::MetadataCommand::new() - .exec() - .context("failed to probe cargo-metadata")?; - let version = &meta - .packages - .iter() - .find(|it| it.name == "evm_arithmetization") - .context("couldn't find evm_arithmetization package")? - .version; - println!( - "cargo::rustc-env=EVM_ARITHMETIZATION_PACKAGE_VERSION={}.{}.x", - // patch version change should not prompt circuits regeneration - version.major, - version.minor - ); - - Ok(()) -} diff --git a/zero_bin/worker/src/main.rs b/zero_bin/worker/src/main.rs index 92e401843..b420f4ec2 100644 --- a/zero_bin/worker/src/main.rs +++ b/zero_bin/worker/src/main.rs @@ -6,6 +6,7 @@ use dotenvy::dotenv; use ops::register; use paladin::runtime::WorkerRuntime; use zero_bin_common::prover_state::cli::CliProverStateConfig; +use zero_bin_common::version::Version; mod init; @@ -15,9 +16,7 @@ mod init; #[global_allocator] static GLOBAL: jemallocator::Jemalloc = jemallocator::Jemalloc; -const EVM_ARITH_VER_KEY: &str = "EVM_ARITHMETIZATION_PKG_VER"; -const VERGEN_BUILD_TIMESTAMP: &str = "VERGEN_BUILD_TIMESTAMP"; -const VERGEN_RUSTC_COMMIT_HASH: &str = "VERGEN_RUSTC_COMMIT_HASH"; +const EVM_ARITH_VER_KEY: &str = "EVM_ARITH_VER_KEY"; #[derive(Parser)] struct Cli { @@ -51,36 +50,14 @@ async fn main() -> Result<()> { ); } } - if env::var_os(VERGEN_BUILD_TIMESTAMP).is_none() { - // Safety: - // - we're early enough in main that nothing else should race - unsafe { - env::set_var( - VERGEN_BUILD_TIMESTAMP, - // see build.rs - env!("VERGEN_BUILD_TIMESTAMP"), - ); - } - } - if env::var_os(VERGEN_RUSTC_COMMIT_HASH).is_none() { - // Safety: - // - we're early enough in main that nothing else should race - unsafe { - env::set_var( - VERGEN_RUSTC_COMMIT_HASH, - // see build.rs - env!("VERGEN_RUSTC_COMMIT_HASH"), - ); - } - } if let Some(Command::Version {}) = args.command { - println!( - "Evm Arithmetization package version: {}", - env::var(EVM_ARITH_VER_KEY)? - ); - println!("Build Commit Hash: {}", env::var(VERGEN_RUSTC_COMMIT_HASH)?); - println!("Build Timestamp: {}", env::var(VERGEN_BUILD_TIMESTAMP)?); + Version { + evm_arithmetization_package_version: env::var("EVM_ARITH_VER_KEY")?, + build_commit_hash: env!("VERGEN_RUSTC_COMMIT_HASH").to_string(), + build_timestamp: env!("VERGEN_BUILD_TIMESTAMP").to_string(), + } + .print(); return Ok(()); }