diff --git a/modules/global-db/dap_chain_global_db_driver_cdb.c b/modules/global-db/dap_chain_global_db_driver_cdb.c
index d5f78a6e4745a9723d5e38c0489be930492cd498..c3c16badbc50440aea456f5b845711ffcfae61d6 100644
--- a/modules/global-db/dap_chain_global_db_driver_cdb.c
+++ b/modules/global-db/dap_chain_global_db_driver_cdb.c
@@ -196,7 +196,7 @@ pcdb_instance dap_cdb_init_group(const char *a_group, int a_flags) {
     }
     memset(l_cdb_path, '\0', sizeof(l_cdb_path));
     dap_snprintf(l_cdb_path, sizeof(l_cdb_path), "%s/%s", s_cdb_path, a_group);
-    cdb_options l_opts = { 4096, 128, 1024 };
+    cdb_options l_opts = { 100000, 256, 1024 };
     if (cdb_option(l_cdb_i->cdb, l_opts.hsize, l_opts.pcacheMB, l_opts.rcacheMB) != CDB_SUCCESS) {
         log_it(L_ERROR, "Options are inacceptable: \"%s\"", cdb_errmsg(cdb_errno(l_cdb_i->cdb)));
         goto ERR;
diff --git a/modules/net/dap_chain_node_cli.c b/modules/net/dap_chain_node_cli.c
index 62bc323d1f872f89689ec9d5a962366d1094b26d..8a9038d5185936e08f21e868d9a3816a01391278 100644
--- a/modules/net/dap_chain_node_cli.c
+++ b/modules/net/dap_chain_node_cli.c
@@ -1122,7 +1122,7 @@ int dap_chain_node_cli_init(dap_config_t * g_config)
 
      // Export GDB to JSON
      dap_chain_node_cli_cmd_item_create("gdb_export", cmd_gdb_export, "Export gdb to JSON",
-                                        "gdb_export filename <filename without extension>");
+                                        "gdb_export filename <filename without extension> [-groups <group names list>]");
 
      //Import GDB from JSON
      dap_chain_node_cli_cmd_item_create("gdb_import", cmd_gdb_import, "Import gdb from JSON",
diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c
index 468473fb7de5bea0448aee14e27bf8047a8b2903..f466f0458cb553c24bc34bdadc81bea59d27fdca 100644
--- a/modules/net/dap_chain_node_cli_cmd.c
+++ b/modules/net/dap_chain_node_cli_cmd.c
@@ -78,6 +78,7 @@
 #include "dap_chain_node_cli_cmd_tx.h"
 #include "dap_chain_node_ping.h"
 #include "dap_chain_net_srv.h"
+
 #ifndef _WIN32
 #include "dap_chain_net_news.h"
 #endif
@@ -5037,19 +5038,35 @@ int cmd_gdb_export(int argc, char ** argv, char ** a_str_reply)
         dap_chain_node_cli_set_reply_text(a_str_reply, "Can't open db directory");
         return -1;
     }
-    char l_path[strlen(l_db_path) + strlen(l_filename) + 12];
+    char l_path[MIN(strlen(l_db_path) + strlen(l_filename) + 12, MAX_PATH)];
     memset(l_path, '\0', sizeof(l_path));
     dap_snprintf(l_path, sizeof(l_path), "%s/%s.json", l_db_path, l_filename);
 
+    const char *l_groups_str = NULL;
+    dap_chain_node_cli_find_option_val(argv, arg_index, argc, "-groups", &l_groups_str);
+    char *l_group_str = NULL, *l_ctx = NULL;
+    dap_list_t *l_parsed_groups_list = NULL;
+    if (l_groups_str) {
+        char *l_tmp_str = dap_strdup(l_groups_str);
+        l_group_str = strtok_r(l_tmp_str, ",", &l_ctx);
+        for (; l_group_str; l_group_str = strtok_r(NULL, ",", &l_ctx)) {
+            l_parsed_groups_list = dap_list_prepend(l_parsed_groups_list, dap_strdup(l_group_str));
+        }
+        DAP_DEL_Z(l_tmp_str);
+    }
     struct json_object *l_json = json_object_new_array();
-    dap_list_t *l_groups_list = dap_chain_global_db_driver_get_groups_by_mask("*");
+    dap_list_t *l_groups_list = l_parsed_groups_list
+            ? l_parsed_groups_list
+            : dap_chain_global_db_driver_get_groups_by_mask("*");
     for (dap_list_t *l_list = l_groups_list; l_list; l_list = dap_list_next(l_list)) {
         size_t l_store_obj_count = 0;
         char *l_group_name = (char *)l_list->data;
         pdap_store_obj_t l_store_obj = dap_global_db_get_all_raw_sync(l_group_name,0, &l_store_obj_count);
-        log_it(L_INFO, "Exporting group %s, number of records: %zu", l_group_name, l_store_obj_count);
         if (!l_store_obj_count) {
+            log_it(L_INFO, "Group %s is empty or not found", l_group_name);
             continue;
+        } else {
+            log_it(L_INFO, "Exporting group %s, number of records: %zu", l_group_name, l_store_obj_count);
         }
 
         struct json_object *l_json_group = json_object_new_array();
@@ -5146,7 +5163,8 @@ int cmd_gdb_import(int argc, char ** argv, char ** a_str_reply)
             l_group_store[j].id     = (uint64_t)json_object_get_int64(l_id);
             l_group_store[j].key    = dap_strdup(json_object_get_string(l_key));
             l_group_store[j].group  = dap_strdup(l_group_name);
-            l_group_store[j].timestamp = json_object_get_int64(l_ts);
+            dap_nanotime_t l_temp = json_object_get_int64(l_ts);
+            l_group_store[j].timestamp = l_temp >> 32 ? l_temp : l_temp << 32; // possibly legacy record
             l_group_store[j].value_len = (uint64_t)json_object_get_int64(l_value_len);
             l_group_store[j].type   = 'a';
             const char *l_value_str = json_object_get_string(l_value);
@@ -5156,6 +5174,8 @@ int cmd_gdb_import(int argc, char ** argv, char ** a_str_reply)
         }
         if (dap_chain_global_db_driver_apply(l_group_store, l_records_count)) {
             log_it(L_CRITICAL, "An error occured on importing group %s...", l_group_name);
+        } else {
+            log_it(L_INFO, "Imported %llu records of group %s", l_records_count, l_group_name);
         }
         //dap_store_obj_free(l_group_store, l_records_count);
     }
diff --git a/modules/net/srv/dap_chain_net_srv_order.c b/modules/net/srv/dap_chain_net_srv_order.c
index 08999930ce338c52d8c3b5a32c3ef6e2ec37c4f0..c4ef7312273c7f92e5eeac332f5ac9f26f67de6b 100644
--- a/modules/net/srv/dap_chain_net_srv_order.c
+++ b/modules/net/srv/dap_chain_net_srv_order.c
@@ -319,9 +319,10 @@ dap_chain_net_srv_order_t *dap_chain_net_srv_order_compose(
     l_order->price_unit.uint32 = a_price_unit.uint32;
 
     if ( a_price_ticker)
-        strncpy(l_order->price_ticker, a_price_ticker,sizeof(l_order->price_ticker)-1);
+        strncpy(l_order->price_ticker, a_price_ticker, DAP_CHAIN_TICKER_SIZE_MAX);
     dap_sign_t *l_sign = dap_sign_create(a_key, l_order, sizeof(dap_chain_net_srv_order_t) + l_order->ext_size, 0);
     if (!l_sign) {
+        DAP_DELETE(l_order);
         return NULL;
     }
     size_t l_sign_size = dap_sign_get_size(l_sign); // sign data