From d6bf7521fc5852c10465a07d6460e66bfb0c8af6 Mon Sep 17 00:00:00 2001 From: Niven Date: Fri, 3 Nov 2023 14:39:20 +0800 Subject: [PATCH 1/5] Fix RPC response size limit --- lib/ain-cpp-imports/src/bridge.rs | 1 + lib/ain-cpp-imports/src/lib.rs | 7 +++++++ lib/ain-grpc/src/lib.rs | 4 ++++ src/ffi/ffiexports.cpp | 4 ++++ src/ffi/ffiexports.h | 4 ++++ src/init.cpp | 1 + 6 files changed, 21 insertions(+) diff --git a/lib/ain-cpp-imports/src/bridge.rs b/lib/ain-cpp-imports/src/bridge.rs index 295ff6b592..839d2db9b7 100644 --- a/lib/ain-cpp-imports/src/bridge.rs +++ b/lib/ain-cpp-imports/src/bridge.rs @@ -35,6 +35,7 @@ pub mod ffi { fn getDatadir() -> String; fn getNetwork() -> String; fn getEthMaxConnections() -> u32; + fn getEthMaxResponseSize() -> u32; fn getDifficulty(block_hash: [u8; 32]) -> u32; fn getChainWork(block_hash: [u8; 32]) -> [u8; 32]; fn getPoolTransactions() -> Vec; diff --git a/lib/ain-cpp-imports/src/lib.rs b/lib/ain-cpp-imports/src/lib.rs index 1831e65536..b4634ba6a3 100644 --- a/lib/ain-cpp-imports/src/lib.rs +++ b/lib/ain-cpp-imports/src/lib.rs @@ -47,6 +47,9 @@ mod ffi { pub fn getEthMaxConnections() -> u32 { unimplemented!("{}", UNIMPL_MSG) } + pub fn getEthMaxResponseSize() -> u32 { + unimplemented!("{}", UNIMPL_MSG) + } pub fn getNetwork() -> String { unimplemented!("{}", UNIMPL_MSG) } @@ -146,6 +149,10 @@ pub fn get_max_connections() -> u32 { ffi::getEthMaxConnections() } +pub fn get_max_response_size() -> u32 { + ffi::getEthMaxResponseSize() +} + pub fn get_network() -> String { ffi::getNetwork() } diff --git a/lib/ain-grpc/src/lib.rs b/lib/ain-grpc/src/lib.rs index 349356befc..627cf5a4be 100644 --- a/lib/ain-grpc/src/lib.rs +++ b/lib/ain-grpc/src/lib.rs @@ -87,6 +87,7 @@ pub fn init_network_json_rpc_service(runtime: &Services, addr: &str) -> Result<( info!("Starting JSON RPC server at {}", addr); let addr = addr.parse::()?; let max_connections = ain_cpp_imports::get_max_connections(); + let max_response_size = ain_cpp_imports::get_max_response_size(); let middleware = if !ain_cpp_imports::get_cors_allowed_origin().is_empty() { let origin = ain_cpp_imports::get_cors_allowed_origin(); @@ -107,6 +108,7 @@ pub fn init_network_json_rpc_service(runtime: &Services, addr: &str) -> Result<( ServerBuilder::default() .set_middleware(middleware) .max_connections(max_connections) + .max_response_body_size(max_response_size) .custom_tokio_runtime(handle) .build(addr), )?; @@ -133,11 +135,13 @@ pub fn init_network_subscriptions_service(runtime: &Services, addr: &str) -> Res info!("Starting WebSockets server at {}", addr); let addr = addr.parse::()?; let max_connections = ain_cpp_imports::get_max_connections(); + let max_response_size = ain_cpp_imports::get_max_response_size(); let handle = runtime.ws_rt_handle.clone(); let server = runtime.ws_rt_handle.block_on( ServerBuilder::default() .max_subscriptions_per_connection(max_connections) + .max_response_body_size(max_response_size) .custom_tokio_runtime(handle) .set_id_provider(MetachainSubIdProvider) .build(addr), diff --git a/src/ffi/ffiexports.cpp b/src/ffi/ffiexports.cpp index b197db359b..b74789df3d 100644 --- a/src/ffi/ffiexports.cpp +++ b/src/ffi/ffiexports.cpp @@ -308,6 +308,10 @@ uint32_t getEthMaxConnections() { return gArgs.GetArg("-ethmaxconnections", DEFAULT_ETH_MAX_CONNECTIONS); } +uint32_t getEthMaxResponseSize() { + return gArgs.GetArg("-ethmaxresponsesize", DEFAULT_ETH_MAX_CONNECTIONS); +} + rust::vec getDST20Tokens(std::size_t mnview_ptr) { LOCK(cs_main); diff --git a/src/ffi/ffiexports.h b/src/ffi/ffiexports.h index ce5d95edfb..97030bb084 100644 --- a/src/ffi/ffiexports.h +++ b/src/ffi/ffiexports.h @@ -10,7 +10,10 @@ static constexpr uint64_t DEFAULT_EVM_BLOCK_GAS_TARGET_FACTOR = 2; static constexpr uint64_t DEFAULT_EVM_BLOCK_GAS_LIMIT = 30000000; static constexpr uint64_t DEFAULT_EVM_FINALITY_COUNT = 100; static constexpr CAmount DEFAULT_EVM_RBF_FEE_INCREMENT = COIN / 10; + +// Defaults for attributes relating to networking static constexpr uint32_t DEFAULT_ETH_MAX_CONNECTIONS = 100; +static constexpr uint32_t DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES = 100 * 1024 * 1024; // 25 megabytes static constexpr uint32_t DEFAULT_ECC_LRU_CACHE_COUNT = 10000; static constexpr uint32_t DEFAULT_EVMV_LRU_CACHE_COUNT = 10000; @@ -65,6 +68,7 @@ rust::string getDatadir(); rust::string getNetwork(); uint32_t getDifficulty(std::array blockHash); uint32_t getEthMaxConnections(); +uint32_t getEthMaxResponseSize(); std::array getChainWork(std::array blockHash); rust::vec getPoolTransactions(); uint64_t getNativeTxSize(rust::Vec rawTransaction); diff --git a/src/init.cpp b/src/init.cpp index 8de325b409..ce737cbad1 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -655,6 +655,7 @@ void SetupServerArgs() gArgs.AddArg("-ethrpcport=", strprintf("Listen for ETH-JSON-RPC connections on > (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", defaultBaseParams->ETHRPCPort(), testnetBaseParams->ETHRPCPort(), changiBaseParams->ETHRPCPort(), devnetBaseParams->ETHRPCPort(), regtestBaseParams->ETHRPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); gArgs.AddArg("-wsport=", strprintf("Listen for ETH-WebSockets connections on > (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", defaultBaseParams->WSPort(), testnetBaseParams->WSPort(), changiBaseParams->WSPort(), devnetBaseParams->WSPort(), regtestBaseParams->ETHRPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); gArgs.AddArg("-ethmaxconnections=", strprintf("Set the maximum number of connections allowed by the ETH-RPC server (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); + gArgs.AddArg("-ethmaxresponsesize=", strprintf("Set the maximum response size in MB by the ETH-RPC server (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES, DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES, DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES, DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES, DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); gArgs.AddArg("-ethdebug", strprintf("Enable debug_* ETH RPCs (default: %b)", DEFAULT_ETH_DEBUG_ENABLED), ArgsManager::ALLOW_ANY, OptionsCategory::RPC); gArgs.AddArg("-ethdebugtrace", strprintf("Enable debug_trace* ETH RPCs (default: %b)", DEFAULT_ETH_DEBUG_TRACE_ENABLED), ArgsManager::ALLOW_ANY, OptionsCategory::RPC); From 39d4107714bc1e54fdca4ade6f0c6296e21ae575 Mon Sep 17 00:00:00 2001 From: Niven Date: Fri, 3 Nov 2023 14:45:51 +0800 Subject: [PATCH 2/5] Fix bug --- src/ffi/ffiexports.cpp | 2 +- src/ffi/ffiexports.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ffi/ffiexports.cpp b/src/ffi/ffiexports.cpp index b74789df3d..c01bf6d6eb 100644 --- a/src/ffi/ffiexports.cpp +++ b/src/ffi/ffiexports.cpp @@ -309,7 +309,7 @@ uint32_t getEthMaxConnections() { } uint32_t getEthMaxResponseSize() { - return gArgs.GetArg("-ethmaxresponsesize", DEFAULT_ETH_MAX_CONNECTIONS); + return gArgs.GetArg("-ethmaxresponsesize", DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES); } rust::vec getDST20Tokens(std::size_t mnview_ptr) { diff --git a/src/ffi/ffiexports.h b/src/ffi/ffiexports.h index 97030bb084..c7279123f6 100644 --- a/src/ffi/ffiexports.h +++ b/src/ffi/ffiexports.h @@ -13,7 +13,7 @@ static constexpr CAmount DEFAULT_EVM_RBF_FEE_INCREMENT = COIN / 10; // Defaults for attributes relating to networking static constexpr uint32_t DEFAULT_ETH_MAX_CONNECTIONS = 100; -static constexpr uint32_t DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES = 100 * 1024 * 1024; // 25 megabytes +static constexpr uint32_t DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES = 100 * 1024 * 1024; // 25 megabytes static constexpr uint32_t DEFAULT_ECC_LRU_CACHE_COUNT = 10000; static constexpr uint32_t DEFAULT_EVMV_LRU_CACHE_COUNT = 10000; From c5893c6576d66a39175613d35b9a7d7b30fa9654 Mon Sep 17 00:00:00 2001 From: Niven Date: Fri, 3 Nov 2023 14:57:01 +0800 Subject: [PATCH 3/5] Switch config param to pass by megabytes instead --- lib/ain-cpp-imports/src/bridge.rs | 2 +- lib/ain-cpp-imports/src/lib.rs | 6 +++--- lib/ain-grpc/src/lib.rs | 4 ++-- src/ffi/ffiexports.cpp | 5 +++-- src/ffi/ffiexports.h | 4 ++-- src/init.cpp | 2 +- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/ain-cpp-imports/src/bridge.rs b/lib/ain-cpp-imports/src/bridge.rs index 839d2db9b7..fb1f938789 100644 --- a/lib/ain-cpp-imports/src/bridge.rs +++ b/lib/ain-cpp-imports/src/bridge.rs @@ -35,7 +35,7 @@ pub mod ffi { fn getDatadir() -> String; fn getNetwork() -> String; fn getEthMaxConnections() -> u32; - fn getEthMaxResponseSize() -> u32; + fn getEthMaxResponseByteSize() -> u32; fn getDifficulty(block_hash: [u8; 32]) -> u32; fn getChainWork(block_hash: [u8; 32]) -> [u8; 32]; fn getPoolTransactions() -> Vec; diff --git a/lib/ain-cpp-imports/src/lib.rs b/lib/ain-cpp-imports/src/lib.rs index b4634ba6a3..242af41db7 100644 --- a/lib/ain-cpp-imports/src/lib.rs +++ b/lib/ain-cpp-imports/src/lib.rs @@ -47,7 +47,7 @@ mod ffi { pub fn getEthMaxConnections() -> u32 { unimplemented!("{}", UNIMPL_MSG) } - pub fn getEthMaxResponseSize() -> u32 { + pub fn getEthMaxResponseByteSize() -> u32 { unimplemented!("{}", UNIMPL_MSG) } pub fn getNetwork() -> String { @@ -149,8 +149,8 @@ pub fn get_max_connections() -> u32 { ffi::getEthMaxConnections() } -pub fn get_max_response_size() -> u32 { - ffi::getEthMaxResponseSize() +pub fn get_max_response_byte_size() -> u32 { + ffi::getEthMaxResponseByteSize() } pub fn get_network() -> String { diff --git a/lib/ain-grpc/src/lib.rs b/lib/ain-grpc/src/lib.rs index 627cf5a4be..f13430233c 100644 --- a/lib/ain-grpc/src/lib.rs +++ b/lib/ain-grpc/src/lib.rs @@ -87,7 +87,7 @@ pub fn init_network_json_rpc_service(runtime: &Services, addr: &str) -> Result<( info!("Starting JSON RPC server at {}", addr); let addr = addr.parse::()?; let max_connections = ain_cpp_imports::get_max_connections(); - let max_response_size = ain_cpp_imports::get_max_response_size(); + let max_response_size = ain_cpp_imports::get_max_response_byte_size(); let middleware = if !ain_cpp_imports::get_cors_allowed_origin().is_empty() { let origin = ain_cpp_imports::get_cors_allowed_origin(); @@ -135,7 +135,7 @@ pub fn init_network_subscriptions_service(runtime: &Services, addr: &str) -> Res info!("Starting WebSockets server at {}", addr); let addr = addr.parse::()?; let max_connections = ain_cpp_imports::get_max_connections(); - let max_response_size = ain_cpp_imports::get_max_response_size(); + let max_response_size = ain_cpp_imports::get_max_response_byte_size(); let handle = runtime.ws_rt_handle.clone(); let server = runtime.ws_rt_handle.block_on( diff --git a/src/ffi/ffiexports.cpp b/src/ffi/ffiexports.cpp index c01bf6d6eb..c1a23563d5 100644 --- a/src/ffi/ffiexports.cpp +++ b/src/ffi/ffiexports.cpp @@ -308,8 +308,9 @@ uint32_t getEthMaxConnections() { return gArgs.GetArg("-ethmaxconnections", DEFAULT_ETH_MAX_CONNECTIONS); } -uint32_t getEthMaxResponseSize() { - return gArgs.GetArg("-ethmaxresponsesize", DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES); +uint32_t getEthMaxResponseByteSize() { + const auto max_response_size_mb = gArgs.GetArg("-ethmaxresponsesize", DEFAULT_ETH_MAX_RESPONSE_SIZE); + return max_response_size_mb * 1024 * 1024; } rust::vec getDST20Tokens(std::size_t mnview_ptr) { diff --git a/src/ffi/ffiexports.h b/src/ffi/ffiexports.h index c7279123f6..c42752b065 100644 --- a/src/ffi/ffiexports.h +++ b/src/ffi/ffiexports.h @@ -13,7 +13,7 @@ static constexpr CAmount DEFAULT_EVM_RBF_FEE_INCREMENT = COIN / 10; // Defaults for attributes relating to networking static constexpr uint32_t DEFAULT_ETH_MAX_CONNECTIONS = 100; -static constexpr uint32_t DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES = 100 * 1024 * 1024; // 25 megabytes +static constexpr uint32_t DEFAULT_ETH_MAX_RESPONSE_SIZE = 25; // 25 megabytes static constexpr uint32_t DEFAULT_ECC_LRU_CACHE_COUNT = 10000; static constexpr uint32_t DEFAULT_EVMV_LRU_CACHE_COUNT = 10000; @@ -68,7 +68,7 @@ rust::string getDatadir(); rust::string getNetwork(); uint32_t getDifficulty(std::array blockHash); uint32_t getEthMaxConnections(); -uint32_t getEthMaxResponseSize(); +uint32_t getEthMaxResponseByteSize(); std::array getChainWork(std::array blockHash); rust::vec getPoolTransactions(); uint64_t getNativeTxSize(rust::Vec rawTransaction); diff --git a/src/init.cpp b/src/init.cpp index ce737cbad1..04b7562882 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -655,7 +655,7 @@ void SetupServerArgs() gArgs.AddArg("-ethrpcport=", strprintf("Listen for ETH-JSON-RPC connections on > (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", defaultBaseParams->ETHRPCPort(), testnetBaseParams->ETHRPCPort(), changiBaseParams->ETHRPCPort(), devnetBaseParams->ETHRPCPort(), regtestBaseParams->ETHRPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); gArgs.AddArg("-wsport=", strprintf("Listen for ETH-WebSockets connections on > (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", defaultBaseParams->WSPort(), testnetBaseParams->WSPort(), changiBaseParams->WSPort(), devnetBaseParams->WSPort(), regtestBaseParams->ETHRPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); gArgs.AddArg("-ethmaxconnections=", strprintf("Set the maximum number of connections allowed by the ETH-RPC server (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); - gArgs.AddArg("-ethmaxresponsesize=", strprintf("Set the maximum response size in MB by the ETH-RPC server (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES, DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES, DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES, DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES, DEFAULT_ETH_MAX_RESPONSE_SIZE_BYTES), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); + gArgs.AddArg("-ethmaxresponsesize=", strprintf("Set the maximum response size in MB by the ETH-RPC server (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", DEFAULT_ETH_MAX_RESPONSE_SIZE, DEFAULT_ETH_MAX_RESPONSE_SIZE, DEFAULT_ETH_MAX_RESPONSE_SIZE, DEFAULT_ETH_MAX_RESPONSE_SIZE, DEFAULT_ETH_MAX_RESPONSE_SIZE), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); gArgs.AddArg("-ethdebug", strprintf("Enable debug_* ETH RPCs (default: %b)", DEFAULT_ETH_DEBUG_ENABLED), ArgsManager::ALLOW_ANY, OptionsCategory::RPC); gArgs.AddArg("-ethdebugtrace", strprintf("Enable debug_trace* ETH RPCs (default: %b)", DEFAULT_ETH_DEBUG_TRACE_ENABLED), ArgsManager::ALLOW_ANY, OptionsCategory::RPC); From f17c60e524c27a50619fc83caf514f55a16ce751 Mon Sep 17 00:00:00 2001 From: Niven Date: Fri, 3 Nov 2023 14:58:24 +0800 Subject: [PATCH 4/5] Switch config param to pass by megabytes instead --- src/ffi/ffiexports.cpp | 2 +- src/ffi/ffiexports.h | 2 +- src/init.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ffi/ffiexports.cpp b/src/ffi/ffiexports.cpp index c1a23563d5..345c7e3e78 100644 --- a/src/ffi/ffiexports.cpp +++ b/src/ffi/ffiexports.cpp @@ -309,7 +309,7 @@ uint32_t getEthMaxConnections() { } uint32_t getEthMaxResponseByteSize() { - const auto max_response_size_mb = gArgs.GetArg("-ethmaxresponsesize", DEFAULT_ETH_MAX_RESPONSE_SIZE); + const auto max_response_size_mb = gArgs.GetArg("-ethmaxresponsesize", DEFAULT_ETH_MAX_RESPONSE_SIZE_MB); return max_response_size_mb * 1024 * 1024; } diff --git a/src/ffi/ffiexports.h b/src/ffi/ffiexports.h index c42752b065..0e8ce0511e 100644 --- a/src/ffi/ffiexports.h +++ b/src/ffi/ffiexports.h @@ -13,7 +13,7 @@ static constexpr CAmount DEFAULT_EVM_RBF_FEE_INCREMENT = COIN / 10; // Defaults for attributes relating to networking static constexpr uint32_t DEFAULT_ETH_MAX_CONNECTIONS = 100; -static constexpr uint32_t DEFAULT_ETH_MAX_RESPONSE_SIZE = 25; // 25 megabytes +static constexpr uint32_t DEFAULT_ETH_MAX_RESPONSE_SIZE_MB = 25; // 25 megabytes static constexpr uint32_t DEFAULT_ECC_LRU_CACHE_COUNT = 10000; static constexpr uint32_t DEFAULT_EVMV_LRU_CACHE_COUNT = 10000; diff --git a/src/init.cpp b/src/init.cpp index 04b7562882..f45000cd08 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -655,7 +655,7 @@ void SetupServerArgs() gArgs.AddArg("-ethrpcport=", strprintf("Listen for ETH-JSON-RPC connections on > (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", defaultBaseParams->ETHRPCPort(), testnetBaseParams->ETHRPCPort(), changiBaseParams->ETHRPCPort(), devnetBaseParams->ETHRPCPort(), regtestBaseParams->ETHRPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); gArgs.AddArg("-wsport=", strprintf("Listen for ETH-WebSockets connections on > (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", defaultBaseParams->WSPort(), testnetBaseParams->WSPort(), changiBaseParams->WSPort(), devnetBaseParams->WSPort(), regtestBaseParams->ETHRPCPort()), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); gArgs.AddArg("-ethmaxconnections=", strprintf("Set the maximum number of connections allowed by the ETH-RPC server (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS, DEFAULT_ETH_MAX_CONNECTIONS), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); - gArgs.AddArg("-ethmaxresponsesize=", strprintf("Set the maximum response size in MB by the ETH-RPC server (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", DEFAULT_ETH_MAX_RESPONSE_SIZE, DEFAULT_ETH_MAX_RESPONSE_SIZE, DEFAULT_ETH_MAX_RESPONSE_SIZE, DEFAULT_ETH_MAX_RESPONSE_SIZE, DEFAULT_ETH_MAX_RESPONSE_SIZE), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); + gArgs.AddArg("-ethmaxresponsesize=", strprintf("Set the maximum response size in MB by the ETH-RPC server (default: %u, testnet: %u, changi: %u, devnet: %u, regtest: %u)", DEFAULT_ETH_MAX_RESPONSE_SIZE_MB, DEFAULT_ETH_MAX_RESPONSE_SIZE_MB, DEFAULT_ETH_MAX_RESPONSE_SIZE_MB, DEFAULT_ETH_MAX_RESPONSE_SIZE_MB, DEFAULT_ETH_MAX_RESPONSE_SIZE_MB), ArgsManager::ALLOW_ANY | ArgsManager::NETWORK_ONLY, OptionsCategory::RPC); gArgs.AddArg("-ethdebug", strprintf("Enable debug_* ETH RPCs (default: %b)", DEFAULT_ETH_DEBUG_ENABLED), ArgsManager::ALLOW_ANY, OptionsCategory::RPC); gArgs.AddArg("-ethdebugtrace", strprintf("Enable debug_trace* ETH RPCs (default: %b)", DEFAULT_ETH_DEBUG_TRACE_ENABLED), ArgsManager::ALLOW_ANY, OptionsCategory::RPC); From 006cc52aa065cf8c3d1d73fee4bea1780e7e18cb Mon Sep 17 00:00:00 2001 From: Niven Date: Fri, 3 Nov 2023 14:59:39 +0800 Subject: [PATCH 5/5] Fix cpp lint --- src/ffi/ffiexports.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ffi/ffiexports.cpp b/src/ffi/ffiexports.cpp index 345c7e3e78..9e266e5bb0 100644 --- a/src/ffi/ffiexports.cpp +++ b/src/ffi/ffiexports.cpp @@ -309,7 +309,7 @@ uint32_t getEthMaxConnections() { } uint32_t getEthMaxResponseByteSize() { - const auto max_response_size_mb = gArgs.GetArg("-ethmaxresponsesize", DEFAULT_ETH_MAX_RESPONSE_SIZE_MB); + const auto max_response_size_mb = gArgs.GetArg("-ethmaxresponsesize", DEFAULT_ETH_MAX_RESPONSE_SIZE_MB); return max_response_size_mb * 1024 * 1024; }