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/version.rs b/zero_bin/common/src/version.rs new file mode 100644 index 000000000..6e2be6edc --- /dev/null +++ b/zero_bin/common/src/version.rs @@ -0,0 +1,16 @@ +pub struct Version { + pub evm_arithmetization_pkg_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_pkg_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..30bd05a6b 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_ARITHMETIZATION_PKG_VER: &str = "EVM_ARITHMETIZATION_PKG_VER"; fn get_previous_proof(path: Option) -> Result> { if path.is_none() { @@ -41,36 +40,14 @@ async fn main() -> Result<()> { load_dotenvy_vars_if_present(); init::tracing(); - if env::var_os(EVM_ARITH_VER_KEY).is_none() { + if env::var_os(EVM_ARITHMETIZATION_PKG_VER).is_none() { // Safety: // - we're early enough in main that nothing else should race unsafe { env::set_var( - EVM_ARITH_VER_KEY, + EVM_ARITHMETIZATION_PKG_VER, // see build.rs - env!("EVM_ARITHMETIZATION_PACKAGE_VERSION"), - ); - } - } - 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"), + env!("EVM_ARITHMETIZATION_PKG_VER"), ); } } @@ -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_pkg_version: env::var(EVM_ARITHMETIZATION_PKG_VER)?, + 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..8f914834d 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_ARITHMETIZATION_PKG_VER: &str = "EVM_ARITHMETIZATION_PKG_VER"; #[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_pkg_version: env::var(EVM_ARITHMETIZATION_PKG_VER)?, + build_commit_hash: env!("VERGEN_RUSTC_COMMIT_HASH").to_string(), + build_timestamp: env!("VERGEN_BUILD_TIMESTAMP").to_string(), + } + .print(); } Self::Fetch { start_block, @@ -92,36 +91,14 @@ impl Cli { #[tokio::main] async fn main() -> anyhow::Result<()> { - if env::var_os(EVM_ARITH_VER_KEY).is_none() { + if env::var_os(EVM_ARITHMETIZATION_PKG_VER).is_none() { // Safety: // - we're early enough in main that nothing else should race unsafe { env::set_var( - EVM_ARITH_VER_KEY, + EVM_ARITHMETIZATION_PKG_VER, // see build.rs - env!("EVM_ARITHMETIZATION_PACKAGE_VERSION"), - ); - } - } - 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"), + env!("EVM_ARITHMETIZATION_PKG_VER"), ); } } 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..a957bcf5c 100644 --- a/zero_bin/verifier/src/main.rs +++ b/zero_bin/verifier/src/main.rs @@ -7,62 +7,39 @@ 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_ARITHMETIZATION_PKG_VER: &str = "EVM_ARITHMETIZATION_PKG_VER"; fn main() -> Result<()> { dotenv().ok(); init::tracing(); let args = cli::Cli::parse(); - if env::var_os(EVM_ARITH_VER_KEY).is_none() { + if env::var_os(EVM_ARITHMETIZATION_PKG_VER).is_none() { // Safety: // - we're early enough in main that nothing else should race unsafe { env::set_var( - EVM_ARITH_VER_KEY, + EVM_ARITHMETIZATION_PKG_VER, // see build.rs - env!("EVM_ARITHMETIZATION_PACKAGE_VERSION"), - ); - } - } - 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"), + env!("EVM_ARITHMETIZATION_PKG_VER"), ); } } 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_pkg_version: env::var(EVM_ARITHMETIZATION_PKG_VER)?, + 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 92% rename from zero_bin/leader/build.rs rename to zero_bin/version.rs index da63d6e21..c3e7b006d 100644 --- a/zero_bin/leader/build.rs +++ b/zero_bin/version.rs @@ -20,7 +20,7 @@ fn main() -> anyhow::Result<()> { .context("couldn't find evm_arithmetization package")? .version; println!( - "cargo::rustc-env=EVM_ARITHMETIZATION_PACKAGE_VERSION={}.{}.x", + "cargo::rustc-env=EVM_ARITHMETIZATION_PKG_VER={}.{}.x", // patch version change should not prompt circuits regeneration version.major, version.minor 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..f14e71b74 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_ARITHMETIZATION_PKG_VER: &str = "EVM_ARITHMETIZATION_PKG_VER"; #[derive(Parser)] struct Cli { @@ -40,47 +39,25 @@ async fn main() -> Result<()> { init::tracing(); let args = Cli::parse(); - if env::var_os(EVM_ARITH_VER_KEY).is_none() { + if env::var_os(EVM_ARITHMETIZATION_PKG_VER).is_none() { // Safety: // - we're early enough in main that nothing else should race unsafe { env::set_var( - EVM_ARITH_VER_KEY, + EVM_ARITHMETIZATION_PKG_VER, // see build.rs - env!("EVM_ARITHMETIZATION_PACKAGE_VERSION"), - ); - } - } - 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"), + env!("EVM_ARITHMETIZATION_PKG_VER"), ); } } 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_pkg_version: env::var("EVM_ARITHMETIZATION_PKG_VER")?, + build_commit_hash: env!("VERGEN_RUSTC_COMMIT_HASH").to_string(), + build_timestamp: env!("VERGEN_BUILD_TIMESTAMP").to_string(), + } + .print(); return Ok(()); }