29 #include <fc/thread/future.hpp>
32 #define RESERVE_RATIO_PRECISION ((int64_t)10000)
33 #define RESERVE_RATIO_MIN_INCREMENT ((int64_t)5000)
38 using protocol::public_key_type;
39 using app::application;
42 namespace block_production_condition {
77 boost::program_options::options_description& config_file_options)
override;
81 _production_enabled = allow;
84 virtual void plugin_initialize(
const boost::program_options::variables_map& options)
override;
89 void schedule_production_loop();
90 void block_production_loop();
92 maybe_produce_block(fc::mutable_variant_object& capture);
94 boost::program_options::variables_map _options;
95 bool _production_enabled =
false;
100 fc::time_point _hash_start_time;
102 std::map<public_key_type, fc::ecc::private_key> _private_keys;
103 std::set<std::string> _witnesses;
104 fc::future<void> _block_production_task;
107 std::unique_ptr<detail::witness_plugin_impl> _my;
application & app() const
virtual void plugin_initialize(const boost::program_options::variables_map &options) override
Perform early startup routines and register plugin indexes, callbacks, etc.
virtual void plugin_startup() override
Begin normal runtime operations.
witness_plugin(application *app)
virtual void plugin_set_program_options(boost::program_options::options_description &command_line_options, boost::program_options::options_description &config_file_options) override
Fill in command line parameters used by the plugin.
virtual ~witness_plugin()
virtual void plugin_shutdown() override
Cleanly shut down the plugin.
void set_block_production(bool allow)
std::string plugin_name() const override
FC_REFLECT_ENUM(scorum::protocol::game_status,(created)(started)(finished)(resolved)(expired)(cancelled)) namespace fc
fc::ripemd160 block_id_type
block_production_condition_enum
@ exception_producing_block