diff --git a/dap_stream_ch_chain_net.c b/dap_stream_ch_chain_net.c
index 324139edc082d82617b3e1228fc173bbbed11de2..6402d3491104e5044630526511f715f2bd9fd2ba 100755
--- a/dap_stream_ch_chain_net.c
+++ b/dap_stream_ch_chain_net.c
@@ -245,7 +245,7 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg)
                             dap_stream_ch_set_ready_to_write(a_ch, true);
                             log_it(L_WARNING,"Invalid net id in packet");
                         } else {
-                            if (dap_db_set_cur_node_addr( l_addr->uint64 ))
+                            if (dap_db_set_cur_node_addr_exp( l_addr->uint64, l_net->pub.name ))
                                 log_it(L_NOTICE,"Set up cur node address 0x%016llX",l_addr->uint64);
                             else
                                 log_it(L_ERROR,"Can't set up cur node address 0x%016llX",l_addr->uint64);
@@ -261,7 +261,8 @@ void s_stream_ch_packet_in(dap_stream_ch_t* a_ch, void* a_arg)
                 case DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_NODE_ADDR_REQUEST: {
                     log_it(L_INFO, "Get CH_CHAIN_NET_PKT_TYPE_NODE_ADDR_REQUEST");
                     // get cur node addr
-                    uint64_t l_addr = dap_db_get_cur_node_addr();
+                    dap_chain_net_t *l_net = dap_chain_net_by_id(l_ch_chain_net_pkt->hdr.net_id);
+                    uint64_t l_addr = l_net ? dap_db_get_cur_node_addr(l_net->pub.name) : 0;
                     size_t l_send_data_len = sizeof(uint64_t);
                     // send cur node addr
                     dap_stream_ch_chain_net_pkt_write(a_ch, DAP_STREAM_CH_CHAIN_NET_PKT_TYPE_NODE_ADDR,