diff --git a/dap-sdk b/dap-sdk index 75d58d14098ac8730c35bb6b8a449568a505c5c1..f57a08d56b0f01200fb5f7b9edde9977e13aefa5 160000 --- a/dap-sdk +++ b/dap-sdk @@ -1 +1 @@ -Subproject commit 75d58d14098ac8730c35bb6b8a449568a505c5c1 +Subproject commit f57a08d56b0f01200fb5f7b9edde9977e13aefa5 diff --git a/modules/chain/dap_chain.c b/modules/chain/dap_chain.c index e80f20dfed1182517cadf95d6e558a40ec4a2009..a09641236e9366f5a51718a70cb9ca72ea8b3233 100644 --- a/modules/chain/dap_chain.c +++ b/modules/chain/dap_chain.c @@ -591,7 +591,7 @@ bool download_notify_callback(dap_chain_t* a_chain) { json_object_object_add(l_chain_info, "chain_id", json_object_new_uint64(a_chain->id.uint64)); json_object_object_add(l_chain_info, "load_progress", json_object_new_int(a_chain->load_progress)); dap_notify_server_send_mt(json_object_get_string(l_chain_info)); - log_it(L_DEBUG, "Loading net \"%s\", chain %" DAP_UINT64_FORMAT_U " [%d%%]", a_chain->net_name, a_chain->id.uint64, a_chain->load_progress); + log_it(L_DEBUG, "Loading net \"%s\", chain \"%s\", ID 0x%016"DAP_UINT64_FORMAT_x " [%d%%]", a_chain->net_name, a_chain->name, a_chain->id.uint64, a_chain->load_progress); json_object_put(l_chain_info); return true; } diff --git a/modules/consensus/esbocs/dap_chain_cs_esbocs.c b/modules/consensus/esbocs/dap_chain_cs_esbocs.c index 28daa031aa561c32bd8dfa4df587deb6f536a5e1..8e58e91ba550621f26b917d60d1add49fcc75243 100644 --- a/modules/consensus/esbocs/dap_chain_cs_esbocs.c +++ b/modules/consensus/esbocs/dap_chain_cs_esbocs.c @@ -542,7 +542,7 @@ static int s_callback_created(dap_chain_t *a_chain, dap_config_t *a_chain_net_cf l_sync_group, 72 * 3600, true, DAP_GDB_MEMBER_ROLE_NOBODY, DAP_CLUSTER_TYPE_AUTONOMIC); dap_link_manager_add_net_associate(l_net->pub.id.uint64, l_session->db_cluster->links_cluster); - dap_global_db_del_sync(l_sync_group, NULL); // Drop table on stratup + dap_global_db_erase_table_sync(l_sync_group); // Drop table on stratup DAP_DELETE(l_sync_group); #ifdef DAP_CHAIN_CS_ESBOCS_DIRECTIVE_SUPPORT diff --git a/modules/net/dap_chain_ledger.c b/modules/net/dap_chain_ledger.c index 1175e39508913ef9da5a303c96b276dbc9f3737d..8f1c8a6d2a71f17c39f68a1f0f7ed96b546f4c6c 100644 --- a/modules/net/dap_chain_ledger.c +++ b/modules/net/dap_chain_ledger.c @@ -5103,13 +5103,13 @@ void dap_ledger_purge(dap_ledger_t *a_ledger, bool a_preserve_db) } if (!a_preserve_db) { l_gdb_group = dap_ledger_get_gdb_group(a_ledger, DAP_LEDGER_TXS_STR); - dap_global_db_del(l_gdb_group, NULL, NULL, NULL); + dap_global_db_erase_table(l_gdb_group, NULL, NULL); DAP_DELETE(l_gdb_group); } if (!a_preserve_db) { l_gdb_group = dap_ledger_get_gdb_group(a_ledger, DAP_LEDGER_SPENT_TXS_STR); - dap_global_db_del(l_gdb_group, NULL, NULL, NULL); + dap_global_db_erase_table(l_gdb_group, NULL, NULL); DAP_DELETE(l_gdb_group); } @@ -5122,7 +5122,7 @@ void dap_ledger_purge(dap_ledger_t *a_ledger, bool a_preserve_db) } if (!a_preserve_db) { l_gdb_group = dap_ledger_get_gdb_group(a_ledger, DAP_LEDGER_BALANCES_STR); - dap_global_db_del(l_gdb_group, NULL, NULL, NULL); + dap_global_db_erase_table(l_gdb_group, NULL, NULL); DAP_DELETE(l_gdb_group); } @@ -5150,10 +5150,10 @@ void dap_ledger_purge(dap_ledger_t *a_ledger, bool a_preserve_db) } if (!a_preserve_db) { l_gdb_group = dap_ledger_get_gdb_group(a_ledger, DAP_LEDGER_TOKENS_STR); - dap_global_db_del(l_gdb_group, NULL, NULL, NULL); + dap_global_db_erase_table(l_gdb_group, NULL, NULL); DAP_DELETE(l_gdb_group); l_gdb_group = dap_ledger_get_gdb_group(a_ledger, DAP_LEDGER_EMISSIONS_STR); - dap_global_db_del(l_gdb_group, NULL, NULL, NULL); + dap_global_db_erase_table(l_gdb_group, NULL, NULL); DAP_DELETE(l_gdb_group); } @@ -5165,7 +5165,7 @@ void dap_ledger_purge(dap_ledger_t *a_ledger, bool a_preserve_db) } if (!a_preserve_db) { l_gdb_group = dap_ledger_get_gdb_group(a_ledger, DAP_LEDGER_STAKE_LOCK_STR); - dap_global_db_del(l_gdb_group, NULL, NULL, NULL); + dap_global_db_erase_table(l_gdb_group, NULL, NULL); DAP_DELETE(l_gdb_group); } diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c index 8185ae38589468497113b1370d3175dea8676d1c..aef3be7face0233a03964fdf3348a67c0f12ff54 100644 --- a/modules/net/dap_chain_net.c +++ b/modules/net/dap_chain_net.c @@ -440,6 +440,7 @@ int dap_chain_net_link_add(dap_chain_net_t *a_net, dap_stream_node_addr_t *a_add int rc = dap_link_manager_link_update(a_addr, a_host, a_port); if (rc) log_it(L_ERROR, "Can't update link to addr " NODE_ADDR_FP_STR, NODE_ADDR_FP_ARGS(a_addr)); + log_it(L_DEBUG, "Link "NODE_ADDR_FP_STR" successfully added", NODE_ADDR_FP_ARGS(a_addr)); return rc; } @@ -472,8 +473,10 @@ static void s_link_manager_callback_connected(dap_link_t *a_link, uint64_t a_net } dap_stream_ch_chain_net_pkt_hdr_t l_announce = { .version = DAP_STREAM_CH_CHAIN_NET_PKT_VERSION, .net_id = l_net->pub.id }; - dap_stream_ch_pkt_send_by_addr(&a_link->addr, DAP_STREAM_CH_CHAIN_NET_ID, DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_ANNOUNCE, - &l_announce, sizeof(l_announce)); + if(dap_stream_ch_pkt_send_by_addr(&a_link->addr, DAP_STREAM_CH_CHAIN_NET_ID, DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_ANNOUNCE, + &l_announce, sizeof(l_announce))) { + dap_link_manager_accounting_link_in_net(l_net->pub.id.uint64, &a_link->addr, false); + } } static bool s_net_check_link_is_permanent(dap_chain_net_t *a_net, dap_stream_node_addr_t a_addr) @@ -2169,7 +2172,6 @@ int s_net_init(const char *a_net_name, uint16_t a_acl_idx) l_net->pub.ledger = dap_ledger_create(l_net, l_ledger_flags); // Decrees initializing dap_chain_net_decree_init(l_net); - l_net->pub.config = l_cfg; return 0; } diff --git a/modules/net/dap_chain_net_balancer.c b/modules/net/dap_chain_net_balancer.c index 464500889601e4e72ad3a26fd17ce17efa164b25..1460bce84e96d0110971b376ba051e6a47e98653 100644 --- a/modules/net/dap_chain_net_balancer.c +++ b/modules/net/dap_chain_net_balancer.c @@ -91,11 +91,26 @@ static dap_chain_net_links_t *s_get_ignored_node_addrs(dap_chain_net_t *a_net, s const dap_stream_node_addr_t *l_curr_addr = &dap_chain_net_get_my_node_info(a_net)->address, *l_uplinks = dap_link_manager_get_net_links_addrs(a_net->pub.id.uint64, &l_uplinks_count, NULL, true), - *l_low_availability = dap_link_manager_get_ignored_addrs(&l_low_availability_count); + *l_low_availability = dap_link_manager_get_ignored_addrs(&l_low_availability_count, a_net->pub.id.uint64); if(!l_curr_addr->uint64 && !l_uplinks && !l_low_availability) { log_it(L_WARNING, "Error forming ignore list in net %s, please check, should be minimum self addr", a_net->pub.name); return NULL; } + if (dap_log_level_get() <= L_DEBUG ) { + char *l_ignored_str = NULL; + DAP_NEW_Z_SIZE_RET_VAL(l_ignored_str, char, 50 * (l_uplinks_count + l_low_availability_count + 1) + 200 + strlen(a_net->pub.name), NULL, l_uplinks, l_low_availability); + sprintf(l_ignored_str + strlen(l_ignored_str), "Second %zu nodes will be ignored in balancer links preparing in net %s:\n\tSelf:\n\t\t"NODE_ADDR_FP_STR"\n", l_uplinks_count + l_low_availability_count + 1, a_net->pub.name, NODE_ADDR_FP_ARGS(l_curr_addr)); + sprintf(l_ignored_str + strlen(l_ignored_str), "\tUplinks (%zu):\n", l_uplinks_count); + for (size_t i = 0; i < l_uplinks_count; ++i) { + sprintf(l_ignored_str + strlen(l_ignored_str), "\t\t"NODE_ADDR_FP_STR"\n", NODE_ADDR_FP_ARGS(l_uplinks + i)); + } + sprintf(l_ignored_str + strlen(l_ignored_str), "\tCooling (%zu):\n", l_low_availability_count); + for (size_t i = 0; i < l_low_availability_count; ++i) { + sprintf(l_ignored_str + strlen(l_ignored_str), "\t\t"NODE_ADDR_FP_STR"\n", NODE_ADDR_FP_ARGS(l_low_availability + i)); + } + log_it(L_DEBUG, "%s", l_ignored_str); + DAP_DELETE(l_ignored_str); + } l_size = sizeof(dap_chain_net_links_t) + sizeof(dap_stream_node_addr_t) * (l_uplinks_count + l_low_availability_count + 1); // memory alloc dap_chain_net_links_t *l_ret = NULL; @@ -122,11 +137,21 @@ static dap_chain_net_links_t *s_get_ignored_node_addrs(dap_chain_net_t *a_net, s static void s_balancer_link_prepare_success(dap_chain_net_t* a_net, dap_chain_net_links_t *a_link_full_node_list, const char* a_host_addr, uint16_t a_host_port) { char l_err_str[128] = {0}; + if (dap_log_level_get() <= L_DEBUG ) { + char *l_links_str = NULL; + DAP_NEW_Z_SIZE_RET(l_links_str, char, (DAP_HOSTADDR_STRLEN + 50) * a_link_full_node_list->count_node + 200 + strlen(a_net->pub.name), NULL); + sprintf(l_links_str + strlen(l_links_str), "Second %"DAP_UINT64_FORMAT_U" links was prepared from balancer in net %s:\n", a_link_full_node_list->count_node, a_net->pub.name); + for (size_t i = 0; i < a_link_full_node_list->count_node; ++i) { + dap_link_info_t *l_link_info = (dap_link_info_t *)a_link_full_node_list->nodes_info + i; + sprintf(l_links_str + strlen(l_links_str), "\t"NODE_ADDR_FP_STR " [ %s : %u ]\n", + NODE_ADDR_FP_ARGS_S(l_link_info->node_addr), l_link_info->uplink_addr, l_link_info->uplink_port); + } + log_it(L_DEBUG, "%s", l_links_str); + DAP_DELETE(l_links_str); + } struct json_object *l_json; for (size_t i = 0; i < a_link_full_node_list->count_node; ++i) { dap_link_info_t *l_link_info = (dap_link_info_t *)a_link_full_node_list->nodes_info + i; - log_it(L_DEBUG,"Link " NODE_ADDR_FP_STR " [ %s : %u ] prepare success", - NODE_ADDR_FP_ARGS_S(l_link_info->node_addr), l_link_info->uplink_addr, l_link_info->uplink_port); if (dap_chain_net_link_add(a_net, &l_link_info->node_addr, l_link_info->uplink_addr, l_link_info->uplink_port)) continue; l_json = s_balancer_states_json_collect(a_net, a_host_addr, a_host_port); @@ -136,8 +161,6 @@ static void s_balancer_link_prepare_success(dap_chain_net_t* a_net, dap_chain_ne json_object_object_add(l_json, "errorMessage", json_object_new_string(l_err_str)); dap_notify_server_send_mt(json_object_get_string(l_json)); json_object_put(l_json); - log_it(L_DEBUG, "Link "NODE_ADDR_FP_STR" successfully added", - NODE_ADDR_FP_ARGS_S(l_link_info->node_addr)); } } diff --git a/modules/net/dap_chain_node.c b/modules/net/dap_chain_node.c index 11cf64eb6bcf0f08c7dc32ce0435b22e34e7bdae..d530ede2b7aee567857a50e890a89168210073f2 100644 --- a/modules/net/dap_chain_node.c +++ b/modules/net/dap_chain_node.c @@ -61,7 +61,7 @@ static const uint64_t s_cmp_delta_timestamp = (uint64_t)1000 /*sec*/ * (uint64_t static const uint64_t s_cmp_delta_event = 0; static const uint64_t s_cmp_delta_atom = 10; static const uint64_t s_timer_update_states_info = 10 /*sec*/ * 1000; -static const char *s_states_group = ".nodes.states"; +static const char s_states_group[] = ".nodes.states"; /** * @brief get states info about current @@ -474,7 +474,7 @@ dap_list_t *dap_chain_node_get_states_list_sort(dap_chain_net_t *a_net, dap_chai log_it(L_DEBUG, "Can't find state about %s node, apply low priority", l_objs[i].key); l_item->downlinks_count = (uint32_t)(-1); } else if (l_data_size != sizeof(dap_chain_node_net_states_info_t) + (l_state_store_obj->uplinks_count + l_state_store_obj->downlinks_count) * sizeof(dap_chain_node_addr_t)) { - log_it(L_DEBUG, "Wrong %s node record size, expected %zu, get %zu", l_objs[i].key, sizeof(dap_chain_node_net_states_info_t) + (l_state_store_obj->uplinks_count + l_state_store_obj->downlinks_count) * sizeof(dap_chain_node_addr_t), l_data_size); + log_it(L_DEBUG, "Wrong %s node state record size, expected %zu, get %zu. Apply low priority", l_objs[i].key, sizeof(dap_chain_node_net_states_info_t) + (l_state_store_obj->uplinks_count + l_state_store_obj->downlinks_count) * sizeof(dap_chain_node_addr_t), l_data_size); l_item->downlinks_count = (uint32_t)(-1); } else { l_item->atoms_count = l_state_store_obj->atoms_count; diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index c78ef1d0a471d1c72018bcd44d1dd85eb768b418..a6ceac4c5222f5b92afbd7654daad8ba735ba6df 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -785,7 +785,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply) return -DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_PARAM_ERR; } - if (!dap_global_db_del_sync(l_group_str, NULL)) + if (!dap_global_db_erase_table_sync(l_group_str)) { json_object* json_obj_drop = json_object_new_object(); json_object_object_add(json_obj_drop, "Dropped table", json_object_new_string(l_group_str)); diff --git a/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c b/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c index 9f8277375dbba12361105cd1ec1eaf690b142608..e62cbb57759d3fc73cafe101dc5bc9ebaf547b03 100644 --- a/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c +++ b/modules/service/stake/dap_chain_net_srv_stake_pos_delegate.c @@ -630,7 +630,7 @@ void dap_chain_net_srv_stake_purge(dap_chain_net_t *a_net) { dap_ledger_t *l_ledger = a_net->pub.ledger; char *l_gdb_group = dap_ledger_get_gdb_group(l_ledger, DAP_CHAIN_NET_SRV_STAKE_POS_DELEGATE_GDB_GROUP); - dap_global_db_del(l_gdb_group, NULL, NULL, NULL); + dap_global_db_erase_table(l_gdb_group, NULL, NULL); DAP_DELETE(l_gdb_group); s_stake_net_clear(a_net); } diff --git a/modules/type/blocks/dap_chain_cs_blocks.c b/modules/type/blocks/dap_chain_cs_blocks.c index 13c5384906c35c4bf84b2ad87e511f1a8cd697e1..5e0f867ca020f25fd51466d60c4794b2e4061e8a 100644 --- a/modules/type/blocks/dap_chain_cs_blocks.c +++ b/modules/type/blocks/dap_chain_cs_blocks.c @@ -1244,10 +1244,10 @@ static int s_cli_blocks(int a_argc, char ** a_argv, void **a_str_reply) }; //Clear gdb char *l_group_fee = dap_chain_cs_blocks_get_fee_group(l_net->pub.name); - dap_global_db_del_sync(l_group_fee, NULL); + dap_global_db_erase_table_sync(l_group_fee); DAP_DELETE(l_group_fee); char *l_group_reward = dap_chain_cs_blocks_get_reward_group(l_net->pub.name); - dap_global_db_del_sync(l_group_reward, NULL); + dap_global_db_erase_table_sync(l_group_reward); DAP_DELETE(l_group_reward); json_object* json_arr_bl_out = json_object_new_array();