10using boost::signals2::signal;
16 struct runtime_options {
17 std::optional<int32_t> max_transaction_time;
18 std::optional<int32_t> max_irreversible_block_age;
19 std::optional<int32_t> produce_time_offset_us;
20 std::optional<int32_t> last_block_time_offset_us;
21 std::optional<int32_t> max_scheduled_transaction_time_per_block_ms;
22 std::optional<int32_t> subjective_cpu_leeway_us;
23 std::optional<double> incoming_defer_ratio;
24 std::optional<uint32_t> greylist_limit;
70 std::vector<fc::variant>
rows;
71 std::optional<account_name>
more;
75 using next_function = std::function<void(
const std::variant<fc::exception_ptr, T>&)>;
81 boost::program_options::options_description &command_line_options,
82 boost::program_options::options_description &config_file_options
89 virtual void plugin_initialize(
const boost::program_options::variables_map& options);
123 std::shared_ptr<class producer_plugin_impl> my;
128FC_REFLECT(sysio::producer_plugin::runtime_options, (max_transaction_time)(max_irreversible_block_age)(produce_time_offset_us)(last_block_time_offset_us)(max_scheduled_transaction_time_per_block_ms)(subjective_cpu_leeway_us)(incoming_defer_ratio)(greylist_limit));
virtual void plugin_initialize(const boost::program_options::variables_map &options)
APPBASE_PLUGIN_REQUIRES((chain_plugin)(http_client_plugin)) struct runtime_options
greylist_params get_greylist() const
virtual void set_program_options(boost::program_options::options_description &command_line_options, boost::program_options::options_description &config_file_options) override
chain::signature_type sign_compact(const chain::public_key_type &key, const fc::sha256 &digest) const
virtual void plugin_shutdown()
void create_snapshot(next_function< snapshot_information > next)
void remove_greylist_accounts(const greylist_params ¶ms)
runtime_options get_runtime_options() const
bool is_producer_key(const chain::public_key_type &key) const
void add_greylist_accounts(const greylist_params ¶ms)
void handle_sighup() override
fc::variants get_supported_protocol_features(const get_supported_protocol_features_params ¶ms) const
std::function< void(const std::variant< fc::exception_ptr, T > &)> next_function
virtual ~producer_plugin()
whitelist_blacklist get_whitelist_blacklist() const
void schedule_protocol_feature_activations(const scheduled_protocol_feature_activations &schedule)
void set_whitelist_blacklist(const whitelist_blacklist ¶ms)
void log_failed_transaction(const transaction_id_type &trx_id, const chain::packed_transaction_ptr &packed_trx_ptr, const char *reason) const
virtual void plugin_startup()
int64_t get_subjective_bill(const account_name &first_auth, const fc::time_point &now) const
get_account_ram_corrections_result get_account_ram_corrections(const get_account_ram_corrections_params ¶ms) const
void update_runtime_options(const runtime_options &options)
scheduled_protocol_feature_activations get_scheduled_protocol_feature_activations() const
integrity_hash_information get_integrity_hash() const
fc::sha256 digest(const T &value)
std::vector< fc::variant > variants
std::shared_ptr< const packed_transaction > packed_transaction_ptr
#define FC_REFLECT(TYPE, MEMBERS)
Specializes fc::reflector for TYPE.
Immutable except for fc::from_variant.
std::optional< account_name > upper_bound
std::optional< account_name > lower_bound
std::optional< account_name > more
std::vector< fc::variant > rows
bool exclude_unactivatable
std::vector< account_name > accounts
std::vector< chain::digest_type > protocol_features_to_activate
std::optional< flat_set< std::pair< account_name, action_name > > > action_blacklist
std::optional< flat_set< account_name > > contract_whitelist
std::optional< flat_set< account_name > > contract_blacklist
std::optional< flat_set< public_key_type > > key_blacklist
std::optional< flat_set< account_name > > actor_blacklist
std::optional< flat_set< account_name > > actor_whitelist