diff --git a/libsigner/src/session.rs b/libsigner/src/session.rs index 044c1dd19..1c3f23baa 100644 --- a/libsigner/src/session.rs +++ b/libsigner/src/session.rs @@ -17,11 +17,11 @@ use std::net::{SocketAddr, TcpStream}; use std::str; -use blockstack_lib::net::stackerdb::SIGNERS_STACKERDB_CHUNK_SIZE; use clarity::vm::types::QualifiedContractIdentifier; use libstackerdb::{ stackerdb_get_chunk_path, stackerdb_get_metadata_path, stackerdb_post_chunk_path, SlotMetadata, - StackerDBChunkAckData, StackerDBChunkData, + StackerDBChunkAckData, StackerDBChunkData, SIGNERS_STACKERDB_CHUNK_SIZE, + STACKERDB_MAX_CHUNK_SIZE, }; use stacks_common::codec::StacksMessageCodec; @@ -215,14 +215,17 @@ impl SignerSession for StackerDBSession { /// query the replica for zero or more latest chunks fn get_latest_chunks(&mut self, slot_ids: &[u32]) -> Result>>, RPCError> { let mut payloads = vec![]; + let limit = if self.stackerdb_contract_id.name.starts_with("signer") { + SIGNERS_STACKERDB_CHUNK_SIZE + } else { + STACKERDB_MAX_CHUNK_SIZE as usize + }; for slot_id in slot_ids.iter() { let path = stackerdb_get_chunk_path(self.stackerdb_contract_id.clone(), *slot_id, None); let chunk = match self.rpc_request("GET", &path, None, &[]) { Ok(body_bytes) => { // Verify that the chunk is not too large - if body_bytes.len() > u32::MAX as usize { - None - } else if body_bytes.len() as u32 > SIGNERS_STACKERDB_CHUNK_SIZE { + if body_bytes.len() > limit { None } else { Some(body_bytes) diff --git a/libstackerdb/src/libstackerdb.rs b/libstackerdb/src/libstackerdb.rs index 8c38d8be7..507d2249f 100644 --- a/libstackerdb/src/libstackerdb.rs +++ b/libstackerdb/src/libstackerdb.rs @@ -35,6 +35,8 @@ use stacks_common::util::secp256k1::MessageSignature; /// maximum chunk size (16 MB; same as MAX_PAYLOAD_SIZE) pub const STACKERDB_MAX_CHUNK_SIZE: u32 = 16 * 1024 * 1024; +/// CHUNK_SIZE constant for signers StackerDBs (2MB) +pub const SIGNERS_STACKERDB_CHUNK_SIZE: usize = 2 * 1024 * 1024; // 2MB #[cfg(test)] mod tests; diff --git a/stackslib/src/net/stackerdb/mod.rs b/stackslib/src/net/stackerdb/mod.rs index aa6d0ceb4..7a1b29b2e 100644 --- a/stackslib/src/net/stackerdb/mod.rs +++ b/stackslib/src/net/stackerdb/mod.rs @@ -148,8 +148,6 @@ pub const STACKERDB_INV_MAX: u32 = 4096; pub const STACKERDB_PAGE_LIST_MAX: u32 = 4096; /// maximum number of pages that can be used in a StackerDB contract pub const STACKERDB_MAX_PAGE_COUNT: u32 = 2; -/// CHUNK_SIZE constant for signers StackerDBs -pub const SIGNERS_STACKERDB_CHUNK_SIZE: u32 = 2 * 1024 * 1024; // 2MB pub const STACKERDB_SLOTS_FUNCTION: &str = "stackerdb-get-signer-slots"; pub const STACKERDB_CONFIG_FUNCTION: &str = "stackerdb-get-config";