From 267ef4f5d1f7cd69c32c8cd425b5ff9dae4d1f6f Mon Sep 17 00:00:00 2001
From: "oljas.jarasbaev" <oljas.jarasbaev@demlabs.net>
Date: Tue, 28 Jan 2025 16:04:53 +0700
Subject: [PATCH 1/8] [*] port-13903

---
 dap-sdk                                   |  2 +-
 modules/net-srv/dap_chain_net_srv_order.c |  2 +-
 modules/net/dap_chain_net.c               |  2 +-
 modules/net/dap_chain_node.c              | 16 ++++++++--------
 modules/node-cli/dap_chain_node_cli_cmd.c |  6 ++----
 5 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/dap-sdk b/dap-sdk
index b6ead51e41..6bf73ebf9f 160000
--- a/dap-sdk
+++ b/dap-sdk
@@ -1 +1 @@
-Subproject commit b6ead51e413671d2416f98796b8ac7d397e2e0ed
+Subproject commit 6bf73ebf9f7909fc4410001c3a3c2519faf073d0
diff --git a/modules/net-srv/dap_chain_net_srv_order.c b/modules/net-srv/dap_chain_net_srv_order.c
index d49efaf214..dc19810fe8 100644
--- a/modules/net-srv/dap_chain_net_srv_order.c
+++ b/modules/net-srv/dap_chain_net_srv_order.c
@@ -389,7 +389,7 @@ char *dap_chain_net_srv_order_save(dap_chain_net_t *a_net, dap_chain_net_srv_ord
                                      : dap_chain_net_srv_order_get_gdb_group(a_net);
     if (!l_gdb_group_str)
         return NULL;
-    int l_rc = dap_global_db_set_sync(l_gdb_group_str, l_order_hash_str, a_order, l_order_size, false);
+    int l_rc = dap_global_db_set_sync(l_gdb_group_str, l_order_hash_str, a_order, l_order_size, true);
     DAP_DELETE(l_gdb_group_str);
     if (l_rc == DAP_GLOBAL_DB_RC_SUCCESS)
         return l_order_hash_str;
diff --git a/modules/net/dap_chain_net.c b/modules/net/dap_chain_net.c
index 2d1ea5caf4..0f8e0d6560 100644
--- a/modules/net/dap_chain_net.c
+++ b/modules/net/dap_chain_net.c
@@ -2196,7 +2196,7 @@ static void *s_net_load(void *a_arg)
                                                          l_net->pub.name, dap_guuid_compose(l_net->pub.id.uint64, 0),
                                                          l_net->pub.gdb_nodes, 7200, true,
                                                          DAP_GDB_MEMBER_ROLE_GUEST,
-                                                         DAP_CLUSTER_TYPE_EMBEDDED);
+                                                         DAP_CLUSTER_TYPE_EMBEDDED);   // TODO 7200
     if (!l_net_pvt->nodes_cluster) {
         log_it(L_ERROR, "Can't initialize nodes cluster for network %s", l_net->pub.name);
         l_err_code = -3;
diff --git a/modules/net/dap_chain_node.c b/modules/net/dap_chain_node.c
index b5f7ad6d6c..b9886e0980 100644
--- a/modules/net/dap_chain_node.c
+++ b/modules/net/dap_chain_node.c
@@ -43,6 +43,7 @@
 #include "dap_chain_net.h"
 #include "dap_global_db.h"
 #include "dap_chain_node.h"
+#include "dap_chain_node_client.h"
 #include "dap_chain_cs_esbocs.h" // TODO set RPC callbacks for exclude consensus specific dependency
 #include "dap_chain_cs_blocks.h" // TODO set RPC callbacks for exclude storage type specific dependency
 #include "dap_chain_ledger.h"
@@ -51,6 +52,7 @@
 #include "dap_chain_mempool.h"
 #include "dap_chain_datum_service_state.h"
 #include "dap_chain_node_client.h"
+#include "dap_chain_net_balancer.h"
 
 #define LOG_TAG "dap_chain_node"
 
@@ -248,20 +250,18 @@ void dap_chain_node_list_cluster_del_callback(dap_store_obj_t *a_obj, void *a_ar
         return;
     }
     int l_ret = -1;
-    for (size_t i = 0; i < 3 || l_ret == 0; i++) {
+    for (size_t i = 0; i < 3 && l_ret != 0; i++) {
         dap_chain_node_client_t *l_client = dap_chain_node_client_connect_default_channels(l_net, l_node_info);
         if (l_client)
             l_ret = dap_chain_node_client_wait(l_client, NODE_CLIENT_STATE_ESTABLISHED, 30000);
-        dap_chain_node_client_close_unsafe(l_client);
-        if (!l_ret)
-            break;
+        // dap_chain_node_client_close_unsafe(l_client);  del in s_go_stage_on_client_worker_unsafe
     }
     if (l_ret == 0) {
-        a_obj->timestamp = dap_time_now();
-        dap_global_db_driver_apply(a_obj, 1);
+        a_obj->timestamp = dap_nanotime_now();
+        dap_global_db_set_raw_sync(a_obj, 1);
     } else {
-        dap_global_db_driver_delete(a_obj, 1);
         log_it(L_DEBUG, "Can't do handshake with %s [ %s : %u ] delete from node list", a_obj->key, l_node_info->ext_host, l_node_info->ext_port);
+        dap_global_db_driver_delete(a_obj, 1);
     }
     dap_strfreev(l_group_strings);
 }
@@ -282,7 +282,7 @@ int dap_chain_node_list_clean_init() {
 int dap_chain_node_init()
 {
     if (dap_proc_thread_timer_add(NULL, s_update_node_states_info, NULL, s_timer_update_states_info)) {
-        log_it(L_ERROR, "Can't activate timer on node states update");
+        // log_it(L_ERROR, "Can't activate timer on node states update");
         return -1;
     }
     return 0;
diff --git a/modules/node-cli/dap_chain_node_cli_cmd.c b/modules/node-cli/dap_chain_node_cli_cmd.c
index 798deef9b8..71ec3da617 100644
--- a/modules/node-cli/dap_chain_node_cli_cmd.c
+++ b/modules/node-cli/dap_chain_node_cli_cmd.c
@@ -618,7 +618,6 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply)
         if (l_ts) {
             char l_ts_str[80] = { '\0' };
             dap_nanotime_to_str_rfc822(l_ts_str, sizeof(l_ts_str), l_ts);
-            char *l_value_hexdump = dap_dump_hex(l_value_out, l_out_len);
             if (l_value_hexdump) {
                 char *l_value_hexdump_new = dap_strdup_printf("\n%s", l_value_hexdump);
                 json_object_object_add(json_obj_read, "group", json_object_new_string(l_group_str));
@@ -627,7 +626,6 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply)
                 json_object_object_add(json_obj_read, "value len", json_object_new_uint64(l_out_len));
                 json_object_object_add(json_obj_read, "value hex", json_object_new_string(l_value_hexdump_new));
                 DAP_DELETE(l_value_hexdump_new);
-                DAP_DELETE(l_value_hexdump);
             } else {
                 dap_json_rpc_error_add(*a_json_arr_reply, DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_TIME_NO_VALUE,
                                             "\n\"%s : %s\"\nTime: %s\nNo value\n",
@@ -699,7 +697,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply)
             return DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_JSON_OK;
         }
 
-        if (!dap_global_db_del(l_group_str, l_key_str, NULL, NULL)) {
+        if (!dap_global_db_del_sync(l_group_str, l_key_str)) {
             json_object* json_obj_del = json_object_new_object();
             json_object_object_add(json_obj_del, "Record key", json_object_new_string(l_key_str));
             json_object_object_add(json_obj_del, "Group name", json_object_new_string(l_group_str));
@@ -1233,7 +1231,7 @@ int com_node(int a_argc, char ** a_argv, void **a_str_reply)
         if (res) {
             dap_cli_server_cmd_set_reply_text(a_str_reply, "No response from node");
             // clean client struct
-            dap_chain_node_client_close_unsafe(l_client);
+            // dap_chain_node_client_close_unsafe(l_client); del in s_go_stage_on_client_worker_unsafe
             DAP_DELETE(node_info);
             return -8;
         }
-- 
GitLab


From dbd6735e69c8b1df4106276c6b80bbd11cf5adfa Mon Sep 17 00:00:00 2001
From: Olzhas <oljas.jarasbaev@demlabs.net>
Date: Mon, 10 Feb 2025 12:33:37 +0700
Subject: [PATCH 2/8] [*] port-13903

---
 dap-sdk                                   | 2 +-
 modules/net/dap_chain_node.c              | 8 +++++---
 modules/node-cli/dap_chain_node_cli_cmd.c | 4 ++--
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/dap-sdk b/dap-sdk
index 6bf73ebf9f..4cc7005aea 160000
--- a/dap-sdk
+++ b/dap-sdk
@@ -1 +1 @@
-Subproject commit 6bf73ebf9f7909fc4410001c3a3c2519faf073d0
+Subproject commit 4cc7005aea35f13553f68adb26e31d144bcd3ca4
diff --git a/modules/net/dap_chain_node.c b/modules/net/dap_chain_node.c
index b9886e0980..4a1e86a23c 100644
--- a/modules/net/dap_chain_node.c
+++ b/modules/net/dap_chain_node.c
@@ -44,9 +44,11 @@
 #include "dap_global_db.h"
 #include "dap_chain_node.h"
 #include "dap_chain_node_client.h"
+#include "dap_chain_node_client.h"
 #include "dap_chain_cs_esbocs.h" // TODO set RPC callbacks for exclude consensus specific dependency
 #include "dap_chain_cs_blocks.h" // TODO set RPC callbacks for exclude storage type specific dependency
 #include "dap_chain_ledger.h"
+#include "dap_chain_net_balancer.h"
 #include "dap_cli_server.h"
 #include "dap_chain_srv.h"
 #include "dap_chain_mempool.h"
@@ -257,11 +259,11 @@ void dap_chain_node_list_cluster_del_callback(dap_store_obj_t *a_obj, void *a_ar
         // dap_chain_node_client_close_unsafe(l_client);  del in s_go_stage_on_client_worker_unsafe
     }
     if (l_ret == 0) {
-        a_obj->timestamp = dap_nanotime_now();
-        dap_global_db_set_raw_sync(a_obj, 1);
+        dap_global_db_set_sync(a_obj->group, a_obj->key, a_obj->value, a_obj->value_len, a_obj->flags & DAP_GLOBAL_DB_RECORD_PINNED);
+        // dap_global_db_set_raw_sync(a_obj, 1);
     } else {
         log_it(L_DEBUG, "Can't do handshake with %s [ %s : %u ] delete from node list", a_obj->key, l_node_info->ext_host, l_node_info->ext_port);
-        dap_global_db_driver_delete(a_obj, 1);
+        dap_del_global_db_obj_by_ttl(a_obj);
     }
     dap_strfreev(l_group_strings);
 }
diff --git a/modules/node-cli/dap_chain_node_cli_cmd.c b/modules/node-cli/dap_chain_node_cli_cmd.c
index 71ec3da617..3ce44dd290 100644
--- a/modules/node-cli/dap_chain_node_cli_cmd.c
+++ b/modules/node-cli/dap_chain_node_cli_cmd.c
@@ -684,7 +684,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply)
             for (i = 0; i < l_objs_count; ++i) {
                 if (!l_obj[i].key)
                     continue;
-                if (!dap_global_db_del_sync(l_group_str, l_obj[i].key)) {
+                if (!dap_global_db_del_sync_ex(l_group_str, l_obj[i].key, DAP_GLOBAL_DB_MANUAL_DEL, strlen(DAP_GLOBAL_DB_MANUAL_DEL)+1)) {
                     ++j;
                 }
             }
@@ -697,7 +697,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply)
             return DAP_CHAIN_NODE_CLI_COM_GLOBAL_DB_JSON_OK;
         }
 
-        if (!dap_global_db_del_sync(l_group_str, l_key_str)) {
+        if (!dap_global_db_del_sync_ex(l_group_str, l_key_str, DAP_GLOBAL_DB_MANUAL_DEL, strlen(DAP_GLOBAL_DB_MANUAL_DEL)+1)) {
             json_object* json_obj_del = json_object_new_object();
             json_object_object_add(json_obj_del, "Record key", json_object_new_string(l_key_str));
             json_object_object_add(json_obj_del, "Group name", json_object_new_string(l_group_str));
-- 
GitLab


From 3173c9271ca6fb63857c519b478c42277bfd3117 Mon Sep 17 00:00:00 2001
From: Olzhas <oljas.jarasbaev@demlabs.net>
Date: Mon, 10 Feb 2025 17:01:58 +0700
Subject: [PATCH 3/8] [*] port-13903

---
 dap-sdk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dap-sdk b/dap-sdk
index 4cc7005aea..dad68542ee 160000
--- a/dap-sdk
+++ b/dap-sdk
@@ -1 +1 @@
-Subproject commit 4cc7005aea35f13553f68adb26e31d144bcd3ca4
+Subproject commit dad68542ee1d85e5e9f16fc1a30a5b835899a890
-- 
GitLab


From f79ac27a445f058eb6febf0141472990dc64f0a2 Mon Sep 17 00:00:00 2001
From: Olzhas <oljas.jarasbaev@demlabs.net>
Date: Tue, 18 Feb 2025 15:49:27 +0700
Subject: [PATCH 4/8] [*] subup

---
 dap-sdk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dap-sdk b/dap-sdk
index 236e17ea34..206f5df025 160000
--- a/dap-sdk
+++ b/dap-sdk
@@ -1 +1 @@
-Subproject commit 236e17ea344a1c460baf6b25b7bdb698eafc8261
+Subproject commit 206f5df025e074c171bb45f4eaffdc3bfe1c9446
-- 
GitLab


From 87c49e64c33b8c5c37881814d001d42351d0043c Mon Sep 17 00:00:00 2001
From: Olzhas <oljas.jarasbaev@demlabs.net>
Date: Tue, 18 Feb 2025 16:36:46 +0700
Subject: [PATCH 5/8] [*] fix build

---
 modules/node-cli/dap_chain_node_cli_cmd.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/modules/node-cli/dap_chain_node_cli_cmd.c b/modules/node-cli/dap_chain_node_cli_cmd.c
index 506a44b4fe..900bbe7404 100644
--- a/modules/node-cli/dap_chain_node_cli_cmd.c
+++ b/modules/node-cli/dap_chain_node_cli_cmd.c
@@ -620,6 +620,7 @@ int com_global_db(int a_argc, char ** a_argv, void **a_str_reply)
         if (l_ts) {
             char l_ts_str[80] = { '\0' };
             dap_nanotime_to_str_rfc822(l_ts_str, sizeof(l_ts_str), l_ts);
+            char *l_value_hexdump = dap_dump_hex(l_value_out, l_out_len);
             if (l_value_hexdump) {
                 char *l_value_hexdump_new = dap_strdup_printf("\n%s", l_value_hexdump);
                 json_object_object_add(json_obj_read, "group", json_object_new_string(l_group_str));
-- 
GitLab


From 8abdc08b0f3b3ea754e0c857850e6dc7bcc947c3 Mon Sep 17 00:00:00 2001
From: Olzhas <oljas.jarasbaev@demlabs.net>
Date: Wed, 5 Mar 2025 12:45:01 +0700
Subject: [PATCH 6/8] [*] port

---
 dap-sdk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dap-sdk b/dap-sdk
index 206f5df025..1dea1116d7 160000
--- a/dap-sdk
+++ b/dap-sdk
@@ -1 +1 @@
-Subproject commit 206f5df025e074c171bb45f4eaffdc3bfe1c9446
+Subproject commit 1dea1116d7e72f934e587e520844d0b22c770065
-- 
GitLab


From e54c9ec5aa541d6f51142cbd69ee09f22db5744c Mon Sep 17 00:00:00 2001
From: Olzhas <oljas.jarasbaev@demlabs.net>
Date: Wed, 5 Mar 2025 13:03:06 +0700
Subject: [PATCH 7/8] [*] fix build

---
 dap-sdk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dap-sdk b/dap-sdk
index 1dea1116d7..577107a059 160000
--- a/dap-sdk
+++ b/dap-sdk
@@ -1 +1 @@
-Subproject commit 1dea1116d7e72f934e587e520844d0b22c770065
+Subproject commit 577107a05961eaed7c7e254530c09140fe2f93c3
-- 
GitLab


From c085bb7879dc28c557e5115609e1793d69c0f0d7 Mon Sep 17 00:00:00 2001
From: Olzhas <oljas.jarasbaev@demlabs.net>
Date: Wed, 5 Mar 2025 13:08:40 +0700
Subject: [PATCH 8/8] [*] fix

---
 modules/net/dap_chain_node.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/modules/net/dap_chain_node.c b/modules/net/dap_chain_node.c
index cfdf146ed4..079ff718e9 100644
--- a/modules/net/dap_chain_node.c
+++ b/modules/net/dap_chain_node.c
@@ -36,7 +36,6 @@
 #include "dap_chain_mempool.h"
 #include "dap_chain_datum_service_state.h"
 #include "dap_chain_node_client.h"
-#include "dap_chain_net_balancer.h"
 
 #define LOG_TAG "dap_chain_node"
 
-- 
GitLab