From 149b00d2a3ea11910d3076887126d3df63a36292 Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Tue, 6 Jan 2026 15:09:03 +0200 Subject: [PATCH 01/10] init: initial structure --- Cargo.lock | 16 ++++++++++++++++ Cargo.toml | 2 +- indexer/Cargo.toml | 19 +++++++++++++++++++ indexer/src/client/mod.rs | 0 indexer/src/lib.rs | 1 + 5 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 indexer/Cargo.toml create mode 100644 indexer/src/client/mod.rs create mode 100644 indexer/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index eeb8f5ba..2c5200ac 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2198,6 +2198,22 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee796ad498c8d9a1d68e477df8f754ed784ef875de1414ebdaf169f70a6a784" +[[package]] +name = "indexer" +version = "0.1.0" +dependencies = [ + "anyhow", + "base58", + "common", + "futures", + "log", + "nssa", + "nssa_core", + "serde", + "storage", + "tokio", +] + [[package]] name = "indexmap" version = "1.9.3" diff --git a/Cargo.toml b/Cargo.toml index 14856d09..f8327864 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ members = [ "integration_tests/proc_macro_test_attribute", "examples/program_deployment", "examples/program_deployment/methods", - "examples/program_deployment/methods/guest", + "examples/program_deployment/methods/guest", "indexer", ] [workspace.dependencies] diff --git a/indexer/Cargo.toml b/indexer/Cargo.toml new file mode 100644 index 00000000..4b93ad05 --- /dev/null +++ b/indexer/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "indexer" +version = "0.1.0" +edition = "2024" + +[dependencies] +nssa.workspace = true +nssa_core.workspace = true +common.workspace = true +storage.workspace = true + +base58.workspace = true +anyhow.workspace = true +serde.workspace = true +log.workspace = true + +[dev-dependencies] +tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } +futures.workspace = true \ No newline at end of file diff --git a/indexer/src/client/mod.rs b/indexer/src/client/mod.rs new file mode 100644 index 00000000..e69de29b diff --git a/indexer/src/lib.rs b/indexer/src/lib.rs new file mode 100644 index 00000000..39355176 --- /dev/null +++ b/indexer/src/lib.rs @@ -0,0 +1 @@ +pub mod client; \ No newline at end of file From 1a033af5f248d55e95625357c011645c103cc72c Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Wed, 7 Jan 2026 16:29:37 +0200 Subject: [PATCH 02/10] fix: adapting http client --- Cargo.lock | 87 ++++++++++++ Cargo.toml | 6 +- bedrock_client/Cargo.toml | 17 +++ bedrock_client/src/lib.rs | 174 ++++++++++++++++++++++++ bedrock_client/src/paths.rs | 6 + bedrock_client/src/structs/header_id.rs | 103 ++++++++++++++ bedrock_client/src/structs/info.rs | 23 ++++ bedrock_client/src/structs/mod.rs | 40 ++++++ bedrock_client/src/structs/signature.rs | 53 ++++++++ bedrock_client/src/structs/tx.rs | 9 ++ 10 files changed, 517 insertions(+), 1 deletion(-) create mode 100644 bedrock_client/Cargo.toml create mode 100644 bedrock_client/src/lib.rs create mode 100644 bedrock_client/src/paths.rs create mode 100644 bedrock_client/src/structs/header_id.rs create mode 100644 bedrock_client/src/structs/info.rs create mode 100644 bedrock_client/src/structs/mod.rs create mode 100644 bedrock_client/src/structs/signature.rs create mode 100644 bedrock_client/src/structs/tx.rs diff --git a/Cargo.lock b/Cargo.lock index 2c5200ac..e58d4e0e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -657,6 +657,23 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e050f626429857a27ddccb31e0aca21356bfa709c04041aefddac081a8f068a" +[[package]] +name = "bedrock_client" +version = "0.1.0" +dependencies = [ + "anyhow", + "const-hex", + "ed25519-dalek", + "futures", + "log", + "reqwest 0.11.27", + "serde", + "serde_json", + "serde_with", + "thiserror", + "url", +] + [[package]] name = "bincode" version = "1.3.3" @@ -1046,6 +1063,18 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "const-hex" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bb320cac8a0750d7f25280aa97b09c26edfe161164238ecbbb31092b079e735" +dependencies = [ + "cfg-if", + "cpufeatures", + "proptest", + "serde_core", +] + [[package]] name = "const-oid" version = "0.9.6" @@ -1150,6 +1179,33 @@ dependencies = [ "cipher", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest", + "fiat-crypto", + "rustc_version", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "darling" version = "0.20.11" @@ -1407,6 +1463,31 @@ dependencies = [ "spki", ] +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "serde", + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand_core 0.6.4", + "serde", + "sha2", + "subtle", + "zeroize", +] + [[package]] name = "educe" version = "0.6.0" @@ -1561,6 +1642,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + [[package]] name = "find-msvc-tools" version = "0.1.5" diff --git a/Cargo.toml b/Cargo.toml index f8327864..92e3b7d6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ members = [ "integration_tests/proc_macro_test_attribute", "examples/program_deployment", "examples/program_deployment/methods", - "examples/program_deployment/methods/guest", "indexer", + "examples/program_deployment/methods/guest", "indexer", "bedrock_client", ] [workspace.dependencies] @@ -76,6 +76,10 @@ chrono = "0.4.41" borsh = "1.5.7" base58 = "0.2.0" itertools = "0.14.0" +url = "2.5.4" +const-hex = { default-features = false, features = ["alloc"], version = "1" } +serde_with = { default-features = false, version = "3.14.0" } +ed25519-dalek = { default-features = false, version = "2" } rocksdb = { version = "0.24.0", default-features = false, features = [ "snappy", diff --git a/bedrock_client/Cargo.toml b/bedrock_client/Cargo.toml new file mode 100644 index 00000000..bc0f9277 --- /dev/null +++ b/bedrock_client/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "bedrock_client" +version = "0.1.0" +edition = "2024" + +[dependencies] +reqwest.workspace = true +anyhow.workspace = true +serde.workspace = true +log.workspace = true +thiserror.workspace = true +url.workspace = true +futures.workspace = true +serde_json.workspace = true +const-hex.workspace = true +serde_with.workspace = true +ed25519-dalek = { workspace = true, features = ["rand_core", "serde", "zeroize"] } diff --git a/bedrock_client/src/lib.rs b/bedrock_client/src/lib.rs new file mode 100644 index 00000000..d3d4fbb1 --- /dev/null +++ b/bedrock_client/src/lib.rs @@ -0,0 +1,174 @@ +//A copy of http-client from logos-blockchain +//ToDo: replace with dependency + +use std::{fmt::Debug, sync::Arc}; +use reqwest::{Client, ClientBuilder, RequestBuilder, StatusCode, Url}; +use serde::{Serialize, de::DeserializeOwned}; +use futures::{Stream, StreamExt as _}; + +pub mod paths; +pub mod structs; + +use nomos_core::{mantle::SignedMantleTx}; + +use crate::{paths::{CRYPTARCHIA_INFO, CRYPTARCHIA_LIB_STREAM, STORAGE_BLOCK}, structs::{Block, BlockInfo, info::CryptarchiaInfo}}; + +#[derive(thiserror::Error, Debug)] +pub enum Error { + #[error("Internal server error: {0}")] + Server(String), + #[error("Failed to execute request: {0}")] + Client(String), + #[error(transparent)] + Request(#[from] reqwest::Error), + #[error(transparent)] + Url(#[from] url::ParseError), +} + +#[derive(Clone)] +pub struct BasicAuthCredentials { + username: String, + password: Option, +} + +impl BasicAuthCredentials { + #[must_use] + pub const fn new(username: String, password: Option) -> Self { + Self { username, password } + } +} + +#[derive(Clone)] +pub struct CommonHttpClient { + client: Arc, + basic_auth: Option, +} + +impl CommonHttpClient { + #[must_use] + pub fn new(basic_auth: Option) -> Self { + let client = ClientBuilder::new() + .build() + .expect("Client from default settings should be able to build"); + Self { + client: Arc::new(client), + basic_auth, + } + } + + #[must_use] + pub fn new_with_client(client: Client, basic_auth: Option) -> Self { + Self { + client: Arc::new(client), + basic_auth, + } + } + + pub async fn post(&self, request_url: Url, request_body: &Req) -> Result + where + Req: Serialize + ?Sized + Send + Sync, + Res: DeserializeOwned + Send + Sync, + { + let request = self.client.post(request_url).json(request_body); + self.execute_request::(request).await + } + + pub async fn get( + &self, + request_url: Url, + request_body: Option<&Req>, + ) -> Result + where + Req: Serialize + ?Sized + Send + Sync, + Res: DeserializeOwned + Send + Sync, + { + let mut request = self.client.get(request_url); + if let Some(request_body) = request_body { + request = request.json(request_body); + } + self.execute_request::(request).await + } + + async fn execute_request( + &self, + mut request: RequestBuilder, + ) -> Result { + if let Some(basic_auth) = &self.basic_auth { + request = request.basic_auth(&basic_auth.username, basic_auth.password.as_deref()); + } + + let response = request.send().await.map_err(Error::Request)?; + let status = response.status(); + let body = response.text().await.map_err(Error::Request)?; + + match status { + StatusCode::OK => serde_json::from_str(&body) + .map_err(|e| Error::Server(format!("Failed to parse response: {e}"))), + StatusCode::INTERNAL_SERVER_ERROR => Err(Error::Server(body)), + _ => Err(Error::Server(format!( + "Unexpected response [{status}]: {body}", + ))), + } + } + + pub async fn get_lib_stream( + &self, + base_url: Url, + ) -> Result, Error> { + let request_url = base_url + .join(CRYPTARCHIA_LIB_STREAM.trim_start_matches('/')) + .map_err(Error::Url)?; + let mut request = self.client.get(request_url); + + if let Some(basic_auth) = &self.basic_auth { + request = request.basic_auth(&basic_auth.username, basic_auth.password.as_deref()); + } + + let response = request.send().await.map_err(Error::Request)?; + let status = response.status(); + + let lib_stream = response.bytes_stream().filter_map(async |item| { + let bytes = item.ok()?; + serde_json::from_slice::(&bytes).ok() + }); + match status { + StatusCode::OK => Ok(lib_stream), + StatusCode::INTERNAL_SERVER_ERROR => Err(Error::Server("Error".to_owned())), + _ => Err(Error::Server(format!("Unexpected response [{status}]",))), + } + } + + pub async fn get_block_by_id( + &self, + base_url: Url, + header_id: HeaderId, + ) -> Result>, Error> + where + HeaderId: Serialize + Send + Sync, + { + let request_url = base_url + .join(STORAGE_BLOCK.trim_start_matches('/')) + .map_err(Error::Url)?; + self.post(request_url, &header_id).await + } + + /// Get consensus info (tip, height, etc.) + pub async fn consensus_info(&self, base_url: Url) -> Result { + let request_url = base_url + .join(CRYPTARCHIA_INFO.trim_start_matches('/')) + .map_err(Error::Url)?; + self.get::<(), CryptarchiaInfo>(request_url, None).await + } + + /// Get a block by its header ID + pub async fn get_block( + &self, + base_url: Url, + header_id: HeaderId, + ) -> Result>, Error> { + let request_url = base_url + .join(STORAGE_BLOCK.trim_start_matches('/')) + .map_err(Error::Url)?; + self.post(request_url, &header_id).await + } +} diff --git a/bedrock_client/src/paths.rs b/bedrock_client/src/paths.rs new file mode 100644 index 00000000..5149f4d3 --- /dev/null +++ b/bedrock_client/src/paths.rs @@ -0,0 +1,6 @@ +pub const CRYPTARCHIA_INFO: &str = "/cryptarchia/info"; +pub const CRYPTARCHIA_LIB_STREAM: &str = "/cryptarchia/lib-stream"; +pub const STORAGE_BLOCK: &str = "/storage/block"; + +pub const BLOCKS: &str = "/cryptarchia/blocks"; +pub const BLOCKS_STREAM: &str = "/cryptarchia/blocks/stream"; diff --git a/bedrock_client/src/structs/header_id.rs b/bedrock_client/src/structs/header_id.rs new file mode 100644 index 00000000..4b032bc4 --- /dev/null +++ b/bedrock_client/src/structs/header_id.rs @@ -0,0 +1,103 @@ +#[derive(Clone, Debug, Eq, PartialEq, Copy, Hash, PartialOrd, Ord)] +pub struct HeaderId([u8; 32]); + +#[derive(Debug, thiserror::Error)] +pub enum Error { + #[error("Invalid header id size: {0}")] + InvalidHeaderIdSize(usize), +} + +impl From<[u8; 32]> for HeaderId { + fn from(id: [u8; 32]) -> Self { + Self(id) + } +} + +impl From for [u8; 32] { + fn from(id: HeaderId) -> Self { + id.0 + } +} + +impl TryFrom<&[u8]> for HeaderId { + type Error = Error; + + fn try_from(slice: &[u8]) -> Result { + if slice.len() != 32 { + return Err(Error::InvalidHeaderIdSize(slice.len())); + } + let mut id = [0u8; 32]; + id.copy_from_slice(slice); + Ok(Self::from(id)) + } +} + +impl AsRef<[u8]> for HeaderId { + fn as_ref(&self) -> &[u8] { + &self.0 + } +} + +#[derive(Clone, Debug, Eq, PartialEq, Copy, Hash)] +pub struct ContentId([u8; 32]); + +impl From for [u8; 32] { + fn from(id: ContentId) -> Self { + id.0 + } +} + +macro_rules! display_hex_bytes_newtype { + ($newtype:ty) => { + impl core::fmt::Display for $newtype { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { + write!(f, "0x")?; + for v in self.0 { + write!(f, "{:02x}", v)?; + } + Ok(()) + } + } + }; +} + +macro_rules! serde_bytes_newtype { + ($newtype:ty, $len:expr) => { + impl serde::Serialize for $newtype { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + if serializer.is_human_readable() { + const_hex::const_encode::<$len, false>(&self.0) + .as_str() + .serialize(serializer) + } else { + self.0.serialize(serializer) + } + } + } + + impl<'de> serde::Deserialize<'de> for $newtype { + fn deserialize(deserializer: D) -> Result<$newtype, D::Error> + where + D: serde::Deserializer<'de>, + { + if deserializer.is_human_readable() { + let s = ::deserialize(deserializer)?; + const_hex::decode_to_array(s) + .map(Self) + .map_err(serde::de::Error::custom) + } else { + <[u8; $len] as serde::Deserialize>::deserialize(deserializer).map(Self) + } + } + } + }; +} + +display_hex_bytes_newtype!(HeaderId); +display_hex_bytes_newtype!(ContentId); + +serde_bytes_newtype!(HeaderId, 32); +serde_bytes_newtype!(ContentId, 32); \ No newline at end of file diff --git a/bedrock_client/src/structs/info.rs b/bedrock_client/src/structs/info.rs new file mode 100644 index 00000000..3e33246b --- /dev/null +++ b/bedrock_client/src/structs/info.rs @@ -0,0 +1,23 @@ +use serde::{Deserialize, Serialize}; +use serde_with::serde_as; + +use crate::structs::header_id::HeaderId; + +#[derive(Clone, Debug, Eq, PartialEq, Copy, Hash, PartialOrd, Ord, Serialize, Deserialize)] +pub struct Slot(u64); + +#[derive(Clone, Debug, Copy, PartialEq, Eq, Serialize, Deserialize)] +pub enum State { + Bootstrapping, + Online, +} + +#[serde_as] +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +pub struct CryptarchiaInfo { + pub lib: HeaderId, + pub tip: HeaderId, + pub slot: Slot, + pub height: u64, + pub mode: State, +} \ No newline at end of file diff --git a/bedrock_client/src/structs/mod.rs b/bedrock_client/src/structs/mod.rs new file mode 100644 index 00000000..36c2aab4 --- /dev/null +++ b/bedrock_client/src/structs/mod.rs @@ -0,0 +1,40 @@ +use ed25519_dalek::Signature; +use serde::{Deserialize, Serialize}; + +use crate::structs::{header_id::{ContentId, HeaderId}, info::Slot}; + +pub mod header_id; +pub mod info; +pub mod signature; +pub mod tx; + +#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] +pub struct BlockInfo { + pub height: u64, + pub header_id: HeaderId, +} + +pub const BEDROCK_VERSION: u8 = 1; + +#[derive(Clone, Debug, Eq, PartialEq, Copy, Serialize, Deserialize)] +#[repr(u8)] +pub enum Version { + Bedrock = BEDROCK_VERSION, +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct Header { + version: Version, + parent_block: HeaderId, + slot: Slot, + block_root: ContentId, + // Not sure, if need this. + // proof_of_leadership: Groth16LeaderProof, +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct Block { + header: Header, + signature: Signature, + transactions: Vec, +} \ No newline at end of file diff --git a/bedrock_client/src/structs/signature.rs b/bedrock_client/src/structs/signature.rs new file mode 100644 index 00000000..1075354b --- /dev/null +++ b/bedrock_client/src/structs/signature.rs @@ -0,0 +1,53 @@ +use core::hash::{Hash, Hasher}; + +use ed25519_dalek::SIGNATURE_LENGTH; +use serde::{Deserialize, Serialize}; + +pub const SIGNATURE_SIZE: usize = SIGNATURE_LENGTH; + +#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)] +pub struct Signature(ed25519_dalek::Signature); + +impl Signature { + #[must_use] + pub fn from_bytes(bytes: &[u8; SIGNATURE_SIZE]) -> Self { + Self(ed25519_dalek::Signature::from_bytes(bytes)) + } + + #[must_use] + pub fn to_bytes(&self) -> [u8; SIGNATURE_SIZE] { + self.0.to_bytes() + } + + #[must_use] + pub const fn as_inner(&self) -> &ed25519_dalek::Signature { + &self.0 + } +} + +impl Hash for Signature { + fn hash(&self, state: &mut H) + where + H: Hasher, + { + self.0.to_bytes().hash(state); + } +} + +impl From for Signature { + fn from(sig: ed25519_dalek::Signature) -> Self { + Self(sig) + } +} + +impl From for ed25519_dalek::Signature { + fn from(sig: Signature) -> Self { + sig.0 + } +} + +impl From<[u8; SIGNATURE_SIZE]> for Signature { + fn from(bytes: [u8; SIGNATURE_SIZE]) -> Self { + Self::from_bytes(&bytes) + } +} diff --git a/bedrock_client/src/structs/tx.rs b/bedrock_client/src/structs/tx.rs new file mode 100644 index 00000000..16c083b0 --- /dev/null +++ b/bedrock_client/src/structs/tx.rs @@ -0,0 +1,9 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Clone, PartialEq, Eq, Serialize)] +pub struct SignedMantleTx { + pub mantle_tx: MantleTx, + pub ops_proofs: Vec, + // Not sure, if we need this. + // ledger_tx_proof: ZkSignature, +} \ No newline at end of file From f817279d33d818fcdd937aedf37e365ce0b38283 Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Thu, 8 Jan 2026 09:10:00 +0200 Subject: [PATCH 03/10] fix: client as dependency --- Cargo.lock | 1841 +++++++++++++++++++---- Cargo.toml | 10 +- bedrock_client/Cargo.toml | 4 +- bedrock_client/src/lib.rs | 183 +-- bedrock_client/src/paths.rs | 6 - bedrock_client/src/structs/header_id.rs | 103 -- bedrock_client/src/structs/info.rs | 23 - bedrock_client/src/structs/mod.rs | 40 - bedrock_client/src/structs/signature.rs | 53 - bedrock_client/src/structs/tx.rs | 9 - indexer/Cargo.toml | 19 - indexer/src/client/mod.rs | 0 indexer/src/lib.rs | 1 - 13 files changed, 1578 insertions(+), 714 deletions(-) delete mode 100644 bedrock_client/src/paths.rs delete mode 100644 bedrock_client/src/structs/header_id.rs delete mode 100644 bedrock_client/src/structs/info.rs delete mode 100644 bedrock_client/src/structs/mod.rs delete mode 100644 bedrock_client/src/structs/signature.rs delete mode 100644 bedrock_client/src/structs/tx.rs delete mode 100644 indexer/Cargo.toml delete mode 100644 indexer/src/client/mod.rs delete mode 100644 indexer/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index e58d4e0e..0b1b7717 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -69,7 +69,7 @@ dependencies = [ "actix-rt", "actix-service", "actix-utils", - "base64 0.22.1", + "base64", "bitflags 2.10.0", "bytes", "bytestring", @@ -77,7 +77,7 @@ dependencies = [ "encoding_rs", "foldhash", "futures-core", - "h2", + "h2 0.3.27", "http 0.2.12", "httparse", "httpdate", @@ -236,7 +236,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" dependencies = [ "crypto-common", - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -367,16 +367,66 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +[[package]] +name = "archery" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e0a5f99dfebb87bb342d0f53bb92c81842e100bbb915223e38349580e5441d" +dependencies = [ + "triomphe", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-std 0.4.0", +] + [[package]] name = "ark-bn254" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" dependencies = [ - "ark-ec", - "ark-ff", + "ark-ec 0.5.0", + "ark-ff 0.5.0", "ark-r1cs-std", - "ark-std", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-relations 0.4.0", + "ark-serialize 0.4.2", + "ark-snark 0.4.0", + "ark-std 0.4.0", + "blake2", + "derivative", + "digest", + "sha2", ] [[package]] @@ -387,12 +437,12 @@ checksum = "1e0c292754729c8a190e50414fd1a37093c786c709899f29c9f7daccecfa855e" dependencies = [ "ahash 0.8.12", "ark-crypto-primitives-macros", - "ark-ec", - "ark-ff", - "ark-relations", - "ark-serialize", - "ark-snark", - "ark-std", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-relations 0.5.1", + "ark-serialize 0.5.0", + "ark-snark 0.5.1", + "ark-std 0.5.0", "blake2", "derivative", "digest", @@ -412,6 +462,23 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ec" version = "0.5.0" @@ -419,10 +486,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" dependencies = [ "ahash 0.8.12", - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", "educe", "fnv", "hashbrown 0.15.5", @@ -433,16 +500,36 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", "arrayvec", "digest", "educe", @@ -453,6 +540,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "ark-ff-asm" version = "0.5.0" @@ -463,6 +560,19 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "ark-ff-macros" version = "0.5.0" @@ -476,19 +586,47 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-relations 0.4.0", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + [[package]] name = "ark-groth16" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88f1d0f3a534bb54188b8dcc104307db6c56cdae574ddc3212aec0625740fc7e" dependencies = [ - "ark-crypto-primitives", - "ark-ec", - "ark-ff", - "ark-poly", - "ark-relations", - "ark-serialize", - "ark-std", + "ark-crypto-primitives 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-relations 0.5.1", + "ark-serialize 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", ] [[package]] @@ -498,24 +636,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" dependencies = [ "ahash 0.8.12", - "ark-ff", - "ark-serialize", - "ark-std", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", "educe", "fnv", "hashbrown 0.15.5", ] +[[package]] +name = "ark-poly-commit" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a741492629ffcd228337676dc223a28551aa6792eedb8a2a22c767f00df6c89" +dependencies = [ + "ark-crypto-primitives 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-relations 0.4.0", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest", +] + [[package]] name = "ark-r1cs-std" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "941551ef1df4c7a401de7068758db6503598e6f01850bdb2cfdb614a1f9dbea1" dependencies = [ - "ark-ec", - "ark-ff", - "ark-relations", - "ark-std", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-relations 0.5.1", + "ark-std 0.5.0", "educe", "num-bigint", "num-integer", @@ -523,31 +678,66 @@ dependencies = [ "tracing", ] +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "tracing", + "tracing-subscriber", +] + [[package]] name = "ark-relations" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec46ddc93e7af44bcab5230937635b06fb5744464dd6a7e7b083e80ebd274384" dependencies = [ - "ark-ff", - "ark-std", + "ark-ff 0.5.0", + "ark-std 0.5.0", "tracing", "tracing-subscriber", ] +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest", + "num-bigint", +] + [[package]] name = "ark-serialize" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" dependencies = [ - "ark-serialize-derive", - "ark-std", + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", "arrayvec", "digest", "num-bigint", ] +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "ark-serialize-derive" version = "0.5.0" @@ -559,16 +749,38 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff 0.4.2", + "ark-relations 0.4.0", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + [[package]] name = "ark-snark" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d368e2848c2d4c129ce7679a7d0d2d612b6a274d3ea6a13bad4445d61b381b88" dependencies = [ - "ark-ff", - "ark-relations", - "ark-serialize", - "ark-std", + "ark-ff 0.5.0", + "ark-relations 0.5.1", + "ark-serialize 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", ] [[package]] @@ -587,6 +799,12 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d902e3d592a523def97af8f317b08ce16b7ab854c1985a0c671e6f15cebc236" +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + [[package]] name = "arrayvec" version = "0.7.6" @@ -615,6 +833,17 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "atomic-waker" version = "1.1.2" @@ -627,24 +856,89 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +[[package]] +name = "axum" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http 1.4.0", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower 0.5.2", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.4.0", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + [[package]] name = "base16ct" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base256emoji" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e9430d9a245a77c92176e649af6e275f20839a48389859d1661e9a128d077c" +dependencies = [ + "const-str", + "match-lookup", +] + [[package]] name = "base58" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -662,15 +956,13 @@ name = "bedrock_client" version = "0.1.0" dependencies = [ "anyhow", - "const-hex", - "ed25519-dalek", + "common-http-client", "futures", "log", - "reqwest 0.11.27", + "reqwest", "serde", "serde_json", - "serde_with", - "thiserror", + "thiserror 2.0.17", "url", ] @@ -767,7 +1059,19 @@ version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "generic-array", + "generic-array 0.14.7", +] + +[[package]] +name = "blst" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", ] [[package]] @@ -778,9 +1082,9 @@ checksum = "21055e2f49cbbdbfe9f8f96d597c5527b0c6ab7933341fdc2f147180e48a988e" dependencies = [ "duplicate", "maybe-async", - "reqwest 0.12.26", + "reqwest", "serde", - "thiserror", + "thiserror 2.0.17", ] [[package]] @@ -806,6 +1110,31 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "broadcast-service" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "async-trait", + "derivative", + "futures", + "nomos-core", + "overwatch", + "serde", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] + [[package]] name = "bumpalo" version = "3.19.1" @@ -895,7 +1224,7 @@ dependencies = [ "semver", "serde", "serde_json", - "thiserror", + "thiserror 2.0.17", ] [[package]] @@ -916,7 +1245,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ - "nom", + "nom 7.1.3", ] [[package]] @@ -931,6 +1260,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "cfg_eval" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45565fc9416b9896014f5732ac776f810ee53a66730c17e4020c3ec064a8f88f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "chacha20" version = "0.9.1" @@ -942,6 +1282,35 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "chain-service" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "async-trait", + "broadcast-service", + "bytes", + "cryptarchia-engine", + "cryptarchia-sync", + "futures", + "groth16", + "nomos-core", + "nomos-ledger", + "nomos-network", + "nomos-storage", + "nomos-utils", + "num-bigint", + "overwatch", + "serde", + "serde_with", + "services-utils", + "strum", + "thiserror 1.0.69", + "tokio", + "tracing", + "tracing-futures", +] + [[package]] name = "chrono" version = "0.4.42" @@ -966,6 +1335,23 @@ dependencies = [ "inout", ] +[[package]] +name = "circuits-prover" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "circuits-utils", + "tempfile", +] + +[[package]] +name = "circuits-utils" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "dirs", +] + [[package]] name = "clang-sys" version = "1.8.1" @@ -1023,7 +1409,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror", + "thiserror 2.0.17", ] [[package]] @@ -1037,17 +1423,35 @@ name = "common" version = "0.1.0" dependencies = [ "anyhow", - "base64 0.22.1", + "base64", "borsh", "hex", "log", "nssa", "nssa_core", - "reqwest 0.11.27", + "reqwest", "serde", "serde_json", "sha2", - "thiserror", + "thiserror 2.0.17", +] + +[[package]] +name = "common-http-client" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "broadcast-service", + "chain-service", + "futures", + "nomos-core", + "nomos-da-messages", + "nomos-http-api-common", + "reqwest", + "serde", + "serde_json", + "thiserror 1.0.69", + "url", ] [[package]] @@ -1081,12 +1485,27 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "const-str" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f421161cb492475f1661ddc9815a745a1c894592070661180fdec3d4872e9c3" + [[package]] name = "convert_case" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "convert_case" version = "0.10.0" @@ -1123,6 +1542,15 @@ dependencies = [ "libc", ] +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + [[package]] name = "cpufeatures" version = "0.2.17" @@ -1147,13 +1575,50 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "cryptarchia-engine" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "cfg_eval", + "nomos-utils", + "serde", + "serde_with", + "thiserror 1.0.69", + "time", + "tracing", +] + +[[package]] +name = "cryptarchia-sync" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "bytes", + "cryptarchia-engine", + "futures", + "nomos-core", + "rand 0.8.5", + "serde", + "serde_with", + "thiserror 1.0.69", + "tokio", + "tracing", +] + [[package]] name = "crypto-bigint" version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ - "generic-array", + "generic-array 0.14.7", "rand_core 0.6.4", "subtle", "zeroize", @@ -1165,7 +1630,7 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" dependencies = [ - "generic-array", + "generic-array 0.14.7", "rand_core 0.6.4", "typenum", ] @@ -1191,6 +1656,7 @@ dependencies = [ "digest", "fiat-crypto", "rustc_version", + "serde", "subtle", "zeroize", ] @@ -1276,6 +1742,45 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + +[[package]] +name = "data-encoding-macro" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47ce6c96ea0102f01122a185683611bd5ac8d99e62bc59dd12e6bda344ee673d" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + [[package]] name = "der" version = "0.7.10" @@ -1522,7 +2027,7 @@ dependencies = [ "crypto-bigint", "digest", "ff", - "generic-array", + "generic-array 0.14.7", "group", "pem-rfc7468", "pkcs8", @@ -1717,6 +2222,16 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "forwarded-header-value" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835f84f38484cc86f110a805655697908257fb9a7af005234060891557198e9" +dependencies = [ + "nonempty", + "thiserror 1.0.69", +] + [[package]] name = "futures" version = "0.3.31" @@ -1788,6 +2303,12 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" + [[package]] name = "futures-util" version = "0.3.31" @@ -1817,6 +2338,17 @@ dependencies = [ "zeroize", ] +[[package]] +name = "generic-array" +version = "1.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaf57c49a95fd1fe24b90b3033bee6dc7e8f1288d51494cb44e627c295e38542" +dependencies = [ + "rustversion", + "serde_core", + "typenum", +] + [[package]] name = "getrandom" version = "0.2.16" @@ -1860,6 +2392,44 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot", + "portable-atomic", + "quanta", + "rand 0.8.5", + "smallvec", + "spinning_top", +] + +[[package]] +name = "groth16" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-groth16 0.4.0", + "ark-serialize 0.4.2", + "generic-array 1.3.5", + "hex", + "num-bigint", + "serde", + "serde_json", + "thiserror 2.0.17", +] + [[package]] name = "group" version = "0.13.0" @@ -1890,12 +2460,46 @@ dependencies = [ "tracing", ] +[[package]] +name = "h2" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.4.0", + "indexmap 2.12.1", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.12", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + [[package]] name = "hashbrown" version = "0.15.5" @@ -1960,6 +2564,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e712f64ec3850b98572bffac52e2c6f282b29fe6c5fa6d42334b30be438d95c1" +[[package]] +name = "hkdf" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" +dependencies = [ + "hmac", +] + [[package]] name = "hmac" version = "0.12.1" @@ -1996,17 +2609,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -2026,7 +2628,7 @@ dependencies = [ "bytes", "futures-core", "http 1.4.0", - "http-body 1.0.1", + "http-body", "pin-project-lite", ] @@ -2048,30 +2650,6 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.10", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.8.1" @@ -2082,9 +2660,11 @@ dependencies = [ "bytes", "futures-channel", "futures-core", + "h2 0.4.13", "http 1.4.0", - "http-body 1.0.1", + "http-body", "httparse", + "httpdate", "itoa", "pin-project-lite", "pin-utils", @@ -2100,7 +2680,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http 1.4.0", - "hyper 1.8.1", + "hyper", "hyper-util", "rustls", "rustls-pki-types", @@ -2112,15 +2692,18 @@ dependencies = [ [[package]] name = "hyper-tls" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", - "hyper 0.14.32", + "http-body-util", + "hyper", + "hyper-util", "native-tls", "tokio", "tokio-native-tls", + "tower-service", ] [[package]] @@ -2129,22 +2712,24 @@ version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-channel", "futures-core", "futures-util", "http 1.4.0", - "http-body 1.0.1", - "hyper 1.8.1", + "http-body", + "hyper", "ipnet", "libc", "percent-encoding", "pin-project-lite", "socket2 0.6.1", + "system-configuration", "tokio", "tower-service", "tracing", + "windows-registry", ] [[package]] @@ -2285,22 +2870,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ee796ad498c8d9a1d68e477df8f754ed784ef875de1414ebdaf169f70a6a784" -[[package]] -name = "indexer" -version = "0.1.0" -dependencies = [ - "anyhow", - "base58", - "common", - "futures", - "log", - "nssa", - "nssa_core", - "serde", - "storage", - "tokio", -] - [[package]] name = "indexmap" version = "1.9.3" @@ -2344,7 +2913,7 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ - "generic-array", + "generic-array 0.14.7", ] [[package]] @@ -2354,7 +2923,7 @@ dependencies = [ "actix", "actix-web", "anyhow", - "base64 0.22.1", + "base64", "borsh", "clap", "common", @@ -2405,6 +2974,24 @@ version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.13.0" @@ -2429,6 +3016,31 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jf-crhf" +version = "0.1.1" +source = "git+https://github.com/EspressoSystems/jellyfish?tag=jf-crhf-v0.1.1#8f3dce0bc2bd161b4648f6ac029dcc1a23aaf4c5" +dependencies = [ + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "jf-poseidon2" +version = "0.1.0" +source = "git+https://github.com/EspressoSystems/jellyfish.git?rev=dc166cf0f803c3e5067f9dfcc21e3dade986a447#dc166cf0f803c3e5067f9dfcc21e3dade986a447" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "ark-std 0.4.0", + "displaydoc", + "hex", + "jf-crhf", + "lazy_static", + "nimue", + "zeroize", +] + [[package]] name = "jobserver" version = "0.1.34" @@ -2473,6 +3085,41 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "key-management-system-keys" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "async-trait", + "bytes", + "ed25519-dalek", + "generic-array 1.3.5", + "groth16", + "key-management-system-macros", + "nomos-blend-proofs", + "nomos-utils", + "num-bigint", + "poseidon2", + "rand_core 0.6.4", + "serde", + "subtle", + "thiserror 2.0.17", + "tokio", + "tracing", + "zeroize", + "zksign", +] + +[[package]] +name = "key-management-system-macros" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "key_protocol" version = "0.1.0" @@ -2491,7 +3138,42 @@ dependencies = [ "rand 0.8.5", "serde", "sha2", - "thiserror", + "thiserror 2.0.17", +] + +[[package]] +name = "kzgrs" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "ark-bls12-381", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-poly-commit", + "ark-serialize 0.4.2", + "blake2", + "blst", + "num-bigint", + "num-traits", + "rand 0.8.5", + "thiserror 1.0.69", +] + +[[package]] +name = "kzgrs-backend" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "blake2", + "itertools 0.12.1", + "kzgrs", + "nomos-core", + "rand 0.8.5", + "serde", ] [[package]] @@ -2554,6 +3236,21 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +[[package]] +name = "libp2p-identity" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c7892c221730ba55f7196e98b0b8ba5e04b4155651736036628e9f73ed6fc3" +dependencies = [ + "bs58", + "hkdf", + "multihash", + "serde", + "sha2", + "thiserror 2.0.17", + "tracing", +] + [[package]] name = "libredox" version = "0.1.11" @@ -2588,6 +3285,18 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "light-poseidon" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a1ccadd0bb5a32c196da536fd72c59183de24a055f6bf0513bf845fefab862" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "num-bigint", + "thiserror 1.0.69", +] + [[package]] name = "linux-raw-sys" version = "0.11.0" @@ -2647,6 +3356,23 @@ dependencies = [ "libc", ] +[[package]] +name = "match-lookup" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1265724d8cb29dbbc2b0f06fffb8bf1a8c0cf73a78eede9ba73a4a66c52a981e" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "maybe-async" version = "0.2.10" @@ -2722,6 +3448,58 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "mmr" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "ark-ff 0.4.2", + "groth16", + "poseidon2", + "rpds", + "serde", +] + +[[package]] +name = "multiaddr" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe6351f60b488e04c1d21bc69e56b89cb3f5e8f5d22557d6e8031bdfd79b6961" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "libp2p-identity", + "multibase", + "multihash", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", +] + +[[package]] +name = "multibase" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8694bb4835f452b0e3bb06dbebb1d6fc5385b6ca1caf2e55fd165c042390ec77" +dependencies = [ + "base-x", + "base256emoji", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.19.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b430e7953c29dd6a09afc29ff0bb69c6e306329ee6794700aee27b76a1aea8d" +dependencies = [ + "core2", + "unsigned-varint", +] + [[package]] name = "native-tls" version = "0.2.14" @@ -2739,6 +3517,30 @@ dependencies = [ "tempfile", ] +[[package]] +name = "nimue" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0dc7d3b2b7bd112c0cecf7d6f4f16a174ee7a98e27615b1d08256d0176588f2" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "digest", + "generic-array 0.14.7", + "hex", + "keccak", + "log", + "rand 0.8.5", + "zeroize", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + [[package]] name = "no_std_strings" version = "0.1.3" @@ -2755,6 +3557,215 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nom" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df9761775871bdef83bee530e60050f7e54b1105350d6884eb0fb4f46c2f9405" +dependencies = [ + "memchr", +] + +[[package]] +name = "nomos-blend-crypto" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "blake2", + "groth16", + "nomos-utils", + "poq", + "poseidon2", + "rs-merkle-tree", + "serde", + "subtle", + "thiserror 1.0.69", + "x25519-dalek", + "zeroize", +] + +[[package]] +name = "nomos-blend-message" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "blake2", + "derivative", + "groth16", + "itertools 0.14.0", + "key-management-system-keys", + "nomos-blend-crypto", + "nomos-blend-proofs", + "nomos-core", + "nomos-utils", + "serde", + "serde-big-array", + "serde_with", + "thiserror 1.0.69", + "tracing", + "zeroize", +] + +[[package]] +name = "nomos-blend-proofs" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "ed25519-dalek", + "generic-array 1.3.5", + "groth16", + "nomos-blend-crypto", + "num-bigint", + "poq", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "nomos-core" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "ark-ff 0.4.2", + "async-trait", + "bincode", + "blake2", + "bytes", + "const-hex", + "cryptarchia-engine", + "futures", + "generic-array 1.3.5", + "groth16", + "hex", + "key-management-system-keys", + "multiaddr", + "nom 8.0.0", + "nomos-blend-proofs", + "nomos-utils", + "num-bigint", + "pol", + "poseidon2", + "serde", + "strum", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "nomos-da-messages" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "blake2", + "futures", + "kzgrs-backend", + "nomos-core", + "serde", + "tokio", +] + +[[package]] +name = "nomos-http-api-common" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "axum", + "governor", + "key-management-system-keys", + "nomos-core", + "serde", + "serde_json", + "serde_with", + "tower_governor", +] + +[[package]] +name = "nomos-ledger" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "cryptarchia-engine", + "groth16", + "key-management-system-keys", + "mmr", + "nomos-blend-crypto", + "nomos-blend-message", + "nomos-blend-proofs", + "nomos-core", + "nomos-utils", + "num-bigint", + "rand 0.8.5", + "rpds", + "serde", + "thiserror 1.0.69", + "tracing", + "utxotree", +] + +[[package]] +name = "nomos-network" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "async-trait", + "cryptarchia-sync", + "futures", + "nomos-core", + "overwatch", + "serde", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "nomos-storage" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "async-trait", + "bytes", + "cryptarchia-engine", + "futures", + "libp2p-identity", + "multiaddr", + "nomos-core", + "overwatch", + "serde", + "thiserror 1.0.69", + "tokio", + "tracing", +] + +[[package]] +name = "nomos-utils" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "async-trait", + "blake2", + "cipher", + "const-hex", + "humantime", + "overwatch", + "rand 0.8.5", + "serde", + "serde_with", + "time", +] + +[[package]] +name = "nonempty" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9e591e719385e6ebaeb5ce5d3887f7d5676fceca6411d1925ccc95745f3d6f7" + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + [[package]] name = "nssa" version = "0.1.0" @@ -2774,7 +3785,7 @@ dependencies = [ "serde", "sha2", "test_program_methods", - "thiserror", + "thiserror 2.0.17", ] [[package]] @@ -2790,7 +3801,7 @@ dependencies = [ "risc0-zkvm", "serde", "serde_json", - "thiserror", + "thiserror 2.0.17", ] [[package]] @@ -2855,6 +3866,16 @@ dependencies = [ "libm", ] +[[package]] +name = "num_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + [[package]] name = "num_enum" version = "0.7.5" @@ -2953,6 +3974,33 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "overwatch" +version = "0.1.0" +source = "git+https://github.com/logos-co/Overwatch?rev=f5a9902#f5a99022f389d65adbd55e51f1e3f9eead62432a" +dependencies = [ + "async-trait", + "futures", + "overwatch-derive", + "thiserror 2.0.17", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", +] + +[[package]] +name = "overwatch-derive" +version = "0.1.0" +source = "git+https://github.com/logos-co/Overwatch?rev=f5a9902#f5a99022f389d65adbd55e51f1e3f9eead62432a" +dependencies = [ + "convert_case 0.8.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "parking_lot" version = "0.12.5" @@ -2997,6 +4045,26 @@ version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "pin-project-lite" version = "0.2.16" @@ -3036,6 +4104,22 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "pol" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "circuits-prover", + "circuits-utils", + "groth16", + "num-bigint", + "num-traits", + "serde", + "serde_json", + "thiserror 2.0.17", + "witness-generator", +] + [[package]] name = "polyval" version = "0.6.2" @@ -3048,12 +4132,39 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "poq" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "circuits-prover", + "circuits-utils", + "groth16", + "num-bigint", + "pol", + "serde", + "serde_json", + "thiserror 2.0.17", + "witness-generator", +] + [[package]] name = "portable-atomic" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +[[package]] +name = "poseidon2" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "ark-bn254 0.4.0", + "ark-ff 0.4.2", + "jf-poseidon2", + "num-bigint", +] + [[package]] name = "postcard" version = "1.1.3" @@ -3099,6 +4210,28 @@ dependencies = [ "toml_edit 0.23.10+spec-1.0.0", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "proc-macro2" version = "1.0.103" @@ -3188,6 +4321,21 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "quanta" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi", + "web-sys", + "winapi", +] + [[package]] name = "quinn" version = "0.11.9" @@ -3202,7 +4350,7 @@ dependencies = [ "rustc-hash", "rustls", "socket2 0.6.1", - "thiserror", + "thiserror 2.0.17", "tokio", "tracing", "web-time", @@ -3223,7 +4371,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror", + "thiserror 2.0.17", "tinyvec", "tracing", "web-time", @@ -3326,6 +4474,15 @@ dependencies = [ "rand_core 0.9.3", ] +[[package]] +name = "raw-cpuid" +version = "11.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498cd0dc59d73224351ee52a95fee0f1a617a2eae0e7d9d720cc622c73a54186" +dependencies = [ + "bitflags 2.10.0", +] + [[package]] name = "redox_syscall" version = "0.5.18" @@ -3343,7 +4500,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror", + "thiserror 2.0.17", ] [[package]] @@ -3401,65 +4558,30 @@ version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - [[package]] name = "reqwest" version = "0.12.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b4c14b2d9afca6a60277086b0cc6a6ae0b568f6f7916c943a8cdc79f8be240f" dependencies = [ - "base64 0.22.1", + "base64", "bytes", + "encoding_rs", "futures-channel", "futures-core", "futures-util", + "h2 0.4.13", "http 1.4.0", - "http-body 1.0.1", + "http-body", "http-body-util", - "hyper 1.8.1", + "hyper", "hyper-rustls", + "hyper-tls", "hyper-util", "js-sys", "log", + "mime", + "native-tls", "percent-encoding", "pin-project-lite", "quinn", @@ -3468,11 +4590,12 @@ dependencies = [ "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", + "tokio-native-tls", "tokio-rustls", "tokio-util", - "tower", + "tower 0.5.2", "tower-http", "tower-service", "url", @@ -3619,11 +4742,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73ff13f9b427254c5264e01aaa32e33f355525299b6829449295905778f3b1e8" dependencies = [ "anyhow", - "ark-bn254", - "ark-ec", - "ark-ff", - "ark-groth16", - "ark-serialize", + "ark-bn254 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-groth16 0.5.0", + "ark-serialize 0.5.0", "bytemuck", "hex", "num-bigint", @@ -3731,6 +4854,16 @@ dependencies = [ "librocksdb-sys", ] +[[package]] +name = "rpds" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e75f485e819d4d3015e6c0d55d02a4fd3db47c1993d9e603e0361fba2bffb34" +dependencies = [ + "archery", + "serde", +] + [[package]] name = "rrs-lib" version = "0.1.0" @@ -3741,6 +4874,25 @@ dependencies = [ "paste", ] +[[package]] +name = "rs-merkle-tree" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7a3ef170810c387d31b64c0b59734abb0839dac2a8d137909e271bfdec9b1e0" +dependencies = [ + "ark-bn254 0.5.0", + "ark-ff 0.5.0", + "byteorder", + "futures", + "light-poseidon", + "quote", + "rand 0.9.2", + "syn 1.0.109", + "thiserror 2.0.17", + "tiny-keccak", + "tokio", +] + [[package]] name = "rsa" version = "0.9.9" @@ -3825,15 +4977,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pki-types" version = "1.13.2" @@ -3881,7 +5024,7 @@ dependencies = [ "sha2", "strum", "tempfile", - "thiserror", + "thiserror 2.0.17", "toml", "yaml-rust2", ] @@ -3933,7 +5076,7 @@ checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct", "der", - "generic-array", + "generic-array 0.14.7", "pkcs8", "serdect", "subtle", @@ -4020,7 +5163,7 @@ dependencies = [ "actix-web", "anyhow", "base58", - "base64 0.22.1", + "base64", "borsh", "common", "futures", @@ -4063,6 +5206,15 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + [[package]] name = "serde_core" version = "1.0.228" @@ -4096,6 +5248,17 @@ dependencies = [ "serde_core", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" +dependencies = [ + "itoa", + "serde", + "serde_core", +] + [[package]] name = "serde_spanned" version = "0.6.9" @@ -4123,7 +5286,7 @@ version = "3.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" dependencies = [ - "base64 0.22.1", + "base64", "chrono", "hex", "indexmap 1.9.3", @@ -4158,6 +5321,21 @@ dependencies = [ "serde", ] +[[package]] +name = "services-utils" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "async-trait", + "futures", + "log", + "overwatch", + "serde", + "serde_json", + "thiserror 1.0.69", + "tracing", +] + [[package]] name = "sha1" version = "0.10.6" @@ -4253,6 +5431,15 @@ version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + [[package]] name = "spki" version = "0.7.3" @@ -4279,6 +5466,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + [[package]] name = "storage" version = "0.1.0" @@ -4286,7 +5479,7 @@ dependencies = [ "borsh", "common", "rocksdb", - "thiserror", + "thiserror 2.0.17", ] [[package]] @@ -4344,12 +5537,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - [[package]] name = "sync_wrapper" version = "1.0.2" @@ -4428,13 +5615,33 @@ dependencies = [ "risc0-zkvm", ] +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + [[package]] name = "thiserror" version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.17", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.111", ] [[package]] @@ -4448,6 +5655,15 @@ dependencies = [ "syn 2.0.111", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" version = "0.3.44" @@ -4479,6 +5695,15 @@ dependencies = [ "time-core", ] +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + [[package]] name = "tinystr" version = "0.8.2" @@ -4552,6 +5777,18 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-stream" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + [[package]] name = "tokio-util" version = "0.7.17" @@ -4636,6 +5873,17 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower" version = "0.5.2" @@ -4645,10 +5893,11 @@ dependencies = [ "futures-core", "futures-util", "pin-project-lite", - "sync_wrapper 1.0.2", + "sync_wrapper", "tokio", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -4661,10 +5910,10 @@ dependencies = [ "bytes", "futures-util", "http 1.4.0", - "http-body 1.0.1", + "http-body", "iri-string", "pin-project-lite", - "tower", + "tower 0.5.2", "tower-layer", "tower-service", ] @@ -4681,6 +5930,22 @@ version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" +[[package]] +name = "tower_governor" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3790eac6ad3fb8d9d96c2b040ae06e2517aa24b067545d1078b96ae72f7bb9a7" +dependencies = [ + "axum", + "forwarded-header-value", + "governor", + "http 1.4.0", + "pin-project", + "thiserror 1.0.69", + "tower 0.4.13", + "tracing", +] + [[package]] name = "tracing" version = "0.1.43" @@ -4714,6 +5979,16 @@ dependencies = [ "valuable", ] +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "tracing-subscriber" version = "0.2.25" @@ -4723,6 +5998,12 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "triomphe" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" + [[package]] name = "try-lock" version = "0.2.5" @@ -4790,6 +6071,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "unsigned-varint" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb066959b24b5196ae73cb057f45598450d2c5f71460e98c49b738086eff9c06" + [[package]] name = "untrusted" version = "0.9.0" @@ -4820,6 +6107,20 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "utxotree" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "ark-ff 0.4.2", + "groth16", + "num-bigint", + "poseidon2", + "rpds", + "serde", + "thiserror 1.0.69", +] + [[package]] name = "valuable" version = "0.1.1" @@ -4845,7 +6146,7 @@ dependencies = [ "anyhow", "async-stream", "base58", - "base64 0.22.1", + "base64", "borsh", "bytemuck", "clap", @@ -5063,6 +6364,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link", + "windows-result", + "windows-strings", +] + [[package]] name = "windows-result" version = "0.4.1" @@ -5081,15 +6393,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - [[package]] name = "windows-sys" version = "0.52.0" @@ -5117,21 +6420,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -5165,12 +6453,6 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -5183,12 +6465,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -5201,12 +6477,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -5231,12 +6501,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -5249,12 +6513,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -5267,12 +6525,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -5285,12 +6537,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -5312,28 +6558,39 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "wit-bindgen" version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +[[package]] +name = "witness-generator" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "circuits-utils", + "tempfile", +] + [[package]] name = "writeable" version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +[[package]] +name = "x25519-dalek" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +dependencies = [ + "curve25519-dalek", + "rand_core 0.6.4", + "serde", + "zeroize", +] + [[package]] name = "yaml-rust2" version = "0.10.4" @@ -5461,3 +6718,19 @@ dependencies = [ "quote", "syn 2.0.111", ] + +[[package]] +name = "zksign" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +dependencies = [ + "circuits-prover", + "circuits-utils", + "groth16", + "num-bigint", + "poseidon2", + "serde", + "serde_json", + "thiserror 2.0.17", + "witness-generator", +] diff --git a/Cargo.toml b/Cargo.toml index 92e3b7d6..431cc2d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,8 @@ members = [ "integration_tests/proc_macro_test_attribute", "examples/program_deployment", "examples/program_deployment/methods", - "examples/program_deployment/methods/guest", "indexer", "bedrock_client", + "examples/program_deployment/methods/guest", + "bedrock_client", ] [workspace.dependencies] @@ -77,9 +78,8 @@ borsh = "1.5.7" base58 = "0.2.0" itertools = "0.14.0" url = "2.5.4" -const-hex = { default-features = false, features = ["alloc"], version = "1" } -serde_with = { default-features = false, version = "3.14.0" } -ed25519-dalek = { default-features = false, version = "2" } + +common-http-client = { git = "https://github.com/logos-blockchain/logos-blockchain.git", branch = "marbella-offsite-2025-12" } rocksdb = { version = "0.24.0", default-features = false, features = [ "snappy", @@ -98,4 +98,4 @@ actix-web = { version = "=4.1.0", default-features = false, features = [ "macros", ] } clap = { version = "4.5.42", features = ["derive", "env"] } -reqwest = { version = "0.11.16", features = ["json"] } +reqwest = { version = "0.12", features = ["json", "rustls-tls", "stream"] } diff --git a/bedrock_client/Cargo.toml b/bedrock_client/Cargo.toml index bc0f9277..8ac9b73b 100644 --- a/bedrock_client/Cargo.toml +++ b/bedrock_client/Cargo.toml @@ -12,6 +12,4 @@ thiserror.workspace = true url.workspace = true futures.workspace = true serde_json.workspace = true -const-hex.workspace = true -serde_with.workspace = true -ed25519-dalek = { workspace = true, features = ["rand_core", "serde", "zeroize"] } +common-http-client.workspace = true \ No newline at end of file diff --git a/bedrock_client/src/lib.rs b/bedrock_client/src/lib.rs index d3d4fbb1..177e9e35 100644 --- a/bedrock_client/src/lib.rs +++ b/bedrock_client/src/lib.rs @@ -1,174 +1,21 @@ -//A copy of http-client from logos-blockchain -//ToDo: replace with dependency +use anyhow::Result; +use common_http_client::CommonHttpClient; +pub use common_http_client::BasicAuthCredentials; +pub use common_http_client::Error; +use reqwest::Client; -use std::{fmt::Debug, sync::Arc}; -use reqwest::{Client, ClientBuilder, RequestBuilder, StatusCode, Url}; -use serde::{Serialize, de::DeserializeOwned}; -use futures::{Stream, StreamExt as _}; +// Simple wrapper +// maybe extend in the future for our purposes +pub struct BedrockClient(pub CommonHttpClient); -pub mod paths; -pub mod structs; +impl BedrockClient { + pub fn new(auth: Option) -> Result { + let client = Client::builder() + //Add more fiedls if needed + .timeout(std::time::Duration::from_secs(60)) + .build()?; -use nomos_core::{mantle::SignedMantleTx}; - -use crate::{paths::{CRYPTARCHIA_INFO, CRYPTARCHIA_LIB_STREAM, STORAGE_BLOCK}, structs::{Block, BlockInfo, info::CryptarchiaInfo}}; - -#[derive(thiserror::Error, Debug)] -pub enum Error { - #[error("Internal server error: {0}")] - Server(String), - #[error("Failed to execute request: {0}")] - Client(String), - #[error(transparent)] - Request(#[from] reqwest::Error), - #[error(transparent)] - Url(#[from] url::ParseError), -} - -#[derive(Clone)] -pub struct BasicAuthCredentials { - username: String, - password: Option, -} - -impl BasicAuthCredentials { - #[must_use] - pub const fn new(username: String, password: Option) -> Self { - Self { username, password } + Ok(BedrockClient(CommonHttpClient::new_with_client(client, auth))) } } -#[derive(Clone)] -pub struct CommonHttpClient { - client: Arc, - basic_auth: Option, -} - -impl CommonHttpClient { - #[must_use] - pub fn new(basic_auth: Option) -> Self { - let client = ClientBuilder::new() - .build() - .expect("Client from default settings should be able to build"); - Self { - client: Arc::new(client), - basic_auth, - } - } - - #[must_use] - pub fn new_with_client(client: Client, basic_auth: Option) -> Self { - Self { - client: Arc::new(client), - basic_auth, - } - } - - pub async fn post(&self, request_url: Url, request_body: &Req) -> Result - where - Req: Serialize + ?Sized + Send + Sync, - Res: DeserializeOwned + Send + Sync, - { - let request = self.client.post(request_url).json(request_body); - self.execute_request::(request).await - } - - pub async fn get( - &self, - request_url: Url, - request_body: Option<&Req>, - ) -> Result - where - Req: Serialize + ?Sized + Send + Sync, - Res: DeserializeOwned + Send + Sync, - { - let mut request = self.client.get(request_url); - if let Some(request_body) = request_body { - request = request.json(request_body); - } - self.execute_request::(request).await - } - - async fn execute_request( - &self, - mut request: RequestBuilder, - ) -> Result { - if let Some(basic_auth) = &self.basic_auth { - request = request.basic_auth(&basic_auth.username, basic_auth.password.as_deref()); - } - - let response = request.send().await.map_err(Error::Request)?; - let status = response.status(); - let body = response.text().await.map_err(Error::Request)?; - - match status { - StatusCode::OK => serde_json::from_str(&body) - .map_err(|e| Error::Server(format!("Failed to parse response: {e}"))), - StatusCode::INTERNAL_SERVER_ERROR => Err(Error::Server(body)), - _ => Err(Error::Server(format!( - "Unexpected response [{status}]: {body}", - ))), - } - } - - pub async fn get_lib_stream( - &self, - base_url: Url, - ) -> Result, Error> { - let request_url = base_url - .join(CRYPTARCHIA_LIB_STREAM.trim_start_matches('/')) - .map_err(Error::Url)?; - let mut request = self.client.get(request_url); - - if let Some(basic_auth) = &self.basic_auth { - request = request.basic_auth(&basic_auth.username, basic_auth.password.as_deref()); - } - - let response = request.send().await.map_err(Error::Request)?; - let status = response.status(); - - let lib_stream = response.bytes_stream().filter_map(async |item| { - let bytes = item.ok()?; - serde_json::from_slice::(&bytes).ok() - }); - match status { - StatusCode::OK => Ok(lib_stream), - StatusCode::INTERNAL_SERVER_ERROR => Err(Error::Server("Error".to_owned())), - _ => Err(Error::Server(format!("Unexpected response [{status}]",))), - } - } - - pub async fn get_block_by_id( - &self, - base_url: Url, - header_id: HeaderId, - ) -> Result>, Error> - where - HeaderId: Serialize + Send + Sync, - { - let request_url = base_url - .join(STORAGE_BLOCK.trim_start_matches('/')) - .map_err(Error::Url)?; - self.post(request_url, &header_id).await - } - - /// Get consensus info (tip, height, etc.) - pub async fn consensus_info(&self, base_url: Url) -> Result { - let request_url = base_url - .join(CRYPTARCHIA_INFO.trim_start_matches('/')) - .map_err(Error::Url)?; - self.get::<(), CryptarchiaInfo>(request_url, None).await - } - - /// Get a block by its header ID - pub async fn get_block( - &self, - base_url: Url, - header_id: HeaderId, - ) -> Result>, Error> { - let request_url = base_url - .join(STORAGE_BLOCK.trim_start_matches('/')) - .map_err(Error::Url)?; - self.post(request_url, &header_id).await - } -} diff --git a/bedrock_client/src/paths.rs b/bedrock_client/src/paths.rs deleted file mode 100644 index 5149f4d3..00000000 --- a/bedrock_client/src/paths.rs +++ /dev/null @@ -1,6 +0,0 @@ -pub const CRYPTARCHIA_INFO: &str = "/cryptarchia/info"; -pub const CRYPTARCHIA_LIB_STREAM: &str = "/cryptarchia/lib-stream"; -pub const STORAGE_BLOCK: &str = "/storage/block"; - -pub const BLOCKS: &str = "/cryptarchia/blocks"; -pub const BLOCKS_STREAM: &str = "/cryptarchia/blocks/stream"; diff --git a/bedrock_client/src/structs/header_id.rs b/bedrock_client/src/structs/header_id.rs deleted file mode 100644 index 4b032bc4..00000000 --- a/bedrock_client/src/structs/header_id.rs +++ /dev/null @@ -1,103 +0,0 @@ -#[derive(Clone, Debug, Eq, PartialEq, Copy, Hash, PartialOrd, Ord)] -pub struct HeaderId([u8; 32]); - -#[derive(Debug, thiserror::Error)] -pub enum Error { - #[error("Invalid header id size: {0}")] - InvalidHeaderIdSize(usize), -} - -impl From<[u8; 32]> for HeaderId { - fn from(id: [u8; 32]) -> Self { - Self(id) - } -} - -impl From for [u8; 32] { - fn from(id: HeaderId) -> Self { - id.0 - } -} - -impl TryFrom<&[u8]> for HeaderId { - type Error = Error; - - fn try_from(slice: &[u8]) -> Result { - if slice.len() != 32 { - return Err(Error::InvalidHeaderIdSize(slice.len())); - } - let mut id = [0u8; 32]; - id.copy_from_slice(slice); - Ok(Self::from(id)) - } -} - -impl AsRef<[u8]> for HeaderId { - fn as_ref(&self) -> &[u8] { - &self.0 - } -} - -#[derive(Clone, Debug, Eq, PartialEq, Copy, Hash)] -pub struct ContentId([u8; 32]); - -impl From for [u8; 32] { - fn from(id: ContentId) -> Self { - id.0 - } -} - -macro_rules! display_hex_bytes_newtype { - ($newtype:ty) => { - impl core::fmt::Display for $newtype { - fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { - write!(f, "0x")?; - for v in self.0 { - write!(f, "{:02x}", v)?; - } - Ok(()) - } - } - }; -} - -macro_rules! serde_bytes_newtype { - ($newtype:ty, $len:expr) => { - impl serde::Serialize for $newtype { - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - if serializer.is_human_readable() { - const_hex::const_encode::<$len, false>(&self.0) - .as_str() - .serialize(serializer) - } else { - self.0.serialize(serializer) - } - } - } - - impl<'de> serde::Deserialize<'de> for $newtype { - fn deserialize(deserializer: D) -> Result<$newtype, D::Error> - where - D: serde::Deserializer<'de>, - { - if deserializer.is_human_readable() { - let s = ::deserialize(deserializer)?; - const_hex::decode_to_array(s) - .map(Self) - .map_err(serde::de::Error::custom) - } else { - <[u8; $len] as serde::Deserialize>::deserialize(deserializer).map(Self) - } - } - } - }; -} - -display_hex_bytes_newtype!(HeaderId); -display_hex_bytes_newtype!(ContentId); - -serde_bytes_newtype!(HeaderId, 32); -serde_bytes_newtype!(ContentId, 32); \ No newline at end of file diff --git a/bedrock_client/src/structs/info.rs b/bedrock_client/src/structs/info.rs deleted file mode 100644 index 3e33246b..00000000 --- a/bedrock_client/src/structs/info.rs +++ /dev/null @@ -1,23 +0,0 @@ -use serde::{Deserialize, Serialize}; -use serde_with::serde_as; - -use crate::structs::header_id::HeaderId; - -#[derive(Clone, Debug, Eq, PartialEq, Copy, Hash, PartialOrd, Ord, Serialize, Deserialize)] -pub struct Slot(u64); - -#[derive(Clone, Debug, Copy, PartialEq, Eq, Serialize, Deserialize)] -pub enum State { - Bootstrapping, - Online, -} - -#[serde_as] -#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] -pub struct CryptarchiaInfo { - pub lib: HeaderId, - pub tip: HeaderId, - pub slot: Slot, - pub height: u64, - pub mode: State, -} \ No newline at end of file diff --git a/bedrock_client/src/structs/mod.rs b/bedrock_client/src/structs/mod.rs deleted file mode 100644 index 36c2aab4..00000000 --- a/bedrock_client/src/structs/mod.rs +++ /dev/null @@ -1,40 +0,0 @@ -use ed25519_dalek::Signature; -use serde::{Deserialize, Serialize}; - -use crate::structs::{header_id::{ContentId, HeaderId}, info::Slot}; - -pub mod header_id; -pub mod info; -pub mod signature; -pub mod tx; - -#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)] -pub struct BlockInfo { - pub height: u64, - pub header_id: HeaderId, -} - -pub const BEDROCK_VERSION: u8 = 1; - -#[derive(Clone, Debug, Eq, PartialEq, Copy, Serialize, Deserialize)] -#[repr(u8)] -pub enum Version { - Bedrock = BEDROCK_VERSION, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Header { - version: Version, - parent_block: HeaderId, - slot: Slot, - block_root: ContentId, - // Not sure, if need this. - // proof_of_leadership: Groth16LeaderProof, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct Block { - header: Header, - signature: Signature, - transactions: Vec, -} \ No newline at end of file diff --git a/bedrock_client/src/structs/signature.rs b/bedrock_client/src/structs/signature.rs deleted file mode 100644 index 1075354b..00000000 --- a/bedrock_client/src/structs/signature.rs +++ /dev/null @@ -1,53 +0,0 @@ -use core::hash::{Hash, Hasher}; - -use ed25519_dalek::SIGNATURE_LENGTH; -use serde::{Deserialize, Serialize}; - -pub const SIGNATURE_SIZE: usize = SIGNATURE_LENGTH; - -#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)] -pub struct Signature(ed25519_dalek::Signature); - -impl Signature { - #[must_use] - pub fn from_bytes(bytes: &[u8; SIGNATURE_SIZE]) -> Self { - Self(ed25519_dalek::Signature::from_bytes(bytes)) - } - - #[must_use] - pub fn to_bytes(&self) -> [u8; SIGNATURE_SIZE] { - self.0.to_bytes() - } - - #[must_use] - pub const fn as_inner(&self) -> &ed25519_dalek::Signature { - &self.0 - } -} - -impl Hash for Signature { - fn hash(&self, state: &mut H) - where - H: Hasher, - { - self.0.to_bytes().hash(state); - } -} - -impl From for Signature { - fn from(sig: ed25519_dalek::Signature) -> Self { - Self(sig) - } -} - -impl From for ed25519_dalek::Signature { - fn from(sig: Signature) -> Self { - sig.0 - } -} - -impl From<[u8; SIGNATURE_SIZE]> for Signature { - fn from(bytes: [u8; SIGNATURE_SIZE]) -> Self { - Self::from_bytes(&bytes) - } -} diff --git a/bedrock_client/src/structs/tx.rs b/bedrock_client/src/structs/tx.rs deleted file mode 100644 index 16c083b0..00000000 --- a/bedrock_client/src/structs/tx.rs +++ /dev/null @@ -1,9 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Debug, Clone, PartialEq, Eq, Serialize)] -pub struct SignedMantleTx { - pub mantle_tx: MantleTx, - pub ops_proofs: Vec, - // Not sure, if we need this. - // ledger_tx_proof: ZkSignature, -} \ No newline at end of file diff --git a/indexer/Cargo.toml b/indexer/Cargo.toml deleted file mode 100644 index 4b93ad05..00000000 --- a/indexer/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "indexer" -version = "0.1.0" -edition = "2024" - -[dependencies] -nssa.workspace = true -nssa_core.workspace = true -common.workspace = true -storage.workspace = true - -base58.workspace = true -anyhow.workspace = true -serde.workspace = true -log.workspace = true - -[dev-dependencies] -tokio = { workspace = true, features = ["rt-multi-thread", "macros"] } -futures.workspace = true \ No newline at end of file diff --git a/indexer/src/client/mod.rs b/indexer/src/client/mod.rs deleted file mode 100644 index e69de29b..00000000 diff --git a/indexer/src/lib.rs b/indexer/src/lib.rs deleted file mode 100644 index 39355176..00000000 --- a/indexer/src/lib.rs +++ /dev/null @@ -1 +0,0 @@ -pub mod client; \ No newline at end of file From f400684d5980409346605e6d269c4f1883c26789 Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Thu, 8 Jan 2026 09:10:45 +0200 Subject: [PATCH 04/10] fix: fmt --- Cargo.toml | 2 +- bedrock_client/Cargo.toml | 2 +- bedrock_client/src/lib.rs | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 431cc2d8..35d0a408 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ members = [ "integration_tests/proc_macro_test_attribute", "examples/program_deployment", "examples/program_deployment/methods", - "examples/program_deployment/methods/guest", + "examples/program_deployment/methods/guest", "bedrock_client", ] diff --git a/bedrock_client/Cargo.toml b/bedrock_client/Cargo.toml index 8ac9b73b..5a93a1b0 100644 --- a/bedrock_client/Cargo.toml +++ b/bedrock_client/Cargo.toml @@ -12,4 +12,4 @@ thiserror.workspace = true url.workspace = true futures.workspace = true serde_json.workspace = true -common-http-client.workspace = true \ No newline at end of file +common-http-client.workspace = true diff --git a/bedrock_client/src/lib.rs b/bedrock_client/src/lib.rs index 177e9e35..9315f083 100644 --- a/bedrock_client/src/lib.rs +++ b/bedrock_client/src/lib.rs @@ -1,7 +1,6 @@ use anyhow::Result; use common_http_client::CommonHttpClient; -pub use common_http_client::BasicAuthCredentials; -pub use common_http_client::Error; +pub use common_http_client::{BasicAuthCredentials, Error}; use reqwest::Client; // Simple wrapper @@ -15,7 +14,8 @@ impl BedrockClient { .timeout(std::time::Duration::from_secs(60)) .build()?; - Ok(BedrockClient(CommonHttpClient::new_with_client(client, auth))) + Ok(BedrockClient(CommonHttpClient::new_with_client( + client, auth, + ))) } } - From 6b9eec61e5b38de7fb7ff9e8b5c817d24c69a01b Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Thu, 8 Jan 2026 09:26:11 +0200 Subject: [PATCH 05/10] fix: ci try 1 --- .../action.yml | 9 + .github/workflows/ci.yml | 10 + Cargo.lock | 6 - bedrock_client/Cargo.toml | 6 - ci_scripts/setup-nomos-circuits.sh | 203 ++++++++++++++++++ 5 files changed, 222 insertions(+), 12 deletions(-) create mode 100644 .github/actions/install-nomos-circuits-compatibility/action.yml create mode 100644 ci_scripts/setup-nomos-circuits.sh diff --git a/.github/actions/install-nomos-circuits-compatibility/action.yml b/.github/actions/install-nomos-circuits-compatibility/action.yml new file mode 100644 index 00000000..41f1e0cc --- /dev/null +++ b/.github/actions/install-nomos-circuits-compatibility/action.yml @@ -0,0 +1,9 @@ +name: Install Nomos circuits +description: Installs Nomos circuits for compatibility +runs: + using: "composite" + steps: + - name: Install risc0 + run: | + /home/runner/lssa/ci_scripts/setup-nomos-circuits.sh + shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 21c73d29..2a90d2ec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,6 +70,8 @@ jobs: - uses: ./.github/actions/install-risc0 + - uses: ./.github/actions/install-nomos-circuits-compatibility + - name: Install active toolchain run: rustup install @@ -95,6 +97,8 @@ jobs: - uses: ./.github/actions/install-risc0 + - uses: ./.github/actions/install-nomos-circuits-compatibility + - name: Install active toolchain run: rustup install @@ -118,6 +122,8 @@ jobs: - uses: ./.github/actions/install-risc0 + - uses: ./.github/actions/install-nomos-circuits-compatibility + - name: Install active toolchain run: rustup install @@ -139,6 +145,8 @@ jobs: - uses: ./.github/actions/install-risc0 + - uses: ./.github/actions/install-nomos-circuits-compatibility + - name: Install active toolchain run: rustup install @@ -161,6 +169,8 @@ jobs: - uses: ./.github/actions/install-risc0 + - uses: ./.github/actions/install-nomos-circuits-compatibility + - name: Install just run: cargo install just diff --git a/Cargo.lock b/Cargo.lock index 0b1b7717..df1c9ca6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -957,13 +957,7 @@ version = "0.1.0" dependencies = [ "anyhow", "common-http-client", - "futures", - "log", "reqwest", - "serde", - "serde_json", - "thiserror 2.0.17", - "url", ] [[package]] diff --git a/bedrock_client/Cargo.toml b/bedrock_client/Cargo.toml index 5a93a1b0..034a093e 100644 --- a/bedrock_client/Cargo.toml +++ b/bedrock_client/Cargo.toml @@ -6,10 +6,4 @@ edition = "2024" [dependencies] reqwest.workspace = true anyhow.workspace = true -serde.workspace = true -log.workspace = true -thiserror.workspace = true -url.workspace = true -futures.workspace = true -serde_json.workspace = true common-http-client.workspace = true diff --git a/ci_scripts/setup-nomos-circuits.sh b/ci_scripts/setup-nomos-circuits.sh new file mode 100644 index 00000000..151c42a4 --- /dev/null +++ b/ci_scripts/setup-nomos-circuits.sh @@ -0,0 +1,203 @@ +#!/bin/bash +# +# Setup script for nomos-circuits +# +# Usage: ./setup-nomos-circuits.sh [VERSION] [INSTALL_DIR] +# +# Arguments: +# VERSION - Optional. Version to install (default: v0.3.1) +# INSTALL_DIR - Optional. Installation directory (default: $HOME/.nomos-circuits) +# +# Examples: +# ./setup-nomos-circuits.sh # Install default version to default location +# ./setup-nomos-circuits.sh v0.2.0 # Install specific version to default location +# ./setup-nomos-circuits.sh v0.2.0 /opt/circuits # Install to custom location + +# LSSA: needed for compatibility + +set -e + +# Default values +VERSION="${1:-v0.3.1}" +DEFAULT_INSTALL_DIR="$HOME/.nomos-circuits" +INSTALL_DIR="${2:-$DEFAULT_INSTALL_DIR}" +REPO="logos-co/nomos-circuits" + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +print_info() { + echo -e "${BLUE}ℹ${NC} $1" +} + +print_success() { + echo -e "${GREEN}✓${NC} $1" +} + +print_warning() { + echo -e "${YELLOW}⚠${NC} $1" +} + +print_error() { + echo -e "${RED}✗${NC} $1" +} + +# Detect OS and architecture +detect_platform() { + local os="" + local arch="" + + # Detect OS + case "$(uname -s)" in + Linux*) os="linux";; + Darwin*) os="macos";; + MINGW*|MSYS*|CYGWIN*) os="windows";; + *) print_error "Unsupported operating system: $(uname -s)"; exit 1;; + esac + + # Detect architecture + case "$(uname -m)" in + x86_64) arch="x86_64";; + aarch64) arch="aarch64";; + arm64) arch="aarch64";; + *) print_error "Unsupported architecture: $(uname -m)"; exit 1;; + esac + + echo "${os}-${arch}" +} + +# Check if installation directory exists and get confirmation +check_existing_installation() { + if [ -d "$INSTALL_DIR" ]; then + print_warning "Installation directory already exists: $INSTALL_DIR" + + # Check if it has a VERSION file + if [ -f "$INSTALL_DIR/VERSION" ]; then + local current_version=$(cat "$INSTALL_DIR/VERSION") + print_info "Currently installed version: $current_version" + fi + + # In non-interactive environments (CI), automatically overwrite + if [ ! -t 0 ]; then + print_info "Non-interactive environment detected, automatically overwriting..." + else + # Interactive environment - ask for confirmation + echo + read -p "Do you want to overwrite it? (y/N): " -n 1 -r + echo + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + print_info "Installation cancelled." + exit 0 + fi + fi + + print_info "Removing existing installation..." + rm -rf "$INSTALL_DIR" + fi +} + +# Download and extract the release +download_release() { + local platform="$1" + local artifact="nomos-circuits-${VERSION}-${platform}.tar.gz" + local url="https://github.com/${REPO}/releases/download/${VERSION}/${artifact}" + local temp_dir=$(mktemp -d) + + print_info "Downloading nomos-circuits ${VERSION} for ${platform}..." + print_info "URL: $url" + + # Build curl command with optional authentication + local curl_cmd="curl -L" + if [ -n "$GITHUB_TOKEN" ]; then + curl_cmd="$curl_cmd --header 'authorization: Bearer ${GITHUB_TOKEN}'" + fi + curl_cmd="$curl_cmd -o ${temp_dir}/${artifact} $url" + + if ! eval "$curl_cmd"; then + print_error "Failed to download release artifact" + print_error "Please check that version ${VERSION} exists for platform ${platform}" + print_error "Available releases: https://github.com/${REPO}/releases" + rm -rf "$temp_dir" + exit 1 + fi + + print_success "Download complete" + + print_info "Extracting to ${INSTALL_DIR}..." + mkdir -p "$INSTALL_DIR" + + if ! tar -xzf "${temp_dir}/${artifact}" -C "$INSTALL_DIR" --strip-components=1; then + print_error "Failed to extract archive" + rm -rf "$temp_dir" + exit 1 + fi + + rm -rf "$temp_dir" + print_success "Extraction complete" +} + +# Handle macOS code signing/quarantine issues +handle_macos_quarantine() { + print_info "macOS detected: Removing quarantine attributes from executables..." + + # Remove quarantine attribute from all executable files + if find "$INSTALL_DIR" -type f -perm +111 -exec xattr -d com.apple.quarantine {} \; 2>/dev/null; then + print_success "Quarantine attributes removed" + else + print_warning "Could not remove quarantine attributes (they may not exist)" + fi +} + +# Main installation process +main() { + print_info "Setting up nomos-circuits ${VERSION}" + print_info "Installation directory: $INSTALL_DIR" + echo + + # Detect platform + local platform=$(detect_platform) + print_info "Detected platform: $platform" + + # Check existing installation + check_existing_installation + + # Download and extract + download_release "$platform" + + # Handle macOS quarantine if needed + if [[ "$platform" == macos-* ]]; then + echo + handle_macos_quarantine + fi + + echo + print_success "Installation complete!" + echo + print_info "nomos-circuits ${VERSION} is now installed at: $INSTALL_DIR" + print_info "The following circuits are available:" + + # Discover circuits by finding directories that contain a witness_generator + for dir in "$INSTALL_DIR"/*/; do + if [ -d "$dir" ]; then + local circuit_name=$(basename "$dir") + if [ -f "$dir/witness_generator" ]; then + echo " • $circuit_name" + fi + fi + done + + # Only show export instructions if not using the default location + if [ "$INSTALL_DIR" != "$DEFAULT_INSTALL_DIR" ]; then + echo + print_info "Since you're using a custom installation directory, set the environment variable:" + print_info " export NOMOS_CIRCUITS=$INSTALL_DIR" + echo + fi +} + +# Run main +main From fc179dcb51d96d505b4d39b6d31f5a5b6fe91fff Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Thu, 8 Jan 2026 09:29:43 +0200 Subject: [PATCH 06/10] fix: ci try 2 --- .github/actions/install-nomos-circuits-compatibility/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/install-nomos-circuits-compatibility/action.yml b/.github/actions/install-nomos-circuits-compatibility/action.yml index 41f1e0cc..cfeae0a4 100644 --- a/.github/actions/install-nomos-circuits-compatibility/action.yml +++ b/.github/actions/install-nomos-circuits-compatibility/action.yml @@ -5,5 +5,5 @@ runs: steps: - name: Install risc0 run: | - /home/runner/lssa/ci_scripts/setup-nomos-circuits.sh + /home/runner/work/lssa/lssa/ci_scripts/setup-nomos-circuits.sh shell: bash From 0a95e3ee62288ed5be424e70836da37084e481df Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Thu, 8 Jan 2026 09:32:24 +0200 Subject: [PATCH 07/10] fix: ci run 3 --- .github/actions/install-nomos-circuits-compatibility/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/install-nomos-circuits-compatibility/action.yml b/.github/actions/install-nomos-circuits-compatibility/action.yml index cfeae0a4..74e314cd 100644 --- a/.github/actions/install-nomos-circuits-compatibility/action.yml +++ b/.github/actions/install-nomos-circuits-compatibility/action.yml @@ -5,5 +5,6 @@ runs: steps: - name: Install risc0 run: | + chmod 777 /home/runner/work/lssa/lssa/ci_scripts/setup-nomos-circuits.sh /home/runner/work/lssa/lssa/ci_scripts/setup-nomos-circuits.sh shell: bash From 6f8a7295c233721a7ecfd6dce5b9e8440a79340d Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Thu, 8 Jan 2026 10:13:47 +0200 Subject: [PATCH 08/10] fix: deployment updates --- ci_scripts/deploy.sh | 6 +++++- sequencer_runner/Dockerfile | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/ci_scripts/deploy.sh b/ci_scripts/deploy.sh index 7615df03..da23c4ac 100644 --- a/ci_scripts/deploy.sh +++ b/ci_scripts/deploy.sh @@ -52,10 +52,14 @@ if [ -d ".git" ]; then git reset --hard origin/main else echo "Cloning repository..." - git clone https://github.com/vacp2p/nescience-testnet.git . + git clone https://github.com/logos-blockchain/lssa.git . git checkout main fi +# Install Nomos circuits for compatibility +chmod 777 /ci_scripts/setup-nomos-circuits.sh +/ci_scripts/setup-nomos-circuits.sh + # Build sequencer_runner and wallet in release mode echo "Building sequencer_runner" # That could be just `cargo build --release --bin sequencer_runner --bin wallet` diff --git a/sequencer_runner/Dockerfile b/sequencer_runner/Dockerfile index 3b2153c3..b8b79b59 100644 --- a/sequencer_runner/Dockerfile +++ b/sequencer_runner/Dockerfile @@ -9,6 +9,10 @@ RUN apt-get update && apt-get install -y \ clang \ && rm -rf /var/lib/apt/lists/* +# Nomos circuits for compatibility +RUN chmod 777 /ci_scripts/setup-nomos-circuits.sh + && /ci_scripts/setup-nomos-circuits.sh + WORKDIR /sequencer_runner # Planner stage - generates dependency recipe From 3473602efcb1cda43544e8594d5fdfc1143c3b2b Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Fri, 9 Jan 2026 17:06:13 +0200 Subject: [PATCH 09/10] fix: try new branch of client --- .../action.yml | 10 - .github/workflows/ci.yml | 10 - Cargo.lock | 299 ++---------------- Cargo.toml | 2 +- ci_scripts/deploy.sh | 4 - ci_scripts/setup-nomos-circuits.sh | 203 ------------ sequencer_runner/Dockerfile | 4 - 7 files changed, 22 insertions(+), 510 deletions(-) delete mode 100644 .github/actions/install-nomos-circuits-compatibility/action.yml delete mode 100644 ci_scripts/setup-nomos-circuits.sh diff --git a/.github/actions/install-nomos-circuits-compatibility/action.yml b/.github/actions/install-nomos-circuits-compatibility/action.yml deleted file mode 100644 index 74e314cd..00000000 --- a/.github/actions/install-nomos-circuits-compatibility/action.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: Install Nomos circuits -description: Installs Nomos circuits for compatibility -runs: - using: "composite" - steps: - - name: Install risc0 - run: | - chmod 777 /home/runner/work/lssa/lssa/ci_scripts/setup-nomos-circuits.sh - /home/runner/work/lssa/lssa/ci_scripts/setup-nomos-circuits.sh - shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2a90d2ec..21c73d29 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -70,8 +70,6 @@ jobs: - uses: ./.github/actions/install-risc0 - - uses: ./.github/actions/install-nomos-circuits-compatibility - - name: Install active toolchain run: rustup install @@ -97,8 +95,6 @@ jobs: - uses: ./.github/actions/install-risc0 - - uses: ./.github/actions/install-nomos-circuits-compatibility - - name: Install active toolchain run: rustup install @@ -122,8 +118,6 @@ jobs: - uses: ./.github/actions/install-risc0 - - uses: ./.github/actions/install-nomos-circuits-compatibility - - name: Install active toolchain run: rustup install @@ -145,8 +139,6 @@ jobs: - uses: ./.github/actions/install-risc0 - - uses: ./.github/actions/install-nomos-circuits-compatibility - - name: Install active toolchain run: rustup install @@ -169,8 +161,6 @@ jobs: - uses: ./.github/actions/install-risc0 - - uses: ./.github/actions/install-nomos-circuits-compatibility - - name: Install just run: cargo install just diff --git a/Cargo.lock b/Cargo.lock index df1c9ca6..92f29eff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -367,15 +367,6 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" -[[package]] -name = "archery" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70e0a5f99dfebb87bb342d0f53bb92c81842e100bbb915223e38349580e5441d" -dependencies = [ - "triomphe", -] - [[package]] name = "ark-bls12-381" version = "0.4.0" @@ -1107,7 +1098,7 @@ dependencies = [ [[package]] name = "broadcast-service" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "async-trait", "derivative", @@ -1276,35 +1267,6 @@ dependencies = [ "cpufeatures", ] -[[package]] -name = "chain-service" -version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" -dependencies = [ - "async-trait", - "broadcast-service", - "bytes", - "cryptarchia-engine", - "cryptarchia-sync", - "futures", - "groth16", - "nomos-core", - "nomos-ledger", - "nomos-network", - "nomos-storage", - "nomos-utils", - "num-bigint", - "overwatch", - "serde", - "serde_with", - "services-utils", - "strum", - "thiserror 1.0.69", - "tokio", - "tracing", - "tracing-futures", -] - [[package]] name = "chrono" version = "0.4.42" @@ -1332,7 +1294,7 @@ dependencies = [ [[package]] name = "circuits-prover" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "circuits-utils", "tempfile", @@ -1341,7 +1303,7 @@ dependencies = [ [[package]] name = "circuits-utils" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "dirs", ] @@ -1433,10 +1395,9 @@ dependencies = [ [[package]] name = "common-http-client" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "broadcast-service", - "chain-service", "futures", "nomos-core", "nomos-da-messages", @@ -1491,15 +1452,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "convert_case" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "convert_case" version = "0.10.0" @@ -1578,7 +1530,7 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "cryptarchia-engine" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "cfg_eval", "nomos-utils", @@ -1589,23 +1541,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "cryptarchia-sync" -version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" -dependencies = [ - "bytes", - "cryptarchia-engine", - "futures", - "nomos-core", - "rand 0.8.5", - "serde", - "serde_with", - "thiserror 1.0.69", - "tokio", - "tracing", -] - [[package]] name = "crypto-bigint" version = "0.5.5" @@ -2409,7 +2344,7 @@ dependencies = [ [[package]] name = "groth16" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "ark-bn254 0.4.0", "ark-ec 0.4.2", @@ -3082,7 +3017,7 @@ dependencies = [ [[package]] name = "key-management-system-keys" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "async-trait", "bytes", @@ -3107,7 +3042,7 @@ dependencies = [ [[package]] name = "key-management-system-macros" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "proc-macro2", "quote", @@ -3138,7 +3073,7 @@ dependencies = [ [[package]] name = "kzgrs" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "ark-bls12-381", "ark-ec 0.4.2", @@ -3157,7 +3092,7 @@ dependencies = [ [[package]] name = "kzgrs-backend" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "ark-ff 0.4.2", "ark-poly 0.4.2", @@ -3239,7 +3174,6 @@ dependencies = [ "bs58", "hkdf", "multihash", - "serde", "sha2", "thiserror 2.0.17", "tracing", @@ -3442,18 +3376,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "mmr" -version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" -dependencies = [ - "ark-ff 0.4.2", - "groth16", - "poseidon2", - "rpds", - "serde", -] - [[package]] name = "multiaddr" version = "0.18.2" @@ -3563,7 +3485,7 @@ dependencies = [ [[package]] name = "nomos-blend-crypto" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "blake2", "groth16", @@ -3578,32 +3500,10 @@ dependencies = [ "zeroize", ] -[[package]] -name = "nomos-blend-message" -version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" -dependencies = [ - "blake2", - "derivative", - "groth16", - "itertools 0.14.0", - "key-management-system-keys", - "nomos-blend-crypto", - "nomos-blend-proofs", - "nomos-core", - "nomos-utils", - "serde", - "serde-big-array", - "serde_with", - "thiserror 1.0.69", - "tracing", - "zeroize", -] - [[package]] name = "nomos-blend-proofs" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "ed25519-dalek", "generic-array 1.3.5", @@ -3618,7 +3518,7 @@ dependencies = [ [[package]] name = "nomos-core" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "ark-ff 0.4.2", "async-trait", @@ -3648,7 +3548,7 @@ dependencies = [ [[package]] name = "nomos-da-messages" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "blake2", "futures", @@ -3661,7 +3561,7 @@ dependencies = [ [[package]] name = "nomos-http-api-common" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "axum", "governor", @@ -3673,68 +3573,10 @@ dependencies = [ "tower_governor", ] -[[package]] -name = "nomos-ledger" -version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" -dependencies = [ - "cryptarchia-engine", - "groth16", - "key-management-system-keys", - "mmr", - "nomos-blend-crypto", - "nomos-blend-message", - "nomos-blend-proofs", - "nomos-core", - "nomos-utils", - "num-bigint", - "rand 0.8.5", - "rpds", - "serde", - "thiserror 1.0.69", - "tracing", - "utxotree", -] - -[[package]] -name = "nomos-network" -version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" -dependencies = [ - "async-trait", - "cryptarchia-sync", - "futures", - "nomos-core", - "overwatch", - "serde", - "tokio", - "tokio-stream", - "tracing", -] - -[[package]] -name = "nomos-storage" -version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" -dependencies = [ - "async-trait", - "bytes", - "cryptarchia-engine", - "futures", - "libp2p-identity", - "multiaddr", - "nomos-core", - "overwatch", - "serde", - "thiserror 1.0.69", - "tokio", - "tracing", -] - [[package]] name = "nomos-utils" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "async-trait", "blake2", @@ -3975,7 +3817,6 @@ source = "git+https://github.com/logos-co/Overwatch?rev=f5a9902#f5a99022f389d65a dependencies = [ "async-trait", "futures", - "overwatch-derive", "thiserror 2.0.17", "tokio", "tokio-stream", @@ -3983,18 +3824,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "overwatch-derive" -version = "0.1.0" -source = "git+https://github.com/logos-co/Overwatch?rev=f5a9902#f5a99022f389d65adbd55e51f1e3f9eead62432a" -dependencies = [ - "convert_case 0.8.0", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.111", -] - [[package]] name = "parking_lot" version = "0.12.5" @@ -4101,7 +3930,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "pol" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "circuits-prover", "circuits-utils", @@ -4129,7 +3958,7 @@ dependencies = [ [[package]] name = "poq" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "circuits-prover", "circuits-utils", @@ -4151,7 +3980,7 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "poseidon2" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "ark-bn254 0.4.0", "ark-ff 0.4.2", @@ -4204,28 +4033,6 @@ dependencies = [ "toml_edit 0.23.10+spec-1.0.0", ] -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.111", -] - [[package]] name = "proc-macro2" version = "1.0.103" @@ -4848,16 +4655,6 @@ dependencies = [ "librocksdb-sys", ] -[[package]] -name = "rpds" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e75f485e819d4d3015e6c0d55d02a4fd3db47c1993d9e603e0361fba2bffb34" -dependencies = [ - "archery", - "serde", -] - [[package]] name = "rrs-lib" version = "0.1.0" @@ -5200,15 +4997,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-big-array" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" -dependencies = [ - "serde", -] - [[package]] name = "serde_core" version = "1.0.228" @@ -5315,21 +5103,6 @@ dependencies = [ "serde", ] -[[package]] -name = "services-utils" -version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" -dependencies = [ - "async-trait", - "futures", - "log", - "overwatch", - "serde", - "serde_json", - "thiserror 1.0.69", - "tracing", -] - [[package]] name = "sha1" version = "0.10.6" @@ -5973,16 +5746,6 @@ dependencies = [ "valuable", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "tracing-subscriber" version = "0.2.25" @@ -5992,12 +5755,6 @@ dependencies = [ "tracing-core", ] -[[package]] -name = "triomphe" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" - [[package]] name = "try-lock" version = "0.2.5" @@ -6101,20 +5858,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "utxotree" -version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" -dependencies = [ - "ark-ff 0.4.2", - "groth16", - "num-bigint", - "poseidon2", - "rpds", - "serde", - "thiserror 1.0.69", -] - [[package]] name = "valuable" version = "0.1.1" @@ -6561,7 +6304,7 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "witness-generator" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "circuits-utils", "tempfile", @@ -6716,7 +6459,7 @@ dependencies = [ [[package]] name = "zksign" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=marbella-offsite-2025-12#b47525f893353b0441a34a62b87c85ad27fb8519" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" dependencies = [ "circuits-prover", "circuits-utils", diff --git a/Cargo.toml b/Cargo.toml index 35d0a408..aa9da563 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,7 +79,7 @@ base58 = "0.2.0" itertools = "0.14.0" url = "2.5.4" -common-http-client = { git = "https://github.com/logos-blockchain/logos-blockchain.git", branch = "marbella-offsite-2025-12" } +common-http-client = { git = "https://github.com/logos-blockchain/logos-blockchain.git", branch = "feat-skip-zk-build" } rocksdb = { version = "0.24.0", default-features = false, features = [ "snappy", diff --git a/ci_scripts/deploy.sh b/ci_scripts/deploy.sh index da23c4ac..e84cac72 100644 --- a/ci_scripts/deploy.sh +++ b/ci_scripts/deploy.sh @@ -56,10 +56,6 @@ else git checkout main fi -# Install Nomos circuits for compatibility -chmod 777 /ci_scripts/setup-nomos-circuits.sh -/ci_scripts/setup-nomos-circuits.sh - # Build sequencer_runner and wallet in release mode echo "Building sequencer_runner" # That could be just `cargo build --release --bin sequencer_runner --bin wallet` diff --git a/ci_scripts/setup-nomos-circuits.sh b/ci_scripts/setup-nomos-circuits.sh deleted file mode 100644 index 151c42a4..00000000 --- a/ci_scripts/setup-nomos-circuits.sh +++ /dev/null @@ -1,203 +0,0 @@ -#!/bin/bash -# -# Setup script for nomos-circuits -# -# Usage: ./setup-nomos-circuits.sh [VERSION] [INSTALL_DIR] -# -# Arguments: -# VERSION - Optional. Version to install (default: v0.3.1) -# INSTALL_DIR - Optional. Installation directory (default: $HOME/.nomos-circuits) -# -# Examples: -# ./setup-nomos-circuits.sh # Install default version to default location -# ./setup-nomos-circuits.sh v0.2.0 # Install specific version to default location -# ./setup-nomos-circuits.sh v0.2.0 /opt/circuits # Install to custom location - -# LSSA: needed for compatibility - -set -e - -# Default values -VERSION="${1:-v0.3.1}" -DEFAULT_INSTALL_DIR="$HOME/.nomos-circuits" -INSTALL_DIR="${2:-$DEFAULT_INSTALL_DIR}" -REPO="logos-co/nomos-circuits" - -# Colors for output -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -BLUE='\033[0;34m' -NC='\033[0m' # No Color - -print_info() { - echo -e "${BLUE}ℹ${NC} $1" -} - -print_success() { - echo -e "${GREEN}✓${NC} $1" -} - -print_warning() { - echo -e "${YELLOW}⚠${NC} $1" -} - -print_error() { - echo -e "${RED}✗${NC} $1" -} - -# Detect OS and architecture -detect_platform() { - local os="" - local arch="" - - # Detect OS - case "$(uname -s)" in - Linux*) os="linux";; - Darwin*) os="macos";; - MINGW*|MSYS*|CYGWIN*) os="windows";; - *) print_error "Unsupported operating system: $(uname -s)"; exit 1;; - esac - - # Detect architecture - case "$(uname -m)" in - x86_64) arch="x86_64";; - aarch64) arch="aarch64";; - arm64) arch="aarch64";; - *) print_error "Unsupported architecture: $(uname -m)"; exit 1;; - esac - - echo "${os}-${arch}" -} - -# Check if installation directory exists and get confirmation -check_existing_installation() { - if [ -d "$INSTALL_DIR" ]; then - print_warning "Installation directory already exists: $INSTALL_DIR" - - # Check if it has a VERSION file - if [ -f "$INSTALL_DIR/VERSION" ]; then - local current_version=$(cat "$INSTALL_DIR/VERSION") - print_info "Currently installed version: $current_version" - fi - - # In non-interactive environments (CI), automatically overwrite - if [ ! -t 0 ]; then - print_info "Non-interactive environment detected, automatically overwriting..." - else - # Interactive environment - ask for confirmation - echo - read -p "Do you want to overwrite it? (y/N): " -n 1 -r - echo - if [[ ! $REPLY =~ ^[Yy]$ ]]; then - print_info "Installation cancelled." - exit 0 - fi - fi - - print_info "Removing existing installation..." - rm -rf "$INSTALL_DIR" - fi -} - -# Download and extract the release -download_release() { - local platform="$1" - local artifact="nomos-circuits-${VERSION}-${platform}.tar.gz" - local url="https://github.com/${REPO}/releases/download/${VERSION}/${artifact}" - local temp_dir=$(mktemp -d) - - print_info "Downloading nomos-circuits ${VERSION} for ${platform}..." - print_info "URL: $url" - - # Build curl command with optional authentication - local curl_cmd="curl -L" - if [ -n "$GITHUB_TOKEN" ]; then - curl_cmd="$curl_cmd --header 'authorization: Bearer ${GITHUB_TOKEN}'" - fi - curl_cmd="$curl_cmd -o ${temp_dir}/${artifact} $url" - - if ! eval "$curl_cmd"; then - print_error "Failed to download release artifact" - print_error "Please check that version ${VERSION} exists for platform ${platform}" - print_error "Available releases: https://github.com/${REPO}/releases" - rm -rf "$temp_dir" - exit 1 - fi - - print_success "Download complete" - - print_info "Extracting to ${INSTALL_DIR}..." - mkdir -p "$INSTALL_DIR" - - if ! tar -xzf "${temp_dir}/${artifact}" -C "$INSTALL_DIR" --strip-components=1; then - print_error "Failed to extract archive" - rm -rf "$temp_dir" - exit 1 - fi - - rm -rf "$temp_dir" - print_success "Extraction complete" -} - -# Handle macOS code signing/quarantine issues -handle_macos_quarantine() { - print_info "macOS detected: Removing quarantine attributes from executables..." - - # Remove quarantine attribute from all executable files - if find "$INSTALL_DIR" -type f -perm +111 -exec xattr -d com.apple.quarantine {} \; 2>/dev/null; then - print_success "Quarantine attributes removed" - else - print_warning "Could not remove quarantine attributes (they may not exist)" - fi -} - -# Main installation process -main() { - print_info "Setting up nomos-circuits ${VERSION}" - print_info "Installation directory: $INSTALL_DIR" - echo - - # Detect platform - local platform=$(detect_platform) - print_info "Detected platform: $platform" - - # Check existing installation - check_existing_installation - - # Download and extract - download_release "$platform" - - # Handle macOS quarantine if needed - if [[ "$platform" == macos-* ]]; then - echo - handle_macos_quarantine - fi - - echo - print_success "Installation complete!" - echo - print_info "nomos-circuits ${VERSION} is now installed at: $INSTALL_DIR" - print_info "The following circuits are available:" - - # Discover circuits by finding directories that contain a witness_generator - for dir in "$INSTALL_DIR"/*/; do - if [ -d "$dir" ]; then - local circuit_name=$(basename "$dir") - if [ -f "$dir/witness_generator" ]; then - echo " • $circuit_name" - fi - fi - done - - # Only show export instructions if not using the default location - if [ "$INSTALL_DIR" != "$DEFAULT_INSTALL_DIR" ]; then - echo - print_info "Since you're using a custom installation directory, set the environment variable:" - print_info " export NOMOS_CIRCUITS=$INSTALL_DIR" - echo - fi -} - -# Run main -main diff --git a/sequencer_runner/Dockerfile b/sequencer_runner/Dockerfile index b8b79b59..3b2153c3 100644 --- a/sequencer_runner/Dockerfile +++ b/sequencer_runner/Dockerfile @@ -9,10 +9,6 @@ RUN apt-get update && apt-get install -y \ clang \ && rm -rf /var/lib/apt/lists/* -# Nomos circuits for compatibility -RUN chmod 777 /ci_scripts/setup-nomos-circuits.sh - && /ci_scripts/setup-nomos-circuits.sh - WORKDIR /sequencer_runner # Planner stage - generates dependency recipe From 66d01d69d72565a1a77d7def95069b2cba7fcc84 Mon Sep 17 00:00:00 2001 From: Pravdyvy Date: Tue, 20 Jan 2026 10:26:22 +0200 Subject: [PATCH 10/10] fix: dep fix --- Cargo.lock | 333 +++++++++++++++++++++++++++++++++++--- Cargo.toml | 2 +- bedrock_client/src/lib.rs | 2 +- 3 files changed, 311 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9ccc65b4..00c7c418 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -367,6 +367,15 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +[[package]] +name = "archery" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e0a5f99dfebb87bb342d0f53bb92c81842e100bbb915223e38349580e5441d" +dependencies = [ + "triomphe", +] + [[package]] name = "ark-bls12-381" version = "0.4.0" @@ -1098,7 +1107,7 @@ dependencies = [ [[package]] name = "broadcast-service" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "async-trait", "derivative", @@ -1267,6 +1276,36 @@ dependencies = [ "cpufeatures", ] +[[package]] +name = "chain-service" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "async-trait", + "broadcast-service", + "bytes", + "cryptarchia-engine", + "cryptarchia-sync", + "futures", + "groth16", + "nomos-core", + "nomos-ledger", + "nomos-network", + "nomos-storage", + "nomos-time", + "nomos-utils", + "num-bigint", + "overwatch", + "serde", + "serde_with", + "services-utils", + "strum", + "thiserror 1.0.69", + "tokio", + "tracing", + "tracing-futures", +] + [[package]] name = "chrono" version = "0.4.42" @@ -1294,7 +1333,7 @@ dependencies = [ [[package]] name = "circuits-prover" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "circuits-utils", "tempfile", @@ -1303,7 +1342,7 @@ dependencies = [ [[package]] name = "circuits-utils" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "dirs", ] @@ -1395,9 +1434,10 @@ dependencies = [ [[package]] name = "common-http-client" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "broadcast-service", + "chain-service", "futures", "nomos-core", "nomos-da-messages", @@ -1452,6 +1492,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +[[package]] +name = "convert_case" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "convert_case" version = "0.10.0" @@ -1530,7 +1579,7 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "cryptarchia-engine" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "cfg_eval", "nomos-utils", @@ -1538,6 +1587,24 @@ dependencies = [ "serde_with", "thiserror 1.0.69", "time", + "tokio", + "tracing", +] + +[[package]] +name = "cryptarchia-sync" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "bytes", + "cryptarchia-engine", + "futures", + "nomos-core", + "rand 0.8.5", + "serde", + "serde_with", + "thiserror 1.0.69", + "tokio", "tracing", ] @@ -2344,7 +2411,7 @@ dependencies = [ [[package]] name = "groth16" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "ark-bn254 0.4.0", "ark-ec 0.4.2", @@ -3015,7 +3082,7 @@ dependencies = [ [[package]] name = "key-management-system-keys" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "async-trait", "bytes", @@ -3033,6 +3100,7 @@ dependencies = [ "thiserror 2.0.17", "tokio", "tracing", + "x25519-dalek", "zeroize", "zksign", ] @@ -3040,7 +3108,7 @@ dependencies = [ [[package]] name = "key-management-system-macros" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "proc-macro2", "quote", @@ -3071,7 +3139,7 @@ dependencies = [ [[package]] name = "kzgrs" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "ark-bls12-381", "ark-ec 0.4.2", @@ -3090,7 +3158,7 @@ dependencies = [ [[package]] name = "kzgrs-backend" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "ark-ff 0.4.2", "ark-poly 0.4.2", @@ -3172,6 +3240,7 @@ dependencies = [ "bs58", "hkdf", "multihash", + "serde", "sha2", "thiserror 2.0.17", "tracing", @@ -3374,6 +3443,18 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "mmr" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "ark-ff 0.4.2", + "groth16", + "poseidon2", + "rpds", + "serde", +] + [[package]] name = "multiaddr" version = "0.18.2" @@ -3483,7 +3564,7 @@ dependencies = [ [[package]] name = "nomos-blend-crypto" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "blake2", "groth16", @@ -3491,17 +3572,35 @@ dependencies = [ "poq", "poseidon2", "rs-merkle-tree", - "serde", - "subtle", "thiserror 1.0.69", - "x25519-dalek", +] + +[[package]] +name = "nomos-blend-message" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "blake2", + "derivative", + "groth16", + "itertools 0.14.0", + "key-management-system-keys", + "nomos-blend-crypto", + "nomos-blend-proofs", + "nomos-core", + "nomos-utils", + "serde", + "serde-big-array", + "serde_with", + "thiserror 1.0.69", + "tracing", "zeroize", ] [[package]] name = "nomos-blend-proofs" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "ed25519-dalek", "generic-array 1.3.5", @@ -3516,7 +3615,7 @@ dependencies = [ [[package]] name = "nomos-core" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "ark-ff 0.4.2", "async-trait", @@ -3546,7 +3645,7 @@ dependencies = [ [[package]] name = "nomos-da-messages" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "blake2", "futures", @@ -3559,7 +3658,7 @@ dependencies = [ [[package]] name = "nomos-http-api-common" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "axum", "governor", @@ -3571,10 +3670,86 @@ dependencies = [ "tower_governor", ] +[[package]] +name = "nomos-ledger" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "cryptarchia-engine", + "groth16", + "key-management-system-keys", + "mmr", + "nomos-blend-crypto", + "nomos-blend-message", + "nomos-blend-proofs", + "nomos-core", + "nomos-utils", + "num-bigint", + "rand 0.8.5", + "rpds", + "serde", + "thiserror 1.0.69", + "tracing", + "utxotree", +] + +[[package]] +name = "nomos-network" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "async-trait", + "cryptarchia-sync", + "futures", + "nomos-core", + "overwatch", + "serde", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "nomos-storage" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "async-trait", + "bytes", + "cryptarchia-engine", + "futures", + "libp2p-identity", + "multiaddr", + "nomos-core", + "overwatch", + "serde", + "thiserror 1.0.69", + "tokio", + "tracing", +] + +[[package]] +name = "nomos-time" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "async-trait", + "cryptarchia-engine", + "futures", + "log", + "overwatch", + "sntpc", + "thiserror 2.0.17", + "time", + "tokio", + "tokio-stream", + "tracing", +] + [[package]] name = "nomos-utils" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "async-trait", "blake2", @@ -3826,6 +4001,7 @@ source = "git+https://github.com/logos-co/Overwatch?rev=f5a9902#f5a99022f389d65a dependencies = [ "async-trait", "futures", + "overwatch-derive", "thiserror 2.0.17", "tokio", "tokio-stream", @@ -3833,6 +4009,18 @@ dependencies = [ "tracing", ] +[[package]] +name = "overwatch-derive" +version = "0.1.0" +source = "git+https://github.com/logos-co/Overwatch?rev=f5a9902#f5a99022f389d65adbd55e51f1e3f9eead62432a" +dependencies = [ + "convert_case 0.8.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "parking_lot" version = "0.12.5" @@ -3939,7 +4127,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "pol" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "circuits-prover", "circuits-utils", @@ -3967,7 +4155,7 @@ dependencies = [ [[package]] name = "poq" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "circuits-prover", "circuits-utils", @@ -3989,7 +4177,7 @@ checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "poseidon2" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "ark-bn254 0.4.0", "ark-ff 0.4.2", @@ -4042,6 +4230,28 @@ dependencies = [ "toml_edit 0.23.10+spec-1.0.0", ] +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.111", +] + [[package]] name = "proc-macro2" version = "1.0.103" @@ -4660,6 +4870,16 @@ dependencies = [ "librocksdb-sys", ] +[[package]] +name = "rpds" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e75f485e819d4d3015e6c0d55d02a4fd3db47c1993d9e603e0361fba2bffb34" +dependencies = [ + "archery", + "serde", +] + [[package]] name = "rrs-lib" version = "0.1.0" @@ -5002,6 +5222,15 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + [[package]] name = "serde_core" version = "1.0.228" @@ -5108,6 +5337,21 @@ dependencies = [ "serde", ] +[[package]] +name = "services-utils" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "async-trait", + "futures", + "log", + "overwatch", + "serde", + "serde_json", + "thiserror 1.0.69", + "tracing", +] + [[package]] name = "sha1" version = "0.10.6" @@ -5167,6 +5411,16 @@ version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +[[package]] +name = "sntpc" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78f778a0f82b3cf5d75f858eceee38e84d5292f1d03415e88cc4ec45ca6ba8a2" +dependencies = [ + "cfg-if", + "tokio", +] + [[package]] name = "socket2" version = "0.4.10" @@ -5751,6 +6005,16 @@ dependencies = [ "valuable", ] +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "tracing-subscriber" version = "0.2.25" @@ -5760,6 +6024,12 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "triomphe" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd69c5aa8f924c7519d6372789a74eac5b94fb0f8fcf0d4a97eb0bfc3e785f39" + [[package]] name = "try-lock" version = "0.2.5" @@ -5863,6 +6133,21 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "utxotree" +version = "0.1.0" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" +dependencies = [ + "ark-ff 0.4.2", + "groth16", + "nomos-core", + "num-bigint", + "poseidon2", + "rpds", + "serde", + "thiserror 1.0.69", +] + [[package]] name = "valuable" version = "0.1.1" @@ -6310,7 +6595,7 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "witness-generator" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "circuits-utils", "tempfile", @@ -6465,7 +6750,7 @@ dependencies = [ [[package]] name = "zksign" version = "0.1.0" -source = "git+https://github.com/logos-blockchain/logos-blockchain.git?branch=feat-skip-zk-build#fde542bb8398189fe5e9bad688a527618261f63d" +source = "git+https://github.com/logos-blockchain/logos-blockchain.git#0e88327ca7faa705dd4498316ad48caadb5b8b4e" dependencies = [ "circuits-prover", "circuits-utils", diff --git a/Cargo.toml b/Cargo.toml index 30b4576a..eed73b7c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,7 +78,7 @@ base58 = "0.2.0" itertools = "0.14.0" url = "2.5.4" -common-http-client = { git = "https://github.com/logos-blockchain/logos-blockchain.git", branch = "feat-skip-zk-build" } +common-http-client = { git = "https://github.com/logos-blockchain/logos-blockchain.git" } rocksdb = { version = "0.24.0", default-features = false, features = [ "snappy", diff --git a/bedrock_client/src/lib.rs b/bedrock_client/src/lib.rs index 9315f083..36a3ac7a 100644 --- a/bedrock_client/src/lib.rs +++ b/bedrock_client/src/lib.rs @@ -10,7 +10,7 @@ pub struct BedrockClient(pub CommonHttpClient); impl BedrockClient { pub fn new(auth: Option) -> Result { let client = Client::builder() - //Add more fiedls if needed + //Add more fields if needed .timeout(std::time::Duration::from_secs(60)) .build()?;