zmq: add restricted rpc mode

(cherry picked from commit 7f2cfe9294ec1fa7bece2a8069114c1b6985650f)
This commit is contained in:
selsta
2026-05-05 18:20:52 -04:00
committed by jwinterm
parent e16f0a2c28
commit 907d6dd58d
9 changed files with 217 additions and 9 deletions
+18
View File
@@ -39,6 +39,7 @@
#include "net/zmq.h"
#include "rpc/message.h"
#include "rpc/zmq_pub.h"
#include "rpc/zmq_restricted_methods.h"
#include "rpc/zmq_server.h"
#include "serialization/json_object.h"
@@ -69,6 +70,23 @@ TEST(ZmqFullMessage, Request)
EXPECT_STREQ("foo", parsed.getRequestType().c_str());
}
TEST(ZmqRestrictedMethods, BasicCoverage)
{
EXPECT_TRUE(cryptonote::rpc::is_blocked_in_restricted_mode("flush_txpool"));
EXPECT_TRUE(cryptonote::rpc::is_blocked_in_restricted_mode("get_peer_list"));
EXPECT_TRUE(cryptonote::rpc::is_blocked_in_restricted_mode("mining_status"));
EXPECT_TRUE(cryptonote::rpc::is_blocked_in_restricted_mode("relay_tx"));
EXPECT_TRUE(cryptonote::rpc::is_blocked_in_restricted_mode("save_bc"));
EXPECT_TRUE(cryptonote::rpc::is_blocked_in_restricted_mode("set_log_categories"));
EXPECT_TRUE(cryptonote::rpc::is_blocked_in_restricted_mode("set_log_level"));
EXPECT_TRUE(cryptonote::rpc::is_blocked_in_restricted_mode("start_mining"));
EXPECT_TRUE(cryptonote::rpc::is_blocked_in_restricted_mode("stop_mining"));
EXPECT_FALSE(cryptonote::rpc::is_blocked_in_restricted_mode("get_height"));
EXPECT_FALSE(cryptonote::rpc::is_blocked_in_restricted_mode("get_info"));
EXPECT_FALSE(cryptonote::rpc::is_blocked_in_restricted_mode("send_raw_tx"));
}
namespace
{
using published_json = std::pair<std::string, rapidjson::Document>;