diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8daa7072c93f752deacb1cc8163996afb6ed18c1..cb6ac17ff69a64f5478a5981671192db04eb9b52 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,10 +39,6 @@ elseif(LINUX)
     set(CELLFRAME_MODULES "core chains mining network srv cs-dag-poa cs-block-poa cs-dag-pos cs-block-pos cs-none srv-app srv-app-db srv-datum srv-stake srv-xchange modules-dynamic srv-vpn")
 endif()
 
-if (CELLFRAME_MODULES MATCHES "modules-dynamic")
-    add_definitions("-DDAP_MODULES_DYNAMIC")
-endif()
-
 add_subdirectory(cellframe-sdk)
 
 if(UNIX)
diff --git a/cellframe-sdk b/cellframe-sdk
index 11ac274c5c80f0b4c5a282e1d481bf8fb5a72076..27ba90d6a4641f59894f0a072bbf88a21b12971c 160000
--- a/cellframe-sdk
+++ b/cellframe-sdk
@@ -1 +1 @@
-Subproject commit 11ac274c5c80f0b4c5a282e1d481bf8fb5a72076
+Subproject commit 27ba90d6a4641f59894f0a072bbf88a21b12971c
diff --git a/prod_build b/prod_build
index b7bd392710dab71c34129d1dbd72442a676d2da3..765ecc3ab4425e9ce0b9a3e3bd4accecd4ebdde4 160000
--- a/prod_build
+++ b/prod_build
@@ -1 +1 @@
-Subproject commit b7bd392710dab71c34129d1dbd72442a676d2da3
+Subproject commit 765ecc3ab4425e9ce0b9a3e3bd4accecd4ebdde4
diff --git a/python-cellframe b/python-cellframe
index a5898577446f2a1043646cdac84e23a517a5de42..11c06291c76108c76d77cff01e69e87b143c5926 160000
--- a/python-cellframe
+++ b/python-cellframe
@@ -1 +1 @@
-Subproject commit a5898577446f2a1043646cdac84e23a517a5de42
+Subproject commit 11c06291c76108c76d77cff01e69e87b143c5926
diff --git a/sources/main.c b/sources/main.c
index 1b88bc6b7a277697093b3f789af8ac7434515422..507c013d91219622c9006938b520c950383cb274 100755
--- a/sources/main.c
+++ b/sources/main.c
@@ -144,7 +144,8 @@ void exit_if_server_already_running( void );
 
 static const char *s_pid_file_path = NULL;
 
-bool dap_chain_net_srv_pay_verificator(dap_chain_tx_out_cond_t *a_cond, dap_chain_datum_tx_t *a_tx) { UNUSED(a_cond); UNUSED(a_tx); return true; }
+bool dap_chain_net_srv_pay_verificator(dap_chain_tx_out_cond_t *a_cond, dap_chain_datum_tx_t *a_tx, bool a_owner)
+{ UNUSED(a_cond); UNUSED(a_tx); UNUSED(a_owner); return true; }
 
 #ifdef __ANDROID__
 int cellframe_node_Main(int argc, const char **argv)
@@ -290,7 +291,7 @@ int main( int argc, const char **argv )
     size_t l_notify_path_default_size = dap_snprintf(NULL,0,"/tmp/%s-notify",dap_get_appname() )+1;
     char * l_notify_path_default = DAP_NEW_SIZE(char,l_notify_path_default_size);
     dap_snprintf(l_notify_path_default,l_notify_path_default_size,"/tmp/%s-notify",dap_get_appname() );
-    if ( dap_notify_server_init( dap_config_get_item_str_default(g_config,"resourses","notify_path",l_notify_path_default)) != 0 ){
+    if ( dap_notify_server_init() != 0 ){
         log_it( L_ERROR, "Can't init notify server module" );
     }
 
@@ -357,6 +358,7 @@ int main( int argc, const char **argv )
     dap_chain_ledger_verificator_add(DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_XCHANGE, dap_chain_net_srv_xchange_verificator);
     dap_chain_ledger_verificator_add(DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_PAY, dap_chain_net_srv_pay_verificator);
     dap_chain_ledger_verificator_add(DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE, dap_chain_net_srv_stake_verificator);
+    dap_chain_ledger_verificator_add(DAP_CHAIN_TX_OUT_COND_SUBTYPE_SRV_STAKE_UPDATE, dap_chain_net_srv_stake_updater);
 
     if( dap_chain_net_init() !=0){
         log_it(L_CRITICAL,"Can't init dap chain network module");