From 000c18c443cbb2a0bebb12de60526574ba77773b Mon Sep 17 00:00:00 2001 From: Constantin P <papizh.konstantin@demlabs.net> Date: Wed, 26 Jul 2023 11:37:41 +0000 Subject: [PATCH] Auto-online and POA rounds issues fixed --- modules/consensus/dag-poa/dap_chain_cs_dag_poa.c | 15 ++++++++------- modules/net/dap_chain_net.c | 9 +++++---- modules/type/dag/dap_chain_cs_dag.c | 3 ++- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c index dc8bcd1aeb..28c535e16b 100644 --- a/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c +++ b/modules/consensus/dag-poa/dap_chain_cs_dag_poa.c @@ -464,12 +464,15 @@ static bool s_round_event_ready_minimum_check(dap_chain_cs_dag_t *a_dag, dap_cha { dap_chain_cs_dag_poa_t *l_poa = DAP_CHAIN_CS_DAG_POA(a_dag); dap_chain_cs_dag_poa_pvt_t *l_poa_pvt = PVT(l_poa); - if ( a_event->header.signs_count < l_poa_pvt->auth_certs_count_verify) + if ( a_event->header.signs_count < l_poa_pvt->auth_certs_count_verify) { + log_it(L_INFO, "Round event %s hasn't got enough signs yet: %u < %u", + a_event_hash_hex_str, a_event->header.signs_count, l_poa_pvt->auth_certs_count_verify); return false; + } int l_ret_event_verify = s_callback_event_verify(a_dag, a_event, a_event_size); if (l_ret_event_verify == 0) return true; - log_it(L_ERROR,"Round auto-complete error! Event %s is not passing consensus verification, ret code %d\n", + log_it(L_ERROR, "Round auto-complete error! Event %s is not passing consensus verification, ret code %d\n", a_event_hash_hex_str, l_ret_event_verify ); return false; } @@ -791,7 +794,6 @@ static int s_callback_event_round_sync(dap_chain_cs_dag_t * a_dag, const char a_ dap_chain_cs_dag_event_round_item_t *l_round_item = (dap_chain_cs_dag_event_round_item_t *)a_value; size_t l_event_size = l_round_item->event_size; dap_chain_cs_dag_event_t *l_event = (dap_chain_cs_dag_event_t*)DAP_DUP_SIZE(l_round_item->event_n_signs, l_event_size); - if (l_event->header.round_id < a_dag->round_completed) { struct round_timer_arg *l_round_active; uint64_t l_round_id = l_event->header.round_id; @@ -805,7 +807,6 @@ static int s_callback_event_round_sync(dap_chain_cs_dag_t * a_dag, const char a_ return -2; } } - if (dap_chain_cs_dag_event_sign_exists(l_event, l_event_size, l_poa_pvt->events_sign_cert->enc_key) || dap_chain_cs_dag_event_round_sign_exists(l_round_item, l_poa_pvt->events_sign_cert->enc_key)) { // if my sign exists @@ -823,9 +824,9 @@ static int s_callback_event_round_sync(dap_chain_cs_dag_t * a_dag, const char a_ !(ret = l_poa_pvt->callback_pre_sign->callback(a_dag->chain, l_event, l_event_size, l_poa_pvt->callback_pre_sign->arg))) { l_event_size_new = dap_chain_cs_dag_event_sign_add(&l_event, l_event_size, l_poa_pvt->events_sign_cert->enc_key); - char *l_event_new_hash_hex_str; - dap_get_data_hash_str_static(l_event, l_event_size_new, l_event_new_hash_hex_str); - dap_chain_cs_dag_event_gdb_set(a_dag, l_event_new_hash_hex_str, l_event, l_event_size_new, l_round_item); + //char *l_event_new_hash_hex_str; + //dap_get_data_hash_str_static(l_event, l_event_size_new, l_event_new_hash_hex_str); + dap_chain_cs_dag_event_gdb_set(a_dag, /*l_event_new_hash_hex_str*/ (char*)a_key, l_event, l_event_size_new, l_round_item); } else { // set sign for reject l_round_item = DAP_DUP_SIZE(a_value, a_value_size); if (dap_chain_cs_dag_event_round_sign_add(&l_round_item, a_value_size, l_poa_pvt->events_sign_cert->enc_key)) { diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index c4062c9352..1cf47808c2 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -2692,7 +2692,8 @@ int s_net_init(const char * a_net_name, uint16_t a_acl_idx) closedir(l_chains_dir); return -1; } - l_chain_prior->prior = dap_config_get_item_uint16_default(l_cfg, "chain", "load_priority", 100); + l_chain_prior->prior = dap_config_get_item_uint16_default(l_cfg_new, "chain", "load_priority", 100); + log_it(L_DEBUG, "Chain priority: %u", l_chain_prior->prior); l_chain_prior->chains_path = l_chains_path; // add chain to load list; l_prior_list = dap_list_append(l_prior_list, l_chain_prior); @@ -2750,7 +2751,7 @@ int s_net_init(const char * a_net_name, uint16_t a_acl_idx) break; case NODE_ROLE_FULL: l_ledger_flags |= DAP_CHAIN_LEDGER_CHECK_LOCAL_DS; - if (dap_config_get_item_bool_default(g_config, "ledger", "cache_enabled", true)) + if (dap_config_get_item_bool_default(g_config, "ledger", "cache_enabled", false)) l_ledger_flags |= DAP_CHAIN_LEDGER_CACHE_ENABLED; default: l_ledger_flags |= DAP_CHAIN_LEDGER_CHECK_CELLS_DS | DAP_CHAIN_LEDGER_CHECK_TOKEN_EMISSION; @@ -2877,8 +2878,8 @@ int s_net_load(dap_chain_net_t *a_net) } if (!l_net_pvt->only_static_links) l_net_pvt->only_static_links = dap_config_get_item_bool_default(l_cfg, "general", "links_static_only", false); - if (!dap_config_get_item_bool_default(g_config ,"general", "auto_online", false)) - l_target_state = NET_STATE_OFFLINE; + if (dap_config_get_item_bool_default(g_config ,"general", "auto_online", false)) + l_target_state = NET_STATE_ONLINE; l_net_pvt->load_mode = false; if (l_net->pub.ledger) diff --git a/modules/type/dag/dap_chain_cs_dag.c b/modules/type/dag/dap_chain_cs_dag.c index c5fc12cc5e..bcdef7ed06 100644 --- a/modules/type/dag/dap_chain_cs_dag.c +++ b/modules/type/dag/dap_chain_cs_dag.c @@ -191,8 +191,9 @@ static void s_history_callback_round_notify(dap_global_db_context_t *a_context, if (a_obj->type == DAP_DB$K_OPTYPE_ADD && l_dag->callback_cs_event_round_sync) { if (!l_dag->broadcast_disable) dap_chain_cs_dag_event_broadcast(l_dag, a_obj, a_context); - if (dap_strcmp(a_obj->key, DAG_ROUND_CURRENT_KEY)) // check key for round increment, if no than process event + if (dap_strcmp(a_obj->key, DAG_ROUND_CURRENT_KEY)) { // check key for round increment, if no than process event l_dag->callback_cs_event_round_sync(l_dag, a_obj->type, a_obj->group, a_obj->key, a_obj->value, a_obj->value_len); + } } } -- GitLab