Skip to content

Commit

Permalink
Merge branch 'main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
PinelliaC authored Apr 25, 2023
2 parents a358912 + 4a4ed57 commit e585d0e
Show file tree
Hide file tree
Showing 20 changed files with 77 additions and 94 deletions.
11 changes: 11 additions & 0 deletions libraries/chain/controller.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <eosio/chain/protocol_feature_manager.hpp>
#include <eosio/chain/authorization_manager.hpp>
#include <eosio/chain/resource_limits.hpp>
#include <eosio/chain/subjective_billing.hpp>
#include <eosio/chain/chain_snapshot.hpp>
#include <eosio/chain/thread_utils.hpp>
#include <eosio/chain/platform_timer.hpp>
Expand Down Expand Up @@ -232,6 +233,7 @@ struct controller_impl {
block_state_ptr head;
fork_database fork_db;
resource_limits_manager resource_limits;
subjective_billing subjective_bill;
authorization_manager authorization;
protocol_feature_manager protocol_features;
controller::config conf;
Expand Down Expand Up @@ -2767,6 +2769,15 @@ const protocol_feature_manager& controller::get_protocol_feature_manager()const
return my->protocol_features;
}

const subjective_billing& controller::get_subjective_billing()const {
return my->subjective_bill;
}

subjective_billing& controller::get_mutable_subjective_billing() {
return my->subjective_bill;
}


uint32_t controller::get_max_nonprivileged_inline_action_size()const
{
return my->conf.max_nonprivileged_inline_action_size;
Expand Down
3 changes: 3 additions & 0 deletions libraries/chain/include/eosio/chain/controller.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ namespace eosio { namespace chain {
class permission_object;
class account_object;
class deep_mind_handler;
class subjective_billing;
using resource_limits::resource_limits_manager;
using apply_handler = std::function<void(apply_context&)>;
using forked_branch_callback = std::function<void(const branch_type&)>;
Expand Down Expand Up @@ -197,6 +198,8 @@ namespace eosio { namespace chain {
const authorization_manager& get_authorization_manager()const;
authorization_manager& get_mutable_authorization_manager();
const protocol_feature_manager& get_protocol_feature_manager()const;
const subjective_billing& get_subjective_billing()const;
subjective_billing& get_mutable_subjective_billing();
uint32_t get_max_nonprivileged_inline_action_size()const;

const flat_set<account_name>& get_actor_whitelist() const;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
#include <boost/multi_index/hashed_index.hpp>
#include <boost/multi_index/ordered_index.hpp>

namespace eosio {
namespace eosio::chain {

class subjective_billing {
private:
Expand Down Expand Up @@ -92,7 +92,7 @@ class subjective_billing {

public: // public for tests
static constexpr uint32_t subjective_time_interval_ms = 5'000;
size_t get_account_cache_size() {return _account_subjective_bill_cache.size();}
size_t get_account_cache_size() const {return _account_subjective_bill_cache.size();}
void remove_subjective_billing( const chain::transaction_id_type& trx_id, uint32_t time_ordinal ) {
auto& idx = _trx_cache_index.get<by_id>();
auto itr = idx.find( trx_id );
Expand Down Expand Up @@ -149,9 +149,6 @@ class subjective_billing {
}
}

void abort_block() {
}

void on_block( fc::logger& log, const chain::block_state_ptr& bsp, const fc::time_point& now ) {
if( bsp == nullptr || _disabled ) return;
const auto time_ordinal = time_ordinal_for(now);
Expand Down Expand Up @@ -200,4 +197,4 @@ class subjective_billing {
}
};

} //eosio
} //eosio::chain
2 changes: 1 addition & 1 deletion libraries/cli11/cli11
2 changes: 1 addition & 1 deletion libraries/eos-vm
2 changes: 1 addition & 1 deletion libraries/libfc/libraries/bn256
4 changes: 2 additions & 2 deletions plugins/chain_plugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ if(EOSIO_ENABLE_DEVELOPER_OPTIONS)
target_compile_definitions(chain_plugin PUBLIC EOSIO_DEVELOPER)
endif()

target_link_libraries( chain_plugin producer_plugin eosio_chain appbase resource_monitor_plugin )
target_include_directories( chain_plugin PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/../chain_interface/include" "${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/appbase/include" "${CMAKE_CURRENT_SOURCE_DIR}/../producer_plugin/include" "${CMAKE_CURRENT_SOURCE_DIR}/../resource_monitor_plugin/include")
target_link_libraries( chain_plugin eosio_chain custom_appbase appbase resource_monitor_plugin )
target_include_directories( chain_plugin PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_SOURCE_DIR}/../chain_interface/include" "${CMAKE_CURRENT_SOURCE_DIR}/../../libraries/appbase/include" "${CMAKE_CURRENT_SOURCE_DIR}/../resource_monitor_plugin/include")

add_subdirectory( test )
18 changes: 6 additions & 12 deletions plugins/chain_plugin/chain_plugin.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#include <eosio/chain_plugin/chain_plugin.hpp>
#include <eosio/chain_plugin/trx_retry_db.hpp>
#include <eosio/producer_plugin/producer_plugin.hpp>
#include <eosio/chain/fork_database.hpp>
#include <eosio/chain/block_log.hpp>
#include <eosio/chain/exceptions.hpp>
Expand All @@ -12,6 +11,7 @@
#include <eosio/chain/controller.hpp>
#include <eosio/chain/generated_transaction_object.hpp>
#include <eosio/chain/snapshot.hpp>
#include <eosio/chain/subjective_billing.hpp>
#include <eosio/chain/deep_mind.hpp>
#include <eosio/chain_plugin/trx_finality_status_processing.hpp>
#include <eosio/chain/permission_link_object.hpp>
Expand Down Expand Up @@ -184,7 +184,6 @@ class chain_plugin_impl {


std::optional<chain_apis::account_query_db> _account_query_db;
const producer_plugin* producer_plug;
std::optional<chain_apis::trx_retry_db> _trx_retry_db;
chain_apis::trx_finality_status_processing_ptr _trx_finality_status_processing;
};
Expand All @@ -197,7 +196,7 @@ chain_plugin::chain_plugin()
app().register_config_type<eosio::chain::wasm_interface::vm_type>();
}

chain_plugin::~chain_plugin(){}
chain_plugin::~chain_plugin() = default;

void chain_plugin::set_program_options(options_description& cli, options_description& cfg)
{
Expand Down Expand Up @@ -1092,9 +1091,6 @@ void chain_plugin::plugin_startup()
EOS_ASSERT( my->chain_config->read_mode != db_read_mode::IRREVERSIBLE || !accept_transactions(), plugin_config_exception,
"read-mode = irreversible. transactions should not be enabled by enable_accept_transactions" );
try {
my->producer_plug = app().find_plugin<producer_plugin>();
EOS_ASSERT(my->producer_plug, plugin_exception, "Failed to find producer_plugin");

auto shutdown = [](){ return app().quit(); };
auto check_shutdown = [](){ return app().is_quiting(); };
if (my->snapshot_path) {
Expand Down Expand Up @@ -1179,7 +1175,7 @@ chain_apis::read_write chain_plugin::get_read_write_api(const fc::microseconds&
}

chain_apis::read_only chain_plugin::get_read_only_api(const fc::microseconds& http_max_response_time) const {
return chain_apis::read_only(chain(), my->_account_query_db, get_abi_serializer_max_time(), http_max_response_time, my->producer_plug, my->_trx_finality_status_processing.get());
return chain_apis::read_only(chain(), my->_account_query_db, get_abi_serializer_max_time(), http_max_response_time, my->_trx_finality_status_processing.get());
}


Expand Down Expand Up @@ -2401,11 +2397,9 @@ read_only::get_account_return_t read_only::get_account( const get_account_params
}
result.ram_usage = rm.get_account_ram_usage( result.account_name );

if ( producer_plug ) { // producer_plug is null when called from chain_plugin_tests.cpp and get_table_tests.cpp
eosio::chain::resource_limits::account_resource_limit subjective_cpu_bill_limit;
subjective_cpu_bill_limit.used = producer_plug->get_subjective_bill( result.account_name, fc::time_point::now() );
result.subjective_cpu_bill_limit = subjective_cpu_bill_limit;
}
eosio::chain::resource_limits::account_resource_limit subjective_cpu_bill_limit;
subjective_cpu_bill_limit.used = db.get_subjective_billing().get_subjective_bill( result.account_name, fc::time_point::now() );
result.subjective_cpu_bill_limit = subjective_cpu_bill_limit;

const auto linked_action_map = ([&](){
const auto& links = d.get_index<permission_link_index,by_permission_name>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,6 @@ namespace eosio {
using chain::abi_resolver;
using chain::packed_transaction;

class producer_plugin;

namespace chain_apis {
struct empty{};

Expand Down Expand Up @@ -128,7 +126,6 @@ class read_only : public api_base {
const fc::microseconds abi_serializer_max_time;
const fc::microseconds http_max_response_time;
bool shorten_abi_errors = true;
const producer_plugin* producer_plug;
const trx_finality_status_processing* trx_finality_status_proc;
friend class api_base;

Expand All @@ -137,13 +134,11 @@ class read_only : public api_base {

read_only(const controller& db, const std::optional<account_query_db>& aqdb,
const fc::microseconds& abi_serializer_max_time, const fc::microseconds& http_max_response_time,
const producer_plugin* producer_plug,
const trx_finality_status_processing* trx_finality_status_proc)
: db(db)
, aqdb(aqdb)
, abi_serializer_max_time(abi_serializer_max_time)
, http_max_response_time(http_max_response_time)
, producer_plug(producer_plug)
, trx_finality_status_proc(trx_finality_status_proc) {
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,6 @@ class producer_plugin : public appbase::plugin<producer_plugin> {

bool is_producer_key(const chain::public_key_type& key) const;
chain::signature_type sign_compact(const chain::public_key_type& key, const fc::sha256& digest) const;
int64_t get_subjective_bill( const account_name& first_auth, const fc::time_point& now ) const;

virtual void plugin_initialize(const boost::program_options::variables_map& options);
virtual void plugin_startup();
Expand Down
Loading

0 comments on commit e585d0e

Please sign in to comment.