diff --git a/modules/chain/dap_chain.c b/modules/chain/dap_chain.c
index 5c5fdf98f8c74488bcb757e94b24a23a516c3584..8b1652a1795b9437658bfbb0e68060bc3f8da939 100644
--- a/modules/chain/dap_chain.c
+++ b/modules/chain/dap_chain.c
@@ -112,7 +112,7 @@ dap_chain_t *dap_chain_create(const char *a_chain_net_name, const char *a_chain_
             .net_id     = a_chain_net_id,
             .name       = dap_strdup(a_chain_name),
             .net_name   = dap_strdup(a_chain_net_name),
-            .is_mapped  = dap_config_get_item_bool_default(g_config, "ledger", "mapped", false),
+            .is_mapped  = dap_config_get_item_bool_default(g_config, "ledger", "mapped", true),
             .cell_rwlock    = PTHREAD_RWLOCK_INITIALIZER,
             .atom_notifiers = NULL
     };
@@ -584,10 +584,12 @@ int dap_chain_save_all(dap_chain_t *l_chain)
 
 bool download_notify_callback(dap_chain_t* a_chain) {
     json_object* l_chain_info = json_object_new_object();
-    json_object_object_add(l_chain_info, "net_name", json_object_new_string(a_chain->net_name));
+    json_object_object_add(l_chain_info, "net_id", json_object_new_uint64(a_chain->net_id.uint64));
+    json_object_object_add(l_chain_info, "chain_id", json_object_new_uint64(a_chain->id.uint64));
+    json_object_object_add(l_chain_info, "cell_id", json_object_new_uint64(a_chain->active_cell_id.uint64));
     json_object_object_add(l_chain_info, "download_percentage", json_object_new_int(a_chain->download_percentage));
     dap_notify_server_send_mt(l_chain_info);
-    log_it(L_DEBUG, "Download notify: net_name: %s download:%d%c", a_chain->net_name, a_chain->download_percentage, '%');
+    log_it(L_DEBUG, "Download notify: net_name: %s; chain_id: %d; download:%d%c", a_chain->net_name, a_chain->id.uint64, a_chain->download_percentage, '%');
     json_object_put(l_chain_info);
     return true;
 }
diff --git a/modules/chain/dap_chain_cell.c b/modules/chain/dap_chain_cell.c
index a7795396252bb27e50a196fc6a44035fccc6f59a..00e86333e4437539ae782b14b69bc75165ab734f 100644
--- a/modules/chain/dap_chain_cell.c
+++ b/modules/chain/dap_chain_cell.c
@@ -439,12 +439,11 @@ int dap_chain_cell_load(dap_chain_t *a_chain, dap_chain_cell_t *a_cell)
     uint64_t q = 0;
     if (a_chain->is_mapped) {
         a_cell->map_pos = a_cell->map + sizeof(dap_chain_cell_file_header_t);
-        for ( uint64_t l_el_size = 0; l_pos < l_size; ++q, l_pos += l_el_size + sizeof(uint64_t) ) {
+        for ( uint64_t l_el_size = 0; l_pos < l_size; ++q, l_pos += l_el_size + sizeof(uint64_t), a_chain->download_percentage =  (int)((double)l_pos/l_size * 100 + 0.5)) {
             size_t space_left = (size_t)( a_cell->map_end - a_cell->map_pos );
             if ( space_left < sizeof(uint64_t) || (space_left - sizeof(uint64_t)) < *(uint64_t*)a_cell->map_pos )
                 if ( s_cell_map_new_volume(a_cell, l_pos) )
                     break;
-            a_chain->download_percentage =  (int)((double)l_pos/l_size * 100 + 0.5);
             l_el_size = *(uint64_t*)a_cell->map_pos;
             dap_hash_fast_t l_atom_hash;
             dap_chain_atom_ptr_t l_atom = (dap_chain_atom_ptr_t)(a_cell->map_pos += sizeof(uint64_t));
diff --git a/modules/chain/include/dap_chain.h b/modules/chain/include/dap_chain.h
index 485a61745c85a061b54d447652aa691eaeaa120b..7577c93488da6f21585d4b3f3205328042c87b8d 100644
--- a/modules/chain/include/dap_chain.h
+++ b/modules/chain/include/dap_chain.h
@@ -140,7 +140,7 @@ typedef struct dap_chain {
     char *net_name;
     bool is_datum_pool_proc;
     bool is_mapped;
-    size_t download_percentage; 
+    atomic_int download_percentage; 
     // Nested cells (hashtab by cell_id)
     dap_chain_cell_t *cells;
     dap_chain_cell_id_t active_cell_id;
diff --git a/modules/net/dap_chain_ledger.c b/modules/net/dap_chain_ledger.c
index bc060b1ca5b6949023e3cec1896aabd813fb579f..40ccfc136e1dfa1beffbe2e63f8a36089f47c19a 100644
--- a/modules/net/dap_chain_ledger.c
+++ b/modules/net/dap_chain_ledger.c
@@ -585,7 +585,7 @@ static dap_ledger_t * dap_ledger_handle_new(void)
                                                                       (dap_timer_callback_t)s_threshold_txs_free, l_ledger);
     l_ledger_pvt->threshold_emissions_free_timer = dap_interval_timer_create(s_threshold_free_timer_tick,
                                                                             (dap_timer_callback_t) s_threshold_emission_free, l_ledger);                                                                          
-    l_ledger_pvt->mapped = dap_config_get_item_bool_default(g_config, "ledger", "mapped", false);
+    l_ledger_pvt->mapped = dap_config_get_item_bool_default(g_config, "ledger", "mapped", true);
     return l_ledger;
 }