diff --git a/dap_chain_net.c b/dap_chain_net.c
index 32304a2eb8cef1ff80400504638c456fe76ce8da..af39eb127d75f0879679fc25063b4a4bcf2b5410 100644
--- a/dap_chain_net.c
+++ b/dap_chain_net.c
@@ -242,7 +242,7 @@ lb_proc_state:
                     if ( l_net->pub.cell_id.uint64 == 0 ){
                         PVT(l_net)->links_addrs_count=1;
                         PVT(l_net)->links_addrs = DAP_NEW_Z_SIZE(dap_chain_node_addr_t,
-                                                                 PVT(l_net)->links_addrs_count);
+                                                                 PVT(l_net)->links_addrs_count * sizeof(dap_chain_node_addr_t));
                         dap_chain_node_addr_t * l_node_addr = dap_chain_node_alias_find(l_net, PVT(l_net)->seed_aliases[0] );
                         PVT(l_net)->links_addrs[0].uint64 = l_node_addr? l_node_addr->uint64 : 0;
                     }else {
@@ -375,10 +375,10 @@ lb_proc_state:
                 PVT(l_net)->addr_request_attempts++;
                 int l_res = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_NODE_ADDR_LEASED, timeout_ms);
                 switch (l_res) {
-                    case 0:
+                    case -1:
                         log_it(L_WARNING,"Timeout with addr leasing");
                     continue; // try with another link
-                    case 1:
+                    case 0:
                         log_it(L_INFO, "Node address leased");
                         PVT(l_net)->state = NET_STATE_SYNC_GDB;
                     pthread_mutex_unlock(&PVT(l_net)->state_mutex ); goto lb_proc_state;
@@ -419,21 +419,21 @@ lb_proc_state:
                 }
 
                 // wait for finishing of request
-                int timeout_ms = 5000; // 2 min = 120 sec = 120 000 ms
+                int timeout_ms = 50000; // 2 min = 120 sec = 120 000 ms
                 // TODO add progress info to console
                 int res = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_SYNCED, timeout_ms);
                 switch (res) {
-                    case 0:
+                    case -1:
                         log_it(L_WARNING,"Timeout with link sync");
                     break;
-                    case 1:
+                    case 0:
                         log_it(L_INFO, "Node sync completed");
                     break;
                     default:
                         log_it(L_INFO, "Node sync error %d",res);
                 }
             }
-            if ( PVT(l_net)->state_target == NET_STATE_ONLINE ){
+            if ( PVT(l_net)->state_target >= NET_STATE_ONLINE ){
                 PVT(l_net)->state = NET_STATE_SYNC_CHAINS;
             }else {
                 PVT(l_net)->state = NET_STATE_ONLINE;
@@ -461,10 +461,10 @@ lb_proc_state:
                         // TODO add progress info to console
                         int l_res = dap_chain_node_client_wait(l_node_client, NODE_CLIENT_STATE_SYNCED, timeout_ms);
                         switch (l_res) {
-                            case 0:
+                            case -1:
                                 log_it(L_WARNING,"Timeout with link sync");
                             break;
-                            case 1:
+                            case 0:
                                 log_it(L_INFO, "Node sync completed");
                             break;
                             default:
diff --git a/dap_chain_node_client.c b/dap_chain_node_client.c
index b1ac1f26f86812444f2d7c9bb8fa928b11b3bc34..6230ebdf91f52f3af42c20c9586e6f74d8c95c00 100644
--- a/dap_chain_node_client.c
+++ b/dap_chain_node_client.c
@@ -355,7 +355,7 @@ int dap_chain_node_client_send_ch_pkt(dap_chain_node_client_t *a_client, uint8_t
  *
  * timeout_ms timeout in milliseconds
  * waited_state state which we will wait, sample NODE_CLIENT_STATE_CONNECT or NODE_CLIENT_STATE_SENDED
- * return -1 false, 0 timeout, 1 end of connection or sending data
+ * return -2 false, -1 timeout, 0 end of connection or sending data
  */
 int dap_chain_node_client_wait(dap_chain_node_client_t *a_client, int a_waited_state, int a_timeout_ms)
 {
@@ -366,7 +366,7 @@ int dap_chain_node_client_wait(dap_chain_node_client_t *a_client, int a_waited_s
     // have waited
     if(a_client->state == a_waited_state) {
         pthread_mutex_unlock(&a_client->wait_mutex);
-        return 1;
+        return 0;
     }
     // prepare for signal waiting
     struct timespec to;