Skip to content
This repository has been archived by the owner on Mar 3, 2020. It is now read-only.

Commit

Permalink
KEP-616: Out of file handlers
Browse files Browse the repository at this point in the history
The issue is that a new daemon starting with a large state dir will
replay its entire history, sending an audit notification for each
message that's committed. For now, I'm just disabling audit by default.
In pbft, messages will not be replayed in this way so it won't be such a
concern.
  • Loading branch information
isabelsavannah committed Sep 13, 2018
1 parent d025252 commit 96293bc
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 2 deletions.
3 changes: 3 additions & 0 deletions options/simple_options.cpp
Expand Up @@ -108,6 +108,9 @@ simple_options::build_options()

po::options_description audit("Audit");
audit.add_options()
(AUDIT_ENABLED.c_str(),
po::value<bool>()->default_value(false),
"enable audit module")
(AUDIT_MEM_SIZE.c_str(),
po::value<size_t>()->default_value(10000),
"max size of audit datastructures")
Expand Down
1 change: 1 addition & 0 deletions options/simple_options.hpp
Expand Up @@ -20,6 +20,7 @@
namespace bzn::option_names
{
const std::string AUDIT_MEM_SIZE = "audit_mem_size";
const std::string AUDIT_ENABLED = "audit_enabled";
const std::string BOOTSTRAP_PEERS_FILE = "bootstrap_file";
const std::string BOOTSTRAP_PEERS_URL = "bootstrap_url";
const std::string DEBUG_LOGGING = "debug_logging";
Expand Down
6 changes: 6 additions & 0 deletions raft/raft.cpp
Expand Up @@ -1227,3 +1227,9 @@ raft::shutdown_on_exceeded_max_storage(bool do_throw)
do_throw ? throw std::runtime_error(MSG_ERROR_MAXIMUM_STORAGE_EXCEEDED) : raise(SIGINT);
}
}

void
raft::set_audit_enabled(bool val)
{
this->enable_audit = val;
}
2 changes: 2 additions & 0 deletions raft/raft.hpp
Expand Up @@ -80,6 +80,8 @@ namespace bzn

bool get_peer_validation_enabled() override { return this->enable_peer_validation; };

void set_audit_enabled(bool val);

private:
friend class raft_log_base;
friend class raft_log;
Expand Down
12 changes: 10 additions & 2 deletions swarm/main.cpp
Expand Up @@ -33,6 +33,7 @@
#include <pbft/pbft.hpp>
#include <pbft/pbft_failure_detector.hpp>
#include <raft/raft.hpp>
#include <options/simple_options.hpp>


void
Expand Down Expand Up @@ -218,7 +219,11 @@ main(int argc, const char* argv[])
auto audit = std::make_shared<bzn::audit>(io_context, node, options.get_monitor_endpoint(io_context), options.get_uuid(), options.get_audit_mem_size(), options.pbft_enabled());

node->start();
audit->start();

if (options.get_simple_options().get<bool>(bzn::option_names::AUDIT_ENABLED))
{
audit->start();
}

if (options.pbft_enabled())
{
Expand All @@ -228,6 +233,8 @@ main(int argc, const char* argv[])
, failure_detector
);

pbft->set_audit_enabled(options.get_simple_options().get<bool>(bzn::option_names::AUDIT_ENABLED));

pbft->start();
}
else
Expand All @@ -242,8 +249,9 @@ main(int argc, const char* argv[])
auto http_server = std::make_shared<bzn::http::server>(io_context, crud, ep);
auto status = std::make_shared<bzn::status>(node, bzn::status::status_provider_list_t{raft});

raft->initialize_storage_from_log(storage);
raft->set_audit_enabled(options.get_simple_options().get<bool>(bzn::option_names::AUDIT_ENABLED));

raft->initialize_storage_from_log(storage);

// These are here because they are not yet integrated with pbft
http_server->start();
Expand Down

0 comments on commit 96293bc

Please sign in to comment.