From 7237ef618f1dd3ba579ae800494b3deac5a52de3 Mon Sep 17 00:00:00 2001 From: Daniel Larimer Date: Fri, 18 Sep 2015 14:22:20 -0400 Subject: [PATCH] making full node more configurable and passing relevant info to web api --- programs/full_web_node/BlockChain.cpp | 10 +++++++--- programs/full_web_node/BlockChain.hpp | 2 ++ programs/full_web_node/qml/main.qml | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/programs/full_web_node/BlockChain.cpp b/programs/full_web_node/BlockChain.cpp index a3e306c1..87f05edc 100644 --- a/programs/full_web_node/BlockChain.cpp +++ b/programs/full_web_node/BlockChain.cpp @@ -13,6 +13,7 @@ #include #include #include +#include BlockChain::BlockChain() : chainThread(new fc::thread("chainThread")), @@ -34,14 +35,17 @@ void BlockChain::start() { startFuture = chainThread->async([this] { try { + QSettings settings; + rpcEndpoint = settings.value( "rpc-endpoint", "127.0.0.1:8091" ).value(); + auto seed_node = settings.value( "seed-node", "104.236.51.238:1776" ).value().toStdString(); grapheneApp->register_plugin(); grapheneApp->register_plugin(); QString dataDir = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation); QDir(dataDir).mkpath("."); boost::program_options::variables_map map; - map.insert({"rpc-endpoint",boost::program_options::variable_value(std::string("127.0.0.1:8091"), false)}); - map.insert({"seed-node",boost::program_options::variable_value(std::vector{("104.200.28.117:61705")}, false)}); + map.insert({"rpc-endpoint",boost::program_options::variable_value(rpcEndpoint.toStdString(), false)}); + map.insert({"seed-node",boost::program_options::variable_value(std::vector{(seed_node)}, false)}); grapheneApp->initialize(dataDir.toStdString(), map); grapheneApp->initialize_plugins(map); grapheneApp->startup(); @@ -52,7 +56,7 @@ void BlockChain::start() webPermissions.password_hash_b64 = fc::base64_encode(passHash.data(), passHash.data_size()); webPermissions.password_salt_b64 = fc::base64_encode(""); webPermissions.allowed_apis = {"database_api", "network_broadcast_api", "network_node_api", "history_api"}; - grapheneApp->set_api_access_info(webUsername.toStdString(), std::move(webPermissions)); + grapheneApp->set_api_access_info(webUsername.toStdString(), std::move(webPermissions) ); } catch (const fc::exception& e) { elog("Crap went wrong: ${e}", ("e", e.to_detail_string())); } diff --git a/programs/full_web_node/BlockChain.hpp b/programs/full_web_node/BlockChain.hpp index fbb45183..8afd8c91 100644 --- a/programs/full_web_node/BlockChain.hpp +++ b/programs/full_web_node/BlockChain.hpp @@ -12,12 +12,14 @@ class BlockChain : public QObject { Q_OBJECT Q_PROPERTY(QString webUsername MEMBER webUsername CONSTANT) Q_PROPERTY(QString webPassword MEMBER webPassword CONSTANT) + Q_PROPERTY(QString rpcEndpoint MEMBER rpcEndpoint CONSTANT) fc::thread* chainThread; graphene::app::application* grapheneApp; fc::future startFuture; QString webUsername; QString webPassword; + QString rpcEndpoint; public: BlockChain(); diff --git a/programs/full_web_node/qml/main.qml b/programs/full_web_node/qml/main.qml index 26f9786d..24375246 100644 --- a/programs/full_web_node/qml/main.qml +++ b/programs/full_web_node/qml/main.qml @@ -13,7 +13,7 @@ Window { BlockChain { id: blockChain onStarted: { - var url = "qrc:/index.html#auth/" + webUsername + ":" + webPassword + var url = "qrc:/index.html#auth/" + webUsername + ":" + webPassword + ":" + rpcEndpoint console.log("Loading %1 in web view".arg(url)) webView.url = url }