Skip to content

Commit 04dbb1f

Browse files
apollo_storage: split ServerConfig socket into ip and port fields
1 parent 5036776 commit 04dbb1f

File tree

5 files changed

+39
-27
lines changed

5 files changed

+39
-27
lines changed

crates/apollo_deployments/resources/app_configs/batcher_config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@
5252
"batcher_config.storage.mmap_file_config.max_object_size": 1073741824,
5353
"batcher_config.storage.mmap_file_config.max_size": 1099511627776,
5454
"batcher_config.storage.scope": "StateOnly",
55-
"batcher_config.storage_reader_server_config.socket": "0.0.0.0:8080",
55+
"batcher_config.storage_reader_server_config.ip": "0.0.0.0",
56+
"batcher_config.storage_reader_server_config.port": 8080,
5657
"batcher_config.storage_reader_server_config.enable": false,
5758
"batcher_config.propose_l1_txs_every": 10
5859
}

crates/apollo_deployments/resources/app_configs/replacer_batcher_config.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
"batcher_config.storage.mmap_file_config.max_object_size": 1073741824,
5454
"batcher_config.storage.mmap_file_config.max_size": 1099511627776,
5555
"batcher_config.storage.scope": "StateOnly",
56-
"batcher_config.storage_reader_server_config.socket": "0.0.0.0:8080",
57-
"batcher_config.storage_reader_server_config.enable": false
56+
"batcher_config.storage_reader_server_config.enable": false,
57+
"batcher_config.storage_reader_server_config.ip": "0.0.0.0",
58+
"batcher_config.storage_reader_server_config.port": "$$$_BATCHER_CONFIG-STORAGE_READER_SERVER_CONFIG-PORT_$$$"
5859
}

crates/apollo_node/resources/config_schema.json

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,10 +364,15 @@
364364
"privacy": "Public",
365365
"value": false
366366
},
367-
"batcher_config.storage_reader_server_config.socket": {
368-
"description": "The socket address for the storage reader HTTP server.",
367+
"batcher_config.storage_reader_server_config.ip": {
368+
"description": "The IP address for the storage reader HTTP server.",
369369
"privacy": "Public",
370-
"value": "0.0.0.0:8080"
370+
"value": "0.0.0.0"
371+
},
372+
"batcher_config.storage_reader_server_config.port": {
373+
"description": "The port for the storage reader HTTP server.",
374+
"privacy": "Public",
375+
"value": 8080
371376
},
372377
"chain_id": {
373378
"description": "The chain to follow. For more details see https://docs.starknet.io/documentation/architecture_and_concepts/Blocks/transactions/#chain-id.",

crates/apollo_storage/src/storage_reader_server.rs

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::collections::BTreeMap;
22
use std::io;
33
use std::marker::PhantomData;
4-
use std::net::{Ipv4Addr, SocketAddr};
4+
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
55

66
use apollo_config::dumping::{ser_param, SerializeConfig};
77
use apollo_config::{ParamPath, ParamPrivacyInput, SerializedParam};
@@ -24,32 +24,40 @@ mod storage_reader_server_test;
2424
/// Configuration for the storage reader server.
2525
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
2626
pub struct ServerConfig {
27-
/// The socket address to bind the server to.
28-
pub socket: SocketAddr,
27+
/// The socket address for the server.
28+
pub ip: IpAddr,
29+
/// The port for the server.
30+
pub port: u16,
2931
/// Whether the server is enabled.
3032
pub enable: bool,
3133
}
3234

3335
impl ServerConfig {
3436
/// Creates a new server configuration.
35-
pub fn new(socket: SocketAddr, enable: bool) -> Self {
36-
Self { socket, enable }
37+
pub fn new(ip: Ipv4Addr, port: u16, enable: bool) -> Self {
38+
Self { ip: ip.into(), port, enable }
3739
}
3840
}
3941

4042
impl Default for ServerConfig {
4143
fn default() -> Self {
42-
Self { socket: (Ipv4Addr::UNSPECIFIED, 8080).into(), enable: false }
44+
Self { ip: Ipv4Addr::UNSPECIFIED.into(), port: 8080, enable: false }
4345
}
4446
}
4547

4648
impl SerializeConfig for ServerConfig {
4749
fn dump(&self) -> BTreeMap<ParamPath, SerializedParam> {
4850
BTreeMap::from_iter([
4951
ser_param(
50-
"socket",
51-
&self.socket.to_string(),
52-
"The socket address for the storage reader HTTP server.",
52+
"ip",
53+
&self.ip.to_string(),
54+
"The IP address for the storage reader HTTP server.",
55+
ParamPrivacyInput::Public,
56+
),
57+
ser_param(
58+
"port",
59+
&self.port,
60+
"The port for the storage reader HTTP server.",
5361
ParamPrivacyInput::Public,
5462
),
5563
ser_param(
@@ -140,12 +148,13 @@ where
140148
info!("Storage reader server is disabled, not starting");
141149
return Ok(());
142150
}
143-
info!("Starting storage reader server on {}", self.config.socket);
151+
let socket = SocketAddr::from((self.config.ip, self.config.port));
152+
info!("Starting storage reader server on {}", socket);
144153
let app = self.app();
145-
info!("Storage reader server listening on {}", self.config.socket);
154+
info!("Storage reader server listening on {}", socket);
146155

147156
// Start the server
148-
axum::Server::bind(&self.config.socket).serve(app.into_make_service()).await.map_err(|e| {
157+
axum::Server::bind(&socket).serve(app.into_make_service()).await.map_err(|e| {
149158
error!("Storage reader server error: {}", e);
150159
StorageError::IOError(io::Error::other(e))
151160
})

crates/apollo_storage/src/storage_reader_server_test.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::net::{Ipv4Addr, SocketAddr};
1+
use std::net::Ipv4Addr;
22

33
use async_trait::async_trait;
44
use axum::body::{Body, Bytes, HttpBody};
@@ -69,8 +69,7 @@ async fn test_endpoint_successful_query() {
6969
.commit()
7070
.unwrap();
7171

72-
let socket = SocketAddr::from((Ipv4Addr::LOCALHOST, 8081));
73-
let config = ServerConfig::new(socket, true);
72+
let config = ServerConfig::new(Ipv4Addr::LOCALHOST, 8081, true);
7473

7574
let server =
7675
StorageReaderServer::<TestHandler, TestRequest, TestResponse>::new(reader.clone(), config);
@@ -92,8 +91,7 @@ async fn test_endpoint_successful_query() {
9291
async fn test_endpoint_query_nonexistent_block() {
9392
let ((reader, _writer), _temp_dir) = get_test_storage();
9493

95-
let socket = SocketAddr::from((Ipv4Addr::LOCALHOST, 8082));
96-
let config = ServerConfig::new(socket, true);
94+
let config = ServerConfig::new(Ipv4Addr::LOCALHOST, 8082, true);
9795

9896
let server =
9997
StorageReaderServer::<TestHandler, TestRequest, TestResponse>::new(reader.clone(), config);
@@ -128,8 +126,7 @@ async fn send_storage_query<T: Serialize>(app: Router, request: &T) -> Response
128126
async fn test_endpoint_handler_error() {
129127
let ((reader, _writer), _temp_dir) = get_test_storage();
130128

131-
let socket = SocketAddr::from((Ipv4Addr::LOCALHOST, 8083));
132-
let config = ServerConfig::new(socket, true);
129+
let config = ServerConfig::new(Ipv4Addr::LOCALHOST, 8083, true);
133130

134131
let server =
135132
StorageReaderServer::<ErrorHandler, TestRequest, TestResponse>::new(reader.clone(), config);
@@ -150,8 +147,7 @@ async fn test_endpoint_handler_error() {
150147
async fn test_endpoint_invalid_json() {
151148
let ((reader, _writer), _temp_dir) = get_test_storage();
152149

153-
let socket = SocketAddr::from((Ipv4Addr::LOCALHOST, 8084));
154-
let config = ServerConfig::new(socket, true);
150+
let config = ServerConfig::new(Ipv4Addr::LOCALHOST, 8084, true);
155151

156152
let server =
157153
StorageReaderServer::<TestHandler, TestRequest, TestResponse>::new(reader.clone(), config);

0 commit comments

Comments
 (0)