diff --git a/dap_chain_net.c b/dap_chain_net.c
index 17adfdd2363534a07e1a0aaee211b75c80c61580..2bafaa11bbc6cdd5751ceb74be2c5ad57f811190 100644
--- a/dap_chain_net.c
+++ b/dap_chain_net.c
@@ -1083,8 +1083,11 @@ int s_net_load(const char * a_net_name)
         uint16_t l_seed_nodes_ipv4_len =0;
         char ** l_seed_nodes_ipv4 = dap_config_get_array_str( l_cfg , "general" ,"seed_nodes_ipv4"
                                                              ,&l_seed_nodes_ipv4_len);
+        uint16_t l_seed_nodes_port_len =0;
+        char ** l_seed_nodes_port = dap_config_get_array_str( l_cfg , "general" ,"seed_nodes_port"
+                                                                     ,&l_seed_nodes_port_len);
 
-        const char * l_node_ipv4_str = dap_config_get_item_str(l_cfg , "general" ,"node-ipv4");
+        //const char * l_node_ipv4_str = dap_config_get_item_str(l_cfg , "general" ,"node-ipv4");
         const char * l_node_addr_str = dap_config_get_item_str(l_cfg , "general" ,"node-addr");
         const char * l_node_alias_str = dap_config_get_item_str(l_cfg , "general" , "node-alias");
         log_it (L_DEBUG, "Read %u aliases, %u address and %u ipv4 addresses, check them",
@@ -1110,6 +1113,8 @@ int s_net_load(const char * a_net_name)
                 if( l_seed_node_addr ){
                     inet_pton( AF_INET, l_seed_nodes_ipv4[i],&l_node_info->hdr.ext_addr_v4);
                     l_node_info->hdr.address.uint64 = l_seed_node_addr->uint64;
+                    if(l_seed_nodes_port_len >= i)
+                        l_node_info->hdr.ext_port = strtoul(l_seed_nodes_port[i], NULL, 10);
                     int l_ret;
                     if ( (l_ret = dap_chain_node_info_save(l_net, l_node_info)) ==0 ){
                         if (dap_chain_node_alias_register(l_net,PVT(l_net)->seed_aliases[i],l_seed_node_addr))
diff --git a/dap_chain_node_client.c b/dap_chain_node_client.c
index 81a6df8260ec6f3b487b56b92d9b99fb7a14a042..fe3bb648caf0a2043a5fe72f2eea2945e5de84ae 100644
--- a/dap_chain_node_client.c
+++ b/dap_chain_node_client.c
@@ -61,7 +61,7 @@
 #define SYSTEM_PREFIX "/opt/"DAP_APP_NAME
 #define SYSTEM_CONFIGS_DIR SYSTEM_PREFIX"/etc"
 
-static int listen_port_tcp = 8079;
+//static int listen_port_tcp = 8079;
 
 static void s_stage_connected_callback(dap_client_t *a_client, void *a_arg);
 static void s_ch_chain_callback_notify_packet_out(dap_stream_ch_chain_t*, uint8_t a_pkt_type,
@@ -83,10 +83,10 @@ int dap_chain_node_client_init(void)
     if((g_config = dap_config_open(DAP_APP_NAME)) == NULL) {
         return -1;
     }
-    else {
+    /*else {
         const char *port_str = dap_config_get_item_str(g_config, "server", "listen_port_tcp");
         listen_port_tcp = (port_str) ? atoi(port_str) : 8079;
-    }
+    }*/
     if(g_config)
         dap_config_close(g_config);
     return 0;
@@ -362,7 +362,7 @@ dap_chain_node_client_t* dap_chain_node_client_connect(dap_chain_node_info_t *a_
         dap_chain_node_client_close(l_node_client);
         return NULL;
     }
-    dap_client_set_uplink(l_node_client->client, strdup(host), listen_port_tcp);
+    dap_client_set_uplink(l_node_client->client, strdup(host), a_node_info->hdr.ext_port);
 //    dap_client_stage_t a_stage_target = STAGE_ENC_INIT;
     dap_client_stage_t l_stage_target = STAGE_STREAM_STREAMING;