diff --git a/.gitmodules b/.gitmodules
index 108f1751afdbe7ca7a3fa1bce763f928cec7454f..c52b254434b71580231848914295d79cbbac8483 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -98,3 +98,19 @@
 	path = libdap-app-cli
 	url = https://gitlab.demlabs.net/cellframe/libdap-app-cli.git
 	branch = master
+[submodule "libdap-chain-net-srv-app"]
+	path = libdap-chain-net-srv-app
+	url = https://gitlab.demlabs.net/cellframe/libdap-chain-net-srv-app
+	branch = master
+[submodule "libdap-chain-net-srv-app-db"]
+	path = libdap-chain-net-srv-app-db
+	url = https://gitlab.demlabs.net/cellframe/libdap-chain-net-srv-app-db
+	branch = master
+[submodule "libdap-chain-net-srv-datum"]
+	path = libdap-chain-net-srv-datum
+	url = https://gitlab.demlabs.net/cellframe/libdap-chain-net-srv-datum
+	branch = master
+[submodule "libdap-chain-net-srv-datum-pool"]
+	path = libdap-chain-net-srv-datum-pool
+	url = https://gitlab.demlabs.net/cellframe/libdap-chain-net-srv-datum-pool
+	branch = master
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6478771f1904b7edf715ab7a4713c7d621909c3d..7539569f7015123cb0504d4e119978b73317eb27 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,6 +14,21 @@ else()
     SET(DAP_RELEASE ON)
 endif()
 
+# Check whether we're on a 32-bit or 64-bit system
+if(CMAKE_SIZEOF_VOID_P EQUAL "8")
+  set(DEFAULT_BUILD_64 ON)
+else()
+  set(DEFAULT_BUILD_64 OFF)
+endif()
+option(BUILD_64 "Build for 64-bit? 'OFF' builds for 32-bit." ${DEFAULT_BUILD_64})
+
+if(BUILD_64)
+  set(ARCH_WIDTH "64")
+else()
+  set(ARCH_WIDTH "32")
+endif()
+message(STATUS "Building for a ${ARCH_WIDTH}-bit system")
+
 if(UNIX)
   add_definitions ("-DDAP_OS_LINUX -DDAP_OS_UNIX")
 # add_definitions ("-DDAP_LOG_MT")
@@ -46,6 +61,8 @@ endif()
 
 
 if(WIN32)
+  message(STATUS "Building for Windows")
+
 
   add_definitions ("-DUNDEBUG")
   add_definitions ("-DNDEBUG")
@@ -97,7 +114,14 @@ add_subdirectory(libdap-stream-ch-chain-net)
 add_subdirectory(libdap-stream-ch-chain)
 add_subdirectory(libdap-server-udp)
 add_subdirectory(libdap-chain-net-srv)
-add_subdirectory(libdap-chain-net-srv-vpn)
+if(NOT (WIN32))
+  add_subdirectory(libdap-chain-net-srv-vpn)
+  add_subdirectory(libdap-chain-net-srv-app)
+  add_subdirectory(libdap-chain-net-srv-app-db)
+  add_subdirectory(libdap-chain-net-srv-datum)
+  add_subdirectory(libdap-chain-net-srv-datum-pool)
+endif()
+
 add_subdirectory(libdap-chain-gdb)
 add_subdirectory(libdap-stream-ch-chain-net-srv)
 add_subdirectory(libdap-chain-cs-dag)
@@ -106,14 +130,25 @@ add_subdirectory(libdap-chain-cs-dag-pos)
 
 add_library(${PROJECT_NAME} STATIC cellframe-sdk.c)
 
-target_link_libraries(${PROJECT_NAME}  dap_core dap_crypto dap_crypto dap_server_core dap_enc_server dap_udp_server dap_session
-        dap_enc_server dap_stream dap_stream_ch_chain dap_stream_ch_chain_net
-        dap_stream_ch_chain_net_srv dap_chain dap_chain_crypto dap_client
-        dap_chain_cs_dag dap_chain_cs_dag_poa dap_chain_cs_dag_pos
-        dap_chain_net dap_chain_net_srv
-        dap_chain_net_srv_vpn
-        dap_chain_wallet dap_chain_global_db dap_chain_mempool dap_chain_gdb m magic
-        dap_cuttdb   )
+if(NOT (WIN32))
+    target_link_libraries(${PROJECT_NAME}  dap_core dap_crypto dap_crypto dap_server_core dap_enc_server dap_udp_server dap_session
+            dap_enc_server dap_stream dap_stream_ch_chain dap_stream_ch_chain_net
+            dap_stream_ch_chain_net_srv dap_chain dap_chain_crypto dap_client
+            dap_chain_cs_dag dap_chain_cs_dag_poa dap_chain_cs_dag_pos
+            dap_chain_net dap_chain_net_srv
+            dap_chain_net_srv_vpn dap_chain_net_srv_app  dap_chain_net_srv_app_db
+            dap_chain_net_srv_datum  dap_chain_net_srv_datum_pool
+            dap_chain_wallet dap_chain_global_db dap_chain_mempool dap_chain_gdb m magic
+            dap_cuttdb   )
+else()
+    target_link_libraries(${PROJECT_NAME}  dap_core dap_crypto dap_crypto dap_server_core dap_enc_server dap_udp_server dap_session
+            dap_enc_server dap_stream dap_stream_ch_chain dap_stream_ch_chain_net
+            dap_stream_ch_chain_net_srv dap_chain dap_chain_crypto dap_client
+            dap_chain_cs_dag dap_chain_cs_dag_poa dap_chain_cs_dag_pos
+            dap_chain_net dap_chain_net_srv
+            dap_chain_wallet dap_chain_global_db dap_chain_mempool dap_chain_gdb m magic
+            dap_cuttdb   )
+endif()
 #target_link_libraries(${PROJECT_NAME} dap_core dap_crypto)
 
 #target_include_directories(${PROJECT_NAME} INTERFACE include/)
diff --git a/libdap-app-cli b/libdap-app-cli
index 9ea22d1b113d41545b378df9864a0caba3cf51c4..1e888729d80befec68683762707e62b8e61d2a4d 160000
--- a/libdap-app-cli
+++ b/libdap-app-cli
@@ -1 +1 @@
-Subproject commit 9ea22d1b113d41545b378df9864a0caba3cf51c4
+Subproject commit 1e888729d80befec68683762707e62b8e61d2a4d
diff --git a/libdap-chain b/libdap-chain
index b11de781617e3137875fbdab281f26a796474657..d591e36646bc90ae433b3090626ae9d52882814b 160000
--- a/libdap-chain
+++ b/libdap-chain
@@ -1 +1 @@
-Subproject commit b11de781617e3137875fbdab281f26a796474657
+Subproject commit d591e36646bc90ae433b3090626ae9d52882814b
diff --git a/libdap-chain-global-db b/libdap-chain-global-db
index 83e753c15ecdeecc00b0ea9b14a1fb6693b7cbbc..ef72e3e95eea97d1a17f66c35d184a2ed02e6854 160000
--- a/libdap-chain-global-db
+++ b/libdap-chain-global-db
@@ -1 +1 @@
-Subproject commit 83e753c15ecdeecc00b0ea9b14a1fb6693b7cbbc
+Subproject commit ef72e3e95eea97d1a17f66c35d184a2ed02e6854
diff --git a/libdap-chain-net b/libdap-chain-net
index f095d214e258c3846088e96a4ff05edc53f47e6b..aa8df1441323850017d0ed5117e6d5e254225054 160000
--- a/libdap-chain-net
+++ b/libdap-chain-net
@@ -1 +1 @@
-Subproject commit f095d214e258c3846088e96a4ff05edc53f47e6b
+Subproject commit aa8df1441323850017d0ed5117e6d5e254225054
diff --git a/libdap-chain-net-srv-app b/libdap-chain-net-srv-app
new file mode 160000
index 0000000000000000000000000000000000000000..dc6e3b30992d3988c7f9f3a159c8286e28bea9ae
--- /dev/null
+++ b/libdap-chain-net-srv-app
@@ -0,0 +1 @@
+Subproject commit dc6e3b30992d3988c7f9f3a159c8286e28bea9ae
diff --git a/libdap-chain-net-srv-app-db b/libdap-chain-net-srv-app-db
new file mode 160000
index 0000000000000000000000000000000000000000..995568917a9796dec412ad13124628fb8fff53ba
--- /dev/null
+++ b/libdap-chain-net-srv-app-db
@@ -0,0 +1 @@
+Subproject commit 995568917a9796dec412ad13124628fb8fff53ba
diff --git a/libdap-chain-net-srv-datum b/libdap-chain-net-srv-datum
new file mode 160000
index 0000000000000000000000000000000000000000..a317a59e7eec49738288a476548906aab6ea43fe
--- /dev/null
+++ b/libdap-chain-net-srv-datum
@@ -0,0 +1 @@
+Subproject commit a317a59e7eec49738288a476548906aab6ea43fe
diff --git a/libdap-chain-net-srv-datum-pool b/libdap-chain-net-srv-datum-pool
new file mode 160000
index 0000000000000000000000000000000000000000..640e49fdc8c2a78aa9ae0930adcf03e149df6607
--- /dev/null
+++ b/libdap-chain-net-srv-datum-pool
@@ -0,0 +1 @@
+Subproject commit 640e49fdc8c2a78aa9ae0930adcf03e149df6607
diff --git a/libdap-chain-net-srv-vpn b/libdap-chain-net-srv-vpn
index 77c26fa2203149bb8fc4f40e42eed83c5e41887d..763152259fc1e1b8358ea4c406b6de21d677a53f 160000
--- a/libdap-chain-net-srv-vpn
+++ b/libdap-chain-net-srv-vpn
@@ -1 +1 @@
-Subproject commit 77c26fa2203149bb8fc4f40e42eed83c5e41887d
+Subproject commit 763152259fc1e1b8358ea4c406b6de21d677a53f
diff --git a/libdap-client b/libdap-client
index 03f1bdc836e332ab90dc33124a9bd2536d8740d4..f7dbe9db19e6f87c6fe5bb5abf004cde162ed3dd 160000
--- a/libdap-client
+++ b/libdap-client
@@ -1 +1 @@
-Subproject commit 03f1bdc836e332ab90dc33124a9bd2536d8740d4
+Subproject commit f7dbe9db19e6f87c6fe5bb5abf004cde162ed3dd
diff --git a/libdap-server-core b/libdap-server-core
index dd803b2e03007c74c792b35a319fd7f9b6e73078..9fdcdcb45d041e63a3a4b575424a6f3de7e68ca1 160000
--- a/libdap-server-core
+++ b/libdap-server-core
@@ -1 +1 @@
-Subproject commit dd803b2e03007c74c792b35a319fd7f9b6e73078
+Subproject commit 9fdcdcb45d041e63a3a4b575424a6f3de7e68ca1
diff --git a/libdap-server-udp b/libdap-server-udp
index 7500d54e139a92586b1488edffcb12f4f1c824ec..608ab1c9e0f5dac7b8c4f1abac6aa8f13c48ceaa 160000
--- a/libdap-server-udp
+++ b/libdap-server-udp
@@ -1 +1 @@
-Subproject commit 7500d54e139a92586b1488edffcb12f4f1c824ec
+Subproject commit 608ab1c9e0f5dac7b8c4f1abac6aa8f13c48ceaa
diff --git a/libdap-stream-ch-chain b/libdap-stream-ch-chain
index 001748d443a4cf8fef1886a6a9846e712967d0fd..5d522e3397528df51809bca9143a978d2fe62143 160000
--- a/libdap-stream-ch-chain
+++ b/libdap-stream-ch-chain
@@ -1 +1 @@
-Subproject commit 001748d443a4cf8fef1886a6a9846e712967d0fd
+Subproject commit 5d522e3397528df51809bca9143a978d2fe62143
diff --git a/libdap-stream-ch-chain-net b/libdap-stream-ch-chain-net
index 3c768e4b51cd4dc87893769ee0693992138be675..5ffbfcbd2a475b252938bdd1c793dc7c612b105d 160000
--- a/libdap-stream-ch-chain-net
+++ b/libdap-stream-ch-chain-net
@@ -1 +1 @@
-Subproject commit 3c768e4b51cd4dc87893769ee0693992138be675
+Subproject commit 5ffbfcbd2a475b252938bdd1c793dc7c612b105d