From 0c68910229c7acc025d1c5fad8a8f7c7a0bd0bd0 Mon Sep 17 00:00:00 2001 From: Roman Khlopkov <roman.khlopkov@demlabs.net> Date: Mon, 27 Mar 2023 12:51:44 +0300 Subject: [PATCH] [*] Extended debug output for tx fee filter --- modules/chain/include/dap_chain.h | 4 ++-- modules/consensus/esbocs/dap_chain_cs_esbocs.c | 6 +++--- modules/net/dap_chain_node.c | 15 ++++++++------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/modules/chain/include/dap_chain.h b/modules/chain/include/dap_chain.h index 4f9e8c8a96..eb4085c824 100644 --- a/modules/chain/include/dap_chain.h +++ b/modules/chain/include/dap_chain.h @@ -100,7 +100,7 @@ typedef dap_list_t *(*dap_chain_callback_get_list)(dap_chain_t *a_chain, size_t typedef dap_list_t *(*dap_chain_callback_get_poa_certs)(dap_chain_t *a_chain, size_t *a_auth_certs_count, uint16_t *count_verify); typedef void (*dap_chain_callback_set_min_validators_count)(dap_chain_t *a_chain, uint16_t a_new_value); -typedef bool (*dap_chain_callback_check_tx_fee)(dap_chain_t *a_chain, uint256_t fee_value); +typedef uint256_t (*dap_chain_callback_get_minimum_fee)(dap_chain_t *a_chain); typedef void (*dap_chain_callback_load_from_gdb)(dap_chain_t *a_chain); @@ -182,7 +182,7 @@ typedef struct dap_chain { dap_chain_callback_get_poa_certs callback_get_poa_certs; dap_chain_callback_set_min_validators_count callback_set_min_validators_count; - dap_chain_callback_check_tx_fee callback_check_tx_fee; + dap_chain_callback_get_minimum_fee callback_get_minimum_fee; dap_chain_callback_load_from_gdb callback_load_from_gdb; diff --git a/modules/consensus/esbocs/dap_chain_cs_esbocs.c b/modules/consensus/esbocs/dap_chain_cs_esbocs.c index 8e7bc7eada..7569d575a7 100644 --- a/modules/consensus/esbocs/dap_chain_cs_esbocs.c +++ b/modules/consensus/esbocs/dap_chain_cs_esbocs.c @@ -51,7 +51,7 @@ static void s_callback_delete(dap_chain_cs_blocks_t *a_blocks); static int s_callback_created(dap_chain_t *a_chain, dap_config_t *a_chain_net_cfg); static size_t s_callback_block_sign(dap_chain_cs_blocks_t *a_blocks, dap_chain_block_t **a_block_ptr, size_t a_block_size); static int s_callback_block_verify(dap_chain_cs_blocks_t *a_blocks, dap_chain_block_t *a_block, size_t a_block_size); -static bool s_callback_check_tx_fee(dap_chain_t *a_chain, uint256_t l_fee); +static bool s_callback_get_minimum_fee(dap_chain_t *a_chain, uint256_t l_fee); static void s_callback_set_min_validators_count(dap_chain_t *a_chain, uint16_t a_new_value); static int s_cli_esbocs(int argc, char ** argv, char **str_reply); @@ -132,7 +132,7 @@ static int s_callback_new(dap_chain_t *a_chain, dap_config_t *a_chain_cfg) l_esbocs->_pvt = DAP_NEW_Z(dap_chain_esbocs_pvt_t); dap_chain_esbocs_pvt_t *l_esbocs_pvt = PVT(l_esbocs); - a_chain->callback_check_tx_fee = s_callback_check_tx_fee; + a_chain->callback_get_minimum_fee = s_callback_get_minimum_fee; l_esbocs_pvt->debug = dap_config_get_item_bool_default(a_chain_cfg, "esbocs", "consensus_debug", false); l_esbocs_pvt->poa_mode = dap_config_get_item_bool_default(a_chain_cfg, "esbocs", "poa_mode", false); @@ -287,7 +287,7 @@ static int s_callback_created(dap_chain_t *a_chain, dap_config_t *a_chain_net_cf return 0; } -static bool s_callback_check_tx_fee(dap_chain_t *a_chain, uint256_t l_fee) +static bool s_callback_get_minimum_fee(dap_chain_t *a_chain, uint256_t l_fee) { dap_chain_cs_blocks_t *l_blocks = DAP_CHAIN_CS_BLOCKS(a_chain); dap_chain_esbocs_t *l_esbocs = DAP_CHAIN_ESBOCS(l_blocks); diff --git a/modules/net/dap_chain_node.c b/modules/net/dap_chain_node.c index 1d14b36706..c87f581212 100644 --- a/modules/net/dap_chain_node.c +++ b/modules/net/dap_chain_node.c @@ -242,17 +242,18 @@ void dap_chain_node_mempool_process_all(dap_chain_t *a_chain, bool a_force) if (dap_chain_node_mempool_need_process(a_chain, l_datum)) { if (l_datum->header.type_id == DAP_CHAIN_DATUM_TX && - a_chain->callback_check_tx_fee){ + a_chain->callback_get_minimum_fee){ uint256_t l_tx_fee = {}; - - if (dap_chain_datum_tx_get_fee_value ((dap_chain_datum_tx_t*)l_datum->data, &l_tx_fee)) - { + if (dap_chain_datum_tx_get_fee_value ((dap_chain_datum_tx_t*)l_datum->data, &l_tx_fee)) { log_it(L_WARNING, "Can't get fee value from tx"); continue; } - - if(!a_chain->callback_check_tx_fee(a_chain, l_tx_fee)){ - log_it(L_WARNING, "Fee is lower than minimum fee value"); + uint256_t l_min_fee = a_chain->callback_get_minimum_fee(a_chain); + if (compare256(l_tx_fee, l_min_fee) < 0) { + char *l_tx_fee_str = dap_chain_balance_to_coins(l_tx_fee); + char *l_min_fee_str = dap_chain_balance_to_coins(l_min_fee); + log_it(L_WARNING, "Fee %s is lower than minimum fee %s for tx %s", + l_tx_fee_str, l_min_fee_str, l_objs[i].key); continue; } } -- GitLab