gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet] 01/02: adding the messenger service and its client-side library


From: gnunet
Subject: [gnunet] 01/02: adding the messenger service and its client-side library
Date: Thu, 12 Nov 2020 17:30:56 +0100

This is an automated email from the git hooks/post-receive script.

thejackimonster pushed a commit to branch master
in repository gnunet.

commit 8bf864c25bda97c1448b709a76a168834753ff86
Author: TheJackiMonster <thejackimonster@gmail.com>
AuthorDate: Thu Oct 1 21:13:43 2020 +0200

    adding the messenger service and its client-side library
    
    Signed-off-by: TheJackiMonster <thejackimonster@gmail.com>
---
 .buildbot/firefly-x86_64-amdepyc_test_tng.sh       |    2 +-
 README.1st                                         |    1 +
 bin/rename.sh                                      |    2 +-
 configure.ac                                       |   14 +-
 pkgconfig/gnunetmessenger.pc.in                    |   12 +
 po/LINGUAS                                         |    2 +-
 po/POTFILES.in                                     |   26 +-
 po/de.po                                           | 1005 ++-
 po/es.po                                           | 1030 ++-
 po/fr.po                                           |  993 ++-
 po/it.po                                           |  940 ++-
 po/sr.po                                           | 8292 ++++++++++++++++++++
 po/sv.po                                           | 1007 ++-
 po/vi.po                                           | 1017 ++-
 po/zh_CN.po                                        | 1005 ++-
 src/Makefile.am                                    |    7 +-
 src/ats-tests/ats-testing-log.c                    |    4 +-
 src/cadet/gnunet-service-cadet_channel.c           |   10 +-
 src/cadet/gnunet-service-cadet_core.c              |    4 +-
 src/cadet/gnunet-service-cadet_dht.c               |    4 +-
 src/cadet/gnunet-service-cadet_tunnels.c           |    2 +-
 src/consensus/consensus_api.c                      |    2 +-
 src/conversation/Makefile.am                       |    1 +
 src/conversation/conversation.h                    |   10 +-
 src/conversation/conversation_api.c                |    4 +-
 src/conversation/gnunet-conversation.c             |    6 +-
 src/conversation/gnunet-service-conversation.c     |   15 +-
 src/conversation/test_conversation_api.c           |    8 +-
 src/conversation/test_conversation_api_reject.c    |    8 +-
 src/conversation/test_conversation_api_twocalls.c  |    8 +-
 src/datacache/plugin_datacache_postgres.c          |    9 +-
 src/datastore/datastore_api.c                      |    8 +-
 src/datastore/plugin_datastore_postgres.c          |   14 +-
 src/dht/gnunet-service-dht_clients.c               |    6 +-
 src/dht/gnunet-service-dht_datacache.c             |    4 +-
 src/dht/gnunet-service-dht_neighbours.c            |    4 +-
 src/dht/plugin_block_dht.c                         |    2 +-
 src/dns/gnunet-dns-monitor.c                       |    2 +-
 src/fragmentation/fragmentation.c                  |    2 +-
 src/fs/fs_download.c                               |    2 +-
 src/fs/gnunet-daemon-fsprofiler.c                  |    4 +-
 src/fs/gnunet-publish.c                            |   18 +-
 src/gns/Makefile.am                                |    5 +
 src/gns/gns.h                                      |    2 +-
 src/gns/gns_api.c                                  |    4 +-
 src/gns/gns_tld_api.c                              |   21 +-
 src/gns/gnunet-gns-import.c                        |    9 +-
 src/gns/gnunet-service-gns.c                       |    6 +-
 src/gns/gnunet-service-gns.h                       |    3 +-
 src/gns/gnunet-service-gns_interceptor.c           |    2 +-
 src/gns/gnunet-service-gns_resolver.c              |   71 +-
 src/gns/gnunet-service-gns_resolver.h              |    2 +-
 src/gns/plugin_block_gns.c                         |   15 +-
 src/gns/plugin_gnsrecord_gns.c                     |   33 +-
 src/gns/plugin_rest_gns.c                          |    3 +-
 src/gns/test_gns_dht_lookup.sh                     |    1 +
 src/gnsrecord/Makefile.am                          |   21 +-
 src/gnsrecord/gnsrecord_crypto.c                   |  315 +-
 src/gnsrecord/gnsrecord_misc.c                     |  151 +-
 src/gnsrecord/gnunet-gnsrecord-tvg.c               |   49 +-
 src/{json => gnsrecord}/json_gnsrecord.c           |  114 +-
 src/gnsrecord/perf_gnsrecord_crypto.c              |    5 +-
 src/gnsrecord/plugin_gnsrecord_dns.c               |    2 +-
 src/gnsrecord/test_gnsrecord_crypto.c              |   11 +-
 src/identity/gnunet-identity.c                     |   45 +-
 src/identity/gnunet-service-identity.c             |   77 +-
 src/identity/identity.h                            |   81 +-
 src/identity/identity_api.c                        |  391 +-
 src/identity/identity_api_lookup.c                 |    4 +-
 src/identity/plugin_rest_identity.c                |   23 +-
 src/identity/test_identity.c                       |    8 +-
 src/identity/test_identity_defaults.c              |    8 +-
 src/include/Makefile.am                            |    1 +
 src/include/gnunet_buffer_lib.h                    |    3 +-
 src/include/gnunet_common.h                        |   15 +-
 src/include/gnunet_conversation_service.h          |    2 +-
 src/include/gnunet_crypto_lib.h                    |    6 +-
 src/include/gnunet_gns_service.h                   |    5 +-
 src/include/gnunet_gnsrecord_json_lib.h            |   73 +
 src/include/gnunet_gnsrecord_lib.h                 |  125 +-
 src/include/gnunet_identity_service.h              |  422 +-
 src/include/gnunet_json_lib.h                      |   27 +-
 src/include/gnunet_messenger_service.h             |  436 +
 src/include/gnunet_namestore_plugin.h              |   12 +-
 src/include/gnunet_namestore_service.h             |   15 +-
 src/include/gnunet_pq_lib.h                        |   55 +-
 src/include/gnunet_protocols.h                     |   43 +-
 src/include/gnunet_reclaim_service.h               |   33 +-
 src/include/gnunet_revocation_service.h            |   34 +-
 src/include/gnunet_uri_lib.h                       |    8 +-
 src/json/Makefile.am                               |    7 +-
 src/json/json.c                                    |   14 +-
 src/json/json_generator.c                          |  108 -
 src/messenger/.gitignore                           |    4 +
 src/messenger/Makefile.am                          |  131 +
 src/messenger/gnunet-messenger.c                   |  306 +
 src/messenger/gnunet-service-messenger.c           |  306 +
 src/messenger/gnunet-service-messenger.h           |  121 +
 src/messenger/gnunet-service-messenger_basement.c  |   58 +
 src/messenger/gnunet-service-messenger_basement.h  |   66 +
 src/messenger/gnunet-service-messenger_contact.c   |   96 +
 src/messenger/gnunet-service-messenger_contact.h   |  112 +
 src/messenger/gnunet-service-messenger_handle.c    |  503 ++
 src/messenger/gnunet-service-messenger_handle.h    |  216 +
 .../gnunet-service-messenger_list_handles.c        |   95 +
 .../gnunet-service-messenger_list_handles.h        |   96 +
 .../gnunet-service-messenger_list_messages.c       |   76 +
 .../gnunet-service-messenger_list_messages.h       |   81 +
 .../gnunet-service-messenger_message_handle.c      |  130 +
 .../gnunet-service-messenger_message_handle.h      |  128 +
 .../gnunet-service-messenger_message_kind.c        |  192 +
 .../gnunet-service-messenger_message_kind.h        |  160 +
 .../gnunet-service-messenger_message_recv.c        |  204 +
 .../gnunet-service-messenger_message_recv.h        |  159 +
 .../gnunet-service-messenger_message_send.c        |  118 +
 .../gnunet-service-messenger_message_send.h        |  155 +
 .../gnunet-service-messenger_message_store.c       |  282 +
 .../gnunet-service-messenger_message_store.h       |  120 +
 src/messenger/gnunet-service-messenger_room.c      | 1051 +++
 src/messenger/gnunet-service-messenger_room.h      |  378 +
 src/messenger/gnunet-service-messenger_service.c   |  516 ++
 src/messenger/gnunet-service-messenger_service.h   |  259 +
 src/messenger/gnunet-service-messenger_tunnel.c    |  300 +
 src/messenger/gnunet-service-messenger_tunnel.h    |  155 +
 src/messenger/gnunet-service-messenger_util.c      |   64 +
 src/messenger/gnunet-service-messenger_util.h      |   53 +
 src/messenger/messenger.conf.in                    |   13 +
 src/messenger/messenger_api.c                      |  568 ++
 src/messenger/messenger_api_contact.c              |   78 +
 src/messenger/messenger_api_contact.h              |   93 +
 src/messenger/messenger_api_ego.h                  |   38 +
 src/messenger/messenger_api_handle.c               |  213 +
 src/messenger/messenger_api_handle.h               |  174 +
 src/messenger/messenger_api_list_tunnels.c         |  112 +
 src/messenger/messenger_api_list_tunnels.h         |  112 +
 src/messenger/messenger_api_message.c              |  602 ++
 src/messenger/messenger_api_message.h              |  190 +
 src/messenger/messenger_api_room.c                 |  189 +
 src/messenger/messenger_api_room.h                 |   95 +
 src/messenger/test_messenger.c                     |  187 +
 src/messenger/test_messenger_anonymous.c           |  179 +
 src/messenger/test_messenger_comm0.c               |  252 +
 src/my/my_query_helper.c                           |    8 +-
 src/namecache/Makefile.am                          |    9 +
 src/namecache/gnunet-namecache.c                   |    4 +-
 src/namecache/gnunet-service-namecache.c           |   47 +-
 src/namecache/namecache.h                          |    4 +-
 src/namecache/namecache_api.c                      |   23 +-
 src/namecache/plugin_namecache_flat.c              |   16 +-
 src/namecache/plugin_namecache_postgres.c          |   30 +-
 src/namecache/plugin_namecache_sqlite.c            |   16 +-
 src/namecache/test_namecache_api_cache_block.c     |   20 +-
 src/namestore/Makefile.am                          |   11 +-
 src/namestore/gnunet-namestore-fcfsd.c             |   49 +-
 src/namestore/gnunet-namestore.c                   |   45 +-
 src/namestore/gnunet-service-namestore.c           |   34 +-
 src/namestore/gnunet-zoneimport.c                  |    4 +-
 src/namestore/namestore.h                          |   18 +-
 src/namestore/namestore_api.c                      |   14 +-
 src/namestore/namestore_api_monitor.c              |    4 +-
 src/namestore/perf_namestore_api_zone_iteration.c  |    7 +-
 src/namestore/plugin_namestore_flat.c              |   37 +-
 src/namestore/plugin_namestore_postgres.c          |   35 +-
 src/namestore/plugin_namestore_sqlite.c            |   28 +-
 src/namestore/plugin_rest_namestore.c              |   30 +-
 src/namestore/test_namestore_api_lookup_nick.c     |   11 +-
 src/namestore/test_namestore_api_lookup_private.c  |   11 +-
 src/namestore/test_namestore_api_lookup_public.c   |   17 +-
 src/namestore/test_namestore_api_lookup_shadow.c   |   17 +-
 .../test_namestore_api_lookup_shadow_filter.c      |   17 +-
 src/namestore/test_namestore_api_monitoring.c      |   12 +-
 .../test_namestore_api_monitoring_existing.c       |   12 +-
 src/namestore/test_namestore_api_remove.c          |   11 +-
 ...test_namestore_api_remove_not_existing_record.c |    9 +-
 src/namestore/test_namestore_api_store.c           |    9 +-
 src/namestore/test_namestore_api_store_update.c    |   13 +-
 src/namestore/test_namestore_api_zone_iteration.c  |   39 +-
 .../test_namestore_api_zone_iteration_nick.c       |   14 +-
 ...st_namestore_api_zone_iteration_specific_zone.c |   14 +-
 .../test_namestore_api_zone_iteration_stop.c       |   39 +-
 src/namestore/test_namestore_api_zone_to_name.c    |   18 +-
 src/namestore/test_plugin_namestore.c              |    6 +-
 src/namestore/test_plugin_rest_namestore.sh        |   21 +-
 src/nse/gnunet-nse-profiler.c                      |    2 +-
 src/peerinfo-tool/gnunet-peerinfo.c                |    4 +-
 src/peerinfo-tool/plugin_rest_peerinfo.c           |    4 +-
 src/pq/pq.c                                        |   45 +-
 src/pq/pq_eval.c                                   |    6 +-
 src/pq/pq_query_helper.c                           |  126 +-
 src/pq/pq_result_helper.c                          |  101 +-
 src/pq/test_pq.c                                   |   17 +-
 src/pt/test_gns_vpn.c                              |    2 +-
 src/reclaim/Makefile.am                            |    1 +
 src/reclaim/gnunet-reclaim.c                       |   14 +-
 src/reclaim/gnunet-service-reclaim.c               |   26 +-
 src/reclaim/gnunet-service-reclaim_tickets.c       |   36 +-
 src/reclaim/gnunet-service-reclaim_tickets.h       |   12 +-
 src/reclaim/oidc_helper.c                          |   73 +-
 src/reclaim/oidc_helper.h                          |   10 +-
 src/reclaim/plugin_rest_openid_connect.c           |   57 +-
 src/reclaim/plugin_rest_reclaim.c                  |   44 +-
 src/reclaim/reclaim.h                              |   26 +-
 src/reclaim/reclaim_api.c                          |   30 +-
 src/reclaim/test_reclaim_attribute.c               |    2 -
 src/regex/regex_block_lib.c                        |    8 +-
 src/regex/regex_internal_dht.c                     |    9 +-
 src/regex/regex_test_graph.c                       |    9 +-
 src/revocation/Makefile.am                         |    3 +
 src/revocation/gnunet-revocation-tvg.c             |   43 +-
 src/revocation/gnunet-revocation.c                 |   71 +-
 src/revocation/gnunet-service-revocation.c         |   75 +-
 src/revocation/plugin_block_revocation.c           |   23 +-
 src/revocation/revocation.h                        |   11 +-
 src/revocation/revocation_api.c                    |  182 +-
 src/revocation/test_revocation.c                   |   20 +-
 src/set/gnunet-service-set_union.c                 |   18 +-
 src/set/set_api.c                                  |    3 +-
 src/setu/gnunet-service-setu.c                     |   20 +-
 src/statistics/statistics_api.c                    |    2 +-
 src/testbed-logger/gnunet-service-testbed-logger.c |    2 +-
 src/testbed/gnunet-service-testbed_cpustatus.c     |    2 +-
 src/testbed/test_testbed_api_template.conf         |    2 +-
 src/testbed/testbed_api.c                          |    2 +-
 src/testbed/testbed_api_topology.c                 |    6 +-
 src/transport/gnunet-communicator-udp.c            |  494 +-
 src/transport/gnunet-service-transport.c           |    2 +
 src/transport/plugin_transport_http_client.c       |   15 +-
 src/transport/plugin_transport_http_common.c       |    2 +-
 src/transport/plugin_transport_http_server.c       |   24 +-
 src/transport/plugin_transport_tcp.c               |   12 +-
 src/transport/plugin_transport_udp.c               |   15 +-
 src/transport/plugin_transport_unix.c              |    4 +-
 src/transport/tcp_connection_legacy.c              |   16 +-
 src/transport/tcp_service_legacy.c                 |    2 +-
 src/transport/test_communicator_basic.c            |  206 +-
 src/transport/transport-testing2.c                 |    7 +
 src/util/bio.c                                     |    4 +-
 src/util/client.c                                  |    2 +-
 src/util/configuration_loader.c                    |   15 +-
 src/util/os_installation.c                         |    2 +
 src/util/program.c                                 |   25 +-
 src/util/service.c                                 |    4 +-
 src/util/strings.c                                 |   25 +-
 src/zonemaster/Makefile.am                         |    3 +-
 src/zonemaster/gnunet-service-zonemaster-monitor.c |    8 +-
 src/zonemaster/gnunet-service-zonemaster.c         |    8 +-
 246 files changed, 25668 insertions(+), 5387 deletions(-)

diff --git a/.buildbot/firefly-x86_64-amdepyc_test_tng.sh 
b/.buildbot/firefly-x86_64-amdepyc_test_tng.sh
index 30339d7c3..162363b5a 100755
--- a/.buildbot/firefly-x86_64-amdepyc_test_tng.sh
+++ b/.buildbot/firefly-x86_64-amdepyc_test_tng.sh
@@ -3,6 +3,6 @@
 # echo "Skipped"
 
 pushd src/transport
-make check TESTS='test_communicator_basic-tcp test_communicator_rekey-tcp 
test_communicator_basic-unix test_communicator_basic-udp'
+make check TESTS='test_communicator_basic-tcp test_communicator_rekey-tcp 
test_communicator_basic-unix test_communicator_basic-udp 
test_communicator_backchannel-udp'
 pkill --signal 9 -U buildbot gnunet
 popd
diff --git a/README.1st b/README.1st
index 3d000a23f..c25992351 100644
--- a/README.1st
+++ b/README.1st
@@ -253,4 +253,5 @@ We reserve judgement (due to lack of data) on:
 * credential
 * abe
 * rest
+* messenger
 
diff --git a/bin/rename.sh b/bin/rename.sh
index bf3c767c5..eec77e277 100755
--- a/bin/rename.sh
+++ b/bin/rename.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 # This script is in the public domain.
-for n in `find * -name "*.c"` `find * -name "*.h"` `find * -name "*.am"` `find 
* -name "*.conf"`  `find * -name "*.conf.in"` 
+for n in `find * -name "*.c"` `find * -name "*.h"` `find * -name "*.am"` `find 
* -name "*.conf"`  `find * -name "*.conf.in"`
 do
  cat $n | sed -e "s/$1/$2/g" > $n.new
  mv $n.new $n || echo "Move failed: $n.new to $n"
diff --git a/configure.ac b/configure.ac
index 3cf7e6cb6..a9594a56c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1335,7 +1335,7 @@ CPPFLAGS=$SAVE_CPPFLAGS
 
 # test for postgres:
 postgres=false
-AX_LIB_POSTGRESQL([9.5],
+AX_LIB_POSTGRESQL([12.0],
   [CPPFLAGS="$CPPFLAGS $POSTGRESQL_CPPFLAGS"
    AC_CHECK_HEADERS([libpq-fe.h],
    postgres=true)
@@ -1817,6 +1817,16 @@ AC_MSG_RESULT($use_gcov)
 AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"])
 
 
+# Temporarily disable a specific piece of code until TNG is out.
+AC_ARG_ENABLE([transport-timing-diagnostic],
+              [AS_HELP_STRING([--enable-transport-timing-diagnostic],
+                              [enable logging of transport (not TNG) sending 
times])],
+              [enable_ttd=yes],
+              [enable_ttd=no])
+AS_IF([test "x$enable_ttd" = "xyes"],
+      [AC_DEFINE([ENABLE_TTD], [1], [Define if transport (not TNG) should warn 
about sending times.])])
+
+
 # version info
 # TODO: git blame says this predates our switch to git.
 # git-svn should be adjusted to simply git, or
@@ -1965,6 +1975,8 @@ src/zonemaster/zonemaster.conf
 src/rest/Makefile
 src/abe/Makefile
 src/reclaim/Makefile
+src/messenger/Makefile
+src/messenger/messenger.conf
 pkgconfig/Makefile
 pkgconfig/gnunetarm.pc
 pkgconfig/gnunetats.pc
diff --git a/pkgconfig/gnunetmessenger.pc.in b/pkgconfig/gnunetmessenger.pc.in
new file mode 100644
index 000000000..465663d0c
--- /dev/null
+++ b/pkgconfig/gnunetmessenger.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: GNUnet MESSENGER
+Description: Instant messaging based on the CADET subsystem
+URL: https://gnunet.org
+Version: @VERSION@
+Requires:
+Libs: -L${libdir} -lgnunetmessenger_common -lgnunetmessenger
+Cflags: -I${includedir}
diff --git a/po/LINGUAS b/po/LINGUAS
index 0c3dbe3fa..5882d3d7e 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -1,2 +1,2 @@
 # set of available languages
-vi de sv es zh_CN fr it
+vi de sv es zh_CN fr it sr
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 36d948d93..00bdd7cbc 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -185,6 +185,7 @@ src/gnsrecord/gnsrecord_crypto.c
 src/gnsrecord/gnsrecord_misc.c
 src/gnsrecord/gnsrecord_serialization.c
 src/gnsrecord/gnunet-gnsrecord-tvg.c
+src/gnsrecord/json_gnsrecord.c
 src/gnsrecord/plugin_gnsrecord_dns.c
 src/hello/address.c
 src/hello/gnunet-hello.c
@@ -201,9 +202,30 @@ src/identity/identity_api_suffix_lookup.c
 src/identity/plugin_rest_identity.c
 src/json/json.c
 src/json/json_generator.c
-src/json/json_gnsrecord.c
 src/json/json_helper.c
 src/json/json_mhd.c
+src/messenger/gnunet-messenger.c
+src/messenger/gnunet-service-messenger.c
+src/messenger/gnunet-service-messenger_basement.c
+src/messenger/gnunet-service-messenger_contact.c
+src/messenger/gnunet-service-messenger_handle.c
+src/messenger/gnunet-service-messenger_list_handles.c
+src/messenger/gnunet-service-messenger_list_messages.c
+src/messenger/gnunet-service-messenger_message_handle.c
+src/messenger/gnunet-service-messenger_message_kind.c
+src/messenger/gnunet-service-messenger_message_recv.c
+src/messenger/gnunet-service-messenger_message_send.c
+src/messenger/gnunet-service-messenger_message_store.c
+src/messenger/gnunet-service-messenger_room.c
+src/messenger/gnunet-service-messenger_service.c
+src/messenger/gnunet-service-messenger_tunnel.c
+src/messenger/gnunet-service-messenger_util.c
+src/messenger/messenger_api.c
+src/messenger/messenger_api_contact.c
+src/messenger/messenger_api_handle.c
+src/messenger/messenger_api_list_tunnels.c
+src/messenger/messenger_api_message.c
+src/messenger/messenger_api_room.c
 src/my/my.c
 src/my/my_query_helper.c
 src/my/my_result_helper.c
@@ -523,5 +545,7 @@ src/vpn/vpn_api.c
 src/zonemaster/gnunet-service-zonemaster.c
 src/zonemaster/gnunet-service-zonemaster-monitor.c
 src/fs/fs_api.h
+src/include/gnunet_identity_service.h
+src/include/gnunet_messenger_service.h
 src/testbed/testbed_api.h
 src/testbed/testbed_api_operations.h
diff --git a/po/de.po b/po/de.po
index b352a977e..f02b44dfe 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2020-09-06 10:07+0200\n"
+"POT-Creation-Date: 2020-10-13 16:12+0200\n"
 "PO-Revision-Date: 2015-03-08 16:16+0100\n"
 "Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -32,8 +32,8 @@ msgid "Issuer public key `%s' is not well-formed\n"
 msgstr ""
 
 #: src/abd/gnunet-abd.c:560 src/abd/gnunet-service-abd.c:1747
-#: src/namestore/gnunet-namestore.c:1001
 #: src/namestore/gnunet-namestore-fcfsd.c:1154
+#: src/namestore/gnunet-namestore.c:1001
 #, fuzzy, c-format
 msgid "Failed to connect to namestore\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
@@ -499,81 +499,14 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3011
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3063
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997
-msgid "solver to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3557
-#: src/ats-tests/gnunet-solver-eval.c:1003
-#: src/ats-tests/gnunet-solver-eval.c:1008
-msgid "experiment to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3564
-msgid "print logging"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3569
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3574
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:326
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:336
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:382
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:474
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n"
-
-#: src/ats/plugin_ats_proportional.c:1142
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "Konfiguration konnte nicht aus %s geladen werden\n"
+#: src/ats-tests/ats-testing-log.c:896
+msgid "Stop logging\n"
+msgstr "Protokollierung stoppen\n"
 
-#: src/ats/plugin_ats_proportional.c:1165
+#: src/ats-tests/ats-testing-log.c:952
 #, fuzzy, c-format
-msgid "Invalid %s configuration %f\n"
-msgstr " gconfig\tGTK Konfiguration\n"
+msgid "Start logging `%s'\n"
+msgstr "Collection `%s' begonnen.\n"
 
 #: src/ats-tests/ats-testing.c:420
 #, c-format
@@ -585,15 +518,6 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/ats-tests/ats-testing-log.c:896
-msgid "Stop logging\n"
-msgstr "Protokollierung stoppen\n"
-
-#: src/ats-tests/ats-testing-log.c:952
-#, fuzzy, c-format
-msgid "Start logging `%s'\n"
-msgstr "Collection `%s' begonnen.\n"
-
 #: src/ats-tests/gnunet-ats-sim.c:92
 #, c-format
 msgid ""
@@ -601,6 +525,16 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
+#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552
+msgid "solver to use"
+msgstr ""
+
+#: src/ats-tests/gnunet-solver-eval.c:1003
+#: src/ats-tests/gnunet-solver-eval.c:1008
+#: src/ats/gnunet-ats-solver-eval.c:3557
+msgid "experiment to use"
+msgstr ""
+
 #: src/ats-tool/gnunet-ats.c:299
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -718,6 +652,72 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
+#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3011
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3063
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3564
+msgid "print logging"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3569
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3574
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:326
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:336
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:382
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:474
+#, fuzzy, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n"
+
+#: src/ats/plugin_ats_proportional.c:1142
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "Konfiguration konnte nicht aus %s geladen werden\n"
+
+#: src/ats/plugin_ats_proportional.c:1165
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr " gconfig\tGTK Konfiguration\n"
+
 #: src/auction/gnunet-auction-create.c:163
 msgid "description of the item to be sold"
 msgstr ""
@@ -854,6 +854,28 @@ msgstr "Ausführlicherer Modus (empfangene Werte ausgeben)"
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
+#: src/conversation/gnunet-conversation-test.c:120
+#, c-format
+msgid ""
+"\n"
+"End of transmission.  Have a GNU day.\n"
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:146
+#, c-format
+msgid ""
+"\n"
+"We are now playing your recording back.  If you can hear it, your audio "
+"settings are working..."
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:218
+#, c-format
+msgid ""
+"We will now be recording you for %s. After that time, the recording will be "
+"played back to you..."
+msgstr ""
+
 #: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1113,30 +1135,8 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-conversation-test.c:120
-#, c-format
-msgid ""
-"\n"
-"End of transmission.  Have a GNU day.\n"
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:146
-#, c-format
-msgid ""
-"\n"
-"We are now playing your recording back.  If you can hear it, your audio "
-"settings are working..."
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:218
-#, c-format
-msgid ""
-"We will now be recording you for %s. After that time, the recording will be "
-"played back to you..."
-msgstr ""
-
-#: src/conversation/gnunet_gst.c:664
 #: src/conversation/gnunet-helper-audio-playback-gst.c:363
+#: src/conversation/gnunet_gst.c:664
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr "Fehler beim Lesen aus STDIN: %d %s\n"
@@ -1942,17 +1942,17 @@ msgstr "`%s' an `%s' schlug fehl bei %s:%d mit dem 
Fehler: %s\n"
 msgid "Mysql database running\n"
 msgstr "MySQL-Datenbank läuft\n"
 
-#: src/datastore/plugin_datastore_postgres.c:278
-#: src/datastore/plugin_datastore_postgres.c:891
+#: src/datastore/plugin_datastore_postgres.c:284
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:852
+#: src/datastore/plugin_datastore_postgres.c:858
 #, fuzzy
 msgid "Failed to drop table from database.\n"
 msgstr "Fehler beim Binden an UDP Port %d.\n"
 
-#: src/datastore/plugin_datastore_postgres.c:950
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr "PostgreSQL-Datenbank läuft\n"
 
@@ -2059,89 +2059,42 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
-#, c-format
-msgid "Exiting as the number of peers is %u\n"
+#: src/dht/gnunet-dht-put.c:133
+msgid "Must provide KEY and DATA for DHT put!\n"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
-#, fuzzy
-msgid "number of peers to start"
-msgstr "Anzahl an Durchläufen"
+#: src/dht/gnunet-dht-put.c:140
+#, fuzzy, c-format
+msgid "Could not connect to DHT service!\n"
+msgstr "Verbindung zum %s-Dienst ist fehlgeschlagen!\n"
 
-#: src/dht/gnunet_dht_profiler.c:961
-msgid "number of PUTs to perform per peer"
+#: src/dht/gnunet-dht-put.c:151
+#, c-format
+msgid "Issuing put request for `%s' with data `%s'!\n"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
-#: src/testbed/gnunet-testbed-profiler.c:305
-msgid "name of the file with the login information for the testbed"
+#: src/dht/gnunet-dht-put.c:187
+msgid "the data to insert under the key"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:973
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
+#: src/dht/gnunet-dht-put.c:193
+msgid "how long to store this entry in the dht (in seconds)"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "delay to start doing PUTs (default: 1 sec)"
+#: src/dht/gnunet-dht-put.c:208
+msgid "how many replicas to create"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:985
-msgid "delay to start doing GETs (default: 5 min)"
+#: src/dht/gnunet-dht-put.c:212
+msgid "use DHT's record route option"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:990
-msgid "replication degree for DHT PUTs"
+#: src/dht/gnunet-dht-put.c:217
+msgid "the type to insert data as"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:996
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1002
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1023
-msgid "Measure quality and performance of the DHT service."
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:133
-msgid "Must provide KEY and DATA for DHT put!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:140
-#, fuzzy, c-format
-msgid "Could not connect to DHT service!\n"
-msgstr "Verbindung zum %s-Dienst ist fehlgeschlagen!\n"
-
-#: src/dht/gnunet-dht-put.c:151
-#, c-format
-msgid "Issuing put request for `%s' with data `%s'!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:187
-msgid "the data to insert under the key"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:193
-msgid "how long to store this entry in the dht (in seconds)"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:208
-msgid "how many replicas to create"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:212
-msgid "use DHT's record route option"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:217
-msgid "the type to insert data as"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:232
-msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
+#: src/dht/gnunet-dht-put.c:232
+msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
 msgstr ""
 
 #: src/dht/gnunet-service-dht_clients.c:367
@@ -2370,6 +2323,53 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr "# dht Anfragen weitergeleitet"
 
+#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
+#, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
+#, fuzzy
+msgid "number of peers to start"
+msgstr "Anzahl an Durchläufen"
+
+#: src/dht/gnunet_dht_profiler.c:961
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
+#: src/testbed/gnunet-testbed-profiler.c:305
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:973
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:985
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:990
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:996
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1002
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1023
+msgid "Measure quality and performance of the DHT service."
+msgstr ""
+
 #: src/dht/plugin_block_dht.c:189
 #, fuzzy, c-format
 msgid "Block not of type %u\n"
@@ -3319,15 +3319,6 @@ msgid ""
 "chk/...)"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:128
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:141
-#, fuzzy
-msgid "Special file-sharing operations"
-msgstr "Alle Optionen anzeigen"
-
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr ""
@@ -3344,6 +3335,15 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:128
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:141
+#, fuzzy
+msgid "Special file-sharing operations"
+msgstr "Alle Optionen anzeigen"
+
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -4042,52 +4042,6 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:257
-#, fuzzy, c-format
-msgid "`%s' is not a valid DNS domain name\n"
-msgstr "»%s« ist keine gültige IP-Adresse.\n"
-
-#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
-#, c-format
-msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:281
-msgid "Cannot resolve using GNS: GNUnet peer not running\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:305
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:340
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:346
-#, fuzzy
-msgid "Specify the type of the record to lookup"
-msgstr "Die Priorität des Inhalts angeben"
-
-#: src/gns/gnunet-gns.c:352
-#, fuzzy
-msgid "Specify a timeout for the lookup"
-msgstr "Die Priorität des Inhalts angeben"
-
-#: src/gns/gnunet-gns.c:356
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:361
-msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:375
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "GNUnet Netzwerk Topologie tracen."
-
 #: src/gns/gnunet-gns-import.c:486
 msgid "This program will import some GNS authorities into your GNS namestore."
 msgstr ""
@@ -4208,6 +4162,52 @@ msgstr ""
 msgid "GNUnet GNS proxy"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:257
+#, fuzzy, c-format
+msgid "`%s' is not a valid DNS domain name\n"
+msgstr "»%s« ist keine gültige IP-Adresse.\n"
+
+#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
+#, c-format
+msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:281
+msgid "Cannot resolve using GNS: GNUnet peer not running\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:305
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:340
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:346
+#, fuzzy
+msgid "Specify the type of the record to lookup"
+msgstr "Die Priorität des Inhalts angeben"
+
+#: src/gns/gnunet-gns.c:352
+#, fuzzy
+msgid "Specify a timeout for the lookup"
+msgstr "Die Priorität des Inhalts angeben"
+
+#: src/gns/gnunet-gns.c:356
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:361
+msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:375
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "GNUnet Netzwerk Topologie tracen."
+
 #: src/gns/gnunet-service-gns.c:505
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4219,8 +4219,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
 #: src/gns/gnunet-service-gns.c:560
-#: src/zonemaster/gnunet-service-zonemaster.c:887
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:444
+#: src/zonemaster/gnunet-service-zonemaster.c:887
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "Verbindung zu gnunetd konnte nicht hergestellt werden.\n"
@@ -4722,7 +4722,7 @@ msgid "# hostlist advertisements send"
 msgstr "# Bekanntmachungen von anderen übertragen"
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:674
-#: src/transport/gnunet-service-transport.c:2659
+#: src/transport/gnunet-service-transport.c:2661
 #, fuzzy
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr "Auf die Namespace Informationen konnte nicht zugegriffen werden.\n"
@@ -4975,6 +4975,70 @@ msgstr "Sqlite-Datenbank läuft\n"
 msgid "Failed to setup database at `%s'\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
+#: src/namestore/gnunet-namestore-fcfsd.c:552
+#, fuzzy, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr "Kommando `%s' wird nicht unterstützt. Vorgang wird abgebrochen.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:579
+#, fuzzy, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:600
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:632
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:694
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:784
+#, fuzzy, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:803
+#, fuzzy, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:840
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:849
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1084
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1115
+#, fuzzy
+msgid "Failed to start HTTP server\n"
+msgstr "Fehler beim Senden einer `%s' Anfrage an den SMTP Server.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1163
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1190
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1210
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-namestore.c:334
 #, c-format
 msgid "Adding record failed: %s\n"
@@ -5201,70 +5265,6 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-fcfsd.c:552
-#, fuzzy, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr "Kommando `%s' wird nicht unterstützt. Vorgang wird abgebrochen.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:579
-#, fuzzy, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:600
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:632
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:694
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:784
-#, fuzzy, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:803
-#, fuzzy, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:840
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:849
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1084
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1115
-#, fuzzy
-msgid "Failed to start HTTP server\n"
-msgstr "Fehler beim Senden einer `%s' Anfrage an den SMTP Server.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1163
-#, fuzzy
-msgid "Failed to connect to identity\n"
-msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1190
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1210
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-service-namestore.c:866
 #, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5587,10 +5587,6 @@ msgstr "Kommando `%s' wurde nicht gefunden!\n"
 msgid "`upnpc' command not found\n"
 msgstr "Kommando `%s' wurde nicht gefunden!\n"
 
-#: src/nse/gnunet-nse.c:124
-msgid "Show network size estimates from NSE service."
-msgstr ""
-
 #: src/nse/gnunet-nse-profiler.c:857
 msgid "limit to the number of connections to NSE services, 0 for none"
 msgstr ""
@@ -5612,70 +5608,17 @@ msgid "delay between rounds"
 msgstr ""
 
 #: src/nse/gnunet-nse-profiler.c:912
-msgid "Measure quality and performance of the NSE service."
-msgstr ""
-
-#: src/nse/gnunet-service-nse.c:1443
-#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
-msgid "Value is too large.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:175
-#, fuzzy, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr "Verfügbare(r) Transport(e): %s\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:306
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
-msgstr "Datei wurde als `%s' gespeichert.\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:323
-#: src/peerinfo/gnunet-service-peerinfo.c:348
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
-msgstr "Datei wurde als `%s' gespeichert.\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:426
-msgid "# peers known"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:468
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-"Die Datei »%s« im Verzeichnis »%s« entspricht nicht der Namenskonvention. "
-"Die Datei wurde entfernt.\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:624
-#, fuzzy, c-format
-msgid "Scanning directory `%s'\n"
-msgstr "==> Verzeichnis `%s':\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:631
-#, fuzzy, c-format
-msgid "Still no peers found in `%s'!\n"
-msgstr "Dienst `%s' konnte nicht ordentlich entladen werden!\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1024
-#, fuzzy, c-format
-msgid "Cleaning up directory `%s'\n"
-msgstr "==> Verzeichnis `%s':\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1319
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
+msgid "Measure quality and performance of the NSE service."
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1332
-msgid "Skipping import of included HELLOs\n"
+#: src/nse/gnunet-nse.c:124
+msgid "Show network size estimates from NSE service."
 msgstr ""
 
-#: src/peerinfo/peerinfo_api.c:217
-#, fuzzy
-msgid "Failed to receive response from `PEERINFO' service."
-msgstr "Fehler beim Empfangen der Antwort von gnunetd auf die `%s' Nachricht\n"
+#: src/nse/gnunet-service-nse.c:1443
+#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
+msgid "Value is too large.\n"
+msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:237
 #, fuzzy, c-format
@@ -5773,6 +5716,63 @@ msgstr "Anwendung `%s' konnte nicht initialisiert 
werden.\n"
 msgid "Peerinfo REST API initialized\n"
 msgstr " Verbindung fehlgeschlagen\n"
 
+#: src/peerinfo/gnunet-service-peerinfo.c:175
+#, fuzzy, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr "Verfügbare(r) Transport(e): %s\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:306
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr "Datei wurde als `%s' gespeichert.\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:323
+#: src/peerinfo/gnunet-service-peerinfo.c:348
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr "Datei wurde als `%s' gespeichert.\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:426
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:468
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+"Die Datei »%s« im Verzeichnis »%s« entspricht nicht der Namenskonvention. "
+"Die Datei wurde entfernt.\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:624
+#, fuzzy, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "==> Verzeichnis `%s':\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:631
+#, fuzzy, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr "Dienst `%s' konnte nicht ordentlich entladen werden!\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1024
+#, fuzzy, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr "==> Verzeichnis `%s':\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1319
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1332
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:217
+#, fuzzy
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr "Fehler beim Empfangen der Antwort von gnunetd auf die `%s' Nachricht\n"
+
 #: src/peerstore/gnunet-peerstore.c:92
 msgid "peerstore"
 msgstr ""
@@ -6231,18 +6231,6 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "Knoten `%s' konnte nicht in der Routing Tabelle gefunden werden!\n"
 
-#: src/rps/gnunet-rps.c:270
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:275
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:279
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/rps/gnunet-rps-profiler.c:3200
 msgid "duration of the profiling"
 msgstr ""
@@ -6260,6 +6248,18 @@ msgstr "Anzahl an Durchläufen"
 msgid "Measure quality and performance of the RPS service."
 msgstr ""
 
+#: src/rps/gnunet-rps.c:270
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:275
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:279
+msgid "Get peers from biased stream"
+msgstr ""
+
 #: src/scalarproduct/gnunet-scalarproduct.c:229
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6315,10 +6315,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
-#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1118
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
+#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
+#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr " Verbindung fehlgeschlagen\n"
@@ -6673,6 +6673,17 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr ""
 
+#: src/testbed/gnunet-testbed-profiler.c:290
+msgid "tolerate COUNT number of continious timeout failures"
+msgstr ""
+
+#: src/testbed/gnunet-testbed-profiler.c:295
+msgid ""
+"run profiler in non-interactive mode where upon testbed setup the profiler "
+"does not wait for a keystroke but continues to run until a termination "
+"signal is received"
+msgstr ""
+
 #: src/testbed/gnunet_testbed_mpi_spawn.c:119
 #, fuzzy
 msgid "Waiting for child to exit.\n"
@@ -6685,17 +6696,6 @@ msgstr ""
 msgid "Spawning process `%s'\n"
 msgstr "Ungültige Antwort auf `%s'.\n"
 
-#: src/testbed/gnunet-testbed-profiler.c:290
-msgid "tolerate COUNT number of continious timeout failures"
-msgstr ""
-
-#: src/testbed/gnunet-testbed-profiler.c:295
-msgid ""
-"run profiler in non-interactive mode where upon testbed setup the profiler "
-"does not wait for a keystroke but continues to run until a termination "
-"signal is received"
-msgstr ""
-
 #: src/testbed/testbed_api.c:399
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -6988,18 +6988,18 @@ msgstr "# HELLO-Meldungen empfangen"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3189
-#: src/transport/gnunet-communicator-udp.c:2826
+#: src/transport/gnunet-communicator-tcp.c:3221
+#: src/transport/gnunet-communicator-udp.c:2995
 #: src/transport/gnunet-service-tng.c:10014
-#: src/transport/gnunet-service-transport.c:2624
+#: src/transport/gnunet-service-transport.c:2626
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3494
+#: src/transport/gnunet-communicator-tcp.c:3553
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2898
+#: src/transport/gnunet-communicator-udp.c:3067
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7024,50 +7024,50 @@ msgstr "Pfad zu »%s« kann nicht erstellt werden\n"
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:137
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport.c:445
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:794
+#: src/transport/gnunet-service-transport.c:796
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1477
+#: src/transport/gnunet-service-transport.c:1479
 msgid "# bytes payload discarded due to not connected peer"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1622
+#: src/transport/gnunet-service-transport.c:1624
 msgid "# bytes total received"
 msgstr "# Bytes insgesamt empfangen"
 
-#: src/transport/gnunet-service-transport.c:1712
+#: src/transport/gnunet-service-transport.c:1714
 msgid "# bytes payload received"
 msgstr "# Bytes Nutzdaten empfangen"
 
-#: src/transport/gnunet-service-transport.c:2016
-#: src/transport/gnunet-service-transport.c:2450
+#: src/transport/gnunet-service-transport.c:2018
+#: src/transport/gnunet-service-transport.c:2452
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2454
+#: src/transport/gnunet-service-transport.c:2456
 #, fuzzy, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr "Anwendung `%s' konnte nicht initialisiert werden.\n"
 
-#: src/transport/gnunet-service-transport.c:2549
+#: src/transport/gnunet-service-transport.c:2551
 #, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2558
+#: src/transport/gnunet-service-transport.c:2560
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
+#: src/transport/gnunet-service-transport_ats.c:137
+msgid "# Addresses given to ATS"
+msgstr ""
+
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7393,6 +7393,43 @@ msgstr ""
 msgid "# HELLOs given to peerinfo"
 msgstr ""
 
+#: src/transport/gnunet-transport-profiler.c:220
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:577
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:581
+#, fuzzy
+msgid "receive data from peer"
+msgstr "# Bytes des Typs %d empfangen"
+
+#: src/transport/gnunet-transport-profiler.c:586
+msgid "iterations"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:591
+#, fuzzy
+msgid "number of messages to send"
+msgstr "Anzahl an Durchläufen"
+
+#: src/transport/gnunet-transport-profiler.c:596
+msgid "message size to use"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:601
+#: src/transport/gnunet-transport.c:1404
+msgid "peer identity"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:614
+#: src/transport/gnunet-transport.c:1426
+msgid "Direct access to transport service."
+msgstr "Direkter Zugriff auf den Transportdienst"
+
 #: src/transport/gnunet-transport.c:406
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7525,11 +7562,6 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr "Keine Rechnernamen auflösen"
 
-#: src/transport/gnunet-transport.c:1404
-#: src/transport/gnunet-transport-profiler.c:601
-msgid "peer identity"
-msgstr ""
-
 #: src/transport/gnunet-transport.c:1408
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7538,38 +7570,6 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1426
-#: src/transport/gnunet-transport-profiler.c:614
-msgid "Direct access to transport service."
-msgstr "Direkter Zugriff auf den Transportdienst"
-
-#: src/transport/gnunet-transport-profiler.c:220
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:577
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:581
-#, fuzzy
-msgid "receive data from peer"
-msgstr "# Bytes des Typs %d empfangen"
-
-#: src/transport/gnunet-transport-profiler.c:586
-msgid "iterations"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:591
-#, fuzzy
-msgid "number of messages to send"
-msgstr "Anzahl an Durchläufen"
-
-#: src/transport/gnunet-transport-profiler.c:596
-msgid "message size to use"
-msgstr ""
-
 #: src/transport/plugin_transport_http_client.c:1489
 #: src/transport/plugin_transport_http_server.c:2331
 #: src/transport/plugin_transport_http_server.c:3562
@@ -7842,21 +7842,6 @@ msgstr ""
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:169
-#, fuzzy
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr "# Bytes empfangen über TCP"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:553
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:571
-#, fuzzy, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
-
 #: src/transport/plugin_transport_udp.c:3169
 #, c-format
 msgid ""
@@ -7904,6 +7889,21 @@ msgstr "»%s« ist keine gültige IP-Adresse.\n"
 msgid "Failed to create UDP network sockets\n"
 msgstr "UDP-Sockets können nicht geöffnet werden\n"
 
+#: src/transport/plugin_transport_udp_broadcasting.c:169
+#, fuzzy
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr "# Bytes empfangen über TCP"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:553
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:571
+#, fuzzy, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
+
 #: src/transport/plugin_transport_unix.c:1396
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -8085,7 +8085,7 @@ msgid "do daemonize (detach from terminal)"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:1397
-#: src/transport/transport-testing2.c:1116 src/util/service.c:2072
+#: src/transport/transport-testing2.c:983 src/util/service.c:2072
 #: src/util/service.c:2084
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
@@ -8757,19 +8757,19 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:409
+#: src/util/os_installation.c:411
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr ""
 
-#: src/util/os_installation.c:792
+#: src/util/os_installation.c:794
 #, fuzzy, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "Knoten `%s' konnte nicht in der Routing Tabelle gefunden werden!\n"
 
-#: src/util/os_installation.c:825
+#: src/util/os_installation.c:827
 #, c-format
 msgid "Binary `%s' exists, but is not SUID\n"
 msgstr ""
@@ -8795,17 +8795,17 @@ msgstr "`%s' fehlgeschlagen für die Bibliothek `%s'. 
Ort: %s:%d. Fehler: %s\n"
 msgid "Could not determine plugin installation path.\n"
 msgstr "Öffentliche IP-Adresse konnte nicht ermittelt werden.\n"
 
-#: src/util/program.c:262
+#: src/util/program.c:267
 #, fuzzy, c-format
 msgid "Unreadable or malformed configuration file `%s', exit ...\n"
 msgstr "Konfigurationsdatei `%s' wurde erzeugt.\n"
 
-#: src/util/program.c:279
+#: src/util/program.c:284
 #, fuzzy, c-format
 msgid "Unreadable or malformed default configuration file `%s', exit ...\n"
 msgstr "Konfigurationsdatei `%s' wurde erzeugt.\n"
 
-#: src/util/program.c:294
+#: src/util/program.c:299
 #, fuzzy
 msgid "Unreadable or malformed configuration, exit ...\n"
 msgstr "GNUnet Konfiguration"
@@ -8873,10 +8873,6 @@ msgstr ""
 msgid "Attempting to proxy service `%s' to invalid port %d or hostname.\n"
 msgstr ""
 
-#: src/util/strings.c:179
-msgid "b"
-msgstr "b"
-
 #: src/util/strings.c:503
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
@@ -8886,46 +8882,6 @@ msgstr ""
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr ""
 
-#: src/util/strings.c:706
-msgid "µs"
-msgstr "µs"
-
-#: src/util/strings.c:710
-msgid "forever"
-msgstr ""
-
-#: src/util/strings.c:712
-msgid "0 ms"
-msgstr "0 ms"
-
-#: src/util/strings.c:716
-msgid "ms"
-msgstr "ms"
-
-#: src/util/strings.c:720
-msgid "s"
-msgstr "s"
-
-#: src/util/strings.c:724
-msgid "m"
-msgstr "m"
-
-#: src/util/strings.c:728
-msgid "h"
-msgstr "h"
-
-#: src/util/strings.c:734
-msgid "day"
-msgstr "Tag"
-
-#: src/util/strings.c:736
-msgid "days"
-msgstr "Tage"
-
-#: src/util/strings.c:764
-msgid "end of time"
-msgstr ""
-
 #: src/util/strings.c:1240
 msgid "IPv6 address did not start with `['\n"
 msgstr "IPv6-Adresse beginnt nicht mit »[«\n"
@@ -9172,12 +9128,39 @@ msgstr "Dienst wird über UDP angeboten"
 msgid "Setup tunnels via VPN."
 msgstr "Tunnel über VPN einrichten."
 
-#: src/zonemaster/gnunet-service-zonemaster.c:849
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:420
+#: src/zonemaster/gnunet-service-zonemaster.c:849
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
+#~ msgid "b"
+#~ msgstr "b"
+
+#~ msgid "µs"
+#~ msgstr "µs"
+
+#~ msgid "0 ms"
+#~ msgstr "0 ms"
+
+#~ msgid "ms"
+#~ msgstr "ms"
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "m"
+#~ msgstr "m"
+
+#~ msgid "h"
+#~ msgstr "h"
+
+#~ msgid "day"
+#~ msgstr "Tag"
+
+#~ msgid "days"
+#~ msgstr "Tage"
+
 #, fuzzy, c-format
 #~ msgid "Could not acquire lock on file `%s': %s...\n"
 #~ msgstr "PID konnte nicht in Datei `%s' geschrieben werden: %s.\n"
diff --git a/po/es.po b/po/es.po
index 646ae9c81..f9a15c50b 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.9.5a\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2020-09-06 10:07+0200\n"
+"POT-Creation-Date: 2020-10-13 16:12+0200\n"
 "PO-Revision-Date: 2013-02-23 17:50+0100\n"
 "Last-Translator: Miguel Ángel Arruga Vivas <rosen644835@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -29,8 +29,8 @@ msgid "Issuer public key `%s' is not well-formed\n"
 msgstr "El bloque del tipo %u está mal formado\n"
 
 #: src/abd/gnunet-abd.c:560 src/abd/gnunet-service-abd.c:1747
-#: src/namestore/gnunet-namestore.c:1001
 #: src/namestore/gnunet-namestore-fcfsd.c:1154
+#: src/namestore/gnunet-namestore.c:1001
 #, c-format
 msgid "Failed to connect to namestore\n"
 msgstr "Se produjo un fallo al conectar con el almacén de nombres\n"
@@ -525,94 +525,14 @@ msgstr "El servicio «%s» finalizó con estado %s/%d, se 
reiniciará en %llu ms
 msgid "Initiating shutdown as requested by client.\n"
 msgstr "Iniciando apagado bajo petición del cliente.\n"
 
-#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-"No se pudieron cargar las cuotas para la red «%s»:  «%s», asignando el ancho "
-"de banda predeterminado %llu\n"
-
-#: src/ats/gnunet-ats-solver-eval.c:3011
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-"No hay configurada una cuota de salida para la red «%s», asignando el ancho "
-"de banda predeterminado %llu\n"
-
-#: src/ats/gnunet-ats-solver-eval.c:3063
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-"No hay configurada una cuota de salida para la red «%s», asignando el ancho "
-"de banda predeterminado %llu\n"
-
-#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997
-#, fuzzy
-msgid "solver to use"
-msgstr "valor a establecer"
-
-#: src/ats/gnunet-ats-solver-eval.c:3557
-#: src/ats-tests/gnunet-solver-eval.c:1003
-#: src/ats-tests/gnunet-solver-eval.c:1008
-msgid "experiment to use"
-msgstr "experimento para usar"
-
-#: src/ats/gnunet-ats-solver-eval.c:3564
-#, fuzzy
-msgid "print logging"
-msgstr "Iniciando descarga «%s».\n"
-
-#: src/ats/gnunet-ats-solver-eval.c:3569
-msgid "save logging to disk"
-msgstr "guarda protocolo al fichero en disco"
-
-#: src/ats/gnunet-ats-solver-eval.c:3574
-msgid "disable normalization"
-msgstr "deshabilita normalización"
-
-#: src/ats/gnunet-service-ats_plugins.c:326
-#, fuzzy, c-format
-msgid ""
-"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-"No se pudieron cargar las cuotas para la red «%s»:  «%s», asignando el ancho "
-"de banda predeterminado %llu\n"
-
-# Miguel: "Inbound" lo he traducido como entrada en todo el texto.
-#: src/ats/gnunet-service-ats_plugins.c:336
-#, fuzzy, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr "La cuota de entrada configurada para la red «%s» es %llu\n"
-
-#: src/ats/gnunet-service-ats_plugins.c:382
-#, fuzzy, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+#: src/ats-tests/ats-testing-log.c:896
+msgid "Stop logging\n"
 msgstr ""
-"No hay configurada una cuota de salida para la red «%s», asignando el ancho "
-"de banda predeterminado %llu\n"
-
-#: src/ats/gnunet-service-ats_plugins.c:474
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "¡No se puede inicializar el resolvedor!\n"
 
-#: src/ats/plugin_ats_proportional.c:1142
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "Se produjo un fallo al cargar la configuración de %s\n"
-
-#: src/ats/plugin_ats_proportional.c:1165
+#: src/ats-tests/ats-testing-log.c:952
 #, fuzzy, c-format
-msgid "Invalid %s configuration %f\n"
-msgstr "Se produjo un fallo al cargar la configuración de %s\n"
+msgid "Start logging `%s'\n"
+msgstr "Iniciando descarga «%s».\n"
 
 #: src/ats-tests/ats-testing.c:420
 #, c-format
@@ -624,15 +544,6 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr "Fallo al conectar a gnunetd.\n"
 
-#: src/ats-tests/ats-testing-log.c:896
-msgid "Stop logging\n"
-msgstr ""
-
-#: src/ats-tests/ats-testing-log.c:952
-#, fuzzy, c-format
-msgid "Start logging `%s'\n"
-msgstr "Iniciando descarga «%s».\n"
-
 #: src/ats-tests/gnunet-ats-sim.c:92
 #, c-format
 msgid ""
@@ -640,6 +551,17 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
+#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552
+#, fuzzy
+msgid "solver to use"
+msgstr "valor a establecer"
+
+#: src/ats-tests/gnunet-solver-eval.c:1003
+#: src/ats-tests/gnunet-solver-eval.c:1008
+#: src/ats/gnunet-ats-solver-eval.c:3557
+msgid "experiment to use"
+msgstr "experimento para usar"
+
 # Miguel: ¿Como podría traducir "resolutions" y "resolve"?
 # Son difíciles de no calcar, puesto que no conozco como expresar
 # el concepto de obtener una dirección a partir de un nombre
@@ -774,6 +696,84 @@ msgstr "salida prolija (incluye las propiedades de 
direcciones del ATS)"
 msgid "Print information about ATS state"
 msgstr "Imprime información acerca del estado del ATS"
 
+#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+"No se pudieron cargar las cuotas para la red «%s»:  «%s», asignando el ancho "
+"de banda predeterminado %llu\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:3011
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+"No hay configurada una cuota de salida para la red «%s», asignando el ancho "
+"de banda predeterminado %llu\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:3063
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+"No hay configurada una cuota de salida para la red «%s», asignando el ancho "
+"de banda predeterminado %llu\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:3564
+#, fuzzy
+msgid "print logging"
+msgstr "Iniciando descarga «%s».\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:3569
+msgid "save logging to disk"
+msgstr "guarda protocolo al fichero en disco"
+
+#: src/ats/gnunet-ats-solver-eval.c:3574
+msgid "disable normalization"
+msgstr "deshabilita normalización"
+
+#: src/ats/gnunet-service-ats_plugins.c:326
+#, fuzzy, c-format
+msgid ""
+"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+"No se pudieron cargar las cuotas para la red «%s»:  «%s», asignando el ancho "
+"de banda predeterminado %llu\n"
+
+# Miguel: "Inbound" lo he traducido como entrada en todo el texto.
+#: src/ats/gnunet-service-ats_plugins.c:336
+#, fuzzy, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr "La cuota de entrada configurada para la red «%s» es %llu\n"
+
+#: src/ats/gnunet-service-ats_plugins.c:382
+#, fuzzy, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+"No hay configurada una cuota de salida para la red «%s», asignando el ancho "
+"de banda predeterminado %llu\n"
+
+#: src/ats/gnunet-service-ats_plugins.c:474
+#, fuzzy, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "¡No se puede inicializar el resolvedor!\n"
+
+#: src/ats/plugin_ats_proportional.c:1142
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "Se produjo un fallo al cargar la configuración de %s\n"
+
+#: src/ats/plugin_ats_proportional.c:1165
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr "Se produjo un fallo al cargar la configuración de %s\n"
+
 #: src/auction/gnunet-auction-create.c:163
 msgid "description of the item to be sold"
 msgstr "descripción del elemento que está por vender"
@@ -916,6 +916,28 @@ msgid "Connection to conversation service lost, trying to 
reconnect\n"
 msgstr ""
 "El cliente se desconectó del servicio principal, tratando de reconectar.\n"
 
+#: src/conversation/gnunet-conversation-test.c:120
+#, c-format
+msgid ""
+"\n"
+"End of transmission.  Have a GNU day.\n"
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:146
+#, c-format
+msgid ""
+"\n"
+"We are now playing your recording back.  If you can hear it, your audio "
+"settings are working..."
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:218
+#, c-format
+msgid ""
+"We will now be recording you for %s. After that time, the recording will be "
+"played back to you..."
+msgstr ""
+
 #: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1176,30 +1198,8 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-conversation-test.c:120
-#, c-format
-msgid ""
-"\n"
-"End of transmission.  Have a GNU day.\n"
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:146
-#, c-format
-msgid ""
-"\n"
-"We are now playing your recording back.  If you can hear it, your audio "
-"settings are working..."
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:218
-#, c-format
-msgid ""
-"We will now be recording you for %s. After that time, the recording will be "
-"played back to you..."
-msgstr ""
-
-#: src/conversation/gnunet_gst.c:664
 #: src/conversation/gnunet-helper-audio-playback-gst.c:363
+#: src/conversation/gnunet_gst.c:664
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -2019,16 +2019,16 @@ msgstr "«%s» para «%s» falló en %s: %d con error: %s\n"
 msgid "Mysql database running\n"
 msgstr "Base de datos Mysql ejecutándose\n"
 
-#: src/datastore/plugin_datastore_postgres.c:278
-#: src/datastore/plugin_datastore_postgres.c:891
+#: src/datastore/plugin_datastore_postgres.c:284
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:852
+#: src/datastore/plugin_datastore_postgres.c:858
 msgid "Failed to drop table from database.\n"
 msgstr "Se produjo un fallo al borrar una tabla de la base de datos.\n"
 
-#: src/datastore/plugin_datastore_postgres.c:950
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr "Base de datos Postgres ejecutándose\n"
 
@@ -2146,68 +2146,19 @@ msgstr "ser prolijo (imprime información de progreso)"
 msgid "Prints all packets that go through the DHT."
 msgstr "Imprime todos los paquetes que pasan por la DHT."
 
-#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
-#, fuzzy, c-format
-msgid "Exiting as the number of peers is %u\n"
-msgstr "El número máximo de conexiones es %u\n"
+#: src/dht/gnunet-dht-put.c:133
+msgid "Must provide KEY and DATA for DHT put!\n"
+msgstr "¡Se deben proveer «KEY» y «DATA» para una subida a la DHT!\n"
 
-#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
-msgid "number of peers to start"
-msgstr "número de pares para empezar"
+#: src/dht/gnunet-dht-put.c:140
+#, fuzzy, c-format
+msgid "Could not connect to DHT service!\n"
+msgstr "¡No se pudo conectar al servicio %s!\n"
 
-#: src/dht/gnunet_dht_profiler.c:961
-msgid "number of PUTs to perform per peer"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
-#: src/testbed/gnunet-testbed-profiler.c:305
-msgid "name of the file with the login information for the testbed"
-msgstr ""
-"nombre del fichero con la información de acceso usada para la batería de "
-"pruebas"
-
-#: src/dht/gnunet_dht_profiler.c:973
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "delay to start doing PUTs (default: 1 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:985
-msgid "delay to start doing GETs (default: 5 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:990
-msgid "replication degree for DHT PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:996
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1002
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1023
-#, fuzzy
-msgid "Measure quality and performance of the DHT service."
-msgstr "Medir la calidad y rendimiento del servicio NSE."
-
-#: src/dht/gnunet-dht-put.c:133
-msgid "Must provide KEY and DATA for DHT put!\n"
-msgstr "¡Se deben proveer «KEY» y «DATA» para una subida a la DHT!\n"
-
-#: src/dht/gnunet-dht-put.c:140
-#, fuzzy, c-format
-msgid "Could not connect to DHT service!\n"
-msgstr "¡No se pudo conectar al servicio %s!\n"
-
-#: src/dht/gnunet-dht-put.c:151
-#, c-format
-msgid "Issuing put request for `%s' with data `%s'!\n"
-msgstr "¡Iniciando petición de subida para «%s» con datos «%s»!\n"
+#: src/dht/gnunet-dht-put.c:151
+#, c-format
+msgid "Issuing put request for `%s' with data `%s'!\n"
+msgstr "¡Iniciando petición de subida para «%s» con datos «%s»!\n"
 
 #: src/dht/gnunet-dht-put.c:187
 msgid "the data to insert under the key"
@@ -2459,6 +2410,55 @@ msgstr "# Entradas añadidas a la tabla de encaminamiento"
 msgid "# DHT requests combined"
 msgstr "# Peticiones a la DHT combinadas"
 
+#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
+#, fuzzy, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr "El número máximo de conexiones es %u\n"
+
+#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
+msgid "number of peers to start"
+msgstr "número de pares para empezar"
+
+#: src/dht/gnunet_dht_profiler.c:961
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
+#: src/testbed/gnunet-testbed-profiler.c:305
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+"nombre del fichero con la información de acceso usada para la batería de "
+"pruebas"
+
+#: src/dht/gnunet_dht_profiler.c:973
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:985
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:990
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:996
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1002
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1023
+#, fuzzy
+msgid "Measure quality and performance of the DHT service."
+msgstr "Medir la calidad y rendimiento del servicio NSE."
+
 #: src/dht/plugin_block_dht.c:189
 #, c-format
 msgid "Block not of type %u\n"
@@ -3442,14 +3442,6 @@ msgstr ""
 "Descargar ficheros de GNUnet usando una URI GNUnet CHK o LOC (gnunet://fs/"
 "chk/...)"
 
-#: src/fs/gnunet-fs.c:128
-msgid "print a list of all indexed files"
-msgstr "imprimir una lista de todos los ficheros indexados"
-
-#: src/fs/gnunet-fs.c:141
-msgid "Special file-sharing operations"
-msgstr "Operaciones especiales de compartición de ficheros"
-
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr "ejecuta el experimento con «COUNT» pares"
@@ -3470,6 +3462,14 @@ msgstr ""
 "ejecuta una batería de pruebas para medir el rendimiento de la compartición "
 "de ficheros"
 
+#: src/fs/gnunet-fs.c:128
+msgid "print a list of all indexed files"
+msgstr "imprimir una lista de todos los ficheros indexados"
+
+#: src/fs/gnunet-fs.c:141
+msgid "Special file-sharing operations"
+msgstr "Operaciones especiales de compartición de ficheros"
+
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -4168,53 +4168,6 @@ msgstr "¿cuánto tiempo se debe ejecutar? 0 = para 
siempre"
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:257
-#, fuzzy, c-format
-msgid "`%s' is not a valid DNS domain name\n"
-msgstr "«%s» no es una dirección IP válida.\n"
-
-#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
-#, c-format
-msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
-msgstr ""
-"Se produjo un fallo al convertir el nombre en formato DNS IDNA «%s» a UTF-8: "
-"%s\n"
-
-#: src/gns/gnunet-gns.c:281
-msgid "Cannot resolve using GNS: GNUnet peer not running\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:305
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:340
-msgid "Lookup a record for the given name"
-msgstr "Buscar el registro para el nombre dado"
-
-#: src/gns/gnunet-gns.c:346
-msgid "Specify the type of the record to lookup"
-msgstr "Especificar el tipo del registro a buscar"
-
-#: src/gns/gnunet-gns.c:352
-#, fuzzy
-msgid "Specify a timeout for the lookup"
-msgstr "Especificar el tipo del registro a buscar"
-
-#: src/gns/gnunet-gns.c:356
-msgid "No unneeded output"
-msgstr "Sin salida innecesaria"
-
-#: src/gns/gnunet-gns.c:361
-msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:375
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "Herramienta de acceso GNUnet GNS"
-
 #: src/gns/gnunet-gns-import.c:486
 msgid "This program will import some GNS authorities into your GNS namestore."
 msgstr ""
@@ -4335,6 +4288,53 @@ msgstr ""
 msgid "GNUnet GNS proxy"
 msgstr "Proxy GNUnet GNS"
 
+#: src/gns/gnunet-gns.c:257
+#, fuzzy, c-format
+msgid "`%s' is not a valid DNS domain name\n"
+msgstr "«%s» no es una dirección IP válida.\n"
+
+#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
+#, c-format
+msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
+msgstr ""
+"Se produjo un fallo al convertir el nombre en formato DNS IDNA «%s» a UTF-8: "
+"%s\n"
+
+#: src/gns/gnunet-gns.c:281
+msgid "Cannot resolve using GNS: GNUnet peer not running\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:305
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:340
+msgid "Lookup a record for the given name"
+msgstr "Buscar el registro para el nombre dado"
+
+#: src/gns/gnunet-gns.c:346
+msgid "Specify the type of the record to lookup"
+msgstr "Especificar el tipo del registro a buscar"
+
+#: src/gns/gnunet-gns.c:352
+#, fuzzy
+msgid "Specify a timeout for the lookup"
+msgstr "Especificar el tipo del registro a buscar"
+
+#: src/gns/gnunet-gns.c:356
+msgid "No unneeded output"
+msgstr "Sin salida innecesaria"
+
+#: src/gns/gnunet-gns.c:361
+msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:375
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "Herramienta de acceso GNUnet GNS"
+
 #: src/gns/gnunet-service-gns.c:505
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4346,8 +4346,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr "¡Se produjo un fallo al conectar con el almacén de nombres!\n"
 
 #: src/gns/gnunet-service-gns.c:560
-#: src/zonemaster/gnunet-service-zonemaster.c:887
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:444
+#: src/zonemaster/gnunet-service-zonemaster.c:887
 msgid "Could not connect to DHT!\n"
 msgstr "¡No se pudo conectar a la DHT!\n"
 
@@ -4877,7 +4877,7 @@ msgid "# hostlist advertisements send"
 msgstr "# anuncios de listas de máquinas enviados"
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:674
-#: src/transport/gnunet-service-transport.c:2659
+#: src/transport/gnunet-service-transport.c:2661
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 "No se pudo acceder al servicio de información de pares (PEERINFO).  "
@@ -5143,6 +5143,71 @@ msgstr "Base de datos sqlite ejecutándose\n"
 msgid "Failed to setup database at `%s'\n"
 msgstr "Se produjo un fallo al inciar «%s» en «%s»\n"
 
+# form??
+#: src/namestore/gnunet-namestore-fcfsd.c:552
+#, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr "Forma de valor no soportada «%s»\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:579
+#, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr "Se produjo un fallo al crear un registro para el dominio «%s»: %s\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:600
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:632
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr "Encontrado nombre «%s» para la clave dada\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:694
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr "Encontrados %u registros para el dominio «%s»\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:784
+#, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr "Se produjo un fallo al crear la página para «%s»\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:803
+#, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr "Se produjo un fallo al configurar el post-procesador para «%s»\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:840
+msgid "Domain name must not contain `.'\n"
+msgstr "El nombre de dominio no puede contener «.»\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:849
+msgid "Domain name must not contain `+'\n"
+msgstr "El nombre de dominio no puede contener «+»\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1084
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1115
+msgid "Failed to start HTTP server\n"
+msgstr "Se produjo un fallo al iniciar el servidor HTTP\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1163
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "Se produjo un fallo al conectar con GNS\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1190
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1210
+#, fuzzy
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr "Servicio de registro GNUnet GNS primero en llegar, primero en servirse"
+
 #: src/namestore/gnunet-namestore.c:334
 #, c-format
 msgid "Adding record failed: %s\n"
@@ -5375,71 +5440,6 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr "nombre de la sección a la que acceder"
 
-# form??
-#: src/namestore/gnunet-namestore-fcfsd.c:552
-#, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr "Forma de valor no soportada «%s»\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:579
-#, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr "Se produjo un fallo al crear un registro para el dominio «%s»: %s\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:600
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:632
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr "Encontrado nombre «%s» para la clave dada\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:694
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr "Encontrados %u registros para el dominio «%s»\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:784
-#, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr "Se produjo un fallo al crear la página para «%s»\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:803
-#, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr "Se produjo un fallo al configurar el post-procesador para «%s»\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:840
-msgid "Domain name must not contain `.'\n"
-msgstr "El nombre de dominio no puede contener «.»\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:849
-msgid "Domain name must not contain `+'\n"
-msgstr "El nombre de dominio no puede contener «+»\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1084
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1115
-msgid "Failed to start HTTP server\n"
-msgstr "Se produjo un fallo al iniciar el servidor HTTP\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1163
-#, fuzzy
-msgid "Failed to connect to identity\n"
-msgstr "Se produjo un fallo al conectar con GNS\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1190
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1210
-#, fuzzy
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr "Servicio de registro GNUnet GNS primero en llegar, primero en servirse"
-
 #: src/namestore/gnunet-service-namestore.c:866
 #, fuzzy, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5773,11 +5773,6 @@ msgstr "comando «external-ip» no encontrado\n"
 msgid "`upnpc' command not found\n"
 msgstr "comando «upnpc» no encontrado\n"
 
-#: src/nse/gnunet-nse.c:124
-#, fuzzy
-msgid "Show network size estimates from NSE service."
-msgstr "# Estimaciones del tamaño de red recibidas"
-
 #: src/nse/gnunet-nse-profiler.c:857
 msgid "limit to the number of connections to NSE services, 0 for none"
 msgstr "límite al número de conexiones a servicios NSE, 0 para ilimitadas"
@@ -5803,69 +5798,15 @@ msgstr "retraso entre rondas"
 msgid "Measure quality and performance of the NSE service."
 msgstr "Medir la calidad y rendimiento del servicio NSE."
 
-#: src/nse/gnunet-service-nse.c:1443
-#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
-msgid "Value is too large.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:175
-#, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr "Eliminando dirección de transporte «%s»\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:306
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
-msgstr "Se produjo un fallo al procesar «HELLO» en el fichero «%s»\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:323
-#: src/peerinfo/gnunet-service-peerinfo.c:348
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
-msgstr "Se produjo un fallo al procesar «HELLO» en el fichero «%s»\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:426
-msgid "# peers known"
-msgstr "# pares conocidos"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:468
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-"El fichero «%s» en el directorio «%s» no sigue la convención de nombres. "
-"Eliminado.\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:624
-#, fuzzy, c-format
-msgid "Scanning directory `%s'\n"
-msgstr "Escaneando directorio «%s».\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:631
-#, c-format
-msgid "Still no peers found in `%s'!\n"
-msgstr "¡Aún no se han encontrado pares en «%s»!\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1024
-#, fuzzy, c-format
-msgid "Cleaning up directory `%s'\n"
-msgstr "Escaneando directorio «%s».\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1319
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr "Importando HELLO de «%s»\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1332
-msgid "Skipping import of included HELLOs\n"
-msgstr ""
-
-# Miguel: "Failed to receive" también aquí está traducido como
-# "no se obtuvo respuesta" por claridad.
-#: src/peerinfo/peerinfo_api.c:217
-msgid "Failed to receive response from `PEERINFO' service."
+#: src/nse/gnunet-nse.c:124
+#, fuzzy
+msgid "Show network size estimates from NSE service."
+msgstr "# Estimaciones del tamaño de red recibidas"
+
+#: src/nse/gnunet-service-nse.c:1443
+#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
+msgid "Value is too large.\n"
 msgstr ""
-"No se obtuvo respuesta del servicio de información de pares (PEERINFO)."
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:237
 #, fuzzy, c-format
@@ -5962,6 +5903,65 @@ msgstr "Se produjo un fallo al cargar el módulo del 
transporte para «%s»\n"
 msgid "Peerinfo REST API initialized\n"
 msgstr "Conexión fallida\n"
 
+#: src/peerinfo/gnunet-service-peerinfo.c:175
+#, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr "Eliminando dirección de transporte «%s»\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:306
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr "Se produjo un fallo al procesar «HELLO» en el fichero «%s»\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:323
+#: src/peerinfo/gnunet-service-peerinfo.c:348
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr "Se produjo un fallo al procesar «HELLO» en el fichero «%s»\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:426
+msgid "# peers known"
+msgstr "# pares conocidos"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:468
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+"El fichero «%s» en el directorio «%s» no sigue la convención de nombres. "
+"Eliminado.\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:624
+#, fuzzy, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "Escaneando directorio «%s».\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:631
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr "¡Aún no se han encontrado pares en «%s»!\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1024
+#, fuzzy, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr "Escaneando directorio «%s».\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1319
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr "Importando HELLO de «%s»\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1332
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+# Miguel: "Failed to receive" también aquí está traducido como
+# "no se obtuvo respuesta" por claridad.
+#: src/peerinfo/peerinfo_api.c:217
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+"No se obtuvo respuesta del servicio de información de pares (PEERINFO)."
+
 #: src/peerstore/gnunet-peerstore.c:92
 msgid "peerstore"
 msgstr ""
@@ -6433,18 +6433,6 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "No se pudo conectar con el almacén de datos."
 
-#: src/rps/gnunet-rps.c:270
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:275
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:279
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/rps/gnunet-rps-profiler.c:3200
 #, fuzzy
 msgid "duration of the profiling"
@@ -6466,6 +6454,18 @@ msgstr "número de pares para empezar"
 msgid "Measure quality and performance of the RPS service."
 msgstr "Medir la calidad y rendimiento del servicio NSE."
 
+#: src/rps/gnunet-rps.c:270
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:275
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:279
+msgid "Get peers from biased stream"
+msgstr ""
+
 #: src/scalarproduct/gnunet-scalarproduct.c:229
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6521,10 +6521,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
-#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1118
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
+#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
+#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr "Conexión fallida (¿bug?)\n"
@@ -6884,16 +6884,6 @@ msgstr "Petición ignorada porque el ARM se está 
apagando.\n"
 msgid "%.s Unknown result code."
 msgstr "Código de respuesta del ARM desconocido.\n"
 
-#: src/testbed/gnunet_testbed_mpi_spawn.c:119
-#, fuzzy
-msgid "Waiting for child to exit.\n"
-msgstr "Esperando a los pares para conectar (%u ciclos restantes)...\n"
-
-#: src/testbed/gnunet_testbed_mpi_spawn.c:242
-#, fuzzy, c-format
-msgid "Spawning process `%s'\n"
-msgstr "Iniciando el proceso auxiliar (HELPER) «%s»\n"
-
 #: src/testbed/gnunet-testbed-profiler.c:290
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr "tolerar un número «COUNT» de continuas expiraciones de plazo"
@@ -6905,6 +6895,16 @@ msgid ""
 "signal is received"
 msgstr ""
 
+#: src/testbed/gnunet_testbed_mpi_spawn.c:119
+#, fuzzy
+msgid "Waiting for child to exit.\n"
+msgstr "Esperando a los pares para conectar (%u ciclos restantes)...\n"
+
+#: src/testbed/gnunet_testbed_mpi_spawn.c:242
+#, fuzzy, c-format
+msgid "Spawning process `%s'\n"
+msgstr "Iniciando el proceso auxiliar (HELPER) «%s»\n"
+
 #: src/testbed/testbed_api.c:399
 #, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -7225,22 +7225,22 @@ msgstr "# mensajes «HELLO» recibidos"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3189
-#: src/transport/gnunet-communicator-udp.c:2826
+#: src/transport/gnunet-communicator-tcp.c:3221
+#: src/transport/gnunet-communicator-udp.c:2995
 #: src/transport/gnunet-service-tng.c:10014
-#: src/transport/gnunet-service-transport.c:2624
+#: src/transport/gnunet-service-transport.c:2626
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 "El servicio de transporte carece de opciones de configuración de clave.  "
 "Saliendo.\n"
 
-#: src/transport/gnunet-communicator-tcp.c:3494
+#: src/transport/gnunet-communicator-tcp.c:3553
 #, fuzzy
 msgid "GNUnet TCP communicator"
 msgstr "Configurador Gtk de GNUnet"
 
-#: src/transport/gnunet-communicator-udp.c:2898
+#: src/transport/gnunet-communicator-udp.c:3067
 #, fuzzy
 msgid "GNUnet UDP communicator"
 msgstr "Configurador Gtk de GNUnet"
@@ -7267,51 +7267,51 @@ msgstr "Se produjo un fallo al crear la página para 
«%s»\n"
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:137
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport.c:445
 msgid "# messages dropped due to slow client"
 msgstr "# mensajes omitidos debido a un cliente lento"
 
-#: src/transport/gnunet-service-transport.c:794
+#: src/transport/gnunet-service-transport.c:796
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr "# bytes de «payload» omitidos (el otro par no estaba conectado)"
 
-#: src/transport/gnunet-service-transport.c:1477
+#: src/transport/gnunet-service-transport.c:1479
 #, fuzzy
 msgid "# bytes payload discarded due to not connected peer"
 msgstr "# bytes de «payload» descartados debido a par no conectado"
 
-#: src/transport/gnunet-service-transport.c:1622
+#: src/transport/gnunet-service-transport.c:1624
 msgid "# bytes total received"
 msgstr "# total de bytes recibidos"
 
-#: src/transport/gnunet-service-transport.c:1712
+#: src/transport/gnunet-service-transport.c:1714
 msgid "# bytes payload received"
 msgstr "# bytes de «payload» recibidos"
 
-#: src/transport/gnunet-service-transport.c:2016
-#: src/transport/gnunet-service-transport.c:2450
+#: src/transport/gnunet-service-transport.c:2018
+#: src/transport/gnunet-service-transport.c:2452
 msgid "# disconnects due to blacklist"
 msgstr "# desconexiones debido a la lista negra"
 
-#: src/transport/gnunet-service-transport.c:2454
+#: src/transport/gnunet-service-transport.c:2456
 #, fuzzy, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr "Se produjo un fallo al cargar el módulo del transporte para «%s»\n"
 
-#: src/transport/gnunet-service-transport.c:2549
+#: src/transport/gnunet-service-transport.c:2551
 #, fuzzy, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr "Añadiendo «%s» sin direcciones para el par «%s»\n"
 
-#: src/transport/gnunet-service-transport.c:2558
+#: src/transport/gnunet-service-transport.c:2560
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
+#: src/transport/gnunet-service-transport_ats.c:137
+msgid "# Addresses given to ATS"
+msgstr ""
+
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr "# refrescos de mi «HELLO»"
@@ -7653,6 +7653,45 @@ msgstr "# revalidaciones de direcciones iniciadas"
 msgid "# HELLOs given to peerinfo"
 msgstr "# «HELLO» obtenidos de «peerinfo»"
 
+#: src/transport/gnunet-transport-profiler.c:220
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:577
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:581
+#, fuzzy
+msgid "receive data from peer"
+msgstr "# respuestas recibidas de otros pares"
+
+#: src/transport/gnunet-transport-profiler.c:586
+#, fuzzy
+msgid "iterations"
+msgstr "Otras configuraciones"
+
+#: src/transport/gnunet-transport-profiler.c:591
+#, fuzzy
+msgid "number of messages to send"
+msgstr "número de mensajes a usar por iteración"
+
+#: src/transport/gnunet-transport-profiler.c:596
+#, fuzzy
+msgid "message size to use"
+msgstr "tamaño del mensaje"
+
+#: src/transport/gnunet-transport-profiler.c:601
+#: src/transport/gnunet-transport.c:1404
+msgid "peer identity"
+msgstr "identidad del par"
+
+#: src/transport/gnunet-transport-profiler.c:614
+#: src/transport/gnunet-transport.c:1426
+msgid "Direct access to transport service."
+msgstr "Acceso directo al servicio de transporte."
+
 #: src/transport/gnunet-transport.c:406
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7797,11 +7836,6 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr "no resolver nombres de máquinas"
 
-#: src/transport/gnunet-transport.c:1404
-#: src/transport/gnunet-transport-profiler.c:601
-msgid "peer identity"
-msgstr "identidad del par"
-
 #: src/transport/gnunet-transport.c:1408
 #, fuzzy
 msgid "monitor plugin sessions"
@@ -7811,40 +7845,6 @@ msgstr "# sesiones wlan pendientes"
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr "enviar data para prueba a otro par (hasta CTRL-C)"
 
-#: src/transport/gnunet-transport.c:1426
-#: src/transport/gnunet-transport-profiler.c:614
-msgid "Direct access to transport service."
-msgstr "Acceso directo al servicio de transporte."
-
-#: src/transport/gnunet-transport-profiler.c:220
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:577
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:581
-#, fuzzy
-msgid "receive data from peer"
-msgstr "# respuestas recibidas de otros pares"
-
-#: src/transport/gnunet-transport-profiler.c:586
-#, fuzzy
-msgid "iterations"
-msgstr "Otras configuraciones"
-
-#: src/transport/gnunet-transport-profiler.c:591
-#, fuzzy
-msgid "number of messages to send"
-msgstr "número de mensajes a usar por iteración"
-
-#: src/transport/gnunet-transport-profiler.c:596
-#, fuzzy
-msgid "message size to use"
-msgstr "tamaño del mensaje"
-
 #: src/transport/plugin_transport_http_client.c:1489
 #: src/transport/plugin_transport_http_server.c:2331
 #: src/transport/plugin_transport_http_server.c:3562
@@ -8129,23 +8129,6 @@ msgstr "Transporte TCP no escuchando en ningún puerto 
(únicamente cliente)\n"
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr "El transporte TCP anuncia que está en el puerto %llu\n"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:169
-#, fuzzy
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr "# beacons HELLO multicast IPv6 recibidos vía UDP"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:553
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:571
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-"Se produjo un fallo al establecer la opción de «broadcast» IPv4 para el "
-"«socket» en el puerto %d\n"
-
 #: src/transport/plugin_transport_udp.c:3169
 #, c-format
 msgid ""
@@ -8200,6 +8183,23 @@ msgstr "«%s» no es una dirección IP válida.\n"
 msgid "Failed to create UDP network sockets\n"
 msgstr "Se produjo un fallo al crear una nueva firma"
 
+#: src/transport/plugin_transport_udp_broadcasting.c:169
+#, fuzzy
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr "# beacons HELLO multicast IPv6 recibidos vía UDP"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:553
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:571
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+"Se produjo un fallo al establecer la opción de «broadcast» IPv4 para el "
+"«socket» en el puerto %d\n"
+
 #: src/transport/plugin_transport_unix.c:1396
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -8390,7 +8390,7 @@ msgid "do daemonize (detach from terminal)"
 msgstr "demonizar (desasociar del terminal)"
 
 #: src/transport/tcp_service_legacy.c:1397
-#: src/transport/transport-testing2.c:1116 src/util/service.c:2072
+#: src/transport/transport-testing2.c:983 src/util/service.c:2072
 #: src/util/service.c:2084
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
@@ -9072,7 +9072,7 @@ msgstr ""
 "¡Error lógico interno fatal, el proceso está colgado en «%s» (abortar con "
 "CTRL-C)!\n"
 
-#: src/util/os_installation.c:409
+#: src/util/os_installation.c:411
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
@@ -9081,12 +9081,12 @@ msgstr ""
 "No se pudo determinar la ruta de instalación de %s.  Establezca la variable "
 "de entorno «%s».\n"
 
-#: src/util/os_installation.c:792
+#: src/util/os_installation.c:794
 #, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "¡No se pudo encontrar el programa llamado «%s» en PATH!\n"
 
-#: src/util/os_installation.c:825
+#: src/util/os_installation.c:827
 #, c-format
 msgid "Binary `%s' exists, but is not SUID\n"
 msgstr ""
@@ -9110,17 +9110,17 @@ msgstr "Falló «%s» para la biblioteca «%s» con error: 
%s\n"
 msgid "Could not determine plugin installation path.\n"
 msgstr "No se pudo determinar la ruta de instalación de los módulos.\n"
 
-#: src/util/program.c:262
+#: src/util/program.c:267
 #, fuzzy, c-format
 msgid "Unreadable or malformed configuration file `%s', exit ...\n"
 msgstr "Se produjo un fallo al borrar el fichero de configuración %s\n"
 
-#: src/util/program.c:279
+#: src/util/program.c:284
 #, fuzzy, c-format
 msgid "Unreadable or malformed default configuration file `%s', exit ...\n"
 msgstr "Se produjo un fallo al borrar el fichero de configuración %s\n"
 
-#: src/util/program.c:294
+#: src/util/program.c:299
 #, fuzzy
 msgid "Unreadable or malformed configuration, exit ...\n"
 msgstr "Se produjo un fallo al borrar el fichero de configuración %s\n"
@@ -9194,10 +9194,6 @@ msgstr ""
 msgid "Attempting to proxy service `%s' to invalid port %d or hostname.\n"
 msgstr ""
 
-#: src/util/strings.c:179
-msgid "b"
-msgstr "b"
-
 #: src/util/strings.c:503
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
@@ -9209,46 +9205,6 @@ msgstr ""
 "Se produjo un fallo al expandir «$HOME»: variable de entorno «HOME» no "
 "establecida"
 
-#: src/util/strings.c:706
-msgid "µs"
-msgstr ""
-
-#: src/util/strings.c:710
-msgid "forever"
-msgstr "para siempre"
-
-#: src/util/strings.c:712
-msgid "0 ms"
-msgstr "0 ms"
-
-#: src/util/strings.c:716
-msgid "ms"
-msgstr "ms"
-
-#: src/util/strings.c:720
-msgid "s"
-msgstr "s"
-
-#: src/util/strings.c:724
-msgid "m"
-msgstr "m"
-
-#: src/util/strings.c:728
-msgid "h"
-msgstr "h"
-
-#: src/util/strings.c:734
-msgid "day"
-msgstr "día"
-
-#: src/util/strings.c:736
-msgid "days"
-msgstr "días"
-
-#: src/util/strings.c:764
-msgid "end of time"
-msgstr "fin del plazo"
-
 #: src/util/strings.c:1240
 msgid "IPv6 address did not start with `['\n"
 msgstr "La dirección IPv6 no empezaba con «[»\n"
@@ -9503,11 +9459,41 @@ msgstr "el servicio es ofrecido vía UDP"
 msgid "Setup tunnels via VPN."
 msgstr "Configurar túneles vía VPN."
 
-#: src/zonemaster/gnunet-service-zonemaster.c:849
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:420
+#: src/zonemaster/gnunet-service-zonemaster.c:849
 msgid "Failed to connect to the namestore!\n"
 msgstr "¡Se produjo un fallo al conectar con el almacén de nombres!\n"
 
+#~ msgid "b"
+#~ msgstr "b"
+
+#~ msgid "forever"
+#~ msgstr "para siempre"
+
+#~ msgid "0 ms"
+#~ msgstr "0 ms"
+
+#~ msgid "ms"
+#~ msgstr "ms"
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "m"
+#~ msgstr "m"
+
+#~ msgid "h"
+#~ msgstr "h"
+
+#~ msgid "day"
+#~ msgstr "día"
+
+#~ msgid "days"
+#~ msgstr "días"
+
+#~ msgid "end of time"
+#~ msgstr "fin del plazo"
+
 #, c-format
 #~ msgid "Metadata `%s' failed to deserialize"
 #~ msgstr "Se produjo un fallo al deserializar los metadatos «%s»"
diff --git a/po/fr.po b/po/fr.po
index 1ffa44998..82b35c5cd 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2020-09-06 10:07+0200\n"
+"POT-Creation-Date: 2020-10-13 16:12+0200\n"
 "PO-Revision-Date: 2015-12-24 01:20+0100\n"
 "Last-Translator: Stéphane  Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -27,8 +27,8 @@ msgid "Issuer public key `%s' is not well-formed\n"
 msgstr ""
 
 #: src/abd/gnunet-abd.c:560 src/abd/gnunet-service-abd.c:1747
-#: src/namestore/gnunet-namestore.c:1001
 #: src/namestore/gnunet-namestore-fcfsd.c:1154
+#: src/namestore/gnunet-namestore.c:1001
 #, c-format
 msgid "Failed to connect to namestore\n"
 msgstr ""
@@ -491,81 +491,14 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3011
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3063
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997
-msgid "solver to use"
-msgstr "solveur utilisé"
-
-#: src/ats/gnunet-ats-solver-eval.c:3557
-#: src/ats-tests/gnunet-solver-eval.c:1003
-#: src/ats-tests/gnunet-solver-eval.c:1008
-msgid "experiment to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3564
-msgid "print logging"
-msgstr "afficher le journal"
-
-#: src/ats/gnunet-ats-solver-eval.c:3569
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3574
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:326
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:336
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:382
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
-msgstr ""
+#: src/ats-tests/ats-testing-log.c:896
+msgid "Stop logging\n"
+msgstr "Arrêter la journalisation\n"
 
-#: src/ats/gnunet-service-ats_plugins.c:474
+#: src/ats-tests/ats-testing-log.c:952
 #, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr ""
-
-#: src/ats/plugin_ats_proportional.c:1142
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "fornat invalide : « %s »\n"
-
-#: src/ats/plugin_ats_proportional.c:1165
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f\n"
-msgstr "fornat invalide : « %s »\n"
+msgid "Start logging `%s'\n"
+msgstr "Démarrer la journalisation « %s »\n"
 
 #: src/ats-tests/ats-testing.c:420
 #, c-format
@@ -577,15 +510,6 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:896
-msgid "Stop logging\n"
-msgstr "Arrêter la journalisation\n"
-
-#: src/ats-tests/ats-testing-log.c:952
-#, c-format
-msgid "Start logging `%s'\n"
-msgstr "Démarrer la journalisation « %s »\n"
-
 #: src/ats-tests/gnunet-ats-sim.c:92
 #, c-format
 msgid ""
@@ -593,6 +517,16 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
+#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552
+msgid "solver to use"
+msgstr "solveur utilisé"
+
+#: src/ats-tests/gnunet-solver-eval.c:1003
+#: src/ats-tests/gnunet-solver-eval.c:1008
+#: src/ats/gnunet-ats-solver-eval.c:3557
+msgid "experiment to use"
+msgstr ""
+
 #: src/ats-tool/gnunet-ats.c:299
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -708,6 +642,72 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr ""
 
+#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3011
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3063
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3564
+msgid "print logging"
+msgstr "afficher le journal"
+
+#: src/ats/gnunet-ats-solver-eval.c:3569
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3574
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:326
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:336
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:382
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:474
+#, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr ""
+
+#: src/ats/plugin_ats_proportional.c:1142
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "fornat invalide : « %s »\n"
+
+#: src/ats/plugin_ats_proportional.c:1165
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr "fornat invalide : « %s »\n"
+
 #: src/auction/gnunet-auction-create.c:163
 msgid "description of the item to be sold"
 msgstr ""
@@ -838,6 +838,28 @@ msgstr ""
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
+#: src/conversation/gnunet-conversation-test.c:120
+#, c-format
+msgid ""
+"\n"
+"End of transmission.  Have a GNU day.\n"
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:146
+#, c-format
+msgid ""
+"\n"
+"We are now playing your recording back.  If you can hear it, your audio "
+"settings are working..."
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:218
+#, c-format
+msgid ""
+"We will now be recording you for %s. After that time, the recording will be "
+"played back to you..."
+msgstr ""
+
 #: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1094,30 +1116,8 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-conversation-test.c:120
-#, c-format
-msgid ""
-"\n"
-"End of transmission.  Have a GNU day.\n"
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:146
-#, c-format
-msgid ""
-"\n"
-"We are now playing your recording back.  If you can hear it, your audio "
-"settings are working..."
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:218
-#, c-format
-msgid ""
-"We will now be recording you for %s. After that time, the recording will be "
-"played back to you..."
-msgstr ""
-
-#: src/conversation/gnunet_gst.c:664
 #: src/conversation/gnunet-helper-audio-playback-gst.c:363
+#: src/conversation/gnunet_gst.c:664
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1880,16 +1880,16 @@ msgstr ""
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:278
-#: src/datastore/plugin_datastore_postgres.c:891
+#: src/datastore/plugin_datastore_postgres.c:284
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:852
+#: src/datastore/plugin_datastore_postgres.c:858
 msgid "Failed to drop table from database.\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:950
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -2000,89 +2000,42 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
-#, c-format
-msgid "Exiting as the number of peers is %u\n"
+#: src/dht/gnunet-dht-put.c:133
+msgid "Must provide KEY and DATA for DHT put!\n"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
-#, fuzzy
-msgid "number of peers to start"
-msgstr "nombre de valeurs"
+#: src/dht/gnunet-dht-put.c:140
+#, fuzzy, c-format
+msgid "Could not connect to DHT service!\n"
+msgstr "Impossible d’ouvrir « %s ».\n"
 
-#: src/dht/gnunet_dht_profiler.c:961
-msgid "number of PUTs to perform per peer"
+#: src/dht/gnunet-dht-put.c:151
+#, c-format
+msgid "Issuing put request for `%s' with data `%s'!\n"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
-#: src/testbed/gnunet-testbed-profiler.c:305
-msgid "name of the file with the login information for the testbed"
+#: src/dht/gnunet-dht-put.c:187
+msgid "the data to insert under the key"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:973
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
+#: src/dht/gnunet-dht-put.c:193
+msgid "how long to store this entry in the dht (in seconds)"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "delay to start doing PUTs (default: 1 sec)"
+#: src/dht/gnunet-dht-put.c:208
+msgid "how many replicas to create"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:985
-msgid "delay to start doing GETs (default: 5 min)"
+#: src/dht/gnunet-dht-put.c:212
+msgid "use DHT's record route option"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:990
-msgid "replication degree for DHT PUTs"
+#: src/dht/gnunet-dht-put.c:217
+msgid "the type to insert data as"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:996
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1002
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1023
-msgid "Measure quality and performance of the DHT service."
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:133
-msgid "Must provide KEY and DATA for DHT put!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:140
-#, fuzzy, c-format
-msgid "Could not connect to DHT service!\n"
-msgstr "Impossible d’ouvrir « %s ».\n"
-
-#: src/dht/gnunet-dht-put.c:151
-#, c-format
-msgid "Issuing put request for `%s' with data `%s'!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:187
-msgid "the data to insert under the key"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:193
-msgid "how long to store this entry in the dht (in seconds)"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:208
-msgid "how many replicas to create"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:212
-msgid "use DHT's record route option"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:217
-msgid "the type to insert data as"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:232
-msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
+#: src/dht/gnunet-dht-put.c:232
+msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
 msgstr ""
 
 #: src/dht/gnunet-service-dht_clients.c:367
@@ -2292,6 +2245,53 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr ""
 
+#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
+#, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
+#, fuzzy
+msgid "number of peers to start"
+msgstr "nombre de valeurs"
+
+#: src/dht/gnunet_dht_profiler.c:961
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
+#: src/testbed/gnunet-testbed-profiler.c:305
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:973
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:985
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:990
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:996
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1002
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1023
+msgid "Measure quality and performance of the DHT service."
+msgstr ""
+
 #: src/dht/plugin_block_dht.c:189
 #, c-format
 msgid "Block not of type %u\n"
@@ -3191,14 +3191,6 @@ msgid ""
 "chk/...)"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:128
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:141
-msgid "Special file-sharing operations"
-msgstr ""
-
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr ""
@@ -3215,6 +3207,14 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:128
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:141
+msgid "Special file-sharing operations"
+msgstr ""
+
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3860,49 +3860,6 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:257
-#, c-format
-msgid "`%s' is not a valid DNS domain name\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
-#, c-format
-msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:281
-msgid "Cannot resolve using GNS: GNUnet peer not running\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:305
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:340
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:346
-msgid "Specify the type of the record to lookup"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:352
-msgid "Specify a timeout for the lookup"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:356
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:361
-msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:375
-msgid "GNUnet GNS resolver tool"
-msgstr ""
-
 #: src/gns/gnunet-gns-import.c:486
 msgid "This program will import some GNS authorities into your GNS namestore."
 msgstr ""
@@ -4022,6 +3979,49 @@ msgstr ""
 msgid "GNUnet GNS proxy"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:257
+#, c-format
+msgid "`%s' is not a valid DNS domain name\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
+#, c-format
+msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:281
+msgid "Cannot resolve using GNS: GNUnet peer not running\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:305
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:340
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:346
+msgid "Specify the type of the record to lookup"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:352
+msgid "Specify a timeout for the lookup"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:356
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:361
+msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:375
+msgid "GNUnet GNS resolver tool"
+msgstr ""
+
 #: src/gns/gnunet-service-gns.c:505
 msgid "Properly base32-encoded public key required"
 msgstr ""
@@ -4031,8 +4031,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr ""
 
 #: src/gns/gnunet-service-gns.c:560
-#: src/zonemaster/gnunet-service-zonemaster.c:887
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:444
+#: src/zonemaster/gnunet-service-zonemaster.c:887
 msgid "Could not connect to DHT!\n"
 msgstr ""
 
@@ -4518,7 +4518,7 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:674
-#: src/transport/gnunet-service-transport.c:2659
+#: src/transport/gnunet-service-transport.c:2661
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 
@@ -4766,6 +4766,68 @@ msgstr ""
 msgid "Failed to setup database at `%s'\n"
 msgstr "Échec du démarrage de %s\n"
 
+#: src/namestore/gnunet-namestore-fcfsd.c:552
+#, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:579
+#, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:600
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:632
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:694
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:784
+#, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:803
+#, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:840
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:849
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1084
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1115
+msgid "Failed to start HTTP server\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1163
+msgid "Failed to connect to identity\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1190
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1210
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-namestore.c:334
 #, c-format
 msgid "Adding record failed: %s\n"
@@ -4992,68 +5054,6 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-fcfsd.c:552
-#, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:579
-#, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:600
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:632
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:694
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:784
-#, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:803
-#, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:840
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:849
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1084
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1115
-msgid "Failed to start HTTP server\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1163
-msgid "Failed to connect to identity\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1190
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1210
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-service-namestore.c:866
 #, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5360,10 +5360,6 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
-#: src/nse/gnunet-nse.c:124
-msgid "Show network size estimates from NSE service."
-msgstr ""
-
 #: src/nse/gnunet-nse-profiler.c:857
 msgid "limit to the number of connections to NSE services, 0 for none"
 msgstr ""
@@ -5376,75 +5372,25 @@ msgstr ""
 msgid "name of the file for writing the main results"
 msgstr ""
 
-#: src/nse/gnunet-nse-profiler.c:888
-msgid "Number of peers to run in each round, separated by commas"
-msgstr ""
-
-#: src/nse/gnunet-nse-profiler.c:900
-msgid "delay between rounds"
-msgstr ""
-
-#: src/nse/gnunet-nse-profiler.c:912
-msgid "Measure quality and performance of the NSE service."
-msgstr ""
-
-#: src/nse/gnunet-service-nse.c:1443
-#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
-msgid "Value is too large.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:175
-#, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:306
-#, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:323
-#: src/peerinfo/gnunet-service-peerinfo.c:348
-#, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:426
-msgid "# peers known"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:468
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:624
-#, c-format
-msgid "Scanning directory `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:631
-#, c-format
-msgid "Still no peers found in `%s'!\n"
+#: src/nse/gnunet-nse-profiler.c:888
+msgid "Number of peers to run in each round, separated by commas"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1024
-#, c-format
-msgid "Cleaning up directory `%s'\n"
+#: src/nse/gnunet-nse-profiler.c:900
+msgid "delay between rounds"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1319
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
+#: src/nse/gnunet-nse-profiler.c:912
+msgid "Measure quality and performance of the NSE service."
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1332
-msgid "Skipping import of included HELLOs\n"
+#: src/nse/gnunet-nse.c:124
+msgid "Show network size estimates from NSE service."
 msgstr ""
 
-#: src/peerinfo/peerinfo_api.c:217
-msgid "Failed to receive response from `PEERINFO' service."
+#: src/nse/gnunet-service-nse.c:1443
+#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
+msgid "Value is too large.\n"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:237
@@ -5541,6 +5487,60 @@ msgstr ""
 msgid "Peerinfo REST API initialized\n"
 msgstr ""
 
+#: src/peerinfo/gnunet-service-peerinfo.c:175
+#, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:306
+#, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:323
+#: src/peerinfo/gnunet-service-peerinfo.c:348
+#, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:426
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:468
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:624
+#, c-format
+msgid "Scanning directory `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:631
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1024
+#, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1319
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1332
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:217
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+
 #: src/peerstore/gnunet-peerstore.c:92
 msgid "peerstore"
 msgstr ""
@@ -5980,18 +5980,6 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr ""
 
-#: src/rps/gnunet-rps.c:270
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:275
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:279
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/rps/gnunet-rps-profiler.c:3200
 msgid "duration of the profiling"
 msgstr ""
@@ -6009,6 +5997,18 @@ msgstr "nombre de valeurs"
 msgid "Measure quality and performance of the RPS service."
 msgstr ""
 
+#: src/rps/gnunet-rps.c:270
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:275
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:279
+msgid "Get peers from biased stream"
+msgstr ""
+
 #: src/scalarproduct/gnunet-scalarproduct.c:229
 msgid "You must specify at least one message ID to check!\n"
 msgstr ""
@@ -6063,10 +6063,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
-#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1118
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
+#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
+#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 msgid "Connect to CADET failed\n"
 msgstr ""
 
@@ -6415,15 +6415,6 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr "%.s Code d'erreur inconnu"
 
-#: src/testbed/gnunet_testbed_mpi_spawn.c:119
-msgid "Waiting for child to exit.\n"
-msgstr ""
-
-#: src/testbed/gnunet_testbed_mpi_spawn.c:242
-#, c-format
-msgid "Spawning process `%s'\n"
-msgstr ""
-
 #: src/testbed/gnunet-testbed-profiler.c:290
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr ""
@@ -6435,6 +6426,15 @@ msgid ""
 "signal is received"
 msgstr ""
 
+#: src/testbed/gnunet_testbed_mpi_spawn.c:119
+msgid "Waiting for child to exit.\n"
+msgstr ""
+
+#: src/testbed/gnunet_testbed_mpi_spawn.c:242
+#, c-format
+msgid "Spawning process `%s'\n"
+msgstr ""
+
 #: src/testbed/testbed_api.c:399
 #, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -6722,18 +6722,18 @@ msgstr ""
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3189
-#: src/transport/gnunet-communicator-udp.c:2826
+#: src/transport/gnunet-communicator-tcp.c:3221
+#: src/transport/gnunet-communicator-udp.c:2995
 #: src/transport/gnunet-service-tng.c:10014
-#: src/transport/gnunet-service-transport.c:2624
+#: src/transport/gnunet-service-transport.c:2626
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3494
+#: src/transport/gnunet-communicator-tcp.c:3553
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2898
+#: src/transport/gnunet-communicator-udp.c:3067
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -6756,50 +6756,50 @@ msgstr ""
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:137
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport.c:445
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:794
+#: src/transport/gnunet-service-transport.c:796
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1477
+#: src/transport/gnunet-service-transport.c:1479
 msgid "# bytes payload discarded due to not connected peer"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1622
+#: src/transport/gnunet-service-transport.c:1624
 msgid "# bytes total received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1712
+#: src/transport/gnunet-service-transport.c:1714
 msgid "# bytes payload received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2016
-#: src/transport/gnunet-service-transport.c:2450
+#: src/transport/gnunet-service-transport.c:2018
+#: src/transport/gnunet-service-transport.c:2452
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2454
+#: src/transport/gnunet-service-transport.c:2456
 #, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2549
+#: src/transport/gnunet-service-transport.c:2551
 #, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2558
+#: src/transport/gnunet-service-transport.c:2560
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
+#: src/transport/gnunet-service-transport_ats.c:137
+msgid "# Addresses given to ATS"
+msgstr ""
+
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7105,6 +7105,42 @@ msgstr ""
 msgid "# HELLOs given to peerinfo"
 msgstr ""
 
+#: src/transport/gnunet-transport-profiler.c:220
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:577
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:581
+msgid "receive data from peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:586
+msgid "iterations"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:591
+#, fuzzy
+msgid "number of messages to send"
+msgstr "nombre de valeurs"
+
+#: src/transport/gnunet-transport-profiler.c:596
+msgid "message size to use"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:601
+#: src/transport/gnunet-transport.c:1404
+msgid "peer identity"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:614
+#: src/transport/gnunet-transport.c:1426
+msgid "Direct access to transport service."
+msgstr ""
+
 #: src/transport/gnunet-transport.c:406
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7234,11 +7270,6 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1404
-#: src/transport/gnunet-transport-profiler.c:601
-msgid "peer identity"
-msgstr ""
-
 #: src/transport/gnunet-transport.c:1408
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7247,37 +7278,6 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1426
-#: src/transport/gnunet-transport-profiler.c:614
-msgid "Direct access to transport service."
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:220
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:577
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:581
-msgid "receive data from peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:586
-msgid "iterations"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:591
-#, fuzzy
-msgid "number of messages to send"
-msgstr "nombre de valeurs"
-
-#: src/transport/gnunet-transport-profiler.c:596
-msgid "message size to use"
-msgstr ""
-
 #: src/transport/plugin_transport_http_client.c:1489
 #: src/transport/plugin_transport_http_server.c:2331
 #: src/transport/plugin_transport_http_server.c:3562
@@ -7543,20 +7543,6 @@ msgstr ""
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:169
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:553
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:571
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-
 #: src/transport/plugin_transport_udp.c:3169
 #, c-format
 msgid ""
@@ -7603,6 +7589,20 @@ msgstr "adresse invalide"
 msgid "Failed to create UDP network sockets\n"
 msgstr ""
 
+#: src/transport/plugin_transport_udp_broadcasting.c:169
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:553
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:571
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_unix.c:1396
 #, c-format
 msgid "Cannot bind to `%s'\n"
@@ -7775,7 +7775,7 @@ msgid "do daemonize (detach from terminal)"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:1397
-#: src/transport/transport-testing2.c:1116 src/util/service.c:2072
+#: src/transport/transport-testing2.c:983 src/util/service.c:2072
 #: src/util/service.c:2084
 #, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
@@ -8434,19 +8434,19 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:409
+#: src/util/os_installation.c:411
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr ""
 
-#: src/util/os_installation.c:792
+#: src/util/os_installation.c:794
 #, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr ""
 
-#: src/util/os_installation.c:825
+#: src/util/os_installation.c:827
 #, c-format
 msgid "Binary `%s' exists, but is not SUID\n"
 msgstr ""
@@ -8470,17 +8470,17 @@ msgstr ""
 msgid "Could not determine plugin installation path.\n"
 msgstr ""
 
-#: src/util/program.c:262
+#: src/util/program.c:267
 #, fuzzy, c-format
 msgid "Unreadable or malformed configuration file `%s', exit ...\n"
 msgstr "fornat invalide : « %s »\n"
 
-#: src/util/program.c:279
+#: src/util/program.c:284
 #, c-format
 msgid "Unreadable or malformed default configuration file `%s', exit ...\n"
 msgstr ""
 
-#: src/util/program.c:294
+#: src/util/program.c:299
 #, fuzzy
 msgid "Unreadable or malformed configuration, exit ...\n"
 msgstr "fornat invalide : « %s »\n"
@@ -8545,10 +8545,6 @@ msgstr ""
 msgid "Attempting to proxy service `%s' to invalid port %d or hostname.\n"
 msgstr ""
 
-#: src/util/strings.c:179
-msgid "b"
-msgstr "o"
-
 #: src/util/strings.c:503
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
@@ -8558,46 +8554,6 @@ msgstr ""
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr ""
 
-#: src/util/strings.c:706
-msgid "µs"
-msgstr "µs"
-
-#: src/util/strings.c:710
-msgid "forever"
-msgstr "perpetuel"
-
-#: src/util/strings.c:712
-msgid "0 ms"
-msgstr "0 ms"
-
-#: src/util/strings.c:716
-msgid "ms"
-msgstr "ms"
-
-#: src/util/strings.c:720
-msgid "s"
-msgstr "s"
-
-#: src/util/strings.c:724
-msgid "m"
-msgstr "m"
-
-#: src/util/strings.c:728
-msgid "h"
-msgstr "h"
-
-#: src/util/strings.c:734
-msgid "day"
-msgstr "jour"
-
-#: src/util/strings.c:736
-msgid "days"
-msgstr "jours"
-
-#: src/util/strings.c:764
-msgid "end of time"
-msgstr "fin du temps"
-
 #: src/util/strings.c:1240
 msgid "IPv6 address did not start with `['\n"
 msgstr ""
@@ -8834,11 +8790,44 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr "Configurer des tunnels via VPN."
 
-#: src/zonemaster/gnunet-service-zonemaster.c:849
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:420
+#: src/zonemaster/gnunet-service-zonemaster.c:849
 msgid "Failed to connect to the namestore!\n"
 msgstr ""
 
+#~ msgid "b"
+#~ msgstr "o"
+
+#~ msgid "µs"
+#~ msgstr "µs"
+
+#~ msgid "forever"
+#~ msgstr "perpetuel"
+
+#~ msgid "0 ms"
+#~ msgstr "0 ms"
+
+#~ msgid "ms"
+#~ msgstr "ms"
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "m"
+#~ msgstr "m"
+
+#~ msgid "h"
+#~ msgstr "h"
+
+#~ msgid "day"
+#~ msgstr "jour"
+
+#~ msgid "days"
+#~ msgstr "jours"
+
+#~ msgid "end of time"
+#~ msgstr "fin du temps"
+
 #, fuzzy
 #~ msgid "Assertion failed at %s:%d. Aborting.\n"
 #~ msgstr "opus_encode_float() échoué : %s. Annulation\n"
diff --git a/po/it.po b/po/it.po
index 278ad6e57..19a5cd85f 100644
--- a/po/it.po
+++ b/po/it.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2020-09-06 10:07+0200\n"
+"POT-Creation-Date: 2020-10-13 16:12+0200\n"
 "PO-Revision-Date: 2019-10-16 11:00+0200\n"
 "Last-Translator: Sebastiano Pistore <sebastianopistore.info@protonmail.ch>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -31,8 +31,8 @@ msgid "Issuer public key `%s' is not well-formed\n"
 msgstr ""
 
 #: src/abd/gnunet-abd.c:560 src/abd/gnunet-service-abd.c:1747
-#: src/namestore/gnunet-namestore.c:1001
 #: src/namestore/gnunet-namestore-fcfsd.c:1154
+#: src/namestore/gnunet-namestore.c:1001
 #, c-format
 msgid "Failed to connect to namestore\n"
 msgstr ""
@@ -492,80 +492,13 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3011
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3063
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997
-msgid "solver to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3557
-#: src/ats-tests/gnunet-solver-eval.c:1003
-#: src/ats-tests/gnunet-solver-eval.c:1008
-msgid "experiment to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3564
-msgid "print logging"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3569
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3574
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:326
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:336
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:382
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:474
-#, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr ""
-
-#: src/ats/plugin_ats_proportional.c:1142
-#, c-format
-msgid "Invalid %s configuration %f \n"
+#: src/ats-tests/ats-testing-log.c:896
+msgid "Stop logging\n"
 msgstr ""
 
-#: src/ats/plugin_ats_proportional.c:1165
+#: src/ats-tests/ats-testing-log.c:952
 #, c-format
-msgid "Invalid %s configuration %f\n"
+msgid "Start logging `%s'\n"
 msgstr ""
 
 #: src/ats-tests/ats-testing.c:420
@@ -578,15 +511,6 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:896
-msgid "Stop logging\n"
-msgstr ""
-
-#: src/ats-tests/ats-testing-log.c:952
-#, c-format
-msgid "Start logging `%s'\n"
-msgstr ""
-
 #: src/ats-tests/gnunet-ats-sim.c:92
 #, c-format
 msgid ""
@@ -594,6 +518,16 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
+#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552
+msgid "solver to use"
+msgstr ""
+
+#: src/ats-tests/gnunet-solver-eval.c:1003
+#: src/ats-tests/gnunet-solver-eval.c:1008
+#: src/ats/gnunet-ats-solver-eval.c:3557
+msgid "experiment to use"
+msgstr ""
+
 #: src/ats-tool/gnunet-ats.c:299
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -710,6 +644,72 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr ""
 
+#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3011
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3063
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3564
+msgid "print logging"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3569
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3574
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:326
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:336
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:382
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:474
+#, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr ""
+
+#: src/ats/plugin_ats_proportional.c:1142
+#, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr ""
+
+#: src/ats/plugin_ats_proportional.c:1165
+#, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr ""
+
 #: src/auction/gnunet-auction-create.c:163
 msgid "description of the item to be sold"
 msgstr ""
@@ -840,6 +840,28 @@ msgstr ""
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
+#: src/conversation/gnunet-conversation-test.c:120
+#, c-format
+msgid ""
+"\n"
+"End of transmission.  Have a GNU day.\n"
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:146
+#, c-format
+msgid ""
+"\n"
+"We are now playing your recording back.  If you can hear it, your audio "
+"settings are working..."
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:218
+#, c-format
+msgid ""
+"We will now be recording you for %s. After that time, the recording will be "
+"played back to you..."
+msgstr ""
+
 #: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1096,30 +1118,8 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-conversation-test.c:120
-#, c-format
-msgid ""
-"\n"
-"End of transmission.  Have a GNU day.\n"
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:146
-#, c-format
-msgid ""
-"\n"
-"We are now playing your recording back.  If you can hear it, your audio "
-"settings are working..."
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:218
-#, c-format
-msgid ""
-"We will now be recording you for %s. After that time, the recording will be "
-"played back to you..."
-msgstr ""
-
-#: src/conversation/gnunet_gst.c:664
 #: src/conversation/gnunet-helper-audio-playback-gst.c:363
+#: src/conversation/gnunet_gst.c:664
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1891,16 +1891,16 @@ msgstr ""
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:278
-#: src/datastore/plugin_datastore_postgres.c:891
+#: src/datastore/plugin_datastore_postgres.c:284
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:852
+#: src/datastore/plugin_datastore_postgres.c:858
 msgid "Failed to drop table from database.\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:950
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -2007,52 +2007,6 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
-#, c-format
-msgid "Exiting as the number of peers is %u\n"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
-msgid "number of peers to start"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:961
-msgid "number of PUTs to perform per peer"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
-#: src/testbed/gnunet-testbed-profiler.c:305
-msgid "name of the file with the login information for the testbed"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:973
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "delay to start doing PUTs (default: 1 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:985
-msgid "delay to start doing GETs (default: 5 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:990
-msgid "replication degree for DHT PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:996
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1002
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1023
-msgid "Measure quality and performance of the DHT service."
-msgstr ""
-
 #: src/dht/gnunet-dht-put.c:133
 msgid "Must provide KEY and DATA for DHT put!\n"
 msgstr ""
@@ -2298,9 +2252,55 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr ""
 
-#: src/dht/plugin_block_dht.c:189
+#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
 #, c-format
-msgid "Block not of type %u\n"
+msgid "Exiting as the number of peers is %u\n"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
+msgid "number of peers to start"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:961
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
+#: src/testbed/gnunet-testbed-profiler.c:305
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:973
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:985
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:990
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:996
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1002
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1023
+msgid "Measure quality and performance of the DHT service."
+msgstr ""
+
+#: src/dht/plugin_block_dht.c:189
+#, c-format
+msgid "Block not of type %u\n"
 msgstr ""
 
 #: src/dht/plugin_block_dht.c:198
@@ -3207,14 +3207,6 @@ msgid ""
 "chk/...)"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:128
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:141
-msgid "Special file-sharing operations"
-msgstr ""
-
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr ""
@@ -3231,6 +3223,14 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:128
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:141
+msgid "Special file-sharing operations"
+msgstr ""
+
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3885,49 +3885,6 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:257
-#, fuzzy, c-format
-msgid "`%s' is not a valid DNS domain name\n"
-msgstr "`%s' non è un indirizzo IP valido.\n"
-
-#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
-#, c-format
-msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:281
-msgid "Cannot resolve using GNS: GNUnet peer not running\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:305
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:340
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:346
-msgid "Specify the type of the record to lookup"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:352
-msgid "Specify a timeout for the lookup"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:356
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:361
-msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:375
-msgid "GNUnet GNS resolver tool"
-msgstr ""
-
 #: src/gns/gnunet-gns-import.c:486
 msgid "This program will import some GNS authorities into your GNS namestore."
 msgstr ""
@@ -4047,6 +4004,49 @@ msgstr ""
 msgid "GNUnet GNS proxy"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:257
+#, fuzzy, c-format
+msgid "`%s' is not a valid DNS domain name\n"
+msgstr "`%s' non è un indirizzo IP valido.\n"
+
+#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
+#, c-format
+msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:281
+msgid "Cannot resolve using GNS: GNUnet peer not running\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:305
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:340
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:346
+msgid "Specify the type of the record to lookup"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:352
+msgid "Specify a timeout for the lookup"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:356
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:361
+msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:375
+msgid "GNUnet GNS resolver tool"
+msgstr ""
+
 #: src/gns/gnunet-service-gns.c:505
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4057,8 +4057,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr ""
 
 #: src/gns/gnunet-service-gns.c:560
-#: src/zonemaster/gnunet-service-zonemaster.c:887
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:444
+#: src/zonemaster/gnunet-service-zonemaster.c:887
 msgid "Could not connect to DHT!\n"
 msgstr ""
 
@@ -4544,7 +4544,7 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:674
-#: src/transport/gnunet-service-transport.c:2659
+#: src/transport/gnunet-service-transport.c:2661
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 
@@ -4793,6 +4793,68 @@ msgstr ""
 msgid "Failed to setup database at `%s'\n"
 msgstr "Impossibile avviare il servizio ' %s'\n"
 
+#: src/namestore/gnunet-namestore-fcfsd.c:552
+#, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:579
+#, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:600
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:632
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:694
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:784
+#, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:803
+#, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:840
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:849
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1084
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1115
+msgid "Failed to start HTTP server\n"
+msgstr "Impossibile avviare il server HTTP\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1163
+msgid "Failed to connect to identity\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1190
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1210
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-namestore.c:334
 #, c-format
 msgid "Adding record failed: %s\n"
@@ -5019,68 +5081,6 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-fcfsd.c:552
-#, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:579
-#, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:600
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:632
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:694
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:784
-#, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:803
-#, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:840
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:849
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1084
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1115
-msgid "Failed to start HTTP server\n"
-msgstr "Impossibile avviare il server HTTP\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1163
-msgid "Failed to connect to identity\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1190
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1210
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-service-namestore.c:866
 #, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5387,10 +5387,6 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
-#: src/nse/gnunet-nse.c:124
-msgid "Show network size estimates from NSE service."
-msgstr ""
-
 #: src/nse/gnunet-nse-profiler.c:857
 msgid "limit to the number of connections to NSE services, 0 for none"
 msgstr ""
@@ -5403,75 +5399,25 @@ msgstr ""
 msgid "name of the file for writing the main results"
 msgstr ""
 
-#: src/nse/gnunet-nse-profiler.c:888
-msgid "Number of peers to run in each round, separated by commas"
-msgstr ""
-
-#: src/nse/gnunet-nse-profiler.c:900
-msgid "delay between rounds"
-msgstr ""
-
-#: src/nse/gnunet-nse-profiler.c:912
-msgid "Measure quality and performance of the NSE service."
-msgstr ""
-
-#: src/nse/gnunet-service-nse.c:1443
-#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
-msgid "Value is too large.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:175
-#, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:306
-#, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:323
-#: src/peerinfo/gnunet-service-peerinfo.c:348
-#, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:426
-msgid "# peers known"
-msgstr "# peer conosciuti"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:468
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:624
-#, c-format
-msgid "Scanning directory `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:631
-#, c-format
-msgid "Still no peers found in `%s'!\n"
+#: src/nse/gnunet-nse-profiler.c:888
+msgid "Number of peers to run in each round, separated by commas"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1024
-#, c-format
-msgid "Cleaning up directory `%s'\n"
+#: src/nse/gnunet-nse-profiler.c:900
+msgid "delay between rounds"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1319
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
+#: src/nse/gnunet-nse-profiler.c:912
+msgid "Measure quality and performance of the NSE service."
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1332
-msgid "Skipping import of included HELLOs\n"
+#: src/nse/gnunet-nse.c:124
+msgid "Show network size estimates from NSE service."
 msgstr ""
 
-#: src/peerinfo/peerinfo_api.c:217
-msgid "Failed to receive response from `PEERINFO' service."
+#: src/nse/gnunet-service-nse.c:1443
+#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
+msgid "Value is too large.\n"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:237
@@ -5568,6 +5514,60 @@ msgstr ""
 msgid "Peerinfo REST API initialized\n"
 msgstr ""
 
+#: src/peerinfo/gnunet-service-peerinfo.c:175
+#, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:306
+#, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:323
+#: src/peerinfo/gnunet-service-peerinfo.c:348
+#, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:426
+msgid "# peers known"
+msgstr "# peer conosciuti"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:468
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:624
+#, c-format
+msgid "Scanning directory `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:631
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1024
+#, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1319
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1332
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:217
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+
 #: src/peerstore/gnunet-peerstore.c:92
 msgid "peerstore"
 msgstr ""
@@ -6007,18 +6007,6 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr ""
 
-#: src/rps/gnunet-rps.c:270
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:275
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:279
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/rps/gnunet-rps-profiler.c:3200
 msgid "duration of the profiling"
 msgstr ""
@@ -6035,6 +6023,18 @@ msgstr ""
 msgid "Measure quality and performance of the RPS service."
 msgstr ""
 
+#: src/rps/gnunet-rps.c:270
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:275
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:279
+msgid "Get peers from biased stream"
+msgstr ""
+
 #: src/scalarproduct/gnunet-scalarproduct.c:229
 msgid "You must specify at least one message ID to check!\n"
 msgstr ""
@@ -6089,10 +6089,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
-#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1118
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
+#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
+#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 msgid "Connect to CADET failed\n"
 msgstr ""
 
@@ -6442,15 +6442,6 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr ""
 
-#: src/testbed/gnunet_testbed_mpi_spawn.c:119
-msgid "Waiting for child to exit.\n"
-msgstr ""
-
-#: src/testbed/gnunet_testbed_mpi_spawn.c:242
-#, c-format
-msgid "Spawning process `%s'\n"
-msgstr ""
-
 #: src/testbed/gnunet-testbed-profiler.c:290
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr ""
@@ -6462,6 +6453,15 @@ msgid ""
 "signal is received"
 msgstr ""
 
+#: src/testbed/gnunet_testbed_mpi_spawn.c:119
+msgid "Waiting for child to exit.\n"
+msgstr ""
+
+#: src/testbed/gnunet_testbed_mpi_spawn.c:242
+#, c-format
+msgid "Spawning process `%s'\n"
+msgstr ""
+
 #: src/testbed/testbed_api.c:399
 #, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -6749,18 +6749,18 @@ msgstr ""
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3189
-#: src/transport/gnunet-communicator-udp.c:2826
+#: src/transport/gnunet-communicator-tcp.c:3221
+#: src/transport/gnunet-communicator-udp.c:2995
 #: src/transport/gnunet-service-tng.c:10014
-#: src/transport/gnunet-service-transport.c:2624
+#: src/transport/gnunet-service-transport.c:2626
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3494
+#: src/transport/gnunet-communicator-tcp.c:3553
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2898
+#: src/transport/gnunet-communicator-udp.c:3067
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -6783,50 +6783,50 @@ msgstr ""
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:137
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport.c:445
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:794
+#: src/transport/gnunet-service-transport.c:796
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1477
+#: src/transport/gnunet-service-transport.c:1479
 msgid "# bytes payload discarded due to not connected peer"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1622
+#: src/transport/gnunet-service-transport.c:1624
 msgid "# bytes total received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1712
+#: src/transport/gnunet-service-transport.c:1714
 msgid "# bytes payload received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2016
-#: src/transport/gnunet-service-transport.c:2450
+#: src/transport/gnunet-service-transport.c:2018
+#: src/transport/gnunet-service-transport.c:2452
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2454
+#: src/transport/gnunet-service-transport.c:2456
 #, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2549
+#: src/transport/gnunet-service-transport.c:2551
 #, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2558
+#: src/transport/gnunet-service-transport.c:2560
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
+#: src/transport/gnunet-service-transport_ats.c:137
+msgid "# Addresses given to ATS"
+msgstr ""
+
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7144,6 +7144,41 @@ msgstr ""
 msgid "# HELLOs given to peerinfo"
 msgstr ""
 
+#: src/transport/gnunet-transport-profiler.c:220
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:577
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:581
+msgid "receive data from peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:586
+msgid "iterations"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:591
+msgid "number of messages to send"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:596
+msgid "message size to use"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:601
+#: src/transport/gnunet-transport.c:1404
+msgid "peer identity"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:614
+#: src/transport/gnunet-transport.c:1426
+msgid "Direct access to transport service."
+msgstr ""
+
 #: src/transport/gnunet-transport.c:406
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7276,11 +7311,6 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1404
-#: src/transport/gnunet-transport-profiler.c:601
-msgid "peer identity"
-msgstr ""
-
 #: src/transport/gnunet-transport.c:1408
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7289,36 +7319,6 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1426
-#: src/transport/gnunet-transport-profiler.c:614
-msgid "Direct access to transport service."
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:220
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:577
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:581
-msgid "receive data from peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:586
-msgid "iterations"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:591
-msgid "number of messages to send"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:596
-msgid "message size to use"
-msgstr ""
-
 #: src/transport/plugin_transport_http_client.c:1489
 #: src/transport/plugin_transport_http_server.c:2331
 #: src/transport/plugin_transport_http_server.c:3562
@@ -7585,21 +7585,6 @@ msgstr ""
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:169
-#, fuzzy
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr "# messaggi PONG ricevuti"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:553
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:571
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-
 #: src/transport/plugin_transport_udp.c:3169
 #, c-format
 msgid ""
@@ -7646,6 +7631,21 @@ msgstr "deve essere un indirizzo IPv4 valido"
 msgid "Failed to create UDP network sockets\n"
 msgstr "Generazione statistiche fallita\n"
 
+#: src/transport/plugin_transport_udp_broadcasting.c:169
+#, fuzzy
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr "# messaggi PONG ricevuti"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:553
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:571
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_unix.c:1396
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -7824,7 +7824,7 @@ msgid "do daemonize (detach from terminal)"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:1397
-#: src/transport/transport-testing2.c:1116 src/util/service.c:2072
+#: src/transport/transport-testing2.c:983 src/util/service.c:2072
 #: src/util/service.c:2084
 #, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
@@ -8482,19 +8482,19 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:409
+#: src/util/os_installation.c:411
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr ""
 
-#: src/util/os_installation.c:792
+#: src/util/os_installation.c:794
 #, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr ""
 
-#: src/util/os_installation.c:825
+#: src/util/os_installation.c:827
 #, c-format
 msgid "Binary `%s' exists, but is not SUID\n"
 msgstr ""
@@ -8518,17 +8518,17 @@ msgstr ""
 msgid "Could not determine plugin installation path.\n"
 msgstr ""
 
-#: src/util/program.c:262
+#: src/util/program.c:267
 #, c-format
 msgid "Unreadable or malformed configuration file `%s', exit ...\n"
 msgstr ""
 
-#: src/util/program.c:279
+#: src/util/program.c:284
 #, c-format
 msgid "Unreadable or malformed default configuration file `%s', exit ...\n"
 msgstr ""
 
-#: src/util/program.c:294
+#: src/util/program.c:299
 msgid "Unreadable or malformed configuration, exit ...\n"
 msgstr ""
 
@@ -8592,10 +8592,6 @@ msgstr ""
 msgid "Attempting to proxy service `%s' to invalid port %d or hostname.\n"
 msgstr ""
 
-#: src/util/strings.c:179
-msgid "b"
-msgstr ""
-
 #: src/util/strings.c:503
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
@@ -8605,46 +8601,6 @@ msgstr ""
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr ""
 
-#: src/util/strings.c:706
-msgid "µs"
-msgstr "µs"
-
-#: src/util/strings.c:710
-msgid "forever"
-msgstr "per sempre"
-
-#: src/util/strings.c:712
-msgid "0 ms"
-msgstr "0 ms"
-
-#: src/util/strings.c:716
-msgid "ms"
-msgstr "ms"
-
-#: src/util/strings.c:720
-msgid "s"
-msgstr "s"
-
-#: src/util/strings.c:724
-msgid "m"
-msgstr ""
-
-#: src/util/strings.c:728
-msgid "h"
-msgstr "o"
-
-#: src/util/strings.c:734
-msgid "day"
-msgstr "giorno"
-
-#: src/util/strings.c:736
-msgid "days"
-msgstr "giorni"
-
-#: src/util/strings.c:764
-msgid "end of time"
-msgstr ""
-
 #: src/util/strings.c:1240
 msgid "IPv6 address did not start with `['\n"
 msgstr ""
@@ -8885,11 +8841,35 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster.c:849
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:420
+#: src/zonemaster/gnunet-service-zonemaster.c:849
 msgid "Failed to connect to the namestore!\n"
 msgstr ""
 
+#~ msgid "µs"
+#~ msgstr "µs"
+
+#~ msgid "forever"
+#~ msgstr "per sempre"
+
+#~ msgid "0 ms"
+#~ msgstr "0 ms"
+
+#~ msgid "ms"
+#~ msgstr "ms"
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "h"
+#~ msgstr "o"
+
+#~ msgid "day"
+#~ msgstr "giorno"
+
+#~ msgid "days"
+#~ msgstr "giorni"
+
 #~ msgid "Request timed out"
 #~ msgstr "Richiesta scaduta"
 
diff --git a/po/sr.po b/po/sr.po
new file mode 100644
index 000000000..981dc1d8e
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,8292 @@
+# Serbian translation for  gnunet.
+# Copyright © 2020  Christian Grothoff
+# This file is distributed under the same license as the gnunet package.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2020.
+msgid ""
+msgstr ""
+"Project-Id-Version: gnunet-0.10.1\n"
+"Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
+"POT-Creation-Date: 2014-04-08 11:11+0200\n"
+"PO-Revision-Date: 2020-10-23 18:39+0200\n"
+"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
+"Language-Team: Serbian <(nothing)>\n"
+"Language: sr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 
n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+
+#: src/arm/arm_api.c:337
+msgid "Client was disconnected from arm service, trying to reconnect.\n"
+msgstr "Клијент је ископчан са аур услуге, покушавам поново да се повежем.\n"
+
+#: src/arm/arm_monitor_api.c:321
+msgid "Monitoring client was disconnected from arm service, trying to 
reconnect.\n"
+msgstr "Клијент праћења је ископчан са аур услуге, покушавам поново да се 
повежем.\n"
+
+#: src/arm/gnunet-arm.c:164
+#, c-format
+msgid "Failed to remove configuration file %s\n"
+msgstr "Нисам успео да уклоним датотеку подешавања „%s“\n"
+
+#: src/arm/gnunet-arm.c:170
+#, c-format
+msgid "Failed to remove servicehome directory %s\n"
+msgstr "Нисам успео да уклоним матични директоријум услуге „%s“\n"
+
+#: src/arm/gnunet-arm.c:216 src/testbed/gnunet-service-testbed_peers.c:1013
+msgid "Message was sent successfully"
+msgstr "Порука је успешно послата"
+
+#: src/arm/gnunet-arm.c:218
+msgid "Misconfiguration (can not connect to the ARM service)"
+msgstr "Лоше подешавање (не могу да се повежем на АУР услугу)"
+
+#: src/arm/gnunet-arm.c:220 src/testbed/gnunet-service-testbed_peers.c:1017
+msgid "We disconnected from ARM before we could send a request"
+msgstr "Прекинута је веза са АУР-ом пре него ли можемо послати захтев"
+
+#: src/arm/gnunet-arm.c:222 src/testbed/gnunet-service-testbed_peers.c:1019
+msgid "ARM API is busy"
+msgstr "АУР АПИ је заузет"
+
+#: src/arm/gnunet-arm.c:224
+msgid "Request does not fit into a message"
+msgstr "Захтев не стаје у поруку"
+
+#: src/arm/gnunet-arm.c:226 src/testbed/gnunet-service-testbed_peers.c:1023
+msgid "Request timed out"
+msgstr "Истекло је време захтева"
+
+#: src/arm/gnunet-arm.c:228 src/testbed/gnunet-service-testbed_peers.c:1025
+msgid "Unknown request status"
+msgstr "Стање захтева је непознато"
+
+#: src/arm/gnunet-arm.c:244 src/testbed/gnunet-service-testbed_peers.c:1041
+#, c-format
+msgid "%s is stopped"
+msgstr "„%s“ је заустављен"
+
+#: src/arm/gnunet-arm.c:246 src/testbed/gnunet-service-testbed_peers.c:1043
+#, c-format
+msgid "%s is starting"
+msgstr "„%s“ се покреће"
+
+#: src/arm/gnunet-arm.c:248 src/testbed/gnunet-service-testbed_peers.c:1045
+#, c-format
+msgid "%s is stopping"
+msgstr "„%s“ се зауставља"
+
+#: src/arm/gnunet-arm.c:250 src/testbed/gnunet-service-testbed_peers.c:1047
+#, c-format
+msgid "%s is starting already"
+msgstr "„%s“ се већ покреће"
+
+#: src/arm/gnunet-arm.c:252 src/testbed/gnunet-service-testbed_peers.c:1049
+#, c-format
+msgid "%s is stopping already"
+msgstr "„%s“ се већ зауставља"
+
+#: src/arm/gnunet-arm.c:254 src/testbed/gnunet-service-testbed_peers.c:1051
+#, c-format
+msgid "%s is started already"
+msgstr "„%s“ је већ покренут"
+
+#: src/arm/gnunet-arm.c:256 src/testbed/gnunet-service-testbed_peers.c:1053
+#, c-format
+msgid "%s is stopped already"
+msgstr "„%s“ је већ заустављен"
+
+#: src/arm/gnunet-arm.c:258 src/testbed/gnunet-service-testbed_peers.c:1055
+#, c-format
+msgid "%s service is not known to ARM"
+msgstr "„%s“ услуга није позната АУР-у"
+
+#: src/arm/gnunet-arm.c:260 src/testbed/gnunet-service-testbed_peers.c:1057
+#, c-format
+msgid "%s service failed to start"
+msgstr "„%s“ услуга није успела да се покрене"
+
+#: src/arm/gnunet-arm.c:262
+#, c-format
+msgid "%s service cannot be started because ARM is shutting down"
+msgstr "„%s“ услуга се не може покренути јер се АУР гаси"
+
+#: src/arm/gnunet-arm.c:264 src/testbed/gnunet-service-testbed_peers.c:1061
+#, c-format
+msgid "%.s Unknown result code."
+msgstr "%.s Непознат код резултата."
+
+#: src/arm/gnunet-arm.c:297
+msgid "Fatal error initializing ARM API.\n"
+msgstr "Кобна грешка покретања АУР АПИ-ја.\n"
+
+#: src/arm/gnunet-arm.c:326 src/arm/gnunet-arm.c:335
+#, c-format
+msgid "Failed to start the ARM service: %s\n"
+msgstr "Нисам успео да покренем АУР услугу: %s\n"
+
+#: src/arm/gnunet-arm.c:369
+#, c-format
+msgid "Failed to send a stop request to the ARM service: %s\n"
+msgstr "Нисам успео да пошаљем захтев за заустављање АУР услузи: %s\n"
+
+#: src/arm/gnunet-arm.c:379
+#, c-format
+msgid "Failed to stop the ARM service: %s\n"
+msgstr "Нисам успео да зауставим АУР услугу: %s\n"
+
+#: src/arm/gnunet-arm.c:421
+#, c-format
+msgid "Failed to send a request to start the `%s' service: %%s\n"
+msgstr "Нисам успео да пошаљем захтев за покретање „%s“ услузи: %%s\n"
+
+#: src/arm/gnunet-arm.c:431
+#, c-format
+msgid "Failed to start the `%s' service: %s\n"
+msgstr "Нисам успео да покренем „%s“ услугу: %s\n"
+
+#: src/arm/gnunet-arm.c:468
+#, c-format
+msgid "Failed to send a request to kill the `%s' service: %%s\n"
+msgstr "Нисам успео да пошаљем захтев за убијање „%s“ услуге: %%s\n"
+
+#: src/arm/gnunet-arm.c:479
+#, c-format
+msgid "Failed to kill the `%s' service: %s\n"
+msgstr "Нисам успео да убијем „%s“ услугу: %s\n"
+
+#: src/arm/gnunet-arm.c:517
+#, c-format
+msgid "Failed to request a list of services: %s\n"
+msgstr "Нисам успео да захтевам списак услуга: %s\n"
+
+#: src/arm/gnunet-arm.c:525
+msgid "Error communicating with ARM. ARM not running?\n"
+msgstr "Грешка у комуникацији са АУР-ом. Да ли је АУР покренут?\n"
+
+#: src/arm/gnunet-arm.c:530
+msgid "Running services:\n"
+msgstr "Покренуте услуге:\n"
+
+#: src/arm/gnunet-arm.c:612
+#, c-format
+msgid "Now only monitoring, press CTRL-C to stop.\n"
+msgstr "Сада пратим само, притисните КТРЛ-Ц да зауставите.\n"
+
+#: src/arm/gnunet-arm.c:643
+#, c-format
+msgid "Stopped %s.\n"
+msgstr "Заустављен%s.\n"
+
+#: src/arm/gnunet-arm.c:646
+#, c-format
+msgid "Starting %s...\n"
+msgstr "Покрећем %s...\n"
+
+#: src/arm/gnunet-arm.c:649
+#, c-format
+msgid "Stopping %s...\n"
+msgstr "Заустављам %s...\n"
+
+#: src/arm/gnunet-arm.c:660
+#, c-format
+msgid "Unknown status %u for service %s.\n"
+msgstr "Непознато стање %u за услугу „%s“.\n"
+
+#: src/arm/gnunet-arm.c:724
+msgid "stop all GNUnet services"
+msgstr "зауставља све ГНУнет услуге"
+
+#: src/arm/gnunet-arm.c:726
+msgid "start a particular service"
+msgstr "покреће нарочиту услугу"
+
+#: src/arm/gnunet-arm.c:728
+msgid "stop a particular service"
+msgstr "зауставља нарочиту услугу"
+
+#: src/arm/gnunet-arm.c:730
+msgid "start all GNUnet default services"
+msgstr "покреће све основне ГНУнет услуге"
+
+#: src/arm/gnunet-arm.c:733
+msgid "stop and start all GNUnet default services"
+msgstr "зауставља и покреће све основне ГНУнет услуге"
+
+#: src/arm/gnunet-arm.c:736
+msgid "delete config file and directory on exit"
+msgstr "брише датотеку подешавања и директоријум на изласку"
+
+#: src/arm/gnunet-arm.c:739
+msgid "monitor ARM activities"
+msgstr "прати активности АУР-а"
+
+#: src/arm/gnunet-arm.c:741
+msgid "don't print status messages"
+msgstr "не исписује поруке стања"
+
+#: src/arm/gnunet-arm.c:744
+msgid "timeout in MSECS milliseconds for completing current operation"
+msgstr "време истека у МСЕК милисекундама за завршавање текуће радње"
+
+#: src/arm/gnunet-arm.c:746
+msgid "list currently running services"
+msgstr "исписује тренутно покренуте услуге"
+
+#: src/arm/gnunet-arm.c:748
+msgid "don't let gnunet-service-arm inherit standard output"
+msgstr "не да да „gnunet-service-arm“ наследи стандардни излаз"
+
+#: src/arm/gnunet-arm.c:750
+msgid "don't let gnunet-service-arm inherit standard error"
+msgstr "не да да „gnunet-service-arm“ наследи стандардну грешку"
+
+#: src/arm/gnunet-arm.c:761
+msgid "Control services and the Automated Restart Manager (ARM)"
+msgstr "Контролне услуге и Аутоматизовани Управник Рестарта (АУР)"
+
+#: src/arm/gnunet-service-arm.c:266
+msgid "Could not send status result to client\n"
+msgstr "Не могу да пошаљем резултат стања клијенту\n"
+
+#: src/arm/gnunet-service-arm.c:302
+msgid "Could not send list result to client\n"
+msgstr "Не могу да пошаљем резултат списка клијенту\n"
+
+#: src/arm/gnunet-service-arm.c:529
+#, c-format
+msgid "Failed to start service `%s'\n"
+msgstr "Нисам успео да покренем услугу „%s“\n"
+
+#: src/arm/gnunet-service-arm.c:540
+#, c-format
+msgid "Starting service `%s'\n"
+msgstr "Покрећем услугу „%s“\n"
+
+#: src/arm/gnunet-service-arm.c:639
+#, c-format
+msgid "Unable to create socket for service `%s': %s\n"
+msgstr "Не могу да направим прикључницу за услугу „%s“: %s\n"
+
+#: src/arm/gnunet-service-arm.c:661
+#, c-format
+msgid "Unable to bind listening socket for service `%s' to address `%s': %s\n"
+msgstr "Не могу да увежем прикључницу ослушкивања за услугу „%s“ на адресу 
„%s“: %s\n"
+
+#: src/arm/gnunet-service-arm.c:695
+#, c-format
+msgid "ARM now monitors connections to service `%s' at `%s'\n"
+msgstr "АУР сада надгледа везе ка услузи „%s“ на „%s“\n"
+
+#: src/arm/gnunet-service-arm.c:831
+#, c-format
+msgid "Preparing to stop `%s'\n"
+msgstr "Припремам се да зауставим „%s“\n"
+
+#: src/arm/gnunet-service-arm.c:1100
+#, c-format
+msgid "Restarting service `%s'.\n"
+msgstr "Поново покрећем услугу „%s“.\n"
+
+#: src/arm/gnunet-service-arm.c:1193
+msgid "exit"
+msgstr "излази"
+
+#: src/arm/gnunet-service-arm.c:1198
+msgid "signal"
+msgstr "сигнал"
+
+#: src/arm/gnunet-service-arm.c:1203
+msgid "unknown"
+msgstr "непознато"
+
+#: src/arm/gnunet-service-arm.c:1209
+#, c-format
+msgid "Service `%s' took %s to terminate\n"
+msgstr "Услуга „%s“ је узела %s да оконча\n"
+
+#: src/arm/gnunet-service-arm.c:1231
+#, c-format
+msgid "Service `%s' terminated normally, will restart at any time\n"
+msgstr "Услуга „%s“ је окончана нормално, поново ће се покренути у било које 
време\n"
+
+#: src/arm/gnunet-service-arm.c:1246
+#, c-format
+msgid "Service `%s' terminated with status %s/%d, will restart in %s\n"
+msgstr "Услуга „%s“ је окончана са стањем %s/%d, поново ће се покренути за 
%s\n"
+
+#: src/arm/gnunet-service-arm.c:1500
+#, c-format
+msgid "Starting default services `%s'\n"
+msgstr "Покрећем основне услуге „%s“\n"
+
+#: src/arm/gnunet-service-arm.c:1511
+#, c-format
+msgid "Default service `%s' not configured correctly!\n"
+msgstr "Основна услуга „%s“ није подешена исправно!\n"
+
+#: src/arm/gnunet-service-arm.c:1524
+msgid "No default services configured, GNUnet will not really start right 
now.\n"
+msgstr "Основне услуге нису подешене, ГНУнет се неће баш сада покренути.\n"
+
+#: src/arm/mockup-service.c:41
+msgid "Initiating shutdown as requested by client.\n"
+msgstr "Започињем гашење као што је затражио клијент.\n"
+
+#: src/ats/ats_api_performance.c:468
+#, c-format
+msgid "Received %s message\n"
+msgstr "Примих %s поруку\n"
+
+#: src/ats/ats_api_performance.c:511
+#, c-format
+msgid "Received last message for %s \n"
+msgstr "Примих последњу поруку за %s \n"
+
+#: src/ats/gnunet-ats-solver-eval.c:2199 src/ats/gnunet-ats-solver-eval.c:2233
+#: src/ats/gnunet-service-ats_addresses.c:1980
+#: src/ats/gnunet-service-ats_addresses.c:2024
+#, c-format
+msgid "Could not load quota for network `%s':  `%s', assigning default 
bandwidth %llu\n"
+msgstr "Не могу да учитам квоту за мрежу „%s“:  „%s“, додељујем основни 
пропусни опсег %llu\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:2205
+#: src/ats/gnunet-service-ats_addresses.c:1987
+#, c-format
+msgid "Outbound quota configure for network `%s' is %llu\n"
+msgstr "Квота одлазности подешена за мрежу „%s“ је %llu\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:2212
+#: src/ats/gnunet-service-ats_addresses.c:1995
+#, c-format
+msgid "No outbound quota configured for network `%s', assigning default 
bandwidth %llu\n"
+msgstr "Нема подешене одлазне квоте за мрежу „%s“, додељујем основни пропусни 
опсег %llu\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:2239
+#: src/ats/gnunet-service-ats_addresses.c:2031
+#, c-format
+msgid "Inbound quota configured for network `%s' is %llu\n"
+msgstr "Квота долазности подешена за мрежу „%s“ је %llu\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:2246
+#: src/ats/gnunet-service-ats_addresses.c:2039
+#, c-format
+msgid "No outbound quota configure for network `%s', assigning default 
bandwidth %llu\n"
+msgstr "Није подешена одлазна квота за мрежу „%s“, додељујем основни пропусни 
опсег %llu\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:2671
+#: src/ats-tests/gnunet-solver-eval.c:919
+msgid "solver to use"
+msgstr "решавач за коришћење"
+
+#: src/ats/gnunet-ats-solver-eval.c:2674 src/ats/gnunet-ats-solver-eval.c:2677
+#: src/ats-tests/gnunet-solver-eval.c:922
+#: src/ats-tests/gnunet-solver-eval.c:925
+msgid "experiment to use"
+msgstr "експеримент за коришћење"
+
+#: src/ats/gnunet-ats-solver-eval.c:2680
+msgid "print logging"
+msgstr "исписује дневничење"
+
+#: src/ats/gnunet-service-ats_addresses.c:2217
+#, c-format
+msgid "Initializing solver `%s '`%s'\n"
+msgstr "Покрећем решавача „%s “„%s“\n"
+
+#: src/ats/gnunet-service-ats_addresses.c:2220
+#, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "Нисам успео да покренем решавача „%s“!\n"
+
+#: src/ats/gnunet-service-ats_addresses.c:2243
+msgid "Failed to initialize solver!\n"
+msgstr "Нисам успео да покренем решавача!\n"
+
+#: src/ats/plugin_ats_mlp.c:892
+msgid "Problem size too large, cannot allocate memory!\n"
+msgstr "Величина проблема је превелика, не могу да доделим меморију!\n"
+
+#: src/ats/plugin_ats_mlp.c:1329
+#, c-format
+msgid "Adding address for peer `%s' multiple times\n"
+msgstr "Додајем адресу за парњака „%s“ више пута\n"
+
+#: src/ats/plugin_ats_mlp.c:1376
+#, c-format
+msgid "Updating address property `%s' for peer `%s' %p not added before\n"
+msgstr "Освежавам својство адресе „%s“ за парњака „%s“ %p који није додат 
раније\n"
+
+#: src/ats/plugin_ats_mlp.c:2122
+#, c-format
+msgid "Adjusting inconsistent outbound quota configuration for network `%s', 
is %llu must be at least %llu\n"
+msgstr "Поправљам недоследно подешавање одлазне квоте за мрежу „%s“, која је 
%llu а мора бити најмање %llu\n"
+
+#: src/ats/plugin_ats_mlp.c:2131
+#, c-format
+msgid "Adjusting inconsistent inbound quota configuration for network `%s', is 
%llu must be at least %llu\n"
+msgstr "Поправљам недоследно подешавање долазне квоте за мрежу „%s“, која је 
%llu а мора бити најмање %llu\n"
+
+#: src/ats/plugin_ats_mlp.c:2142
+#, c-format
+msgid "Adjusting outbound quota configuration for network `%s'from %llu to 
%.0f\n"
+msgstr "Поправљам недоследно подешавање одлазне квоте за мрежу „%s“ са %llu на 
%.0f\n"
+
+#: src/ats/plugin_ats_mlp.c:2150
+#, c-format
+msgid "Adjusting inbound quota configuration for network `%s' from %llu to 
%.0f\n"
+msgstr "Поправљам недоследно подешавање долазне квоте за мрежу „%s“ са %llu на 
%.0f\n"
+
+#: src/ats/plugin_ats_mlp.c:2161
+#, c-format
+msgid "Using default quota configuration for network `%s' (in/out) %llu/%llu\n"
+msgstr "Користим основно подешавање квоте за мрежу „%s“ (улаз/излаз) 
%llu/%llu\n"
+
+#: src/ats/plugin_ats_proportional.c:1511
+#, c-format
+msgid "Invalid network type `%u' `%s': Disconnect!\n"
+msgstr "Неисправна врста мреже „%u“ „%s“: Прекидам везу!\n"
+
+#: src/ats-tests/ats-testing.c:72
+msgid "Benchmarking done\n"
+msgstr "Оцењивање је готово\n"
+
+#: src/ats-tests/ats-testing.c:105
+#, c-format
+msgid "Failed to connect peer 0 and %u\n"
+msgstr "Нисам успео да повежем парњака 0 и %u\n"
+
+#: src/ats-tests/ats-testing.c:413
+#, c-format
+msgid "Connected master [%u] with slave [%u]\n"
+msgstr "Повезан је надређени [%u] са потчињеним [%u]\n"
+
+#: src/ats-tests/ats-testing.c:419
+#, c-format
+msgid "Failed to connect master peer [%u] with slave [%u]\n"
+msgstr "Нисам успео да повежем надређеног парњака [%u] са потчињеним [%u]\n"
+
+#: src/ats-tests/ats-testing.c:450
+msgid "Connecting peers on CORE level\n"
+msgstr "Повезујем парњаке на „CORE“ нивоу\n"
+
+#: src/ats-tests/ats-testing.c:461
+#, c-format
+msgid "Connecting master [%u] with slave [%u]\n"
+msgstr "Повезујем надређеног [%u] са потчињеним [%u]\n"
+
+#: src/ats-tests/ats-testing.c:470
+#, c-format
+msgid "Could not connect master [%u] and slave [%u]\n"
+msgstr "Не могу да повежем надређеног [%u] и потчињеног [%u]\n"
+
+#: src/ats-tests/ats-testing.c:490 src/ats-tests/ats-testing.c:671
+msgid "Initialization failed, shutdown\n"
+msgstr "Покретање није успело, гасим\n"
+
+#: src/ats-tests/ats-testing-log.c:842
+msgid "Stop logging\n"
+msgstr "Заустављам дневничење\n"
+
+#: src/ats-tests/ats-testing-log.c:893
+#, c-format
+msgid "Start logging `%s'\n"
+msgstr "Започињем дневничење „%s“\n"
+
+#: src/ats-tests/gnunet-ats-sim.c:86
+#, c-format
+msgid "Master [%u]: sent: %u KiB in %u sec. = %u KiB/s, received: %u KiB in %u 
sec. = %u KiB/s\n"
+msgstr "Надређени [%u]: послао: %u KiB за %u сек. = %u KiB/s, примио: %u KiB 
за %u сек. = %u KiB/s\n"
+
+#: src/ats-tool/gnunet-ats.c:169
+#, c-format
+msgid "%u address resolutions had a timeout\n"
+msgstr "%u адресна разрешења имаху време истека\n"
+
+#: src/ats-tool/gnunet-ats.c:171
+#, c-format
+msgid "ATS returned results for %u addresses\n"
+msgstr "АТС је вратио резултате за %u адресе\n"
+
+#: src/ats-tool/gnunet-ats.c:232
+#, c-format
+msgid "Peer `%s' plugin `%s', address `%s', `%s' bw out: %u Bytes/s, bw in %u 
Bytes/s, %s\n"
+msgstr "Парњак „%s“ прикључак „%s“, адреса „%s“, „%s“ излазни пропусни опсег: 
%u Бајта/сек, улазни пропусни опсег %u Бајта/сек, %s\n"
+
+#: src/ats-tool/gnunet-ats.c:413
+#, c-format
+msgid "Quota for network `%11s' (in/out): %10s / %10s\n"
+msgstr "Квота за мрежу „%11s“ (улаз/излаз): %10s / %10s\n"
+
+#: src/ats-tool/gnunet-ats.c:433 src/core/gnunet-core.c:163
+#: src/namestore/gnunet-namestore.c:550 src/transport/gnunet-transport.c:1246
+#, c-format
+msgid "Service `%s' is not running\n"
+msgstr "Услуга „%s“ није покренута\n"
+
+#: src/ats-tool/gnunet-ats.c:445 src/transport/gnunet-transport.c:1255
+#, c-format
+msgid "Failed to parse peer identity `%s'\n"
+msgstr "Нисам успео да обрадим идентитет парњака „%s“\n"
+
+#: src/ats-tool/gnunet-ats.c:454
+#, c-format
+msgid "Please select one operation : %s or %s or %s or %s or %s\n"
+msgstr "Изаберите једну радњу : „%s“ или „%s“ или „%s“ или „%s“ или „%s“\n"
+
+#: src/ats-tool/gnunet-ats.c:470 src/ats-tool/gnunet-ats.c:489
+#: src/ats-tool/gnunet-ats.c:506 src/ats-tool/gnunet-ats.c:543
+#, c-format
+msgid "Cannot connect to ATS service, exiting...\n"
+msgstr "Не могу да се повежем са АТС услугом, излазим...\n"
+
+#: src/ats-tool/gnunet-ats.c:478 src/ats-tool/gnunet-ats.c:495
+#, c-format
+msgid "Cannot issue request to ATS service, exiting...\n"
+msgstr "Не могу да издам захтев АТС услузи, одлазим...\n"
+
+#: src/ats-tool/gnunet-ats.c:515
+#, c-format
+msgid "No preference type given!\n"
+msgstr "Није дата врста својства!\n"
+
+#: src/ats-tool/gnunet-ats.c:520
+#, c-format
+msgid "No peer given!\n"
+msgstr "Није дат парњак!\n"
+
+#: src/ats-tool/gnunet-ats.c:536
+msgid "Valid type required\n"
+msgstr "Потребна је исправна врста\n"
+
+#: src/ats-tool/gnunet-ats.c:594
+msgid "get list of active addresses currently used"
+msgstr "добавља списак активних адреса које се тренутно користе"
+
+#: src/ats-tool/gnunet-ats.c:596
+msgid "get list of all active addresses"
+msgstr "добавља списак свих активних адреса"
+
+#: src/ats-tool/gnunet-ats.c:599
+msgid "do not resolve IP addresses to hostnames"
+msgstr "не решава ИП адресе за називе домаћине"
+
+#: src/ats-tool/gnunet-ats.c:601
+msgid "monitor mode"
+msgstr "режим праћења"
+
+#: src/ats-tool/gnunet-ats.c:603
+msgid "set preference for the given peer"
+msgstr "поставља својство за датог парњака"
+
+#: src/ats-tool/gnunet-ats.c:605
+msgid "print all configured quotas"
+msgstr "исписује све подешене квоте"
+
+#: src/ats-tool/gnunet-ats.c:607
+msgid "peer id"
+msgstr "иб парњака"
+
+#: src/ats-tool/gnunet-ats.c:610
+msgid "preference type to set: latency | bandwidth"
+msgstr "врста поставке за постављање: кашњење | пропусни опсег"
+
+#: src/ats-tool/gnunet-ats.c:612
+msgid "preference value"
+msgstr "вредност својства"
+
+#: src/ats-tool/gnunet-ats.c:615
+msgid "verbose output (include ATS address properties)"
+msgstr "опширан излаз (укључује својства АТС адресе)"
+
+#: src/ats-tool/gnunet-ats.c:622
+msgid "Print information about ATS state"
+msgstr "Исписује податке о АТС стању"
+
+#: src/consensus/gnunet-consensus-profiler.c:437
+#: src/secretsharing/gnunet-secretsharing-profiler.c:535
+msgid "number of peers in consensus"
+msgstr "број парњака у концензусу"
+
+#: src/consensus/gnunet-consensus-profiler.c:440
+msgid "how many peers receive one value?"
+msgstr "колико парњака прима једну вредност?"
+
+#: src/consensus/gnunet-consensus-profiler.c:443
+#: src/set/gnunet-set-profiler.c:286 src/set/gnunet-set-profiler.c:289
+#: src/set/gnunet-set-profiler.c:292
+msgid "number of values"
+msgstr "број вредности"
+
+#: src/consensus/gnunet-consensus-profiler.c:446
+msgid "consensus timeout"
+msgstr "време истека концензуса"
+
+#: src/consensus/gnunet-consensus-profiler.c:449
+msgid "delay until consensus starts"
+msgstr "застој док не започне концензус"
+
+#: src/consensus/gnunet-consensus-profiler.c:452
+#: src/secretsharing/gnunet-secretsharing-profiler.c:550
+msgid "be more verbose (print received values)"
+msgstr "бива опширнији (исписује примљене вредности)"
+
+#: src/conversation/conversation_api.c:557
+#: src/conversation/conversation_api_call.c:470
+msgid "Connection to conversation service lost, trying to reconnect\n"
+msgstr "Веза са услугом конверзације је изгубљена, покушавам поново да се 
повежем\n"
+
+#: src/conversation/gnunet-conversation.c:264
+#, c-format
+msgid "Incoming call from `%s'. Please /accept #%u or /cancel %u the call.\n"
+msgstr "Долазни позив од „%s“. /прихватите #%u или /откажите %u позив.\n"
+
+#: src/conversation/gnunet-conversation.c:286
+#, c-format
+msgid "Call from `%s' terminated\n"
+msgstr "Позив од „%s“ је окончан\n"
+
+#: src/conversation/gnunet-conversation.c:319
+#, c-format
+msgid "Call from `%s' suspended by other user\n"
+msgstr "Позив од „%s“ је обуставио други корисник\n"
+
+#: src/conversation/gnunet-conversation.c:324
+#, c-format
+msgid "Call from `%s' resumed by other user\n"
+msgstr "Позив од „%s“ је повратио други корисник\n"
+
+#: src/conversation/gnunet-conversation.c:342
+#, c-format
+msgid "Ego `%s' no longer available, phone is now down.\n"
+msgstr "Его „%s“ није више доступан, телефон је сада искључен.\n"
+
+#: src/conversation/gnunet-conversation.c:356
+msgid "Failed to setup phone (internal error)\n"
+msgstr "Нисам успео да подесим телефон (унутрашња грешка)\n"
+
+#: src/conversation/gnunet-conversation.c:368
+#, c-format
+msgid "Phone active on line %u.  Type `/help' for a list of available 
commands\n"
+msgstr "Телефон је активан на линији %u.  Упишите „/help“ за списак доступних 
наредби\n"
+
+#: src/conversation/gnunet-conversation.c:390
+#, c-format
+msgid "Resolved address of `%s'. Now ringing other party.\n"
+msgstr "Реших адресу за „%s“. Сада звоним на другој журци.\n"
+
+#: src/conversation/gnunet-conversation.c:397
+#, c-format
+msgid "Connection established to `%s'\n"
+msgstr "Веза је успостављена са „%s“\n"
+
+#: src/conversation/gnunet-conversation.c:404
+#, c-format
+msgid "Failed to resolve `%s'\n"
+msgstr "Нисам успео да решим „%s“\n"
+
+#: src/conversation/gnunet-conversation.c:411
+msgid "Call terminated\n"
+msgstr "Позив је окончан\n"
+
+#: src/conversation/gnunet-conversation.c:417
+#, c-format
+msgid "Connection to `%s' suspended (by other user)\n"
+msgstr "Веза са „%s“ је обустављена (други корисник)\n"
+
+#: src/conversation/gnunet-conversation.c:423
+#, c-format
+msgid "Connection to `%s' resumed (by other user)\n"
+msgstr "Веза са „%s“ је повраћена (други корисник)\n"
+
+#: src/conversation/gnunet-conversation.c:428
+msgid "Error with the call, restarting it\n"
+msgstr "Грешка са позивом, поново га покрећем\n"
+
+#: src/conversation/gnunet-conversation.c:495
+#, c-format
+msgid "Unknown command `%s'\n"
+msgstr "Непозната наредба „%s“\n"
+
+#: src/conversation/gnunet-conversation.c:511
+#: src/conversation/gnunet-conversation.c:525
+#, c-format
+msgid "Ego `%s' not available\n"
+msgstr "Его „%s“ није доступан\n"
+
+#: src/conversation/gnunet-conversation.c:518
+#: src/conversation/gnunet-conversation.c:575
+msgid "You are calling someone else already, hang up first!\n"
+msgstr "Већ позивате некога, спустите прво слушалицу!\n"
+
+#: src/conversation/gnunet-conversation.c:533
+#: src/conversation/gnunet-conversation.c:588
+#, c-format
+msgid "You are answering call from `%s', hang up or suspend that call first!\n"
+msgstr "Одговарате на позив од „%s“, спустите слушалицу или обуставите тај 
позив!\n"
+
+#: src/conversation/gnunet-conversation.c:544
+msgid "Call recipient missing.\n"
+msgstr "Недостаје прималац позива.\n"
+
+#: src/conversation/gnunet-conversation.c:599
+msgid "There is no incoming call to accept here!\n"
+msgstr "Нема долазног позива овде за прихватање!\n"
+
+#: src/conversation/gnunet-conversation.c:616
+#, c-format
+msgid "There is no incoming call `%s' to accept right now!\n"
+msgstr "Нема долазног позива „%s“ за прихватање управо сада!\n"
+
+#: src/conversation/gnunet-conversation.c:647
+msgid "We currently do not have an address.\n"
+msgstr "Тренутно немамамо адресу.\n"
+
+#: src/conversation/gnunet-conversation.c:670
+#, c-format
+msgid "We are currently trying to locate the private key for the ego `%s'.\n"
+msgstr "Тренутно покушавамо да лоцирамо лични кључ за его „%s“.\n"
+
+#: src/conversation/gnunet-conversation.c:675
+#, c-format
+msgid "We are listening for incoming calls for ego `%s' on line %u.\n"
+msgstr "Ослушкујемо за долазним позивима за его „%s“ на линији %u.\n"
+
+#: src/conversation/gnunet-conversation.c:681
+#: src/conversation/gnunet-conversation.c:705
+#, c-format
+msgid "You are having a conversation with `%s'.\n"
+msgstr "Разговарате са „%s“.\n"
+
+#: src/conversation/gnunet-conversation.c:686
+msgid "We had an internal error setting up our phone line. You can still make 
calls.\n"
+msgstr "Имали смо унутрашњу грешку подешавајући нашу телефонску линију. Још 
увек можете обављати позиве.\n"
+
+#: src/conversation/gnunet-conversation.c:695
+#, c-format
+msgid "We are trying to find the network address to call `%s'.\n"
+msgstr "Покушавамо да нађемо мрежну адресу за позив „%s“.\n"
+
+#: src/conversation/gnunet-conversation.c:700
+#, c-format
+msgid "We are calling `%s', his phone should be ringing.\n"
+msgstr "Позивамо „%s“, његов телефон треба да звони.\n"
+
+#: src/conversation/gnunet-conversation.c:719
+msgid "Calls waiting:\n"
+msgstr "Чекање позива:\n"
+
+#: src/conversation/gnunet-conversation.c:725
+#, c-format
+msgid "#%u: `%s'\n"
+msgstr "#%u: „%s“\n"
+
+#: src/conversation/gnunet-conversation.c:753
+#: src/conversation/gnunet-conversation.c:768
+msgid "There is no call that could be suspended right now.\n"
+msgstr "Нема позива који би могао бити обустављен управо сада.\n"
+
+#: src/conversation/gnunet-conversation.c:801
+#: src/conversation/gnunet-conversation.c:817
+msgid "There is no call that could be resumed right now.\n"
+msgstr "Нема позива који би могао бити повраћен управо сада.\n"
+
+#: src/conversation/gnunet-conversation.c:824
+#, c-format
+msgid "Already talking with `%s', cannot resume a call right now.\n"
+msgstr "Већ разговарате са „%s“, не можете повратити позив управо сада.\n"
+
+#: src/conversation/gnunet-conversation.c:833
+msgid "There is no incoming call to resume here!\n"
+msgstr "Нема долазног позива овде за повраћај!\n"
+
+#: src/conversation/gnunet-conversation.c:850
+#, c-format
+msgid "There is no incoming call `%s' to resume right now!\n"
+msgstr "Нема долазног позива „%s“ за повраћај управо сада!\n"
+
+#: src/conversation/gnunet-conversation.c:885
+msgid "There is no call that could be cancelled right now.\n"
+msgstr "Нема позива који би могао бити отказан управо сада.\n"
+
+#: src/conversation/gnunet-conversation.c:893
+msgid "There is no incoming call to refuse here!\n"
+msgstr "Нема долазног позива овде за одбијање!\n"
+
+#: src/conversation/gnunet-conversation.c:910
+#, c-format
+msgid "There is no incoming call `%s' to refuse right now!\n"
+msgstr "Нема долазног позива „%s“ за одбијање управо сада!\n"
+
+#: src/conversation/gnunet-conversation.c:937
+msgid "Use `/address' to find out which address this phone should have in GNS"
+msgstr "Користите „/address“ да нађете коју адресу треба да има овај телефон у 
ГНС-у"
+
+#: src/conversation/gnunet-conversation.c:939
+msgid "Use `/call USER.gnu' to call USER"
+msgstr "Користите „/call USER.gnu“ да позовете КОРИСНИКА"
+
+#: src/conversation/gnunet-conversation.c:941
+msgid "Use `/accept #NUM' to accept incoming call #NUM"
+msgstr "Користтие „/accept #NUM“ да прихватите долазни позив #БРОЈ"
+
+#: src/conversation/gnunet-conversation.c:943
+msgid "Use `/suspend' to suspend the active call"
+msgstr "Користите „/suspend“ да обуставитеактивни позив"
+
+#: src/conversation/gnunet-conversation.c:945
+msgid "Use `/resume [#NUM]' to resume a call, #NUM is needed to resume 
incoming calls, no argument is needed to resume the current outgoing call."
+msgstr "Користите „/resume [#NUM]“ да наставите са позивом, #БРОЈ је потребан 
за повраћај долазних позива, аргумент није потребан за повраћај тренутно 
одлазног позива."
+
+#: src/conversation/gnunet-conversation.c:947
+msgid "Use `/cancel' to reject or terminate a call"
+msgstr "Користите „/cancel“ да одбаците или окончате позив"
+
+#: src/conversation/gnunet-conversation.c:949
+msgid "Use `/status' to print status information"
+msgstr "Користите „/status“ да испишете податке о стању"
+
+#: src/conversation/gnunet-conversation.c:951
+msgid "Use `/quit' to terminate gnunet-conversation"
+msgstr "Користите „/quit“ да окончате „gnunet-conversation“"
+
+#: src/conversation/gnunet-conversation.c:953
+msgid "Use `/help command' to get help for a specific command"
+msgstr "Користите „/help наредба“ да добијете помоћ за неку наредбу"
+
+#: src/conversation/gnunet-conversation.c:1151
+#, c-format
+msgid "Name of our ego changed to `%s'\n"
+msgstr "Назив нашег ега је промењен у „%s“\n"
+
+#: src/conversation/gnunet-conversation.c:1164
+#, c-format
+msgid "Our ego `%s' was deleted!\n"
+msgstr "Наш его „%s“ је обрисан!\n"
+
+#: src/conversation/gnunet-conversation.c:1199
+msgid "You must specify the NAME of an ego to use\n"
+msgstr "Морате навести НАЗИВ егоа за коришћење\n"
+
+#: src/conversation/gnunet-conversation.c:1223
+msgid "Failed to start gnunet-helper-w32-console\n"
+msgstr "Нисам успео да покренем „gnunet-helper-w32-console“\n"
+
+#: src/conversation/gnunet-conversation.c:1249
+msgid "sets the NAME of the ego to use for the phone (and name resolution)"
+msgstr "поставља НАЗИВ егоа за коришћење за телефон (и решавање назива)"
+
+#: src/conversation/gnunet-conversation.c:1252
+msgid "sets the LINE to use for the phone"
+msgstr "поставља РЕД за коришћење за телефон"
+
+#: src/conversation/gnunet-conversation.c:1276
+msgid "Enables having a conversation with other GNUnet users."
+msgstr "Укључује могућност конверзације са другим ГНУнет корисницима."
+
+#: src/conversation/gnunet-conversation-test.c:121
+#, c-format
+msgid ""
+"\n"
+"End of transmission.  Have a GNU day.\n"
+msgstr ""
+"\n"
+"Крај преноса.  Нека вам је ГНУ дан.\n"
+
+#: src/conversation/gnunet-conversation-test.c:149
+#, c-format
+msgid ""
+"\n"
+"We are now playing your recording back.  If you can hear it, your audio 
settings are working..."
+msgstr ""
+"\n"
+"Сада пуштамо ваш снимак.  Ако можете да га чујете, ваша подешавања звука су 
добра..."
+
+#: src/conversation/gnunet-conversation-test.c:215
+#, c-format
+msgid "We will now be recording you for %s. After that time, the recording 
will be played back to you..."
+msgstr "Сада ћемо вас снимати за %s. Након тог времена, снимак ће вам бити 
пуштен..."
+
+#: src/conversation/gnunet-conversation-test.c:248
+#: src/multicast/gnunet-multicast.c:70 src/revocation/gnunet-revocation.c:522
+#: src/template/gnunet-template.c:70
+msgid "help text"
+msgstr "текст помоћи"
+
+#: src/conversation/gnunet-helper-audio-playback.c:305
+#, c-format
+msgid "pa_stream_write() failed: %s\n"
+msgstr "Није успело „pa_stream_write()“: %s\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:587
+msgid "gnunet-helper-audio-playback - Got signal, exiting\n"
+msgstr "gnunet-helper-audio-playback – Добих сигнал, излазим\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:612
+#: src/conversation/gnunet-helper-audio-record.c:545
+msgid "Connection established.\n"
+msgstr "Веза је успостављена.\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:617
+#: src/conversation/gnunet-helper-audio-record.c:550
+#, c-format
+msgid "pa_stream_new() failed: %s\n"
+msgstr "Није успело „pa_stream_new()“: %s\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:631
+#, c-format
+msgid "pa_stream_connect_playback() failed: %s\n"
+msgstr "Није успело „pa_stream_connect_playback()“: %s\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:644
+#: src/conversation/gnunet-helper-audio-record.c:576
+#, c-format
+msgid "Connection failure: %s\n"
+msgstr "Неуспешно повезивање: %s\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:665
+#: src/conversation/gnunet-helper-audio-record.c:599
+msgid "Wrong Spec\n"
+msgstr "Погрешна спец\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:671
+#: src/conversation/gnunet-helper-audio-record.c:605
+msgid "pa_mainloop_new() failed.\n"
+msgstr "Није успело „pa_mainloop_new()“.\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:685
+#: src/conversation/gnunet-helper-audio-record.c:620
+msgid "pa_context_new() failed.\n"
+msgstr "Није успело „pa_context_new()“.\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:692
+#: src/conversation/gnunet-helper-audio-record.c:626
+#, c-format
+msgid "pa_context_connect() failed: %s\n"
+msgstr "Није успело „pa_context_connect()“: %s\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:698
+#: src/conversation/gnunet-helper-audio-record.c:632
+msgid "pa_mainloop_run() failed.\n"
+msgstr "Није успело „pa_mainloop_run()“.\n"
+
+#: src/conversation/gnunet-helper-audio-playback.c:768
+#, c-format
+msgid "Read error from STDIN: %s\n"
+msgstr "Грешка читања са СТНДУЛАЗА: %s\n"
+
+#: src/conversation/gnunet-helper-audio-playback-gst.c:325
+#, c-format
+msgid "Read error from STDIN: %d %s\n"
+msgstr "Грешка читања са СТНДУЛАЗА: %d %s\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:344
+#, c-format
+msgid "opus_encode_float() failed: %s. Aborting\n"
+msgstr "Није успело „opus_encode_float()“: %s. Прекидам\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:420
+#, c-format
+msgid "pa_stream_peek() failed: %s\n"
+msgstr "Није успело „pa_stream_peek()“: %s\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:458
+msgid "Got signal, exiting.\n"
+msgstr "Добих сигнал, излазим.\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:483
+msgid "Stream successfully created.\n"
+msgstr "Ток је успешно направљен.\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:488
+#, c-format
+msgid "pa_stream_get_buffer_attr() failed: %s\n"
+msgstr "Није успело „pa_stream_get_buffer_attr()“: %s\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:496
+#, c-format
+msgid "Buffer metrics: maxlength=%u, fragsize=%u\n"
+msgstr "Мере бафера: maxlength=%u, fragsize=%u\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:500
+#, c-format
+msgid "Using sample spec '%s', channel map '%s'.\n"
+msgstr "Користим спецификацију узорка „%s“, мапа канала „%s“.\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:507
+#, c-format
+msgid "Connected to device %s (%u, %ssuspended).\n"
+msgstr "Повезан са уређајем %s (%u, %sобустављено).\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:516
+#, c-format
+msgid "Stream error: %s\n"
+msgstr "Грешка тока: %s\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:563
+#, c-format
+msgid "pa_stream_connect_record() failed: %s\n"
+msgstr "Није успело „pa_stream_connect_record()“: %s\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:676
+msgid "ogg_stream_init() failed.\n"
+msgstr "Није успело „ogg_stream_init()“.\n"
+
+#: src/conversation/gnunet-helper-audio-record.c:721
+#, c-format
+msgid "Failed to allocate %d bytes for second packet\n"
+msgstr "Нисам успео да доделим %d бајта за други пакет\n"
+
+#: src/conversation/gnunet-service-conversation.c:841
+msgid "Mesh audio channel not ready; audio data dropped\n"
+msgstr "Звучни канал меша није спреман; звучни подаци су одбачени\n"
+
+#: src/conversation/gnunet-service-conversation.c:932
+#, c-format
+msgid "No available phone for incoming call on line %u, sending HANG_UP 
signal\n"
+msgstr "Нема доступних телефона за долазни позив на линији %u, шаљем сигнал 
ПРЕКИД\n"
+
+#: src/conversation/gnunet-service-conversation.c:1338
+#, c-format
+msgid "Received incoming channel on port %u\n"
+msgstr "Примих долазни канал на прикључник %u\n"
+
+#: src/conversation/microphone.c:121
+msgid "Could not start record audio helper\n"
+msgstr "Не могу да покренем помоћника аудио снимања\n"
+
+#: src/conversation/plugin_gnsrecord_conversation.c:116
+#, c-format
+msgid "Unable to parse PHONE record `%s'\n"
+msgstr "Не могу да обрадим ТЕЛЕФОНСКИ снимак „%s“\n"
+
+#: src/conversation/speaker.c:75
+msgid "Could not start playback audio helper.\n"
+msgstr "Не могу да покренем помоћника аудио пуштања.\n"
+
+#: src/core/core_api.c:767
+msgid "Client was disconnected from core service, trying to reconnect.\n"
+msgstr "Клијент је ископчан са кључне услуге, покушавам поново да се 
повежем.\n"
+
+#: src/core/gnunet-core.c:80
+#, c-format
+msgid "Peer `%s'\n"
+msgstr "Парњак „%s“\n"
+
+#: src/core/gnunet-core.c:110 src/core/gnunet-core.c:138
+#: src/transport/gnunet-transport.c:910 src/transport/gnunet-transport.c:930
+#, c-format
+msgid "%24s: %-17s %4s   (%u connections in total)\n"
+msgstr "%24s: %-17s %4s   (укупно повезивања: %u)\n"
+
+#: src/core/gnunet-core.c:112 src/transport/gnunet-transport.c:911
+msgid "Connected to"
+msgstr "Повезани сте са"
+
+#: src/core/gnunet-core.c:140 src/transport/gnunet-transport.c:931
+msgid "Disconnected from"
+msgstr "Прекинута је веза са"
+
+#: src/core/gnunet-core.c:211 src/peerinfo-tool/gnunet-peerinfo.c:694
+#, c-format
+msgid "Invalid command line argument `%s'\n"
+msgstr "Неисправан аргумент линије наредби „%s“\n"
+
+#: src/core/gnunet-core.c:233 src/transport/gnunet-transport.c:1486
+msgid "provide information about all current connections (continuously)"
+msgstr "обезбеђује податке о свим тренутним везама (непрекидно)"
+
+#: src/core/gnunet-core.c:244
+msgid "Print information about connected peers."
+msgstr "Исписује податке о повезаним парњацима."
+
+#: src/core/gnunet-service-core.c:105
+msgid "Core service is lacking HOSTKEY configuration setting.  Exiting.\n"
+msgstr "Услузи језгра недостаје поставка подешавања КЉУЧА_ДОМАЋИНА.  
Излазим.\n"
+
+#: src/core/gnunet-service-core.c:126
+#, c-format
+msgid "Core service of `%4s' ready.\n"
+msgstr "Кључна услуга „%4s“ је спремна.\n"
+
+#: src/core/gnunet-service-core_clients.c:370
+msgid "# send requests dropped (disconnected)"
+msgstr "# захтеви слања су одбачени (веза је прекинута)"
+
+#: src/core/gnunet-service-core_clients.c:480
+msgid "# messages discarded (session disconnected)"
+msgstr "# поруке су одбачене (сесија је ископчана)"
+
+#: src/core/gnunet-service-core_clients.c:526
+#, c-format
+msgid "# bytes of messages of type %u received"
+msgstr "# бајтови порука врсте %u су примљени"
+
+#: src/core/gnunet-service-core_kx.c:535
+msgid "# bytes encrypted"
+msgstr "# бајтова шифрованих"
+
+#: src/core/gnunet-service-core_kx.c:586
+msgid "# bytes decrypted"
+msgstr "# бајтова дешифрованих"
+
+#: src/core/gnunet-service-core_kx.c:673
+msgid "# key exchanges initiated"
+msgstr "# кључ измена је покренут"
+
+#: src/core/gnunet-service-core_kx.c:713
+msgid "# key exchanges stopped"
+msgstr "# кључ измена је заустављен"
+
+#: src/core/gnunet-service-core_kx.c:810
+msgid "# old ephemeral keys ignored"
+msgstr "# стари једнократни кључеви су занемарени"
+
+#: src/core/gnunet-service-core_kx.c:816
+msgid "# ephemeral keys received"
+msgstr "# једнократни кључеви су примљени"
+
+#: src/core/gnunet-service-core_kx.c:850
+#, c-format
+msgid "Ephemeral key message from peer `%s' rejected as its validity range 
does not match our system time (%llu not in [%llu,%llu]).\n"
+msgstr "Порука једнократног кључа од парњака „%s“ је одбачена јер њен опсег 
исправности не одговара времену нашег система (%llu није у [%llu,%llu]).\n"
+
+#: src/core/gnunet-service-core_kx.c:861
+msgid "# EPHEMERAL_KEY messages received"
+msgstr "# поруке ЈЕДНОКРАТНОГ_КЉУЧА су примљене"
+
+#: src/core/gnunet-service-core_kx.c:951
+#: src/transport/gnunet-service-transport_validation.c:1016
+msgid "# PING messages received"
+msgstr "# ПИНГ поруке су примљене"
+
+#: src/core/gnunet-service-core_kx.c:959
+msgid "# PING messages dropped (out of order)"
+msgstr "# ПИНГ поруке су одбачене (ван поретка)"
+
+#: src/core/gnunet-service-core_kx.c:986
+#, c-format
+msgid "Received PING from `%s' for different identity: I am `%s', PONG 
identity: `%s'\n"
+msgstr "Примих ПИНГ са „%s“ за другачији идентитет: Ја сам „%s“, ПОНГ 
идентитет: „%s“\n"
+
+#: src/core/gnunet-service-core_kx.c:1003
+msgid "# PONG messages created"
+msgstr "# ПОНГ поруке су направљене"
+
+#: src/core/gnunet-service-core_kx.c:1029
+msgid "# sessions terminated by timeout"
+msgstr "# сесије су окончане временским истеком"
+
+#: src/core/gnunet-service-core_kx.c:1039
+msgid "# keepalive messages sent"
+msgstr "# поруке држања у животу су послате"
+
+#: src/core/gnunet-service-core_kx.c:1096
+#: src/transport/gnunet-service-transport_validation.c:1328
+msgid "# PONG messages received"
+msgstr "# ПОНГ поруке су примљене"
+
+#: src/core/gnunet-service-core_kx.c:1102
+msgid "# PONG messages dropped (connection down)"
+msgstr "# ПОНГ поруке су одбачене (веза је пала)"
+
+#: src/core/gnunet-service-core_kx.c:1107
+msgid "# PONG messages dropped (out of order)"
+msgstr "# ПОНГ поруке су одбачене (ван поретка)"
+
+#: src/core/gnunet-service-core_kx.c:1137
+msgid "# PONG messages decrypted"
+msgstr "# ПОНГ поруке су дешифроване"
+
+#: src/core/gnunet-service-core_kx.c:1171
+msgid "# session keys confirmed via PONG"
+msgstr "# кључеви сесије су потврђени путем ПОНГ-а"
+
+#: src/core/gnunet-service-core_kx.c:1181
+msgid "# timeouts prevented via PONG"
+msgstr "# временски истеци су спречени путем ПОНГ-а"
+
+#: src/core/gnunet-service-core_kx.c:1188
+msgid "# rekey operations confirmed via PONG"
+msgstr "# операције рекључа су потврђене путем ПОНГ-а"
+
+#: src/core/gnunet-service-core_kx.c:1328
+msgid "# DATA message dropped (out of order)"
+msgstr "# ПОДАТАКА порука је одбачена (ван поретка)"
+
+#: src/core/gnunet-service-core_kx.c:1335
+#, c-format
+msgid "Session to peer `%s' went down due to key expiration (should not 
happen)\n"
+msgstr "Сесија за парњака „%s“ је пала услед истека кључа (није требало да се 
деси)\n"
+
+#: src/core/gnunet-service-core_kx.c:1338
+msgid "# sessions terminated by key expiration"
+msgstr "# сесије су окончане истеком кључа"
+
+#: src/core/gnunet-service-core_kx.c:1383
+#: src/core/gnunet-service-core_kx.c:1408
+msgid "# bytes dropped (duplicates)"
+msgstr "# бајтови одбачени (удвострученост)"
+
+#: src/core/gnunet-service-core_kx.c:1395
+msgid "# bytes dropped (out of sequence)"
+msgstr "# бајтови одбачени (ван низа)"
+
+#: src/core/gnunet-service-core_kx.c:1437
+msgid "# bytes dropped (ancient message)"
+msgstr "# бајтови одбачени (стара порука)"
+
+#: src/core/gnunet-service-core_kx.c:1445
+msgid "# bytes of payload decrypted"
+msgstr "# бајтови утовара су дешифровани"
+
+#: src/core/gnunet-service-core_kx.c:1480
+msgid "# PAYLOAD dropped (out of order)"
+msgstr "# УТОВАР је одбачен (ван поретка)"
+
+#: src/core/gnunet-service-core_neighbours.c:168
+msgid "# sessions terminated by transport disconnect"
+msgstr "# окончане сесије прекидом преноса"
+
+#: src/core/gnunet-service-core_neighbours.c:184
+#: src/core/gnunet-service-core_neighbours.c:335
+msgid "# neighbour entries allocated"
+msgstr "# уноси суседа су додељени"
+
+#: src/core/gnunet-service-core_neighbours.c:252
+msgid "# encrypted bytes given to transport"
+msgstr "# шифровани бајтови су дати преносу"
+
+#: src/core/gnunet-service-core_neighbours.c:418
+#, c-format
+msgid "Unsupported message of type %u (%u bytes) received from peer `%s'\n"
+msgstr "Неподржана порука врсте %u (%u бајта) је примљена са парњака „%s“\n"
+
+#: src/core/gnunet-service-core_sessions.c:216
+#: src/core/gnunet-service-core_sessions.c:288
+#: src/dht/gnunet-service-dht_neighbours.c:662
+#: src/dht/gnunet-service-dht_neighbours.c:727
+#: src/dht/gnunet-service-xdht_neighbours.c:1304
+#: src/fs/gnunet-service-fs_cp.c:606 src/fs/gnunet-service-fs_cp.c:1501
+#: src/topology/gnunet-daemon-topology.c:707
+#: src/topology/gnunet-daemon-topology.c:808
+#: src/transport/gnunet-service-transport_neighbours.c:917
+#: src/transport/gnunet-service-transport_neighbours.c:1141
+#: src/transport/gnunet-service-transport_neighbours.c:3142
+#: src/transport/gnunet-service-transport_neighbours.c:3438
+msgid "# peers connected"
+msgstr "# парњаци су повезани"
+
+#: src/core/gnunet-service-core_sessions.c:255
+msgid "# type map refreshes sent"
+msgstr "# освежавања мапе врсте су послата"
+
+#: src/core/gnunet-service-core_sessions.c:426
+msgid "# messages discarded (expired prior to transmission)"
+msgstr "# поруке су одбачене (истекле су пре преноса)"
+
+#: src/core/gnunet-service-core_typemap.c:110
+#: src/core/gnunet-service-core_typemap.c:121
+msgid "# type maps received"
+msgstr "# мапе врсте су примљене"
+
+#: src/core/gnunet-service-core_typemap.c:151
+msgid "# updates to my type map"
+msgstr "# ажурирања за моју мапу врсте"
+
+#: src/datacache/datacache.c:115 src/datacache/datacache.c:266
+#: src/datastore/gnunet-service-datastore.c:838
+msgid "# bytes stored"
+msgstr "# бајтови су смештени"
+
+#: src/datacache/datacache.c:117 src/datacache/datacache.c:268
+msgid "# items stored"
+msgstr "# ставке су смештене"
+
+#: src/datacache/datacache.c:143 src/datacache/datacache.c:150
+#: src/datastore/gnunet-service-datastore.c:1487
+#: src/datastore/gnunet-service-datastore.c:1498
+#, c-format
+msgid "No `%s' specified for `%s' in configuration!\n"
+msgstr "Није наведено „%s“ за „%s“ у подешавањима!\n"
+
+#: src/datacache/datacache.c:184
+#, c-format
+msgid "Loading `%s' datacache plugin\n"
+msgstr "Учитавам прикључак „%s“ оставе података\n"
+
+#: src/datacache/datacache.c:192
+#, c-format
+msgid "Failed to load datacache plugin for `%s'\n"
+msgstr "Нисам успео да учитам прикључак оставе података за „%s“\n"
+
+#: src/datacache/datacache.c:295
+msgid "# requests received"
+msgstr "# захтеви су примљени"
+
+#: src/datacache/datacache.c:304
+msgid "# requests filtered by bloom filter"
+msgstr "# захтеви су филтрирани блум филтером"
+
+#: src/datacache/plugin_datacache_heap.c:406
+msgid "Heap datacache running\n"
+msgstr "Остава података скупине ради\n"
+
+#: src/datacache/plugin_datacache_postgres.c:392
+msgid "Postgres datacache running\n"
+msgstr "Остава података Постгреса ради\n"
+
+#: src/datacache/plugin_datacache_sqlite.c:69
+#: src/datacache/plugin_datacache_sqlite.c:72
+#: src/datastore/plugin_datastore_mysql.c:806
+#: src/datastore/plugin_datastore_mysql.c:820
+#: src/datastore/plugin_datastore_sqlite.c:57 src/mysql/mysql.c:41
+#: src/mysql/mysql.c:48 src/mysql/mysql.c:522 src/mysql/mysql.c:531
+#: src/mysql/mysql.c:591 src/mysql/mysql.c:607
+#: src/namecache/plugin_namecache_postgres.c:52
+#: src/namecache/plugin_namecache_sqlite.c:52
+#: src/namestore/plugin_namestore_postgres.c:52
+#: src/namestore/plugin_namestore_sqlite.c:52
+#: src/testbed/generate-underlay-topology.c:47
+#: src/testbed/gnunet-daemon-latency-logger.c:52
+#: src/testbed/gnunet-daemon-testbed-underlay.c:55
+#: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:51
+#: src/util/crypto_mpi.c:39 src/include/gnunet_common.h:602
+#: src/include/gnunet_common.h:611 src/scalarproduct/scalarproduct.h:50
+#, c-format
+msgid "`%s' failed at %s:%d with error: %s\n"
+msgstr "„%s“ није успело на %s:%d са грешком: %s\n"
+
+#: src/datacache/plugin_datacache_sqlite.c:450
+msgid "Sqlite datacache running\n"
+msgstr "Остава података Скулајта ради\n"
+
+#: src/datacache/plugin_datacache_sqlite.c:484
+#: src/datastore/plugin_datastore_sqlite.c:404
+#: src/namecache/plugin_namecache_sqlite.c:295
+#: src/namestore/plugin_namestore_sqlite.c:327
+msgid "Tried to close sqlite without finalizing all prepared statements.\n"
+msgstr "Покушај да затворим скулајт без довршавања свих спремљених изјава.\n"
+
+#: src/datacache/plugin_datacache_sqlite.c:491
+#, c-format
+msgid "Failed to close statement %p: %d\n"
+msgstr "Нисам успео да затворим тврдњу „%p“: %d\n"
+
+#: src/datacache/plugin_datacache_template.c:125
+msgid "Template datacache running\n"
+msgstr "Остава података шаблона ради\n"
+
+#: src/datastore/datastore_api.c:310
+msgid "Failed to transmit request to drop database.\n"
+msgstr "Нисам успео да пренесем захтев бази података убацивања.\n"
+
+#: src/datastore/datastore_api.c:394
+msgid "# queue entry timeouts"
+msgstr "# истекла су времена уноса реда"
+
+#: src/datastore/datastore_api.c:443
+msgid "# queue overflows"
+msgstr "# прекорачења реда"
+
+#: src/datastore/datastore_api.c:471
+msgid "# queue entries created"
+msgstr "# уноси реда су створени"
+
+#: src/datastore/datastore_api.c:491
+msgid "# Requests dropped from datastore queue"
+msgstr "# Захтеви су одбачени из реда смештаја података"
+
+#: src/datastore/datastore_api.c:533
+msgid "# datastore connections (re)created"
+msgstr "# везе смештаја података су (поново) створене"
+
+#: src/datastore/datastore_api.c:616 src/scalarproduct/scalarproduct_api.c:279
+msgid "# transmission request failures"
+msgstr "# неуспеси захтева преноса"
+
+#: src/datastore/datastore_api.c:638
+msgid "# bytes sent to datastore"
+msgstr "# бајтови су послати смештају података"
+
+#: src/datastore/datastore_api.c:770
+msgid "Failed to receive status response from database."
+msgstr "Нисам успео да примим одговор стања из базе података."
+
+#: src/datastore/datastore_api.c:784
+msgid "Error reading response from datastore service"
+msgstr "Грешка читања одговора из услуге смештаја података"
+
+#: src/datastore/datastore_api.c:796 src/datastore/datastore_api.c:802
+msgid "Invalid error message received from datastore service"
+msgstr "Неисправна порука грешке је примљена из услуге смештаја података"
+
+#: src/datastore/datastore_api.c:806
+msgid "# status messages received"
+msgstr "# поруке стања су примљене"
+
+#: src/datastore/datastore_api.c:876
+msgid "# PUT requests executed"
+msgstr "# захтеви СТАВИ су извршени"
+
+#: src/datastore/datastore_api.c:944
+msgid "# RESERVE requests executed"
+msgstr "# захтеви РЕЗЕРВИШИ су извршени"
+
+#: src/datastore/datastore_api.c:1005
+msgid "# RELEASE RESERVE requests executed"
+msgstr "# захтеви ОТПУСТИ РЕЗЕРВИШИ су извршени"
+
+#: src/datastore/datastore_api.c:1065
+msgid "# UPDATE requests executed"
+msgstr "# захтеви ОСВЕЖИ су извршени"
+
+#: src/datastore/datastore_api.c:1129
+msgid "# REMOVE requests executed"
+msgstr "# захтеви УКЛОНИ су извршени"
+
+#: src/datastore/datastore_api.c:1174
+msgid "Failed to receive response from database.\n"
+msgstr "Нисам успео да примим одговор из базе података.\n"
+
+#: src/datastore/datastore_api.c:1233
+msgid "# Results received"
+msgstr "# Резултати су примљени"
+
+#: src/datastore/datastore_api.c:1300
+msgid "# GET REPLICATION requests executed"
+msgstr "# захтеви ДОБАВИ ПРЕСЛИКАНОСТ су изршени"
+
+#: src/datastore/datastore_api.c:1363
+msgid "# GET ZERO ANONYMITY requests executed"
+msgstr "# захтеви ДОБАВИ НУЛТУ АНОНИМНОСТ су извршени"
+
+#: src/datastore/datastore_api.c:1424
+msgid "# GET requests executed"
+msgstr "# захтеви ДОБАВИ су извршени"
+
+#: src/datastore/gnunet-datastore.c:114
+#, c-format
+msgid "Failed to store item: %s, aborting\n"
+msgstr "Нисам успео да сместим ставку: %s, прекидам\n"
+
+#: src/datastore/gnunet-datastore.c:200
+#, c-format
+msgid "Cannot use the same configuration for source and destination\n"
+msgstr "Не могу да користим исто подешавање за извор и одредиште\n"
+
+#: src/datastore/gnunet-datastore.c:246
+msgid "specifies the configuration to use to access an alternative datastore; 
will merge that datastore into our current datastore"
+msgstr "наводи подешавање за коришћење за приступ заменском смештају података; 
стопиће тај смештај података у наш тренутни смештај података"
+
+#: src/datastore/gnunet-datastore.c:255
+msgid "Manipulate GNUnet datastore"
+msgstr "Манипулише ГНУнет смештајом података"
+
+#: src/datastore/gnunet-service-datastore.c:351
+msgid "# bytes expired"
+msgstr "# бајтови су истекли"
+
+#: src/datastore/gnunet-service-datastore.c:425
+msgid "# bytes purged (low-priority)"
+msgstr "# бајтови су избачени (ниска хитност)"
+
+#: src/datastore/gnunet-service-datastore.c:483
+#: src/gns/gnunet-gns-helper-service-w32.c:223
+msgid "Transmission to client failed!\n"
+msgstr "Пренос до клијента није успео!\n"
+
+#: src/datastore/gnunet-service-datastore.c:514
+#: src/gns/gnunet-gns-helper-service-w32.c:262
+msgid "Shutdown in progress, aborting transmission.\n"
+msgstr "Гашење је у току, прекидам пренос.\n"
+
+#: src/datastore/gnunet-service-datastore.c:630
+msgid "# results found"
+msgstr "# резултати су нађени"
+
+#: src/datastore/gnunet-service-datastore.c:673
+#, c-format
+msgid "Insufficient space (%llu bytes are available) to satisfy `%s' request 
for %llu bytes\n"
+msgstr "Недовољно простора (доступних бајтова %llu) за задовољавање „%s“ 
захтева за %llu бајта\n"
+
+#: src/datastore/gnunet-service-datastore.c:684
+#, c-format
+msgid "The requested amount (%llu bytes) is larger than the cache size (%llu 
bytes)\n"
+msgstr "Захтевана количина (%llu бајта) је већа од величине оставе (%llu 
бајта)\n"
+
+#: src/datastore/gnunet-service-datastore.c:688
+msgid "Insufficient space to satisfy request and requested amount is larger 
than cache size"
+msgstr "Недовољно простора за задовољавање захтева а захтевана количина је 
већа од величине оставе"
+
+#: src/datastore/gnunet-service-datastore.c:694
+msgid "Insufficient space to satisfy request"
+msgstr "Недовољно простора за задовољавање захтева"
+
+#: src/datastore/gnunet-service-datastore.c:699
+#: src/datastore/gnunet-service-datastore.c:751
+#: src/datastore/gnunet-service-datastore.c:964
+#: src/datastore/gnunet-service-datastore.c:1421
+msgid "# reserved"
+msgstr "# је резервисано"
+
+#: src/datastore/gnunet-service-datastore.c:764
+msgid "Could not find matching reservation"
+msgstr "Не могу да нађем одговарајућу резервацију"
+
+#: src/datastore/gnunet-service-datastore.c:850
+#, c-format
+msgid "Need %llu bytes more space (%llu allowed, using %llu)\n"
+msgstr "Потребна су још %llu бајта простора (%llu је дозвољено, користим 
%llu)\n"
+
+#: src/datastore/gnunet-service-datastore.c:1010
+msgid "# GET requests received"
+msgstr "# захтеви ДОБАВИ су примљени"
+
+#: src/datastore/gnunet-service-datastore.c:1022
+msgid "# requests filtered by bloomfilter"
+msgstr "# захтеви су филтрирани блумфилтером"
+
+#: src/datastore/gnunet-service-datastore.c:1050
+msgid "# UPDATE requests received"
+msgstr "# захтеви ОСВЕЖИ су примљени"
+
+#: src/datastore/gnunet-service-datastore.c:1080
+msgid "# GET REPLICATION requests received"
+msgstr "# захтеви ДОБАВИ ПРЕСЛИКАНОСТ су примљени"
+
+#: src/datastore/gnunet-service-datastore.c:1113
+msgid "# GET ZERO ANONYMITY requests received"
+msgstr "# захтеви ДОБАВИ НУЛТУ АНОНИМНОСТ су примљени"
+
+#: src/datastore/gnunet-service-datastore.c:1138
+msgid "Content not found"
+msgstr "Нисам нашао садржај"
+
+#: src/datastore/gnunet-service-datastore.c:1146
+msgid "# bytes removed (explicit request)"
+msgstr "# бајта је уклоњено (изричити захтев)"
+
+#: src/datastore/gnunet-service-datastore.c:1178
+msgid "# REMOVE requests received"
+msgstr "# захтеви УКЛОНИ су уклоњени"
+
+#: src/datastore/gnunet-service-datastore.c:1220
+#, c-format
+msgid "Datastore payload inaccurate (%lld < %lld).  Trying to fix.\n"
+msgstr "Утовар смештаја података није тачан (%lld < %lld).  Покушавам да 
поправим.\n"
+
+#: src/datastore/gnunet-service-datastore.c:1281
+#, c-format
+msgid "Loading `%s' datastore plugin\n"
+msgstr "Учитавам прикључак „%s“ смештаја података\n"
+
+#: src/datastore/gnunet-service-datastore.c:1290
+#, c-format
+msgid "Failed to load datastore plugin for `%s'\n"
+msgstr "Нисам успео да учитам прикључак смештаја података за „%s“\n"
+
+#: src/datastore/gnunet-service-datastore.c:1492
+#, c-format
+msgid "# bytes used in file-sharing datastore `%s'"
+msgstr "# бајтови су коришћени у смештају података дељења датотека „%s“"
+
+#: src/datastore/gnunet-service-datastore.c:1503
+msgid "# quota"
+msgstr "# квота"
+
+#: src/datastore/gnunet-service-datastore.c:1505
+msgid "# cache size"
+msgstr "# величина кеша"
+
+#: src/datastore/gnunet-service-datastore.c:1518
+#, c-format
+msgid "Could not use specified filename `%s' for bloomfilter.\n"
+msgstr "Не могу да користим наведени назив датотеке „%s“ за блумфилтер.\n"
+
+#: src/datastore/gnunet-service-datastore.c:1536
+#: src/datastore/gnunet-service-datastore.c:1552
+#, c-format
+msgid "Failed to remove bogus bloomfilter file `%s'\n"
+msgstr "Нисам успео да уклоним лажну датотеку блумфилтера „%s“\n"
+
+#: src/datastore/gnunet-service-datastore.c:1582
+msgid "Failed to initialize bloomfilter.\n"
+msgstr "Нисам успео да покренем блумфилтер.\n"
+
+#: src/datastore/gnunet-service-datastore.c:1611
+msgid "Rebuilding bloomfilter.  Please be patient.\n"
+msgstr "Поново градим блумфилтер.  Будите стрпљиви.\n"
+
+#: src/datastore/gnunet-service-datastore.c:1616
+msgid "Plugin does not support get_keys function. Please fix!\n"
+msgstr "Прикључак не подржава функцију „get_keys“. Поправите то!\n"
+
+#: src/datastore/gnunet-service-datastore.c:1619
+msgid "Bloomfilter construction complete.\n"
+msgstr "Изградња блумфилтера је завршена.\n"
+
+#: src/datastore/plugin_datastore_heap.c:820
+msgid "Heap database running\n"
+msgstr "База података скупине ради\n"
+
+#: src/datastore/plugin_datastore_mysql.c:783
+#, c-format
+msgid "Failed to prepare statement `%s'\n"
+msgstr "Нисам успео да припремим стање „%s“\n"
+
+#: src/datastore/plugin_datastore_mysql.c:791
+#, c-format
+msgid "`%s' for `%s' failed at %s:%d with error: %s\n"
+msgstr "„%s“ за „%s“ није успело на %s:%d са грешком: %s\n"
+
+#: src/datastore/plugin_datastore_mysql.c:1022
+msgid "Mysql database running\n"
+msgstr "База података Мајскула ради\n"
+
+#: src/datastore/plugin_datastore_postgres.c:824
+msgid "Failed to drop table from database.\n"
+msgstr "Нисам успео да избацим табелу из базе података.\n"
+
+#: src/datastore/plugin_datastore_postgres.c:860
+#: src/namecache/plugin_namecache_postgres.c:414
+#: src/namestore/plugin_namestore_postgres.c:569
+msgid "Postgres database running\n"
+msgstr "База података Постгреса ради\n"
+
+#: src/datastore/plugin_datastore_sqlite.c:57
+#: src/testbed/generate-underlay-topology.c:50
+#: src/testbed/gnunet-daemon-latency-logger.c:55
+#: src/testbed/gnunet-daemon-testbed-underlay.c:58
+#, c-format
+msgid "`%s' failed at %s:%u with error: %s"
+msgstr "„%s“ није успело на %s:%u са грешком: %s"
+
+#: src/datastore/plugin_datastore_sqlite.c:255
+#: src/namecache/plugin_namecache_sqlite.c:193
+#: src/namestore/plugin_namestore_sqlite.c:204
+#: src/psycstore/plugin_psycstore_sqlite.c:319
+#, c-format
+msgid "Unable to initialize SQLite: %s.\n"
+msgstr "Не могу да покренем СКуЛајт: %s.\n"
+
+#: src/datastore/plugin_datastore_sqlite.c:663
+msgid "Invalid data in database.  Trying to fix (by deletion).\n"
+msgstr "Неисправан податак у бази података.  Покушавам да поправим 
(брисањем).\n"
+
+#: src/datastore/plugin_datastore_sqlite.c:1156
+msgid "sqlite version to old to determine size, assuming zero\n"
+msgstr "скулајт издање је престаро за одређивање величине, подразумевам нулу\n"
+
+#: src/datastore/plugin_datastore_sqlite.c:1175
+#, c-format
+msgid "Using sqlite page utilization to estimate payload (%llu pages of size 
%llu bytes)\n"
+msgstr "Користим страницу коришћења скулајта да проценим утовар (%llu странице 
величине %llu бајта)\n"
+
+#: src/datastore/plugin_datastore_sqlite.c:1215
+#: src/namecache/plugin_namecache_sqlite.c:583
+#: src/namestore/plugin_namestore_sqlite.c:719
+msgid "Sqlite database running\n"
+msgstr "База података Скулајта ради\n"
+
+#: src/datastore/plugin_datastore_template.c:257
+msgid "Template database running\n"
+msgstr "База података шаблона ради\n"
+
+#: src/dht/dht_api.c:376
+msgid "Failed to connect to the DHT service!\n"
+msgstr "Нисам успео да се повежем са „DHT“ услугом!\n"
+
+#: src/dht/gnunet-dht-get.c:133
+#, c-format
+msgid ""
+"Result %d, type %d:\n"
+"%.*s\n"
+msgstr ""
+"Резултат %d, врста %d:\n"
+"%.*s\n"
+
+#: src/dht/gnunet-dht-get.c:159
+msgid "Must provide key for DHT GET!\n"
+msgstr "Морате доставити кључ за ДХТ ДОБАВИ!\n"
+
+#: src/dht/gnunet-dht-get.c:165 src/dht/gnunet-dht-monitor.c:225
+msgid "Failed to connect to DHT service!\n"
+msgstr "Нисам успео да се повежем са „DHT“ услугом!\n"
+
+#: src/dht/gnunet-dht-get.c:173
+msgid "Issueing DHT GET with key"
+msgstr "Издајем ДХТ ДОБАВИ са кључем"
+
+#: src/dht/gnunet-dht-get.c:189 src/dht/gnunet-dht-monitor.c:262
+#: src/dht/gnunet-dht-put.c:198
+msgid "the query key"
+msgstr "кључ упита"
+
+#: src/dht/gnunet-dht-get.c:192
+msgid "how many parallel requests (replicas) to create"
+msgstr "колико паралелних захтева (реплика) да направи"
+
+#: src/dht/gnunet-dht-get.c:195 src/dht/gnunet-dht-monitor.c:265
+msgid "the type of data to look for"
+msgstr "врста података за тражење"
+
+#: src/dht/gnunet-dht-get.c:198 src/dht/gnunet-dht-put.c:210
+msgid "how long to execute this query before giving up?"
+msgstr "колико дуго да извршава овај упит пре одустајања?"
+
+#: src/dht/gnunet-dht-get.c:201 src/dht/gnunet-dht-put.c:201
+msgid "use DHT's demultiplex everywhere option"
+msgstr "користи опцију ДХТ-а демултиплексирај свуда"
+
+#: src/dht/gnunet-dht-get.c:204 src/dht/gnunet-dht-monitor.c:271
+#: src/dht/gnunet-dht-put.c:213 src/fs/gnunet-auto-share.c:753
+#: src/fs/gnunet-download.c:328 src/fs/gnunet-publish.c:877
+#: src/fs/gnunet-search.c:301 src/fs/gnunet-unindex.c:168
+#: src/nse/gnunet-nse-profiler.c:873
+msgid "be verbose (print progress information)"
+msgstr "бива опширан (исписује податке напредовања)"
+
+#: src/dht/gnunet-dht-get.c:225
+msgid "Issue a GET request to the GNUnet DHT, prints results."
+msgstr "Издаје ДОБАВИ захтев ГНУнет ДХТ-у, исписује резултате."
+
+#: src/dht/gnunet-dht-monitor.c:268
+msgid "how long should the monitor command run"
+msgstr "колико дуго треба да ради наредба праћења"
+
+#: src/dht/gnunet-dht-monitor.c:293
+msgid "Prints all packets that go through the DHT."
+msgstr "Исписује све пакете који иду кроз „DHT“."
+
+#: src/dht/gnunet-dht-put.c:118
+msgid "PUT request sent with key"
+msgstr "СТАВИ захтев је послат са кључем"
+
+#: src/dht/gnunet-dht-put.c:121
+msgid "Timeout sending PUT request!\n"
+msgstr "Истекло је време слања СТАВИ захтева!\n"
+
+#: src/dht/gnunet-dht-put.c:124
+msgid "PUT request not confirmed!\n"
+msgstr "Захтев СТАВИ није потврђен!\n"
+
+#: src/dht/gnunet-dht-put.c:153
+msgid "Must provide KEY and DATA for DHT put!\n"
+msgstr "Морате доставити КЉУЧ и ПОДАЦИ за ДХТ стављање!\n"
+
+#: src/dht/gnunet-dht-put.c:160
+#, c-format
+msgid "Could not connect to %s service!\n"
+msgstr "Не могу да се повежем са „%s“ услугом!\n"
+
+#: src/dht/gnunet-dht-put.c:176
+#, c-format
+msgid "Issuing put request for `%s' with data `%s'!\n"
+msgstr "Издајем захтев стављања за „%s“ са подацима „%s“!\n"
+
+#: src/dht/gnunet-dht-put.c:192
+msgid "the data to insert under the key"
+msgstr "подаци за уметање под кључем"
+
+#: src/dht/gnunet-dht-put.c:195
+msgid "how long to store this entry in the dht (in seconds)"
+msgstr "колико ће дуго да држи овај унос у дхт-у (у секундама)"
+
+#: src/dht/gnunet-dht-put.c:204
+msgid "how many replicas to create"
+msgstr "број реплика за стварање"
+
+#: src/dht/gnunet-dht-put.c:207
+msgid "the type to insert data as"
+msgstr "врста за уметање података"
+
+#: src/dht/gnunet-dht-put.c:236
+msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
+msgstr "Издаје захтев СТАВИ у ГНУнет ДХТ уметак ПОДАТАКА под КЉУЧЕМ."
+
+#: src/dht/gnunet-service-dht.c:172 src/dht/gnunet-service-xdht.c:176
+msgid "Failed to connect to transport service!\n"
+msgstr "Нисам успео да се повежем са услугом преноса!\n"
+
+#: src/dht/gnunet-service-dht_clients.c:417
+#: src/dht/gnunet-service-xdht_clients.c:838
+msgid "# GET requests from clients injected"
+msgstr "# захтеви ДОБАВИ од клијената су убризгани"
+
+#: src/dht/gnunet-service-dht_clients.c:513
+#: src/dht/gnunet-service-xdht_clients.c:927
+msgid "# PUT requests received from clients"
+msgstr "# захтеви СТАВИ су примљени од клијената"
+
+#: src/dht/gnunet-service-dht_clients.c:597
+#: src/dht/gnunet-service-xdht_clients.c:1013
+msgid "# GET requests received from clients"
+msgstr "# захтеви ДОБАВИ су примљени од клијената"
+
+#: src/dht/gnunet-service-dht_clients.c:798
+#: src/dht/gnunet-service-xdht_clients.c:1214
+msgid "# GET STOP requests received from clients"
+msgstr "# захтеви ДОБАВИ СТОП су примљени од клијената"
+
+#: src/dht/gnunet-service-dht_clients.c:1039
+#: src/dht/gnunet-service-xdht_clients.c:498
+msgid "# Key match, type mismatches in REPLY to CLIENT"
+msgstr "# Кључ се поклапа, врсте се не поклапају у ОДГОВОР КЛИЈНЕТУ"
+
+#: src/dht/gnunet-service-dht_clients.c:1052
+#: src/dht/gnunet-service-xdht_clients.c:511
+msgid "# Duplicate REPLIES to CLIENT request dropped"
+msgstr "# Двоструки захтев ОДГОВОРИ КЛИЈЕНТУ је одбачен"
+
+#: src/dht/gnunet-service-dht_clients.c:1089
+#: src/dht/gnunet-service-xdht_clients.c:548
+#, c-format
+msgid "Unsupported block type (%u) in request!\n"
+msgstr "Неподржана врста блока (%u) у захтеву!\n"
+
+#: src/dht/gnunet-service-dht_clients.c:1112
+#: src/dht/gnunet-service-xdht_clients.c:571
+msgid "# RESULTS queued for clients"
+msgstr "# РЕЗУЛТАТИ су стављени у ред за клијенте"
+
+#: src/dht/gnunet-service-dht_clients.c:1166
+#: src/dht/gnunet-service-dht_clients.c:1209
+#: src/dht/gnunet-service-xdht_clients.c:625
+#: src/dht/gnunet-service-xdht_clients.c:668
+msgid "# REPLIES ignored for CLIENTS (no match)"
+msgstr "# ОДГОВОРИ су занемарени за КЛИЈЕНТЕ (нема поклапања)"
+
+#: src/dht/gnunet-service-dht_clients.c:1176
+#: src/dht/gnunet-service-xdht_clients.c:635
+msgid "Could not pass reply to client, message too big!\n"
+msgstr "Не могу да проследим одговор клијенту, порука је превелика!\n"
+
+#: src/dht/gnunet-service-dht_datacache.c:68
+#: src/dht/gnunet-service-xdht_datacache.c:68
+#, c-format
+msgid "%s request received, but have no datacache!\n"
+msgstr "„%s“ захтев је примљен, али нема оставу података!\n"
+
+#: src/dht/gnunet-service-dht_datacache.c:78
+#: src/dht/gnunet-service-xdht_datacache.c:78
+msgid "# ITEMS stored in datacache"
+msgstr "# СТАВКЕ су смештене у оставу података"
+
+#: src/dht/gnunet-service-dht_datacache.c:165
+#: src/dht/gnunet-service-xdht_datacache.c:165
+msgid "# Good RESULTS found in datacache"
+msgstr "# Добри РЕЗУЛТАТИ су нађени у остави података"
+
+#: src/dht/gnunet-service-dht_datacache.c:176
+#: src/dht/gnunet-service-xdht_datacache.c:176
+msgid "# Duplicate RESULTS found in datacache"
+msgstr "# Двоструки РЕЗУЛТАТИ су нађени у остави података"
+
+#: src/dht/gnunet-service-dht_datacache.c:182
+#: src/dht/gnunet-service-xdht_datacache.c:182
+msgid "# Invalid RESULTS found in datacache"
+msgstr "# Неисправни РЕЗУЛТАТИ су нађени у остави података"
+
+#: src/dht/gnunet-service-dht_datacache.c:188
+#: src/dht/gnunet-service-xdht_datacache.c:188
+msgid "# Irrelevant RESULTS found in datacache"
+msgstr "# Неважни РЕЗУЛТАТИ су нађени у остави података"
+
+#: src/dht/gnunet-service-dht_datacache.c:200
+#: src/dht/gnunet-service-xdht_datacache.c:200
+msgid "# Unsupported RESULTS found in datacache"
+msgstr "# Неподржани РЕЗУЛТАТИ су нађени у остави података"
+
+#: src/dht/gnunet-service-dht_datacache.c:203
+#: src/dht/gnunet-service-xdht_datacache.c:203
+#, c-format
+msgid "Unsupported block type (%u) in local response!\n"
+msgstr "Неподржана врста блока (%u) у локалном одговору!\n"
+
+#: src/dht/gnunet-service-dht_datacache.c:234
+#: src/dht/gnunet-service-xdht_datacache.c:234
+msgid "# GET requests given to datacache"
+msgstr "# ДОБАВИ захтеви су дати остави података"
+
+#: src/dht/gnunet-service-dht_hello.c:84
+#: src/dht/gnunet-service-xdht_hello.c:82
+msgid "# HELLOs obtained from peerinfo"
+msgstr "# „HELLO“-и су добијени из података парњака"
+
+#: src/dht/gnunet-service-dht_neighbours.c:516
+msgid "# Preference updates given to core"
+msgstr "# Ажурирања поставки су дата језгру"
+
+#: src/dht/gnunet-service-dht_neighbours.c:610
+msgid "# FIND PEER messages initiated"
+msgstr "# НАЂИ ПАРЊАКА поруке су покренуте"
+
+#: src/dht/gnunet-service-dht_neighbours.c:764
+msgid "# Queued messages discarded (peer disconnected)"
+msgstr "# Поруке из реда су одбачене (парњак је ископчан)"
+
+#: src/dht/gnunet-service-dht_neighbours.c:819
+#: src/dht/gnunet-service-xdht_neighbours.c:703
+msgid "# Bytes transmitted to other peers"
+msgstr "# Бајтови су пренесени другим парњацима"
+
+#: src/dht/gnunet-service-dht_neighbours.c:857
+#: src/dht/gnunet-service-xdht_neighbours.c:742
+msgid "# Bytes of bandwidth requested from core"
+msgstr "# Бајтови пропусног опсега које захтева језгро"
+
+#: src/dht/gnunet-service-dht_neighbours.c:889
+msgid "# requests TTL-dropped"
+msgstr "# захтеви ТТЛ су одбачени"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1093
+#: src/dht/gnunet-service-dht_neighbours.c:1130
+msgid "# Peers excluded from routing due to Bloomfilter"
+msgstr "# Парњаци су изузети из рутирања због Блумфилтера"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1108
+#: src/dht/gnunet-service-dht_neighbours.c:1145
+msgid "# Peer selection failed"
+msgstr "# Бирање парњака није успело"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1287
+msgid "# PUT requests routed"
+msgstr "# захтеви СТАВИ су рутирани"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1316
+msgid "# PUT messages queued for transmission"
+msgstr "# СТАВИ поруке су у реду за пренос"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1323
+#: src/dht/gnunet-service-dht_neighbours.c:1440
+#: src/dht/gnunet-service-dht_neighbours.c:1543
+#: src/dht/gnunet-service-xdht_neighbours.c:794
+#: src/dht/gnunet-service-xdht_neighbours.c:860
+#: src/dht/gnunet-service-xdht_neighbours.c:919
+#: src/dht/gnunet-service-xdht_neighbours.c:981
+#: src/dht/gnunet-service-xdht_neighbours.c:1041
+msgid "# P2P messages dropped due to full queue"
+msgstr "# П2П поруке су одбачене због пуног реда"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1405
+msgid "# GET requests routed"
+msgstr "# захтеви ДОБАВИ су рутирани"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1432
+msgid "# GET messages queued for transmission"
+msgstr "# ДОБАВИ поруке су у реду за пренос"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1550
+msgid "# RESULT messages queued for transmission"
+msgstr "# РЕЗУЛТАТ поруке су у реду за пренос"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1636
+msgid "# P2P PUT requests received"
+msgstr "# захтеви П2П СТАВИ су примљени"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1639
+msgid "# P2P PUT bytes received"
+msgstr "# бајтови П2П СТАВИ су примљени"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1803
+msgid "# FIND PEER requests ignored due to Bloomfilter"
+msgstr "# захтеви НАЂИ ПАРЊАКА су занемарени због Блумфилтера"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1811
+msgid "# FIND PEER requests ignored due to lack of HELLO"
+msgstr "# захтеви НАЂИ ПАРЊАКА су занемарени због недостатка „HELLO“-а"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1904
+msgid "# P2P GET requests received"
+msgstr "# захтеви П2П ДОБАВИ су примљени"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1907
+msgid "# P2P GET bytes received"
+msgstr "# бајтови П2П ДОБАВИ су примљени"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1961
+msgid "# P2P FIND PEER requests processed"
+msgstr "# захтеви П2П НАЂИ ПАРЊАКА су обрађени"
+
+#: src/dht/gnunet-service-dht_neighbours.c:1975
+msgid "# P2P GET requests ONLY routed"
+msgstr "# захтеви П2П ДОБАВИ су САМО рутирани"
+
+#: src/dht/gnunet-service-dht_neighbours.c:2052
+msgid "# P2P RESULTS received"
+msgstr "# П2П РЕЗУЛТАТИ су примљени"
+
+#: src/dht/gnunet-service-dht_neighbours.c:2055
+msgid "# P2P RESULT bytes received"
+msgstr "# бајтови П2П РЕЗУЛТАТ су примљени"
+
+#: src/dht/gnunet-service-dht_nse.c:59 src/dht/gnunet-service-xdht_nse.c:59
+msgid "# Network size estimates received"
+msgstr "# Процене величине мреже су примљене"
+
+#: src/dht/gnunet-service-dht_routing.c:211
+msgid "# Good REPLIES matched against routing table"
+msgstr "# Добри ОДГОВОРИ су поклопљени наспрам табеле рутирања"
+
+#: src/dht/gnunet-service-dht_routing.c:220
+msgid "# Duplicate REPLIES matched against routing table"
+msgstr "# Двоструки ОДГОВОРИ су поклопљени наспрам табеле рутирања"
+
+#: src/dht/gnunet-service-dht_routing.c:226
+msgid "# Invalid REPLIES matched against routing table"
+msgstr "# Неисправни ОДГОВОРИ су поклопљени наспрам табеле рутирања"
+
+#: src/dht/gnunet-service-dht_routing.c:232
+msgid "# Irrelevant REPLIES matched against routing table"
+msgstr "# Неважни ОДГОВОРИ су поклопљени наспрам табеле рутирања"
+
+#: src/dht/gnunet-service-dht_routing.c:244
+msgid "# Unsupported REPLIES matched against routing table"
+msgstr "# Неподржани ОДГОВОРИ су поклопљени наспрам табеле рутирања"
+
+#: src/dht/gnunet-service-dht_routing.c:317
+msgid "# Entries removed from routing table"
+msgstr "# Уноси су уклоњени из табеле рутирања"
+
+#: src/dht/gnunet-service-dht_routing.c:399
+msgid "# Entries added to routing table"
+msgstr "# Уноси су додати у табелу рутирања"
+
+#: src/dht/gnunet-service-dht_routing.c:417
+msgid "# DHT requests combined"
+msgstr "# ДХТ захтеви су комбиновани"
+
+#: src/dht/gnunet-service-xdht_neighbours.c:1398
+#, c-format
+msgid ""
+"\n"
+"SUPU %s, %s, %d,my_identity = %s"
+msgstr ""
+"\n"
+"SUPU %s, %s, %d,my_identity = %s"
+
+#: src/dht/gnunet-service-xdht_neighbours.c:1514
+#: src/dht/gnunet-service-xdht_neighbours.c:1524
+#: src/dht/gnunet-service-xdht_neighbours.c:1530
+#: src/dht/gnunet-service-xdht_neighbours.c:1536
+#: src/dht/gnunet-service-xdht_neighbours.c:1545
+#, c-format
+msgid ""
+"\n"
+"SUPU %s, %s, %d"
+msgstr ""
+"\n"
+"SUPU %s, %s, %d"
+
+#: src/dht/plugin_block_dht.c:138
+#, c-format
+msgid "Block not of type %u\n"
+msgstr "Блок није врсте %u\n"
+
+#: src/dht/plugin_block_dht.c:145
+msgid "Size mismatch for block\n"
+msgstr "Величин не одговара за блок\n"
+
+#: src/dht/plugin_block_dht.c:155
+#, c-format
+msgid "Block of type %u is malformed\n"
+msgstr "Блок врсте %u је лош\n"
+
+#: src/dns/dnsparser.c:257
+#, c-format
+msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
+msgstr "Нисам успео да претворим ДНС ИДНА „%s“ у УТФ-8: %s\n"
+
+#: src/dns/dnsparser.c:856
+#, c-format
+msgid "Failed to convert UTF-8 name `%s' to DNS IDNA format: %s\n"
+msgstr "Нисам успео да претворим УТФ-8 назив „%s“ у ДНС ИДНА формат: %s\n"
+
+#: src/dns/dnsstub.c:175
+#, c-format
+msgid "Could not bind to any port: %s\n"
+msgstr "Не могу да се вежем ни за један прикључник: %s\n"
+
+#: src/dns/dnsstub.c:295 src/dns/dnsstub.c:383
+#, c-format
+msgid "Failed to send DNS request to %s\n"
+msgstr "Нисам успео да пошаљем ДНС захтев за %s\n"
+
+#: src/dns/dnsstub.c:299
+#, c-format
+msgid "Sent DNS request to %s\n"
+msgstr "Послао сам ДНС захтев за %s\n"
+
+#: src/dns/dnsstub.c:368
+#, c-format
+msgid "Configured DNS exit `%s' is not working / valid.\n"
+msgstr "Подешени ДНС излаз „%s“ не ради / није исправан.\n"
+
+#: src/dns/dnsstub.c:440
+#, c-format
+msgid "Received DNS response that is too small (%u bytes)"
+msgstr "Примих ДНС одговор који је премали (%u бајта)"
+
+#: src/dns/gnunet-dns-monitor.c:355
+msgid "only monitor DNS queries"
+msgstr "само надгледа ДНС упите"
+
+#: src/dns/gnunet-dns-monitor.c:358
+msgid "only monitor DNS replies"
+msgstr "само надгледа ДНС одговоре"
+
+#: src/dns/gnunet-dns-monitor.c:369
+msgid "Monitor DNS queries."
+msgstr "Надгледа ДНС упите."
+
+#: src/dns/gnunet-dns-redirector.c:236
+msgid "set A records"
+msgstr "поставља A записе"
+
+#: src/dns/gnunet-dns-redirector.c:239
+msgid "set AAAA records"
+msgstr "поставља AAAA записе"
+
+#: src/dns/gnunet-dns-redirector.c:251
+msgid "Change DNS replies to point elsewhere."
+msgstr "Мења ДНС одговоре да показују негде другде."
+
+#: src/dns/gnunet-service-dns.c:456
+msgid "# DNS requests answered via TUN interface"
+msgstr "# на ДНС захтеве је одговорено путем ТУН сучеља"
+
+#: src/dns/gnunet-service-dns.c:603
+msgid "# DNS exit failed (failed to open socket)"
+msgstr "# ДНС излаз није успео (нисам успео да отворим прикључницу)"
+
+#: src/dns/gnunet-service-dns.c:714
+msgid "# External DNS response discarded (no matching request)"
+msgstr "# Спољни ДНС одговор је одбачен (нема одговарајућег захтева)"
+
+#: src/dns/gnunet-service-dns.c:792
+msgid "# Client response discarded (no matching request)"
+msgstr "# Одговор клијента је одбачен (нема одговарајућег захтева)"
+
+#: src/dns/gnunet-service-dns.c:907
+msgid "Received malformed IPv4-UDP packet on TUN interface.\n"
+msgstr "Примих лош ИПв4-УДП пакет на ТУН сучељу.\n"
+
+#: src/dns/gnunet-service-dns.c:923
+msgid "Received malformed IPv6-UDP packet on TUN interface.\n"
+msgstr "Примих лош ИПв6-УДП пакет на ТУН сучељу.\n"
+
+#: src/dns/gnunet-service-dns.c:932
+#, c-format
+msgid "Got non-IP packet with %u bytes and protocol %u from TUN\n"
+msgstr "Добих не-ИП пакет са %u бајта и протокол %u са ТУН-а\n"
+
+#: src/dns/gnunet-service-dns.c:942
+msgid "# Non-DNS UDP packet received via TUN interface"
+msgstr "# Не-ДНС УДП пакет је примљен путем ТУН сучеља"
+
+#: src/dns/gnunet-service-dns.c:1009
+msgid "# DNS requests received via TUN interface"
+msgstr "# ДНС захтеви су примљени путем ТУН сучеља"
+
+#: src/dns/gnunet-service-dns.c:1049 src/exit/gnunet-daemon-exit.c:3514
+#, c-format
+msgid "`%s' must be installed SUID, refusing to run\n"
+msgstr "„%s“ мора бити инсталиран СУИБ, одбијам да радим\n"
+
+#: src/dns/gnunet-service-dns.c:1069 src/exit/gnunet-daemon-exit.c:3571
+msgid "need a valid IPv4 or IPv6 address\n"
+msgstr "потребна је исправна ИПв4 или ИПв6 адреса\n"
+
+#: src/dv/gnunet-dv.c:169
+msgid "verbose output"
+msgstr "опширан излаз"
+
+#: src/dv/gnunet-dv.c:178
+msgid "Print information about DV state"
+msgstr "Исписује податке о ДВ стању"
+
+#: src/exit/gnunet-daemon-exit.c:802
+#, c-format
+msgid "Got duplicate service records for `%s:%u'\n"
+msgstr "Добих двоструке записе услуге за `%s:%u'\n"
+
+#: src/exit/gnunet-daemon-exit.c:853
+msgid "# Bytes transmitted via mesh channels"
+msgstr "# Бајтови су пренесени путем меш канала"
+
+#: src/exit/gnunet-daemon-exit.c:970 src/exit/gnunet-daemon-exit.c:2397
+#: src/exit/gnunet-daemon-exit.c:2654 src/vpn/gnunet-service-vpn.c:1407
+#: src/vpn/gnunet-service-vpn.c:1797 src/vpn/gnunet-service-vpn.c:1960
+msgid "# ICMPv4 packets dropped (type not allowed)"
+msgstr "# ICMPv4 пакети су одбачени (врста није дозвољена)"
+
+#: src/exit/gnunet-daemon-exit.c:1007 src/exit/gnunet-daemon-exit.c:2456
+#: src/exit/gnunet-daemon-exit.c:2713 src/vpn/gnunet-service-vpn.c:1463
+#: src/vpn/gnunet-service-vpn.c:1856 src/vpn/gnunet-service-vpn.c:1993
+msgid "# ICMPv6 packets dropped (type not allowed)"
+msgstr "# ICMPv6 пакети су одбачени (врста није дозвољена)"
+
+#: src/exit/gnunet-daemon-exit.c:1047
+msgid "# ICMP packets dropped (not allowed)"
+msgstr "# ICMP пакет је одбачен (није дозвољен)"
+
+#: src/exit/gnunet-daemon-exit.c:1054
+msgid "ICMP Packet dropped, have no matching connection information\n"
+msgstr "ICMP Пакет је одбачен, нема одговарајуће податке о вези\n"
+
+#: src/exit/gnunet-daemon-exit.c:1130
+msgid "UDP Packet dropped, have no matching connection information\n"
+msgstr "UDP Пакет је одбачен, нема одговарајуће податке о вези\n"
+
+#: src/exit/gnunet-daemon-exit.c:1204
+msgid "TCP Packet dropped, have no matching connection information\n"
+msgstr "TCP Пакет је одбачен, нема одговарајуће податке о вези\n"
+
+#: src/exit/gnunet-daemon-exit.c:1256
+msgid "# Packets received from TUN"
+msgstr "# Пакети су примљени од TUN-а"
+
+#: src/exit/gnunet-daemon-exit.c:1270
+msgid "# Bytes received from TUN"
+msgstr "# Бајтови су примљени од TUN-а"
+
+#: src/exit/gnunet-daemon-exit.c:1296
+msgid "IPv4 packet options received.  Ignored.\n"
+msgstr "Опције IPv4 пакета су примљене.  Занемарено.\n"
+
+#: src/exit/gnunet-daemon-exit.c:1323
+#, c-format
+msgid "IPv4 packet with unsupported next header %u received.  Ignored.\n"
+msgstr "IPv4 пакет са неподржаним следећим заглављем %u је примљен.  
Занемарено.\n"
+
+#: src/exit/gnunet-daemon-exit.c:1369
+#, c-format
+msgid "IPv6 packet with unsupported next header %d received.  Ignored.\n"
+msgstr "IPv6 пакет са неподржаним следећим заглављем %d је примљен.  
Занемарено.\n"
+
+#: src/exit/gnunet-daemon-exit.c:1377
+#, c-format
+msgid "Packet from unknown protocol %u received.  Ignored.\n"
+msgstr "Пакет са непознатог протокола %u је примљен.  Занемарено.\n"
+
+#: src/exit/gnunet-daemon-exit.c:1759
+msgid "# TCP packets sent via TUN"
+msgstr "# ТЦП пакети су послати путем ТУН-а"
+
+#: src/exit/gnunet-daemon-exit.c:1872
+msgid "# TCP service creation requests received via mesh"
+msgstr "# Захтеви стварања ТЦП услуге су примљени путем меша"
+
+#: src/exit/gnunet-daemon-exit.c:1875 src/exit/gnunet-daemon-exit.c:1968
+#: src/exit/gnunet-daemon-exit.c:2073 src/exit/gnunet-daemon-exit.c:2321
+#: src/exit/gnunet-daemon-exit.c:2570 src/exit/gnunet-daemon-exit.c:2859
+#: src/exit/gnunet-daemon-exit.c:2966
+msgid "# Bytes received from MESH"
+msgstr "# Бајтови су примљени од МЕША"
+
+#: src/exit/gnunet-daemon-exit.c:1909 src/exit/gnunet-daemon-exit.c:2990
+#, c-format
+msgid "No service %s found for %s on port %d!\n"
+msgstr "Ниједна услуга %s није нађена %s на прикључнику %d!\n"
+
+#: src/exit/gnunet-daemon-exit.c:1914
+msgid "# TCP requests dropped (no such service)"
+msgstr "# TCP захтеви су одбачени (нема такве услуге)"
+
+#: src/exit/gnunet-daemon-exit.c:1971
+msgid "# TCP IP-exit creation requests received via mesh"
+msgstr "# Захтеви стварања ТЦП ИП-излаза су примљени путем меша"
+
+#: src/exit/gnunet-daemon-exit.c:2076
+msgid "# TCP data requests received via mesh"
+msgstr "# Захтеви ТЦП података су примљени путем меша"
+
+#: src/exit/gnunet-daemon-exit.c:2090
+msgid "# TCP DATA requests dropped (no session)"
+msgstr "# TCP DATA захтеви су одбачени (нема сесије)"
+
+#: src/exit/gnunet-daemon-exit.c:2150
+msgid "# ICMP packets sent via TUN"
+msgstr "# ICMP пакети су послати путем TUN-а"
+
+#: src/exit/gnunet-daemon-exit.c:2324
+msgid "# ICMP IP-exit requests received via mesh"
+msgstr "# Захтеви ИЦМП ИП-излаза су примљени путем меша"
+
+#: src/exit/gnunet-daemon-exit.c:2573
+msgid "# ICMP service requests received via mesh"
+msgstr "# Захтеви ИЦМП услуге су примљени путем меша"
+
+#: src/exit/gnunet-daemon-exit.c:2639 src/vpn/gnunet-service-vpn.c:1397
+#: src/vpn/gnunet-service-vpn.c:1954
+msgid "# ICMPv4 packets dropped (impossible PT to v6)"
+msgstr "# ICMPv4 пакети су одбачени (немогуће PT за v6)"
+
+#: src/exit/gnunet-daemon-exit.c:2698 src/vpn/gnunet-service-vpn.c:1433
+#: src/vpn/gnunet-service-vpn.c:1445 src/vpn/gnunet-service-vpn.c:1844
+msgid "# ICMPv6 packets dropped (impossible PT to v4)"
+msgstr "# ICMPv6 пакети су одбачени (немогуће PT за v4)"
+
+#: src/exit/gnunet-daemon-exit.c:2748
+msgid "# UDP packets sent via TUN"
+msgstr "# UDP пакети су послати путем TUN-а"
+
+#: src/exit/gnunet-daemon-exit.c:2862
+msgid "# UDP IP-exit requests received via mesh"
+msgstr "# Захтеви УДП ИП-излаза су примљени путем меша"
+
+#: src/exit/gnunet-daemon-exit.c:2969
+msgid "# UDP service requests received via mesh"
+msgstr "# Захтеви УДП услуге су примљени путем меша"
+
+#: src/exit/gnunet-daemon-exit.c:2995
+msgid "# UDP requests dropped (no such service)"
+msgstr "# UDP захтеви су одбачени (нема такве услуге)"
+
+#: src/exit/gnunet-daemon-exit.c:3031
+msgid "# Inbound MESH channels created"
+msgstr "# Долазни МЕШ канали су створени"
+
+#: src/exit/gnunet-daemon-exit.c:3235 src/exit/gnunet-daemon-exit.c:3245
+#, c-format
+msgid "Option `%s' for domain `%s' is not formatted correctly!\n"
+msgstr "Опција „%s“ за домен „%s“ није форматирана исправна!\n"
+
+#: src/exit/gnunet-daemon-exit.c:3259 src/exit/gnunet-daemon-exit.c:3267
+#, c-format
+msgid "`%s' is not a valid port number (for domain `%s')!"
+msgstr "„%s“ није исправан број прикључника (за домен „%s“)!"
+
+#: src/exit/gnunet-daemon-exit.c:3300
+#, c-format
+msgid "No addresses found for hostname `%s' of service `%s'!\n"
+msgstr "Није нађена ниједна адрееса за назив домаћина „%s“ услуге „%s“!\n"
+
+#: src/exit/gnunet-daemon-exit.c:3314 src/exit/gnunet-daemon-exit.c:3326
+#, c-format
+msgid "Service `%s' configured for IPv4, but IPv4 is disabled!\n"
+msgstr "Услуга „%s“ је подешена за IPv4, али IPv4 је искључено!\n"
+
+#: src/exit/gnunet-daemon-exit.c:3337
+#, c-format
+msgid "No IP addresses found for hostname `%s' of service `%s'!\n"
+msgstr "Није нађена ниједна ИП адрееса за назив домаћина „%s“ услуге „%s“!\n"
+
+#: src/exit/gnunet-daemon-exit.c:3527
+msgid "This system does not support IPv4, will disable IPv4 functions despite 
them being enabled in the configuration\n"
+msgstr "Овај систем не подржава IPv4, искључиће IPv4 функције упркос томе што 
су укључене у подешавањима\n"
+
+#: src/exit/gnunet-daemon-exit.c:3535
+msgid "This system does not support IPv6, will disable IPv6 functions despite 
them being enabled in the configuration\n"
+msgstr "Овај систем не подржава IPv6, искључиће IPv6 функције упркос томе што 
су укључене у подешавањима\n"
+
+#: src/exit/gnunet-daemon-exit.c:3542
+msgid "Cannot enable IPv4 exit but disable IPv4 on TUN interface, will use 
ENABLE_IPv4=YES\n"
+msgstr "Не могу да укључим ИПв4 излаз али искључујем ИПв4 на ТУН сучељу, 
користићу „ENABLE_IPv4=ДА“\n"
+
+#: src/exit/gnunet-daemon-exit.c:3548
+msgid "Cannot enable IPv6 exit but disable IPv6 on TUN interface, will use 
ENABLE_IPv6=YES\n"
+msgstr "Не могу да укључим ИПв6 излаз али искључујем ИПв6 на ТУН сучељу, 
користићу „ENABLE_IPv6=ДА“\n"
+
+#: src/exit/gnunet-daemon-exit.c:3554 src/exit/gnunet-daemon-exit.c:3717
+#: src/pt/gnunet-daemon-pt.c:1247
+msgid "No useful service enabled.  Exiting.\n"
+msgstr "Ниједна корисна услуга није укључена.  Излазим.\n"
+
+#: src/exit/gnunet-daemon-exit.c:3664
+msgid "Must be a number"
+msgstr "Мора бити број"
+
+#: src/exit/gnunet-daemon-exit.c:3813
+msgid "Daemon to run to provide an IP exit node for the VPN"
+msgstr "Демон за покретање за обезбеђивање чвора ИП излаза за ВПН"
+
+#: src/experimentation/gnunet-daemon-experimentation.c:55
+msgid "Experimentation daemon shutting down ...\n"
+msgstr "Демон експериментисања се гаси ...\n"
+
+#: src/experimentation/gnunet-daemon-experimentation.c:77
+msgid "Experimentation daemon starting ...\n"
+msgstr "Демон експериментисања се покреће ...\n"
+
+#: src/experimentation/gnunet-daemon-experimentation.c:83
+msgid "Failed to create statistics!\n"
+msgstr "Нисам успео да направим статистику!\n"
+
+#: src/experimentation/gnunet-daemon-experimentation.c:120
+msgid "GNUnet experimentation daemon"
+msgstr "Демон експериментисања ГНУнет-а"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:241
+#, c-format
+msgid "Experiment `%s': Experiment signature is invalid\n"
+msgstr "Експеримент „%s“: Потпис експеримента је неисправан\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:250
+#, c-format
+msgid "Adding experiment `%s' running from `%s' to `%s' every %llu sec. for 
%llu sec. \n"
+msgstr "Додајем експеримент „%s“ који ради из „%s“ у „%s“ сваке %llu сек. за 
%llu сек. \n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:303
+#, c-format
+msgid "Experiment `%s': Issuer missing\n"
+msgstr "Експеримент „%s“: Недостаје издавач\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:312
+#, c-format
+msgid "Experiment `%s': Issuer invalid\n"
+msgstr "Експеримент „%s“: Неисправан издавач\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:320
+#, c-format
+msgid "Experiment `%s': Issuer not accepted!\n"
+msgstr "Експеримент „%s“: Издавач није прихваћен!\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:330
+#, c-format
+msgid "Experiment `%s': Version missing or invalid \n"
+msgstr "Експеримент „%s“: Недостаје издање или је неисправно \n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:339
+#, c-format
+msgid "Experiment `%s': Required capabilities missing \n"
+msgstr "Експеримент „%s“: Захтеване могућности недостају \n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:345
+#, c-format
+msgid "Experiment `%s': Required capabilities invalid \n"
+msgstr "Експеримент „%s“: Захтеване могућности су неисправне \n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:390
+#, c-format
+msgid "Failed to parse file `%s'\n"
+msgstr "Нисам успео да обрадим датотеку „%s“\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:420
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:452
+msgid "No valid experiment issuers configured! Set value to public keys of 
issuers! Exiting.\n"
+msgstr "Нису подешени исправни издавачи експеримента! Поставите вредност на 
јавне кључеве издавача! Излазим.\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:435
+msgid "Invalid value for public key\n"
+msgstr "Неисправна вредност за јавни кључ\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_experiments.c:473
+#, c-format
+msgid "Cannot read experiments file `%s'\n"
+msgstr "Не могу да прочитам датотеку експеримената „%s“\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_nodes.c:221
+#, c-format
+msgid "Cannot send message to peer `%s' for experiment `%s'\n"
+msgstr "Не могу да пошаљем поруку парњаку „%s“ за екперимент „%s“\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_nodes.c:309
+#, c-format
+msgid "Sending experimentation request to peer %s\n"
+msgstr "Шаљем захтев експериментисања парњаку %s\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_nodes.c:453
+#, c-format
+msgid "Added peer `%s' as active node\n"
+msgstr "Додат је парњак „%s“ као активан чвор\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_nodes.c:891
+#, c-format
+msgid "Connected to peer %s\n"
+msgstr "Повезан са парњаком „%s“\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_nodes.c:921
+#, c-format
+msgid "Disconnected from peer %s\n"
+msgstr "Прекинута је веза са парњаком „%s“\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_nodes.c:1104
+msgid "Failed to connect to CORE service!\n"
+msgstr "Нисам успео да се повежем са ЈЕЗГРЕНОМ услугом!\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_scheduler.c:108
+#, c-format
+msgid "Peer `%s' did not respond to request for experiment `%s'\n"
+msgstr "Парњак „%s“ није одговорио на захтев за експериментом „%s“\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_scheduler.c:143
+#, c-format
+msgid "Starting inbound experiment `%s' with peer `%s'\n"
+msgstr "Покрећем експеримент долазности „%s“ са парњаком „%s“\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_scheduler.c:276
+#, c-format
+msgid "Starting outbound experiment `%s' with peer `%s'\n"
+msgstr "Покрећем експеримент одлазности „%s“ са парњаком „%s“\n"
+
+#: src/experimentation/gnunet-daemon-experimentation_scheduler.c:294
+#, c-format
+msgid "Received %s message from peer %s for experiment `%s'\n"
+msgstr "Примих %s поруку са парњака %s за експеримент „%s“\n"
+
+#: src/fragmentation/defragmentation.c:270
+msgid "# acknowledgements sent for fragment"
+msgstr "# потврде су послате за делић"
+
+#: src/fragmentation/defragmentation.c:456
+msgid "# fragments received"
+msgstr "# делићи су примљени"
+
+#: src/fragmentation/defragmentation.c:521
+msgid "# duplicate fragments received"
+msgstr "# двоструки делићи су примљени"
+
+#: src/fragmentation/defragmentation.c:534
+msgid "# messages defragmented"
+msgstr "# делићи порука су уједињени"
+
+#: src/fragmentation/fragmentation.c:208
+msgid "# fragments transmitted"
+msgstr "# делићи су пренесени"
+
+#: src/fragmentation/fragmentation.c:211
+msgid "# fragments retransmitted"
+msgstr "# делићи су поново пренесени"
+
+#: src/fragmentation/fragmentation.c:237
+msgid "# fragments wrap arounds"
+msgstr "# делићи се преламају около"
+
+#: src/fragmentation/fragmentation.c:281
+msgid "# messages fragmented"
+msgstr "# поруке су расцепкане"
+
+#: src/fragmentation/fragmentation.c:284
+msgid "# total size of fragmented messages"
+msgstr "# укупна величина расцепканих порука"
+
+#: src/fragmentation/fragmentation.c:405
+msgid "# fragment acknowledgements received"
+msgstr "# потврде делића су примљене"
+
+#: src/fragmentation/fragmentation.c:411
+msgid "# bits removed from fragmentation ACKs"
+msgstr "# битови су уклоњени из АЦК-ова расцепканости"
+
+#: src/fragmentation/fragmentation.c:435
+msgid "# fragmentation transmissions completed"
+msgstr "# преноси расцепканости су завршени"
+
+#: src/fs/fs_api.c:465
+#, c-format
+msgid "Could not open file `%s': %s"
+msgstr "Не могу да отворим датотеку „%s“: %s"
+
+#: src/fs/fs_api.c:474
+#, c-format
+msgid "Could not read file `%s': %s"
+msgstr "Не могу да читам датотеку „%s“: %s"
+
+#: src/fs/fs_api.c:480
+#, c-format
+msgid "Short read reading from file `%s'!"
+msgstr "Кратко читање читајући из датотеке „%s“!"
+
+#: src/fs/fs_api.c:1066
+#, c-format
+msgid "Failed to resume publishing information `%s': %s\n"
+msgstr "Нисам успео да наставим са подацима објављивања „%s“: %s\n"
+
+#: src/fs/fs_api.c:1571
+#, c-format
+msgid "Failure while resuming publishing operation `%s': %s\n"
+msgstr "Неуспех приликом настављања са радњом објављивања „%s“: %s\n"
+
+#: src/fs/fs_api.c:1585
+#, c-format
+msgid "Failed to resume publishing operation `%s': %s\n"
+msgstr "Нисам успео да наставим са радњом објављивања „%s“: %s\n"
+
+#: src/fs/fs_api.c:2242
+#, c-format
+msgid "Failure while resuming unindexing operation `%s': %s\n"
+msgstr "Неуспех приликом настављања са радњом поништавања индексирања „%s“: 
%s\n"
+
+#: src/fs/fs_api.c:2252
+#, c-format
+msgid "Failed to resume unindexing operation `%s': %s\n"
+msgstr "Нисам успео да наставим са радњом поништавања индексирања „%s“: %s\n"
+
+#: src/fs/fs_api.c:2378 src/fs/fs_api.c:2619
+#, c-format
+msgid "Failed to resume sub-download `%s': %s\n"
+msgstr "Нисам успео да наставим са садржаним преузимањем „%s“: %s\n"
+
+#: src/fs/fs_api.c:2395
+#, c-format
+msgid "Failed to resume sub-search `%s': %s\n"
+msgstr "Нисам успео да наставим са садржаном претрагом „%s“: %s\n"
+
+#: src/fs/fs_api.c:2409 src/fs/fs_api.c:2428 src/fs/fs_api.c:2911
+#, c-format
+msgid "Failure while resuming search operation `%s': %s\n"
+msgstr "Неуспех приликом настављања са радњом претраге „%s“: %s\n"
+
+#: src/fs/fs_api.c:2610
+#, c-format
+msgid "Failed to resume sub-download `%s': could not open file `%s'\n"
+msgstr "Нисам успео да наставим са садржаним преузимањем „%s“: не могу да 
отворим датотеку „%s“\n"
+
+#: src/fs/fs_api.c:2855
+msgid "Could not resume running search, will resume as paused search\n"
+msgstr "Не могу да наставим са покренутом претрагом, наставићу као са 
паузираном претрагом\n"
+
+#: src/fs/fs_api.c:2949
+#, c-format
+msgid "Failure while resuming download operation `%s': %s\n"
+msgstr "Неуспех приликом настављања са радњом преузимања „%s“: %s\n"
+
+#: src/fs/fs_directory.c:208
+msgid "MAGIC mismatch.  This is not a GNUnet directory.\n"
+msgstr "МАГИЈА не одговара.  Ово није директоријум ГНУнет-а.\n"
+
+#: src/fs/fs_download.c:322
+msgid "Recursive downloads of directories larger than 4 GB are not supported 
on 32-bit systems\n"
+msgstr "Дубинска преузимања директоријума већих од 4 GB нису подржана на 
32-битним системима\n"
+
+#: src/fs/fs_download.c:342
+msgid "Directory too large for system address space\n"
+msgstr "Директоријум је превелик за простор адресу система\n"
+
+#: src/fs/fs_download.c:523 src/fs/fs_download.c:535
+#, c-format
+msgid "Failed to open file `%s' for writing"
+msgstr "Нисам успео да отворим датотеку „%s“ за писање"
+
+#: src/fs/fs_download.c:905
+#, c-format
+msgid "Failed to create directory for recursive download of `%s'\n"
+msgstr "Нисам успео да направим директоријум за дубинско преузимање „%s“\n"
+
+#: src/fs/fs_download.c:987
+#, c-format
+msgid "Internal error or bogus download URI (expected %u bytes at depth %u and 
offset %llu/%llu, got %u bytes)"
+msgstr "Унутрашња грешка или лажна путања преузимања (очекивах %u бајта на 
дубини %u и померају %llu/%llu, добих %u бајта)"
+
+#: src/fs/fs_download.c:1013
+msgid "internal error decrypting content"
+msgstr "унутрашња грешка дешифровања садржаја"
+
+#: src/fs/fs_download.c:1036
+#, c-format
+msgid "Download failed: could not open file `%s': %s"
+msgstr "Преузимање није успело: не могу да отворим датотеку „%s“: %s"
+
+#: src/fs/fs_download.c:1046
+#, c-format
+msgid "Failed to seek to offset %llu in file `%s': %s"
+msgstr "Нисам успео да пређем на померај %llu у датотеци „%s“: %s"
+
+#: src/fs/fs_download.c:1055
+#, c-format
+msgid "Failed to write block of %u bytes at offset %llu in file `%s': %s"
+msgstr "Нисам успео да запишем блок од %u бајта на померају %llu у датотеци 
„%s“: %s"
+
+#: src/fs/fs_download.c:1153
+msgid "internal error decoding tree"
+msgstr "унутрашња грешка декодирања стабла"
+
+#: src/fs/fs_download.c:1944
+msgid "Invalid URI"
+msgstr "Неисправан УРИ"
+
+#: src/fs/fs_getopt.c:192
+#, c-format
+msgid "Unknown metadata type in metadata option `%s'.  Using metadata type 
`unknown' instead.\n"
+msgstr "Непозната врста метаподатака у опцији метаподатака „%s“.  Користим 
уместо тога користим врсту метаподатака `unknown'.\n"
+
+#: src/fs/fs_list_indexed.c:90
+#, c-format
+msgid "Failed to receive response for `%s' request from `%s' service.\n"
+msgstr "Нисам успео да примим одговор за „%s“ захтев од „%s“ услуге.\n"
+
+#: src/fs/fs_list_indexed.c:113
+#, c-format
+msgid "Failed to receive valid response for `%s' request from `%s' service.\n"
+msgstr "Нисам успео да примим исправан одговор за „%s“ захтев од „%s“ 
услуге.\n"
+
+#: src/fs/fs_list_indexed.c:151
+#, c-format
+msgid "Failed to not connect to `%s' service.\n"
+msgstr "Нисам успео да се не повежем са „%s“ услугом.\n"
+
+#: src/fs/fs_misc.c:126
+#, c-format
+msgid "Did not find mime type `%s' in extension list.\n"
+msgstr "Нисам успео да нађем миме врсту „%s“ на списку проширења.\n"
+
+#: src/fs/fs_namespace.c:207
+#, c-format
+msgid "Failed to open `%s' for writing: %s\n"
+msgstr "Нисам успео да отворим „%s“ ради уписа: %s\n"
+
+#: src/fs/fs_namespace.c:229
+#, c-format
+msgid "Failed to write `%s': %s\n"
+msgstr "Нисам успео да пишем „%s“: %s\n"
+
+#: src/fs/fs_namespace.c:320
+#, c-format
+msgid "Failed to read `%s': %s\n"
+msgstr "Нисам успео да прочитам „%s“: %s\n"
+
+#: src/fs/fs_namespace.c:466
+msgid "Failed to connect to datastore."
+msgstr "Нисам успео да се повежем са смештајем података."
+
+#: src/fs/fs_publish.c:125 src/fs/fs_publish.c:415
+#, c-format
+msgid "Publishing failed: %s"
+msgstr "Објављивање није успело: %s"
+
+#: src/fs/fs_publish.c:667 src/fs/fs_publish.c:684 src/fs/fs_publish.c:723
+#: src/fs/fs_publish.c:744 src/fs/fs_publish.c:768 src/fs/fs_publish.c:914
+#, c-format
+msgid "Can not index file `%s': %s.  Will try to insert instead.\n"
+msgstr "Не могу да индексирам датотеку „%s“: %s.  Покушаћу да је уметнем.\n"
+
+#: src/fs/fs_publish.c:669
+msgid "timeout on index-start request to `fs' service"
+msgstr "истекло је време на захтев почетка индекса за „fs“ услугу"
+
+#: src/fs/fs_publish.c:681
+msgid "unknown error"
+msgstr "непозната грешка"
+
+#: src/fs/fs_publish.c:725
+msgid "failed to compute hash"
+msgstr "нисам успео да прорачунам хеш"
+
+#: src/fs/fs_publish.c:745
+msgid "filename too long"
+msgstr "назив датотеке је предуг"
+
+#: src/fs/fs_publish.c:770
+msgid "could not connect to `fs' service"
+msgstr "не могу да се повежем са „fs“ услугом"
+
+#: src/fs/fs_publish.c:793
+#, c-format
+msgid "Failed to get file identifiers for `%s'\n"
+msgstr "Нисам успео да добавим одреднике датотеке за „%s“\n"
+
+#: src/fs/fs_publish.c:862
+#, c-format
+msgid "Recursive upload failed at `%s': %s"
+msgstr "Дубински утовар није успео на „%s“: %s"
+
+#: src/fs/fs_publish.c:868
+#, c-format
+msgid "Recursive upload failed: %s"
+msgstr "Дубински утовар није успео: %s"
+
+#: src/fs/fs_publish.c:915
+msgid "needs to be an actual file"
+msgstr "треба да буде актуелна датотека"
+
+#: src/fs/fs_publish.c:1151
+#, c-format
+msgid "Insufficient space for publishing: %s"
+msgstr "Недовољно простора за објављивање: %s"
+
+#: src/fs/fs_publish.c:1243
+#, c-format
+msgid "Reserving space for %u entries and %llu bytes for publication\n"
+msgstr "Резервишем простор за %u уноса и %llu бајта за објављивање\n"
+
+#: src/fs/fs_publish_ksk.c:219
+msgid "Could not connect to datastore."
+msgstr "Не могу да се повежем са смештајем података."
+
+#: src/fs/fs_publish_ublock.c:219
+msgid "Internal error."
+msgstr "Унутрашња грешка."
+
+#: src/fs/fs_search.c:813
+#, c-format
+msgid "Failed to parse URI `%s': %s\n"
+msgstr "Нисам успео да обрадим УРИ „%s“: %s\n"
+
+#: src/fs/fs_search.c:872
+#, c-format
+msgid "Got result with unknown block type `%d', ignoring"
+msgstr "Добих резултат са непознатом врстом блока „%d“, занемарујем"
+
+#: src/fs/fs_unindex.c:59
+msgid "Failed to find given position in file"
+msgstr "Нисам успео да нађем дати положај у датотеци"
+
+#: src/fs/fs_unindex.c:64
+msgid "Failed to read file"
+msgstr "Нисам успео да прочитам датотеку"
+
+#: src/fs/fs_unindex.c:234
+msgid "Unexpected time for a response from `fs' service."
+msgstr "Неочекивано време за одговор са „fs“ услуге."
+
+#: src/fs/fs_unindex.c:242
+msgid "Timeout waiting for `fs' service."
+msgstr "Истекло је време чекања на „fs“ услугу."
+
+#: src/fs/fs_unindex.c:250
+msgid "Invalid response from `fs' service."
+msgstr "Неисправан одговор са „fs“ услуге."
+
+#: src/fs/fs_unindex.c:291
+msgid "Failed to connect to FS service for unindexing."
+msgstr "Нисам успео да се повежем на ФС услугу зарад поништавања индексирања."
+
+#: src/fs/fs_unindex.c:347 src/fs/fs_unindex.c:359
+msgid "Failed to get KSKs from directory scan."
+msgstr "Нисам успео да добавим KSKs из скенирања директоријума."
+
+#: src/fs/fs_unindex.c:355
+#, c-format
+msgid "Internal error scanning `%s'.\n"
+msgstr "Унутрашња грешка скенирања „%s“.\n"
+
+#: src/fs/fs_unindex.c:414
+#, c-format
+msgid "Failed to remove UBlock: %s\n"
+msgstr "Нисам успео да уклоним „UBlock“: %s\n"
+
+#: src/fs/fs_unindex.c:562 src/fs/fs_unindex.c:626
+msgid "Failed to connect to `datastore' service."
+msgstr "Нисам успео да се повежем са „datastore“ услугом."
+
+#: src/fs/fs_unindex.c:639
+msgid "Failed to open file for unindexing."
+msgstr "Нисам успео да отворим датотеку за поништавање индексирања."
+
+#: src/fs/fs_unindex.c:673
+msgid "Failed to compute hash of file."
+msgstr "Нисам успео да израчунам хеш датотеке."
+
+#: src/fs/fs_uri.c:222
+#, no-c-format
+msgid "`%' must be followed by HEX number"
+msgstr "„%“ мора бити праћено HEX бројем"
+
+#: src/fs/fs_uri.c:281
+msgid "Malformed KSK URI (must not begin or end with `+')"
+msgstr "Лоша KSK УРИ (не сме почињати или завршавати се са знаком +)"
+
+#: src/fs/fs_uri.c:299
+msgid "`++' not allowed in KSK URI"
+msgstr "++ није дозвољено у KSK УРИ-ју"
+
+#: src/fs/fs_uri.c:306
+msgid "Quotes not balanced in KSK URI"
+msgstr "Квоте нису уравнотежене у КСК путањи"
+
+#: src/fs/fs_uri.c:376
+msgid "Malformed SKS URI"
+msgstr "Лоша SKS УРИ"
+
+#: src/fs/fs_uri.c:419 src/fs/fs_uri.c:434
+msgid "Malformed CHK URI"
+msgstr "Лоша CHK УРИ"
+
+#: src/fs/fs_uri.c:512 src/fs/fs_uri.c:580
+msgid "SKS URI malformed"
+msgstr "SKS УРИ је лоше"
+
+#: src/fs/fs_uri.c:527 src/fs/fs_uri.c:537
+msgid "LOC URI malformed"
+msgstr "LOC УРИ је лоше"
+
+#: src/fs/fs_uri.c:545 src/fs/fs_uri.c:553
+msgid "LOC URI malformed (could not decode public key)"
+msgstr "LOC УРИ је лоше (не могу да декодирам јавни кључ)"
+
+#: src/fs/fs_uri.c:559
+msgid "SKS URI malformed (could not find signature)"
+msgstr "SKS УРИ је лоше (не могу да нашем потпис)"
+
+#: src/fs/fs_uri.c:565 src/fs/fs_uri.c:574
+msgid "SKS URI malformed (could not decode signature)"
+msgstr "SKS УРИ је лоше (не могу да декодирам потпис)"
+
+#: src/fs/fs_uri.c:586
+msgid "SKS URI malformed (could not parse expiration time)"
+msgstr "SKS УРИ је лоше (не могу да обрадим време истека)"
+
+#: src/fs/fs_uri.c:598
+msgid "SKS URI malformed (signature failed validation)"
+msgstr "SKS УРИ је лоше (потврђивање потписа није успело)"
+
+#: src/fs/fs_uri.c:636
+msgid "Unrecognized URI type"
+msgstr "Непозната УРИ врста"
+
+#: src/fs/fs_uri.c:860
+msgid "Lacking key configuration settings.\n"
+msgstr "Недостају поставке подешавања кључа.\n"
+
+#: src/fs/fs_uri.c:866
+#, c-format
+msgid "Could not access hostkey file `%s'.\n"
+msgstr "Не могу да приступим датотеци кључа домаћина „%s“.\n"
+
+#: src/fs/fs_uri.c:1050 src/fs/fs_uri.c:1077
+msgid "No keywords specified!\n"
+msgstr "Нису наведене речи кључа!\n"
+
+#: src/fs/fs_uri.c:1083
+msgid "Number of double-quotes not balanced!\n"
+msgstr "Број двоструких квота које нису уравнотежене!\n"
+
+#: src/fs/gnunet-auto-share.c:236
+#, c-format
+msgid "Failed to load state: %s\n"
+msgstr "Нисам успео да учитам стање: %s\n"
+
+#: src/fs/gnunet-auto-share.c:289 src/fs/gnunet-auto-share.c:299
+#: src/fs/gnunet-auto-share.c:309
+#, c-format
+msgid "Failed to save state to file %s\n"
+msgstr "Нисам успео да сачувам стање у датотеку „%s“\n"
+
+#: src/fs/gnunet-auto-share.c:401
+#, c-format
+msgid "Publication of `%s' done\n"
+msgstr "Објављивање „%s“ је готово\n"
+
+#: src/fs/gnunet-auto-share.c:488
+#, c-format
+msgid "Publishing `%s'\n"
+msgstr "Објављујем „%s“\n"
+
+#: src/fs/gnunet-auto-share.c:497
+#, c-format
+msgid "Failed to run `%s'\n"
+msgstr "Нисам успео да покренем „%s“\n"
+
+#: src/fs/gnunet-auto-share.c:686
+#, c-format
+msgid "You must specify one and only one directory name for automatic 
publication.\n"
+msgstr "Морате навести један и само један назив директоријума за самостално 
објављивање.\n"
+
+#: src/fs/gnunet-auto-share.c:737 src/fs/gnunet-publish.c:824
+msgid "set the desired LEVEL of sender-anonymity"
+msgstr "поставља жељени НИВО анонимности пошиљаоца"
+
+#: src/fs/gnunet-auto-share.c:741 src/fs/gnunet-publish.c:828
+msgid "disable adding the creation time to the metadata of the uploaded file"
+msgstr "искључује додавање времена стварања метаподацима утоварене датотеке"
+
+#: src/fs/gnunet-auto-share.c:744 src/fs/gnunet-publish.c:831
+msgid "do not use libextractor to add keywords or metadata"
+msgstr "не користи „libextractor“ за додавање кључних речи или метаподатака"
+
+#: src/fs/gnunet-auto-share.c:747 src/fs/gnunet-publish.c:855
+msgid "specify the priority of the content"
+msgstr "наводи приоритет садржаја"
+
+#: src/fs/gnunet-auto-share.c:750 src/fs/gnunet-publish.c:862
+msgid "set the desired replication LEVEL"
+msgstr "поставља жељени НИВО одоговарања"
+
+#: src/fs/gnunet-auto-share.c:770
+msgid "Automatically publish files from a directory on GNUnet"
+msgstr "Самостално објављује датотеке из директоријума на ГНУнет-у"
+
+#: src/fs/gnunet-daemon-fsprofiler.c:660
+msgid "Daemon to use file-sharing to measure its performance."
+msgstr "Демон за коришћење дељења датотеке за мерење њене учинковитости."
+
+#: src/fs/gnunet-directory.c:49
+#, c-format
+msgid "\t<original file embedded in %u bytes of meta data>\n"
+msgstr "\t<изворна датотека угнеждена у %u бајта метаподатака>\n"
+
+#: src/fs/gnunet-directory.c:94
+#, c-format
+msgid "Directory `%s' meta data:\n"
+msgstr "Метаподаци директоријума „%s“:\n"
+
+#: src/fs/gnunet-directory.c:97
+#, c-format
+msgid "Directory `%s' contents:\n"
+msgstr "Садржај директоријума „%s“:\n"
+
+#: src/fs/gnunet-directory.c:132
+msgid "You must specify a filename to inspect.\n"
+msgstr "Морате навести назив датотеке за преглед.\n"
+
+#: src/fs/gnunet-directory.c:145
+#, c-format
+msgid "Failed to read directory `%s'\n"
+msgstr "Нисам успео да прочитам директоријум „%s“\n"
+
+#: src/fs/gnunet-directory.c:154
+#, c-format
+msgid "`%s' is not a GNUnet directory\n"
+msgstr "„%s“ није ГНУнет директоријум\n"
+
+#: src/fs/gnunet-directory.c:183
+msgid "Display contents of a GNUnet directory"
+msgstr "Приказује садржај ГНУнет директоријума"
+
+#: src/fs/gnunet-download.c:137
+#, c-format
+msgid "Starting download `%s'.\n"
+msgstr "Покрећем преузимање „%s“.\n"
+
+#: src/fs/gnunet-download.c:147
+msgid "<unknown time>"
+msgstr "<непознато време>"
+
+#: src/fs/gnunet-download.c:157
+#, c-format
+msgid "Downloading `%s' at %llu/%llu (%s remaining, %s/s). Block took %s to 
download\n"
+msgstr "Преузимам „%s“ при %llu/%llu (преостаје %s, %s/сек). Блоку је требало 
%s за преузимање\n"
+
+#: src/fs/gnunet-download.c:179
+#, c-format
+msgid "Error downloading: %s.\n"
+msgstr "Грешка преузимања: %s.\n"
+
+#: src/fs/gnunet-download.c:194
+#, c-format
+msgid "Downloading `%s' done (%s/s).\n"
+msgstr "Преузимање „%s“ је готово (%s/сек).\n"
+
+#: src/fs/gnunet-download.c:209 src/fs/gnunet-publish.c:286
+#: src/fs/gnunet-search.c:200 src/fs/gnunet-unindex.c:108
+#, c-format
+msgid "Unexpected status: %d\n"
+msgstr "Неочекивано стање: %d\n"
+
+#: src/fs/gnunet-download.c:234
+msgid "You need to specify a URI argument.\n"
+msgstr "Треба да наведете УРИ аргумент.\n"
+
+#: src/fs/gnunet-download.c:240 src/fs/gnunet-publish.c:665
+#, c-format
+msgid "Failed to parse URI: %s\n"
+msgstr "Нисам успео да обрадим УРИ: %s\n"
+
+#: src/fs/gnunet-download.c:247
+msgid "Only CHK or LOC URIs supported.\n"
+msgstr "Подржани су само CHK или LOC УРИ.\n"
+
+#: src/fs/gnunet-download.c:254
+msgid "Target filename must be specified.\n"
+msgstr "Назив циљне датотеке мора бити наведен.\n"
+
+#: src/fs/gnunet-download.c:268 src/fs/gnunet-publish.c:797
+#: src/fs/gnunet-search.c:250 src/fs/gnunet-unindex.c:140
+#, c-format
+msgid "Could not initialize `%s' subsystem.\n"
+msgstr "Не могу да покренем „%s“ субсистем.\n"
+
+#: src/fs/gnunet-download.c:305 src/fs/gnunet-search.c:289
+msgid "set the desired LEVEL of receiver-anonymity"
+msgstr "поставља жељени НИВО анонимности примаоца"
+
+#: src/fs/gnunet-download.c:308
+msgid "delete incomplete downloads (when aborted with CTRL-C)"
+msgstr "брише недовршена преузимања (када се прекине са КТРЛ-Ц)"
+
+#: src/fs/gnunet-download.c:311 src/fs/gnunet-search.c:292
+msgid "only search the local peer (no P2P network search)"
+msgstr "тражи само локалног парњака (без претраге П2П мреже)"
+
+#: src/fs/gnunet-download.c:314
+msgid "write the file to FILENAME"
+msgstr "уписује датотеку у НАЗИВ_ДАТОТЕКЕ"
+
+#: src/fs/gnunet-download.c:318
+msgid "set the maximum number of parallel downloads that is allowed"
+msgstr "поставља највећи број паралелних преузимања који је дозвољен"
+
+#: src/fs/gnunet-download.c:322
+msgid "set the maximum number of parallel requests for blocks that is allowed"
+msgstr "поставља највећи број паралелних захтева за блокове који је дозвољен"
+
+#: src/fs/gnunet-download.c:325
+msgid "download a GNUnet directory recursively"
+msgstr "преузима ГНУнет директоријум дубински"
+
+#: src/fs/gnunet-download.c:339
+msgid "Download files from GNUnet using a GNUnet CHK or LOC URI 
(gnunet://fs/chk/...)"
+msgstr "Преузима датотеке са ГНУнет-а користећи ГНУнет CHK или LOC УРИ 
(gnunet://fs/chk/...)"
+
+#: src/fs/gnunet-fs.c:117
+msgid "print a list of all indexed files"
+msgstr "исписује списак свих индексираних датотека"
+
+#: src/fs/gnunet-fs.c:127
+msgid "Special file-sharing operations"
+msgstr "Посебне радње дељења датотека"
+
+#: src/fs/gnunet-fs-profiler.c:193
+msgid "run the experiment with COUNT peers"
+msgstr "одрађује експеримент са БРОЈ парњака"
+
+#: src/fs/gnunet-fs-profiler.c:196
+msgid "specifies name of a file with the HOSTS the testbed should use"
+msgstr "наводи назив датотеке са ДОМАЋИНИМА коју пробно место треба да користи"
+
+#: src/fs/gnunet-fs-profiler.c:199
+msgid "automatically terminate experiment after DELAY"
+msgstr "самостално окончава експеримент након ЗАСТОЈА"
+
+#: src/fs/gnunet-fs-profiler.c:208
+msgid "run a testbed to measure file-sharing performance"
+msgstr "покреће пробно место за мерење учинковитости дељења датотека"
+
+#: src/fs/gnunet-publish.c:231 src/fs/gnunet-publish.c:243
+#, c-format
+msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
+msgstr "Објављујем „%s“ при %llu/%llu (преостаје %s)\n"
+
+#: src/fs/gnunet-publish.c:250
+#, c-format
+msgid "Error publishing: %s.\n"
+msgstr "Грешка објављивања: %s.\n"
+
+#: src/fs/gnunet-publish.c:260
+#, c-format
+msgid "Publishing `%s' done.\n"
+msgstr "Објављивање „%s“ је готово.\n"
+
+#: src/fs/gnunet-publish.c:264
+#, c-format
+msgid "URI is `%s'.\n"
+msgstr "УРИ је „%s“.\n"
+
+#: src/fs/gnunet-publish.c:283
+msgid "Cleanup after abort complete.\n"
+msgstr "Чисти након обављеног прекидања.\n"
+
+#: src/fs/gnunet-publish.c:401
+#, c-format
+msgid "Meta data for file `%s' (%s)\n"
+msgstr "Мета подаци за датотеку „%s“ (%s)\n"
+
+#: src/fs/gnunet-publish.c:403
+#, c-format
+msgid "Keywords for file `%s' (%s)\n"
+msgstr "Кључне речи за датотеку „%s“ (%s)\n"
+
+#: src/fs/gnunet-publish.c:542
+msgid "Could not publish\n"
+msgstr "Не могу да објавим\n"
+
+#: src/fs/gnunet-publish.c:565
+msgid "Could not start publishing.\n"
+msgstr "Не могу да покренем објављивање.\n"
+
+#: src/fs/gnunet-publish.c:598
+#, c-format
+msgid "Scanning directory `%s'.\n"
+msgstr "Скенирам директоријум „%s“.\n"
+
+#: src/fs/gnunet-publish.c:600
+#, c-format
+msgid "Scanning file `%s'.\n"
+msgstr "Скенирам датотеку „%s“.\n"
+
+#: src/fs/gnunet-publish.c:605
+#, c-format
+msgid "There was trouble processing file `%s', skipping it.\n"
+msgstr "Било је проблема обраде датотеке „%s“, прескачем је.\n"
+
+#: src/fs/gnunet-publish.c:610
+msgid "Preprocessing complete.\n"
+msgstr "Предодбрада је завршена.\n"
+
+#: src/fs/gnunet-publish.c:614
+#, c-format
+msgid "Extracting meta data from file `%s' complete.\n"
+msgstr "Извлачење мета података из датотеке „%s“ је завршено.\n"
+
+#: src/fs/gnunet-publish.c:618
+msgid "Meta data extraction has finished.\n"
+msgstr "Извлачење мета података је завршено.\n"
+
+#: src/fs/gnunet-publish.c:625
+msgid "Internal error scanning directory.\n"
+msgstr "Унутрашња грешка скенирања директоријума.\n"
+
+#: src/fs/gnunet-publish.c:656
+#, c-format
+msgid "Selected pseudonym `%s' unknown\n"
+msgstr "Изабрани псеудоним „%s“ је непознат\n"
+
+#: src/fs/gnunet-publish.c:682
+#, c-format
+msgid "Failed to access `%s': %s\n"
+msgstr "Нисам успео да приступим „%s“: %s\n"
+
+#: src/fs/gnunet-publish.c:695
+msgid "Failed to start meta directory scanner.  Is gnunet-helper-publish-fs 
installed?\n"
+msgstr "Нисам успео да покренем скенер мета директоријума.  Да ли је 
инсталиран „gnunet-helper-publish-fs“?\n"
+
+#: src/fs/gnunet-publish.c:747
+#, c-format
+msgid "Cannot extract metadata from a URI!\n"
+msgstr "Не могу да извучем метаподатке из УРИ-ја!\n"
+
+#: src/fs/gnunet-publish.c:754
+#, c-format
+msgid "You must specify one and only one filename for insertion.\n"
+msgstr "Морате навести један и само један назив датотеке за уметање.\n"
+
+#: src/fs/gnunet-publish.c:760
+#, c-format
+msgid "You must NOT specify an URI and a filename.\n"
+msgstr "НЕ можете навести УРИ и назив датотеке.\n"
+
+#: src/fs/gnunet-publish.c:768 src/vpn/gnunet-vpn.c:209
+#, c-format
+msgid "Option `%s' is required when using option `%s'.\n"
+msgstr "Опција „%s“ се захтева приликом коришћења опције „%s“.\n"
+
+#: src/fs/gnunet-publish.c:778 src/fs/gnunet-publish.c:785
+#: src/transport/gnunet-transport.c:1284 src/transport/gnunet-transport.c:1314
+#: src/transport/gnunet-transport.c:1344
+#, c-format
+msgid "Option `%s' makes no sense without option `%s'.\n"
+msgstr "Опција „%s“ нема смисла без опције „%s“.\n"
+
+#: src/fs/gnunet-publish.c:835
+msgid "print list of extracted keywords that would be used, but do not perform 
upload"
+msgstr "исписује списак извучених кључних речи које ће се користити, али не 
обавља утовар"
+
+#: src/fs/gnunet-publish.c:839
+msgid "add an additional keyword for the top-level file or directory (this 
option can be specified multiple times)"
+msgstr "додаје додатну кључну реч за датотеку највишег нивоа или директоријум 
(ова опција се може навести више пута)"
+
+#: src/fs/gnunet-publish.c:843
+msgid "set the meta-data for the given TYPE to the given VALUE"
+msgstr "поставља мета-податке за дату ВРСТУ за дату ВРЕДНОСТ"
+
+#: src/fs/gnunet-publish.c:846
+msgid "do not index, perform full insertion (stores entire file in encrypted 
form in GNUnet database)"
+msgstr "не индексира, обавља пуно уметање (смешта читаву датотеку у шифрованом 
облику у ГНУнет базу података)"
+
+#: src/fs/gnunet-publish.c:851
+msgid "specify ID of an updated version to be published in the future (for 
namespace insertions only)"
+msgstr "наводи ИБ ажурираног издања које ће бити објављено у будућности (само 
за уметања називног простора)"
+
+#: src/fs/gnunet-publish.c:859
+msgid "publish the files under the pseudonym NAME (place file into namespace)"
+msgstr "објављује датотеке под псеудонимом НАЗИВ (ставља датотеку у називни 
простор)"
+
+#: src/fs/gnunet-publish.c:865
+msgid "only simulate the process but do not do any actual publishing (useful 
to compute URIs)"
+msgstr "само опонаша процес али не чини никакво актуелно објављивање (корисно 
за прорачун УРИ-ја)"
+
+#: src/fs/gnunet-publish.c:869
+msgid "set the ID of this version of the publication (for namespace insertions 
only)"
+msgstr "поставља ИБ овог издања објављивања (само за уметања називног 
простора)"
+
+#: src/fs/gnunet-publish.c:873
+msgid "URI to be published (can be used instead of passing a file to add 
keywords to the file with the respective URI)"
+msgstr "УРИ који ће бити објављен (може се користити уместо прослеђивања 
датотеке за додавање кључних речи датотеци са одговарајућим УРИ-јем)"
+
+#: src/fs/gnunet-publish.c:889
+msgid "Publish a file or directory on GNUnet"
+msgstr "Објављује датотеку или директоријум на ГНУнет-у"
+
+#: src/fs/gnunet-search.c:114
+#, c-format
+msgid "Failed to write directory with search results to `%s'\n"
+msgstr "Нисам успео да пишем директоријум са резултатима претраге за „%s“\n"
+
+#: src/fs/gnunet-search.c:191
+#, c-format
+msgid "Error searching: %s.\n"
+msgstr "Грешка претраге: %s.\n"
+
+#: src/fs/gnunet-search.c:240
+msgid "Could not create keyword URI from arguments.\n"
+msgstr "Не могу да створим УРИ кључне речи из аргумената.\n"
+
+#: src/fs/gnunet-search.c:264
+msgid "Could not start searching.\n"
+msgstr "Не могу да покренем претрагу.\n"
+
+#: src/fs/gnunet-search.c:295
+msgid "write search results to file starting with PREFIX"
+msgstr "пише резултате претраге у датотеку која почиње са ПРЕФИКСОМ"
+
+#: src/fs/gnunet-search.c:298
+msgid "automatically terminate search after DELAY"
+msgstr "самостално окончава претрагу након ЗАСТОЈА"
+
+#: src/fs/gnunet-search.c:305
+msgid "automatically terminate search after VALUE results are found"
+msgstr "самостално окончава претрагу након што су пронађени резултати ВРЕДНОСТ"
+
+#: src/fs/gnunet-search.c:316
+msgid "Search GNUnet for files that were published on GNUnet"
+msgstr "Претражује ГНУнет за датотекама које су објављене на ГНУнет-у"
+
+#: src/fs/gnunet-service-fs.c:271
+msgid "# running average P2P latency (ms)"
+msgstr "# радно просечно П2П кашњење (ms)"
+
+#: src/fs/gnunet-service-fs.c:326 src/fs/gnunet-service-fs.c:539
+msgid "# Loopback routes suppressed"
+msgstr "# Руте петље су потиснуте"
+
+#: src/fs/gnunet-service-fs.c:639 src/hostlist/gnunet-daemon-hostlist.c:288
+#: src/topology/gnunet-daemon-topology.c:1254
+#: src/topology/gnunet-daemon-topology.c:1261
+#, c-format
+msgid "Failed to connect to `%s' service.\n"
+msgstr "Нисам успео да се повежем са „%s“ услугом.\n"
+
+#: src/fs/gnunet-service-fs_cp.c:682
+msgid "# migration stop messages received"
+msgstr "# поруке заустављања миграције су примљене"
+
+#: src/fs/gnunet-service-fs_cp.c:686
+#, c-format
+msgid "Migration of content to peer `%s' blocked for %s\n"
+msgstr "Премештање садржаја за парњака „%s“ је блокирано за %s\n"
+
+#: src/fs/gnunet-service-fs_cp.c:721
+msgid "# replies transmitted to other peers"
+msgstr "# одговори су пренесени другим парњацима"
+
+#: src/fs/gnunet-service-fs_cp.c:727
+msgid "# replies dropped"
+msgstr "# одговори су одбачени"
+
+#: src/fs/gnunet-service-fs_cp.c:752 src/fs/gnunet-service-fs_cp.c:1301
+msgid "# P2P searches active"
+msgstr "# П2П претраге су активне"
+
+#: src/fs/gnunet-service-fs_cp.c:845
+msgid "# artificial delays introduced (ms)"
+msgstr "# вештачка кашњења су уведена (ms)"
+
+#: src/fs/gnunet-service-fs_cp.c:898
+msgid "# replies dropped due to type mismatch"
+msgstr "# одговори су одбачени услед непоклапања врсте"
+
+#: src/fs/gnunet-service-fs_cp.c:906
+msgid "# replies received for other peers"
+msgstr "# одговори су примљени за друге парњаке"
+
+#: src/fs/gnunet-service-fs_cp.c:920
+msgid "# replies dropped due to insufficient cover traffic"
+msgstr "# одговори су одбачени услед недовољног покривног саобраћаја"
+
+#: src/fs/gnunet-service-fs_cp.c:958
+msgid "# P2P searches destroyed due to ultimate reply"
+msgstr "# П2П претраге су уништене због крајњег одговора"
+
+#: src/fs/gnunet-service-fs_cp.c:1026
+msgid "# requests done for free (low load)"
+msgstr "# захтева је готово за џабе (слабо учитавање)"
+
+#: src/fs/gnunet-service-fs_cp.c:1051
+msgid "# request dropped, priority insufficient"
+msgstr "# захтева је одбачено, недовољно хитности"
+
+#: src/fs/gnunet-service-fs_cp.c:1061
+msgid "# requests done for a price (normal load)"
+msgstr "# захтева је готово за цену (нормално учитавање)"
+
+#: src/fs/gnunet-service-fs_cp.c:1139
+msgid "# GET requests received (from other peers)"
+msgstr "# „GET“ захтеви су примљени (од других парњака)"
+
+#: src/fs/gnunet-service-fs_cp.c:1173
+msgid "# requests dropped due to initiator not being connected"
+msgstr "# захтеви су одбачени јер покретач није повезан"
+
+#: src/fs/gnunet-service-fs_cp.c:1195
+msgid "# requests dropped due to missing reverse route"
+msgstr "# захтеви су одбачени јер недостаје повратна рута"
+
+#: src/fs/gnunet-service-fs_cp.c:1246
+msgid "# requests dropped due TTL underflow"
+msgstr "# захтеви су одбачени услед ниског ТТЛ тока"
+
+#: src/fs/gnunet-service-fs_cp.c:1270
+msgid "# requests dropped due to higher-TTL request"
+msgstr "# захтеви су одбачени услед вишег-ТТЛ захтева"
+
+#: src/fs/gnunet-service-fs_cp.c:1299
+msgid "# P2P query messages received and processed"
+msgstr "# поруке П2П упита су примљене и обрађене"
+
+#: src/fs/gnunet-service-fs_cp.c:1670
+msgid "# migration stop messages sent"
+msgstr "# поруке зауставља миграције су послате"
+
+#: src/fs/gnunet-service-fs_indexing.c:130
+#: src/fs/gnunet-service-fs_indexing.c:181
+#, c-format
+msgid "Could not open `%s'.\n"
+msgstr "Не могу да отворим „%s“.\n"
+
+#: src/fs/gnunet-service-fs_indexing.c:142
+#, c-format
+msgid "Error writing `%s'.\n"
+msgstr "Грешка писања „%s“.\n"
+
+#: src/fs/gnunet-service-fs_indexing.c:237
+#, c-format
+msgid "Index request received for file `%s' is already indexed as `%s'.  
Permitting anyway.\n"
+msgstr "Примљени захтев индексирања за датотеку „%s“ је већ индексиран „%s“.  
Ипак одобравам.\n"
+
+#: src/fs/gnunet-service-fs_indexing.c:275
+#, c-format
+msgid "Hash mismatch trying to index file `%s' which has hash `%s'\n"
+msgstr "Неодговарајући хеш приликом покушаја индексирања датотеке „%s“ која 
има хеш „%s“\n"
+
+#: src/fs/gnunet-service-fs_indexing.c:477
+#, c-format
+msgid "Failed to delete bogus block: %s\n"
+msgstr "Нисам успео да обришем лажни блок: %s\n"
+
+#: src/fs/gnunet-service-fs_indexing.c:542
+msgid "# index blocks removed: original file inaccessible"
+msgstr "# блокови индекси су уклоњени: изворна датотека је неприступачна"
+
+#: src/fs/gnunet-service-fs_indexing.c:557
+#, c-format
+msgid "Could not access indexed file `%s' (%s) at offset %llu: %s\n"
+msgstr "Не могу да приступим индексираној датотеци „%s“ (%s) на померају %llu: 
%s\n"
+
+#: src/fs/gnunet-service-fs_indexing.c:559
+msgid "not indexed"
+msgstr "није индексирано"
+
+#: src/fs/gnunet-service-fs_indexing.c:574
+#, c-format
+msgid "Indexed file `%s' changed at offset %llu\n"
+msgstr "Индексирана датотека „%s“ је измењена на померају %llu\n"
+
+#: src/fs/gnunet-service-fs_lc.c:202 src/fs/gnunet-service-fs_lc.c:368
+msgid "# client searches active"
+msgstr "# претраге клијента су активне"
+
+#: src/fs/gnunet-service-fs_lc.c:256
+msgid "# replies received for local clients"
+msgstr "# одговори су примљени за локалне клијенте"
+
+#: src/fs/gnunet-service-fs_lc.c:327
+msgid "# client searches received"
+msgstr "# претраге клијента су примљене"
+
+#: src/fs/gnunet-service-fs_lc.c:362
+msgid "# client searches updated (merged content seen list)"
+msgstr "# претраге клијента су освежене (стопљени садржај виђеног списка)"
+
+#: src/fs/gnunet-service-fs_mesh_client.c:484
+msgid "# replies received via mesh"
+msgstr "# одговори су примљени путем меша"
+
+#: src/fs/gnunet-service-fs_mesh_client.c:498
+msgid "# replies received via mesh dropped"
+msgstr "# одговори су примљени путем одбаченог меша"
+
+#: src/fs/gnunet-service-fs_mesh_server.c:260
+msgid "# Blocks transferred via mesh"
+msgstr "# Блокови су пренесени путем меша"
+
+#: src/fs/gnunet-service-fs_mesh_server.c:352
+msgid "# queries received via mesh not answered"
+msgstr "# упити су примљени путем неодговореног меша"
+
+#: src/fs/gnunet-service-fs_mesh_server.c:432
+msgid "# queries received via mesh"
+msgstr "# упути су примљени путем меша"
+
+#: src/fs/gnunet-service-fs_mesh_server.c:476
+msgid "# mesh client connections rejected"
+msgstr "# везе меш клијента су одбијене"
+
+#: src/fs/gnunet-service-fs_mesh_server.c:482
+#: src/fs/gnunet-service-fs_mesh_server.c:522
+msgid "# mesh connections active"
+msgstr "# меш везе су радне"
+
+#: src/fs/gnunet-service-fs_pe.c:269
+msgid "# average retransmission delay (ms)"
+msgstr "# просечан застој поновног преноса (ms)"
+
+#: src/fs/gnunet-service-fs_pe.c:400
+msgid "# transmission failed (core has no bandwidth)"
+msgstr "# пренос није успео (језгро нема пропусни опсег)"
+
+#: src/fs/gnunet-service-fs_pe.c:433
+msgid "# query messages sent to other peers"
+msgstr "# поруке упита су послате другим парњацима"
+
+#: src/fs/gnunet-service-fs_pe.c:484
+msgid "# delay heap timeout (ms)"
+msgstr "# истекло је време застоја скупине (ms)"
+
+#: src/fs/gnunet-service-fs_pe.c:492
+msgid "# query plans executed"
+msgstr "# план упита је извршен"
+
+#: src/fs/gnunet-service-fs_pe.c:552
+msgid "# requests merged"
+msgstr "# захтеви су стопљени"
+
+#: src/fs/gnunet-service-fs_pe.c:560
+msgid "# requests refreshed"
+msgstr "# захтеви су освежени"
+
+#: src/fs/gnunet-service-fs_pe.c:616 src/fs/gnunet-service-fs_pe.c:700
+#: src/fs/gnunet-service-fs_pe.c:771
+msgid "# query plan entries"
+msgstr "# пропитује обичне уносе"
+
+#: src/fs/gnunet-service-fs_pr.c:311
+msgid "# Pending requests created"
+msgstr "# Захтеви на чекању су створени"
+
+#: src/fs/gnunet-service-fs_pr.c:394 src/fs/gnunet-service-fs_pr.c:645
+msgid "# Pending requests active"
+msgstr "# Захтеви на чекању су активни"
+
+#: src/fs/gnunet-service-fs_pr.c:814
+msgid "# replies received and matched"
+msgstr "# одговори су примљени и подударени"
+
+#: src/fs/gnunet-service-fs_pr.c:844
+msgid "# duplicate replies discarded (bloomfilter)"
+msgstr "# двоструки одговори су одбачени (bloomfilter)"
+
+#: src/fs/gnunet-service-fs_pr.c:853
+msgid "# irrelevant replies discarded"
+msgstr "# небитни одговори су одбачени"
+
+#: src/fs/gnunet-service-fs_pr.c:867
+#, c-format
+msgid "Unsupported block type %u\n"
+msgstr "Неподржана врста блока %u\n"
+
+#: src/fs/gnunet-service-fs_pr.c:880
+msgid "# results found locally"
+msgstr "# резултати су пронађени локално"
+
+#: src/fs/gnunet-service-fs_pr.c:1001
+msgid "# Datastore `PUT' failures"
+msgstr "# Неуспеси „СТАВИ“ смештаја података"
+
+#: src/fs/gnunet-service-fs_pr.c:1029
+msgid "# storage requests dropped due to high load"
+msgstr "# захтеви смештаја су одбачени услед високог утовара"
+
+#: src/fs/gnunet-service-fs_pr.c:1064
+msgid "# Replies received from DHT"
+msgstr "# Одговори су примљени од DHT-а"
+
+#: src/fs/gnunet-service-fs_pr.c:1192
+msgid "# Replies received from MESH"
+msgstr "# Одговори су примљени од MESH-а"
+
+#: src/fs/gnunet-service-fs_pr.c:1244
+#, c-format
+msgid "Datastore lookup already took %s!\n"
+msgstr "Претрага смештаја података је већ узела „%s“!\n"
+
+#: src/fs/gnunet-service-fs_pr.c:1264
+#, c-format
+msgid "On-demand lookup already took %s!\n"
+msgstr "Претрага на-захтев је већ узела „%s“!\n"
+
+#: src/fs/gnunet-service-fs_pr.c:1311
+msgid "# Datastore lookups concluded (no results)"
+msgstr "# Претраге смештаја података су закључене (нема резултата)"
+
+#: src/fs/gnunet-service-fs_pr.c:1326
+msgid "# Datastore lookups concluded (seen all)"
+msgstr "# Претраге смештаја података су закључене (видех све)"
+
+#: src/fs/gnunet-service-fs_pr.c:1335
+msgid "# Datastore lookups aborted (more than MAX_RESULTS)"
+msgstr "# Претраге смештаја података су прекинуте (више од „MAX_RESULTS“)"
+
+#: src/fs/gnunet-service-fs_pr.c:1350
+msgid "# requested DBLOCK or IBLOCK not found"
+msgstr "# захтевани DBLOCK или IBLOCK нису нађени"
+
+#: src/fs/gnunet-service-fs_pr.c:1364
+msgid "# on-demand blocks matched requests"
+msgstr "# блокови на-захтев одговарају захтевима"
+
+#: src/fs/gnunet-service-fs_pr.c:1377
+msgid "# on-demand lookups performed successfully"
+msgstr "# претраге на-захтев су обављене успешно"
+
+#: src/fs/gnunet-service-fs_pr.c:1382
+msgid "# on-demand lookups failed"
+msgstr "# претраге на-захтев нису успеле"
+
+#: src/fs/gnunet-service-fs_pr.c:1409 src/fs/gnunet-service-fs_pr.c:1449
+#: src/fs/gnunet-service-fs_pr.c:1590
+msgid "# Datastore lookups concluded (error queueing)"
+msgstr "# Претраге смештаја података су закључене (грешка стављања у ред)"
+
+#: src/fs/gnunet-service-fs_pr.c:1467
+msgid "# Datastore lookups concluded (found last result)"
+msgstr "# Претраге смештаја података су закључене (нађох последњи резултат)"
+
+#: src/fs/gnunet-service-fs_pr.c:1478
+msgid "# Datastore lookups concluded (load too high)"
+msgstr "# Претраге смештаја података су закључене (утовар је превелик)"
+
+#: src/fs/gnunet-service-fs_pr.c:1566
+msgid "# Datastore lookups initiated"
+msgstr "# Претраге смештаја података су покренуте"
+
+#: src/fs/gnunet-service-fs_pr.c:1651
+msgid "# GAP PUT messages received"
+msgstr "# поруке ЈАЗ СТАВИ су примљене"
+
+#: src/fs/gnunet-service-fs_push.c:631
+msgid "time required, content pushing disabled"
+msgstr "време је затражено, гурање садржаја је искључено"
+
+#: src/fs/gnunet-unindex.c:89
+#, c-format
+msgid "Unindexing at %llu/%llu (%s remaining)\n"
+msgstr "Поништавам индексирање при %llu/%llu (преостаје %s)\n"
+
+#: src/fs/gnunet-unindex.c:95
+#, c-format
+msgid "Error unindexing: %s.\n"
+msgstr "Грешка поништавања индексирања: %s.\n"
+
+#: src/fs/gnunet-unindex.c:100
+msgid "Unindexing done.\n"
+msgstr "Поништавање индексирања је готово.\n"
+
+#: src/fs/gnunet-unindex.c:130
+#, c-format
+msgid "You must specify one and only one filename for unindexing.\n"
+msgstr "Морате навести један и само један назив датотеке за поништавање 
индексирања.\n"
+
+#: src/fs/gnunet-unindex.c:147
+msgid "Could not start unindex operation.\n"
+msgstr "Не могу да започнем радњу поништавања индексирања.\n"
+
+#: src/fs/gnunet-unindex.c:179
+msgid "Unindex a file that was previously indexed with gnunet-publish."
+msgstr "Поништава индексирање датотеке која је претходно била индексирана са 
„gnunet-publish“."
+
+#: src/gns/gns_api.c:393
+msgid "Failed to deserialize lookup reply from GNS service!\n"
+msgstr "Нисам успео да десеријализујем одговор претраге са ГНС услуге!\n"
+
+#: src/gns/gnunet-bcd.c:123
+#, c-format
+msgid "Refusing `%s' request to HTTP server\n"
+msgstr "Одбијам „%s“ захтев за ХТТП сервер\n"
+
+#: src/gns/gnunet-bcd.c:355 src/hostlist/hostlist-server.c:567
+#, c-format
+msgid "Invalid port number %llu.  Exiting.\n"
+msgstr "Неисправан број прикључника %llu.  Излазим.\n"
+
+#: src/gns/gnunet-bcd.c:360
+#, c-format
+msgid "Businesscard HTTP server starts on %llu\n"
+msgstr "ХТТП сервер пословне картице почиње на %llu\n"
+
+#: src/gns/gnunet-bcd.c:374
+#, c-format
+msgid "Could not start businesscard HTTP server on port %u\n"
+msgstr "Не могу да покренем ХТТП сервер пословне картице на прикључнику %u\n"
+
+#: src/gns/gnunet-bcd.c:519
+msgid "Run HTTP serve on port PORT (default is 8888)"
+msgstr "Покрећем ХТТП сервер на прикључнику ПРИКЉУЧНИК (основно је 8888)"
+
+#: src/gns/gnunet-bcd.c:531
+msgid "GNUnet HTTP server to create business cards"
+msgstr "ГНУнет ХТТП сервер за стварање бизнис картица"
+
+#: src/gns/gnunet-dns2gns.c:228
+msgid "Failed to pack DNS response into UDP packet!\n"
+msgstr "Нисам успео да упакујем ДНС одговор у УДП пакет!\n"
+
+#: src/gns/gnunet-dns2gns.c:400
+#, c-format
+msgid "Cannot parse DNS request from %s\n"
+msgstr "Не могу да обрадим ДНС захтев од „%s“\n"
+
+#: src/gns/gnunet-dns2gns.c:416
+#, c-format
+msgid "Received malformed DNS request from %s\n"
+msgstr "Примих лош ДНС захтев од „%s“\n"
+
+#: src/gns/gnunet-dns2gns.c:424
+#, c-format
+msgid "Received unsupported DNS request from %s\n"
+msgstr "Примих неподржан ДНС захтев од „%s“\n"
+
+#: src/gns/gnunet-dns2gns.c:701
+msgid "No ego configured for `dns2gns` subsystem\n"
+msgstr "Није подешен его за „dns2gns“ подсистем\n"
+
+#: src/gns/gnunet-dns2gns.c:727
+msgid "No DNS server specified!\n"
+msgstr "Није наведен ДНС сервер!\n"
+
+#: src/gns/gnunet-dns2gns.c:749
+msgid "No valid GNS zone specified!\n"
+msgstr "Није наведена исправна ГНС зона!\n"
+
+#: src/gns/gnunet-dns2gns.c:770
+msgid "IP of recursive DNS resolver to use (required)"
+msgstr "ИП дубинског ДНС решавача за коришћење (потребно)"
+
+#: src/gns/gnunet-dns2gns.c:773
+msgid "Authoritative FCFS suffix to use (optional); default: fcfs.zkey.eu"
+msgstr "Ауторитативни ФЦФС суфикс за коришћење (изборно); основно: 
fcfs.zkey.eu"
+
+#: src/gns/gnunet-dns2gns.c:776
+msgid "Authoritative DNS suffix to use (optional); default: zkey.eu"
+msgstr "Ауторитативни ДНС суфикс за коришћење (изборно); основно: zkey.eu"
+
+#: src/gns/gnunet-dns2gns.c:779
+msgid "UDP port to listen on for inbound DNS requests; default: 53"
+msgstr "УДП прикључник на коме ће ослушкивати за долазним ДНС захтевима; 
основно: 53"
+
+#: src/gns/gnunet-dns2gns.c:782
+msgid "Public key of the GNS zone to use (overrides default)"
+msgstr "Јавни кључ ГНС зоне за коришћење (преписује основно)"
+
+#: src/gns/gnunet-dns2gns.c:795
+msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
+msgstr "Посредник ДНС-до-ГНС ГНУнет-а (ДНС сервер)"
+
+#: src/gns/gnunet-gns.c:227
+#, c-format
+msgid "Please specify name to lookup!\n"
+msgstr "Наведите назив за тражење!\n"
+
+#: src/gns/gnunet-gns.c:308
+#, c-format
+msgid "Ego for `%s' not found, cannot perform lookup.\n"
+msgstr "Нисам нашао его за „%s“, не могу да обавим претрагу.\n"
+
+#: src/gns/gnunet-gns.c:347 src/gns/gnunet-gns-helper-service-w32.c:798
+#, c-format
+msgid "Ego for `gns-master' not found, cannot perform lookup.  Did you run 
gnunet-gns-import.sh?\n"
+msgstr "Нисам нашао его за „gns-master“, не могу да обавим претрагу.  Да ли 
сте покренули „gnunet-gns-import.sh“?\n"
+
+#: src/gns/gnunet-gns.c:386 src/gns/gnunet-gns-helper-service-w32.c:828
+#, c-format
+msgid "Failed to connect to GNS\n"
+msgstr "Нисам успео да се повежем са ГНС-ом\n"
+
+#: src/gns/gnunet-gns.c:399
+#, c-format
+msgid "Public key `%s' is not well-formed\n"
+msgstr "Јавни кључ „%s“ није добро оформљен\n"
+
+#: src/gns/gnunet-gns.c:449
+msgid "Lookup a record for the given name"
+msgstr "Претражује запис за датим називом"
+
+#: src/gns/gnunet-gns.c:452
+msgid "Specify the type of the record to lookup"
+msgstr "Наводи врсту записа за претраживање"
+
+#: src/gns/gnunet-gns.c:455
+msgid "Specify timeout for the lookup"
+msgstr "Наводи време истека за претраживање"
+
+#: src/gns/gnunet-gns.c:458
+msgid "No unneeded output"
+msgstr "Нема непотребног излаза"
+
+#: src/gns/gnunet-gns.c:461
+msgid "Specify the public key of the zone to lookup the record in"
+msgstr "Наводи јавни кључ зоне у којој ће се тражити запис"
+
+#: src/gns/gnunet-gns.c:464
+msgid "Specify the name of the ego of the zone to lookup the record in"
+msgstr "Наводи назив егоа зоне у којој ће се тражити запис"
+
+#: src/gns/gnunet-gns.c:478
+msgid "GNUnet GNS resolver tool"
+msgstr "Алат ГНУнет ГНС решавача"
+
+#: src/gns/gnunet-gns-helper-service-w32.c:768
+#, c-format
+msgid "Ego for `gns-short' not found. This is not really fatal, but i'll 
pretend that it is and refuse to perform a lookup.  Did you run 
gnunet-gns-import.sh?\n"
+msgstr "Нисам нашао „gns-short“. То и није баш кобно, али ћу се ја претварати 
да јесте и одбићу да обавим претраживање.  Да ли сте покренули 
„gnunet-gns-import.sh“?\n"
+
+#: src/gns/gnunet-gns-helper-service-w32.c:838
+#, c-format
+msgid "Failed to connect to identity service\n"
+msgstr "Нисам успео да се повежем са услугом идентитета\n"
+
+#: src/gns/gnunet-gns-import.c:479
+msgid "This program will import some GNS authorities into your GNS namestore."
+msgstr "Овај програм ће увести неке ГНС ауторитете у ваш ГНС смештај назива."
+
+#: src/gns/gnunet-gns-proxy.c:105 src/hostlist/hostlist-client.c:469
+#: src/hostlist/hostlist-client.c:683 src/hostlist/hostlist-client.c:689
+#: src/hostlist/hostlist-client.c:741 src/hostlist/hostlist-client.c:750
+#: src/hostlist/hostlist-client.c:871 src/hostlist/hostlist-client.c:963
+#: src/hostlist/hostlist-client.c:968
+#: src/transport/plugin_transport_http_client.c:1062
+#: src/transport/plugin_transport_http_client.c:1077
+#, c-format
+msgid "%s failed at %s:%d: `%s'\n"
+msgstr "„%s“ није успело на %s:%d: „%s“\n"
+
+#: src/gns/gnunet-gns-proxy.c:833
+#, c-format
+msgid "Unsupported CURL SSL backend %d\n"
+msgstr "Неподржан CURL SSL позадинац %d\n"
+
+#: src/gns/gnunet-gns-proxy.c:856
+#, c-format
+msgid "Failed to fetch CN from cert: %s\n"
+msgstr "Нисам успео да довучем ЦН из уверења: %s\n"
+
+#: src/gns/gnunet-gns-proxy.c:879
+#, c-format
+msgid "Failed to initialize DANE: %s\n"
+msgstr "Нисам успео да покренем ДАНЕ: %s\n"
+
+#: src/gns/gnunet-gns-proxy.c:892
+#, c-format
+msgid "Failed to parse DANE record: %s\n"
+msgstr "Нисам успео да обрадим ДАНЕ запис: %s\n"
+
+#: src/gns/gnunet-gns-proxy.c:907
+#, c-format
+msgid "Failed to verify TLS connection using DANE: %s\n"
+msgstr "Нисам успео да потврдим ТЛС везу користећи ДАНЕ: %s\n"
+
+#: src/gns/gnunet-gns-proxy.c:917
+#, c-format
+msgid "Failed DANE verification failed with GnuTLS verify status code: %u\n"
+msgstr "Неуспела ДАНЕ провера није успела са кодом стања ГнуТЛС провере: %u\n"
+
+#: src/gns/gnunet-gns-proxy.c:941
+#, c-format
+msgid "SSL certificate subject name (%s) does not match `%s'\n"
+msgstr "Назив субјекта ССЛ уверења (%s) не одговара „%s“\n"
+
+#: src/gns/gnunet-gns-proxy.c:1086
+#, c-format
+msgid "Cookie domain `%s' supplied by server is invalid\n"
+msgstr "Домен колачића „%s“ које је доставио сервер је неисправан\n"
+
+#: src/gns/gnunet-gns-proxy.c:1602
+#, c-format
+msgid "Unsupported HTTP method `%s'\n"
+msgstr "Неподржан ХТТП метод „%s“\n"
+
+#: src/gns/gnunet-gns-proxy.c:1973
+#, c-format
+msgid "Unable to import private key from file `%s'\n"
+msgstr "Не могу да увезем приватни кључ из датотеке „%s“\n"
+
+#: src/gns/gnunet-gns-proxy.c:2003
+#, c-format
+msgid "Unable to import certificate %s\n"
+msgstr "Не могу да увезем уверење „%s“\n"
+
+#: src/gns/gnunet-gns-proxy.c:2177
+#, c-format
+msgid "Failed to start HTTPS server for `%s'\n"
+msgstr "Нисам успео да покренем ХТТПС сервер за „%s“\n"
+
+#: src/gns/gnunet-gns-proxy.c:2196
+msgid "Failed to pass client to MHD\n"
+msgstr "Нисам успео да проследим клијента МХД-у\n"
+
+#: src/gns/gnunet-gns-proxy.c:2504
+#, c-format
+msgid "Unsupported socks version %d\n"
+msgstr "Неподржано издање прикључнице %d\n"
+
+#: src/gns/gnunet-gns-proxy.c:2533
+#, c-format
+msgid "Unsupported socks command %d\n"
+msgstr "Неподржана наредба прикључнице %d\n"
+
+#: src/gns/gnunet-gns-proxy.c:2551 src/gns/gnunet-gns-proxy.c:2580
+msgid "SSL connection to plain IPv4 address requested\n"
+msgstr "ССЛ веза за обичну ИПв4 адресу је захтевана\n"
+
+#: src/gns/gnunet-gns-proxy.c:2631
+#, c-format
+msgid "Unsupported socks address type %d\n"
+msgstr "Неподржана врста адресе прикључнице %d\n"
+
+#: src/gns/gnunet-gns-proxy.c:2970
+msgid "No ego configured for `shorten-zone`\n"
+msgstr "Его није подешен за „shorten-zone“\n"
+
+#: src/gns/gnunet-gns-proxy.c:3010
+#, c-format
+msgid "No ego configured for `%s`\n"
+msgstr "Није подешен его за `%s`\n"
+
+#: src/gns/gnunet-gns-proxy.c:3072
+#, c-format
+msgid "Failed to load SSL/TLS key and certificate from `%s'\n"
+msgstr "Нисам успео да учитам ССЛ/ТЛС кључ и уверење из „%s“\n"
+
+#: src/gns/gnunet-gns-proxy.c:3113
+msgid "listen on specified port (default: 7777)"
+msgstr "ослушкиван на наведеном прикључнику (основно: 7777)"
+
+#: src/gns/gnunet-gns-proxy.c:3116
+msgid "pem file to use as CA"
+msgstr "пем датотека за коришћење као издавач уверења"
+
+#: src/gns/gnunet-gns-proxy.c:3135
+msgid "GNUnet GNS proxy"
+msgstr "ГНУнет ГНС посредник"
+
+#: src/gns/gnunet-service-gns.c:862
+msgid "Failed to connect to the namestore!\n"
+msgstr "Нисам успео да се повежем са смештајем назива!\n"
+
+#: src/gns/gnunet-service-gns.c:870
+msgid "Failed to connect to the namecache!\n"
+msgstr "Нисам успео да се повежем са оставом назива!\n"
+
+#: src/gns/gnunet-service-gns.c:903
+msgid "Could not connect to DHT!\n"
+msgstr "Не могу да се повежем на ДХТ!\n"
+
+#: src/gns/gnunet-service-gns.c:919
+msgid "valid public key required"
+msgstr "исправан јавни кључ се захтева"
+
+#: src/gns/gnunet-service-gns_interceptor.c:263
+msgid "Error converting GNS response to DNS response!\n"
+msgstr "Грешка претварања ГНС одговора у ДНС одговор!\n"
+
+#: src/gns/gnunet-service-gns_interceptor.c:369
+msgid "Failed to connect to the DNS service!\n"
+msgstr "Нисам успео да се повежем са ДНС услугом!\n"
+
+#: src/gns/gnunet-service-gns_resolver.c:816
+msgid "Failed to parse DNS response\n"
+msgstr "Нисам успео да обрадим ДНС одговор\n"
+
+#: src/gns/gnunet-service-gns_resolver.c:958
+#, c-format
+msgid "Skipping record of unsupported type %d\n"
+msgstr "Прескачем запис неподржане врсте %d\n"
+
+#: src/gns/gnunet-service-gns_resolver.c:1317
+#, c-format
+msgid "GNS lookup resulted in DNS name that is too long (`%s')\n"
+msgstr "ГНС претраживање је резултирало ДНС називом који је предуг („%s“)\n"
+
+#: src/gns/gnunet-service-gns_resolver.c:1817
+msgid "GNS lookup recursion failed (no delegation record found)\n"
+msgstr "Дубачење ГНС претраге није успело (нисам нашао запис изасланства)\n"
+
+#: src/gns/gnunet-service-gns_resolver.c:1841
+#, c-format
+msgid "Failed to cache GNS resolution: %s\n"
+msgstr "Нисам успео да сместим у оставу ГНС резолуцију: %s\n"
+
+#: src/gns/gnunet-service-gns_resolver.c:2123
+#, c-format
+msgid "Zone %s was revoked, resolution fails\n"
+msgstr "Зона %s је опозвана, резолуција није успела\n"
+
+#: src/gns/gnunet-service-gns_resolver.c:2272
+#, c-format
+msgid "Hostname `%s' is not well-formed, resolution fails\n"
+msgstr "Назив домаћина „%s“ није лепо оформљен, резолуција није успела\n"
+
+#: src/gns/plugin_gnsrecord_gns.c:151
+#, c-format
+msgid "Unable to parse PKEY record `%s'\n"
+msgstr "Не могу да обрадим „PKEY“ запис „%s“\n"
+
+#: src/gns/plugin_gnsrecord_gns.c:180
+#, c-format
+msgid "Unable to parse GNS2DNS record `%s'\n"
+msgstr "Не могу да обрадим „GNS2DNS“ запис „%s“\n"
+
+#: src/gns/plugin_gnsrecord_gns.c:201
+#, c-format
+msgid "Failed to serialize GNS2DNS record with value `%s'\n"
+msgstr "Нисам успео да серијализујем ГНС2ДНС запис са вредношћу „%s“\n"
+
+#: src/gns/plugin_gnsrecord_gns.c:217
+#, c-format
+msgid "Unable to parse VPN record string `%s'\n"
+msgstr "Не могу да обрадим ниску ВПН записа „%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:293
+#, c-format
+msgid "Unable to parse IPv4 address `%s'\n"
+msgstr "Не могу да обрадим ИПв4 адресу „%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:314
+#, c-format
+msgid "Failed to serialize NS record with value `%s'\n"
+msgstr "Нисам успео да серијализујем НС запис са вредношћу „%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:336
+#, c-format
+msgid "Failed to serialize CNAME record with value `%s'\n"
+msgstr "Нисам успео да серијализујем ЦНАЗИВ запис са вредношћу „%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:420
+#, c-format
+msgid "Failed to serialize CERT record with %u bytes\n"
+msgstr "Нисам успео да серијализујем УВЕР запис са %u бајта\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:452
+#, c-format
+msgid "Unable to parse SOA record `%s'\n"
+msgstr "Не могу да обрадим „SOA“ запис „%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:471
+#, c-format
+msgid "Failed to serialize SOA record with mname `%s' and rname `%s'\n"
+msgstr "Нисам успео да серијализујем СОА запис са називом „%s“ и р-називом 
„%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:494
+#, c-format
+msgid "Failed to serialize PTR record with value `%s'\n"
+msgstr "Нисам успео да серијализујем ПТР запис са вредношћу „%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:514
+#, c-format
+msgid "Unable to parse MX record `%s'\n"
+msgstr "Не могу да обрадим „MX“ запис „%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:529
+#, c-format
+msgid "Failed to serialize MX record with hostname `%s'\n"
+msgstr "Нисам успео да серијализујем МИкс запис са називом домаћина „%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:549
+#, c-format
+msgid "Unable to parse IPv6 address `%s'\n"
+msgstr "Не могу да обрадим ИПв6 адресу „%s“\n"
+
+#: src/gnsrecord/plugin_gnsrecord_dns.c:567
+#, c-format
+msgid "Unable to parse TLSA record string `%s'\n"
+msgstr "Не могу да обрадим ниску ТЛСА записа „%s“\n"
+
+#: src/hello/gnunet-hello.c:123
+msgid "Call with name of HELLO file to modify.\n"
+msgstr "Позив са називом датотеке „HELLO“ за мењање.\n"
+
+#: src/hello/gnunet-hello.c:129
+#, c-format
+msgid "Error accessing file `%s': %s\n"
+msgstr "Грешка приступа датотеци „%s“: %s\n"
+
+#: src/hello/gnunet-hello.c:137
+#, c-format
+msgid "File `%s' is too big to be a HELLO\n"
+msgstr "Датотека „%s“ је превелика да би била „HELLO“\n"
+
+#: src/hello/gnunet-hello.c:144
+#, c-format
+msgid "File `%s' is too small to be a HELLO\n"
+msgstr "Датотека „%s“ је премала да би била „HELLO“\n"
+
+#: src/hello/gnunet-hello.c:154 src/hello/gnunet-hello.c:183
+#, c-format
+msgid "Error opening file `%s': %s\n"
+msgstr "Грешка отварања датотеке „%s“: %s\n"
+
+#: src/hello/gnunet-hello.c:170
+#, c-format
+msgid "Did not find well-formed HELLO in file `%s'\n"
+msgstr "Нисам нашао лепо формирано „HELLO“ у датотеци „%s“\n"
+
+#: src/hello/gnunet-hello.c:195
+#, c-format
+msgid "Error writing HELLO to file `%s': %s\n"
+msgstr "Грешка писања „HELLO“-а у датотеку „%s“: %s\n"
+
+#: src/hello/gnunet-hello.c:203
+#, c-format
+msgid "Modified %u addresses \n"
+msgstr "Измењених адреса — %u \n"
+
+#: src/hello/hello.c:944
+msgid "Failed to parse HELLO message: missing expiration time\n"
+msgstr "Нисам успео да обрадим „HELLO“ поруку: недостаје време истека\n"
+
+#: src/hello/hello.c:953
+msgid "Failed to parse HELLO message: invalid expiration time\n"
+msgstr "Нисам успео да обрадим „HELLO“ поруку: неисправно време истека\n"
+
+#: src/hello/hello.c:963
+msgid "Failed to parse HELLO message: malformed\n"
+msgstr "Нисам успео да обрадим „HELLO“ поруку: лоша\n"
+
+#: src/hello/hello.c:973
+msgid "Failed to parse HELLO message: missing transport plugin\n"
+msgstr "Нисам успео да обрадим „HELLO“ поруку: недостаје прикључак преноса\n"
+
+#: src/hello/hello.c:990
+#, c-format
+msgid "Plugin `%s' not found\n"
+msgstr "Нисам нашао прикључак „%s“\n"
+
+#: src/hello/hello.c:999
+#, c-format
+msgid "Plugin `%s' does not support URIs yet\n"
+msgstr "Прикључак „%s“ још не подржава УРИ-је\n"
+
+#: src/hello/hello.c:1018
+#, c-format
+msgid "Failed to parse `%s' as an address for plugin `%s'\n"
+msgstr "Нисам успео да обрадим „%s“ као адресу за прикључак „%s“\n"
+
+#: src/hostlist/gnunet-daemon-hostlist.c:259
+msgid "None of the functions for the hostlist daemon were enabled.  I have no 
reason to run!\n"
+msgstr "Ниједна од функција за демона списка домаћина није укључена.  Немам 
разлога да радим било шта!\n"
+
+#: src/hostlist/gnunet-daemon-hostlist.c:308
+msgid "advertise our hostlist to other peers"
+msgstr "рекламира наш списак домаћина другим парњацима"
+
+#: src/hostlist/gnunet-daemon-hostlist.c:313
+msgid "bootstrap using hostlists (it is highly recommended that you always use 
this option)"
+msgstr "почетно подизање помоћу спискова домаћина (врло се препоручује да увек 
користите ову опцију)"
+
+#: src/hostlist/gnunet-daemon-hostlist.c:316
+msgid "enable learning about hostlist servers from other peers"
+msgstr "укључује учење о серверима списка домаћина са других парњака"
+
+#: src/hostlist/gnunet-daemon-hostlist.c:320
+msgid "provide a hostlist server"
+msgstr "обезбеђује сервер списка домаћина"
+
+#: src/hostlist/gnunet-daemon-hostlist.c:335
+msgid "GNUnet hostlist server and client"
+msgstr "Сервер и клијент списка домаћина ГНУнет-а"
+
+#: src/hostlist/hostlist-client.c:288
+msgid "# bytes downloaded from hostlist servers"
+msgstr "# бајтови су преузети са сервера списка домаћина"
+
+#: src/hostlist/hostlist-client.c:309 src/hostlist/hostlist-client.c:339
+msgid "# invalid HELLOs downloaded from hostlist servers"
+msgstr "# неисправни „HELLO“-и су преузети са сервера списка домаћина"
+
+#: src/hostlist/hostlist-client.c:312 src/hostlist/hostlist-client.c:342
+#, c-format
+msgid "Invalid `%s' message received from hostlist at `%s'\n"
+msgstr "Неисправна „%s“ порука је примљена са списка домаћина на „%s“\n"
+
+#: src/hostlist/hostlist-client.c:330
+msgid "# valid HELLOs downloaded from hostlist servers"
+msgstr "# исправни „HELLO“-и су преузети са сервера списка домаћина"
+
+#: src/hostlist/hostlist-client.c:592 src/hostlist/hostlist-client.c:1333
+msgid "# advertised hostlist URIs"
+msgstr "# рекламиране путање списка домаћина"
+
+#: src/hostlist/hostlist-client.c:622
+#, c-format
+msgid "# advertised URI `%s' downloaded"
+msgstr "# рекламирана путања „%s“ је преузета"
+
+#: src/hostlist/hostlist-client.c:664
+#, c-format
+msgid "Advertised hostlist with URI `%s' could not be downloaded. Advertised 
URI gets dismissed.\n"
+msgstr "Рекламирани списак домаћина са путањом „%s“ се не може преузети. 
Рекламирана путања је одбачена.\n"
+
+#: src/hostlist/hostlist-client.c:802
+#, c-format
+msgid "Timeout trying to download hostlist from `%s'\n"
+msgstr "Време је истекло у покушају преузимања списка домаћина са „%s“\n"
+
+#: src/hostlist/hostlist-client.c:816
+#, c-format
+msgid "Download limit of %u bytes exceeded, stopping download\n"
+msgstr "Ограничење преузимања од %u бајта је премашено, заустављам 
преузимање\n"
+
+#: src/hostlist/hostlist-client.c:836
+#, c-format
+msgid "Download of hostlist from `%s' failed: `%s'\n"
+msgstr "Преузимање списка доамаћина са „%s“ није успело: „%s“\n"
+
+#: src/hostlist/hostlist-client.c:842
+#, c-format
+msgid "Download of hostlist `%s' completed.\n"
+msgstr "Преузимање списка домаћина „%s“ је завршено.\n"
+
+#: src/hostlist/hostlist-client.c:850
+#, c-format
+msgid "Adding successfully tested hostlist `%s' datastore.\n"
+msgstr "Додаје успешно тестирани смештај података „%s“ списка домаћина.\n"
+
+#: src/hostlist/hostlist-client.c:903
+#, c-format
+msgid "Bootstrapping using hostlist at `%s'.\n"
+msgstr "Вршим почетно подизање помоћу списка домаћина на „%s“.\n"
+
+#: src/hostlist/hostlist-client.c:911
+msgid "# hostlist downloads initiated"
+msgstr "# преузимања списка домаћина су започета"
+
+#: src/hostlist/hostlist-client.c:1040 src/hostlist/hostlist-client.c:1506
+msgid "# milliseconds between hostlist downloads"
+msgstr "# милисекунди између преузимања списка домаћина"
+
+#: src/hostlist/hostlist-client.c:1049
+#, c-format
+msgid "Have %u/%u connections.  Will consider downloading hostlist in %s\n"
+msgstr "Имам %u/%u везе.  Размотрићу преузимање списка домаћина за %s\n"
+
+#: src/hostlist/hostlist-client.c:1109 src/hostlist/hostlist-client.c:1125
+msgid "# active connections"
+msgstr "# активних веза"
+
+#: src/hostlist/hostlist-client.c:1280
+#, c-format
+msgid "Loading saved hostlist entries from file `%s' \n"
+msgstr "Учитавам сачуване уносе списка домаћина из датотеке „%s“ \n"
+
+#: src/hostlist/hostlist-client.c:1285
+#, c-format
+msgid "Hostlist file `%s' does not exist\n"
+msgstr "Датотека списка домаћина „%s“ не постоји\n"
+
+#: src/hostlist/hostlist-client.c:1296
+#, c-format
+msgid "Could not open file `%s' for reading to load hostlists: %s\n"
+msgstr "Не могу да отворим датотеку „%s“ за читање да утоварим спискове 
домаћина: %s\n"
+
+#: src/hostlist/hostlist-client.c:1329
+#, c-format
+msgid "%u hostlist URIs loaded from file\n"
+msgstr "УРИ-и %u списка домаћина су учитани из датотеке\n"
+
+#: src/hostlist/hostlist-client.c:1331
+msgid "# hostlist URIs read from file"
+msgstr "# УРИ-и списка домаћина су учитани из датотеке"
+
+#: src/hostlist/hostlist-client.c:1376
+#, c-format
+msgid "Could not open file `%s' for writing to save hostlists: %s\n"
+msgstr "Не могу да отворим датотеку „%s“ за писање да сачувам спискове 
домаћина: %s\n"
+
+#: src/hostlist/hostlist-client.c:1381
+#, c-format
+msgid "Writing %u hostlist URIs to `%s'\n"
+msgstr "Уписујем УРИ-је %u списка домаћина у „%s“\n"
+
+#: src/hostlist/hostlist-client.c:1405 src/hostlist/hostlist-client.c:1422
+#, c-format
+msgid "Error writing hostlist URIs to file `%s'\n"
+msgstr "Грешка писања УРИ-а списка домаћина у датотеку „%s“\n"
+
+#: src/hostlist/hostlist-client.c:1417
+msgid "# hostlist URIs written to file"
+msgstr "# УРИ-и списка домаћина су записани у датотеку"
+
+#: src/hostlist/hostlist-client.c:1471
+msgid "Learning is enabled on this peer\n"
+msgstr "Учење је укључено на овом парњаку\n"
+
+#: src/hostlist/hostlist-client.c:1483
+msgid "Learning is not enabled on this peer\n"
+msgstr "Учење није укључено на овом парњаку\n"
+
+#: src/hostlist/hostlist-client.c:1495
+#, c-format
+msgid "Since learning is not enabled on this peer, hostlist file `%s' was 
removed\n"
+msgstr "Како учење није укључено на овом парњаку, датотека списка домаћина 
„%s“ је уклоњена\n"
+
+#: src/hostlist/hostlist-client.c:1499
+#, c-format
+msgid "Hostlist file `%s' could not be removed\n"
+msgstr "Датотека списка домаћина „%s“ не може бити уклоњена\n"
+
+#: src/hostlist/hostlist-server.c:137
+msgid "bytes in hostlist"
+msgstr "бајтова у списку домаћина"
+
+#: src/hostlist/hostlist-server.c:161
+msgid "expired addresses encountered"
+msgstr "наиђох на истекле адресе"
+
+#: src/hostlist/hostlist-server.c:189 src/hostlist/hostlist-server.c:425
+#: src/peerinfo-tool/gnunet-peerinfo.c:350
+#: src/peerinfo-tool/gnunet-peerinfo.c:419
+#: src/peerinfo-tool/gnunet-peerinfo.c:490
+#: src/topology/gnunet-daemon-topology.c:925
+#, c-format
+msgid "Error in communication with PEERINFO service: %s\n"
+msgstr "Грешка у комуникацији са услугом ПОДАЦИ_ПАРЊАКА: %s\n"
+
+#: src/hostlist/hostlist-server.c:210
+msgid "HELLOs without addresses encountered (ignored)"
+msgstr "наиђох на „HELLO“-е без адреса (занемарено)"
+
+#: src/hostlist/hostlist-server.c:224
+msgid "bytes not included in hostlist (size limit)"
+msgstr "бајтови нису укључени на списак домаћина (ограничење величине)"
+
+#: src/hostlist/hostlist-server.c:268
+#, c-format
+msgid "Refusing `%s' request to hostlist server\n"
+msgstr "Одбијам „%s“ захтев за сервер списка домаћина\n"
+
+#: src/hostlist/hostlist-server.c:271
+msgid "hostlist requests refused (not HTTP GET)"
+msgstr "захтеви списка домаћина су одбијени (нису „HTTP GET“)"
+
+#: src/hostlist/hostlist-server.c:284
+#, c-format
+msgid "Refusing `%s' request with %llu bytes of upload data\n"
+msgstr "Одбијам „%s“ захтев са %llu бајта података утовара\n"
+
+#: src/hostlist/hostlist-server.c:288
+msgid "hostlist requests refused (upload data)"
+msgstr "захтеви списка домаћина су одбијени (подаци утовара)"
+
+#: src/hostlist/hostlist-server.c:296
+msgid "Could not handle hostlist request since I do not have a response yet\n"
+msgstr "Не могу да радим са захтевом списка домаћина јер још немам одговор\n"
+
+#: src/hostlist/hostlist-server.c:299
+msgid "hostlist requests refused (not ready)"
+msgstr "захтеви списка домаћина су одбијени (нису спремни)"
+
+#: src/hostlist/hostlist-server.c:303
+msgid "Received request for our hostlist\n"
+msgstr "Примих захтев за наш списак домаћина\n"
+
+#: src/hostlist/hostlist-server.c:304
+msgid "hostlist requests processed"
+msgstr "захтеви списка домаћина су обрађени"
+
+#: src/hostlist/hostlist-server.c:346
+msgid "# hostlist advertisements send"
+msgstr "# рекламе списка домаћина су послате"
+
+#: src/hostlist/hostlist-server.c:390
+msgid "Advertisement message could not be queued by core\n"
+msgstr "Поруку оглашавања језгро не може да стави у ред\n"
+
+#: src/hostlist/hostlist-server.c:557 src/peerinfo-tool/gnunet-peerinfo.c:639
+#: src/transport/gnunet-service-transport.c:1114
+msgid "Could not access PEERINFO service.  Exiting.\n"
+msgstr "Не могу да приступим услузи ИНФО_ПАРЊАКА.  Излазим.\n"
+
+#: src/hostlist/hostlist-server.c:576
+#, c-format
+msgid "Hostlist service starts on %s:%llu\n"
+msgstr "Услуга списка домаћина почиње на %s:%llu\n"
+
+#: src/hostlist/hostlist-server.c:590
+#, c-format
+msgid "Address to obtain hostlist: `%s'\n"
+msgstr "Адреса за добијање списка домаћина: „%s“\n"
+
+#: src/hostlist/hostlist-server.c:630
+#, c-format
+msgid "`%s' is not a valid IP address! Ignoring BINDTOIP.\n"
+msgstr "„%s“ није исправна ИП адреса! Занемарујем „BINDTOIP“.\n"
+
+#: src/hostlist/hostlist-server.c:673
+#, c-format
+msgid "Could not start hostlist HTTP server on port %u\n"
+msgstr "Не могу да покренем ХТТП сервер списка домаћина на прикључнику %u\n"
+
+#: src/identity/gnunet-identity.c:165
+#, c-format
+msgid "Failed to create ego: %s\n"
+msgstr "Нисам успео да направим его: %s\n"
+
+#: src/identity/gnunet-identity.c:184
+#, c-format
+msgid "Failed to set default ego: %s\n"
+msgstr "Нисам успео да поставим основни его: %s\n"
+
+#: src/identity/gnunet-identity.c:327
+msgid "create ego NAME"
+msgstr "ствара НАЗИВ ега"
+
+#: src/identity/gnunet-identity.c:330
+msgid "delete ego NAME "
+msgstr "брише НАЗИВ ега "
+
+#
+# File: util/dialtest.c++, line: 134
+#: src/identity/gnunet-identity.c:333
+msgid "display all egos"
+msgstr "приказује све егое"
+
+#: src/identity/gnunet-identity.c:336
+msgid "set default identity to EGO for a subsystem SUBSYSTEM (use together 
with -s)"
+msgstr "поставља основни идентитет на ЕГО за подсистем ПОДСИСТЕМ (користите 
заједно са -s)"
+
+#: src/identity/gnunet-identity.c:339
+msgid "run in monitor mode egos"
+msgstr "ради у режиму праћења егоа"
+
+#: src/identity/gnunet-identity.c:342
+msgid "set default identity to EGO for a subsystem SUBSYSTEM (use together 
with -e)"
+msgstr "поставља основни идентитет на ЕГО за подсистем ПОДСИСТЕМ (користите 
заједно са -e)"
+
+#: src/identity/gnunet-identity.c:351
+msgid "Maintain egos"
+msgstr "Одржава егое"
+
+#: src/identity/gnunet-service-identity.c:338
+msgid "no default known"
+msgstr "основнст није позната"
+
+#: src/identity/gnunet-service-identity.c:362
+msgid "default configured, but ego unknown (internal error)"
+msgstr "основни је подешен, али его није познат (унутрашња грешка)"
+
+#: src/identity/gnunet-service-identity.c:439
+#: src/identity/gnunet-service-identity.c:670
+#: src/identity/gnunet-service-identity.c:778
+#, c-format
+msgid "Failed to write subsystem default identifier map to `%s'.\n"
+msgstr "Нисам успео да запишем основну мапу одредника подсистема у „%s“.\n"
+
+#: src/identity/gnunet-service-identity.c:446
+msgid "Unknown ego specified for service (internal error)"
+msgstr "Непознат его је наведен за услугу (унутрашња грешка)"
+
+#: src/identity/gnunet-service-identity.c:516
+msgid "identifier already in use for another ego"
+msgstr "одредник се већ користи за други его"
+
+#: src/identity/gnunet-service-identity.c:647
+msgid "target name already exists"
+msgstr "назив мете већ постоји"
+
+#: src/identity/gnunet-service-identity.c:686
+#: src/identity/gnunet-service-identity.c:795
+msgid "no matching ego found"
+msgstr "нисам нашао одговарајући его"
+
+#: src/identity/gnunet-service-identity.c:829
+#, c-format
+msgid "Failed to parse ego information in `%s'\n"
+msgstr "Нисам успео да обрадим податке егоа у „%s“\n"
+
+#: src/identity/gnunet-service-identity.c:902
+#, c-format
+msgid "Failed to parse subsystem identity configuration file `%s'\n"
+msgstr "Нисам успео да обрадим датотеку подешавања идентитета субсистема 
„%s“\n"
+
+#: src/identity/gnunet-service-identity.c:914
+#, c-format
+msgid "Failed to create directory `%s' for storing egos\n"
+msgstr "Нисам успео да направим директоријум „%s“ за смештајне егое\n"
+
+#: src/mesh/gnunet-mesh.c:357
+#, c-format
+msgid "Invalid target `%s'\n"
+msgstr "Неисправна мета „%s“\n"
+
+#: src/mesh/gnunet-mesh.c:607
+#, c-format
+msgid "Invalid peer ID `%s'\n"
+msgstr "Неисправан ИБ парњака „%s“\n"
+
+#: src/mesh/gnunet-mesh.c:650
+#, c-format
+msgid "Invalid tunnel owner `%s'\n"
+msgstr "Неисправан власник тунела „%s“\n"
+
+#: src/mesh/gnunet-mesh.c:716
+msgid "You must NOT give a TARGETwhen using 'request all' options\n"
+msgstr "НЕ можете дати МЕТУ када користите опције „request all“\n"
+
+#: src/mesh/gnunet-mesh.c:807
+msgid "provide information about a particular connection"
+msgstr "обезбеђује податке о нарочитој вези"
+
+#: src/mesh/gnunet-mesh.c:810
+msgid "activate echo mode"
+msgstr "покреће режим ехоа"
+
+#: src/mesh/gnunet-mesh.c:816
+msgid "port to listen to (default; 0)"
+msgstr "прикључник за ослушкивање (основно; 0)"
+
+#: src/mesh/gnunet-mesh.c:819 src/mesh/gnunet-mesh.c:822
+msgid "provide information about all peers"
+msgstr "обезбеђује податке о свим парњацима"
+
+#: src/mesh/gnunet-mesh.c:825
+msgid "provide information about a particular tunnel"
+msgstr "обезбеђује податке о нарочитом тунелу"
+
+#: src/mesh/gnunet-mesh.c:828
+msgid "provide information about all tunnels"
+msgstr "обезбеђује податке о свим тунелима"
+
+#: src/mesh/gnunet-service-mesh_peer.c:390
+msgid "Wrong CORE service\n"
+msgstr "Погрешна ЈЕЗГРЕНА услуга\n"
+
+#: src/mysql/mysql.c:174
+#, c-format
+msgid "Trying to use file `%s' for MySQL configuration.\n"
+msgstr "Покушавам да користим датотеку „%s“ за МајСКуЛ подешавање.\n"
+
+#: src/mysql/mysql.c:181
+#, c-format
+msgid "Could not access file `%s': %s\n"
+msgstr "Не могу да приступим датотеци „%s“: %s\n"
+
+#: src/namecache/gnunet-namecache.c:109
+#, c-format
+msgid "No records found for `%s'"
+msgstr "Нисам нашао записе за „%s“"
+
+#: src/namecache/gnunet-namecache.c:124 src/namestore/gnunet-namestore.c:397
+#, c-format
+msgid "\tCorrupt or unsupported record of type %u\n"
+msgstr "\tОштећен или неподржан запис врсте %u\n"
+
+#: src/namecache/gnunet-namecache.c:185
+#, c-format
+msgid "You must specify which zone should be accessed\n"
+msgstr "Морате навести којој зони се треба приступити\n"
+
+#: src/namecache/gnunet-namecache.c:195 src/namestore/gnunet-namestore.c:695
+#, c-format
+msgid "Invalid public key for reverse lookup `%s'\n"
+msgstr "Неисправан јавни кључ за обратну претрагу „%s“\n"
+
+#: src/namecache/gnunet-namecache.c:203
+#, c-format
+msgid "You must specify a name\n"
+msgstr "Морате навести назив\n"
+
+#: src/namecache/gnunet-namecache.c:234 src/namestore/gnunet-namestore.c:931
+msgid "name of the record to add/delete/display"
+msgstr "назив записа за додавање/брисање/приказ"
+
+#: src/namecache/gnunet-namecache.c:237
+msgid "spezifies the public key of the zone to look in"
+msgstr "наводи јавни кључ зоне за претраживање"
+
+#: src/namecache/gnunet-namecache.c:248 src/namestore/gnunet-namestore.c:963
+msgid "GNUnet zone manipulation tool"
+msgstr "Алат манипуслисања ГНУнет зоном"
+
+#: src/namecache/namecache_api.c:276
+msgid "Namecache failed to cache block"
+msgstr "Остава назива није успела да смести у оставу блок"
+
+#: src/namecache/plugin_namecache_postgres.c:89
+#: src/namestore/plugin_namestore_postgres.c:96
+msgid "Failed to create indices\n"
+msgstr "Нисам успео да направим индексе\n"
+
+#: src/namestore/gnunet-namestore.c:303
+#, c-format
+msgid "Adding record failed: %s\n"
+msgstr "Додавање записа није успело: %s\n"
+
+#: src/namestore/gnunet-namestore.c:332
+#, c-format
+msgid "Deleting record failed, record does not exist%s%s\n"
+msgstr "Брисање записа није успело, запис не постоји%s%s\n"
+
+#: src/namestore/gnunet-namestore.c:339
+#, c-format
+msgid "Deleting record failed%s%s\n"
+msgstr "Брисање записа није успело%s%s\n"
+
+#: src/namestore/gnunet-namestore.c:558
+#, c-format
+msgid "No options given\n"
+msgstr "Нису дате опције\n"
+
+#: src/namestore/gnunet-namestore.c:569
+#: src/namestore/gnunet-namestore-fcfsd.c:970
+msgid "Failed to connect to namestore\n"
+msgstr "Нисам успео да се повежем са смештајем назива\n"
+
+#: src/namestore/gnunet-namestore.c:577 src/namestore/gnunet-namestore.c:586
+#: src/namestore/gnunet-namestore.c:603 src/namestore/gnunet-namestore.c:625
+#: src/namestore/gnunet-namestore.c:665
+#, c-format
+msgid "Missing option `%s' for operation `%s'\n"
+msgstr "Недостаје опција „%s“ за радњу „%s“\n"
+
+#: src/namestore/gnunet-namestore.c:578 src/namestore/gnunet-namestore.c:587
+#: src/namestore/gnunet-namestore.c:604 src/namestore/gnunet-namestore.c:626
+msgid "add"
+msgstr "додај"
+
+#: src/namestore/gnunet-namestore.c:595
+#, c-format
+msgid "Unsupported type `%s'\n"
+msgstr "Неподржана врста „%s“\n"
+
+#: src/namestore/gnunet-namestore.c:615
+#, c-format
+msgid "Value `%s' invalid for record type `%s'\n"
+msgstr "Вредност „%s“ је неисправна за врсту записа „%s“\n"
+
+#: src/namestore/gnunet-namestore.c:651
+#, c-format
+msgid "Invalid time format `%s'\n"
+msgstr "Неисправан формат времена „%s“\n"
+
+#: src/namestore/gnunet-namestore.c:666
+msgid "del"
+msgstr "обриши"
+
+#: src/namestore/gnunet-namestore.c:715
+#: src/peerinfo-tool/gnunet-peerinfo.c:723
+#, c-format
+msgid "Invalid URI `%s'\n"
+msgstr "Неисправан УРИ „%s“\n"
+
+#: src/namestore/gnunet-namestore.c:750
+#, c-format
+msgid "Invalid nick `%s'\n"
+msgstr "Неисправан надимак „%s“\n"
+
+#: src/namestore/gnunet-namestore.c:790
+#, c-format
+msgid "Ego `%s' not known to identity service\n"
+msgstr "Его „%s“ није познат услузи идентитета\n"
+
+#: src/namestore/gnunet-namestore.c:817
+#, c-format
+msgid "No default ego configured in identity service\n"
+msgstr "Није подешен основни его у услузи идентитета\n"
+
+#: src/namestore/gnunet-namestore.c:853
+#, c-format
+msgid "Identity service is not running\n"
+msgstr "Услуга идентитета није покренута\n"
+
+#: src/namestore/gnunet-namestore.c:865
+#, c-format
+msgid "Cannot connect to identity service\n"
+msgstr "Не могу да се повежем са услугом идентитета\n"
+
+#: src/namestore/gnunet-namestore.c:913
+msgid "add record"
+msgstr "додаје запис"
+
+#: src/namestore/gnunet-namestore.c:916
+msgid "delete record"
+msgstr "брише запис"
+
+#: src/namestore/gnunet-namestore.c:919
+msgid "display records"
+msgstr "приказује записе"
+
+#: src/namestore/gnunet-namestore.c:922
+msgid "expiration time for record to use (for adding only), \"never\" is 
possible"
+msgstr "време истека записа за коришћење (само за додавање), „never“ је могуће"
+
+#: src/namestore/gnunet-namestore.c:925
+msgid "set the desired nick name for the zone"
+msgstr "поставља жељени назив надимка за зону"
+
+#: src/namestore/gnunet-namestore.c:928
+msgid "monitor changes in the namestore"
+msgstr "прати измене у смештају назива"
+
+#: src/namestore/gnunet-namestore.c:934
+msgid "determine our name for the given PKEY"
+msgstr "одређује наш назив за дати „PKEY“"
+
+#: src/namestore/gnunet-namestore.c:937
+msgid "type of the record to add/delete/display"
+msgstr "врста записа за додавање/брисање/приказ"
+
+#: src/namestore/gnunet-namestore.c:940
+msgid "URI to import into our zone"
+msgstr "УРИ за увоз у нашу зону"
+
+#: src/namestore/gnunet-namestore.c:943
+msgid "value of the record to add/delete"
+msgstr "вредност записа за додавање/брисање"
+
+#: src/namestore/gnunet-namestore.c:946
+msgid "create or list public record"
+msgstr "ствара или исписује јавни запис"
+
+#: src/namestore/gnunet-namestore.c:949
+msgid "create shadow record (only valid if all other records of the same type 
have expired"
+msgstr "прави сеновити запис (важи само ако су сви остали записи исте врсте 
истекли"
+
+#: src/namestore/gnunet-namestore.c:952
+msgid "name of the ego controlling the zone"
+msgstr "назив егоа који контролише зону"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:464
+#, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr "Неподржана вредност облика „%s“\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:491
+#, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr "Нисам успео да направим запис за домен „%s“: %s\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:525
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr "Нађох постојећи назив „%s“ за дати кључ\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:534
+msgid "Error when mapping zone to name\n"
+msgstr "Грешка приликом мапирања зоне у назив\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:596
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr "Нађох %u постојећа записа за домен „%s“\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:652
+#, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr "Нисам успео да направим страницу за „%s“\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:668
+#, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr "Нисам успео да поставим постпроцесор за „%s“\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:704
+msgid "Domain name must not contain `.'\n"
+msgstr "Назив домена не сме да садржи „.“\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:712
+msgid "Domain name must not contain `+'\n"
+msgstr "Назив домена не сме да садржи „+“\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:910
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr "Није подешен его за „fcfsd“ подсистем\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:936
+msgid "Failed to start HTTP server\n"
+msgstr "Нисам успео да покренем ХТТП сервер\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:978
+msgid "Failed to connect to identity\n"
+msgstr "Нисам успео да се повежем са идентитетом\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1011
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr "Услуга регистрације назива Први Стиже Први Служи ГНУ Система Назива"
+
+#: src/namestore/gnunet-service-namestore.c:655
+#, c-format
+msgid "Failed to replicate block in namecache: %s\n"
+msgstr "Нисам успео да реплицирам блок у остави назива: %s\n"
+
+#: src/namestore/namestore_api.c:275
+msgid "Namestore failed to store record\n"
+msgstr "Смештај назива није успео да смести запис\n"
+
+#: src/nat/gnunet-nat-server.c:279
+#, c-format
+msgid "Please pass valid port number as the first argument! (got `%s')\n"
+msgstr "Проследите исправан број прикључника као први аргумент! (добих „%s“)\n"
+
+#: src/nat/gnunet-nat-server.c:321
+msgid "GNUnet NAT traversal test helper daemon"
+msgstr "Демон помоћника теста ГНУнет НАТ попречника"
+
+#: src/nat/nat_auto.c:170
+msgid "NAT traversal with ICMP Server timed out.\n"
+msgstr "Истекло је време НАТ попречника са ИЦМП сервером.\n"
+
+#: src/nat/nat_auto.c:203
+msgid "NAT traversal with ICMP Server succeeded.\n"
+msgstr "НАТ попречник са ИЦМП сервером је успео.\n"
+
+#: src/nat/nat_auto.c:204
+msgid "NAT traversal with ICMP Server failed.\n"
+msgstr "НАТ попречник са ИЦМП сервером није успео.\n"
+
+#: src/nat/nat_auto.c:225
+msgid "Testing connection reversal with ICMP server.\n"
+msgstr "Тестира обратност везе са ИЦМП сервером.\n"
+
+#: src/nat/nat_auto.c:274
+#, c-format
+msgid "Detected external IP `%s'\n"
+msgstr "Откривен је спољни ИП „%s“\n"
+
+#: src/nat/nat_auto.c:344
+msgid "This system has a global IPv6 address, setting IPv6 to supported.\n"
+msgstr "Овај систем има општу ИПв6 адресу, постављам ИПв6 на подржану.\n"
+
+#: src/nat/nat_auto.c:360
+#, c-format
+msgid "Detected internal network address `%s'.\n"
+msgstr "Откривена је унутрашња адреса мреже „%s“.\n"
+
+#: src/nat/nat_auto.c:413
+msgid "upnpc found, enabling its use\n"
+msgstr "нађох „upnpc“, омогућујем њено коришћење\n"
+
+#: src/nat/nat_auto.c:414
+msgid "upnpc not found\n"
+msgstr "нисам нашао „upnpc“\n"
+
+#: src/nat/nat_auto.c:447
+msgid "gnunet-helper-nat-server found, testing it\n"
+msgstr "нађох „gnunet-helper-nat-server“, тестирам је\n"
+
+#: src/nat/nat_auto.c:448
+msgid "No working gnunet-helper-nat-server found\n"
+msgstr "Нисам нашао радну „gnunet-helper-nat-server“\n"
+
+#: src/nat/nat_auto.c:482
+msgid "gnunet-helper-nat-client found, enabling it\n"
+msgstr "нађох „gnunet-helper-nat-client“, омогућавам је\n"
+
+#: src/nat/nat_auto.c:483
+msgid "gnunet-helper-nat-client not found or behind NAT, disabling it\n"
+msgstr "нисам нашао „gnunet-helper-nat-client“ или иза НАТ-а, искључујем је\n"
+
+#: src/nat/nat.c:867
+#, c-format
+msgid "gnunet-helper-nat-server generated malformed address `%s'\n"
+msgstr "„gnunet-helper-nat-server“ је створила лошу адресу „%s“\n"
+
+#: src/nat/nat.c:917
+#, c-format
+msgid "Failed to start %s\n"
+msgstr "Нисам успео да покренем „%s“\n"
+
+#: src/nat/nat.c:1205
+msgid "malformed"
+msgstr "лоше"
+
+#: src/nat/nat.c:1276 src/nat/nat.c:1288
+#, c-format
+msgid "Configuration requires `%s', but binary is not installed properly (SUID 
bit not set).  Option disabled.\n"
+msgstr "Подешавање захтева „%s“, али бинарно није исправно инсталирано („SUID“ 
бит није постављен).  Опција је искључена.\n"
+
+#: src/nat/nat.c:1426
+msgid "Internal IP address not known, cannot use ICMP NAT traversal method\n"
+msgstr "Унутрашња ИП адреса није позната, не могу користити методу ИЦМП НАТ 
попречника\n"
+
+#: src/nat/nat.c:1442
+#, c-format
+msgid "Running gnunet-helper-nat-client %s %s %u\n"
+msgstr "Извршавам „gnunet-helper-nat-client“ %s %s %u\n"
+
+#: src/nat/nat_mini.c:155
+msgid "no valid address was returned by `external-ip'"
+msgstr "ниједна исправна адреса није враћена „external-ip“-ом"
+
+#: src/nat/nat_mini.c:175
+msgid "`external-ip' command not found"
+msgstr "нисам нашао наредбу „external-ip“"
+
+#: src/nat/nat_mini.c:201
+msgid "`external-ip' command not found\n"
+msgstr "нисам нашао наредбу „external-ip“\n"
+
+#: src/nat/nat_mini.c:366
+msgid "Failed to run `upnpc` command"
+msgstr "Нисам успео да покренем наредбу „upnpc“"
+
+#: src/nat/nat_mini.c:512
+msgid "`upnpc' command took too long, process killed"
+msgstr "„upnpc“ наредби треба превише времена, процес је убијен"
+
+#: src/nat/nat_mini.c:540
+msgid "`upnpc' command failed to establish port mapping"
+msgstr "„upnpc“ наредба није успела да успостави мапирање прикључника"
+
+#: src/nat/nat_mini.c:604
+msgid "`upnpc' command not found\n"
+msgstr "нисам нашао „upnpc“ наредбу\n"
+
+#: src/nat/nat_mini.c:608
+msgid "`upnpc` command not found"
+msgstr "нисам нашао „upnpc“ наредбу"
+
+#: src/nat/nat_test.c:351
+msgid "Failed to connect to `gnunet-nat-server'\n"
+msgstr "Нисам успео да се повежем на „gnunet-nat-server“\n"
+
+#: src/nat/nat_test.c:423
+#, c-format
+msgid "Failed to create listen socket bound to `%s' for NAT test: %s\n"
+msgstr "Нисам успео да направим свезу прикључнице ослушкивања ка „%s“ за НАТ 
тест: %s\n"
+
+#: src/nse/gnunet-nse.c:117
+msgid "NSE service is not running\n"
+msgstr "НСЕ услуга није покренута\n"
+
+#: src/nse/gnunet-nse.c:122
+msgid "Error while checking if NSE service is running or not\n"
+msgstr "Грешка приликом проверавања да ли НСЕ услуга ради или не\n"
+
+#: src/nse/gnunet-nse.c:168
+msgid "Show network size estimates from NSE service."
+msgstr "Показује процене величине мреже из НСЕ услуге."
+
+#: src/nse/gnunet-nse-profiler.c:858
+msgid "limit to the number of connections to NSE services, 0 for none"
+msgstr "ограничење броја веза на НСЕ услуге, 0 за ништа"
+
+#: src/nse/gnunet-nse-profiler.c:861
+msgid "name of the file for writing connection information and statistics"
+msgstr "назив датотеке за записивање података везе и статистику"
+
+#: src/nse/gnunet-nse-profiler.c:864 src/testbed/gnunet-testbed-profiler.c:306
+msgid "name of the file with the login information for the testbed"
+msgstr "назив датотеке са подацима пријављивања за пробно место"
+
+#: src/nse/gnunet-nse-profiler.c:867
+msgid "name of the file for writing the main results"
+msgstr "назив датотеке за записивање главних резултата"
+
+#: src/nse/gnunet-nse-profiler.c:870
+msgid "Number of peers to run in each round, separated by commas"
+msgstr "Број парњака за покретање у свакој рунди, раздвојени зарезима"
+
+#: src/nse/gnunet-nse-profiler.c:876
+msgid "delay between rounds"
+msgstr "застој између рунди"
+
+#: src/nse/gnunet-nse-profiler.c:885
+msgid "Measure quality and performance of the NSE service."
+msgstr "Мери квалитет и учинковитост НСЕ услуге."
+
+#: src/nse/gnunet-service-nse.c:1517
+#: src/revocation/gnunet-service-revocation.c:789 src/util/gnunet-scrypt.c:248
+msgid "Value is too large.\n"
+msgstr "Вредност је превелика.\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:215
+#, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr "Уклањам истеклу адресу преноса „%s“\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:352
+#, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr "Нисам успео да обрадим „HELLO“ у датотеци „%s“: %s\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:371
+#: src/peerinfo/gnunet-service-peerinfo.c:388
+#, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr "Нисам успео да обрадим „HELLO“ у датотеци „%s“\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:466
+msgid "# peers known"
+msgstr "# парњака је познато"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:503
+#, c-format
+msgid "File `%s' in directory `%s' does not match naming convention. 
Removed.\n"
+msgstr "Датотека „%s“ у директоријуму „%s“ не одговара договору именовања. 
Уклоњена је.\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:653
+#, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "Скенирам директоријум „%s“\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:658
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr "Још увек нисам нашао парњаке у „%s“!\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:994
+#, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr "Чистим директоријум „%s“\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1287
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr "Увозим „HELLO“-е из „%s“\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1298
+msgid "Skipping import of included HELLOs\n"
+msgstr "Прескачем увоз укључених „HELLO“-а\n"
+
+#: src/peerinfo/peerinfo_api.c:236
+msgid "aborted due to explicit disconnect request"
+msgstr "прекинуто услед изричитог захтева прекида везе"
+
+#: src/peerinfo/peerinfo_api.c:356
+msgid "failed to transmit request (service down?)"
+msgstr "нисам успео да пренесем захтев (услуга је пала?)"
+
+#: src/peerinfo/peerinfo_api.c:506
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr "Нисам успео да примим одговор са услуге „PEERINFO“."
+
+#: src/peerinfo/peerinfo_api.c:547 src/peerinfo/peerinfo_api.c:566
+#: src/peerinfo/peerinfo_api.c:581 src/peerinfo/peerinfo_api.c:592
+#: src/peerinfo/peerinfo_api.c:603
+msgid "Received invalid message from `PEERINFO' service."
+msgstr "Примих неисправну поруку са услуге „PEERINFO“."
+
+#: src/peerinfo/peerinfo_api.c:678
+msgid "Timeout transmitting iteration request to `PEERINFO' service."
+msgstr "Истекло је време преношења захтева понављања ка услузи 
„ПОДАЦИ_ПАРЊАКА“."
+
+#: src/peerinfo/peerinfo_api_notify.c:268
+#, c-format
+msgid "Could not connect to `%s' service.\n"
+msgstr "Не могу да се повежем са „%s“ услугом.\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:232
+#, c-format
+msgid "%sPeer `%s'\n"
+msgstr "%sПарњак „%s“\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:239
+#, c-format
+msgid "\tExpires: %s \t %s\n"
+msgstr "\tИстиче: %s \t %s\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:428
+#, c-format
+msgid "Failure: Did not receive %s\n"
+msgstr "Неуспех: Нисам примио „%s“\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:436
+#, c-format
+msgid "Failure: Received invalid %s\n"
+msgstr "Неуспех: Примих неисправно „%s“\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:445
+#, c-format
+msgid "Failed to write HELLO with %u bytes to file `%s'\n"
+msgstr "Нисам успео да упишем „HELLO“ са %u бајта у датотеку „%s“\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:458
+#, c-format
+msgid "Wrote %s HELLO containing %u addresses with %u bytes to file `%s'\n"
+msgstr "Записах „%s HELLO“ које садржи %u адресе са %u бајта у датотеку „%s“\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:522
+#, c-format
+msgid "Failure adding HELLO: %s\n"
+msgstr "Неуспех додавања „HELLO“-а: %s\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:633
+#, c-format
+msgid "Service `%s' is not running, please start GNUnet\n"
+msgstr "Услуга „%s“ није покренута, покрените ГНУнет\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:654 src/util/gnunet-scrypt.c:224
+#, c-format
+msgid "Loading hostkey from `%s' failed.\n"
+msgstr "Учитавање кључа домаћина из „%s“ није успело.\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:745
+#, c-format
+msgid "I am peer `%s'.\n"
+msgstr "Ја сам парњак „%s“.\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:789
+msgid "don't resolve host names"
+msgstr "не разрешава називе домаћина"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:792
+msgid "output only the identity strings"
+msgstr "исписује само ниске идентитета"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:795
+msgid "include friend-only information"
+msgstr "укључује податке само-пријатељ"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:798
+msgid "output our own identity only"
+msgstr "исписује само наш лични идентитет"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:801
+msgid "list all known peers"
+msgstr "исписује све познате парњаке"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:804
+msgid "dump hello to file"
+msgstr "шаље „hello“ у датотеку"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:807
+msgid "also output HELLO uri(s)"
+msgstr "такође исписује „HELLO“ ури-је"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:810
+msgid "add given HELLO uri to the database"
+msgstr "додаје дату „HELLO“ путању у базу података"
+
+#: src/peerinfo-tool/gnunet-peerinfo.c:821
+msgid "Print information about peers."
+msgstr "Исписује податке о парњацима."
+
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:105
+#: src/transport/gnunet-service-transport_plugins.c:128
+#, c-format
+msgid "Starting transport plugins `%s'\n"
+msgstr "Покрећем прикључке преноса „%s“\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:109
+#: src/transport/gnunet-service-transport_plugins.c:133
+#, c-format
+msgid "Loading `%s' transport plugin\n"
+msgstr "Учитавам „%s“ прикључак преноса\n"
+
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:129
+#: src/transport/gnunet-service-transport_plugins.c:165
+#, c-format
+msgid "Failed to load transport plugin for `%s'\n"
+msgstr "Нисам успео да учитам прикључак преноса за „%s“\n"
+
+#: src/postgres/postgres.c:59
+#, c-format
+msgid "`%s:%s' failed at %s:%d with error: %s"
+msgstr "`%s:%s' није успело на %s:%d са грешком: %s"
+
+#: src/postgres/postgres.c:148
+#, c-format
+msgid "Unable to initialize Postgres: %s"
+msgstr "Не могу да покренем Постгрес: %s"
+
+#: src/psycstore/gnunet-service-psycstore.c:200
+msgid "Failed to store membership information!\n"
+msgstr "Нисам успео да сместим податке о чланству!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:224
+msgid "Failed to test membership!\n"
+msgstr "Нисам успео да тестирам чланство!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:246
+msgid "Failed to store fragment!\n"
+msgstr "Нисам успео да сместим делић!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:272
+msgid "Failed to get fragment!\n"
+msgstr "Нисам успео да добавим делић!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:299
+msgid "Failed to get message!\n"
+msgstr "Нисам успео да добавим поруку!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:328
+msgid "Failed to get message fragment!\n"
+msgstr "Нисам успео да добавим делић поруке!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:356
+msgid "Failed to get master counters!\n"
+msgstr "Нисам успео да добавим главне бројаче!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:392
+#: src/psycstore/gnunet-service-psycstore.c:465
+msgid "Tried to set invalid state variable name!\n"
+msgstr "Покушах да поставим назив променљиве неисправног стања!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:408
+msgid "Failed to begin modifying state!\n"
+msgstr "Нисам успео да започнем стање измене!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:431
+#, c-format
+msgid "Unknown operator: %c\n"
+msgstr "Непознат оператор: %c\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:441
+msgid "Failed to end modifying state!\n"
+msgstr "Нисам успео да завршим стање измене!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:479
+msgid "Failed to begin synchronizing state!\n"
+msgstr "Нисам успео да започнем стање усклађивања!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:495
+msgid "Failed to end synchronizing state!\n"
+msgstr "Нисам успео да завршим стање усклађивања!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:515
+#: src/psycstore/gnunet-service-psycstore.c:534
+msgid "Failed to reset state!\n"
+msgstr "Нисам успео да повратим стање!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:557
+#: src/psycstore/gnunet-service-psycstore.c:608
+msgid "Tried to get invalid state variable name!\n"
+msgstr "Покушах да добавим назив променљиве неисправног стања!\n"
+
+#: src/psycstore/gnunet-service-psycstore.c:584
+#: src/psycstore/gnunet-service-psycstore.c:623
+msgid "Failed to get state variable!\n"
+msgstr "Нисам успео да добавим променљиву стања!\n"
+
+#: src/psycstore/plugin_psycstore_sqlite.c:60
+#, c-format
+msgid "`%s' failed at %s:%d with error: %s (%d)\n"
+msgstr "„%s“ није успело на %s:%d са грешком: %s (%d)\n"
+
+#: src/psycstore/plugin_psycstore_sqlite.c:253
+#, c-format
+msgid ""
+"Error preparing SQL query: %s\n"
+"  %s\n"
+msgstr ""
+"Грешка припремања СКуЛ упита: %s\n"
+"  %s\n"
+
+#: src/psycstore/plugin_psycstore_sqlite.c:276
+#, c-format
+msgid ""
+"Error executing SQL query: %s\n"
+"  %s\n"
+msgstr ""
+"Грешка извршавања СКуЛ упита: %s\n"
+"  %s\n"
+
+#: src/psycstore/plugin_psycstore_sqlite.c:1796
+msgid "SQLite database running\n"
+msgstr "База података СКуЛајта ради\n"
+
+#: src/pt/gnunet-daemon-pt.c:482
+msgid "Failed to pack DNS request.  Dropping.\n"
+msgstr "Нисам успео да упакујем ДНС захтев.  Одбацујем.\n"
+
+#: src/pt/gnunet-daemon-pt.c:488
+msgid "# DNS requests mapped to VPN"
+msgstr "# ДНС захтеви су мапирани у ВПН"
+
+#: src/pt/gnunet-daemon-pt.c:541
+msgid "# DNS records modified"
+msgstr "# ДНС записи су измењени"
+
+#: src/pt/gnunet-daemon-pt.c:717
+msgid "# DNS replies intercepted"
+msgstr "# ДНС одговори су пресретени"
+
+#: src/pt/gnunet-daemon-pt.c:723
+msgid "Failed to parse DNS request.  Dropping.\n"
+msgstr "Нисам успео да обрадим ДНС захтев.  Одбацујем.\n"
+
+#: src/pt/gnunet-daemon-pt.c:826
+msgid "# DNS requests dropped (timeout)"
+msgstr "# ДНС захтеви су одбачени (истекло је време)"
+
+#: src/pt/gnunet-daemon-pt.c:883
+msgid "# DNS requests intercepted"
+msgstr "# ДНС захтеви су пресретени"
+
+#: src/pt/gnunet-daemon-pt.c:888
+msgid "# DNS requests dropped (DNS mesh channel down)"
+msgstr "# ДНС захтеви су одбачени (ДНС меш канал је пао)"
+
+#: src/pt/gnunet-daemon-pt.c:896
+msgid "# DNS requests dropped (malformed)"
+msgstr "# ДНС захтеви су одбачени (лоши су)"
+
+#: src/pt/gnunet-daemon-pt.c:969
+msgid "# DNS replies received"
+msgstr "# ДНС одговори су примљени"
+
+#: src/pt/gnunet-daemon-pt.c:985
+msgid "# DNS replies dropped (too late?)"
+msgstr "# ДНС одговори су одбачени (прекасно је?)"
+
+#: src/pt/gnunet-daemon-pt.c:1261 src/pt/gnunet-daemon-pt.c:1270
+#: src/pt/gnunet-daemon-pt.c:1290 src/pt/gnunet-daemon-pt.c:1301
+#: src/pt/gnunet-daemon-pt.c:1310
+#, c-format
+msgid "Failed to connect to %s service.  Exiting.\n"
+msgstr "Нисам успео да се повежем са „%s“ услугом.  Излазим.\n"
+
+#: src/pt/gnunet-daemon-pt.c:1347
+msgid "Daemon to run to perform IP protocol translation to GNUnet"
+msgstr "Демон за покретање за обављање превода ИП протокола у ГНУнет"
+
+#: src/regex/gnunet-daemon-regexprofiler.c:270
+#: src/regex/gnunet-regex-simulation-profiler.c:659
+#, c-format
+msgid "%s service is lacking key configuration settings (%s).  Exiting.\n"
+msgstr "„%s“ услузи недостају поставке подешавања кључа (%s).  Излазим.\n"
+
+#: src/regex/gnunet-daemon-regexprofiler.c:380
+msgid "Daemon to announce regular expressions for the peer using mesh."
+msgstr "Демон за најаву регуларних израза за парњака који користи меш."
+
+#: src/regex/gnunet-regex-profiler.c:1288
+msgid "No configuration file given. Exiting\n"
+msgstr "Није дата датотека подешавања. Излазим\n"
+
+#: src/regex/gnunet-regex-profiler.c:1299
+msgid "Configuration option \"regex_prefix\" missing. Exiting\n"
+msgstr "Недостаје опција подешавања „regex_prefix“. Излазим\n"
+
+#: src/regex/gnunet-regex-profiler.c:1328
+#: src/regex/gnunet-regex-simulation-profiler.c:622
+#, c-format
+msgid "No policy directory specified on command line. Exiting.\n"
+msgstr "На линији наредби није наведен директоријум политике. Излазим.\n"
+
+#: src/regex/gnunet-regex-profiler.c:1334
+#: src/regex/gnunet-regex-simulation-profiler.c:629
+#, c-format
+msgid "Specified policies directory does not exist. Exiting.\n"
+msgstr "Наведени директоријум политике не постоји. Излазим.\n"
+
+#: src/regex/gnunet-regex-profiler.c:1341
+#, c-format
+msgid "No files found in `%s'\n"
+msgstr "Нисам нашао датотеке у „%s“\n"
+
+#: src/regex/gnunet-regex-profiler.c:1350
+msgid "No search strings file given. Exiting.\n"
+msgstr "Није дата датотека ниски претраге. Излазим.\n"
+
+#: src/regex/gnunet-regex-profiler.c:1370
+msgid "Error loading search strings. Exiting.\n"
+msgstr "Грешка учитавања ниски претраге. Излазим.\n"
+
+#: src/regex/gnunet-regex-profiler.c:1455
+msgid "name of the file for writing statistics"
+msgstr "назив датотеке за записивање статистике"
+
+#: src/regex/gnunet-regex-profiler.c:1458
+msgid "wait TIMEOUT before ending the experiment"
+msgstr "чека ВРЕМЕ_ИСТЕКА пре завршавања експеримента"
+
+#: src/regex/gnunet-regex-profiler.c:1461
+msgid "directory with policy files"
+msgstr "директоријум са датотекама политике"
+
+#: src/regex/gnunet-regex-profiler.c:1464
+msgid "name of file with input strings"
+msgstr "назив датотеке са улазним нискама"
+
+#: src/regex/gnunet-regex-profiler.c:1467
+msgid "name of file with hosts' names"
+msgstr "назив датотеке са називима домаћина"
+
+#: src/regex/gnunet-regex-profiler.c:1479
+msgid "Profiler for regex"
+msgstr "Профилатор за регуларни израз"
+
+#: src/regex/gnunet-regex-simulation-profiler.c:689
+msgid "name of the table to write DFAs"
+msgstr "назив табеле за уписивање ДФА-са"
+
+#: src/regex/gnunet-regex-simulation-profiler.c:692
+msgid "maximum path compression length"
+msgstr "највећа дужина сажимања путање"
+
+#: src/regex/gnunet-regex-simulation-profiler.c:705
+msgid "Profiler for regex library"
+msgstr "Профилатор за библиотеку регуларног израза"
+
+#: src/regex/regex_api.c:131
+#, c-format
+msgid "Regex `%s' is too long!\n"
+msgstr "Регуларни израз „%s“ је превелик!\n"
+
+#: src/revocation/gnunet-revocation.c:126
+#, c-format
+msgid "Key `%s' is valid\n"
+msgstr "Кључ „%s“ је исправан\n"
+
+#: src/revocation/gnunet-revocation.c:131
+#, c-format
+msgid "Key `%s' has been revoked\n"
+msgstr "Тастер „%s“ је опозван\n"
+
+#: src/revocation/gnunet-revocation.c:137
+msgid "Internal error\n"
+msgstr "Унутрашња грешка\n"
+
+#: src/revocation/gnunet-revocation.c:163
+#, c-format
+msgid "Key for ego `%s' is still valid, revocation failed (!)\n"
+msgstr "Кључ за его „%s“ још увек важи, опозивање није успело (!)\n"
+
+#: src/revocation/gnunet-revocation.c:168
+msgid "Revocation failed (!)\n"
+msgstr "Опозивање није успело (!)\n"
+
+#: src/revocation/gnunet-revocation.c:173
+#, c-format
+msgid "Key for ego `%s' has been successfully revoked\n"
+msgstr "Кључ за его „%s“ је успешно опозван\n"
+
+#: src/revocation/gnunet-revocation.c:178
+msgid "Revocation successful.\n"
+msgstr "Опозивање је успело.\n"
+
+#: src/revocation/gnunet-revocation.c:183
+msgid "Internal error, key revocation might have failed\n"
+msgstr "Унутрашња грешка, опозив кључа можда није успео\n"
+
+#: src/revocation/gnunet-revocation.c:294
+#, c-format
+msgid "Revocation certificate for `%s' stored in `%s'\n"
+msgstr "Уверење опозива за „%s“ је смештено у „%s“\n"
+
+#: src/revocation/gnunet-revocation.c:324
+#, c-format
+msgid "Ego `%s' not found.\n"
+msgstr "Нисам нашао его „%s“.\n"
+
+#: src/revocation/gnunet-revocation.c:345
+#, c-format
+msgid "Error: revocation certificate in `%s' is not for `%s'\n"
+msgstr "Грешка: уверење опозива у „%s“ није за „%s“\n"
+
+#: src/revocation/gnunet-revocation.c:365
+msgid "Revocation certificate ready\n"
+msgstr "Уверење опозива је спремно\n"
+
+#: src/revocation/gnunet-revocation.c:375
+msgid "Revocation certificate not ready, calculating proof of work\n"
+msgstr "Уверење опозива није спремно, израчунавам доказ о раду\n"
+
+#: src/revocation/gnunet-revocation.c:407
+#, c-format
+msgid "Public key `%s' malformed\n"
+msgstr "Јавни кључ „%s“ је лош\n"
+
+#: src/revocation/gnunet-revocation.c:421
+msgid "Testing and revoking at the same time is not allowed, only executing 
test.\n"
+msgstr "Тестирање и опозивање у исто време није дозвољено, само тестирање 
извршавам.\n"
+
+#: src/revocation/gnunet-revocation.c:441
+msgid "No filename to store revocation certificate given.\n"
+msgstr "Није дат назив датотеке за смештање уверења опозива.\n"
+
+#: src/revocation/gnunet-revocation.c:463
+#, c-format
+msgid "Failed to read revocation certificate from `%s'\n"
+msgstr "Нисам успео да прочитам уверење опозива из „%s“\n"
+
+#: src/revocation/gnunet-revocation.c:488
+msgid "No action specified. Nothing to do.\n"
+msgstr "Није наведена ниједна радња. Немам шта да радим.\n"
+
+#: src/revocation/gnunet-revocation.c:504
+msgid "use NAME for the name of the revocation file"
+msgstr "користи НАЗИВ за назив датотеке опозивања"
+
+#: src/revocation/gnunet-revocation.c:507
+msgid "revoke the private key associated for the the private key associated 
with the ego NAME "
+msgstr "опозива лични кључ придружен личном кључу са его НАЗИВОМ "
+
+#: src/revocation/gnunet-revocation.c:510
+msgid "actually perform revocation, otherwise we just do the precomputation"
+msgstr "заправо обавља опозив, у супротном само радимо предизрачунавање"
+
+#: src/revocation/gnunet-revocation.c:513
+msgid "test if the public key KEY has been revoked"
+msgstr "тестира да ли је јавни кључ КЉУЧ опозван"
+
+#: src/revocation/gnunet-service-revocation.c:272
+msgid "Duplicate revocation received from peer. Ignored.\n"
+msgstr "Двоструки опзив је примљен од парњака. Занемарено.\n"
+
+#: src/revocation/gnunet-service-revocation.c:434
+#, c-format
+msgid "Error computing revocation set union with %s\n"
+msgstr "Грешка прорачуна уније скупа опозивања са %s\n"
+
+#: src/revocation/gnunet-service-revocation.c:486
+msgid "SET service crashed, terminating revocation service\n"
+msgstr "Услуга ПОСТАВИ се урушила, окончавам услугу опозивања\n"
+
+#: src/revocation/gnunet-service-revocation.c:812
+msgid "Could not open revocation database file!"
+msgstr "Не могу да отворим датотеку базе података опозивања!"
+
+#: src/scalarproduct/gnunet-scalarproduct.c:225
+msgid "You must specify at least one message ID to check!\n"
+msgstr "Морате навести бар један ИБ поруке за проверу!\n"
+
+#: src/scalarproduct/gnunet-scalarproduct.c:232
+msgid "This program needs a session identifier for comparing vectors.\n"
+msgstr "Овом програму је потребан одредник сесије за поређење вектора.\n"
+
+#: src/scalarproduct/gnunet-scalarproduct.c:239
+msgid "Please give a session key for --input_key!\n"
+msgstr "Дајте кључ сесије за „--input_key“!\n"
+
+#: src/scalarproduct/gnunet-scalarproduct.c:251
+#, c-format
+msgid "Tried to set initiator mode, as peer ID was given. However, `%s' is not 
a valid peer identifier.\n"
+msgstr "Покушах да поставим режим покретача, јер је ИБ парњака био дат. Било 
како било, „%s“ није добар одредник парњака.\n"
+
+#: src/scalarproduct/gnunet-scalarproduct.c:278
+#: src/scalarproduct/gnunet-scalarproduct.c:314
+#, c-format
+msgid "Could not convert `%s' to int32_t.\n"
+msgstr "Не могу да претворим „%s“ у „int32_t“.\n"
+
+#: src/scalarproduct/gnunet-scalarproduct.c:286
+msgid "Need elements to compute the vectorproduct, got none.\n"
+msgstr "Потребни су елементи за израчунавање производа вектора, нисам добио 
ниједан.\n"
+
+#: src/scalarproduct/gnunet-scalarproduct.c:346
+#, c-format
+msgid "Could not convert `%s' to integer.\n"
+msgstr "Не могу да претворим „%s“ у цео број.\n"
+
+#: src/scalarproduct/gnunet-scalarproduct.c:407
+msgid "A comma separated list of elements to compare as vector with our remote 
peer."
+msgstr "Зарезом раздвојен списак елемената за поређење као вектора са нашим 
удаљеним парњаком."
+
+#: src/scalarproduct/gnunet-scalarproduct.c:410
+msgid "A comma separated mask to select which elements should actually be 
compared."
+msgstr "Зарезом раздвојена маска за бирање који елементи заправо требају бити 
поређени."
+
+#: src/scalarproduct/gnunet-scalarproduct.c:413
+msgid "[Optional] peer to calculate our scalarproduct with. If this parameter 
is not given, the service will wait for a remote peer to compute the request."
+msgstr "[Изборни] парњак са којим израчунавамо наш скаларни производ. Ако тај 
параметар није дат, услуга ће чекати да удаљени парњак прорачуна захтев."
+
+#: src/scalarproduct/gnunet-scalarproduct.c:416
+msgid "Transaction ID shared with peer."
+msgstr "ИБ преноса дељеног са парњаком."
+
+#: src/scalarproduct/gnunet-scalarproduct.c:425
+msgid "Calculate the Vectorproduct with a GNUnet peer."
+msgstr "Израчунава Производ вектора са ГНУнет парњаком."
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:541
+#, c-format
+msgid "Client (%p) disconnected from us.\n"
+msgstr "Прекинута је веза клијента (%p) са нама.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:613
+#: src/scalarproduct/gnunet-service-scalarproduct.c:702
+#, c-format
+msgid "Could not send message to client (%p)!\n"
+msgstr "Не могу да пошаљем поруку клијенту (%p)!\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:619
+#, c-format
+msgid "Sending session-end notification to client (%p) for session %s\n"
+msgstr "Шаљем обавештење о крају сесије клијенту (%p) за сесију %s\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:712
+#, c-format
+msgid "Sent result to client (%p), this session (%s) has ended!\n"
+msgstr "Резултати су послати клијенту (%p), ова сесија (%s) је завршена!\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:766
+#: src/scalarproduct/gnunet-service-scalarproduct.c:855
+msgid "Could not send service-response message via mesh!)\n"
+msgstr "Не могу да пошаљем поруку одговора услуге путем меша!)\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1028
+#, c-format
+msgid "Failed to communicate with `%s', scalar product calculation aborted.\n"
+msgstr "Нисам успео да разговарам са „%s“, прорачун скаларног производа је 
прекинут.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1099
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1208
+msgid "Transmitting service request.\n"
+msgstr "Одашиљем захтев услуге.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1108
+msgid "Could not send service-request multipart message to channel!\n"
+msgstr "Не могу да пошаљем вишеделовну поруку захтева услуге каналу!\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1147
+#, c-format
+msgid "Successfully created new channel to peer (%s)!\n"
+msgstr "Успешно је створен нови канал за парњака (%s)!\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1217
+msgid "Could not send message to channel!\n"
+msgstr "Не могу да пошаљем поруку на канал!\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1274
+msgid "Too short message received from client!\n"
+msgstr "Прекратка порука је примљена од клијента!\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1287
+msgid "Invalid message received from client, session information incorrect!\n"
+msgstr "Неисправна порука је примљена са клијента, подаци о сесији су 
нетачни!\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1298
+#, c-format
+msgid "Duplicate session information received, cannot create new session with 
key `%s'\n"
+msgstr "Двоструки подаци сесије су примљени, не могу да направим нову сесију 
са кључем „%s“\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1318
+#, c-format
+msgid "Got client-request-session with key %s, preparing channel to remote 
service.\n"
+msgstr "Добих сесију захтева клијента са кључем %s, припремам канал за удљену 
услугу.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1354
+#, c-format
+msgid "Creating new channel for session with key %s.\n"
+msgstr "Стварам нови канал за сесију са кључем „%s“.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1399
+#, c-format
+msgid "Got client-responder-session with key %s and a matching 
service-request-session set, processing.\n"
+msgstr "Добих сесију одговарача клијента са кључем %s и одговарајући скуп 
сесије захтева услуге, обрађујем.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1409
+#, c-format
+msgid "Got client-responder-session with key %s but NO matching 
service-request-session set, queuing element for later use.\n"
+msgstr "Добих сесију одговарача клијента са кључем %s али НЕ и одговарајући 
скуп сесије захтева услуге, стављам елемент у ред за касније коришћење.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1439
+#, c-format
+msgid "New incoming channel from peer %s.\n"
+msgstr "Нови долазни канал са парњака „%s“.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1471
+#, c-format
+msgid "Peer disconnected, terminating session %s with peer (%s)\n"
+msgstr "Веза са парњаком је прекинута, окончавам сесију %s са парњаком (%s)\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1672
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1814
+#, c-format
+msgid "Got session with key %s and a matching element set, processing.\n"
+msgstr "Добих сесију са кључем „%s“ и одговарајући скуп елемената, 
обрађујем.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1681
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1821
+#, c-format
+msgid "Got session with key %s without a matching element set, queueing.\n"
+msgstr "Добих сесију са кључем „%s“ без одговарајућег скупа елемената, стављам 
у ред.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:1771
+#, c-format
+msgid "Got message with duplicate session key (`%s'), ignoring service 
request.\n"
+msgstr "Добих поруку са двоструким кључем сесије („%s“), занемарујем захтев 
сесије.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:2014
+msgid "Shutting down, initiating cleanup.\n"
+msgstr "Гасим, покрећем чишћење.\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:2100
+msgid "Connect to MESH failed\n"
+msgstr "Повезивање са МЕШОМ није успело\n"
+
+#: src/scalarproduct/gnunet-service-scalarproduct.c:2104
+msgid "Mesh initialized\n"
+msgstr "Меш је покренут\n"
+
+#: src/scalarproduct/scalarproduct_api.c:246
+msgid "# SUC responder result messages received"
+msgstr "# примљене су поруке резултата „SUC“ одговарача"
+
+#: src/scalarproduct/scalarproduct_api.c:300
+msgid "# bytes sent to scalarproduct"
+msgstr "# бајтови су послати скаларном производу"
+
+#: src/scalarproduct/scalarproduct_api.c:345
+#: src/scalarproduct/scalarproduct_api.c:440
+msgid "Failed to connect to the scalarproduct service\n"
+msgstr "Нисам успео да се повежем са услугом скаларног производа\n"
+
+#: src/scalarproduct/scalarproduct_api.c:353
+#: src/scalarproduct/scalarproduct_api.c:448
+msgid "Failed to send a message to the statistics service\n"
+msgstr "Нисам успео да пошаљем поруку услузи статистике\n"
+
+#: src/scalarproduct/scalarproduct_api.c:387
+#: src/scalarproduct/scalarproduct_api.c:485
+msgid "Failed to send a message to the scalarproduct service\n"
+msgstr "Нисам успео да пошаљем поруку услузи скаларног производа\n"
+
+#: src/secretsharing/gnunet-secretsharing-profiler.c:538
+msgid "dkg start delay"
+msgstr "застој „dkg“ почетка"
+
+#: src/secretsharing/gnunet-secretsharing-profiler.c:541
+msgid "dkg timeout"
+msgstr "време истека „dkg“-а"
+
+#: src/secretsharing/gnunet-secretsharing-profiler.c:544
+msgid "threshold"
+msgstr "осетљивост"
+
+#: src/secretsharing/gnunet-secretsharing-profiler.c:547
+msgid "also profile decryption"
+msgstr "такође опис профила"
+
+#: src/set/gnunet-service-set.c:1431
+msgid "Could not connect to mesh service\n"
+msgstr "Не могу да се повежем са меш услугом\n"
+
+#: src/set/gnunet-set-ibf-profiler.c:221
+msgid "number of element in set A-B"
+msgstr "број елемената у скупу A-B"
+
+#: src/set/gnunet-set-ibf-profiler.c:224
+msgid "number of element in set B-A"
+msgstr "број елемената у скупу B-A"
+
+#: src/set/gnunet-set-ibf-profiler.c:227
+msgid "number of common elements in A and B"
+msgstr "број заједничких елемената у A и B"
+
+#: src/set/gnunet-set-ibf-profiler.c:230
+msgid "hash num"
+msgstr "хеш број"
+
+#: src/set/gnunet-set-ibf-profiler.c:233
+msgid "ibf size"
+msgstr "„ibf“ величина"
+
+#: src/set/gnunet-set-profiler.c:295
+msgid "oeration to execute"
+msgstr "операција за извршавање"
+
+#: src/statistics/gnunet-service-statistics.c:280
+#, c-format
+msgid "Loading %llu bytes of statistics from `%s'\n"
+msgstr "Учитавам %llu бајта статистике из „%s“\n"
+
+#: src/statistics/gnunet-service-statistics.c:346
+#, c-format
+msgid "Wrote %llu bytes of statistics to `%s'\n"
+msgstr "Записујем %llu бајта статистике у „%s“\n"
+
+#: src/statistics/gnunet-statistics.c:140
+msgid "Failed to obtain statistics.\n"
+msgstr "Нисам успео да добијем статистику.\n"
+
+#: src/statistics/gnunet-statistics.c:142
+#, c-format
+msgid "Failed to obtain statistics from host `%s:%llu'\n"
+msgstr "Нисам успео да добијем статистику од домаћина „%s:%llu“\n"
+
+#: src/statistics/gnunet-statistics.c:189
+msgid "Missing argument: subsystem \n"
+msgstr "Недостаје аргумент: подсистем \n"
+
+#: src/statistics/gnunet-statistics.c:195
+msgid "Missing argument: name\n"
+msgstr "Недостаје аргумент: назив\n"
+
+#: src/statistics/gnunet-statistics.c:226
+#, c-format
+msgid "No subsystem or name given\n"
+msgstr "Није дат подсистем или назив\n"
+
+#: src/statistics/gnunet-statistics.c:234
+#, c-format
+msgid "Failed to initialize watch routine\n"
+msgstr "Нисам успео да покренем рутину гледања\n"
+
+#: src/statistics/gnunet-statistics.c:261
+#, c-format
+msgid "Trying to connect to remote host, but service `%s' is not running\n"
+msgstr "Покушавам да се повежем са удаљеним домаћином, али услуга „%s“ није 
покренута\n"
+
+#: src/statistics/gnunet-statistics.c:269
+#, c-format
+msgid "A port is required to connect to host `%s'\n"
+msgstr "Потребан је прикључник за повезивање са домаћином „%s“\n"
+
+#: src/statistics/gnunet-statistics.c:276
+#, c-format
+msgid "A port has to be between 1 and 65535 to connect to host `%s'\n"
+msgstr "Прикључник треба бити између 1 и 65535 за повезивање са домаћином 
„%s“\n"
+
+#: src/statistics/gnunet-statistics.c:308
+#, c-format
+msgid "Invalid argument `%s'\n"
+msgstr "Неисправан аргумент „%s“\n"
+
+#: src/statistics/gnunet-statistics.c:334
+msgid "limit output to statistics for the given NAME"
+msgstr "ограничава излаз на статистику за дати НАЗИВ"
+
+#: src/statistics/gnunet-statistics.c:337
+msgid "make the value being set persistent"
+msgstr "чини да вредност бива постављена трајном"
+
+#: src/statistics/gnunet-statistics.c:340
+msgid "limit output to the given SUBSYSTEM"
+msgstr "ограничава излаз на дати ПОДСИСТЕМ"
+
+#: src/statistics/gnunet-statistics.c:343
+msgid "just print the statistics value"
+msgstr "само исписује вредност статистике"
+
+#: src/statistics/gnunet-statistics.c:346
+msgid "watch value continuously"
+msgstr "гледа вредност непрекидно"
+
+#: src/statistics/gnunet-statistics.c:349
+msgid "connect to remote host"
+msgstr "повезује се са удаљеним домаћином"
+
+#: src/statistics/gnunet-statistics.c:352
+msgid "port for remote host"
+msgstr "прикључник за удаљеног домаћина"
+
+#: src/statistics/gnunet-statistics.c:364
+msgid "Print statistics about GNUnet operations."
+msgstr "Исписује статистику о ГНУнет радњама."
+
+#: src/statistics/statistics_api.c:519
+msgid "Could not save some persistent statistics\n"
+msgstr "Не могу да сачувам нешто од трајне статистике\n"
+
+#: src/statistics/statistics_api.c:1090
+msgid "Failed to receive acknowledgement from statistics service, some 
statistics might have been lost!\n"
+msgstr "Нисам успео да примим потврду од услуге статистике, неке статистике 
могу бити изгубљене!\n"
+
+#: src/testbed/generate-underlay-topology.c:223
+msgid "Need atleast 2 arguments\n"
+msgstr "Потребна су најмање 2 аргумента\n"
+
+#: src/testbed/generate-underlay-topology.c:228
+msgid "Database filename missing\n"
+msgstr "Недостаје назив датотеке базе података\n"
+
+#: src/testbed/generate-underlay-topology.c:235
+msgid "Topology string missing\n"
+msgstr "Ниска размештаја недостаје\n"
+
+#: src/testbed/generate-underlay-topology.c:240
+#, c-format
+msgid "Invalid topology: %s\n"
+msgstr "Неисправан размештај: %s\n"
+
+#: src/testbed/generate-underlay-topology.c:252
+#, c-format
+msgid "An argument is missing for given topology `%s'\n"
+msgstr "Недостаје аргумент за дати размештај „%s“\n"
+
+#: src/testbed/generate-underlay-topology.c:258
+#, c-format
+msgid "Invalid argument `%s' given as topology argument\n"
+msgstr "Неисправан аргумент „%s“ је дат као аргумент размештаја\n"
+
+#: src/testbed/generate-underlay-topology.c:266
+#, c-format
+msgid "Filename argument missing for topology `%s'\n"
+msgstr "Аргумент назива датотеке недостаје за размештај „%s“\n"
+
+#: src/testbed/generate-underlay-topology.c:280
+#, c-format
+msgid "Second argument for topology `%s' is missing\n"
+msgstr "Други аргумент за размештај „%s“ недостаје\n"
+
+#: src/testbed/generate-underlay-topology.c:286
+#, c-format
+msgid "Invalid argument `%s'; expecting unsigned int\n"
+msgstr "Неисправан аргумент „%s“; очекујем цео број без знака\n"
+
+#: src/testbed/generate-underlay-topology.c:335
+#: src/testbed/gnunet-testbed-profiler.c:293
+msgid "create COUNT number of peers"
+msgstr "ствара УКУПНОСТ број парњака"
+
+#: src/testbed/generate-underlay-topology.c:344
+msgid ""
+"Generates SQLite3 database representing a given underlay topology.\n"
+"Usage: gnunet-underlay-topology [OPTIONS] db-filename TOPO [TOPOOPTS]\n"
+"The following options are available for TOPO followed by TOPOOPTS if 
applicable:\n"
+"\t LINE\n"
+"\t RING\n"
+"\t RANDOM <num_rnd_links>\n"
+"\t SMALL_WORLD <num_rnd_links>\n"
+"\t SMALL_WORLD_RING <num_rnd_links>\n"
+"\t CLIQUE\n"
+"\t 2D_TORUS\n"
+"\t SCALE_FREE <cap> <m>\n"
+"\t FROM_FILE <filename>\n"
+"TOPOOPTS:\n"
+"\t num_rnd_links: The number of random links\n"
+"\t cap: the maximum number of links a node can have\n"
+"\t m: the number of links a node should have while joining the network\n"
+"\t filename: the path of the file which contains topology information\n"
+"NOTE: the format of the above file is descibed here: 
https://www.gnunet.org/content/topology-file-format\n";
+msgstr ""
+"Ствара СКуЛајт3 базу података која представља дати основни размештај.\n"
+"Коришћење: gnunet-underlay-topology [ОПЦИЈЕ] db-filename TOPO [ТОПООПЦИЈЕ]\n"
+"Следеће опције су доступне за „TOPO“ за којима следе ТОПООПЦИЈЕ ако су 
примењиве:\n"
+"\t LINE\n"
+"\t RING\n"
+"\t RANDOM <num_rnd_links>\n"
+"\t SMALL_WORLD <num_rnd_links>\n"
+"\t SMALL_WORLD_RING <num_rnd_links>\n"
+"\t CLIQUE\n"
+"\t 2D_TORUS\n"
+"\t SCALE_FREE <cap> <m>\n"
+"\t FROM_FILE <filename>\n"
+"TOPOOPTS:\n"
+"\t num_rnd_links: Број насумичних веза\n"
+"\t cap: највећи број веза које чвор може да има\n"
+"\t m: број веза које чвор треба да има приликом придруживања мрежи\n"
+"\t filename: путања датотеке која садржи податке о размештају\n"
+"НАПОМЕНА: формат горе поменуте датотеке је описан овде: 
https://www.gnunet.org/content/topology-file-format\n";
+
+#: src/testbed/gnunet-daemon-latency-logger.c:325
+msgid "Daemon to log latency values of connections to neighbours"
+msgstr "Демон за дневничење вредности кашњења веза са суседима"
+
+#: src/testbed/gnunet-daemon-testbed-blacklist.c:264
+msgid "Daemon to restrict incoming transport layer connections during testbed 
deployments"
+msgstr "Демон за ограничење долазних веза слоја преноса за време примене 
пробног места"
+
+#: src/testbed/gnunet-daemon-testbed-underlay.c:235 src/testing/list-keys.c:50
+#: src/testing/testing.c:293 src/util/gnunet-ecc.c:217
+#, c-format
+msgid "Incorrect hostkey file format: %s\n"
+msgstr "Нетачан формат датотеке кључа домаћина: %s\n"
+
+#: src/testbed/gnunet-daemon-testbed-underlay.c:474
+msgid "Daemon to restrict underlay network in testbed deployments"
+msgstr "Демон за ограничење основне мреже у применама пробног места"
+
+#: src/testbed/gnunet-service-testbed_cpustatus.c:730
+#, c-format
+msgid "Cannot open %s for writing load statistics.  Not logging load 
statistics\n"
+msgstr "Не могу да отворим „%s“ за писање статистике учитавања.  Не записујем 
у дневник статистику учитавања\n"
+
+#: src/testbed/gnunet-service-testbed_peers.c:1015
+msgid "Misconfiguration (can't connect to the ARM service)"
+msgstr "Лоше подешавање (не могу да се повежем на АУР услугу)"
+
+#: src/testbed/gnunet-service-testbed_peers.c:1021
+msgid "Request doesn't fit into a message"
+msgstr "Захтев не стаје у поруку"
+
+#: src/testbed/gnunet-service-testbed_peers.c:1059
+#, c-format
+msgid "%s service can't be started because ARM is shutting down"
+msgstr "„%s“ услуга се не може покренути јер се АУР гаси"
+
+#: src/testbed/gnunet_testbed_mpi_spawn.c:125
+msgid "Waiting for child to exit.\n"
+msgstr "Чекам на пород да изађе.\n"
+
+#: src/testbed/gnunet_testbed_mpi_spawn.c:247
+#, c-format
+msgid "Spawning process `%s'\n"
+msgstr "Умножавам процес „%s“\n"
+
+#: src/testbed/gnunet-testbed-profiler.c:267
+#, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr "Излазим јер је број парњака %u\n"
+
+#: src/testbed/gnunet-testbed-profiler.c:296
+msgid "tolerate COUNT number of continious timeout failures"
+msgstr "толерише УКУПНО број непрекидних неуспеха истека времена"
+
+#: src/testbed/gnunet-testbed-profiler.c:299
+msgid "run profiler in non-interactive mode where upon testbed setup the 
profiler does not wait for a keystroke but continues to run until a termination 
signal is received"
+msgstr "покреће профајлера у не-дејственом режиму у коме над поставком пробног 
места профајлер не чека на притисак тастера већ наставља да ради све док се не 
прими сигнал окончања"
+
+#: src/testbed/testbed_api_hosts.c:415
+#, c-format
+msgid "Hosts file %s not found\n"
+msgstr "Нисам нашао датотеку домаћина „%s“\n"
+
+#: src/testbed/testbed_api_hosts.c:423
+#, c-format
+msgid "Hosts file %s has no data\n"
+msgstr "Датотека домаћина „%s“ нема података\n"
+
+#: src/testbed/testbed_api_hosts.c:430
+#, c-format
+msgid "Hosts file %s cannot be read\n"
+msgstr "Не могу да прочитам датотеку домаћина „%s“\n"
+
+#: src/testbed/testbed_api_hosts.c:570
+#, c-format
+msgid "The function %s is only available when compiled with (--with-ll)\n"
+msgstr "Функција „%s“ је доступна само када је преведена са (--with-ll)\n"
+
+#: src/testbed/testbed_api_hosts.c:1586
+#, c-format
+msgid "Adding host %u failed with error: %s\n"
+msgstr "Додавање домаћина %u није успело са грешком: %s\n"
+
+#: src/testbed/testbed_api_testbed.c:819
+msgid "Linking controllers failed. Exiting"
+msgstr "Повезивање контролера није успело. Излазим"
+
+#: src/testbed/testbed_api_testbed.c:988
+#, c-format
+msgid "Host registration failed for a host. Error: %s\n"
+msgstr "Регистрација домаћина није успела за домаћина. Грешка: %s\n"
+
+#: src/testbed/testbed_api_testbed.c:1054
+msgid "Controller crash detected. Shutting down.\n"
+msgstr "Урушавање контролера је откривено. Гасим се.\n"
+
+#: src/testbed/testbed_api_testbed.c:1143
+#, c-format
+msgid "Host %s cannot start testbed\n"
+msgstr "Домаћин „%s“ не може да покрене пробно место\n"
+
+#: src/testbed/testbed_api_testbed.c:1147
+msgid "Testbed cannot be started on localhost\n"
+msgstr "Пробно место се не може покренути на локалном домаћину\n"
+
+#: src/testbed/testbed_api_testbed.c:1185
+msgid "Cannot start the master controller"
+msgstr "Не могу да покренем главног контролора"
+
+#: src/testbed/testbed_api_testbed.c:1203
+msgid "Shutting down testbed due to timeout while setup.\n"
+msgstr "Гасим пробно место због истека времена приликом подешавања.\n"
+
+#: src/testbed/testbed_api_testbed.c:1263
+msgid "No hosts loaded from LoadLeveler. Need at least one host\n"
+msgstr "Ниједан домаћин није учитан из „LoadLeveler“-а. Потребан је барем 
један домаћин\n"
+
+#: src/testbed/testbed_api_testbed.c:1275
+msgid "No hosts loaded. Need at least one host\n"
+msgstr "Ниједан домаћин није учитан. Потребан је барем један домаћин\n"
+
+#: src/testbed/testbed_api_testbed.c:1299
+msgid "Specified topology must be supported by testbed"
+msgstr "Наведени размештај мора бити подржан пробним местом"
+
+#: src/testbed/testbed_api_testbed.c:1349
+#, c-format
+msgid "Maximum number of edges a peer can have in a scale free topology cannot 
be more than %u.  Given `%s = %llu'"
+msgstr "Највећи број ивица које парњак може имати у слободном размештају 
лествице не може бити већи од %u.  Дато је „%s = %llu“"
+
+#: src/testbed/testbed_api_testbed.c:1365
+#, c-format
+msgid "The number of edges that can established when adding a new node to 
scale free topology cannot be more than %u.  Given `%s = %llu'"
+msgstr "Број ивица које се могу успоставити приликом додавања новог чвора у 
слободном размештају лествице не може бити већи од %u.  Дато је „%s = %llu“"
+
+#: src/testbed/testbed_api_topology.c:960
+#, c-format
+msgid "Topology file %s not found\n"
+msgstr "Нисам нашао датотеку размештаја „%s“\n"
+
+#: src/testbed/testbed_api_topology.c:966
+#, c-format
+msgid "Topology file %s has no data\n"
+msgstr "Датотека размештаја „%s“ нема података\n"
+
+#: src/testbed/testbed_api_topology.c:973
+#, c-format
+msgid "Topology file %s cannot be read\n"
+msgstr "Не могу да прочитам датотеку размештаја „%s“\n"
+
+#: src/testbed/testbed_api_topology.c:995
+#, c-format
+msgid "Failed to read peer index from toology file: %s"
+msgstr "Нисам успео да прочитам индекс парњака из датотеке размештаја: %s"
+
+#: src/testbed/testbed_api_topology.c:1004
+#: src/testbed/testbed_api_topology.c:1028
+#, c-format
+msgid "Value in given topology file: %s out of range\n"
+msgstr "Вредност у датој датотеци размештаја: „%s“ је ван опсега\n"
+
+#: src/testbed/testbed_api_topology.c:1010
+#: src/testbed/testbed_api_topology.c:1034
+#, c-format
+msgid "Failed to read peer index from topology file: %s"
+msgstr "Нисам успео да прочитам индекс парњака из датотеке размештаја: %s"
+
+#: src/testbed/testbed_api_topology.c:1016
+#: src/testbed/testbed_api_topology.c:1040
+msgid "Topology file needs more peers than given ones\n"
+msgstr "Датотеци размештаја је потребно више парњака од једног датог\n"
+
+#: src/testbed/testbed_api_topology.c:1074
+#, c-format
+msgid "Ignoring to connect peer %u to peer %u\n"
+msgstr "Занемарујем да повежем парњака %u са парњаком %u\n"
+
+#: src/testing/gnunet-testing.c:173
+#, c-format
+msgid "Could not extract hostkey %u (offset too large?)\n"
+msgstr "Не могу да извучем кључ домаћина %u (померај је превелик?)\n"
+
+#: src/testing/gnunet-testing.c:258
+#, c-format
+msgid "Unknown command, use 'q' to quit or 'r' to restart peer\n"
+msgstr "Непозната наредба, користите „q“ да прекинете или „r“ да поново 
покренете парњака\n"
+
+#: src/testing/gnunet-testing.c:355
+msgid "create unique configuration files"
+msgstr "ствара јединствене датотеке подешавања"
+
+#: src/testing/gnunet-testing.c:357
+msgid "extract hostkey file from pre-computed hostkey list"
+msgstr "извлачи датотеку кључа доамћина из унапред прорачунатог списка кључа 
домаћина"
+
+#: src/testing/gnunet-testing.c:359
+msgid "number of unique configuration files to create, or number of the 
hostkey to extract"
+msgstr "број јединствених датотека подешавања за стварање, или број кључа 
домаћина за извлачење"
+
+#: src/testing/gnunet-testing.c:361
+msgid "configuration template"
+msgstr "шаблон подешавања"
+
+#: src/testing/gnunet-testing.c:363
+msgid "run the given service, wait on stdin for 'r' (restart) or 'q' (quit)"
+msgstr "покреће дату услугу, чека на стандардном улазу за „r“ (поновно 
покретање) или „q“ (излази)"
+
+#: src/testing/gnunet-testing.c:376
+msgid "Command line tool to access the testing library"
+msgstr "Алат линије наредби за приезуп библиотеци тестирања"
+
+#: src/testing/list-keys.c:90
+msgid "list COUNT number of keys"
+msgstr "исписује УКУПНОСТ број парњака"
+
+#: src/testing/list-keys.c:93
+msgid "skip COUNT number of keys in the beginning"
+msgstr "прескаче УКУПНОСТ број кључева на почетку"
+
+#: src/testing/testing.c:277
+#, c-format
+msgid "Hostkeys file not found: %s\n"
+msgstr "Нисам нашао датотеку кључева домаћина: %s\n"
+
+#: src/testing/testing.c:718
+#, c-format
+msgid "Key number %u does not exist\n"
+msgstr "Број кључа %u не постоји\n"
+
+#: src/testing/testing.c:1157
+#, c-format
+msgid "You attempted to create a testbed with more than %u hosts.  Please 
precompute more hostkeys first.\n"
+msgstr "Покушали сте да направите пробно место са више од %u домаћина.  Прво 
пре свега израчунајте више кључева домаћина.\n"
+
+#: src/testing/testing.c:1166
+#, c-format
+msgid "Failed to initialize hostkey for peer %u\n"
+msgstr "Нисам успео да покренем кључ домаћина за парњака %u\n"
+
+#: src/testing/testing.c:1176
+msgid "PRIVATE_KEY option in PEER section missing in configuration\n"
+msgstr "опција „PRIVATE_KEY“ у одељку „PEER“ недостаје у подешавањима\n"
+
+#: src/testing/testing.c:1189
+msgid "Failed to create configuration for peer (not enough free ports?)\n"
+msgstr "Нисам успео да направим подешавање за парњака (нема довољно слободних 
прикључника?)\n"
+
+#: src/testing/testing.c:1203
+#, c-format
+msgid "Cannot open hostkey file `%s': %s\n"
+msgstr "Не могу да отворим датотеку кључа домаћина „%s“: %s\n"
+
+#: src/testing/testing.c:1215
+#, c-format
+msgid "Failed to write hostkey file for peer %u: %s\n"
+msgstr "Нисам успео да запишем датотеку кључа домаћина за парњака %u: %s\n"
+
+#: src/testing/testing.c:1240
+#, c-format
+msgid "Failed to write configuration file `%s' for peer %u: %s\n"
+msgstr "Нисам успео да запишем датотеку подешавања „%s“ за парњака %u: %s\n"
+
+#: src/testing/testing.c:1342
+#, c-format
+msgid "Failed to start `%s': %s\n"
+msgstr "Нисам успео да покренем „%s“: %s\n"
+
+#: src/testing/testing.c:1706
+#, c-format
+msgid "Failed to load configuration from %s\n"
+msgstr "Нисам успео да учитам подешавање за „%s“\n"
+
+#: src/topology/friends.c:100
+#, c-format
+msgid "Syntax error in FRIENDS file at offset %llu, skipping bytes `%.*s'.\n"
+msgstr "Грешка синтаксе у датотеци „FRIENDS“ на померају %llu, прескачем 
бајтове „%.*s“.\n"
+
+#: src/topology/friends.c:154
+#, c-format
+msgid "Directory for file `%s' does not seem to be writable.\n"
+msgstr "Директоријум за датотеку „%s“ не изгледа да је уписив.\n"
+
+#: src/topology/gnunet-daemon-topology.c:255
+msgid "# peers blacklisted"
+msgstr "# парњаци су стављени на списак забрана"
+
+#: src/topology/gnunet-daemon-topology.c:388
+msgid "# connect requests issued to transport"
+msgstr "# захтеви везе су издати преносу"
+
+#: src/topology/gnunet-daemon-topology.c:728
+#: src/topology/gnunet-daemon-topology.c:813
+msgid "# friends connected"
+msgstr "# пријатељи су повезани"
+
+#: src/topology/gnunet-daemon-topology.c:993
+msgid "Failed to connect to core service, can not manage topology!\n"
+msgstr "Нисам успео да се повежем са услугом језгра, не могу да радим 
размештајем!\n"
+
+#: src/topology/gnunet-daemon-topology.c:1022
+#, c-format
+msgid "Found myself `%s' in friend list (useless, ignored)\n"
+msgstr "Нађох себе „%s“ на списку пријатеља (некорисно, занемарујем)\n"
+
+#: src/topology/gnunet-daemon-topology.c:1029
+#, c-format
+msgid "Found friend `%s' in configuration\n"
+msgstr "Нађох пријатеља „%s“ у подешавањима\n"
+
+#: src/topology/gnunet-daemon-topology.c:1050
+msgid "Encountered errors parsing friends list!\n"
+msgstr "Наиђох на грешке током обраде списка пријатеља!\n"
+
+#: src/topology/gnunet-daemon-topology.c:1052
+msgid "# friends in configuration"
+msgstr "# пријатељи у подешавањима"
+
+#: src/topology/gnunet-daemon-topology.c:1057
+msgid "Fewer friends specified than required by minimum friend count. Will 
only connect to friends.\n"
+msgstr "Наведено је мање пријатеља него што се захтева најмањим бројем 
пријатеља. Повезаћу се само са пријатељима.\n"
+
+#: src/topology/gnunet-daemon-topology.c:1063
+msgid "More friendly connections required than target total number of 
connections.\n"
+msgstr "Захтевано је више пријатељских веза него циљни укупан број веза.\n"
+
+#: src/topology/gnunet-daemon-topology.c:1094
+msgid "# HELLO messages received"
+msgstr "# „HELLO“ поруке су примљене"
+
+#: src/topology/gnunet-daemon-topology.c:1151
+msgid "# HELLO messages gossipped"
+msgstr "# „HELLO“ поруке су наклопљене"
+
+#: src/topology/gnunet-daemon-topology.c:1290
+msgid "GNUnet topology control (maintaining P2P mesh and F2F constraints)"
+msgstr "Контрола ГНУнет размештаја (задржавајући П2П меш и Ф2Ф ограничења)"
+
+#: src/transport/gnunet-service-transport_blacklist.c:271
+#, c-format
+msgid "Adding blacklisting entry for peer `%s'\n"
+msgstr "Додајем унос списка забрана за парњака „%s“\n"
+
+#: src/transport/gnunet-service-transport_blacklist.c:279
+#, c-format
+msgid "Adding blacklisting entry for peer `%s':`%s'\n"
+msgstr "Додајем унос списка забрана за парњака „%s“:„%s“\n"
+
+#: src/transport/gnunet-service-transport_blacklist.c:464
+#: src/transport/gnunet-service-transport_blacklist.c:745
+msgid "# disconnects due to blacklist"
+msgstr "# прекиди везе због списка забрана"
+
+#: src/transport/gnunet-service-transport.c:220
+msgid "# bytes payload discarded due to not connected peer"
+msgstr "# бајтови утовара су одбачени због не повезаног парњака"
+
+#: src/transport/gnunet-service-transport.c:424
+msgid "# bytes total received"
+msgstr "# укупно бајтова је примљено"
+
+#: src/transport/gnunet-service-transport.c:515
+msgid "# bytes payload received"
+msgstr "# бајтови утовара су примљени"
+
+#: src/transport/gnunet-service-transport.c:686
+#, c-format
+msgid "Could not obtain a valid network for `%s' %s (%s)\n"
+msgstr "Не могу да добијем исправну везу за „%s“ %s (%s)\n"
+
+#: src/transport/gnunet-service-transport.c:733
+#, c-format
+msgid "Address or session unknown: failed to update properties for peer `%s' 
plugin `%s' address `%s' session %p\n"
+msgstr "Адреса или сесија је непозната: нисам успео да својства за парњака 
„%s“ прикључак „%s“ адресу „%s“ сесију %p\n"
+
+#: src/transport/gnunet-service-transport.c:1084
+msgid "Transport service is lacking key configuration settings. Exiting.\n"
+msgstr "Услузи преноса недостају поставке подешавања кључа. Излазим.\n"
+
+#: src/transport/gnunet-service-transport_clients.c:432
+#, c-format
+msgid "Dropping message of type %u and size %u, have %u/%u messages pending\n"
+msgstr "Одбацујем поруку врсте %u и величине %u, има %u/%u порука на чекању\n"
+
+#: src/transport/gnunet-service-transport_clients.c:439
+msgid "# messages dropped due to slow client"
+msgstr "# поруке су одбачене услед спорог клијента"
+
+#: src/transport/gnunet-service-transport_clients.c:596
+#, c-format
+msgid "Rejecting control connection from peer `%s', which is not me!\n"
+msgstr "Одбацујем контролну везу од парњака „%s“, а то нисам ја!\n"
+
+#: src/transport/gnunet-service-transport_clients.c:737
+msgid "# bytes payload dropped (other peer was not connected)"
+msgstr "# утовар бајтова је одбачен (други парњак није повезан)"
+
+#: src/transport/gnunet-service-transport_clients.c:770
+#, c-format
+msgid "Blacklist refuses connection attempt to peer `%s'\n"
+msgstr "Списак забрана одбацује покушај повезивања са парњаком „%s“\n"
+
+#: src/transport/gnunet-service-transport_clients.c:776
+#, c-format
+msgid "Blacklist allows connection attempt to peer `%s'\n"
+msgstr "Списак забрана дозвољава покушај повезивања са парњаком „%s“\n"
+
+#: src/transport/gnunet-service-transport_clients.c:801
+msgid "# REQUEST CONNECT messages received"
+msgstr "# ЗАХТЕВАЈ ПОВЕЖИ_СЕ поруке су примљене"
+
+#: src/transport/gnunet-service-transport_clients.c:815
+#, c-format
+msgid "Received a request connect message for peer `%s'\n"
+msgstr "Примих поруку захтева повезивања за парњака „%s“\n"
+
+#: src/transport/gnunet-service-transport_clients.c:826
+msgid "# REQUEST DISCONNECT messages received"
+msgstr "# ЗАХТЕВАЈ ПРЕКИНИ_ВЕЗУ поруке су примљене"
+
+#: src/transport/gnunet-service-transport_clients.c:840
+#, c-format
+msgid "Received a request disconnect message for peer `%s'\n"
+msgstr "Примих поруку захтева прекида везе за парњака „%s“\n"
+
+#: src/transport/gnunet-service-transport_hello.c:181
+msgid "# refreshed my HELLO"
+msgstr "# освежих мој „HELLO“"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1095
+msgid "# DISCONNECT messages sent"
+msgstr "# ПРЕКИНИ_ВЕЗУ поруке су послате"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1220
+#: src/transport/gnunet-service-transport_neighbours.c:1629
+msgid "# bytes in message queue for other peers"
+msgstr "# бајтови у реду поруке за друге парњаке"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1225
+msgid "# messages transmitted to other peers"
+msgstr "# поруке су пренесене другим парњацима"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1230
+msgid "# transmission failures for messages to other peers"
+msgstr "# неуспеси преноса за поруке ка другим парњацима"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1287
+msgid "# messages timed out while in transport queue"
+msgstr "# истекло је време порукама док су у реду преноса"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1343
+msgid "# keepalives sent"
+msgstr "# одржавања у раду су послата"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1376
+msgid "# KEEPALIVE messages discarded (peer unknown)"
+msgstr "# ОДРЖИ_У_РАДУ поруке су одбачене (парњак није познат)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1384
+msgid "# KEEPALIVE messages discarded (no session)"
+msgstr "# ОДРЖИ_У_РАДУ поруке су одбачене (нема сесије)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1431
+msgid "# KEEPALIVE_RESPONSE messages discarded (not connected)"
+msgstr "# ОДГОВОР_ОДРЖИ_У_РАДУ поруке су одбачене (нисам повезан)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1440
+msgid "# KEEPALIVE_RESPONSE messages discarded (not expected)"
+msgstr "# ОДГОВОР_ОДРЖИ_У_РАДУ поруке су одбачене (није очекиван)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1448
+msgid "# KEEPALIVE_RESPONSE messages discarded (address changed)"
+msgstr "# ОДГОВОР_ОДРЖИ_У_РАДУ поруке су одбачене (адреса је измењена)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1456
+msgid "# KEEPALIVE_RESPONSE messages discarded (wrong nonce)"
+msgstr "# ОДГОВОР_ОДРЖИ_У_РАДУ поруке су одбачене (погрешна тренутност)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1534
+msgid "# messages discarded due to lack of neighbour record"
+msgstr "# поруке су одбачене услед недостатка записа суседа"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1568
+msgid "# bandwidth quota violations by other peers"
+msgstr "# повређивање квоте пропусног опсега од стране других парњака"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1584
+msgid "# ms throttling suggested"
+msgstr "# ms пригушење се саветује"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1678
+#, c-format
+msgid "Failed to send CONNECT message to peer `%s' using address `%s' session 
%p\n"
+msgstr "Нисам успео да пошаљем поруку ПОВЕЖИ_СЕ парњаку „%s“ користећи адресу 
„%s“ сесије %p\n"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1705
+msgid "# Failed attempts to switch addresses (failed to send CONNECT CONT)"
+msgstr "# Нису успели покушаји за пребацивање адреса (нисам успео да пошаљем 
УКУПНО ПОВЕЖИ_СЕ)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1751
+msgid "# SESSION_CONNECT messages sent"
+msgstr "# ПОВЕЗИВАЊЕ_СЕСИЈЕ поруке су послате"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1767
+#, c-format
+msgid "Failed to transmit CONNECT message via plugin to %s\n"
+msgstr "Нисам успео да пренесем поруку ПОВЕЖИ_СЕ путем прикључка ка „%s“\n"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1794
+msgid "# Failed attempts to switch addresses (failed to send CONNECT)"
+msgstr "# Нису успели покушаји за пребацивање адреса (нисам успео да пошаљем 
ПОВЕЖИ_СЕ)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1844
+#, c-format
+msgid "Failed to send CONNECT_ACK message to peer `%s' using address `%s' 
session %p\n"
+msgstr "Нисам успео да пошаљем поруку ПОВЕЖИ_АЦК парњаку „%s“ користећи адресу 
„%s“ сесије %p\n"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1899
+msgid "# CONNECT_ACK messages sent"
+msgstr "# ПОВЕЖИ_АЦК поруке су послате"
+
+#: src/transport/gnunet-service-transport_neighbours.c:1914
+#, c-format
+msgid "Failed to transmit CONNECT_ACK message via plugin to %s\n"
+msgstr "Нисам успео да пренесем поруку ПОВЕЖИ_АЦК путем прикључка ка „%s“\n"
+
+#: src/transport/gnunet-service-transport_neighbours.c:2192
+#, c-format
+msgid "Blacklisting disapproved to connect to peer `%s'\n"
+msgstr "Списак забрана није одобрио повезивање са парњаком „%s“\n"
+
+#: src/transport/gnunet-service-transport_neighbours.c:2312
+msgid "# CONNECT messages received"
+msgstr "# ПОВЕЖИ_СЕ поруке су примљене"
+
+#: src/transport/gnunet-service-transport_neighbours.c:2317
+#, c-format
+msgid "CONNECT request from peer `%s' ignored due impending shutdown\n"
+msgstr "ПОВЕЖИ_СЕ захтев са парњака „%s“ је занемарен због неминовног гашења\n"
+
+#: src/transport/gnunet-service-transport_neighbours.c:2590
+msgid "# Attempts to switch addresses"
+msgstr "# Покушаји за пребацивање адреса"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3012
+msgid "# Failed attempts to switch addresses (no response)"
+msgstr "# Нису успели покушаји за пребацивање адреса (нема одговора)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3107
+msgid "# CONNECT_ACK messages received"
+msgstr "# ПОВЕЖИ_АЦК поруке су примљене"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3115
+msgid "# unexpected CONNECT_ACK messages (no peer)"
+msgstr "# неочекиване ПОВЕЖИ_АЦК поруке (нема парњака)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3129
+#: src/transport/gnunet-service-transport_neighbours.c:3164
+msgid "# unexpected CONNECT_ACK messages (not ready)"
+msgstr "# неочекиване ПОВЕЖИ_АЦК поруке (нису спремне)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3176
+msgid "# unexpected CONNECT_ACK messages (waiting on ATS)"
+msgstr "# неочекиване ПОВЕЖИ_АЦК поруке (чекам на АТС)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3200
+msgid "# Successful attempts to switch addresses"
+msgstr "# Покушаји за пребацивање адреса су успели"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3208
+msgid "# unexpected CONNECT_ACK messages (disconnecting)"
+msgstr "# неочекиване ПОВЕЖИ_АЦК поруке (прекидам везу)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3396
+msgid "# SESSION_ACK messages received"
+msgstr "# поруке СЕСИЈА_АЦК су примљене"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3424
+msgid "# unexpected SESSION_ACK messages"
+msgstr "# неочекиване СЕСИЈА_АЦК поруке"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3490
+msgid "# SET QUOTA messages ignored (no such peer)"
+msgstr "# ПОСТАВИ КВОТУ поруке су занемарене (нема таквог парњака)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3505
+msgid "# disconnects due to quota of 0"
+msgstr "# прекиди везе због квоте 0"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3545
+msgid "# disconnect messages ignored (malformed)"
+msgstr "# поруке прекида везе су занемарене(лоше су)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3551
+msgid "# DISCONNECT messages received"
+msgstr "# ПРЕКИНИ_ВЕЗУ поруке су примљене"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3560
+msgid "# disconnect messages ignored (timestamp)"
+msgstr "# поруке прекида везе су занемарене(временска ознака)"
+
+#: src/transport/gnunet-service-transport_neighbours.c:3687
+msgid "# disconnected from peer upon explicit request"
+msgstr "# прекинута је веза са парњаком услед изричитог захтева"
+
+#: src/transport/gnunet-service-transport_plugins.c:120
+msgid "Transport service is lacking NEIGHBOUR_LIMIT option.\n"
+msgstr "Услузи преноса недостаје опција ОГРАНИЧЕЊЕ_СУСЕДА.\n"
+
+#: src/transport/gnunet-service-transport_plugins.c:178
+#: src/transport/gnunet-service-transport_plugins.c:186
+#: src/transport/gnunet-service-transport_plugins.c:194
+#: src/transport/gnunet-service-transport_plugins.c:202
+#: src/transport/gnunet-service-transport_plugins.c:210
+#: src/transport/gnunet-service-transport_plugins.c:218
+#: src/transport/gnunet-service-transport_plugins.c:226
+#: src/transport/gnunet-service-transport_plugins.c:234
+#: src/transport/gnunet-service-transport_plugins.c:242
+#: src/transport/gnunet-service-transport_plugins.c:250
+#: src/transport/gnunet-service-transport_plugins.c:258
+#, c-format
+msgid "Missing function `%s' in transport plugin for `%s'\n"
+msgstr "Недостаје функција „%s“ у прикључку преноса за „%s“\n"
+
+#: src/transport/gnunet-service-transport_plugins.c:265
+#, c-format
+msgid "Did not load plugin `%s' due to missing functions\n"
+msgstr "Не учитавам прикључак „%s“ услед недостајућих функција\n"
+
+#: src/transport/gnunet-service-transport_validation.c:488
+msgid "# address records discarded"
+msgstr "# записи адресе су одбачени"
+
+#: src/transport/gnunet-service-transport_validation.c:558
+#, c-format
+msgid "Not transmitting `%s' with `%s', message too big (%u bytes!). This 
should not happen.\n"
+msgstr "Не преносим „%s“ са „%s“, порука је превелика (%u бајта!). Ово није 
требало да се деси.\n"
+
+#: src/transport/gnunet-service-transport_validation.c:616
+msgid "# PING without HELLO messages sent"
+msgstr "# ПИНГ без „HELLO“ порука је послат"
+
+#: src/transport/gnunet-service-transport_validation.c:722
+msgid "# address revalidations started"
+msgstr "# поновно потврђивање адресе је започето"
+
+#: src/transport/gnunet-service-transport_validation.c:1011
+msgid "# PING message for different peer received"
+msgstr "# ПИНГ порука за различитог парњака је примљена"
+
+#: src/transport/gnunet-service-transport_validation.c:1062
+#, c-format
+msgid "Plugin `%s' not available, cannot confirm having this address\n"
+msgstr "Прикључак „%s“ није доступан, не могу да потврдим имајући ову адресу\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1072
+msgid "# failed address checks during validation"
+msgstr "# неуспешне провере адресе за време потврђивања"
+
+#: src/transport/gnunet-service-transport_validation.c:1075
+#, c-format
+msgid "Address `%s' is not one of my addresses, not confirming PING\n"
+msgstr "Адреса „%s“ није једна од мојих адреса, не потврђујем ПИНГ\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1083
+msgid "# successful address checks during validation"
+msgstr "# успешне провере адресе за време потврђивања"
+
+#: src/transport/gnunet-service-transport_validation.c:1095
+#, c-format
+msgid "Not confirming PING from peer `%s' with address `%s' since I cannot 
confirm having this address.\n"
+msgstr "Не потврђујем ПИНГ од парњака „%s“ са адресом „%s“ јер не могу да 
потврдим да имам ту адресу.\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1103
+#, c-format
+msgid "Received a PING message with validation bug from `%s'\n"
+msgstr "Примих ПИНГ поруку са грешком потврђивања са „%s“\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1157
+#, c-format
+msgid "Failed to create PONG signature for peer `%s'\n"
+msgstr "Нисам успео да направим ПОНГ потпис за парњака „%s“\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1206
+msgid "# PONGs unicast via reliable transport"
+msgstr "# једноодредишни пренос ПОНГ-ова путем поузданог преноса"
+
+#: src/transport/gnunet-service-transport_validation.c:1215
+msgid "# PONGs multicast to all available addresses"
+msgstr "# вишеодредишни пренос ПОНГ-ова ка свим доступним адресама"
+
+#: src/transport/gnunet-service-transport_validation.c:1356
+msgid "# PONGs dropped, no matching pending validation"
+msgstr "# ПОНГ-ови су одбачени, нема одговарајућих потврђивања на чекању"
+
+#: src/transport/gnunet-service-transport_validation.c:1371
+msgid "# PONGs dropped, signature expired"
+msgstr "# ПОНГ-ови су одбачени, потпис је истекао"
+
+#: src/transport/gnunet-service-transport_validation.c:1493
+#, c-format
+msgid "Validation received new %s message for peer `%s' with size %u\n"
+msgstr "Потврђивање је примило нову „%s“ поруку за парњака „%s“ са величином 
%u\n"
+
+#: src/transport/gnunet-service-transport_validation.c:1500
+#, c-format
+msgid "Adding `%s' without addresses for peer `%s'\n"
+msgstr "Додајем „%s“ без адреса за парњака „%s“\n"
+
+#: src/transport/gnunet-transport.c:367
+#, c-format
+msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
+msgstr "Пренесох %llu бајта/сек (%llu бајта за %s)\n"
+
+#: src/transport/gnunet-transport.c:375
+#, c-format
+msgid "Received %llu bytes/s (%llu bytes in %s)\n"
+msgstr "Примих %llu бајта/сек (%llu бајта за %s)\n"
+
+#: src/transport/gnunet-transport.c:415
+#, c-format
+msgid "Failed to connect to `%s'\n"
+msgstr "Нисам успео да се повежем на „%s“\n"
+
+#: src/transport/gnunet-transport.c:428
+#, c-format
+msgid "Failed to resolve address for peer `%s'\n"
+msgstr "Нисам успео да решим адресу за парњака „%s“\n"
+
+#: src/transport/gnunet-transport.c:438
+msgid "Failed to list connections, timeout occured\n"
+msgstr "Нисам успео да испишем везе, дошло је до истека времена\n"
+
+#: src/transport/gnunet-transport.c:559
+#, c-format
+msgid ""
+"Peer `%s' %s %s\n"
+"\t%s%s\n"
+"\t%s%s\n"
+"\t%s%s\n"
+msgstr ""
+"Парњак „%s“ %s %s\n"
+"\t%s%s\n"
+"\t%s%s\n"
+"\t%s%s\n"
+
+#: src/transport/gnunet-transport.c:586
+#, c-format
+msgid "Peer `%s' %s `%s' \n"
+msgstr "Парњак „%s“ %s „%s“ \n"
+
+#: src/transport/gnunet-transport.c:712
+msgid "No transport plugins configured, peer will never communicate\n"
+msgstr "Нису подешени прикључци преноса, парњак неће никада комуницирати\n"
+
+#: src/transport/gnunet-transport.c:726
+#, c-format
+msgid "No port configured for plugin `%s', cannot test it\n"
+msgstr "Није подешен прикључник за прикључак „%s“, не могу да га тестирам\n"
+
+#: src/transport/gnunet-transport.c:789
+#, c-format
+msgid "Transmitting %u bytes to %s\n"
+msgstr "Преносим %u бајта ка %s\n"
+
+#: src/transport/gnunet-transport.c:810
+#, c-format
+msgid "Successfully connected to `%s'\n"
+msgstr "Успешно је успостављена веза са „%s“\n"
+
+#: src/transport/gnunet-transport.c:834
+#, c-format
+msgid "Successfully connected to `%s', starting to send benchmark data in %u 
Kb blocks\n"
+msgstr "Успешно смо повезани са „%s“, почињем да шаљем податке оцењивања у 
блоковима од %u Kb\n"
+
+#: src/transport/gnunet-transport.c:865
+#, c-format
+msgid "Successfully disconnected from `%s'\n"
+msgstr "Успешно је прекинута веза са „%s“\n"
+
+#: src/transport/gnunet-transport.c:888
+#, c-format
+msgid "Disconnected from peer `%s' while benchmarking\n"
+msgstr "Прекинута је веза са парњаком „%s“ за време оцењивања\n"
+
+#: src/transport/gnunet-transport.c:950
+#, c-format
+msgid "Received %u bytes from %s\n"
+msgstr "Примих %u бајта од „%s“\n"
+
+#: src/transport/gnunet-transport.c:975
+#, c-format
+msgid "Peer `%s': %s %s in state `%s' until %s\n"
+msgstr "Парњак „%s“: %s %s у стању „%s“ све до %s\n"
+
+#: src/transport/gnunet-transport.c:986
+#, c-format
+msgid "Peer `%s': %s %s\n"
+msgstr "Парњак „%s“: %s %s\n"
+
+#: src/transport/gnunet-transport.c:1197 src/transport/gnunet-transport.c:1222
+msgid "Failed to send connect request to transport service\n"
+msgstr "Нисам успео да пошаљем захтев за повезивање са услугом преноса\n"
+
+#: src/transport/gnunet-transport.c:1266
+#, c-format
+msgid "Multiple operations given. Please choose only one operation: %s, %s, 
%s, %s, %s, %s\n"
+msgstr "Дато је више радњи. Изаберите само једну од: %s, %s, %s, %s, %s, %s\n"
+
+#: src/transport/gnunet-transport.c:1274
+#, c-format
+msgid "No operation given. Please choose one operation: %s, %s, %s, %s, %s, 
%s\n"
+msgstr "Није дата радња. Изаберите једну од: %s, %s, %s, %s, %s, %s\n"
+
+#: src/transport/gnunet-transport.c:1293 src/transport/gnunet-transport.c:1323
+#: src/transport/gnunet-transport.c:1353 src/transport/gnunet-transport.c:1376
+#: src/transport/gnunet-transport.c:1419
+msgid "Failed to connect to transport service\n"
+msgstr "Нисам успео да се повежем са услугом преноса\n"
+
+#: src/transport/gnunet-transport.c:1302 src/transport/gnunet-transport.c:1332
+#: src/transport/gnunet-transport.c:1362
+msgid "Failed to send request to transport service\n"
+msgstr "Нисам успео да пошаљем захтев услузи преноса\n"
+
+#: src/transport/gnunet-transport.c:1381
+msgid "Starting to receive benchmark data\n"
+msgstr "Почињем да примам податке оцењивања\n"
+
+#: src/transport/gnunet-transport.c:1465
+msgid "print information for all peers (instead of only connected peers )"
+msgstr "исписује податке за све парњаке (уместо само о повезаним парњацима )"
+
+#: src/transport/gnunet-transport.c:1468
+msgid "measure how fast we are receiving data from all peers (until CTRL-C)"
+msgstr "мери колико брзо примамо податке са свих парњака (све до КТРЛ-Ц)"
+
+#: src/transport/gnunet-transport.c:1471
+msgid "connect to a peer"
+msgstr "повезује се са парњаком"
+
+#: src/transport/gnunet-transport.c:1474
+msgid "disconnect to a peer"
+msgstr "прекида везу са парњаком"
+
+#: src/transport/gnunet-transport.c:1477
+msgid "print information for all pending validations "
+msgstr "исписује податке за сва потврђивања на чекању "
+
+#: src/transport/gnunet-transport.c:1480
+msgid "print information for all pending validations continously"
+msgstr "непрекидно исписује податке за сва потврђивања на чекању"
+
+#: src/transport/gnunet-transport.c:1483
+msgid "provide information about all current connections (once)"
+msgstr "обезбеђује податке о свим тренутним везама (једном)"
+
+#: src/transport/gnunet-transport.c:1489
+msgid "provide information about all connects and disconnect events 
(continuously)"
+msgstr "обезбеђује податке о свим догађајима повезивања и прекида везе 
(непрекидно)"
+
+#: src/transport/gnunet-transport.c:1491
+msgid "do not resolve hostnames"
+msgstr "не разрешава називе домаћина"
+
+#: src/transport/gnunet-transport.c:1493
+msgid "peer identity"
+msgstr "идентитет парњака"
+
+#: src/transport/gnunet-transport.c:1495
+msgid "send data for benchmarking to the other peer (until CTRL-C)"
+msgstr "шаље податке за оцењивање другим парњацима (све до КТРЛ-Ц)"
+
+#: src/transport/gnunet-transport.c:1498
+msgid "test transport configuration (involves external server)"
+msgstr "тестира подешавање транспорта (призива спољни сервер)"
+
+#: src/transport/gnunet-transport.c:1507
+msgid "Direct access to transport service."
+msgstr "Непосредан приступ услузи преноса."
+
+#: src/transport/plugin_transport_bluetooth.c:621
+msgid "# Bluetooth ACKs sent"
+msgstr "# АЦК-ови блутута су послати"
+
+#: src/transport/plugin_transport_bluetooth.c:640
+msgid "# Bluetooth messages defragmented"
+msgstr "# делићи Блутут порука су уједињени"
+
+#: src/transport/plugin_transport_bluetooth.c:686
+#: src/transport/plugin_transport_bluetooth.c:737
+#: src/transport/plugin_transport_bluetooth.c:1942
+msgid "# Bluetooth sessions allocated"
+msgstr "# Блутут сесије су додељене"
+
+#: src/transport/plugin_transport_bluetooth.c:837
+msgid "# Bluetooth message fragments sent"
+msgstr "# Делићи блутут поруке су послати"
+
+#: src/transport/plugin_transport_bluetooth.c:861
+msgid "# Bluetooth messages pending (with fragmentation)"
+msgstr "# Поруке блутута су на чекању (са расцепканошћу)"
+
+#: src/transport/plugin_transport_bluetooth.c:969
+#: src/transport/plugin_transport_bluetooth.c:1054
+#: src/transport/plugin_transport_bluetooth.c:1944
+msgid "# Bluetooth MAC endpoints allocated"
+msgstr "# Крајње тачке Блутут МАЦ-а су додељене"
+
+#: src/transport/plugin_transport_bluetooth.c:1307
+msgid "# HELLO messages received via Bluetooth"
+msgstr "# „HELLO“ поруке су примљене путем блутута"
+
+#: src/transport/plugin_transport_bluetooth.c:1331
+msgid "# fragments received via Bluetooth"
+msgstr "# делићи су примљени путем Блутута"
+
+#: src/transport/plugin_transport_bluetooth.c:1341
+msgid "# ACKs received via Bluetooth"
+msgstr "# АЦК-ови су примљени путем блутута"
+
+#: src/transport/plugin_transport_bluetooth.c:1401
+msgid "# Bluetooth DATA messages discarded due to CRC32 error"
+msgstr "# Поруке ПОДАТАКА блутута су одбачене услед „CRC32“ грешке"
+
+#: src/transport/plugin_transport_bluetooth.c:1512
+msgid "# DATA messages received via Bluetooth"
+msgstr "# поруке ПОДАТАКА су примљене путем блутута"
+
+#: src/transport/plugin_transport_bluetooth.c:1547
+msgid "# Bluetooth DATA messages processed"
+msgstr "# Поруке Блутут ПОДАТАКА су обрађене"
+
+#: src/transport/plugin_transport_bluetooth.c:1610
+msgid "# HELLO beacons sent via Bluetooth"
+msgstr "# „HELLO“ ознаке су послате путем Блутута"
+
+#: src/transport/plugin_transport_bluetooth.c:1723
+msgid "Bluetooth address with invalid size encountered\n"
+msgstr "Наишли смо на адресу блутута са неисправном величином\n"
+
+#: src/transport/plugin_transport_bluetooth.c:1923
+#, c-format
+msgid "Helper binary `%s' not SUID, cannot run bluetooth transport\n"
+msgstr "Извршна помоћника „%s“ није СУИБ, не могу да покренем блутут пренос\n"
+
+#: src/transport/plugin_transport_http_client.c:1622
+#, c-format
+msgid "Could not initialize curl multi handle, failed to start %s plugin!\n"
+msgstr "Не могу да покренем мулти ручку „curl“-а, нисам успео да покренем „%s“ 
прикључак!\n"
+
+#: src/transport/plugin_transport_http_client.c:1697
+#: src/transport/plugin_transport_http_server.c:3007
+#, c-format
+msgid "Shutting down plugin `%s'\n"
+msgstr "Гасим прикључак „%s“\n"
+
+#: src/transport/plugin_transport_http_client.c:1722
+#: src/transport/plugin_transport_http_server.c:3063
+#, c-format
+msgid "Shutdown for plugin `%s' complete\n"
+msgstr "Гашење за прикључак „%s“ је завршено\n"
+
+#: src/transport/plugin_transport_http_client.c:1750
+#: src/transport/plugin_transport_http_server.c:2907
+#, c-format
+msgid "Maximum number of connections is %u\n"
+msgstr "Највећи број веза је %u\n"
+
+#: src/transport/plugin_transport_http_server.c:1402
+#, c-format
+msgid "Access from connection %p (%u of %u) for `%s' `%s' url `%s' with upload 
data size %u\n"
+msgstr "Приступ из везе %p (%u од %u) за „%s“ „%s“ адреса „%s“ са величином 
података утовара %u\n"
+
+#: src/transport/plugin_transport_http_server.c:1663
+#, c-format
+msgid "Accepting connection (%u of %u) from `%s'\n"
+msgstr "Прихватам везу (%u од %u) са „%s“\n"
+
+#: src/transport/plugin_transport_http_server.c:1671
+#, c-format
+msgid "Server reached maximum number connections (%u), rejecting new 
connection\n"
+msgstr "Сервер је достигао највећи број веза (%u), одбацује нове везе\n"
+
+#: src/transport/plugin_transport_http_server.c:1958
+msgid "Could not create a new TLS certificate, program 
`gnunet-transport-certificate-creation' could not be started!\n"
+msgstr "Не могу да направим ново ТЛС уверење, програм 
„gnunet-transport-certificate-creation“ се не може покренути!\n"
+
+#: src/transport/plugin_transport_http_server.c:1982
+#, c-format
+msgid "No usable TLS certificate found and creating one at `%s/%s' failed!\n"
+msgstr "Нисам нашао употребљиво ТЛС уверење а његово стварање на „%s/%s“ није 
успело!\n"
+
+#: src/transport/plugin_transport_http_server.c:2405
+msgid "Require valid port number for service in configuration!\n"
+msgstr "Захтева исправан број прикључника за услугу у подешавањима!\n"
+
+#: src/transport/plugin_transport_http_server.c:2437 src/util/service.c:698
+#, c-format
+msgid "Failed to resolve `%s': %s\n"
+msgstr "Нисам успео да решим „%s“: %s\n"
+
+#: src/transport/plugin_transport_http_server.c:2454 src/util/service.c:715
+#, c-format
+msgid "Failed to find %saddress for `%s'.\n"
+msgstr "Нисам успео да нађем %s адресу за „%s“.\n"
+
+#: src/transport/plugin_transport_http_server.c:2565
+#, c-format
+msgid "Found %u addresses to report to NAT service\n"
+msgstr "Нађох %u адрес за извештавање НАТ услузи\n"
+
+#: src/transport/plugin_transport_http_server.c:2637
+msgid "Disabling IPv6 since it is not supported on this system!\n"
+msgstr "Искључујем ИПв6 јер није подржано на овом систему!\n"
+
+#: src/transport/plugin_transport_http_server.c:2730
+#, c-format
+msgid "IPv4 support is %s\n"
+msgstr "ИПв4 подршка је %s\n"
+
+#: src/transport/plugin_transport_http_server.c:2744
+#, c-format
+msgid "IPv6 support is %s\n"
+msgstr "ИПв6 подршка је %s\n"
+
+#: src/transport/plugin_transport_http_server.c:2751
+msgid "Neither IPv4 nor IPv6 are enabled! Fix in configuration\n"
+msgstr "Ни ИПв4 ни ИПв6 није укључено! Исправите у подешавању\n"
+
+#: src/transport/plugin_transport_http_server.c:2762
+msgid "Port is required! Fix in configuration\n"
+msgstr "Прикључник је потребан! Исправите у подешавању\n"
+
+#: src/transport/plugin_transport_http_server.c:2769
+#, c-format
+msgid "Using port %u\n"
+msgstr "Користим прикључник %u\n"
+
+#: src/transport/plugin_transport_http_server.c:2784
+#, c-format
+msgid "Specific IPv4 address `%s' in configuration file is invalid!\n"
+msgstr "Специфична ИПв4 адреса „%s“ у датотеци подешавања је неисправна!\n"
+
+#: src/transport/plugin_transport_http_server.c:2794
+#, c-format
+msgid "Binding to IPv4 address %s\n"
+msgstr "Свезујем за ИПв4 адресу %s\n"
+
+#: src/transport/plugin_transport_http_server.c:2815
+#, c-format
+msgid "Specific IPv6 address `%s' in configuration file is invalid!\n"
+msgstr "Специфична ИПв6 адреса „%s“ у датотеци подешавања је неисправна!\n"
+
+#: src/transport/plugin_transport_http_server.c:2825
+#, c-format
+msgid "Binding to IPv6 address %s\n"
+msgstr "Свезујем за ИПв6 адресу %s\n"
+
+#: src/transport/plugin_transport_http_server.c:2877
+#, c-format
+msgid "Using external hostname `%s'\n"
+msgstr "Користим спољни назив домаћина „%s“\n"
+
+#: src/transport/plugin_transport_http_server.c:2893
+#, c-format
+msgid "Notifying transport only about hostname `%s'\n"
+msgstr "Обавештавам пренос само о називу домаћина „%s“\n"
+
+#: src/transport/plugin_transport_smtp.c:223
+#, c-format
+msgid "Received malformed message via %s. Ignored.\n"
+msgstr "Примих лошу поруку путем „%s“. Занемарујем.\n"
+
+#: src/transport/plugin_transport_smtp.c:310
+msgid "SMTP filter string to invalid, lacks ': '\n"
+msgstr "Ниска СМТП филтера је превише неисправна, недостаје „: “\n"
+
+#: src/transport/plugin_transport_smtp.c:319
+#, c-format
+msgid "SMTP filter string to long, capped to `%s'\n"
+msgstr "Ниска СМТП филтера је предуга, скраћена је на „%s“\n"
+
+#: src/transport/plugin_transport_smtp.c:414
+#: src/transport/plugin_transport_smtp.c:424
+#: src/transport/plugin_transport_smtp.c:437
+#: src/transport/plugin_transport_smtp.c:456
+#: src/transport/plugin_transport_smtp.c:479
+#: src/transport/plugin_transport_smtp.c:487
+#: src/transport/plugin_transport_smtp.c:500
+#: src/transport/plugin_transport_smtp.c:511
+#, c-format
+msgid "SMTP: `%s' failed: %s.\n"
+msgstr "СМТП: „%s“ није успело: %s.\n"
+
+#: src/transport/plugin_transport_smtp.c:652
+msgid "No email-address specified, can not start SMTP transport.\n"
+msgstr "Није наведена адреса е-поште, не могу да почнем СМТП пренос.\n"
+
+#: src/transport/plugin_transport_smtp.c:664
+msgid "# bytes received via SMTP"
+msgstr "# бајтови су примљени путем СМТП-а"
+
+#: src/transport/plugin_transport_smtp.c:665
+msgid "# bytes sent via SMTP"
+msgstr "# бајтови су послати путем СМТП-а"
+
+#: src/transport/plugin_transport_smtp.c:667
+msgid "# bytes dropped by SMTP (outgoing)"
+msgstr "# бајтови су одбачени СМТП-ом (одлазни)"
+
+#: src/transport/plugin_transport_tcp.c:555
+#, c-format
+msgid "Unexpected address length: %u bytes\n"
+msgstr "Неочекивана дужина адресе: %u бајта\n"
+
+#: src/transport/plugin_transport_tcp.c:762
+#: src/transport/plugin_transport_tcp.c:928
+#: src/transport/plugin_transport_tcp.c:2005
+#: src/transport/plugin_transport_tcp.c:2558
+msgid "# TCP sessions active"
+msgstr "# ТЦП сесије су активне"
+
+#: src/transport/plugin_transport_tcp.c:795
+#: src/transport/plugin_transport_tcp.c:921
+#: src/transport/plugin_transport_tcp.c:1009
+#: src/transport/plugin_transport_tcp.c:1056
+#: src/transport/plugin_transport_tcp.c:1219
+#: src/transport/plugin_transport_tcp.c:1237
+msgid "# bytes currently in TCP buffers"
+msgstr "# бајтова тренутно у ТЦП међумеморијама"
+
+#: src/transport/plugin_transport_tcp.c:798
+msgid "# bytes discarded by TCP (disconnect)"
+msgstr "# бајтови су одбачени ТЦП-ом (прекид везе)"
+
+#: src/transport/plugin_transport_tcp.c:1012
+msgid "# bytes discarded by TCP (timeout)"
+msgstr "# бајтови су одбачени ТЦП-ом (истекло време)"
+
+#: src/transport/plugin_transport_tcp.c:1059
+msgid "# bytes transmitted via TCP"
+msgstr "# бајтови су пренесени путем ТЦП-а"
+
+#: src/transport/plugin_transport_tcp.c:1193
+#, c-format
+msgid "Trying to send with invalid session %p\n"
+msgstr "Покушавам да пошаљем са неисправном сесијом %p\n"
+
+#: src/transport/plugin_transport_tcp.c:1462
+msgid "# requests to create session with invalid address"
+msgstr "# захтева за стварање сесије са неисправном адресом"
+
+#: src/transport/plugin_transport_tcp.c:1567
+msgid "# transport-service disconnect requests for TCP"
+msgstr "# захтеви прекида везе услуге преноса за ТЦП"
+
+#: src/transport/plugin_transport_tcp.c:2055
+msgid "# TCP WELCOME messages received"
+msgstr "# поруке ТЦП ДОБРОДОШЛИЦЕ су примљене"
+
+#: src/transport/plugin_transport_tcp.c:2215
+msgid "# bytes received via TCP"
+msgstr "# бајта је примљено путем ТЦП-а"
+
+#: src/transport/plugin_transport_tcp.c:2279
+msgid "# network-level TCP disconnect events"
+msgstr "# догађаји ТЦП мрежног нивоа прекидања везе"
+
+#: src/transport/plugin_transport_tcp.c:2437 src/util/service.c:582
+#: src/util/service.c:588
+#, c-format
+msgid "Require valid port number for service `%s' in configuration!\n"
+msgstr "Захтева исправан број прикључника за услугу „%s“ у подешавањима!\n"
+
+#: src/transport/plugin_transport_tcp.c:2451
+msgid "Failed to start service.\n"
+msgstr "Нисам успео да покренем услугу.\n"
+
+#: src/transport/plugin_transport_tcp.c:2547
+#, c-format
+msgid "TCP transport listening on port %llu\n"
+msgstr "ТЦП пренос ослушкује на прикључнику %llu\n"
+
+#: src/transport/plugin_transport_tcp.c:2551
+msgid "TCP transport not listening on any port (client only)\n"
+msgstr "ТЦП пренос не ослушкује ни на једном прикључнику (само клијент)\n"
+
+#: src/transport/plugin_transport_tcp.c:2554
+#, c-format
+msgid "TCP transport advertises itself as being on port %llu\n"
+msgstr "ТЦП пренос упозорава себе да је на прикључнику %llu\n"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:167
+msgid "# IPv6 multicast HELLO beacons received via udp"
+msgstr "# ИПв6 вишеодредишне „HELLO“ ознаке су примљене путем удп-а"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:210
+msgid "# IPv4 broadcast HELLO beacons received via udp"
+msgstr "# ИПв4 свеодредишне „HELLO“ ознаке су примљене путем удп-а"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:603
+msgid "Disabling HELLO broadcasting due to friend-to-friend only 
configuration!\n"
+msgstr "Искључујем „HELLO“ емитовање због подешавања само пријатељ 
пријатељу!\n"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:626
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr "Нисам успео да поставим опцију ИПв4 емитовања за прикључницу емитовања 
на прикључнику %d\n"
+
+#: src/transport/plugin_transport_udp.c:1513
+#, c-format
+msgid "Trying to create session for address of unexpected length %u (should be 
%u or %u)\n"
+msgstr "Покушавам да направим сесију за адресу неочекиване дужине %u (треба 
бити %u или %u)\n"
+
+#: src/transport/plugin_transport_udp.c:2602
+#, c-format
+msgid "UDP could not transmit message to `%s': Network seems down, please 
check your network configuration\n"
+msgstr "УДП не може да пренесе поруку до „%s“: Изгледа да је мрежа пала, 
проверите ваша мрежна подешавања\n"
+
+#: src/transport/plugin_transport_udp.c:2616
+msgid "UDP could not transmit IPv6 message! Please check your network 
configuration and disable IPv6 if your connection does not have a global IPv6 
address\n"
+msgstr "УДП не може да пренесе ИПв6 поруку! Проверите мрежна подешавања и 
искључите ИПв6 ако ваша веза нема општу Ипв6 адресу\n"
+
+#: src/transport/plugin_transport_udp.c:2961
+msgid "Failed to open UDP sockets\n"
+msgstr "Нисам успео да отворим УДП прикључницу\n"
+
+#: src/transport/plugin_transport_udp.c:3056
+#, c-format
+msgid "Given `%s' option is out of range: %llu > %u\n"
+msgstr "Дата „%s“ опција је ван опсега: %llu > %u\n"
+
+#: src/transport/plugin_transport_udp.c:3097
+#, c-format
+msgid "Invalid IPv6 address: `%s'\n"
+msgstr "Неисправна ИПв6 адреса: „%s“\n"
+
+#: src/transport/plugin_transport_udp.c:3168
+msgid "Failed to create network sockets, plugin failed\n"
+msgstr "Нисам успео да направим прикључнице мреже, прикључак није успео\n"
+
+#: src/transport/plugin_transport_unix.c:1321
+#, c-format
+msgid "Cannot create path to `%s'\n"
+msgstr "Не могу да направим путању до „%s“\n"
+
+#: src/transport/plugin_transport_unix.c:1652
+msgid "No UNIXPATH given in configuration!\n"
+msgstr "Није дата ЈУНИКС_ПУТАЊА у подешавањима!\n"
+
+#: src/transport/plugin_transport_unix.c:1688
+msgid "Failed to open UNIX listen socket\n"
+msgstr "Нисам успео да отворим ЈУНИКС прикључницу ослушкивања\n"
+
+#: src/transport/plugin_transport_wlan.c:620
+msgid "# WLAN ACKs sent"
+msgstr "# „WLAN“ АЦК-ови су послати"
+
+#: src/transport/plugin_transport_wlan.c:639
+msgid "# WLAN messages defragmented"
+msgstr "# делићи „WLAN“ порука су уједињени"
+
+#: src/transport/plugin_transport_wlan.c:688
+#: src/transport/plugin_transport_wlan.c:772
+#: src/transport/plugin_transport_wlan.c:1948
+msgid "# WLAN sessions allocated"
+msgstr "# „WLAN“ сесије су додељене"
+
+#: src/transport/plugin_transport_wlan.c:876
+msgid "# WLAN message fragments sent"
+msgstr "# делићи „WLAN“ поруке су послати"
+
+#: src/transport/plugin_transport_wlan.c:900
+msgid "# WLAN messages pending (with fragmentation)"
+msgstr "# Поруке „WLAN“-а су на чекању (са расцепканошћу)"
+
+#: src/transport/plugin_transport_wlan.c:1008
+#: src/transport/plugin_transport_wlan.c:1098
+#: src/transport/plugin_transport_wlan.c:1950
+msgid "# WLAN MAC endpoints allocated"
+msgstr "# Крајње тачке „WLAN“ МАЦ-а су додељене"
+
+#: src/transport/plugin_transport_wlan.c:1302
+msgid "# HELLO messages received via WLAN"
+msgstr "# „HELLO“ поруке су примљене путем „WLAN“-а"
+
+#: src/transport/plugin_transport_wlan.c:1326
+msgid "# fragments received via WLAN"
+msgstr "# делићи су примљени путем „WLAN“-а"
+
+#: src/transport/plugin_transport_wlan.c:1336
+msgid "# ACKs received via WLAN"
+msgstr "# АЦК-ови су примљени путем „WLAN“-а"
+
+#: src/transport/plugin_transport_wlan.c:1396
+msgid "# WLAN DATA messages discarded due to CRC32 error"
+msgstr "# Поруке ПОДАТАКА „WLAN“ су одбачене услед „CRC32“ грешке"
+
+#: src/transport/plugin_transport_wlan.c:1518
+msgid "# DATA messages received via WLAN"
+msgstr "# поруке ПОДАТАКА су примљене путем „WLAN“-а"
+
+#: src/transport/plugin_transport_wlan.c:1553
+msgid "# WLAN DATA messages processed"
+msgstr "# Поруке „WLAN“ ПОДАТАКА су обрађене"
+
+#: src/transport/plugin_transport_wlan.c:1616
+msgid "# HELLO beacons sent via WLAN"
+msgstr "# „HELLO“ ознаке су послате путем „WLAN“—а"
+
+#: src/transport/plugin_transport_wlan.c:1729
+msgid "WLAN address with invalid size encountered\n"
+msgstr "Наишли смо на адресу „WLAN“ са неисправном величином\n"
+
+#: src/transport/plugin_transport_wlan.c:1929
+#, c-format
+msgid "Helper binary `%s' not SUID, cannot run WLAN transport\n"
+msgstr "Извршна помоћника „%s“ није СУИБ, не могу да покренем „WLAN“ пренос\n"
+
+#: src/transport/transport_api.c:739
+#, c-format
+msgid "Received unexpected message of type %u in %s:%u\n"
+msgstr "Примих неочекивану поруку врсте %u у %s:%u\n"
+
+#: src/transport/transport-testing.c:584
+msgid "Failed to initialize testing library!\n"
+msgstr "Нисам успео да покренем библиотеку тестирања!\n"
+
+#: src/tun/regex.c:129
+#, c-format
+msgid "Bad mask: %d\n"
+msgstr "Лоша маска: %d\n"
+
+#: src/util/bio.c:170 src/util/bio.c:178
+#, c-format
+msgid "Error reading `%s': %s"
+msgstr "Грешка при читању „%s“: %s"
+
+#: src/util/bio.c:180
+msgid "End of file"
+msgstr "Крај датотеке"
+
+#: src/util/bio.c:237
+#, c-format
+msgid "Error reading length of string `%s'"
+msgstr "Грешка читања дужине ниске „%s“"
+
+#: src/util/bio.c:247
+#, c-format
+msgid "String `%s' longer than allowed (%u > %u)"
+msgstr "Ниска „%s“ је дужа од дозвољеног (%u > %u)"
+
+#: src/util/bio.c:293
+#, c-format
+msgid "Serialized metadata `%s' larger than allowed (%u>%u)"
+msgstr "Серијализовани метаподаци „%s“ су већи од дозвољеног (%u>%u)"
+
+#: src/util/bio.c:307
+#, c-format
+msgid "Metadata `%s' failed to deserialize"
+msgstr "Метаподаци „%s“ нису успели да се десеријализују"
+
+#: src/util/client.c:261 src/util/client.c:858 src/util/service.c:619
+#, c-format
+msgid "UNIXPATH `%s' too long, maximum length is %llu\n"
+msgstr "ЈУНИКС_ПУТАЊА „%s“ је предуга, највећа дужина је %llu\n"
+
+#: src/util/client.c:265 src/util/client.c:863 src/util/service.c:623
+#, c-format
+msgid "Using `%s' instead\n"
+msgstr "Користим зато „%s“\n"
+
+#: src/util/client.c:360
+#, c-format
+msgid "Could not determine valid hostname and port for service `%s' from 
configuration.\n"
+msgstr "Не могу да одредим исправан назив доамћина и прикључник за услугу „%s“ 
из подешавања.\n"
+
+#: src/util/client.c:368
+#, c-format
+msgid "Need a non-empty hostname for service `%s'.\n"
+msgstr "Потребан је не-празан назив домаћина за услугу „%s“.\n"
+
+#: src/util/client.c:1008
+#, c-format
+msgid "Could not connect to service `%s', configuration broken.\n"
+msgstr "Не могу да се повежем на услугу „%s“, подешавање је оштећено.\n"
+
+#: src/util/client.c:1020
+#, c-format
+msgid "Failure to transmit request to service `%s'\n"
+msgstr "Нисам успео да пренесем захтев услузи „%s“\n"
+
+#: src/util/client.c:1303
+msgid "Could not submit request, not expecting to receive a response.\n"
+msgstr "Не могу да предам захтев, не очекујем да примим одговор.\n"
+
+#: src/util/common_logging.c:254 src/util/common_logging.c:1039
+msgid "DEBUG"
+msgstr "ПРОЧИШЋАВАЊЕ"
+
+#: src/util/common_logging.c:256 src/util/common_logging.c:1037
+msgid "INFO"
+msgstr "ПОДАЦИ"
+
+#: src/util/common_logging.c:258 src/util/common_logging.c:1035
+msgid "WARNING"
+msgstr "УПОЗОРЕЊЕ"
+
+#: src/util/common_logging.c:260 src/util/common_logging.c:1033
+msgid "ERROR"
+msgstr "ГРЕШКА"
+
+#: src/util/common_logging.c:262 src/util/common_logging.c:1041
+msgid "NONE"
+msgstr "НИШТА"
+
+#: src/util/common_logging.c:391
+#, c-format
+msgid "Failed to create or access directory for log file `%s'\n"
+msgstr "Нисам успео да направим или да приступим директоријуму да забележим 
датотеку „%s“\n"
+
+#: src/util/common_logging.c:817
+#, c-format
+msgid "Message `%.*s' repeated %u times in the last %s\n"
+msgstr "Порука „%.*s“ је поновљена %u пута у прошлости %s\n"
+
+#: src/util/common_logging.c:1042
+msgid "INVALID"
+msgstr "НЕИСПРАВНО"
+
+#: src/util/common_logging.c:1157
+msgid "unknown address"
+msgstr "непозната адреса"
+
+#: src/util/common_logging.c:1196
+msgid "invalid address"
+msgstr "неисправна адреса"
+
+#: src/util/common_logging.c:1214
+#, c-format
+msgid "Configuration fails to specify option `%s' in section `%s'!\n"
+msgstr "Подешавање није успело да наведе опцију „%s“ у одељку „%s“!\n"
+
+#: src/util/common_logging.c:1235
+#, c-format
+msgid "Configuration specifies invalid value for option `%s' in section `%s': 
%s\n"
+msgstr "Подешавање наводи неисправну вредност за опцију „%s“ у одељку „%s“: 
%s\n"
+
+#: src/util/configuration.c:288
+#, c-format
+msgid "Syntax error while deserializing in line %u\n"
+msgstr "Грешка синтаксе приликом десеријализације у реду %u\n"
+
+#: src/util/configuration.c:996
+#, c-format
+msgid "Configuration value '%s' for '%s' in section '%s' is not in set of 
legal choices\n"
+msgstr "Вредност подешавања '%s' за '%s' у одељку '%s' није ус купу исправних 
избора\n"
+
+#: src/util/configuration.c:1066
+#, c-format
+msgid "Recursive expansion suspected, aborting $-expansion for term `%s'\n"
+msgstr "Сумња се на дубинско ширење, прекидам $-ширење за термин „%s“\n"
+
+#: src/util/configuration.c:1098
+#, c-format
+msgid "Missing closing `%s' in option `%s'\n"
+msgstr "Недостаје затварење „%s“ у опцији „%s“\n"
+
+#: src/util/configuration.c:1172
+#, c-format
+msgid "Failed to expand `%s' in `%s' as it is neither found in [PATHS] nor 
defined as an environmental variable\n"
+msgstr "Нисам успео да раширим „%s“ у „%s“ јер нисам нашао у [ПУТАЊАМА] нити 
је дефинисано као променљива окружења\n"
+
+#: src/util/connection.c:423
+#, c-format
+msgid "Access denied to `%s'\n"
+msgstr "Приступ је збрањен за „%s“\n"
+
+#: src/util/connection.c:438
+#, c-format
+msgid "Accepting connection from `%s': %p\n"
+msgstr "Прихватам везу са „%s“: %p\n"
+
+#: src/util/connection.c:553
+#, c-format
+msgid "Failed to establish TCP connection to `%s:%u', no further addresses to 
try.\n"
+msgstr "Нисам успео да успоставим ТЦП везу са `%s:%u', нема будућих адреса за 
покушавање.\n"
+
+#: src/util/connection.c:751 src/util/connection.c:919
+#, c-format
+msgid "Trying to connect to `%s' (%p)\n"
+msgstr "Покушавам да се повежем на „%s“ (%p)\n"
+
+#: src/util/connection.c:910
+#, c-format
+msgid "Attempt to connect to `%s' failed\n"
+msgstr "Покушај повезивања са „%s“ није успео\n"
+
+#: src/util/container_bloomfilter.c:531
+#, c-format
+msgid "Size of file on disk is incorrect for this Bloom filter (want %llu, 
have %llu)\n"
+msgstr "Величина датотеке на диску није тачна за овај Блум филтер (желим %llu, 
имам %llu)\n"
+
+#: src/util/crypto_ecc.c:702 src/util/crypto_ecc.c:740
+#: src/util/crypto_ecc.c:858 src/util/crypto_ecc.c:896
+#, c-format
+msgid "Could not acquire lock on file `%s': %s...\n"
+msgstr "Не могу да остварим закључавање на датотеци „%s“: %s...\n"
+
+#: src/util/crypto_ecc.c:707 src/util/crypto_ecc.c:863
+msgid "Creating a new private key.  This may take a while.\n"
+msgstr "Стварам нови лични кључ.  Ово може потрајати.\n"
+
+#: src/util/crypto_ecc.c:744 src/util/crypto_ecc.c:900
+msgid "This may be ok if someone is currently generating a private key.\n"
+msgstr "Ово може бити у реду ако неко тренутно ствара лични кључ.\n"
+
+#: src/util/crypto_ecc.c:774 src/util/crypto_ecc.c:930
+#, c-format
+msgid "When trying to read key file `%s' I found %u bytes but I need at least 
%u.\n"
+msgstr "Приликом покушаја читања датотеке кључа „%s“ нађох %u бајта али ми 
треба барем %u.\n"
+
+#: src/util/crypto_ecc.c:778 src/util/crypto_ecc.c:934
+msgid "This may be ok if someone is currently generating a key.\n"
+msgstr "Ово може бити у реду ако неко тренутно ствара кључ.\n"
+
+#: src/util/crypto_ecc.c:1016
+msgid "Could not load peer's private key\n"
+msgstr "Не могу да учитам лични кључ парњака\n"
+
+#: src/util/crypto_ecc.c:1120
+#, c-format
+msgid "ECC signing failed at %s:%d: %s\n"
+msgstr "„ECC“ потписивање није успело на %s:%d: %s\n"
+
+#: src/util/crypto_ecc.c:1170
+#, c-format
+msgid "EdDSA signing failed at %s:%d: %s\n"
+msgstr "„EdDSA“ потписивање није успело на %s:%d: %s\n"
+
+#: src/util/crypto_ecc.c:1244
+#, c-format
+msgid "ECDSA signature verification failed at %s:%d: %s\n"
+msgstr "Провера „ECDSA“ потписа није успела на %s:%d: %s\n"
+
+#: src/util/crypto_ecc.c:1301
+#, c-format
+msgid "EdDSA signature verification failed at %s:%d: %s\n"
+msgstr "Провера „EdDSA“ потписа није успела на %s:%d: %s\n"
+
+#: src/util/crypto_random.c:284
+#, c-format
+msgid "libgcrypt has not the expected version (version %s is required).\n"
+msgstr "„libgcrypt“ није очекиваног издања (издање %s је потребно).\n"
+
+#: src/util/disk.c:1184
+#, c-format
+msgid "Expected `%s' to be a directory!\n"
+msgstr "Очекивах да „%s“ буде директоријум!\n"
+
+#: src/util/disk.c:1546 src/util/service.c:1318
+#, c-format
+msgid "Cannot obtain information about user `%s': %s\n"
+msgstr "Не могу да добијем податке о кориснику „%s“: %s\n"
+
+#: src/util/getopt.c:568
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: опција „%s“ је нејасна\n"
+
+#: src/util/getopt.c:592
+#, c-format
+msgid "%s: option `--%s' does not allow an argument\n"
+msgstr "%s: опција „--%s“ не дозвољава аргумент\n"
+
+#: src/util/getopt.c:597
+#, c-format
+msgid "%s: option `%c%s' does not allow an argument\n"
+msgstr "%s: опција „%c%s“ не дозвољава аргумент\n"
+
+#: src/util/getopt.c:614 src/util/getopt.c:781
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: опција „%s“ захтева аргумент\n"
+
+#: src/util/getopt.c:643
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: непрепозната опција „--%s“\n"
+
+#: src/util/getopt.c:647
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: непрепозната опција „%c%s“\n"
+
+#: src/util/getopt.c:672
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: недозвољена опција —— %c\n"
+
+#: src/util/getopt.c:674
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: неисправна опција —— %c\n"
+
+#: src/util/getopt.c:702 src/util/getopt.c:829
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: опција захтева аргумент —— %c\n"
+
+#: src/util/getopt.c:750
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: опција „-W %s“ је нејасна\n"
+
+#: src/util/getopt.c:768
+#, c-format
+msgid "%s: option `-W %s' does not allow an argument\n"
+msgstr "%s: опција „-W %s“ не дозвољава аргумент\n"
+
+#: src/util/getopt.c:933
+#, c-format
+msgid "Use %s to get a list of options.\n"
+msgstr "Употребите „%s“ да добавите списак опција.\n"
+
+#: src/util/getopt_helpers.c:84
+#, c-format
+msgid "Arguments mandatory for long options are also mandatory for short 
options.\n"
+msgstr "Аргументи обавезни за дуге опције су такође обавезни за кратке 
опције.\n"
+
+#: src/util/getopt_helpers.c:268 src/util/getopt_helpers.c:326
+#, c-format
+msgid "You must pass a number to the `%s' option.\n"
+msgstr "Морате да проследите број опцији „%s“.\n"
+
+#: src/util/getopt_helpers.c:298
+#, c-format
+msgid "You must pass relative time to the `%s' option.\n"
+msgstr "Морате да проследите релативно време опцији „%s“.\n"
+
+#: src/util/gnunet-config.c:90
+#, c-format
+msgid "--section argument is required\n"
+msgstr "аргумент „--section“ је потребан\n"
+
+#: src/util/gnunet-config.c:133
+#, c-format
+msgid "--option argument required to set value\n"
+msgstr "аргумент „--option“ је потребан за постављање вредности\n"
+
+#: src/util/gnunet-config.c:160
+msgid "obtain option of value as a filename (with $-expansion)"
+msgstr "добија опцију вредности као назив датотеке (са $-ширењем)"
+
+#: src/util/gnunet-config.c:163
+msgid "name of the section to access"
+msgstr "назив одељка за приступање"
+
+#: src/util/gnunet-config.c:166
+msgid "name of the option to access"
+msgstr "назив опције за приступање"
+
+#: src/util/gnunet-config.c:169
+msgid "value to set"
+msgstr "вредност за постављање"
+
+#: src/util/gnunet-config.c:178
+msgid "Manipulate GNUnet configuration files"
+msgstr "Управља ГНУнет датотекама подешавања"
+
+#: src/util/gnunet-ecc.c:75
+#, c-format
+msgid "Failed to open `%s': %s\n"
+msgstr "Нисам успео да отворим „%s“: %s\n"
+
+#: src/util/gnunet-ecc.c:81
+#, c-format
+msgid "Generating %u keys, please wait"
+msgstr "Стварам %u кључа, сачекајте"
+
+#: src/util/gnunet-ecc.c:97
+#, c-format
+msgid ""
+"\n"
+"Failed to write to `%s': %s\n"
+msgstr ""
+"\n"
+"Нисам успео да пишем у „%s“: %s\n"
+
+#: src/util/gnunet-ecc.c:107
+#, c-format
+msgid ""
+"\n"
+"Finished!\n"
+msgstr ""
+"\n"
+"Завршено!\n"
+
+#: src/util/gnunet-ecc.c:110
+#, c-format
+msgid ""
+"\n"
+"Error, %u keys not generated\n"
+msgstr ""
+"\n"
+"Грешка, %u кључа нису створена\n"
+
+#: src/util/gnunet-ecc.c:199
+#, c-format
+msgid "Hostkeys file `%s' not found\n"
+msgstr "Нисам нашао датотеку кључа домаћина „%s“\n"
+
+#: src/util/gnunet-ecc.c:210
+#, c-format
+msgid "Hostkeys file `%s' is empty\n"
+msgstr "Датотека кључа домаћина „%s“ је празна\n"
+
+#: src/util/gnunet-ecc.c:232
+#, c-format
+msgid "Could not read hostkey file: %s\n"
+msgstr "Не могу да прочитам датотеку кључа домаћина: %s\n"
+
+#: src/util/gnunet-ecc.c:283
+msgid "No hostkey file specified on command line\n"
+msgstr "Није наведена датотека кључа домаћина на линији наредби\n"
+
+#: src/util/gnunet-ecc.c:349
+msgid "list keys included in a file (for testing)"
+msgstr "исписује кључеве укључене у датотеци (за тестирање)"
+
+#: src/util/gnunet-ecc.c:352
+msgid "number of keys to list included in a file (for testing)"
+msgstr "број кључева за испис укључених у датотеци (за тестирање)"
+
+#: src/util/gnunet-ecc.c:355
+msgid "create COUNT public-private key pairs (for testing)"
+msgstr "ствара БРОЈ пара јавног-личног кључа (за тестирање)"
+
+#: src/util/gnunet-ecc.c:358
+msgid "print the public key in ASCII format"
+msgstr "исписује јавни кључ у АСКРИ формату"
+
+#: src/util/gnunet-ecc.c:361
+msgid "print the hash of the public key in ASCII format"
+msgstr "исписује хеш јавног кључа у АСКРИ формату"
+
+#: src/util/gnunet-ecc.c:364
+msgid "print examples of ECC operations (used for compatibility testing)"
+msgstr "исписује примере ЕЦЦ операција (користи се за тестирање сагласности)"
+
+#: src/util/gnunet-ecc.c:375
+msgid "Manipulate GNUnet private ECC key files"
+msgstr "Управља ГНУнет датотекама личног ЕЦЦ кључа"
+
+#: src/util/gnunet-resolver.c:149
+msgid "perform a reverse lookup"
+msgstr "обавља повратну претрагу"
+
+#: src/util/gnunet-resolver.c:160
+msgid "Use build-in GNUnet stub resolver"
+msgstr "Користи уграђеног заменског решавача ГНУнет-а"
+
+#: src/util/gnunet-scrypt.c:279
+msgid "number of bits to require for the proof of work"
+msgstr "број битова за тражење доказивања о раду"
+
+#: src/util/gnunet-scrypt.c:282
+msgid "file with private key, otherwise default is used"
+msgstr "датотека са личним кључем, у супротном користи се основна"
+
+#: src/util/gnunet-scrypt.c:285
+msgid "file with proof of work, otherwise default is used"
+msgstr "датотека са доказом о раду, у супротном користи се основна"
+
+#: src/util/gnunet-scrypt.c:288
+msgid "time to wait between calculations"
+msgstr "време за чекање између прорачуна"
+
+#: src/util/gnunet-scrypt.c:299
+msgid "Manipulate GNUnet proof of work files"
+msgstr "Управља ГНУнет датотекама доказа о раду"
+
+#: src/util/gnunet-service-resolver.c:299
+#, c-format
+msgid "Could not resolve `%s' (%s): %s\n"
+msgstr "Не могу да решим „%s“ (%s): %s\n"
+
+#: src/util/gnunet-service-resolver.c:371
+#: src/util/gnunet-service-resolver.c:412
+#, c-format
+msgid "Could not find IP of host `%s': %s\n"
+msgstr "Не могу да нађем ИП домаћина „%s“: %s\n"
+
+#: src/util/gnunet-uri.c:84
+#, c-format
+msgid "No URI specified on command line\n"
+msgstr "Није наведена путања на линији наредби\n"
+
+#: src/util/gnunet-uri.c:89
+#, c-format
+msgid "Invalid URI: does not start with `%s'\n"
+msgstr "Неисправна путања: не почиње са „%s“\n"
+
+#: src/util/gnunet-uri.c:96
+#, c-format
+msgid "Invalid URI: fails to specify subsystem\n"
+msgstr "Неисправна путања: није успело навођење подсистема\n"
+
+#: src/util/gnunet-uri.c:106
+#, c-format
+msgid "No handler known for subsystem `%s'\n"
+msgstr "Није познат руковалац за подсистем „%s“\n"
+
+#: src/util/gnunet-uri.c:168
+msgid "Perform default-actions for GNUnet URIs"
+msgstr "Обавља основне радње за путање ГНУнет-а"
+
+#: src/util/helper.c:338
+#, c-format
+msgid "Error reading from `%s': %s\n"
+msgstr "Грешка читања из „%s“: %s\n"
+
+#: src/util/helper.c:383
+#, c-format
+msgid "Failed to parse inbound message from helper `%s'\n"
+msgstr "Нисам успео да обрадим долазну поруку са помоћника „%s“\n"
+
+#: src/util/helper.c:609
+#, c-format
+msgid "Error writing to `%s': %s\n"
+msgstr "Грешка писања у „%s“: %s\n"
+
+#: src/util/network.c:134
+#, c-format
+msgid "Unable to shorten unix path `%s' while keeping name unique\n"
+msgstr "Не могу да скратим јуникс путању „%s“ док задржавам назив 
јединственим\n"
+
+#: src/util/network.c:1355 src/util/network.c:1480
+#, c-format
+msgid "Fatal internal logic error, process hangs in `%s' (abort with 
CTRL-C)!\n"
+msgstr "Кобна унутрашња логичка грешка, процес се заплео у „%s“ (прекините са 
КТРЛ-Ц)!\n"
+
+#: src/util/os_installation.c:421
+#, c-format
+msgid "Could not determine installation path for %s.  Set `%s' environment 
variable.\n"
+msgstr "Не могу да одредим путању инсталирања за „%s“.  Поставите „%s“ 
променљиву окружења.\n"
+
+#: src/util/os_installation.c:766
+#, c-format
+msgid "Could not find binary `%s' in PATH!\n"
+msgstr "Не могу да нађем извршну „%s“ у ПУТАЊИ!\n"
+
+#: src/util/os_installation.c:826
+#, c-format
+msgid "CreateProcess failed for binary %s (%d).\n"
+msgstr "„CreateProcess“ није успело за извршну „%s“ (%d).\n"
+
+#: src/util/os_installation.c:836
+#, c-format
+msgid "GetExitCodeProcess failed for binary %s (%d).\n"
+msgstr "„GetExitCodeProcess“ није успело за извршну „%s“ (%d).\n"
+
+#: src/util/plugin.c:87
+#, c-format
+msgid "Initialization of plugin mechanism failed: %s!\n"
+msgstr "Покретање механизма прикључка није успело: %s!\n"
+
+#: src/util/plugin.c:148
+#, c-format
+msgid "`%s' failed to resolve method '%s' with error: %s\n"
+msgstr "„%s“ није успело да реши метод '%s' са грешком: %s\n"
+
+#: src/util/plugin.c:223
+#, c-format
+msgid "`%s' failed for library `%s' with error: %s\n"
+msgstr "„%s“ није успело за библиотеку '%s' са грешком: %s\n"
+
+#: src/util/plugin.c:382
+msgid "Could not determine plugin installation path.\n"
+msgstr "Не могу да одредим путању инсталирања прикључка.\n"
+
+#: src/util/program.c:246 src/util/service.c:1452
+#, c-format
+msgid "Malformed configuration file `%s', exit ...\n"
+msgstr "Лоша датотека подешавања „%s“, излазим ...\n"
+
+#: src/util/program.c:258 src/util/service.c:1467
+#, c-format
+msgid "Could not access configuration file `%s'\n"
+msgstr "Не могу да приступим датотеци подешавања „%s“\n"
+
+#: src/util/program.c:263 src/util/service.c:1462
+msgid "Malformed configuration, exit ...\n"
+msgstr "Лоше подешавање, излазим ...\n"
+
+#: src/util/resolver_api.c:198
+#, c-format
+msgid "Must specify `%s' for `%s' in configuration!\n"
+msgstr "Морате навести „%s“ за „%s“ у подешавањима!\n"
+
+#: src/util/resolver_api.c:216
+#, c-format
+msgid "Must specify `%s' or numeric IP address for `%s' of `%s' in 
configuration!\n"
+msgstr "Морате навести „%s“ или бројевну ИП адресу за „%s“ од „%s“ у 
подешавањима!\n"
+
+#: src/util/resolver_api.c:348
+#, c-format
+msgid "Timeout trying to resolve IP address `%s'.\n"
+msgstr "Истекло је време при покушају решавања ИП адресе „%s“.\n"
+
+#: src/util/resolver_api.c:352
+#, c-format
+msgid "Timeout trying to resolve hostname `%s'.\n"
+msgstr "Истекло је време при покушају решавања назива домаћина „%s“.\n"
+
+#: src/util/resolver_api.c:908
+#, c-format
+msgid "Could not resolve our FQDN : %s\n"
+msgstr "Не могу да решим наш „FQDN“ : %s\n"
+
+#: src/util/scheduler.c:813
+msgid "Looks like we're busy waiting...\n"
+msgstr "Изгледа да смо заузети чекајући...\n"
+
+#: src/util/scheduler.c:948
+#, c-format
+msgid "Attempt to cancel dead task %llu!\n"
+msgstr "Покушах да обришем неактиван задатак %llu!\n"
+
+#: src/util/server.c:484
+#, c-format
+msgid "`%s' failed for port %d (%s).\n"
+msgstr "„%s“ није успело за прикључник %d (%s).\n"
+
+#: src/util/server.c:493
+#, c-format
+msgid "`%s' failed for port %d (%s): address already in use\n"
+msgstr "„%s“ није успело за прикључник %d (%s): адреса је већ у употреби\n"
+
+#: src/util/server.c:499
+#, c-format
+msgid "`%s' failed for `%s': address already in use\n"
+msgstr "„%s“ није успело за „%s“: адреса је већ у употреби\n"
+
+#: src/util/server.c:892
+#, c-format
+msgid "Processing code for message of type %u did not call 
`GNUNET_SERVER_receive_done' after %s\n"
+msgstr "Обрађивачки код за поруку врсте %u није позвао 
„GNUNET_SERVER_receive_done“ након „%s“\n"
+
+#: src/util/service.c:347
+#, c-format
+msgid "Unknown address family %d\n"
+msgstr "Непозната породица адресе „%d“\n"
+
+#: src/util/service.c:354
+#, c-format
+msgid "Access from `%s' denied to service `%s'\n"
+msgstr "Приступ из „%s“ је забрањен за услугу „%s“\n"
+
+#: src/util/service.c:409
+#, c-format
+msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n"
+msgstr "Не могу да обрадим спецификацију ИПв4 мреже „%s“ за `%s:%s'\n"
+
+#: src/util/service.c:446
+#, c-format
+msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n"
+msgstr "Не могу да обрадим спецификацију ИПв6 мреже „%s“ за `%s:%s'\n"
+
+#: src/util/service.c:563
+#, c-format
+msgid "Disabling IPv6 support for service `%s', failed to create IPv6 socket: 
%s\n"
+msgstr "Искључујем ИПв6 подршку за услугу „%s“, нисм успео да направим ИПв6 
прикључницу: %s\n"
+
+#: src/util/service.c:653
+#, c-format
+msgid "Disabling UNIX domain socket support for service `%s', failed to create 
UNIX domain socket: %s\n"
+msgstr "Искључујем подршку прикључнице ЈУНИКС домена за услугу „%s“, нисм 
успео да направим прикључницу ЈУНИКС домена: %s\n"
+
+#: src/util/service.c:669
+#, c-format
+msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"
+msgstr "Немам ни ПРИКЉУЧНИК ни ЈУНИКС_ПУТАЊУ за услугу „%s“, али је једно 
потребно\n"
+
+#: src/util/service.c:903
+msgid "Could not access a pre-bound socket, will try to bind myself\n"
+msgstr "Не могу да приступим унапред свезаној прикључници, покушаћу да свежем 
себе самог\n"
+
+#: src/util/service.c:952 src/util/service.c:970
+#, c-format
+msgid "Specified value for `%s' of service `%s' is invalid\n"
+msgstr "Наведена вредност за „%s“ услуге „%s“ је неисправна\n"
+
+#: src/util/service.c:995
+#, c-format
+msgid "Could not access pre-bound socket %u, will try to bind myself\n"
+msgstr "Не могу да приступим унапред свезаној прикључници %u, покушаћу да 
свежем себе самог\n"
+
+#: src/util/service.c:1165
+#, c-format
+msgid "Failed to start `%s' at `%s'\n"
+msgstr "Нисам успео да покренем „%s“ на „%s“\n"
+
+#: src/util/service.c:1207
+#, c-format
+msgid "Service `%s' runs at %s\n"
+msgstr "Услуга „%s“ ради на „%s“\n"
+
+#: src/util/service.c:1256
+msgid "Service process failed to initialize\n"
+msgstr "Процес услуге није успео да се покрене\n"
+
+#: src/util/service.c:1260
+msgid "Service process could not initialize server function\n"
+msgstr "Процес услуге не може да покрене функцију сервера\n"
+
+#: src/util/service.c:1264
+msgid "Service process failed to report status\n"
+msgstr "Процес услуге није успео да извести о стању\n"
+
+#: src/util/service.c:1319
+msgid "No such user"
+msgstr "Нема таквог корисника"
+
+#: src/util/service.c:1332
+#, c-format
+msgid "Cannot change user/group to `%s': %s\n"
+msgstr "Не могу да променим власника/групу на „%s“: %s\n"
+
+#: src/util/service.c:1402
+msgid "do daemonize (detach from terminal)"
+msgstr "ради демонизацију (откачиње од терминала)"
+
+#: src/util/signal.c:89
+#, c-format
+msgid "signal (%d, %p) returned %d.\n"
+msgstr "сигнал (%d, %p) је дао %d.\n"
+
+#: src/util/strings.c:145
+msgid "b"
+msgstr "b"
+
+#: src/util/strings.c:433
+#, c-format
+msgid "Character sets requested were `%s'->`%s'\n"
+msgstr "Скупови знакова се захтевају где је „%s“–>„%s“\n"
+
+#: src/util/strings.c:561
+msgid "Failed to expand `$HOME': environment variable `HOME' not set"
+msgstr "Нисам успео да раширим „$HOME“: променљива окружења „HOME“ није 
постављена"
+
+#: src/util/strings.c:658
+msgid "µs"
+msgstr "µs"
+
+#: src/util/strings.c:662
+msgid "forever"
+msgstr "заувек"
+
+#: src/util/strings.c:664
+msgid "0 ms"
+msgstr "0 ms"
+
+#: src/util/strings.c:670
+msgid "ms"
+msgstr "ms"
+
+#: src/util/strings.c:676
+msgid "s"
+msgstr "s"
+
+#: src/util/strings.c:682
+msgid "m"
+msgstr "m"
+
+#: src/util/strings.c:688
+msgid "h"
+msgstr "h"
+
+#: src/util/strings.c:695
+msgid "day"
+msgstr "дан"
+
+#: src/util/strings.c:697
+msgid "days"
+msgstr "дана"
+
+#: src/util/strings.c:726
+msgid "end of time"
+msgstr "крај времена"
+
+#: src/util/strings.c:1159
+msgid "IPv6 address did not start with `['\n"
+msgstr "ИПв6 адреса не почиње са [\n"
+
+#: src/util/strings.c:1167
+msgid "IPv6 address did contain ':' to separate port number\n"
+msgstr "ИПв6 адреса садржи : за раздвајање броја прикључника\n"
+
+#: src/util/strings.c:1173
+msgid "IPv6 address did contain ']' before ':' to separate port number\n"
+msgstr "ИПв6 адреса садржи ] пре : за раздвајање броја прикључника\n"
+
+#: src/util/strings.c:1180
+msgid "IPv6 address did contain a valid port number after the last ':'\n"
+msgstr "ИПв6 адреса садржи исправан број прикључника након последње „:“\n"
+
+#: src/util/strings.c:1189
+#, c-format
+msgid "Invalid IPv6 address `%s': %s\n"
+msgstr "Неисправна ИПв6 адреса „%s“: %s\n"
+
+#: src/util/strings.c:1395 src/util/strings.c:1411
+msgid "Port not in range\n"
+msgstr "Прикључник није у опсегу\n"
+
+#: src/util/strings.c:1420
+#, c-format
+msgid "Malformed port policy `%s'\n"
+msgstr "Лоша политика прикључника „%s“\n"
+
+#: src/util/strings.c:1503 src/util/strings.c:1534 src/util/strings.c:1582
+#: src/util/strings.c:1603
+#, c-format
+msgid "Invalid format for IP: `%s'\n"
+msgstr "Неисправан формат за ИП: „%s“\n"
+
+#: src/util/strings.c:1560
+#, c-format
+msgid "Invalid network notation ('/%d' is not legal in IPv4 CIDR)."
+msgstr "Неисправна напомена мреже („/%d“ није исправно у ИПв4 ЦИДР-у)."
+
+#: src/util/strings.c:1612
+#, c-format
+msgid "Invalid format: `%s'\n"
+msgstr "Неисправан формат: „%s“\n"
+
+#: src/util/strings.c:1664
+#, c-format
+msgid "Invalid network notation (does not end with ';': `%s')\n"
+msgstr "Неисправна напомена мреже (не завршава се са „;“: „%s“)\n"
+
+#: src/util/strings.c:1714
+#, c-format
+msgid "Wrong format `%s' for netmask\n"
+msgstr "Погрешан формат „%s“ за мрежну маску\n"
+
+#: src/util/strings.c:1745
+#, c-format
+msgid "Wrong format `%s' for network\n"
+msgstr "Погрешан формат „%s“ за мрежу\n"
+
+#: src/vpn/gnunet-service-vpn.c:550 src/vpn/gnunet-service-vpn.c:1086
+msgid "# Active channels"
+msgstr "# Активни канали"
+
+#: src/vpn/gnunet-service-vpn.c:642
+msgid "# Bytes given to mesh for transmission"
+msgstr "# Бајтови су дати мешу за преношење"
+
+#: src/vpn/gnunet-service-vpn.c:680
+msgid "# Bytes dropped in mesh queue (overflow)"
+msgstr "# Бајтови су одбачени у реду меша (прекорачење)"
+
+#: src/vpn/gnunet-service-vpn.c:753
+msgid "# Mesh channels created"
+msgstr "# Меш канали су направљени"
+
+#: src/vpn/gnunet-service-vpn.c:784
+msgid "Failed to setup mesh channel!\n"
+msgstr "Нисам успео да поставим меш канал!\n"
+
+#: src/vpn/gnunet-service-vpn.c:978
+#, c-format
+msgid "Protocol %u not supported, dropping\n"
+msgstr "Протокол %u није подржан, одбацујем\n"
+
+#: src/vpn/gnunet-service-vpn.c:1305
+msgid "# ICMPv4 packets dropped (not allowed)"
+msgstr "# ICMPv4 пакети су одбачени (нису дозвољени)"
+
+#: src/vpn/gnunet-service-vpn.c:1326
+msgid "# ICMPv6 packets dropped (not allowed)"
+msgstr "# ICMPv6 пакети су одбачени (нису дозвољени)"
+
+#: src/vpn/gnunet-service-vpn.c:1531
+msgid "# Packets received from TUN interface"
+msgstr "# Пакети су примљени са ТУН сучеља"
+
+#: src/vpn/gnunet-service-vpn.c:1564 src/vpn/gnunet-service-vpn.c:1600
+#, c-format
+msgid "Packet received for unmapped destination `%s' (dropping it)\n"
+msgstr "Пакет је примљен за одмапирано одредиште „%s“ (одбацујем га)\n"
+
+#: src/vpn/gnunet-service-vpn.c:1610
+msgid "Received IPv4 packet with options (dropping it)\n"
+msgstr "Примљен је ИПв4 пакет са опцијама (одбацујем га)\n"
+
+#: src/vpn/gnunet-service-vpn.c:1624
+#, c-format
+msgid "Received packet of unknown protocol %d from TUN (dropping it)\n"
+msgstr "Примљен је пакет непознатог протокола %d са ТУН-а (одбацујем га)\n"
+
+#: src/vpn/gnunet-service-vpn.c:1706
+msgid "# ICMP packets received from mesh"
+msgstr "# ИЦМП пакети су примљени од меша"
+
+#: src/vpn/gnunet-service-vpn.c:2045
+msgid "# UDP packets received from mesh"
+msgstr "# УДП пакети су примљени од меша"
+
+#: src/vpn/gnunet-service-vpn.c:2200
+msgid "# TCP packets received from mesh"
+msgstr "# ТЦП пакети су примљени од меша"
+
+#: src/vpn/gnunet-service-vpn.c:2351
+msgid "Failed to find unallocated IPv4 address in VPN's range\n"
+msgstr "Нисам успео да нађем недодељену ИПв4 адресу у опсегу ВПН-а\n"
+
+#: src/vpn/gnunet-service-vpn.c:2406
+msgid "Failed to find unallocated IPv6 address in VPN's range\n"
+msgstr "Нисам успео да нађем недодељену ИПв6 адресу у опсегу ВПН-а\n"
+
+#: src/vpn/gnunet-service-vpn.c:2447 src/vpn/gnunet-service-vpn.c:2663
+msgid "# Active destinations"
+msgstr "# Активна одредишта"
+
+#: src/vpn/gnunet-service-vpn.c:2715
+msgid "Failed to allocate IP address for new destination\n"
+msgstr "Нисам успео да доделим ИП адресу за ново одредиште\n"
+
+#: src/vpn/gnunet-service-vpn.c:2982
+msgid "Must specify valid IPv6 address"
+msgstr "Морате навести исправну ИПв6 адресу"
+
+#: src/vpn/gnunet-service-vpn.c:3006
+msgid "Must specify valid IPv6 mask"
+msgstr "Морате навести исправну ИПв6 маску"
+
+#: src/vpn/gnunet-service-vpn.c:3014
+msgid "IPv6 support disabled as this system does not support IPv6\n"
+msgstr "ИПв6 подршка је искључена јер овај систем не подржава ИПв6\n"
+
+#: src/vpn/gnunet-service-vpn.c:3027
+msgid "Must specify valid IPv4 address"
+msgstr "Морате навести исправну ИПв4 адресу"
+
+#: src/vpn/gnunet-service-vpn.c:3040
+msgid "Must specify valid IPv4 mask"
+msgstr "Морате навести исправну ИПв4 маску"
+
+#: src/vpn/gnunet-service-vpn.c:3050
+msgid "IPv4 support disabled as this system does not support IPv4\n"
+msgstr "ИПв4 подршка је искључена јер овај систем не подржава ИПв4\n"
+
+#: src/vpn/gnunet-vpn.c:147
+msgid "Error creating tunnel\n"
+msgstr "Грешка стварања тунела\n"
+
+#: src/vpn/gnunet-vpn.c:190 src/vpn/gnunet-vpn.c:221
+#, c-format
+msgid "Option `%s' makes no sense with option `%s'.\n"
+msgstr "Опција „%s“ нема смисла са опцијом „%s“.\n"
+
+#: src/vpn/gnunet-vpn.c:203
+#, c-format
+msgid "Option `%s' or `%s' is required.\n"
+msgstr "Опција „%s“ или „%s“ је потребна.\n"
+
+#: src/vpn/gnunet-vpn.c:215
+#, c-format
+msgid "Option `%s' or `%s' is required when using option `%s'.\n"
+msgstr "Опција „%s“ или „%s“ се захтева приликом коришћења опције „%s“.\n"
+
+#: src/vpn/gnunet-vpn.c:235
+#, c-format
+msgid "`%s' is not a valid peer identifier.\n"
+msgstr "„%s“ није исправан одредник парњака.\n"
+
+#: src/vpn/gnunet-vpn.c:255
+#, c-format
+msgid "`%s' is not a valid IP address.\n"
+msgstr "„%s“ није исправна ИП адреса.\n"
+
+#: src/vpn/gnunet-vpn.c:290
+msgid "request that result should be an IPv4 address"
+msgstr "захтева да резултат треба да буде ИПв4 адреса"
+
+#: src/vpn/gnunet-vpn.c:293
+msgid "request that result should be an IPv6 address"
+msgstr "захтева да резултат треба да буде ИПв6 адреса"
+
+#: src/vpn/gnunet-vpn.c:296
+msgid "how long should the mapping be valid for new tunnels?"
+msgstr "колико дуго мапирање треба бити важеће за нове тунеле?"
+
+#: src/vpn/gnunet-vpn.c:299
+msgid "destination IP for the tunnel"
+msgstr "ИП одредишта за тунел"
+
+#: src/vpn/gnunet-vpn.c:302
+msgid "peer offering the service we would like to access"
+msgstr "парњак који нуди услугу којој желимо да приступимо"
+
+#: src/vpn/gnunet-vpn.c:305
+msgid "name of the service we would like to access"
+msgstr "назив услуге којој желимо да приступимо"
+
+#: src/vpn/gnunet-vpn.c:308
+msgid "service is offered via TCP"
+msgstr "услуга се нуди путем ТЦП-а"
+
+#: src/vpn/gnunet-vpn.c:311
+msgid "service is offered via UDP"
+msgstr "услуга се нуди путем УДП-ом"
+
+#: src/vpn/gnunet-vpn.c:323
+msgid "Setup tunnels via VPN."
+msgstr "Поставља тунеле путем ВПН-а."
+
+#: src/include/gnunet_common.h:566 src/include/gnunet_common.h:573
+#: src/include/gnunet_common.h:581
+#, c-format
+msgid "Assertion failed at %s:%d.\n"
+msgstr "Потврђивање није успело на %s:%d.\n"
+
+#: src/include/gnunet_common.h:593
+#, c-format
+msgid "External protocol violation detected at %s:%d.\n"
+msgstr "Повреда спољног протокола је откривена на %s:%d.\n"
+
+#: src/include/gnunet_common.h:620 src/include/gnunet_common.h:629
+#, c-format
+msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
+msgstr "„%s“ није успело на датотеци „%s“ на %s:%d са грешком: %s\n"
diff --git a/po/sv.po b/po/sv.po
index 25812f069..6dd57d227 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2020-09-06 10:07+0200\n"
+"POT-Creation-Date: 2020-10-13 16:12+0200\n"
 "PO-Revision-Date: 2006-01-21 17:16+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -27,8 +27,8 @@ msgid "Issuer public key `%s' is not well-formed\n"
 msgstr "Ogiltigt argument: \"%s\"\n"
 
 #: src/abd/gnunet-abd.c:560 src/abd/gnunet-service-abd.c:1747
-#: src/namestore/gnunet-namestore.c:1001
 #: src/namestore/gnunet-namestore-fcfsd.c:1154
+#: src/namestore/gnunet-namestore.c:1001
 #, fuzzy, c-format
 msgid "Failed to connect to namestore\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
@@ -502,82 +502,14 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3011
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3063
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997
-msgid "solver to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3557
-#: src/ats-tests/gnunet-solver-eval.c:1003
-#: src/ats-tests/gnunet-solver-eval.c:1008
-msgid "experiment to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3564
-#, fuzzy
-msgid "print logging"
-msgstr "Startade samling \"%s\".\n"
-
-#: src/ats/gnunet-ats-solver-eval.c:3569
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3574
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:326
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:336
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:382
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+#: src/ats-tests/ats-testing-log.c:896
+msgid "Stop logging\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_plugins.c:474
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "Kunde inte initiera SQLite.\n"
-
-#: src/ats/plugin_ats_proportional.c:1142
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "Kunde inte spara konfigurationsfil \"%s\":"
-
-#: src/ats/plugin_ats_proportional.c:1165
+#: src/ats-tests/ats-testing-log.c:952
 #, fuzzy, c-format
-msgid "Invalid %s configuration %f\n"
-msgstr "Kunde inte spara konfigurationsfil \"%s\":"
+msgid "Start logging `%s'\n"
+msgstr "Startade samling \"%s\".\n"
 
 #: src/ats-tests/ats-testing.c:420
 #, c-format
@@ -589,15 +521,6 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/ats-tests/ats-testing-log.c:896
-msgid "Stop logging\n"
-msgstr ""
-
-#: src/ats-tests/ats-testing-log.c:952
-#, fuzzy, c-format
-msgid "Start logging `%s'\n"
-msgstr "Startade samling \"%s\".\n"
-
 #: src/ats-tests/gnunet-ats-sim.c:92
 #, c-format
 msgid ""
@@ -605,6 +528,16 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
+#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552
+msgid "solver to use"
+msgstr ""
+
+#: src/ats-tests/gnunet-solver-eval.c:1003
+#: src/ats-tests/gnunet-solver-eval.c:1008
+#: src/ats/gnunet-ats-solver-eval.c:3557
+msgid "experiment to use"
+msgstr ""
+
 #: src/ats-tool/gnunet-ats.c:299
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -726,6 +659,73 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr "Skriv ut information om GNUnets motparter."
 
+#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3011
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3063
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3564
+#, fuzzy
+msgid "print logging"
+msgstr "Startade samling \"%s\".\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:3569
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3574
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:326
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:336
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:382
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:474
+#, fuzzy, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "Kunde inte initiera SQLite.\n"
+
+#: src/ats/plugin_ats_proportional.c:1142
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "Kunde inte spara konfigurationsfil \"%s\":"
+
+#: src/ats/plugin_ats_proportional.c:1165
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr "Kunde inte spara konfigurationsfil \"%s\":"
+
 #: src/auction/gnunet-auction-create.c:163
 msgid "description of the item to be sold"
 msgstr ""
@@ -865,6 +865,28 @@ msgstr ""
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
+#: src/conversation/gnunet-conversation-test.c:120
+#, c-format
+msgid ""
+"\n"
+"End of transmission.  Have a GNU day.\n"
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:146
+#, c-format
+msgid ""
+"\n"
+"We are now playing your recording back.  If you can hear it, your audio "
+"settings are working..."
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:218
+#, c-format
+msgid ""
+"We will now be recording you for %s. After that time, the recording will be "
+"played back to you..."
+msgstr ""
+
 #: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1124,30 +1146,8 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-conversation-test.c:120
-#, c-format
-msgid ""
-"\n"
-"End of transmission.  Have a GNU day.\n"
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:146
-#, c-format
-msgid ""
-"\n"
-"We are now playing your recording back.  If you can hear it, your audio "
-"settings are working..."
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:218
-#, c-format
-msgid ""
-"We will now be recording you for %s. After that time, the recording will be "
-"played back to you..."
-msgstr ""
-
-#: src/conversation/gnunet_gst.c:664
 #: src/conversation/gnunet-helper-audio-playback-gst.c:363
+#: src/conversation/gnunet_gst.c:664
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1975,17 +1975,17 @@ msgstr "\"%s\" till \"%s\" misslyckades vid %s:%d med 
fel: %s\n"
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:278
-#: src/datastore/plugin_datastore_postgres.c:891
+#: src/datastore/plugin_datastore_postgres.c:284
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:852
+#: src/datastore/plugin_datastore_postgres.c:858
 #, fuzzy
 msgid "Failed to drop table from database.\n"
 msgstr "Misslyckades att ta emot svar till \"%s\" meddelande från gnunetd\n"
 
-#: src/datastore/plugin_datastore_postgres.c:950
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -2093,90 +2093,42 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
-#, fuzzy, c-format
-msgid "Exiting as the number of peers is %u\n"
-msgstr "Maximalt antal chattklienter uppnått.\n"
+#: src/dht/gnunet-dht-put.c:133
+msgid "Must provide KEY and DATA for DHT put!\n"
+msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
-#, fuzzy
-msgid "number of peers to start"
-msgstr "antal iterationer"
+#: src/dht/gnunet-dht-put.c:140
+#, fuzzy, c-format
+msgid "Could not connect to DHT service!\n"
+msgstr "Kunde inte ansluta till gnunetd.\n"
 
-#: src/dht/gnunet_dht_profiler.c:961
-msgid "number of PUTs to perform per peer"
+#: src/dht/gnunet-dht-put.c:151
+#, c-format
+msgid "Issuing put request for `%s' with data `%s'!\n"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
-#: src/testbed/gnunet-testbed-profiler.c:305
-msgid "name of the file with the login information for the testbed"
+#: src/dht/gnunet-dht-put.c:187
+msgid "the data to insert under the key"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:973
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
+#: src/dht/gnunet-dht-put.c:193
+msgid "how long to store this entry in the dht (in seconds)"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "delay to start doing PUTs (default: 1 sec)"
+#: src/dht/gnunet-dht-put.c:208
+msgid "how many replicas to create"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:985
-msgid "delay to start doing GETs (default: 5 min)"
+#: src/dht/gnunet-dht-put.c:212
+msgid "use DHT's record route option"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:990
-msgid "replication degree for DHT PUTs"
+#: src/dht/gnunet-dht-put.c:217
+msgid "the type to insert data as"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:996
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1002
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1023
-#, fuzzy
-msgid "Measure quality and performance of the DHT service."
-msgstr "Kan inte tillgå tjänsten"
-
-#: src/dht/gnunet-dht-put.c:133
-msgid "Must provide KEY and DATA for DHT put!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:140
-#, fuzzy, c-format
-msgid "Could not connect to DHT service!\n"
-msgstr "Kunde inte ansluta till gnunetd.\n"
-
-#: src/dht/gnunet-dht-put.c:151
-#, c-format
-msgid "Issuing put request for `%s' with data `%s'!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:187
-msgid "the data to insert under the key"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:193
-msgid "how long to store this entry in the dht (in seconds)"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:208
-msgid "how many replicas to create"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:212
-msgid "use DHT's record route option"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:217
-msgid "the type to insert data as"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:232
-msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
+#: src/dht/gnunet-dht-put.c:232
+msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
 msgstr ""
 
 #: src/dht/gnunet-service-dht_clients.c:367
@@ -2411,6 +2363,54 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr "# byte mottogs via TCP"
 
+#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
+#, fuzzy, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr "Maximalt antal chattklienter uppnått.\n"
+
+#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
+#, fuzzy
+msgid "number of peers to start"
+msgstr "antal iterationer"
+
+#: src/dht/gnunet_dht_profiler.c:961
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
+#: src/testbed/gnunet-testbed-profiler.c:305
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:973
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:985
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:990
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:996
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1002
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1023
+#, fuzzy
+msgid "Measure quality and performance of the DHT service."
+msgstr "Kan inte tillgå tjänsten"
+
 #: src/dht/plugin_block_dht.c:189
 #, fuzzy, c-format
 msgid "Block not of type %u\n"
@@ -3362,15 +3362,6 @@ msgid ""
 "chk/...)"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:128
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:141
-#, fuzzy
-msgid "Special file-sharing operations"
-msgstr "Visa alla alternativ"
-
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr ""
@@ -3387,6 +3378,15 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:128
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:141
+#, fuzzy
+msgid "Special file-sharing operations"
+msgstr "Visa alla alternativ"
+
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -4073,52 +4073,6 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:257
-#, fuzzy, c-format
-msgid "`%s' is not a valid DNS domain name\n"
-msgstr "\"%s\" är inte tillgänglig."
-
-#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
-#, fuzzy, c-format
-msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
-msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
-
-#: src/gns/gnunet-gns.c:281
-msgid "Cannot resolve using GNS: GNUnet peer not running\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:305
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:340
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:346
-#, fuzzy
-msgid "Specify the type of the record to lookup"
-msgstr "ange prioritet för innehållet"
-
-#: src/gns/gnunet-gns.c:352
-#, fuzzy
-msgid "Specify a timeout for the lookup"
-msgstr "ange prioritet för innehållet"
-
-#: src/gns/gnunet-gns.c:356
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:361
-msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:375
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "Spåra GNUnets nätverkstopologi."
-
 #: src/gns/gnunet-gns-import.c:486
 msgid "This program will import some GNS authorities into your GNS namestore."
 msgstr ""
@@ -4239,6 +4193,52 @@ msgstr ""
 msgid "GNUnet GNS proxy"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:257
+#, fuzzy, c-format
+msgid "`%s' is not a valid DNS domain name\n"
+msgstr "\"%s\" är inte tillgänglig."
+
+#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
+#, fuzzy, c-format
+msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
+msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
+
+#: src/gns/gnunet-gns.c:281
+msgid "Cannot resolve using GNS: GNUnet peer not running\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:305
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:340
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:346
+#, fuzzy
+msgid "Specify the type of the record to lookup"
+msgstr "ange prioritet för innehållet"
+
+#: src/gns/gnunet-gns.c:352
+#, fuzzy
+msgid "Specify a timeout for the lookup"
+msgstr "ange prioritet för innehållet"
+
+#: src/gns/gnunet-gns.c:356
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:361
+msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:375
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "Spåra GNUnets nätverkstopologi."
+
 #: src/gns/gnunet-service-gns.c:505
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4250,8 +4250,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
 #: src/gns/gnunet-service-gns.c:560
-#: src/zonemaster/gnunet-service-zonemaster.c:887
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:444
+#: src/zonemaster/gnunet-service-zonemaster.c:887
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "Kunde inte ansluta till gnunetd.\n"
@@ -4749,7 +4749,7 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:674
-#: src/transport/gnunet-service-transport.c:2659
+#: src/transport/gnunet-service-transport.c:2661
 #, fuzzy
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr "Kunde inte komma åt namnrymdsinformation.\n"
@@ -5003,6 +5003,70 @@ msgstr ""
 msgid "Failed to setup database at `%s'\n"
 msgstr "Fel vid %s:%d.\n"
 
+#: src/namestore/gnunet-namestore-fcfsd.c:552
+#, fuzzy, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr "Kommando \"%s\" stöds ej.  Avbryter.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:579
+#, fuzzy, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr "Kunde inte tolka konfigurationsfil \"%s\".\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:600
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:632
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:694
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:784
+#, fuzzy, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:803
+#, fuzzy, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:840
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:849
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1084
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1115
+#, fuzzy
+msgid "Failed to start HTTP server\n"
+msgstr "Misslyckades att starta samling.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1163
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "Misslyckades att ansluta till gnunetd.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1190
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1210
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-namestore.c:334
 #, fuzzy, c-format
 msgid "Adding record failed: %s\n"
@@ -5239,70 +5303,6 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr "Visa värde av alternativet"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:552
-#, fuzzy, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr "Kommando \"%s\" stöds ej.  Avbryter.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:579
-#, fuzzy, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr "Kunde inte tolka konfigurationsfil \"%s\".\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:600
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:632
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:694
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:784
-#, fuzzy, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:803
-#, fuzzy, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:840
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:849
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1084
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1115
-#, fuzzy
-msgid "Failed to start HTTP server\n"
-msgstr "Misslyckades att starta samling.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1163
-#, fuzzy
-msgid "Failed to connect to identity\n"
-msgstr "Misslyckades att ansluta till gnunetd.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1190
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1210
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-service-namestore.c:866
 #, fuzzy, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5625,11 +5625,6 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
-#: src/nse/gnunet-nse.c:124
-#, fuzzy
-msgid "Show network size estimates from NSE service."
-msgstr "# byte mottogs via TCP"
-
 #: src/nse/gnunet-nse-profiler.c:857
 #, fuzzy
 msgid "limit to the number of connections to NSE services, 0 for none"
@@ -5656,66 +5651,16 @@ msgstr ""
 msgid "Measure quality and performance of the NSE service."
 msgstr "Kan inte tillgå tjänsten"
 
-#: src/nse/gnunet-service-nse.c:1443
-#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
-msgid "Value is too large.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:175
-#, fuzzy, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr "Tillgängliga transport(er): %s\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:306
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:323
-#: src/peerinfo/gnunet-service-peerinfo.c:348
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:426
-msgid "# peers known"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:468
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:624
-#, fuzzy, c-format
-msgid "Scanning directory `%s'\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:631
-#, c-format
-msgid "Still no peers found in `%s'!\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1024
-#, fuzzy, c-format
-msgid "Cleaning up directory `%s'\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1319
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr ""
+#: src/nse/gnunet-nse.c:124
+#, fuzzy
+msgid "Show network size estimates from NSE service."
+msgstr "# byte mottogs via TCP"
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1332
-msgid "Skipping import of included HELLOs\n"
+#: src/nse/gnunet-service-nse.c:1443
+#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
+msgid "Value is too large.\n"
 msgstr ""
 
-#: src/peerinfo/peerinfo_api.c:217
-#, fuzzy
-msgid "Failed to receive response from `PEERINFO' service."
-msgstr "Misslyckades att ta emot svar till \"%s\" meddelande från gnunetd\n"
-
 #: src/peerinfo-tool/gnunet-peerinfo.c:237
 #, fuzzy, c-format
 msgid "%sPeer `%s'\n"
@@ -5812,6 +5757,61 @@ msgstr "Kunde inte slå upp \"%s\": %s\n"
 msgid "Peerinfo REST API initialized\n"
 msgstr " Anslutning misslyckades\n"
 
+#: src/peerinfo/gnunet-service-peerinfo.c:175
+#, fuzzy, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr "Tillgängliga transport(er): %s\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:306
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:323
+#: src/peerinfo/gnunet-service-peerinfo.c:348
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:426
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:468
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:624
+#, fuzzy, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:631
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1024
+#, fuzzy, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1319
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1332
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:217
+#, fuzzy
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr "Misslyckades att ta emot svar till \"%s\" meddelande från gnunetd\n"
+
 #: src/peerstore/gnunet-peerstore.c:92
 msgid "peerstore"
 msgstr ""
@@ -6283,18 +6283,6 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "Kunde inte ansluta till gnunetd.\n"
 
-#: src/rps/gnunet-rps.c:270
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:275
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:279
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/rps/gnunet-rps-profiler.c:3200
 msgid "duration of the profiling"
 msgstr ""
@@ -6314,6 +6302,18 @@ msgstr "antal iterationer"
 msgid "Measure quality and performance of the RPS service."
 msgstr "Kan inte tillgå tjänsten"
 
+#: src/rps/gnunet-rps.c:270
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:275
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:279
+msgid "Get peers from biased stream"
+msgstr ""
+
 #: src/scalarproduct/gnunet-scalarproduct.c:229
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6369,10 +6369,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
-#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1118
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
+#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
+#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr " Anslutning misslyckades (fel?)\n"
@@ -6727,16 +6727,6 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr ""
 
-#: src/testbed/gnunet_testbed_mpi_spawn.c:119
-#, fuzzy
-msgid "Waiting for child to exit.\n"
-msgstr "Väntar på att motparter ska ansluta (%u iterationer kvar)...\n"
-
-#: src/testbed/gnunet_testbed_mpi_spawn.c:242
-#, fuzzy, c-format
-msgid "Spawning process `%s'\n"
-msgstr "Startade samling \"%s\".\n"
-
 #: src/testbed/gnunet-testbed-profiler.c:290
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr ""
@@ -6748,6 +6738,16 @@ msgid ""
 "signal is received"
 msgstr ""
 
+#: src/testbed/gnunet_testbed_mpi_spawn.c:119
+#, fuzzy
+msgid "Waiting for child to exit.\n"
+msgstr "Väntar på att motparter ska ansluta (%u iterationer kvar)...\n"
+
+#: src/testbed/gnunet_testbed_mpi_spawn.c:242
+#, fuzzy, c-format
+msgid "Spawning process `%s'\n"
+msgstr "Startade samling \"%s\".\n"
+
 #: src/testbed/testbed_api.c:399
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -7044,19 +7044,19 @@ msgstr "# krypterade PONG-meddelanden mottagna"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3189
-#: src/transport/gnunet-communicator-udp.c:2826
+#: src/transport/gnunet-communicator-tcp.c:3221
+#: src/transport/gnunet-communicator-udp.c:2995
 #: src/transport/gnunet-service-tng.c:10014
-#: src/transport/gnunet-service-transport.c:2624
+#: src/transport/gnunet-service-transport.c:2626
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "GNUnet-konfiguration"
 
-#: src/transport/gnunet-communicator-tcp.c:3494
+#: src/transport/gnunet-communicator-tcp.c:3553
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2898
+#: src/transport/gnunet-communicator-udp.c:3067
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7081,53 +7081,53 @@ msgstr "Kunde inte skapa namnrymd \"%s\" 
(existerar?).\n"
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:137
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport.c:445
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:794
+#: src/transport/gnunet-service-transport.c:796
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1477
+#: src/transport/gnunet-service-transport.c:1479
 #, fuzzy
 msgid "# bytes payload discarded due to not connected peer"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport.c:1622
+#: src/transport/gnunet-service-transport.c:1624
 #, fuzzy
 msgid "# bytes total received"
 msgstr "# byte krypterade"
 
-#: src/transport/gnunet-service-transport.c:1712
+#: src/transport/gnunet-service-transport.c:1714
 #, fuzzy
 msgid "# bytes payload received"
 msgstr "# byte dekrypterade"
 
-#: src/transport/gnunet-service-transport.c:2016
-#: src/transport/gnunet-service-transport.c:2450
+#: src/transport/gnunet-service-transport.c:2018
+#: src/transport/gnunet-service-transport.c:2452
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2454
+#: src/transport/gnunet-service-transport.c:2456
 #, fuzzy, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr "Kunde inte slå upp \"%s\": %s\n"
 
-#: src/transport/gnunet-service-transport.c:2549
+#: src/transport/gnunet-service-transport.c:2551
 #, fuzzy, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n"
 
-#: src/transport/gnunet-service-transport.c:2558
+#: src/transport/gnunet-service-transport.c:2560
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
+#: src/transport/gnunet-service-transport_ats.c:137
+msgid "# Addresses given to ATS"
+msgstr ""
+
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7464,6 +7464,46 @@ msgstr ""
 msgid "# HELLOs given to peerinfo"
 msgstr "Meddelande mottaget från klient är ogiltig.\n"
 
+#: src/transport/gnunet-transport-profiler.c:220
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:577
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:581
+#, fuzzy
+msgid "receive data from peer"
+msgstr "# byte mottagna av typen %d"
+
+#: src/transport/gnunet-transport-profiler.c:586
+#, fuzzy
+msgid "iterations"
+msgstr "Visa alla alternativ"
+
+#: src/transport/gnunet-transport-profiler.c:591
+#, fuzzy
+msgid "number of messages to send"
+msgstr "antal meddelanden att använda per iteration"
+
+#: src/transport/gnunet-transport-profiler.c:596
+#, fuzzy
+msgid "message size to use"
+msgstr "meddelandestorlek"
+
+#: src/transport/gnunet-transport-profiler.c:601
+#: src/transport/gnunet-transport.c:1404
+msgid "peer identity"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:614
+#: src/transport/gnunet-transport.c:1426
+#, fuzzy
+msgid "Direct access to transport service."
+msgstr "Misslyckades att ansluta till gnunetd.\n"
+
 #: src/transport/gnunet-transport.c:406
 #, fuzzy, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7603,11 +7643,6 @@ msgstr "Skriv ut information om GNUnets motparter."
 msgid "do not resolve hostnames"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/transport/gnunet-transport.c:1404
-#: src/transport/gnunet-transport-profiler.c:601
-msgid "peer identity"
-msgstr ""
-
 #: src/transport/gnunet-transport.c:1408
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7616,41 +7651,6 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1426
-#: src/transport/gnunet-transport-profiler.c:614
-#, fuzzy
-msgid "Direct access to transport service."
-msgstr "Misslyckades att ansluta till gnunetd.\n"
-
-#: src/transport/gnunet-transport-profiler.c:220
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:577
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:581
-#, fuzzy
-msgid "receive data from peer"
-msgstr "# byte mottagna av typen %d"
-
-#: src/transport/gnunet-transport-profiler.c:586
-#, fuzzy
-msgid "iterations"
-msgstr "Visa alla alternativ"
-
-#: src/transport/gnunet-transport-profiler.c:591
-#, fuzzy
-msgid "number of messages to send"
-msgstr "antal meddelanden att använda per iteration"
-
-#: src/transport/gnunet-transport-profiler.c:596
-#, fuzzy
-msgid "message size to use"
-msgstr "meddelandestorlek"
-
 #: src/transport/plugin_transport_http_client.c:1489
 #: src/transport/plugin_transport_http_server.c:2331
 #: src/transport/plugin_transport_http_server.c:3562
@@ -7938,21 +7938,6 @@ msgstr ""
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:169
-#, fuzzy
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr "# krypterade PONG-meddelanden mottagna"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:553
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:571
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-
 #: src/transport/plugin_transport_udp.c:3169
 #, c-format
 msgid ""
@@ -8001,6 +7986,21 @@ msgstr "\"%s\" är inte tillgänglig."
 msgid "Failed to create UDP network sockets\n"
 msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
+#: src/transport/plugin_transport_udp_broadcasting.c:169
+#, fuzzy
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr "# krypterade PONG-meddelanden mottagna"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:553
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:571
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_unix.c:1396
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -8184,7 +8184,7 @@ msgid "do daemonize (detach from terminal)"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:1397
-#: src/transport/transport-testing2.c:1116 src/util/service.c:2072
+#: src/transport/transport-testing2.c:983 src/util/service.c:2072
 #: src/util/service.c:2084
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
@@ -8852,19 +8852,19 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:409
+#: src/util/os_installation.c:411
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr ""
 
-#: src/util/os_installation.c:792
+#: src/util/os_installation.c:794
 #, fuzzy, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "Kunde inte hitta motpart \"%s\" i routingtabell!\n"
 
-#: src/util/os_installation.c:825
+#: src/util/os_installation.c:827
 #, c-format
 msgid "Binary `%s' exists, but is not SUID\n"
 msgstr ""
@@ -8889,17 +8889,17 @@ msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
 msgid "Could not determine plugin installation path.\n"
 msgstr "Kunde inte fastställa min publika IPv6-adress.\n"
 
-#: src/util/program.c:262
+#: src/util/program.c:267
 #, fuzzy, c-format
 msgid "Unreadable or malformed configuration file `%s', exit ...\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 
-#: src/util/program.c:279
+#: src/util/program.c:284
 #, fuzzy, c-format
 msgid "Unreadable or malformed default configuration file `%s', exit ...\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 
-#: src/util/program.c:294
+#: src/util/program.c:299
 #, fuzzy
 msgid "Unreadable or malformed configuration, exit ...\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
@@ -8966,10 +8966,6 @@ msgstr ""
 msgid "Attempting to proxy service `%s' to invalid port %d or hostname.\n"
 msgstr ""
 
-#: src/util/strings.c:179
-msgid "b"
-msgstr "b"
-
 #: src/util/strings.c:503
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
@@ -8979,48 +8975,6 @@ msgstr ""
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr ""
 
-#: src/util/strings.c:706
-msgid "µs"
-msgstr ""
-
-#: src/util/strings.c:710
-msgid "forever"
-msgstr ""
-
-#: src/util/strings.c:712
-msgid "0 ms"
-msgstr ""
-
-#: src/util/strings.c:716
-msgid "ms"
-msgstr "ms"
-
-#: src/util/strings.c:720
-msgid "s"
-msgstr "s"
-
-#: src/util/strings.c:724
-msgid "m"
-msgstr "m"
-
-#: src/util/strings.c:728
-msgid "h"
-msgstr "h"
-
-#: src/util/strings.c:734
-#, fuzzy
-msgid "day"
-msgstr " dagar"
-
-#: src/util/strings.c:736
-#, fuzzy
-msgid "days"
-msgstr " dagar"
-
-#: src/util/strings.c:764
-msgid "end of time"
-msgstr ""
-
 #: src/util/strings.c:1240
 msgid "IPv6 address did not start with `['\n"
 msgstr ""
@@ -9271,12 +9225,35 @@ msgstr "# byte mottagna via UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster.c:849
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:420
+#: src/zonemaster/gnunet-service-zonemaster.c:849
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
+#~ msgid "b"
+#~ msgstr "b"
+
+#~ msgid "ms"
+#~ msgstr "ms"
+
+#~ msgid "s"
+#~ msgstr "s"
+
+#~ msgid "m"
+#~ msgstr "m"
+
+#~ msgid "h"
+#~ msgstr "h"
+
+#, fuzzy
+#~ msgid "day"
+#~ msgstr " dagar"
+
+#, fuzzy
+#~ msgid "days"
+#~ msgstr " dagar"
+
 #, fuzzy, c-format
 #~ msgid "Could not acquire lock on file `%s': %s...\n"
 #~ msgstr "Kunde inte slå upp \"%s\": %s\n"
diff --git a/po/vi.po b/po/vi.po
index 732d1d432..7f142eea6 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.8.0a\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2020-09-06 10:07+0200\n"
+"POT-Creation-Date: 2020-10-13 16:12+0200\n"
 "PO-Revision-Date: 2008-09-10 22:05+0930\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -30,8 +30,8 @@ msgid "Issuer public key `%s' is not well-formed\n"
 msgstr "Đối số không hợp lệ cho « %s ».\n"
 
 #: src/abd/gnunet-abd.c:560 src/abd/gnunet-service-abd.c:1747
-#: src/namestore/gnunet-namestore.c:1001
 #: src/namestore/gnunet-namestore-fcfsd.c:1154
+#: src/namestore/gnunet-namestore.c:1001
 #, fuzzy, c-format
 msgid "Failed to connect to namestore\n"
 msgstr "Không kết nối được đến trình nền gnunetd."
@@ -509,82 +509,15 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3011
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3063
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997
-msgid "solver to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3557
-#: src/ats-tests/gnunet-solver-eval.c:1003
-#: src/ats-tests/gnunet-solver-eval.c:1008
-msgid "experiment to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3564
+#: src/ats-tests/ats-testing-log.c:896
 #, fuzzy
-msgid "print logging"
+msgid "Stop logging\n"
 msgstr "Theo dõi"
 
-#: src/ats/gnunet-ats-solver-eval.c:3569
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3574
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:326
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:336
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:382
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:474
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "Không thể sơ khởi SQLite: %s.\n"
-
-#: src/ats/plugin_ats_proportional.c:1142
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "Không thể lưu tập tin cấu hình « %s »:"
-
-#: src/ats/plugin_ats_proportional.c:1165
+#: src/ats-tests/ats-testing-log.c:952
 #, fuzzy, c-format
-msgid "Invalid %s configuration %f\n"
-msgstr "Không thể lưu tập tin cấu hình « %s »:"
+msgid "Start logging `%s'\n"
+msgstr "Đang bắt đầu tài về « %s »\n"
 
 #: src/ats-tests/ats-testing.c:420
 #, c-format
@@ -596,16 +529,6 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/ats-tests/ats-testing-log.c:896
-#, fuzzy
-msgid "Stop logging\n"
-msgstr "Theo dõi"
-
-#: src/ats-tests/ats-testing-log.c:952
-#, fuzzy, c-format
-msgid "Start logging `%s'\n"
-msgstr "Đang bắt đầu tài về « %s »\n"
-
 #: src/ats-tests/gnunet-ats-sim.c:92
 #, c-format
 msgid ""
@@ -613,6 +536,16 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
+#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552
+msgid "solver to use"
+msgstr ""
+
+#: src/ats-tests/gnunet-solver-eval.c:1003
+#: src/ats-tests/gnunet-solver-eval.c:1008
+#: src/ats/gnunet-ats-solver-eval.c:3557
+msgid "experiment to use"
+msgstr ""
+
 #: src/ats-tool/gnunet-ats.c:299
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -735,6 +668,73 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr "In ra thông tin về các đồng đẳng GNUnet."
 
+#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3011
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3063
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3564
+#, fuzzy
+msgid "print logging"
+msgstr "Theo dõi"
+
+#: src/ats/gnunet-ats-solver-eval.c:3569
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3574
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:326
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:336
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:382
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:474
+#, fuzzy, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "Không thể sơ khởi SQLite: %s.\n"
+
+#: src/ats/plugin_ats_proportional.c:1142
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "Không thể lưu tập tin cấu hình « %s »:"
+
+#: src/ats/plugin_ats_proportional.c:1165
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr "Không thể lưu tập tin cấu hình « %s »:"
+
 #: src/auction/gnunet-auction-create.c:163
 msgid "description of the item to be sold"
 msgstr ""
@@ -874,6 +874,28 @@ msgstr ""
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
+#: src/conversation/gnunet-conversation-test.c:120
+#, c-format
+msgid ""
+"\n"
+"End of transmission.  Have a GNU day.\n"
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:146
+#, c-format
+msgid ""
+"\n"
+"We are now playing your recording back.  If you can hear it, your audio "
+"settings are working..."
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:218
+#, c-format
+msgid ""
+"We will now be recording you for %s. After that time, the recording will be "
+"played back to you..."
+msgstr ""
+
 #: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1133,30 +1155,8 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-conversation-test.c:120
-#, c-format
-msgid ""
-"\n"
-"End of transmission.  Have a GNU day.\n"
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:146
-#, c-format
-msgid ""
-"\n"
-"We are now playing your recording back.  If you can hear it, your audio "
-"settings are working..."
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:218
-#, c-format
-msgid ""
-"We will now be recording you for %s. After that time, the recording will be "
-"played back to you..."
-msgstr ""
-
-#: src/conversation/gnunet_gst.c:664
 #: src/conversation/gnunet-helper-audio-playback-gst.c:363
+#: src/conversation/gnunet_gst.c:664
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1994,19 +1994,19 @@ msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:278
-#: src/datastore/plugin_datastore_postgres.c:891
+#: src/datastore/plugin_datastore_postgres.c:284
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:852
+#: src/datastore/plugin_datastore_postgres.c:858
 #, fuzzy
 msgid "Failed to drop table from database.\n"
 msgstr ""
 "\n"
 "Không nhận được đáp ứng từ gnunetd.\n"
 
-#: src/datastore/plugin_datastore_postgres.c:950
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -2115,90 +2115,42 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
-#, fuzzy, c-format
-msgid "Exiting as the number of peers is %u\n"
-msgstr "tăng sổ tối đa các kết nối TCP/IP"
+#: src/dht/gnunet-dht-put.c:133
+msgid "Must provide KEY and DATA for DHT put!\n"
+msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
-#, fuzzy
-msgid "number of peers to start"
-msgstr "số lần lặp lại"
+#: src/dht/gnunet-dht-put.c:140
+#, fuzzy, c-format
+msgid "Could not connect to DHT service!\n"
+msgstr "Không thể kết nối tới %s:%u: %s\n"
 
-#: src/dht/gnunet_dht_profiler.c:961
-msgid "number of PUTs to perform per peer"
+#: src/dht/gnunet-dht-put.c:151
+#, c-format
+msgid "Issuing put request for `%s' with data `%s'!\n"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
-#: src/testbed/gnunet-testbed-profiler.c:305
-msgid "name of the file with the login information for the testbed"
+#: src/dht/gnunet-dht-put.c:187
+msgid "the data to insert under the key"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:973
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
+#: src/dht/gnunet-dht-put.c:193
+msgid "how long to store this entry in the dht (in seconds)"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "delay to start doing PUTs (default: 1 sec)"
+#: src/dht/gnunet-dht-put.c:208
+msgid "how many replicas to create"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:985
-msgid "delay to start doing GETs (default: 5 min)"
+#: src/dht/gnunet-dht-put.c:212
+msgid "use DHT's record route option"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:990
-msgid "replication degree for DHT PUTs"
+#: src/dht/gnunet-dht-put.c:217
+msgid "the type to insert data as"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:996
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1002
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1023
-#, fuzzy
-msgid "Measure quality and performance of the DHT service."
-msgstr "Không thể truy cập đến dịch vụ"
-
-#: src/dht/gnunet-dht-put.c:133
-msgid "Must provide KEY and DATA for DHT put!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:140
-#, fuzzy, c-format
-msgid "Could not connect to DHT service!\n"
-msgstr "Không thể kết nối tới %s:%u: %s\n"
-
-#: src/dht/gnunet-dht-put.c:151
-#, c-format
-msgid "Issuing put request for `%s' with data `%s'!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:187
-msgid "the data to insert under the key"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:193
-msgid "how long to store this entry in the dht (in seconds)"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:208
-msgid "how many replicas to create"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:212
-msgid "use DHT's record route option"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:217
-msgid "the type to insert data as"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:232
-msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
+#: src/dht/gnunet-dht-put.c:232
+msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
 msgstr ""
 
 #: src/dht/gnunet-service-dht_clients.c:367
@@ -2434,6 +2386,54 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr "# các yêu cầu get (lấy) dht được nhận"
 
+#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
+#, fuzzy, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr "tăng sổ tối đa các kết nối TCP/IP"
+
+#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
+#, fuzzy
+msgid "number of peers to start"
+msgstr "số lần lặp lại"
+
+#: src/dht/gnunet_dht_profiler.c:961
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
+#: src/testbed/gnunet-testbed-profiler.c:305
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:973
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:985
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:990
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:996
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1002
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1023
+#, fuzzy
+msgid "Measure quality and performance of the DHT service."
+msgstr "Không thể truy cập đến dịch vụ"
+
 #: src/dht/plugin_block_dht.c:189
 #, fuzzy, c-format
 msgid "Block not of type %u\n"
@@ -3385,15 +3385,6 @@ msgid ""
 "chk/...)"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:128
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:141
-#, fuzzy
-msgid "Special file-sharing operations"
-msgstr "Tùy chọn chia sẻ tập tin"
-
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr ""
@@ -3410,6 +3401,15 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:128
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:141
+#, fuzzy
+msgid "Special file-sharing operations"
+msgstr "Tùy chọn chia sẻ tập tin"
+
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -4120,52 +4120,6 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:257
-#, fuzzy, c-format
-msgid "`%s' is not a valid DNS domain name\n"
-msgstr "« %s » không sẵn sàng.\n"
-
-#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
-#, fuzzy, c-format
-msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
-msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
-
-#: src/gns/gnunet-gns.c:281
-msgid "Cannot resolve using GNS: GNUnet peer not running\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:305
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:340
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:346
-#, fuzzy
-msgid "Specify the type of the record to lookup"
-msgstr "xác định mức ưu tiên của nội dung"
-
-#: src/gns/gnunet-gns.c:352
-#, fuzzy
-msgid "Specify a timeout for the lookup"
-msgstr "xác định mức ưu tiên của nội dung"
-
-#: src/gns/gnunet-gns.c:356
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:361
-msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:375
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "Bản ghi lỗi GNUnet"
-
 #: src/gns/gnunet-gns-import.c:486
 msgid "This program will import some GNS authorities into your GNS namestore."
 msgstr ""
@@ -4286,6 +4240,52 @@ msgstr ""
 msgid "GNUnet GNS proxy"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:257
+#, fuzzy, c-format
+msgid "`%s' is not a valid DNS domain name\n"
+msgstr "« %s » không sẵn sàng.\n"
+
+#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
+#, fuzzy, c-format
+msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
+msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
+
+#: src/gns/gnunet-gns.c:281
+msgid "Cannot resolve using GNS: GNUnet peer not running\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:305
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:340
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:346
+#, fuzzy
+msgid "Specify the type of the record to lookup"
+msgstr "xác định mức ưu tiên của nội dung"
+
+#: src/gns/gnunet-gns.c:352
+#, fuzzy
+msgid "Specify a timeout for the lookup"
+msgstr "xác định mức ưu tiên của nội dung"
+
+#: src/gns/gnunet-gns.c:356
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:361
+msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:375
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "Bản ghi lỗi GNUnet"
+
 #: src/gns/gnunet-service-gns.c:505
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4297,8 +4297,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr "Không kết nối được đến trình nền gnunetd."
 
 #: src/gns/gnunet-service-gns.c:560
-#: src/zonemaster/gnunet-service-zonemaster.c:887
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:444
+#: src/zonemaster/gnunet-service-zonemaster.c:887
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "Không thể kết nối tới %s:%u: %s\n"
@@ -4809,7 +4809,7 @@ msgid "# hostlist advertisements send"
 msgstr "# Các quảng cáo ngoại được chuyển tiếp"
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:674
-#: src/transport/gnunet-service-transport.c:2659
+#: src/transport/gnunet-service-transport.c:2661
 #, fuzzy
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr "Không thể truy cập đến thông tin về không gian tên.\n"
@@ -5065,6 +5065,70 @@ msgstr "kho dữ liệu sqlite"
 msgid "Failed to setup database at `%s'\n"
 msgstr "Lỗi chạy %s: %s %d\n"
 
+#: src/namestore/gnunet-namestore-fcfsd.c:552
+#, fuzzy, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr "Lệnh không được hỗ trợ « %s ». Đang hủy bỏ.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:579
+#, fuzzy, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr "Không thể truy cập đến tập tin gnunet-directory « %s »\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:600
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:632
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:694
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:784
+#, fuzzy, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr "Không thể tạo miền tên.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:803
+#, fuzzy, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:840
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:849
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1084
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1115
+#, fuzzy
+msgid "Failed to start HTTP server\n"
+msgstr "Lỗi bắt đầu thu thập.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1163
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "Lỗi kết nối đến gnunetd.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1190
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1210
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-namestore.c:334
 #, fuzzy, c-format
 msgid "Adding record failed: %s\n"
@@ -5294,70 +5358,6 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-fcfsd.c:552
-#, fuzzy, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr "Lệnh không được hỗ trợ « %s ». Đang hủy bỏ.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:579
-#, fuzzy, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr "Không thể truy cập đến tập tin gnunet-directory « %s »\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:600
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:632
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:694
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:784
-#, fuzzy, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr "Không thể tạo miền tên.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:803
-#, fuzzy, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr "Lỗi cập nhật dữ liệu cho mô-đun « %s »\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:840
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:849
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1084
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1115
-#, fuzzy
-msgid "Failed to start HTTP server\n"
-msgstr "Lỗi bắt đầu thu thập.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1163
-#, fuzzy
-msgid "Failed to connect to identity\n"
-msgstr "Lỗi kết nối đến gnunetd.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1190
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1210
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-service-namestore.c:866
 #, fuzzy, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5677,11 +5677,6 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
-#: src/nse/gnunet-nse.c:124
-#, fuzzy
-msgid "Show network size estimates from NSE service."
-msgstr "# các yêu cầu get (lấy) dht được nhận"
-
 #: src/nse/gnunet-nse-profiler.c:857
 #, fuzzy
 msgid "limit to the number of connections to NSE services, 0 for none"
@@ -5708,70 +5703,16 @@ msgstr ""
 msgid "Measure quality and performance of the NSE service."
 msgstr "Không thể truy cập đến dịch vụ"
 
-#: src/nse/gnunet-service-nse.c:1443
-#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
+#: src/nse/gnunet-nse.c:124
 #, fuzzy
-msgid "Value is too large.\n"
-msgstr "Giá trị không nằm trong phạm vi được phép."
-
-#: src/peerinfo/gnunet-service-peerinfo.c:175
-#, fuzzy, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr "Đã nạp truyền tải « %s »\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:306
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
-msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:323
-#: src/peerinfo/gnunet-service-peerinfo.c:348
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
-msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:426
-msgid "# peers known"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:468
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-"Tập tin « %s » trong thư mục « %s » không tùy theo quy ước đặt tên. Bị gỡ "
-"bỏ.\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:624
-#, fuzzy, c-format
-msgid "Scanning directory `%s'\n"
-msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:631
-#, c-format
-msgid "Still no peers found in `%s'!\n"
-msgstr "Vẫn còn không tìm thấy đồng đẳng trong « %s ».\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1024
-#, fuzzy, c-format
-msgid "Cleaning up directory `%s'\n"
-msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1319
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1332
-msgid "Skipping import of included HELLOs\n"
-msgstr ""
+msgid "Show network size estimates from NSE service."
+msgstr "# các yêu cầu get (lấy) dht được nhận"
 
-#: src/peerinfo/peerinfo_api.c:217
-#, fuzzy
-msgid "Failed to receive response from `PEERINFO' service."
-msgstr ""
-"\n"
-"Không nhận được đáp ứng từ gnunetd.\n"
+#: src/nse/gnunet-service-nse.c:1443
+#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
+#, fuzzy
+msgid "Value is too large.\n"
+msgstr "Giá trị không nằm trong phạm vi được phép."
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:237
 #, fuzzy, c-format
@@ -5870,6 +5811,65 @@ msgstr "Không thể nạp phần bổ sung truyền tải « %s »\n"
 msgid "Peerinfo REST API initialized\n"
 msgstr "Lỗi sơ khởi lõi.\n"
 
+#: src/peerinfo/gnunet-service-peerinfo.c:175
+#, fuzzy, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr "Đã nạp truyền tải « %s »\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:306
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:323
+#: src/peerinfo/gnunet-service-peerinfo.c:348
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:426
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:468
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+"Tập tin « %s » trong thư mục « %s » không tùy theo quy ước đặt tên. Bị gỡ "
+"bỏ.\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:624
+#, fuzzy, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:631
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr "Vẫn còn không tìm thấy đồng đẳng trong « %s ».\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1024
+#, fuzzy, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1319
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1332
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:217
+#, fuzzy
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+"\n"
+"Không nhận được đáp ứng từ gnunetd.\n"
+
 #: src/peerstore/gnunet-peerstore.c:92
 msgid "peerstore"
 msgstr ""
@@ -6339,18 +6339,6 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "« %s »: Không thể kết nối.\n"
 
-#: src/rps/gnunet-rps.c:270
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:275
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:279
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/rps/gnunet-rps-profiler.c:3200
 msgid "duration of the profiling"
 msgstr ""
@@ -6370,6 +6358,18 @@ msgstr "số lần lặp lại"
 msgid "Measure quality and performance of the RPS service."
 msgstr "Không thể truy cập đến dịch vụ"
 
+#: src/rps/gnunet-rps.c:270
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:275
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:279
+msgid "Get peers from biased stream"
+msgstr ""
+
 #: src/scalarproduct/gnunet-scalarproduct.c:229
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6425,10 +6425,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
-#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1118
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
+#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
+#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr " Không kết nối được (lỗi ?)\n"
@@ -6783,16 +6783,6 @@ msgstr "« %s » đang tắt.\n"
 msgid "%.s Unknown result code."
 msgstr ""
 
-#: src/testbed/gnunet_testbed_mpi_spawn.c:119
-#, fuzzy
-msgid "Waiting for child to exit.\n"
-msgstr "Đang đợi các đồng đẳng kết nối"
-
-#: src/testbed/gnunet_testbed_mpi_spawn.c:242
-#, fuzzy, c-format
-msgid "Spawning process `%s'\n"
-msgstr "Đang bắt đầu tài về « %s »\n"
-
 #: src/testbed/gnunet-testbed-profiler.c:290
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr ""
@@ -6804,6 +6794,16 @@ msgid ""
 "signal is received"
 msgstr ""
 
+#: src/testbed/gnunet_testbed_mpi_spawn.c:119
+#, fuzzy
+msgid "Waiting for child to exit.\n"
+msgstr "Đang đợi các đồng đẳng kết nối"
+
+#: src/testbed/gnunet_testbed_mpi_spawn.c:242
+#, fuzzy, c-format
+msgid "Spawning process `%s'\n"
+msgstr "Đang bắt đầu tài về « %s »\n"
+
 #: src/testbed/testbed_api.c:399
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -7106,19 +7106,19 @@ msgstr "# các thông báo PONG đã mật mã được nhận"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3189
-#: src/transport/gnunet-communicator-udp.c:2826
+#: src/transport/gnunet-communicator-tcp.c:3221
+#: src/transport/gnunet-communicator-udp.c:2995
 #: src/transport/gnunet-service-tng.c:10014
-#: src/transport/gnunet-service-transport.c:2624
+#: src/transport/gnunet-service-transport.c:2626
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "Lưu cấu hình ngay bây giờ không?"
 
-#: src/transport/gnunet-communicator-tcp.c:3494
+#: src/transport/gnunet-communicator-tcp.c:3553
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2898
+#: src/transport/gnunet-communicator-udp.c:3067
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7143,54 +7143,54 @@ msgstr "Không thể tạo miền tên.\n"
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:137
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport.c:445
 #, fuzzy
 msgid "# messages dropped due to slow client"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/transport/gnunet-service-transport.c:794
+#: src/transport/gnunet-service-transport.c:796
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1477
+#: src/transport/gnunet-service-transport.c:1479
 #, fuzzy
 msgid "# bytes payload discarded due to not connected peer"
 msgstr "# Các quảng cáo đồng đẳng bị hủy do trọng tải"
 
-#: src/transport/gnunet-service-transport.c:1622
+#: src/transport/gnunet-service-transport.c:1624
 #, fuzzy
 msgid "# bytes total received"
 msgstr "# tổng số nội dung lỗ hổng được nhận"
 
-#: src/transport/gnunet-service-transport.c:1712
+#: src/transport/gnunet-service-transport.c:1714
 #, fuzzy
 msgid "# bytes payload received"
 msgstr "# các byte đã giải mã"
 
-#: src/transport/gnunet-service-transport.c:2016
-#: src/transport/gnunet-service-transport.c:2450
+#: src/transport/gnunet-service-transport.c:2018
+#: src/transport/gnunet-service-transport.c:2452
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2454
+#: src/transport/gnunet-service-transport.c:2456
 #, fuzzy, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr "Không thể nạp phần bổ sung truyền tải « %s »\n"
 
-#: src/transport/gnunet-service-transport.c:2549
+#: src/transport/gnunet-service-transport.c:2551
 #, fuzzy, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr "Không thể lấy địa chỉ của đồng đẳng « %s ».\n"
 
-#: src/transport/gnunet-service-transport.c:2558
+#: src/transport/gnunet-service-transport.c:2560
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
+#: src/transport/gnunet-service-transport_ats.c:137
+msgid "# Addresses given to ATS"
+msgstr ""
+
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7530,6 +7530,46 @@ msgstr ""
 msgid "# HELLOs given to peerinfo"
 msgstr "Nhận được thông báo « %s » sai từ đồng đẳng « %s ».\n"
 
+#: src/transport/gnunet-transport-profiler.c:220
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:577
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:581
+#, fuzzy
+msgid "receive data from peer"
+msgstr "Yêu cầu cấp %d từ đồng đẳng %d\n"
+
+#: src/transport/gnunet-transport-profiler.c:586
+#, fuzzy
+msgid "iterations"
+msgstr "Tùy chọn chung"
+
+#: src/transport/gnunet-transport-profiler.c:591
+#, fuzzy
+msgid "number of messages to send"
+msgstr "số tin nhắn cần dùng mỗi lần lặp"
+
+#: src/transport/gnunet-transport-profiler.c:596
+#, fuzzy
+msgid "message size to use"
+msgstr "kích cỡ tin nhắn"
+
+#: src/transport/gnunet-transport-profiler.c:601
+#: src/transport/gnunet-transport.c:1404
+msgid "peer identity"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:614
+#: src/transport/gnunet-transport.c:1426
+#, fuzzy
+msgid "Direct access to transport service."
+msgstr "Lỗi kết nối đến gnunetd.\n"
+
 #: src/transport/gnunet-transport.c:406
 #, fuzzy, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7669,11 +7709,6 @@ msgstr "In ra thông tin về các đồng đẳng GNUnet."
 msgid "do not resolve hostnames"
 msgstr "không quyết định các tên máy"
 
-#: src/transport/gnunet-transport.c:1404
-#: src/transport/gnunet-transport-profiler.c:601
-msgid "peer identity"
-msgstr ""
-
 #: src/transport/gnunet-transport.c:1408
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7682,41 +7717,6 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1426
-#: src/transport/gnunet-transport-profiler.c:614
-#, fuzzy
-msgid "Direct access to transport service."
-msgstr "Lỗi kết nối đến gnunetd.\n"
-
-#: src/transport/gnunet-transport-profiler.c:220
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:577
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:581
-#, fuzzy
-msgid "receive data from peer"
-msgstr "Yêu cầu cấp %d từ đồng đẳng %d\n"
-
-#: src/transport/gnunet-transport-profiler.c:586
-#, fuzzy
-msgid "iterations"
-msgstr "Tùy chọn chung"
-
-#: src/transport/gnunet-transport-profiler.c:591
-#, fuzzy
-msgid "number of messages to send"
-msgstr "số tin nhắn cần dùng mỗi lần lặp"
-
-#: src/transport/gnunet-transport-profiler.c:596
-#, fuzzy
-msgid "message size to use"
-msgstr "kích cỡ tin nhắn"
-
 #: src/transport/plugin_transport_http_client.c:1489
 #: src/transport/plugin_transport_http_server.c:2331
 #: src/transport/plugin_transport_http_server.c:3562
@@ -7995,21 +7995,6 @@ msgstr ""
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:169
-#, fuzzy
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr "# các thông báo PONG đã mật mã được nhận"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:553
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:571
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-
 #: src/transport/plugin_transport_udp.c:3169
 #, c-format
 msgid ""
@@ -8058,6 +8043,21 @@ msgstr "« %s » không sẵn sàng.\n"
 msgid "Failed to create UDP network sockets\n"
 msgstr "Không thể tạo miền tên.\n"
 
+#: src/transport/plugin_transport_udp_broadcasting.c:169
+#, fuzzy
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr "# các thông báo PONG đã mật mã được nhận"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:553
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:571
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_unix.c:1396
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -8240,7 +8240,7 @@ msgid "do daemonize (detach from terminal)"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:1397
-#: src/transport/transport-testing2.c:1116 src/util/service.c:2072
+#: src/transport/transport-testing2.c:983 src/util/service.c:2072
 #: src/util/service.c:2084
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
@@ -8912,19 +8912,19 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:409
+#: src/util/os_installation.c:411
 #, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr ""
 
-#: src/util/os_installation.c:792
+#: src/util/os_installation.c:794
 #, fuzzy, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "Không thể đọc danh sách bạn bè « %s »\n"
 
-#: src/util/os_installation.c:825
+#: src/util/os_installation.c:827
 #, c-format
 msgid "Binary `%s' exists, but is not SUID\n"
 msgstr ""
@@ -8949,17 +8949,17 @@ msgstr "« %s » thất bại cho thư viện « %s » với lỗi: 
%s\n"
 msgid "Could not determine plugin installation path.\n"
 msgstr "Không thể truy cập đến thông tin về không gian tên.\n"
 
-#: src/util/program.c:262
+#: src/util/program.c:267
 #, fuzzy, c-format
 msgid "Unreadable or malformed configuration file `%s', exit ...\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
 
-#: src/util/program.c:279
+#: src/util/program.c:284
 #, fuzzy, c-format
 msgid "Unreadable or malformed default configuration file `%s', exit ...\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
 
-#: src/util/program.c:294
+#: src/util/program.c:299
 #, fuzzy
 msgid "Unreadable or malformed configuration, exit ...\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
@@ -9024,10 +9024,6 @@ msgstr ""
 msgid "Attempting to proxy service `%s' to invalid port %d or hostname.\n"
 msgstr ""
 
-#: src/util/strings.c:179
-msgid "b"
-msgstr "b"
-
 #: src/util/strings.c:503
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
@@ -9038,48 +9034,6 @@ msgid "Failed to expand `$HOME': environment variable 
`HOME' not set"
 msgstr ""
 "Lỗi mở rộng biến môi trường « $HOME »: chưa đặt biến môi trường « HOME »"
 
-#: src/util/strings.c:706
-msgid "µs"
-msgstr ""
-
-#: src/util/strings.c:710
-msgid "forever"
-msgstr ""
-
-#: src/util/strings.c:712
-msgid "0 ms"
-msgstr ""
-
-#: src/util/strings.c:716
-msgid "ms"
-msgstr "mg"
-
-#: src/util/strings.c:720
-msgid "s"
-msgstr "g"
-
-#: src/util/strings.c:724
-msgid "m"
-msgstr "p"
-
-#: src/util/strings.c:728
-msgid "h"
-msgstr "g"
-
-#: src/util/strings.c:734
-#, fuzzy
-msgid "day"
-msgstr " ngày"
-
-#: src/util/strings.c:736
-#, fuzzy
-msgid "days"
-msgstr " ngày"
-
-#: src/util/strings.c:764
-msgid "end of time"
-msgstr ""
-
 #: src/util/strings.c:1240
 msgid "IPv6 address did not start with `['\n"
 msgstr ""
@@ -9330,12 +9284,35 @@ msgstr "# các byte đã nhận qua UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster.c:849
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:420
+#: src/zonemaster/gnunet-service-zonemaster.c:849
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "Không kết nối được đến trình nền gnunetd."
 
+#~ msgid "b"
+#~ msgstr "b"
+
+#~ msgid "ms"
+#~ msgstr "mg"
+
+#~ msgid "s"
+#~ msgstr "g"
+
+#~ msgid "m"
+#~ msgstr "p"
+
+#~ msgid "h"
+#~ msgstr "g"
+
+#, fuzzy
+#~ msgid "day"
+#~ msgstr " ngày"
+
+#, fuzzy
+#~ msgid "days"
+#~ msgstr " ngày"
+
 #, fuzzy, c-format
 #~ msgid "Could not acquire lock on file `%s': %s...\n"
 #~ msgstr "Lỗi mở tập tin theo dõi « %s »: %s\n"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index dec62e27f..a5376561d 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet-0.8.1\n"
 "Report-Msgid-Bugs-To: gnunet-developers@mail.gnu.org\n"
-"POT-Creation-Date: 2020-09-06 10:07+0200\n"
+"POT-Creation-Date: 2020-10-13 16:12+0200\n"
 "PO-Revision-Date: 2011-07-09 12:12+0800\n"
 "Last-Translator: Wylmer Wang <wantinghard@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -27,8 +27,8 @@ msgid "Issuer public key `%s' is not well-formed\n"
 msgstr "“%s”的参数无效。\n"
 
 #: src/abd/gnunet-abd.c:560 src/abd/gnunet-service-abd.c:1747
-#: src/namestore/gnunet-namestore.c:1001
 #: src/namestore/gnunet-namestore-fcfsd.c:1154
+#: src/namestore/gnunet-namestore.c:1001
 #, fuzzy, c-format
 msgid "Failed to connect to namestore\n"
 msgstr "初始化“%s”服务失败。\n"
@@ -494,82 +494,14 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3011
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3063
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3552 src/ats-tests/gnunet-solver-eval.c:997
-msgid "solver to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3557
-#: src/ats-tests/gnunet-solver-eval.c:1003
-#: src/ats-tests/gnunet-solver-eval.c:1008
-msgid "experiment to use"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3564
-#, fuzzy
-msgid "print logging"
-msgstr "未知的命令“%s”。\n"
-
-#: src/ats/gnunet-ats-solver-eval.c:3569
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3574
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:326
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
-"%llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:336
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:382
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+#: src/ats-tests/ats-testing-log.c:896
+msgid "Stop logging\n"
 msgstr ""
 
-#: src/ats/gnunet-service-ats_plugins.c:474
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "无法初始化 SQLite:%s。\n"
-
-#: src/ats/plugin_ats_proportional.c:1142
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/ats/plugin_ats_proportional.c:1165
+#: src/ats-tests/ats-testing-log.c:952
 #, fuzzy, c-format
-msgid "Invalid %s configuration %f\n"
-msgstr "解析配置文件“%s”失败\n"
+msgid "Start logging `%s'\n"
+msgstr "未知的命令“%s”。\n"
 
 #: src/ats-tests/ats-testing.c:420
 #, c-format
@@ -581,15 +513,6 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/ats-tests/ats-testing-log.c:896
-msgid "Stop logging\n"
-msgstr ""
-
-#: src/ats-tests/ats-testing-log.c:952
-#, fuzzy, c-format
-msgid "Start logging `%s'\n"
-msgstr "未知的命令“%s”。\n"
-
 #: src/ats-tests/gnunet-ats-sim.c:92
 #, c-format
 msgid ""
@@ -597,6 +520,16 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
+#: src/ats-tests/gnunet-solver-eval.c:997 src/ats/gnunet-ats-solver-eval.c:3552
+msgid "solver to use"
+msgstr ""
+
+#: src/ats-tests/gnunet-solver-eval.c:1003
+#: src/ats-tests/gnunet-solver-eval.c:1008
+#: src/ats/gnunet-ats-solver-eval.c:3557
+msgid "experiment to use"
+msgstr ""
+
 #: src/ats-tool/gnunet-ats.c:299
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -718,6 +651,73 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr "无法获取有关用户“%s”的信息:%s\n"
 
+#: src/ats/gnunet-ats-solver-eval.c:2992 src/ats/gnunet-ats-solver-eval.c:3044
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3011
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3063
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3564
+#, fuzzy
+msgid "print logging"
+msgstr "未知的命令“%s”。\n"
+
+#: src/ats/gnunet-ats-solver-eval.c:3569
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3574
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:326
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:336
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:382
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:474
+#, fuzzy, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "无法初始化 SQLite:%s。\n"
+
+#: src/ats/plugin_ats_proportional.c:1142
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/ats/plugin_ats_proportional.c:1165
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr "解析配置文件“%s”失败\n"
+
 #: src/auction/gnunet-auction-create.c:163
 msgid "description of the item to be sold"
 msgstr ""
@@ -854,6 +854,28 @@ msgstr ""
 msgid "Connection to conversation service lost, trying to reconnect\n"
 msgstr ""
 
+#: src/conversation/gnunet-conversation-test.c:120
+#, c-format
+msgid ""
+"\n"
+"End of transmission.  Have a GNU day.\n"
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:146
+#, c-format
+msgid ""
+"\n"
+"We are now playing your recording back.  If you can hear it, your audio "
+"settings are working..."
+msgstr ""
+
+#: src/conversation/gnunet-conversation-test.c:218
+#, c-format
+msgid ""
+"We will now be recording you for %s. After that time, the recording will be "
+"played back to you..."
+msgstr ""
+
 #: src/conversation/gnunet-conversation.c:264
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1112,30 +1134,8 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-conversation-test.c:120
-#, c-format
-msgid ""
-"\n"
-"End of transmission.  Have a GNU day.\n"
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:146
-#, c-format
-msgid ""
-"\n"
-"We are now playing your recording back.  If you can hear it, your audio "
-"settings are working..."
-msgstr ""
-
-#: src/conversation/gnunet-conversation-test.c:218
-#, c-format
-msgid ""
-"We will now be recording you for %s. After that time, the recording will be "
-"played back to you..."
-msgstr ""
-
-#: src/conversation/gnunet_gst.c:664
 #: src/conversation/gnunet-helper-audio-playback-gst.c:363
+#: src/conversation/gnunet_gst.c:664
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1917,17 +1917,17 @@ msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:278
-#: src/datastore/plugin_datastore_postgres.c:891
+#: src/datastore/plugin_datastore_postgres.c:284
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:852
+#: src/datastore/plugin_datastore_postgres.c:858
 #, fuzzy
 msgid "Failed to drop table from database.\n"
 msgstr "发送消息失败。\n"
 
-#: src/datastore/plugin_datastore_postgres.c:950
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -2036,90 +2036,42 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
-#, fuzzy, c-format
-msgid "Exiting as the number of peers is %u\n"
-msgstr "增加 TCP/IP 的最大连接数"
+#: src/dht/gnunet-dht-put.c:133
+msgid "Must provide KEY and DATA for DHT put!\n"
+msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
-#, fuzzy
-msgid "number of peers to start"
-msgstr "迭代次数"
+#: src/dht/gnunet-dht-put.c:140
+#, fuzzy, c-format
+msgid "Could not connect to DHT service!\n"
+msgstr "无法连接到 %s:%u:%s\n"
 
-#: src/dht/gnunet_dht_profiler.c:961
-msgid "number of PUTs to perform per peer"
+#: src/dht/gnunet-dht-put.c:151
+#, c-format
+msgid "Issuing put request for `%s' with data `%s'!\n"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
-#: src/testbed/gnunet-testbed-profiler.c:305
-msgid "name of the file with the login information for the testbed"
+#: src/dht/gnunet-dht-put.c:187
+msgid "the data to insert under the key"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:973
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
+#: src/dht/gnunet-dht-put.c:193
+msgid "how long to store this entry in the dht (in seconds)"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "delay to start doing PUTs (default: 1 sec)"
+#: src/dht/gnunet-dht-put.c:208
+msgid "how many replicas to create"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:985
-msgid "delay to start doing GETs (default: 5 min)"
+#: src/dht/gnunet-dht-put.c:212
+msgid "use DHT's record route option"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:990
-msgid "replication degree for DHT PUTs"
+#: src/dht/gnunet-dht-put.c:217
+msgid "the type to insert data as"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:996
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1002
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1023
-#, fuzzy
-msgid "Measure quality and performance of the DHT service."
-msgstr "无法访问该服务"
-
-#: src/dht/gnunet-dht-put.c:133
-msgid "Must provide KEY and DATA for DHT put!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:140
-#, fuzzy, c-format
-msgid "Could not connect to DHT service!\n"
-msgstr "无法连接到 %s:%u:%s\n"
-
-#: src/dht/gnunet-dht-put.c:151
-#, c-format
-msgid "Issuing put request for `%s' with data `%s'!\n"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:187
-msgid "the data to insert under the key"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:193
-msgid "how long to store this entry in the dht (in seconds)"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:208
-msgid "how many replicas to create"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:212
-msgid "use DHT's record route option"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:217
-msgid "the type to insert data as"
-msgstr ""
-
-#: src/dht/gnunet-dht-put.c:232
-msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
+#: src/dht/gnunet-dht-put.c:232
+msgid "Issue a PUT request to the GNUnet DHT insert DATA under KEY."
 msgstr ""
 
 #: src/dht/gnunet-service-dht_clients.c:367
@@ -2329,6 +2281,54 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr ""
 
+#: src/dht/gnunet_dht_profiler.c:922 src/testbed/gnunet-testbed-profiler.c:255
+#, fuzzy, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr "增加 TCP/IP 的最大连接数"
+
+#: src/dht/gnunet_dht_profiler.c:955 src/rps/gnunet-rps-profiler.c:3194
+#, fuzzy
+msgid "number of peers to start"
+msgstr "迭代次数"
+
+#: src/dht/gnunet_dht_profiler.c:961
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:967 src/nse/gnunet-nse-profiler.c:872
+#: src/testbed/gnunet-testbed-profiler.c:305
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:973
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:985
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:990
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:996
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1002
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1023
+#, fuzzy
+msgid "Measure quality and performance of the DHT service."
+msgstr "无法访问该服务"
+
 #: src/dht/plugin_block_dht.c:189
 #, c-format
 msgid "Block not of type %u\n"
@@ -3248,14 +3248,6 @@ msgid ""
 "chk/...)"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:128
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:141
-msgid "Special file-sharing operations"
-msgstr ""
-
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr ""
@@ -3272,6 +3264,14 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:128
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:141
+msgid "Special file-sharing operations"
+msgstr ""
+
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:234
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3926,50 +3926,6 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:257
-#, fuzzy, c-format
-msgid "`%s' is not a valid DNS domain name\n"
-msgstr "“%s”不可用。\n"
-
-#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
-#, fuzzy, c-format
-msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
-msgstr "打开日志文件“%s”失败:%s\n"
-
-#: src/gns/gnunet-gns.c:281
-msgid "Cannot resolve using GNS: GNUnet peer not running\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:305
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:340
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:346
-msgid "Specify the type of the record to lookup"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:352
-msgid "Specify a timeout for the lookup"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:356
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:361
-msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:375
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "GNUnet 错误日志"
-
 #: src/gns/gnunet-gns-import.c:486
 msgid "This program will import some GNS authorities into your GNS namestore."
 msgstr ""
@@ -4090,6 +4046,50 @@ msgstr ""
 msgid "GNUnet GNS proxy"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:257
+#, fuzzy, c-format
+msgid "`%s' is not a valid DNS domain name\n"
+msgstr "“%s”不可用。\n"
+
+#: src/gns/gnunet-gns.c:267 src/util/dnsparser.c:254
+#, fuzzy, c-format
+msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
+msgstr "打开日志文件“%s”失败:%s\n"
+
+#: src/gns/gnunet-gns.c:281
+msgid "Cannot resolve using GNS: GNUnet peer not running\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:305
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:340
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:346
+msgid "Specify the type of the record to lookup"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:352
+msgid "Specify a timeout for the lookup"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:356
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:361
+msgid "DNS Compatibility: Name is passed in IDNA instead of UTF-8"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:375
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "GNUnet 错误日志"
+
 #: src/gns/gnunet-service-gns.c:505
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4101,8 +4101,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr "初始化“%s”服务失败。\n"
 
 #: src/gns/gnunet-service-gns.c:560
-#: src/zonemaster/gnunet-service-zonemaster.c:887
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:444
+#: src/zonemaster/gnunet-service-zonemaster.c:887
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "无法连接到 %s:%u:%s\n"
@@ -4594,7 +4594,7 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:674
-#: src/transport/gnunet-service-transport.c:2659
+#: src/transport/gnunet-service-transport.c:2661
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 
@@ -4847,6 +4847,70 @@ msgstr "sqlite 数据仓库"
 msgid "Failed to setup database at `%s'\n"
 msgstr "运行 %s失败:%s %d\n"
 
+#: src/namestore/gnunet-namestore-fcfsd.c:552
+#, fuzzy, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr "未知的命令“%s”。\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:579
+#, fuzzy, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:600
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:632
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:694
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:784
+#, fuzzy, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr "发送消息失败。\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:803
+#, fuzzy, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:840
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:849
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1084
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1115
+#, fuzzy
+msgid "Failed to start HTTP server\n"
+msgstr "初始化“%s”服务失败。\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1163
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "初始化“%s”服务失败。\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1190
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1210
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-namestore.c:334
 #, c-format
 msgid "Adding record failed: %s\n"
@@ -5076,70 +5140,6 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-fcfsd.c:552
-#, fuzzy, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr "未知的命令“%s”。\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:579
-#, fuzzy, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:600
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:632
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:694
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:784
-#, fuzzy, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr "发送消息失败。\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:803
-#, fuzzy, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:840
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:849
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1084
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1115
-#, fuzzy
-msgid "Failed to start HTTP server\n"
-msgstr "初始化“%s”服务失败。\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1163
-#, fuzzy
-msgid "Failed to connect to identity\n"
-msgstr "初始化“%s”服务失败。\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1190
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1210
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-service-namestore.c:866
 #, fuzzy, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5455,10 +5455,6 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
-#: src/nse/gnunet-nse.c:124
-msgid "Show network size estimates from NSE service."
-msgstr ""
-
 #: src/nse/gnunet-nse-profiler.c:857
 msgid "limit to the number of connections to NSE services, 0 for none"
 msgstr ""
@@ -5476,74 +5472,24 @@ msgid "Number of peers to run in each round, separated 
by commas"
 msgstr ""
 
 #: src/nse/gnunet-nse-profiler.c:900
-msgid "delay between rounds"
-msgstr ""
-
-#: src/nse/gnunet-nse-profiler.c:912
-#, fuzzy
-msgid "Measure quality and performance of the NSE service."
-msgstr "无法访问该服务"
-
-#: src/nse/gnunet-service-nse.c:1443
-#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
-#, fuzzy
-msgid "Value is too large.\n"
-msgstr "值不在合法范围内。"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:175
-#, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:306
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:323
-#: src/peerinfo/gnunet-service-peerinfo.c:348
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:426
-msgid "# peers known"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:468
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:624
-#, fuzzy, c-format
-msgid "Scanning directory `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:631
-#, c-format
-msgid "Still no peers found in `%s'!\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1024
-#, fuzzy, c-format
-msgid "Cleaning up directory `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1319
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1332
-msgid "Skipping import of included HELLOs\n"
+msgid "delay between rounds"
 msgstr ""
 
-#: src/peerinfo/peerinfo_api.c:217
-msgid "Failed to receive response from `PEERINFO' service."
+#: src/nse/gnunet-nse-profiler.c:912
+#, fuzzy
+msgid "Measure quality and performance of the NSE service."
+msgstr "无法访问该服务"
+
+#: src/nse/gnunet-nse.c:124
+msgid "Show network size estimates from NSE service."
 msgstr ""
 
+#: src/nse/gnunet-service-nse.c:1443
+#: src/revocation/gnunet-service-revocation.c:834 src/util/gnunet-scrypt.c:257
+#, fuzzy
+msgid "Value is too large.\n"
+msgstr "值不在合法范围内。"
+
 #: src/peerinfo-tool/gnunet-peerinfo.c:237
 #, fuzzy, c-format
 msgid "%sPeer `%s'\n"
@@ -5640,6 +5586,60 @@ msgstr "解析配置文件“%s”失败\n"
 msgid "Peerinfo REST API initialized\n"
 msgstr ""
 
+#: src/peerinfo/gnunet-service-peerinfo.c:175
+#, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:306
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:323
+#: src/peerinfo/gnunet-service-peerinfo.c:348
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:426
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:468
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:624
+#, fuzzy, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:631
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1024
+#, fuzzy, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1319
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1332
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:217
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+
 #: src/peerstore/gnunet-peerstore.c:92
 msgid "peerstore"
 msgstr ""
@@ -6094,18 +6094,6 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "无法连接到 %s:%u:%s\n"
 
-#: src/rps/gnunet-rps.c:270
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:275
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:279
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/rps/gnunet-rps-profiler.c:3200
 msgid "duration of the profiling"
 msgstr ""
@@ -6124,6 +6112,18 @@ msgstr "迭代次数"
 msgid "Measure quality and performance of the RPS service."
 msgstr "无法访问该服务"
 
+#: src/rps/gnunet-rps.c:270
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:275
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:279
+msgid "Get peers from biased stream"
+msgstr ""
+
 #: src/scalarproduct/gnunet-scalarproduct.c:229
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6179,10 +6179,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
-#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1118
 #: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
+#: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1358
+#: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1355
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr "“%s”已连接到“%s”。\n"
@@ -6537,15 +6537,6 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr ""
 
-#: src/testbed/gnunet_testbed_mpi_spawn.c:119
-msgid "Waiting for child to exit.\n"
-msgstr ""
-
-#: src/testbed/gnunet_testbed_mpi_spawn.c:242
-#, fuzzy, c-format
-msgid "Spawning process `%s'\n"
-msgstr "卸载 GNUnet 服务"
-
 #: src/testbed/gnunet-testbed-profiler.c:290
 msgid "tolerate COUNT number of continious timeout failures"
 msgstr ""
@@ -6557,6 +6548,15 @@ msgid ""
 "signal is received"
 msgstr ""
 
+#: src/testbed/gnunet_testbed_mpi_spawn.c:119
+msgid "Waiting for child to exit.\n"
+msgstr ""
+
+#: src/testbed/gnunet_testbed_mpi_spawn.c:242
+#, fuzzy, c-format
+msgid "Spawning process `%s'\n"
+msgstr "卸载 GNUnet 服务"
+
 #: src/testbed/testbed_api.c:399
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -6853,19 +6853,19 @@ msgstr ""
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:3189
-#: src/transport/gnunet-communicator-udp.c:2826
+#: src/transport/gnunet-communicator-tcp.c:3221
+#: src/transport/gnunet-communicator-udp.c:2995
 #: src/transport/gnunet-service-tng.c:10014
-#: src/transport/gnunet-service-transport.c:2624
+#: src/transport/gnunet-service-transport.c:2626
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "立即保存配置?"
 
-#: src/transport/gnunet-communicator-tcp.c:3494
+#: src/transport/gnunet-communicator-tcp.c:3553
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2898
+#: src/transport/gnunet-communicator-udp.c:3067
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -6890,50 +6890,50 @@ msgstr "发送消息失败。\n"
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:137
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport.c:445
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:794
+#: src/transport/gnunet-service-transport.c:796
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1477
+#: src/transport/gnunet-service-transport.c:1479
 msgid "# bytes payload discarded due to not connected peer"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1622
+#: src/transport/gnunet-service-transport.c:1624
 msgid "# bytes total received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1712
+#: src/transport/gnunet-service-transport.c:1714
 msgid "# bytes payload received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2016
-#: src/transport/gnunet-service-transport.c:2450
+#: src/transport/gnunet-service-transport.c:2018
+#: src/transport/gnunet-service-transport.c:2452
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2454
+#: src/transport/gnunet-service-transport.c:2456
 #, fuzzy, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/transport/gnunet-service-transport.c:2549
+#: src/transport/gnunet-service-transport.c:2551
 #, fuzzy, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr "卸载 GNUnet 服务"
 
-#: src/transport/gnunet-service-transport.c:2558
+#: src/transport/gnunet-service-transport.c:2560
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
+#: src/transport/gnunet-service-transport_ats.c:137
+msgid "# Addresses given to ATS"
+msgstr ""
+
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7242,6 +7242,44 @@ msgstr ""
 msgid "# HELLOs given to peerinfo"
 msgstr ""
 
+#: src/transport/gnunet-transport-profiler.c:220
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:577
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:581
+msgid "receive data from peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:586
+msgid "iterations"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:591
+#, fuzzy
+msgid "number of messages to send"
+msgstr "每次迭代所使用的消息数量"
+
+#: src/transport/gnunet-transport-profiler.c:596
+#, fuzzy
+msgid "message size to use"
+msgstr "消息尺寸"
+
+#: src/transport/gnunet-transport-profiler.c:601
+#: src/transport/gnunet-transport.c:1404
+msgid "peer identity"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:614
+#: src/transport/gnunet-transport.c:1426
+#, fuzzy
+msgid "Direct access to transport service."
+msgstr "初始化“%s”服务失败。\n"
+
 #: src/transport/gnunet-transport.c:406
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7378,11 +7416,6 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1404
-#: src/transport/gnunet-transport-profiler.c:601
-msgid "peer identity"
-msgstr ""
-
 #: src/transport/gnunet-transport.c:1408
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7391,39 +7424,6 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
-#: src/transport/gnunet-transport.c:1426
-#: src/transport/gnunet-transport-profiler.c:614
-#, fuzzy
-msgid "Direct access to transport service."
-msgstr "初始化“%s”服务失败。\n"
-
-#: src/transport/gnunet-transport-profiler.c:220
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:577
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:581
-msgid "receive data from peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:586
-msgid "iterations"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:591
-#, fuzzy
-msgid "number of messages to send"
-msgstr "每次迭代所使用的消息数量"
-
-#: src/transport/gnunet-transport-profiler.c:596
-#, fuzzy
-msgid "message size to use"
-msgstr "消息尺寸"
-
 #: src/transport/plugin_transport_http_client.c:1489
 #: src/transport/plugin_transport_http_server.c:2331
 #: src/transport/plugin_transport_http_server.c:3562
@@ -7700,20 +7700,6 @@ msgstr ""
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:169
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:553
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:571
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-
 #: src/transport/plugin_transport_udp.c:3169
 #, c-format
 msgid ""
@@ -7762,6 +7748,20 @@ msgstr "“%s”不可用。\n"
 msgid "Failed to create UDP network sockets\n"
 msgstr "发送消息失败。\n"
 
+#: src/transport/plugin_transport_udp_broadcasting.c:169
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:553
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:571
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_unix.c:1396
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -7934,7 +7934,7 @@ msgid "do daemonize (detach from terminal)"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:1397
-#: src/transport/transport-testing2.c:1116 src/util/service.c:2072
+#: src/transport/transport-testing2.c:983 src/util/service.c:2072
 #: src/util/service.c:2084
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
@@ -8598,19 +8598,19 @@ msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
 msgstr ""
 
-#: src/util/os_installation.c:409
+#: src/util/os_installation.c:411
 #, fuzzy, c-format
 msgid ""
 "Could not determine installation path for %s.  Set `%s' environment "
 "variable.\n"
 msgstr "无法确定安装路径。请尝试设置“%s”\n"
 
-#: src/util/os_installation.c:792
+#: src/util/os_installation.c:794
 #, fuzzy, c-format
 msgid "Could not find binary `%s' in PATH!\n"
 msgstr "找不到主机“%s”的 IP:%s\n"
 
-#: src/util/os_installation.c:825
+#: src/util/os_installation.c:827
 #, c-format
 msgid "Binary `%s' exists, but is not SUID\n"
 msgstr ""
@@ -8635,17 +8635,17 @@ msgstr ""
 msgid "Could not determine plugin installation path.\n"
 msgstr "无法确定用户界面定义文件。"
 
-#: src/util/program.c:262
+#: src/util/program.c:267
 #, fuzzy, c-format
 msgid "Unreadable or malformed configuration file `%s', exit ...\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/util/program.c:279
+#: src/util/program.c:284
 #, fuzzy, c-format
 msgid "Unreadable or malformed default configuration file `%s', exit ...\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/util/program.c:294
+#: src/util/program.c:299
 #, fuzzy
 msgid "Unreadable or malformed configuration, exit ...\n"
 msgstr "解析配置文件“%s”失败\n"
@@ -8710,10 +8710,6 @@ msgstr ""
 msgid "Attempting to proxy service `%s' to invalid port %d or hostname.\n"
 msgstr ""
 
-#: src/util/strings.c:179
-msgid "b"
-msgstr "b"
-
 #: src/util/strings.c:503
 #, c-format
 msgid "Character sets requested were `%s'->`%s'\n"
@@ -8723,48 +8719,6 @@ msgstr ""
 msgid "Failed to expand `$HOME': environment variable `HOME' not set"
 msgstr "扩展“$HOME”失败:没有设置环境变量“HOME”"
 
-#: src/util/strings.c:706
-msgid "µs"
-msgstr ""
-
-#: src/util/strings.c:710
-msgid "forever"
-msgstr ""
-
-#: src/util/strings.c:712
-msgid "0 ms"
-msgstr ""
-
-#: src/util/strings.c:716
-msgid "ms"
-msgstr "毫秒"
-
-#: src/util/strings.c:720
-msgid "s"
-msgstr "秒"
-
-#: src/util/strings.c:724
-msgid "m"
-msgstr "分"
-
-#: src/util/strings.c:728
-msgid "h"
-msgstr "时"
-
-#: src/util/strings.c:734
-#, fuzzy
-msgid "day"
-msgstr " 天"
-
-#: src/util/strings.c:736
-#, fuzzy
-msgid "days"
-msgstr " 天"
-
-#: src/util/strings.c:764
-msgid "end of time"
-msgstr ""
-
 #: src/util/strings.c:1240
 msgid "IPv6 address did not start with `['\n"
 msgstr ""
@@ -9007,12 +8961,35 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster.c:849
 #: src/zonemaster/gnunet-service-zonemaster-monitor.c:420
+#: src/zonemaster/gnunet-service-zonemaster.c:849
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "初始化“%s”服务失败。\n"
 
+#~ msgid "b"
+#~ msgstr "b"
+
+#~ msgid "ms"
+#~ msgstr "毫秒"
+
+#~ msgid "s"
+#~ msgstr "秒"
+
+#~ msgid "m"
+#~ msgstr "分"
+
+#~ msgid "h"
+#~ msgstr "时"
+
+#, fuzzy
+#~ msgid "day"
+#~ msgstr " 天"
+
+#, fuzzy
+#~ msgid "days"
+#~ msgstr " 天"
+
 #, fuzzy, c-format
 #~ msgid "Could not acquire lock on file `%s': %s...\n"
 #~ msgstr "无法解析“%s”(%s):%s\n"
diff --git a/src/Makefile.am b/src/Makefile.am
index 234a63389..c04d730be 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -12,7 +12,8 @@ endif
 if HAVE_EXPERIMENTAL
  EXP_DIR = \
   rps \
-  abd
+  #abd FTBFS
+  messenger
 if HAVE_ABE
  EXP_DIR += \
   abe
@@ -51,7 +52,6 @@ SUBDIRS = \
   include $(INTLEMU_SUBDIRS) \
   util \
   nt \
-  gnsrecord \
   hello \
   block \
   statistics \
@@ -74,7 +74,6 @@ SUBDIRS = \
   fragmentation \
   transport \
   ats-tool \
-  peerinfo-tool \
   core \
   $(TESTBED) \
   $(ATS_TESTS) \
@@ -85,8 +84,10 @@ SUBDIRS = \
   regex \
   dns \
   identity \
+  gnsrecord \
   namecache \
   namestore \
+  peerinfo-tool \
   cadet \
   set \
   seti \
diff --git a/src/ats-tests/ats-testing-log.c b/src/ats-tests/ats-testing-log.c
index 38094a438..955401dd8 100644
--- a/src/ats-tests/ats-testing-log.c
+++ b/src/ats-tests/ats-testing-log.c
@@ -575,7 +575,7 @@ GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle 
*l,
 
         /* Assembling slave string */
         GNUNET_asprintf (&data,
-                         
"%llu;%llu;%u;%u;%u;%u;%u;%u;%.3f;%u;%u;%u;%u;%u;%u;%u;%.3f;%.3f\n",
+                         
"%llu;%llu;%u;%u;%u;%u;%u;%u;%.3f;%u;%u;%llu;%u;%u;%u;%u;%.3f;%.3f\n",
                          (long long unsigned
                           int) cur_lt->timestamp.abs_value_us,
                          (long long unsigned
@@ -593,7 +593,7 @@ GNUNET_ATS_TEST_logging_write_to_file (struct LoggingHandle 
*l,
                          (double) plt->app_rtt / 1000,
                          plt->bandwidth_in,
                          plt->bandwidth_out,
-                         plt->ats_delay,
+                         plt->ats_delay.rel_value_us,
                          plt->ats_distance,
                          plt->ats_network_type,
                          plt->ats_utilization_out,
diff --git a/src/cadet/gnunet-service-cadet_channel.c 
b/src/cadet/gnunet-service-cadet_channel.c
index dab53b8c4..ae6d21452 100644
--- a/src/cadet/gnunet-service-cadet_channel.c
+++ b/src/cadet/gnunet-service-cadet_channel.c
@@ -442,7 +442,7 @@ GCCH_2s (const struct CadetChannel *ch)
                    ? "loopback"
                    : GNUNET_i2s (GCP_get_id (GCT_get_destination (ch->t))),
                    GNUNET_h2s (&ch->port),
-                   ch->ctn,
+                   ch->ctn.cn,
                    (NULL == ch->owner)
                    ? 0
                    : ntohl (ch->owner->ccn.channel_of_client),
@@ -1899,10 +1899,10 @@ GCCH_handle_local_data (struct CadetChannel *ch,
   GNUNET_memcpy (&crm->data_message[1], buf, buf_len);
   GNUNET_CONTAINER_DLL_insert_tail (ch->head_sent, ch->tail_sent, crm);
   LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Sending message %u from local client to %s with %u bytes\n",
+       "Sending message %u from local client to %s with %lu bytes\n",
        ntohl (crm->data_message->mid.mid),
        GCCH_2s (ch),
-       buf_len);
+       (unsigned long) buf_len);
   if (NULL != ch->retry_data_task)
   {
     GNUNET_SCHEDULER_cancel (ch->retry_data_task);
@@ -2044,7 +2044,7 @@ GCCH_debug (struct CadetChannel *ch, enum 
GNUNET_ErrorType level)
     LOG2 (level, "CHN *** DEBUG NULL CHANNEL ***\n");
     return;
   }
-  LOG2 (level, "CHN %s:%X (%p)\n", GCT_2s (ch->t), ch->ctn, ch);
+  LOG2 (level, "CHN %s:%X (%p)\n", GCT_2s (ch->t), ch->ctn.cn, ch);
   if (NULL != ch->owner)
   {
     LOG2 (level,
@@ -2062,7 +2062,7 @@ GCCH_debug (struct CadetChannel *ch, enum 
GNUNET_ErrorType level)
           ntohl (ch->dest->ccn.channel_of_client));
   }
   LOG2 (level,
-        "CHN  Message IDs recv: %d (%LLX), send: %d\n",
+        "CHN  Message IDs recv: %d (%llX), send: %d\n",
         ntohl (ch->mid_recv.mid),
         (unsigned long long) ch->mid_futures,
         ntohl (ch->mid_send.mid));
diff --git a/src/cadet/gnunet-service-cadet_core.c 
b/src/cadet/gnunet-service-cadet_core.c
index 9a83fa31d..95a5d3f63 100644
--- a/src/cadet/gnunet-service-cadet_core.c
+++ b/src/cadet/gnunet-service-cadet_core.c
@@ -296,7 +296,7 @@ discard_all_from_rung_tail ()
   while (NULL != (dir = tail->rd_head))
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
-         "Queue full due new message %s on connection %s, dropping old 
message\n",
+         "Queue full due new message on connection %s, dropping old message\n",
          GNUNET_sh2s (&dir->my_route->cid.connection_of_tunnel));
     GNUNET_STATISTICS_update (stats,
                               "# messages dropped due to full buffer",
@@ -408,7 +408,7 @@ route_message (struct CadetPeer *prev,
     {
       /* We are in the highest rung, drop our own! */
       LOG (GNUNET_ERROR_TYPE_DEBUG,
-           "Queue full due new message %s on connection %s, dropping old 
message\n",
+           "Queue full due new message on connection %s, dropping old 
message\n",
            GNUNET_sh2s (&dir->my_route->cid.connection_of_tunnel));
       GNUNET_STATISTICS_update (stats,
                                 "# messages dropped due to full buffer",
diff --git a/src/cadet/gnunet-service-cadet_dht.c 
b/src/cadet/gnunet-service-cadet_dht.c
index 4e8ccbb08..e1bbeb2c3 100644
--- a/src/cadet/gnunet-service-cadet_dht.c
+++ b/src/cadet/gnunet-service-cadet_dht.c
@@ -195,8 +195,8 @@ announce_id (void *cls)
                  &my_full_id,
                  sizeof(my_full_id));
   LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Announcing my HELLO (%u bytes) in the DHT\n",
-       size);
+       "Announcing my HELLO (%lu bytes) in the DHT\n",
+       (unsigned long) size);
   GNUNET_DHT_put (dht_handle,    /* DHT handle */
                   &phash,       /* Key to use */
                   dht_replication_level,     /* Replication level */
diff --git a/src/cadet/gnunet-service-cadet_tunnels.c 
b/src/cadet/gnunet-service-cadet_tunnels.c
index 2ca46b5aa..78bc54a5c 100644
--- a/src/cadet/gnunet-service-cadet_tunnels.c
+++ b/src/cadet/gnunet-service-cadet_tunnels.c
@@ -2431,7 +2431,7 @@ connection_ready_cb (void *cls,
   {
   case CADET_TUNNEL_KEY_UNINITIALIZED:
     LOG (GNUNET_ERROR_TYPE_DEBUG,
-         "Do not begin KX for %s if WE have no channels waiting. Retrying 
after %d\n",
+         "Do not begin KX for %s if WE have no channels waiting. Retrying 
after %llu\n",
          GCT_2s (t),
          GNUNET_TIME_absolute_get_remaining (t->next_kx_attempt).rel_value_us);
     /* Do not begin KX if WE have no channels waiting! */
diff --git a/src/consensus/consensus_api.c b/src/consensus/consensus_api.c
index 06b4c88ef..b4a9e5d39 100644
--- a/src/consensus/consensus_api.c
+++ b/src/consensus/consensus_api.c
@@ -280,7 +280,7 @@ GNUNET_CONSENSUS_insert (struct GNUNET_CONSENSUS_Handle 
*consensus,
   struct GNUNET_MQ_Envelope *ev;
   struct InsertDoneInfo *i;
 
-  LOG (GNUNET_ERROR_TYPE_DEBUG, "inserting, size=%llu\n", element->size);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "inserting, size=%u\n", element->size);
 
   ev = GNUNET_MQ_msg_extra (element_msg, element->size,
                             GNUNET_MESSAGE_TYPE_CONSENSUS_CLIENT_INSERT);
diff --git a/src/conversation/Makefile.am b/src/conversation/Makefile.am
index 7645b7973..0f99a6526 100644
--- a/src/conversation/Makefile.am
+++ b/src/conversation/Makefile.am
@@ -185,6 +185,7 @@ gnunet_service_conversation_LDADD = \
   libgnunetmicrophone.la \
   $(top_builddir)/src/cadet/libgnunetcadet.la \
   $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
   $(INTLLIBS)
 #gnunet_service_conversation_LDFLAGS = \
 #  
diff --git a/src/conversation/conversation.h b/src/conversation/conversation.h
index ed614ab1b..d244f5163 100644
--- a/src/conversation/conversation.h
+++ b/src/conversation/conversation.h
@@ -27,6 +27,8 @@
 #ifndef CONVERSATION_H
 #define CONVERSATION_H
 
+#include "gnunet_identity_service.h"
+
 #ifdef __cplusplus
 extern "C"
 {
@@ -105,7 +107,7 @@ struct ClientPhoneRingMessage
   /**
    * Who is calling us?
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey caller_id;
+  struct GNUNET_IDENTITY_PublicKey caller_id;
 };
 
 
@@ -230,7 +232,7 @@ struct ClientCallMessage
   /**
    * Identity of the caller.
    */
-  struct GNUNET_CRYPTO_EcdsaPrivateKey caller_id;
+  struct GNUNET_IDENTITY_PrivateKey caller_id;
 };
 
 
@@ -301,7 +303,7 @@ struct CadetPhoneRingMessage
   /**
    * Who is calling us? (also who is signing).
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey caller_id;
+  struct GNUNET_IDENTITY_PublicKey caller_id;
 
   /**
    * When does the signature expire?
@@ -311,7 +313,7 @@ struct CadetPhoneRingMessage
   /**
    * Signature over a `struct CadetPhoneRingInfoPS`
    */
-  struct GNUNET_CRYPTO_EcdsaSignature signature;
+  struct GNUNET_IDENTITY_Signature signature;
 };
 
 
diff --git a/src/conversation/conversation_api.c 
b/src/conversation/conversation_api.c
index daf51042a..88fe8f11c 100644
--- a/src/conversation/conversation_api.c
+++ b/src/conversation/conversation_api.c
@@ -105,7 +105,7 @@ struct GNUNET_CONVERSATION_Caller
   /**
    * Identity of the person calling us.
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey caller_id;
+  struct GNUNET_IDENTITY_PublicKey caller_id;
 
   /**
    * Internal handle to identify the caller with the service.
@@ -192,7 +192,7 @@ struct GNUNET_CONVERSATION_Phone
   /**
    * My GNS zone.
    */
-  struct GNUNET_CRYPTO_EcdsaPrivateKey my_zone;
+  struct GNUNET_IDENTITY_PrivateKey my_zone;
 
   /**
    * State machine for the phone.
diff --git a/src/conversation/gnunet-conversation.c 
b/src/conversation/gnunet-conversation.c
index 7a2a727a5..9ff0002e7 100644
--- a/src/conversation/gnunet-conversation.c
+++ b/src/conversation/gnunet-conversation.c
@@ -116,7 +116,7 @@ struct CallList
   /**
    * Public key identifying the caller.
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey caller_id;
+  struct GNUNET_IDENTITY_PublicKey caller_id;
 
   /**
    * Unique number of the call.
@@ -194,7 +194,7 @@ static char *ego_name;
 /**
  * Public key of active conversation partner (if any).
  */
-static struct GNUNET_CRYPTO_EcdsaPublicKey peer_key;
+static struct GNUNET_IDENTITY_PublicKey peer_key;
 
 /**
  * Name of active conversation partner (if any).
@@ -244,7 +244,7 @@ static void
 phone_event_handler (void *cls,
                      enum GNUNET_CONVERSATION_PhoneEventCode code,
                      struct GNUNET_CONVERSATION_Caller *caller,
-                     const struct GNUNET_CRYPTO_EcdsaPublicKey *caller_id)
+                     const struct GNUNET_IDENTITY_PublicKey *caller_id)
 {
   struct CallList *cl;
 
diff --git a/src/conversation/gnunet-service-conversation.c 
b/src/conversation/gnunet-service-conversation.c
index 502146255..a69c95a80 100644
--- a/src/conversation/gnunet-service-conversation.c
+++ b/src/conversation/gnunet-service-conversation.c
@@ -752,10 +752,11 @@ handle_cadet_ring_message (void *cls, const struct 
CadetPhoneRingMessage *msg)
   rs.expiration_time = msg->expiration_time;
 
   if (GNUNET_OK !=
-      GNUNET_CRYPTO_ecdsa_verify (GNUNET_SIGNATURE_PURPOSE_CONVERSATION_RING,
-                                  &rs,
-                                  &msg->signature,
-                                  &msg->caller_id))
+      GNUNET_IDENTITY_signature_verify (
+        GNUNET_SIGNATURE_PURPOSE_CONVERSATION_RING,
+        &rs,
+        &msg->signature,
+        &msg->caller_id))
   {
     GNUNET_break_op (0);
     destroy_line_cadet_channels (ch);
@@ -1136,11 +1137,9 @@ handle_client_call_message (void *cls, const struct 
ClientCallMessage *msg)
                                              cadet_handlers);
   ch->mq = GNUNET_CADET_get_mq (ch->channel);
   e = GNUNET_MQ_msg (ring, GNUNET_MESSAGE_TYPE_CONVERSATION_CADET_PHONE_RING);
-  GNUNET_CRYPTO_ecdsa_key_get_public (&msg->caller_id, &ring->caller_id);
+  GNUNET_IDENTITY_key_get_public (&msg->caller_id, &ring->caller_id);
   ring->expiration_time = rs.expiration_time;
-  GNUNET_CRYPTO_ecdsa_sign (&msg->caller_id,
-                            &rs,
-                            &ring->signature);
+  GNUNET_IDENTITY_sign (&msg->caller_id, &rs, &ring->signature);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending RING message via CADET\n");
   GNUNET_MQ_send (ch->mq, e);
   GNUNET_SERVICE_client_continue (line->client);
diff --git a/src/conversation/test_conversation_api.c 
b/src/conversation/test_conversation_api.c
index b51186dc8..c5efecd52 100644
--- a/src/conversation/test_conversation_api.c
+++ b/src/conversation/test_conversation_api.c
@@ -305,7 +305,7 @@ static void
 phone_event_handler (void *cls,
                      enum GNUNET_CONVERSATION_PhoneEventCode code,
                      struct GNUNET_CONVERSATION_Caller *caller,
-                     const struct GNUNET_CRYPTO_EcdsaPublicKey *caller_id)
+                     const struct GNUNET_IDENTITY_PublicKey *caller_id)
 {
   static enum GNUNET_CONVERSATION_PhoneEventCode expect =
     GNUNET_CONVERSATION_EC_PHONE_RING;
@@ -385,7 +385,7 @@ call_event_handler (void *cls, enum 
GNUNET_CONVERSATION_CallEventCode code)
 
 static void
 caller_ego_create_cont (void *cls,
-                        const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+                        const struct GNUNET_IDENTITY_PrivateKey *pk,
                         const char *emsg)
 {
   (void) cls;
@@ -414,7 +414,7 @@ identity_cb (void *cls,
              const char *name)
 {
   struct GNUNET_GNSRECORD_Data rd;
-  struct GNUNET_CRYPTO_EcdsaPublicKey pub;
+  struct GNUNET_IDENTITY_PublicKey pub;
 
   (void) cls;
   (void) ctx;
@@ -465,7 +465,7 @@ identity_cb (void *cls,
 
 static void
 phone_ego_create_cont (void *cls,
-                       const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+                       const struct GNUNET_IDENTITY_PrivateKey *pk,
                        const char *emsg)
 {
   (void) cls;
diff --git a/src/conversation/test_conversation_api_reject.c 
b/src/conversation/test_conversation_api_reject.c
index 69fa9f1dc..08c64df37 100644
--- a/src/conversation/test_conversation_api_reject.c
+++ b/src/conversation/test_conversation_api_reject.c
@@ -179,7 +179,7 @@ static void
 phone_event_handler (void *cls,
                      enum GNUNET_CONVERSATION_PhoneEventCode code,
                      struct GNUNET_CONVERSATION_Caller *caller,
-                     const struct GNUNET_CRYPTO_EcdsaPublicKey *caller_id)
+                     const struct GNUNET_IDENTITY_PublicKey *caller_id)
 {
   static enum GNUNET_CONVERSATION_PhoneEventCode expect =
     GNUNET_CONVERSATION_EC_PHONE_RING;
@@ -238,7 +238,7 @@ call_event_handler (void *cls, enum 
GNUNET_CONVERSATION_CallEventCode code)
 
 static void
 caller_ego_create_cont (void *cls,
-                        const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+                        const struct GNUNET_IDENTITY_PrivateKey *pk,
                         const char *emsg)
 {
   (void) cls;
@@ -267,7 +267,7 @@ identity_cb (void *cls,
              const char *name)
 {
   struct GNUNET_GNSRECORD_Data rd;
-  struct GNUNET_CRYPTO_EcdsaPublicKey pub;
+  struct GNUNET_IDENTITY_PublicKey pub;
 
   (void) cls;
   (void) ctx;
@@ -318,7 +318,7 @@ identity_cb (void *cls,
 
 static void
 phone_ego_create_cont (void *cls,
-                       const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+                       const struct GNUNET_IDENTITY_PrivateKey *pk,
                        const char *emsg)
 {
   (void) cls;
diff --git a/src/conversation/test_conversation_api_twocalls.c 
b/src/conversation/test_conversation_api_twocalls.c
index 83e8cb55a..ac7a3c9dd 100644
--- a/src/conversation/test_conversation_api_twocalls.c
+++ b/src/conversation/test_conversation_api_twocalls.c
@@ -403,7 +403,7 @@ static void
 phone_event_handler (void *cls,
                      enum GNUNET_CONVERSATION_PhoneEventCode code,
                      struct GNUNET_CONVERSATION_Caller *caller,
-                     const struct GNUNET_CRYPTO_EcdsaPublicKey *caller_id)
+                     const struct GNUNET_IDENTITY_PublicKey *caller_id)
 {
   const char *cid;
 
@@ -507,7 +507,7 @@ call_event_handler (void *cls, enum 
GNUNET_CONVERSATION_CallEventCode code)
 
 static void
 caller_ego_create_cont (void *cls,
-                        const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+                        const struct GNUNET_IDENTITY_PrivateKey *pk,
                         const char *emsg)
 {
   (void) cls;
@@ -536,7 +536,7 @@ identity_cb (void *cls,
              const char *name)
 {
   struct GNUNET_GNSRECORD_Data rd;
-  struct GNUNET_CRYPTO_EcdsaPublicKey pub;
+  struct GNUNET_IDENTITY_PublicKey pub;
 
   (void) cls;
   (void) ctx;
@@ -594,7 +594,7 @@ identity_cb (void *cls,
 
 static void
 phone_ego_create_cont (void *cls,
-                       const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+                       const struct GNUNET_IDENTITY_PrivateKey *pk,
                        const char *emsg)
 {
   (void) cls;
diff --git a/src/datacache/plugin_datacache_postgres.c 
b/src/datacache/plugin_datacache_postgres.c
index c21be9219..724324ca4 100644
--- a/src/datacache/plugin_datacache_postgres.c
+++ b/src/datacache/plugin_datacache_postgres.c
@@ -67,14 +67,19 @@ static int
 init_connection (struct Plugin *plugin)
 {
   struct GNUNET_PQ_ExecuteStatement es[] = {
+    GNUNET_PQ_make_try_execute ("CREATE TEMPORARY SEQUENCE IF NOT EXISTS 
gn011dc_oid_seq"),
     GNUNET_PQ_make_execute ("CREATE TEMPORARY TABLE IF NOT EXISTS gn011dc ("
+                            "  oid OID NOT NULL DEFAULT 
nextval('gn011dc_oid_seq'),"
                             "  type INTEGER NOT NULL,"
                             "  prox INTEGER NOT NULL,"
                             "  discard_time BIGINT NOT NULL,"
                             "  key BYTEA NOT NULL,"
                             "  value BYTEA NOT NULL,"
-                            "  path BYTEA DEFAULT NULL)"
-                            "WITH OIDS"),
+                            "  path BYTEA DEFAULT NULL)"),
+    GNUNET_PQ_make_try_execute (
+      "ALTER SEQUENCE gnu011dc_oid_seq OWNED BY gn011dc.oid"),
+    GNUNET_PQ_make_try_execute (
+      "CREATE INDEX IF NOT EXISTS idx_oid ON gn011dc (oid)"),
     GNUNET_PQ_make_try_execute (
       "CREATE INDEX IF NOT EXISTS idx_key ON gn011dc (key)"),
     GNUNET_PQ_make_try_execute (
diff --git a/src/datastore/datastore_api.c b/src/datastore/datastore_api.c
index 4537f6efe..bd7a612ed 100644
--- a/src/datastore/datastore_api.c
+++ b/src/datastore/datastore_api.c
@@ -994,8 +994,8 @@ GNUNET_DATASTORE_put (struct GNUNET_DATASTORE_Handle *h,
   }
 
   LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Asked to put %u bytes of data under key `%s' for %s\n",
-       size,
+       "Asked to put %lu bytes of data under key `%s' for %s\n",
+       (unsigned long) size,
        GNUNET_h2s (key),
        GNUNET_STRINGS_relative_time_to_string (
          GNUNET_TIME_absolute_get_remaining (expiration),
@@ -1205,8 +1205,8 @@ GNUNET_DATASTORE_remove (struct GNUNET_DATASTORE_Handle 
*h,
   if (NULL == cont)
     cont = &drop_status_cont;
   LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Asked to remove %u bytes under key `%s'\n",
-       size,
+       "Asked to remove %lu bytes under key `%s'\n",
+       (unsigned long) size,
        GNUNET_h2s (key));
   env = GNUNET_MQ_msg_extra (dm,
                              size,
diff --git a/src/datastore/plugin_datastore_postgres.c 
b/src/datastore/plugin_datastore_postgres.c
index 88ceb1b0a..6a5d45832 100644
--- a/src/datastore/plugin_datastore_postgres.c
+++ b/src/datastore/plugin_datastore_postgres.c
@@ -72,8 +72,10 @@ init_connection (struct Plugin *plugin)
      * we only test equality on it and can cast it to/from uint32_t. For repl, 
prio, and anonLevel
      * we do math or inequality tests, so we can't handle the entire range of 
uint32_t.
      * This will also cause problems for expiration times after 
294247-01-10-04:00:54 UTC.
-     * PostgreSQL also recommends against using WITH OIDS.
-     */GNUNET_PQ_make_execute ("CREATE TABLE IF NOT EXISTS gn090 ("
+     */
+    GNUNET_PQ_make_try_execute (
+      "CREATE SEQUENCE IF NOT EXISTS gn090_oid_seq"),
+    GNUNET_PQ_make_execute ("CREATE TABLE IF NOT EXISTS gn090 ("
                             "  repl INTEGER NOT NULL DEFAULT 0,"
                             "  type INTEGER NOT NULL DEFAULT 0,"
                             "  prio INTEGER NOT NULL DEFAULT 0,"
@@ -82,8 +84,12 @@ init_connection (struct Plugin *plugin)
                             "  rvalue BIGINT NOT NULL DEFAULT 0,"
                             "  hash BYTEA NOT NULL DEFAULT '',"
                             "  vhash BYTEA NOT NULL DEFAULT '',"
-                            "  value BYTEA NOT NULL DEFAULT '')"
-                            "WITH OIDS"),
+                            "  value BYTEA NOT NULL DEFAULT '',"
+                            "  oid OID NOT NULL DEFAULT 
nextval('gn090_oid_seq'))"),
+    GNUNET_PQ_make_try_execute (
+      "ALTER SEQUENCE gn090_oid_seq OWNED BY gn090.oid"),
+    GNUNET_PQ_make_try_execute (
+      "CREATE INDEX IF NOT EXISTS oid_hash ON gn090 (oid)"),
     GNUNET_PQ_make_try_execute (
       "CREATE INDEX IF NOT EXISTS idx_hash ON gn090 (hash)"),
     GNUNET_PQ_make_try_execute (
diff --git a/src/dht/gnunet-service-dht_clients.c 
b/src/dht/gnunet-service-dht_clients.c
index 1e44c1fad..5eb3115f4 100644
--- a/src/dht/gnunet-service-dht_clients.c
+++ b/src/dht/gnunet-service-dht_clients.c
@@ -488,8 +488,8 @@ handle_dht_local_put (void *cls,
                GNUNET_h2s_full (&dht_msg->key));
   /* give to local clients */
   LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Handling local PUT of %u-bytes for query %s\n",
-       size - sizeof(struct GNUNET_DHT_ClientPutMessage),
+       "Handling local PUT of %lu-bytes for query %s\n",
+       (unsigned long) (size - sizeof(struct GNUNET_DHT_ClientPutMessage)),
        GNUNET_h2s (&dht_msg->key));
   GDS_CLIENTS_handle_reply (GNUNET_TIME_absolute_ntoh (dht_msg->expiration),
                             &dht_msg->key,
@@ -619,7 +619,7 @@ handle_dht_local_get (void *cls,
        "Received GET request for %s from local client %p, xq: %.*s\n",
        GNUNET_h2s (&get->key),
        ch->client,
-       xquery_size,
+       (int) xquery_size,
        xquery);
   LOG_TRAFFIC (GNUNET_ERROR_TYPE_DEBUG,
                "CLIENT-GET %s\n",
diff --git a/src/dht/gnunet-service-dht_datacache.c 
b/src/dht/gnunet-service-dht_datacache.c
index 41b7a3a2b..7eded2152 100644
--- a/src/dht/gnunet-service-dht_datacache.c
+++ b/src/dht/gnunet-service-dht_datacache.c
@@ -94,9 +94,9 @@ GDS_DATACACHE_handle_put (struct GNUNET_TIME_Absolute 
expiration,
                             put_path_length,
                             put_path);
   LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "DATACACHE PUT for key %s [%u] completed (%d) after %u hops\n",
+       "DATACACHE PUT for key %s [%lu] completed (%d) after %u hops\n",
        GNUNET_h2s (key),
-       data_size,
+       (unsigned long) data_size,
        r,
        put_path_length);
 }
diff --git a/src/dht/gnunet-service-dht_neighbours.c 
b/src/dht/gnunet-service-dht_neighbours.c
index b211fca6b..88b0c5d92 100644
--- a/src/dht/gnunet-service-dht_neighbours.c
+++ b/src/dht/gnunet-service-dht_neighbours.c
@@ -2212,8 +2212,8 @@ handle_dht_p2p_get (void *cls,
                                            bg,
                                            peer_bf);
   GDS_CLIENTS_process_get (options
-                           | (GNUNET_OK == forwarded)
-                           ? GNUNET_DHT_RO_LAST_HOP : 0,
+                           | ((GNUNET_OK == forwarded)
+                           ? GNUNET_DHT_RO_LAST_HOP : 0),
                            type,
                            ntohl (get->hop_count),
                            ntohl (get->desired_replication_level),
diff --git a/src/dht/plugin_block_dht.c b/src/dht/plugin_block_dht.c
index f213433ed..a9f336240 100644
--- a/src/dht/plugin_block_dht.c
+++ b/src/dht/plugin_block_dht.c
@@ -195,7 +195,7 @@ block_plugin_dht_get_key (void *cls,
   {
     GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR,
                      "block-dht",
-                     _ ("Size mismatch for block\n"),
+                     _ ("Size mismatch for block with type %u\n"),
                      GNUNET_BLOCK_TYPE_DHT_HELLO);
     return GNUNET_NO;
   }
diff --git a/src/dns/gnunet-dns-monitor.c b/src/dns/gnunet-dns-monitor.c
index d9830baa4..836d65c79 100644
--- a/src/dns/gnunet-dns-monitor.c
+++ b/src/dns/gnunet-dns-monitor.c
@@ -203,7 +203,7 @@ display_record (const struct GNUNET_DNSPARSER_Record 
*record)
     else
     {
       GNUNET_asprintf (&tmp,
-                       "priority %u, weight = %s, port = %u, target = %s",
+                       "priority %u, weight = %u, port = %u, target = %s",
                        (unsigned int) record->data.srv->priority,
                        (unsigned int) record->data.srv->weight,
                        (unsigned int) record->data.srv->port,
diff --git a/src/fragmentation/fragmentation.c 
b/src/fragmentation/fragmentation.c
index 3a7da37e8..36e1c33f4 100644
--- a/src/fragmentation/fragmentation.c
+++ b/src/fragmentation/fragmentation.c
@@ -158,7 +158,7 @@ GNUNET_FRAGMENT_print_ack (const struct 
GNUNET_MessageHeader *ack)
                    sizeof(buf),
                    "%u-%llX",
                    ntohl (fa->fragment_id),
-                   GNUNET_ntohll (fa->bits));
+                   (unsigned long long) GNUNET_ntohll (fa->bits));
   return buf;
 }
 
diff --git a/src/fs/fs_download.c b/src/fs/fs_download.c
index 6154e8be0..d4677b794 100644
--- a/src/fs/fs_download.c
+++ b/src/fs/fs_download.c
@@ -1050,7 +1050,7 @@ process_result_with_request (void *cls,
     GNUNET_asprintf (
       &dc->emsg,
       _ (
-        "Internal error or bogus download URI (expected %u bytes at depth %u 
and offset %llu/%llu, got %u bytes)"),
+        "Internal error or bogus download URI (expected %lu bytes at depth %u 
and offset %llu/%llu, got %lu bytes)"),
       bs,
       dr->depth,
       (unsigned long long) dr->offset,
diff --git a/src/fs/gnunet-daemon-fsprofiler.c 
b/src/fs/gnunet-daemon-fsprofiler.c
index 829906461..fbb7c6028 100644
--- a/src/fs/gnunet-daemon-fsprofiler.c
+++ b/src/fs/gnunet-daemon-fsprofiler.c
@@ -592,14 +592,14 @@ run (void *cls, char *const *args GNUNET_UNUSED,
                                              &replication_level))
     replication_level = 1;
   GNUNET_snprintf (myoptname, sizeof(myoptname),
-                   "DOWNLOAD-PATTERN-%u", my_peerid);
+                   "DOWNLOAD-PATTERN-%llu", my_peerid);
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (cfg,
                                              "FSPROFILER", myoptname,
                                              &download_pattern))
     download_pattern = GNUNET_strdup ("");
   GNUNET_snprintf (myoptname, sizeof(myoptname),
-                   "PUBLISH-PATTERN-%u", my_peerid);
+                   "PUBLISH-PATTERN-%llu", my_peerid);
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_get_value_string (cfg,
                                              "FSPROFILER", myoptname,
diff --git a/src/fs/gnunet-publish.c b/src/fs/gnunet-publish.c
index 91fcd8f8a..dea467669 100644
--- a/src/fs/gnunet-publish.c
+++ b/src/fs/gnunet-publish.c
@@ -475,6 +475,7 @@ uri_ksk_continuation (void *cls,
                       const char *emsg)
 {
   const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv;
+  const struct GNUNET_IDENTITY_PrivateKey *pk;
 
   if (NULL != emsg)
   {
@@ -486,7 +487,10 @@ uri_ksk_continuation (void *cls,
     GNUNET_SCHEDULER_shutdown ();
     return;
   }
-  priv = GNUNET_IDENTITY_ego_get_private_key (namespace);
+  pk = GNUNET_IDENTITY_ego_get_private_key (namespace);
+  if (GNUNET_IDENTITY_TYPE_ECDSA != ntohl (pk->type))
+    return;
+  priv = &pk->ecdsa_key;
   GNUNET_FS_publish_sks (ctx,
                          priv,
                          this_id,
@@ -569,6 +573,7 @@ directory_trim_complete (struct GNUNET_FS_ShareTreeItem 
*directory_scan_result)
 {
   struct GNUNET_FS_FileInformation *fi;
   const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv;
+  const struct GNUNET_IDENTITY_PrivateKey *pk;
 
   fi = get_file_information (directory_scan_result);
   GNUNET_FS_share_tree_free (directory_scan_result);
@@ -586,10 +591,13 @@ directory_trim_complete (struct GNUNET_FS_ShareTreeItem 
*directory_scan_result)
     GNUNET_SCHEDULER_shutdown ();
     return;
   }
-  if (NULL == namespace)
-    priv = NULL;
-  else
-    priv = GNUNET_IDENTITY_ego_get_private_key (namespace);
+  priv = NULL;
+  if (NULL != namespace)
+  {
+    pk = GNUNET_IDENTITY_ego_get_private_key (namespace);
+    GNUNET_assert (GNUNET_IDENTITY_TYPE_ECDSA == ntohl (pk->type));
+    priv = &pk->ecdsa_key;
+  }
   pc = GNUNET_FS_publish_start (ctx,
                                 fi,
                                 priv,
diff --git a/src/gns/Makefile.am b/src/gns/Makefile.am
index 5a9c70997..744ba66ec 100644
--- a/src/gns/Makefile.am
+++ b/src/gns/Makefile.am
@@ -109,6 +109,7 @@ libgnunet_plugin_rest_gns_la_SOURCES = \
   plugin_rest_gns.c
 libgnunet_plugin_rest_gns_la_LIBADD = \
   $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la \
+  $(top_builddir)/src/gnsrecord/libgnunetgnsrecordjson.la \
   libgnunetgns.la \
   $(top_builddir)/src/rest/libgnunetrest.la \
   $(top_builddir)/src/identity/libgnunetidentity.la \
@@ -124,6 +125,7 @@ libgnunet_plugin_gnsrecord_gns_la_SOURCES = \
   plugin_gnsrecord_gns.c
 libgnunet_plugin_gnsrecord_gns_la_LIBADD = \
   $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(LTLIBINTL)
 libgnunet_plugin_gnsrecord_gns_la_LDFLAGS = \
@@ -135,6 +137,7 @@ gnunet_gns_SOURCES = \
 gnunet_gns_LDADD = \
   libgnunetgns.la \
   $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(LIBIDN) $(LIBIDN2) \
   $(GN_LIBINTL)
@@ -144,6 +147,7 @@ gnunet_gns_benchmark_SOURCES = \
 gnunet_gns_benchmark_LDADD = \
   libgnunetgns.la \
   $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(GN_LIBINTL)
 
@@ -247,6 +251,7 @@ libgnunet_plugin_block_gns_la_LIBADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
   $(top_builddir)/src/block/libgnunetblock.la \
   $(top_builddir)/src/block/libgnunetblockgroup.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la  \
   $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la
 libgnunet_plugin_block_gns_la_LDFLAGS = \
   $(GN_LIBINTL) \
diff --git a/src/gns/gns.h b/src/gns/gns.h
index a193632b7..d824742ad 100644
--- a/src/gns/gns.h
+++ b/src/gns/gns.h
@@ -48,7 +48,7 @@ struct LookupMessage
   /**
    * Zone that is to be used for lookup
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey zone;
+  struct GNUNET_IDENTITY_PublicKey zone;
 
   /**
    * Local options for where to look for results
diff --git a/src/gns/gns_api.c b/src/gns/gns_api.c
index bf95bf340..841a0d240 100644
--- a/src/gns/gns_api.c
+++ b/src/gns/gns_api.c
@@ -343,7 +343,7 @@ GNUNET_GNS_lookup_cancel (struct GNUNET_GNS_LookupRequest 
*lr)
 struct GNUNET_GNS_LookupRequest *
 GNUNET_GNS_lookup_limited (struct GNUNET_GNS_Handle *handle,
                            const char *name,
-                           const struct GNUNET_CRYPTO_EcdsaPublicKey *zone,
+                           const struct GNUNET_IDENTITY_PublicKey *zone,
                            uint32_t type,
                            enum GNUNET_GNS_LocalOptions options,
                            uint16_t recursion_depth_limit,
@@ -411,7 +411,7 @@ GNUNET_GNS_lookup_limited (struct GNUNET_GNS_Handle *handle,
 struct GNUNET_GNS_LookupRequest*
 GNUNET_GNS_lookup (struct GNUNET_GNS_Handle *handle,
                    const char *name,
-                   const struct GNUNET_CRYPTO_EcdsaPublicKey *zone,
+                   const struct GNUNET_IDENTITY_PublicKey *zone,
                    uint32_t type,
                    enum GNUNET_GNS_LocalOptions options,
                    GNUNET_GNS_LookupResultProcessor proc,
diff --git a/src/gns/gns_tld_api.c b/src/gns/gns_tld_api.c
index 3ebf07db6..b883662ad 100644
--- a/src/gns/gns_tld_api.c
+++ b/src/gns/gns_tld_api.c
@@ -167,7 +167,7 @@ process_lookup_result (void *cls,
  */
 static void
 lookup_with_public_key (struct GNUNET_GNS_LookupWithTldRequest *ltr,
-                        const struct GNUNET_CRYPTO_EcdsaPublicKey *pkey)
+                        const struct GNUNET_IDENTITY_PublicKey *pkey)
 {
   ltr->lr = GNUNET_GNS_lookup (ltr->gns_handle,
                                ltr->name,
@@ -190,11 +190,11 @@ lookup_with_public_key (struct 
GNUNET_GNS_LookupWithTldRequest *ltr,
  */
 static void
 identity_zone_cb (void *cls,
-                  const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv,
+                  const struct GNUNET_IDENTITY_PrivateKey *priv,
                   const char *ego_name)
 {
   struct GNUNET_GNS_LookupWithTldRequest *ltr = cls;
-  struct GNUNET_CRYPTO_EcdsaPublicKey pkey;
+  struct GNUNET_IDENTITY_PublicKey pkey;
 
   ltr->id_co = NULL;
   if (NULL == priv)
@@ -219,7 +219,7 @@ identity_zone_cb (void *cls,
     ltr->options = GNUNET_GNS_LO_NO_DHT;
   else
     ltr->options = GNUNET_GNS_LO_LOCAL_MASTER;
-  GNUNET_CRYPTO_ecdsa_key_get_public (priv, &pkey);
+  GNUNET_IDENTITY_key_get_public (priv, &pkey);
   lookup_with_public_key (ltr, &pkey);
 }
 
@@ -249,7 +249,7 @@ GNUNET_GNS_lookup_with_tld (struct GNUNET_GNS_Handle 
*handle,
   const char *tld;
   char *dot_tld;
   char *zonestr;
-  struct GNUNET_CRYPTO_EcdsaPublicKey pkey;
+  struct GNUNET_IDENTITY_PublicKey pkey;
 
   ltr = GNUNET_new (struct GNUNET_GNS_LookupWithTldRequest);
   ltr->gns_handle = handle;
@@ -261,8 +261,10 @@ GNUNET_GNS_lookup_with_tld (struct GNUNET_GNS_Handle 
*handle,
   /* start with trivial case: TLD is zkey */
   tld = get_tld (ltr->name);
   if (GNUNET_OK ==
-      GNUNET_CRYPTO_ecdsa_public_key_from_string (tld, strlen (tld), &pkey))
+      GNUNET_IDENTITY_public_key_from_string (tld, &pkey))
   {
+    LOG (GNUNET_ERROR_TYPE_DEBUG,
+         "`%s' seems to be a valid zone key\n", tld);
     eat_tld (ltr->name, tld);
     lookup_with_public_key (ltr, &pkey);
     return ltr;
@@ -281,9 +283,8 @@ GNUNET_GNS_lookup_with_tld (struct GNUNET_GNS_Handle 
*handle,
                                                             &zonestr))
     {
       if (GNUNET_OK !=
-          GNUNET_CRYPTO_ecdsa_public_key_from_string (zonestr,
-                                                      strlen (zonestr),
-                                                      &pkey))
+          GNUNET_IDENTITY_public_key_from_string (zonestr,
+                                                  &pkey))
       {
         GNUNET_log_config_invalid (
           GNUNET_ERROR_TYPE_ERROR,
@@ -304,6 +305,8 @@ GNUNET_GNS_lookup_with_tld (struct GNUNET_GNS_Handle 
*handle,
     }
     GNUNET_free (dot_tld);
   }
+  LOG (GNUNET_ERROR_TYPE_DEBUG,
+       "`%s' should be a valid ego\n", ltr->name);
   ltr->id_co =
     GNUNET_IDENTITY_ego_lookup_by_suffix (ltr->gns_handle->cfg,
                                           ltr->name,
diff --git a/src/gns/gnunet-gns-import.c b/src/gns/gnunet-gns-import.c
index 78db28cab..972fb49cd 100644
--- a/src/gns/gnunet-gns-import.c
+++ b/src/gns/gnunet-gns-import.c
@@ -168,12 +168,17 @@ check_pkey (unsigned int rd_len, const struct 
GNUNET_GNSRECORD_Data *rd,
             char *pk, int *found_rec)
 {
   int i;
+  struct GNUNET_IDENTITY_PublicKey pubkey;
 
   for (i = 0; i < rd_len; i++)
   {
     char *s;
-    if ((GNUNET_GNSRECORD_TYPE_PKEY != rd[i].record_type) ||
-        (rd[i].data_size != sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)) )
+    if (sizeof (uint32_t) > rd[i].data_size)
+      continue;
+    if (GNUNET_OK != GNUNET_GNSRECORD_identity_from_data (rd[i].data,
+                                                          rd[i].data_size,
+                                                          rd[i].record_type,
+                                                          &pubkey))
       continue;
     s = GNUNET_GNSRECORD_value_to_string (rd[i].record_type,
                                           rd[i].data,
diff --git a/src/gns/gnunet-service-gns.c b/src/gns/gnunet-service-gns.c
index 8c5b2d6c4..52300ae3b 100644
--- a/src/gns/gnunet-service-gns.c
+++ b/src/gns/gnunet-service-gns.c
@@ -123,7 +123,7 @@ struct GNS_TopLevelDomain
   /**
    * Public key associated with the @a tld.
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey pkey;
+  struct GNUNET_IDENTITY_PublicKey pkey;
 
   /**
    * Top-level domain as a string, including leading ".".
@@ -177,7 +177,7 @@ static struct GNS_TopLevelDomain *tld_tail;
  */
 int
 GNS_find_tld (const char *tld_str,
-              struct GNUNET_CRYPTO_EcdsaPublicKey *pkey)
+              struct GNUNET_IDENTITY_PublicKey *pkey)
 {
   if ('\0' == *tld_str)
     return GNUNET_NO;
@@ -485,7 +485,7 @@ read_service_conf (void *cls,
                    const char *option,
                    const char *value)
 {
-  struct GNUNET_CRYPTO_EcdsaPublicKey pk;
+  struct GNUNET_IDENTITY_PublicKey pk;
   struct GNS_TopLevelDomain *tld;
 
   (void) cls;
diff --git a/src/gns/gnunet-service-gns.h b/src/gns/gnunet-service-gns.h
index 2a432f8aa..d4fb9ec9f 100644
--- a/src/gns/gnunet-service-gns.h
+++ b/src/gns/gnunet-service-gns.h
@@ -26,6 +26,7 @@
 #ifndef GNUNET_SERVICE_GNS_H
 #define GNUNET_SERVICE_GNS_H
 
+#include "gnunet_identity_service.h"
 
 /**
  * Find GNS zone belonging to TLD @a tld.
@@ -36,7 +37,7 @@
  */
 int
 GNS_find_tld (const char *tld_str,
-              struct GNUNET_CRYPTO_EcdsaPublicKey *pkey);
+              struct GNUNET_IDENTITY_PublicKey *pkey);
 
 
 /**
diff --git a/src/gns/gnunet-service-gns_interceptor.c 
b/src/gns/gnunet-service-gns_interceptor.c
index 19416a506..b53f4af6b 100644
--- a/src/gns/gnunet-service-gns_interceptor.c
+++ b/src/gns/gnunet-service-gns_interceptor.c
@@ -314,7 +314,7 @@ handle_dns_request (void *cls,
 {
   struct GNUNET_DNSPARSER_Packet *p;
   struct InterceptLookupHandle *ilh;
-  struct GNUNET_CRYPTO_EcdsaPublicKey zone;
+  struct GNUNET_IDENTITY_PublicKey zone;
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Hijacked a DNS request. Processing.\n");
diff --git a/src/gns/gnunet-service-gns_resolver.c 
b/src/gns/gnunet-service-gns_resolver.c
index cb75b23c7..d9d0d3099 100644
--- a/src/gns/gnunet-service-gns_resolver.c
+++ b/src/gns/gnunet-service-gns_resolver.c
@@ -173,7 +173,7 @@ struct AuthorityChain
     /**
      * The zone of the GNS authority
      */
-    struct GNUNET_CRYPTO_EcdsaPublicKey gns_authority;
+    struct GNUNET_IDENTITY_PublicKey gns_authority;
 
     struct
     {
@@ -305,7 +305,7 @@ struct GNS_ResolverHandle
   /**
    * The top-level GNS authoritative zone to query
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey authority_zone;
+  struct GNUNET_IDENTITY_PublicKey authority_zone;
 
   /**
    * called when resolution phase finishes
@@ -1251,7 +1251,7 @@ handle_gns_cname_result (struct GNS_ResolverHandle *rh,
   const char *tld;
   struct AuthorityChain *ac;
   int af;
-  struct GNUNET_CRYPTO_EcdsaPublicKey zone;
+  struct GNUNET_IDENTITY_PublicKey zone;
 
   nlen = strlen (cname);
   tld = GNS_get_tld (cname);
@@ -1296,7 +1296,7 @@ handle_gns_cname_result (struct GNS_ResolverHandle *rh,
     {
       GNUNET_asprintf (&res,
                        "%.*s",
-                       strlen (cname) - (strlen (tld) + 1),
+                       (int) (strlen (cname) - (strlen (tld) + 1)),
                        cname);
     }
     else
@@ -1305,7 +1305,7 @@ handle_gns_cname_result (struct GNS_ResolverHandle *rh,
                        "%.*s.%.*s",
                        (int) rh->name_resolution_pos,
                        rh->name,
-                       (int) strlen (cname) - (strlen (tld) + 1),
+                       (int) (strlen (cname) - (strlen (tld) + 1)),
                        cname);
     }
     rh->name_resolution_pos = strlen (res);
@@ -1696,10 +1696,13 @@ recursive_pkey_resolution (struct GNS_ResolverHandle 
*rh,
                            const struct GNUNET_GNSRECORD_Data *rd)
 {
   struct AuthorityChain *ac;
+  struct GNUNET_IDENTITY_PublicKey auth;
 
   /* delegation to another zone */
-  if (sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) !=
-      rd->data_size)
+  if (GNUNET_OK != GNUNET_GNSRECORD_identity_from_data (rd->data,
+                                                        rd->data_size,
+                                                        rd->record_type,
+                                                        &auth))
   {
     GNUNET_break_op (0);
     fail_resolution (rh);
@@ -1709,9 +1712,7 @@ recursive_pkey_resolution (struct GNS_ResolverHandle *rh,
   ac = GNUNET_new (struct AuthorityChain);
   ac->rh = rh;
   ac->gns_authority = GNUNET_YES;
-  GNUNET_memcpy (&ac->authority_info.gns_authority,
-                 rd->data,
-                 sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey));
+  ac->authority_info.gns_authority = auth;
   ac->label = resolver_lookup_get_next_label (rh);
   /* add AC to tail */
   GNUNET_CONTAINER_DLL_insert_tail (rh->ac_head,
@@ -1754,7 +1755,7 @@ recursive_gns2dns_resolution (struct GNS_ResolverHandle 
*rh,
     char *n;
     size_t off;
     struct Gns2DnsPending *gp;
-    struct GNUNET_CRYPTO_EcdsaPublicKey zone;
+    struct GNUNET_IDENTITY_PublicKey zone;
     struct sockaddr_in v4;
     struct sockaddr_in6 v6;
 
@@ -2257,19 +2258,25 @@ handle_gns_resolution_result (void *cls,
         break;
 
       case GNUNET_GNSRECORD_TYPE_PKEY:
+      case GNUNET_GNSRECORD_TYPE_EDKEY:
         {
-          struct GNUNET_CRYPTO_EcdsaPublicKey pub;
-
-          if (rd[i].data_size != sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey))
+          struct GNUNET_IDENTITY_PublicKey pubkey;
+          if (rd[i].data_size < sizeof(uint32_t))
+          {
+            GNUNET_break_op (0);
+            break;
+          }
+          if (GNUNET_OK !=
+              GNUNET_GNSRECORD_identity_from_data (rd[i].data,
+                                                   rd[i].data_size,
+                                                   rd[i].record_type,
+                                                   &pubkey))
           {
             GNUNET_break_op (0);
             break;
           }
-          GNUNET_memcpy (&pub,
-                         rd[i].data,
-                         rd[i].data_size);
           rd_off++;
-          if (GNUNET_GNSRECORD_TYPE_PKEY != rh->record_type)
+          if (rd[i].record_type != rh->record_type)
           {
             /* try to resolve "@" */
             struct AuthorityChain *ac;
@@ -2277,7 +2284,7 @@ handle_gns_resolution_result (void *cls,
             ac = GNUNET_new (struct AuthorityChain);
             ac->rh = rh;
             ac->gns_authority = GNUNET_YES;
-            ac->authority_info.gns_authority = pub;
+            ac->authority_info.gns_authority = pubkey;
             ac->label = GNUNET_strdup (GNUNET_GNS_EMPTY_LABEL_AT);
             GNUNET_CONTAINER_DLL_insert_tail (rh->ac_head,
                                               rh->ac_tail,
@@ -2367,6 +2374,7 @@ handle_gns_resolution_result (void *cls,
     return;
 
   case GNUNET_GNSRECORD_TYPE_PKEY:
+  case GNUNET_GNSRECORD_TYPE_EDKEY:
     GNUNET_break_op (1 == rd_count);  /* PKEY should be unique */
     recursive_pkey_resolution (rh,
                                &rd[0]);
@@ -2469,10 +2477,7 @@ handle_dht_response (void *cls,
     return;
   }
   block = data;
-  if (size !=
-      ntohl (block->purpose.size)
-      + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)
-      + sizeof(struct GNUNET_CRYPTO_EcdsaSignature))
+  if (size != GNUNET_GNSRECORD_block_get_size (block))
   {
     /* how did this pass DHT block validation!? */
     GNUNET_break (0);
@@ -2480,8 +2485,8 @@ handle_dht_response (void *cls,
     return;
   }
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Decrypting DHT block of size %u for `%s', expires %s\n",
-              ntohl (block->purpose.size),
+              "Decrypting DHT block of size %lu for `%s', expires %s\n",
+              GNUNET_GNSRECORD_block_get_size (block),
               rh->name,
               GNUNET_STRINGS_absolute_time_to_string (exp));
   if (GNUNET_OK !=
@@ -2495,8 +2500,8 @@ handle_dht_response (void *cls,
     fail_resolution (rh);
     return;
   }
-  if (0 == GNUNET_TIME_absolute_get_remaining (GNUNET_TIME_absolute_ntoh (
-                                                 block->expiration_time)).
+  if (0 == GNUNET_TIME_absolute_get_remaining (
+        GNUNET_GNSRECORD_block_get_expiration (block)).
       rel_value_us)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -2594,7 +2599,7 @@ handle_namecache_block_response (void *cls,
   struct GNS_ResolverHandle *rh = cls;
   struct AuthorityChain *ac = rh->ac_tail;
   const char *label = ac->label;
-  const struct GNUNET_CRYPTO_EcdsaPublicKey *auth =
+  const struct GNUNET_IDENTITY_PublicKey *auth =
     &ac->authority_info.gns_authority;
   struct GNUNET_HashCode query;
 
@@ -2604,8 +2609,8 @@ handle_namecache_block_response (void *cls,
        ((GNUNET_GNS_LO_LOCAL_MASTER == rh->options) &&
         (ac != rh->ac_head))) &&
       ((NULL == block) ||
-       (0 == GNUNET_TIME_absolute_get_remaining (GNUNET_TIME_absolute_ntoh (
-                                                   block->expiration_time)).
+       (0 == GNUNET_TIME_absolute_get_remaining (
+          GNUNET_GNSRECORD_block_get_expiration (block)).
         rel_value_us)))
   {
     /* namecache knows nothing; try DHT lookup */
@@ -2622,8 +2627,8 @@ handle_namecache_block_response (void *cls,
   }
 
   if ((NULL == block) ||
-      (0 == GNUNET_TIME_absolute_get_remaining (GNUNET_TIME_absolute_ntoh (
-                                                  block->expiration_time)).
+      (0 == GNUNET_TIME_absolute_get_remaining (
+         GNUNET_GNSRECORD_block_get_expiration (block)).
        rel_value_us))
   {
     /* DHT not permitted and no local result, fail */
@@ -2857,7 +2862,7 @@ start_resolver_lookup (void *cls)
  * @return handle to cancel operation
  */
 struct GNS_ResolverHandle *
-GNS_resolver_lookup (const struct GNUNET_CRYPTO_EcdsaPublicKey *zone,
+GNS_resolver_lookup (const struct GNUNET_IDENTITY_PublicKey *zone,
                      uint32_t record_type,
                      const char *name,
                      enum GNUNET_GNS_LocalOptions options,
diff --git a/src/gns/gnunet-service-gns_resolver.h 
b/src/gns/gnunet-service-gns_resolver.h
index 3dab3c91a..b099c5d65 100644
--- a/src/gns/gnunet-service-gns_resolver.h
+++ b/src/gns/gnunet-service-gns_resolver.h
@@ -86,7 +86,7 @@ typedef void
  * @return handle to cancel operation
  */
 struct GNS_ResolverHandle *
-GNS_resolver_lookup (const struct GNUNET_CRYPTO_EcdsaPublicKey *zone,
+GNS_resolver_lookup (const struct GNUNET_IDENTITY_PublicKey *zone,
                      uint32_t record_type,
                      const char *name,
                      enum GNUNET_GNS_LocalOptions options,
diff --git a/src/gns/plugin_block_gns.c b/src/gns/plugin_block_gns.c
index aabedcaac..9b58c9034 100644
--- a/src/gns/plugin_block_gns.c
+++ b/src/gns/plugin_block_gns.c
@@ -145,17 +145,13 @@ block_plugin_gns_evaluate (void *cls,
     return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
   }
   block = reply_block;
-  if (ntohl (block->purpose.size) + sizeof(struct
-                                           GNUNET_CRYPTO_EcdsaSignature)
-      + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) !=
-      reply_block_size)
+  if (GNUNET_GNSRECORD_block_get_size (block) > reply_block_size)
   {
     GNUNET_break_op (0);
     return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
   }
-  GNUNET_CRYPTO_hash (&block->derived_key,
-                      sizeof(block->derived_key),
-                      &h);
+  GNUNET_GNSRECORD_query_from_block (block,
+                                     &h);
   if (0 != GNUNET_memcmp (&h, query))
   {
     GNUNET_break_op (0);
@@ -206,9 +202,8 @@ block_plugin_gns_get_key (void *cls,
     return GNUNET_BLOCK_EVALUATION_RESULT_INVALID;
   }
   block = reply_block;
-  GNUNET_CRYPTO_hash (&block->derived_key,
-                      sizeof(block->derived_key),
-                      key);
+  GNUNET_GNSRECORD_query_from_block (block,
+                                     key);
   return GNUNET_OK;
 }
 
diff --git a/src/gns/plugin_gnsrecord_gns.c b/src/gns/plugin_gnsrecord_gns.c
index 81f2b9eff..a2ad0b905 100644
--- a/src/gns/plugin_gnsrecord_gns.c
+++ b/src/gns/plugin_gnsrecord_gns.c
@@ -50,13 +50,18 @@ gns_value_to_string (void *cls,
                      size_t data_size)
 {
   const char *cdata;
+  struct GNUNET_IDENTITY_PublicKey pk;
 
   switch (type)
   {
   case GNUNET_GNSRECORD_TYPE_PKEY:
-    if (data_size != sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey))
+  case GNUNET_GNSRECORD_TYPE_EDKEY:
+    if (GNUNET_OK != GNUNET_GNSRECORD_identity_from_data (data,
+                                                          data_size,
+                                                          type,
+                                                          &pk))
       return NULL;
-    return GNUNET_CRYPTO_ecdsa_public_key_to_string (data);
+    return GNUNET_IDENTITY_public_key_to_string (&pk);
 
   case GNUNET_GNSRECORD_TYPE_NICK:
     return GNUNET_strndup (data, data_size);
@@ -153,24 +158,35 @@ gns_string_to_value (void *cls,
                      void **data,
                      size_t *data_size)
 {
-  struct GNUNET_CRYPTO_EcdsaPublicKey pkey;
+  struct GNUNET_IDENTITY_PublicKey pk;
+  uint32_t record_type;
 
   if (NULL == s)
     return GNUNET_SYSERR;
   switch (type)
   {
   case GNUNET_GNSRECORD_TYPE_PKEY:
+  case GNUNET_GNSRECORD_TYPE_EDKEY:
     if (GNUNET_OK !=
-        GNUNET_CRYPTO_ecdsa_public_key_from_string (s, strlen (s), &pkey))
+        GNUNET_IDENTITY_public_key_from_string (s, &pk))
     {
       GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                  _ ("Unable to parse PKEY record `%s'\n"),
+                  _ ("Unable to parse zone key record `%s'\n"),
                   s);
       return GNUNET_SYSERR;
     }
-    *data = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
-    GNUNET_memcpy (*data, &pkey, sizeof(pkey));
-    *data_size = sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey);
+    *data_size = GNUNET_IDENTITY_key_get_length (&pk);
+    if (GNUNET_OK != GNUNET_GNSRECORD_data_from_identity (&pk,
+                                                          (char **) data,
+                                                          data_size,
+                                                          &record_type))
+      return GNUNET_SYSERR;
+    if (record_type != type)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                  _("Record type does not match parsed record type\n"));
+      return GNUNET_SYSERR;
+    }
     return GNUNET_OK;
 
   case GNUNET_GNSRECORD_TYPE_NICK:
@@ -301,6 +317,7 @@ static struct
   const char *name;
   uint32_t number;
 } gns_name_map[] = { { "PKEY", GNUNET_GNSRECORD_TYPE_PKEY },
+                     { "EDKEY", GNUNET_GNSRECORD_TYPE_PKEY },
                      { "NICK", GNUNET_GNSRECORD_TYPE_NICK },
                      { "LEHO", GNUNET_GNSRECORD_TYPE_LEHO },
                      { "VPN", GNUNET_GNSRECORD_TYPE_VPN },
diff --git a/src/gns/plugin_rest_gns.c b/src/gns/plugin_rest_gns.c
index 6ec921f70..2ccb5be2b 100644
--- a/src/gns/plugin_rest_gns.c
+++ b/src/gns/plugin_rest_gns.c
@@ -28,6 +28,7 @@
 #include "gnunet_rest_lib.h"
 #include "gnunet_json_lib.h"
 #include "gnunet_gnsrecord_lib.h"
+#include "gnunet_gnsrecord_json_lib.h"
 #include "gnunet_gns_service.h"
 #include "microhttpd.h"
 #include <jansson.h>
@@ -264,7 +265,7 @@ handle_gns_response (void *cls,
     return;
   }
 
-  result_obj = GNUNET_JSON_from_gnsrecord (handle->name, rd, rd_count);
+  result_obj = GNUNET_GNSRECORD_JSON_from_gnsrecord (handle->name, rd, 
rd_count);
 
   result = json_dumps (result_obj, 0);
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Result %s\n", result);
diff --git a/src/gns/test_gns_dht_lookup.sh b/src/gns/test_gns_dht_lookup.sh
index d5516fd03..8d446c507 100755
--- a/src/gns/test_gns_dht_lookup.sh
+++ b/src/gns/test_gns_dht_lookup.sh
@@ -26,6 +26,7 @@ gnunet-arm -i datastore -c test_gns_lookup.conf
 gnunet-identity -C $OTHER_EGO -c test_gns_lookup.conf
 DELEGATED_PKEY=$(gnunet-identity -d -c test_gns_lookup.conf | grep $OTHER_EGO 
| awk '{print $3}')
 gnunet-identity -C $MY_EGO -c test_gns_lookup.conf
+echo "MYEGO: $MY_EGO OTHER_EGO: $DELEGATED_PKEY"
 gnunet-namestore -p -z $MY_EGO -a -n b -t PKEY -V $DELEGATED_PKEY -e never -c 
test_gns_lookup.conf
 #This works
 gnunet-namestore -p -z $OTHER_EGO -a -n www -t A -V $TEST_IP -e never -c 
test_gns_lookup.conf
diff --git a/src/gnsrecord/Makefile.am b/src/gnsrecord/Makefile.am
index 2e6eca7ba..ab604eb92 100644
--- a/src/gnsrecord/Makefile.am
+++ b/src/gnsrecord/Makefile.am
@@ -1,5 +1,5 @@
 # This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include
+AM_CPPFLAGS = -I$(top_srcdir)/src/include ${MHD_CFLAGS}
 
 plugindir = $(libdir)/gnunet
 
@@ -30,12 +30,14 @@ TESTS = \
 endif
 
 lib_LTLIBRARIES = \
-  libgnunetgnsrecord.la
+  libgnunetgnsrecord.la \
+  libgnunetgnsrecordjson.la
 
 gnunet_gnsrecord_tvg_SOURCES = \
  gnunet-gnsrecord-tvg.c
 gnunet_gnsrecord_tvg_LDADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
   libgnunetgnsrecord.la \
   $(GN_LIBINTL)
 
@@ -47,11 +49,26 @@ libgnunetgnsrecord_la_SOURCES = \
   gnsrecord_misc.c
 libgnunetgnsrecord_la_LIBADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
+  $(LIBGCRYPT_LIBS) \
   $(GN_LIBINTL)
+libgnunetgnsrecord_la_DEPENDENCIES = \
+  $(top_builddir)/src/identity/libgnunetidentity.la
 libgnunetgnsrecord_la_LDFLAGS = \
   $(GN_LIB_LDFLAGS)  \
   -version-info 0:0:0
 
+libgnunetgnsrecordjson_la_SOURCES = \
+  json_gnsrecord.c
+libgnunetgnsrecordjson_la_LIBADD = \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
+  libgnunetgnsrecord.la \
+  -ljansson \
+  $(GN_LIBINTL)
+libgnunetgnsrecordjson_la_LDFLAGS = \
+  $(GN_LIB_LDFLAGS)  \
+  -version-info 0:0:0
 
 plugin_LTLIBRARIES = \
   libgnunet_plugin_gnsrecord_dns.la
diff --git a/src/gnsrecord/gnsrecord_crypto.c b/src/gnsrecord/gnsrecord_crypto.c
index c8919760a..9c551a936 100644
--- a/src/gnsrecord/gnsrecord_crypto.c
+++ b/src/gnsrecord/gnsrecord_crypto.c
@@ -37,6 +37,61 @@
 
 #define LOG(kind, ...) GNUNET_log_from (kind, "gnsrecord", __VA_ARGS__)
 
+ssize_t
+ecdsa_symmetric_decrypt (
+  const void *block,
+  size_t size,
+  const unsigned char *key,
+  const unsigned char *ctr,
+  void *result)
+{
+  gcry_cipher_hd_t handle;
+  int rc;
+
+  GNUNET_assert (0 == gcry_cipher_open (&handle, GCRY_CIPHER_AES256,
+                                        GCRY_CIPHER_MODE_CTR, 0));
+  rc = gcry_cipher_setkey (handle,
+                           key,
+                           GNUNET_CRYPTO_AES_KEY_LENGTH);
+  GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY));
+  rc = gcry_cipher_setctr (handle,
+                           ctr,
+                           GNUNET_CRYPTO_AES_KEY_LENGTH / 2);
+  GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY));
+  GNUNET_assert (0 == gcry_cipher_decrypt (handle, result, size, block, size));
+  gcry_cipher_close (handle);
+  return size;
+}
+
+
+
+ssize_t
+ecdsa_symmetric_encrypt (
+  const void *block,
+  size_t size,
+  const unsigned char *key,
+  const unsigned char *ctr,
+  void *result)
+{
+  gcry_cipher_hd_t handle;
+  int rc;
+
+  GNUNET_assert (0 == gcry_cipher_open (&handle, GCRY_CIPHER_AES256,
+                                        GCRY_CIPHER_MODE_CTR, 0));
+  rc = gcry_cipher_setkey (handle,
+                           key,
+                           GNUNET_CRYPTO_AES_KEY_LENGTH);
+  GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY));
+  rc = gcry_cipher_setctr (handle,
+                           ctr,
+                           GNUNET_CRYPTO_AES_KEY_LENGTH / 2);
+  GNUNET_assert ((0 == rc) || ((char) rc == GPG_ERR_WEAK_KEY));
+  GNUNET_assert (0 == gcry_cipher_encrypt (handle, result, size, block, size));
+  gcry_cipher_close (handle);
+  return size;
+}
+
+
 
 /**
  * Derive session key and iv from label and public key.
@@ -47,25 +102,31 @@
  * @param pub public key to use for KDF
  */
 static void
-derive_block_aes_key (struct GNUNET_CRYPTO_SymmetricInitializationVector *iv,
-                      struct GNUNET_CRYPTO_SymmetricSessionKey *skey,
+derive_block_aes_key (unsigned char *ctr,
+                      unsigned char *key,
                       const char *label,
+                      uint64_t exp,
                       const struct GNUNET_CRYPTO_EcdsaPublicKey *pub)
 {
   static const char ctx_key[] = "gns-aes-ctx-key";
   static const char ctx_iv[] = "gns-aes-ctx-iv";
 
-  GNUNET_CRYPTO_kdf (skey, sizeof(struct GNUNET_CRYPTO_SymmetricSessionKey),
+  GNUNET_CRYPTO_kdf (key, GNUNET_CRYPTO_AES_KEY_LENGTH,
                      ctx_key, strlen (ctx_key),
                      pub, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey),
                      label, strlen (label),
                      NULL, 0);
-  GNUNET_CRYPTO_kdf (iv, sizeof(struct
-                                GNUNET_CRYPTO_SymmetricInitializationVector),
+  memset (ctr, 0, GNUNET_CRYPTO_AES_KEY_LENGTH / 2);
+  /** 4 byte nonce **/
+  GNUNET_CRYPTO_kdf (ctr, 4,
                      ctx_iv, strlen (ctx_iv),
                      pub, sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey),
                      label, strlen (label),
                      NULL, 0);
+  /** Expiration time 64 bit. **/
+  memcpy (ctr + 4, &exp, sizeof (exp));
+  /** Set counter part to 1 **/
+  ctr[15] |= 0x01;
 }
 
 
@@ -81,19 +142,20 @@ derive_block_aes_key (struct 
GNUNET_CRYPTO_SymmetricInitializationVector *iv,
  * @return NULL on error (block too large)
  */
 static struct GNUNET_GNSRECORD_Block *
-block_create (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key,
-              const struct GNUNET_CRYPTO_EcdsaPublicKey *pkey,
-              struct GNUNET_TIME_Absolute expire,
-              const char *label,
-              const struct GNUNET_GNSRECORD_Data *rd,
-              unsigned int rd_count)
+block_create_ecdsa (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key,
+                    const struct GNUNET_CRYPTO_EcdsaPublicKey *pkey,
+                    struct GNUNET_TIME_Absolute expire,
+                    const char *label,
+                    const struct GNUNET_GNSRECORD_Data *rd,
+                    unsigned int rd_count)
 {
   ssize_t payload_len = GNUNET_GNSRECORD_records_get_size (rd_count,
                                                            rd);
   struct GNUNET_GNSRECORD_Block *block;
+  struct GNUNET_GNSRECORD_EcdsaBlock *ecblock;
   struct GNUNET_CRYPTO_EcdsaPrivateKey *dkey;
-  struct GNUNET_CRYPTO_SymmetricInitializationVector iv;
-  struct GNUNET_CRYPTO_SymmetricSessionKey skey;
+  unsigned char ctr[GNUNET_CRYPTO_AES_KEY_LENGTH / 2];
+  unsigned char skey[GNUNET_CRYPTO_AES_KEY_LENGTH];
   struct GNUNET_GNSRECORD_Data rdc[GNUNET_NZL (rd_count)];
   uint32_t rd_count_nbo;
   struct GNUNET_TIME_Absolute now;
@@ -140,35 +202,38 @@ block_create (const struct GNUNET_CRYPTO_EcdsaPrivateKey 
*key,
     block = GNUNET_malloc (sizeof(struct GNUNET_GNSRECORD_Block)
                            + sizeof(uint32_t)
                            + payload_len);
-    block->purpose.size = htonl (sizeof(uint32_t)
-                                 + payload_len
-                                 + sizeof(struct
-                                          GNUNET_CRYPTO_EccSignaturePurpose)
-                                 + sizeof(struct GNUNET_TIME_AbsoluteNBO));
-    block->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_GNS_RECORD_SIGN);
-    block->expiration_time = GNUNET_TIME_absolute_hton (expire);
+    ecblock = &block->ecdsa_block;
+    block->type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
+    ecblock->purpose.size = htonl (sizeof(uint32_t)
+                                   + payload_len
+                                   + sizeof(struct
+                                            GNUNET_CRYPTO_EccSignaturePurpose)
+                                   + sizeof(struct GNUNET_TIME_AbsoluteNBO));
+    ecblock->purpose.purpose = htonl 
(GNUNET_SIGNATURE_PURPOSE_GNS_RECORD_SIGN);
+    ecblock->expiration_time = GNUNET_TIME_absolute_hton (expire);
     /* encrypt and sign */
     dkey = GNUNET_CRYPTO_ecdsa_private_key_derive (key,
                                                    label,
                                                    "gns");
     GNUNET_CRYPTO_ecdsa_key_get_public (dkey,
-                                        &block->derived_key);
-    derive_block_aes_key (&iv,
-                          &skey,
+                                        &ecblock->derived_key);
+    derive_block_aes_key (ctr,
+                          skey,
                           label,
+                          ecblock->expiration_time.abs_value_us__,
                           pkey);
     GNUNET_break (payload_len + sizeof(uint32_t) ==
-                  GNUNET_CRYPTO_symmetric_encrypt (payload,
-                                                   payload_len
-                                                   + sizeof(uint32_t),
-                                                   &skey,
-                                                   &iv,
-                                                   &block[1]));
+                  ecdsa_symmetric_encrypt (payload,
+                                           payload_len
+                                           + sizeof(uint32_t),
+                                           skey,
+                                           ctr,
+                                           &ecblock[1]));
   }
   if (GNUNET_OK !=
       GNUNET_CRYPTO_ecdsa_sign_ (dkey,
-                                 &block->purpose,
-                                 &block->signature))
+                                 &ecblock->purpose,
+                                 &ecblock->signature))
   {
     GNUNET_break (0);
     GNUNET_free (dkey);
@@ -191,7 +256,7 @@ block_create (const struct GNUNET_CRYPTO_EcdsaPrivateKey 
*key,
  * @return NULL on error (block too large)
  */
 struct GNUNET_GNSRECORD_Block *
-GNUNET_GNSRECORD_block_create (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key,
+GNUNET_GNSRECORD_block_create (const struct GNUNET_IDENTITY_PrivateKey *key,
                                struct GNUNET_TIME_Absolute expire,
                                const char *label,
                                const struct GNUNET_GNSRECORD_Data *rd,
@@ -199,14 +264,21 @@ GNUNET_GNSRECORD_block_create (const struct 
GNUNET_CRYPTO_EcdsaPrivateKey *key,
 {
   struct GNUNET_CRYPTO_EcdsaPublicKey pkey;
 
-  GNUNET_CRYPTO_ecdsa_key_get_public (key,
-                                      &pkey);
-  return block_create (key,
-                       &pkey,
-                       expire,
-                       label,
-                       rd,
-                       rd_count);
+  switch (ntohl (key->type))
+  {
+  case GNUNET_GNSRECORD_TYPE_PKEY:
+    GNUNET_CRYPTO_ecdsa_key_get_public (&key->ecdsa_key,
+                                        &pkey);
+    return block_create_ecdsa (&key->ecdsa_key,
+                               &pkey,
+                               expire,
+                               label,
+                               rd,
+                               rd_count);
+  default:
+    GNUNET_assert (0);
+  }
+  return NULL;
 }
 
 
@@ -240,12 +312,19 @@ struct KeyCacheLine
  * @return NULL on error (block too large)
  */
 struct GNUNET_GNSRECORD_Block *
-GNUNET_GNSRECORD_block_create2 (const struct GNUNET_CRYPTO_EcdsaPrivateKey 
*key,
+GNUNET_GNSRECORD_block_create2 (const struct GNUNET_IDENTITY_PrivateKey *pkey,
                                 struct GNUNET_TIME_Absolute expire,
                                 const char *label,
                                 const struct GNUNET_GNSRECORD_Data *rd,
                                 unsigned int rd_count)
 {
+  const struct GNUNET_CRYPTO_EcdsaPrivateKey *key;
+
+  if (GNUNET_IDENTITY_TYPE_ECDSA != ntohl (pkey->type))
+  {
+    return NULL; // FIXME
+  }
+  key = &pkey->ecdsa_key;
 #define CSIZE 64
   static struct KeyCacheLine cache[CSIZE];
   struct KeyCacheLine *line;
@@ -261,12 +340,12 @@ GNUNET_GNSRECORD_block_create2 (const struct 
GNUNET_CRYPTO_EcdsaPrivateKey *key,
                                         &line->pkey);
   }
 #undef CSIZE
-  return block_create (key,
-                       &line->pkey,
-                       expire,
-                       label,
-                       rd,
-                       rd_count);
+  return block_create_ecdsa (key,
+                             &line->pkey,
+                             expire,
+                             label,
+                             rd,
+                             rd_count);
 }
 
 
@@ -277,40 +356,40 @@ GNUNET_GNSRECORD_block_create2 (const struct 
GNUNET_CRYPTO_EcdsaPrivateKey *key,
  * @param block block to verify
  * @return #GNUNET_OK if the signature is valid
  */
-int
+enum GNUNET_GenericReturnValue
 GNUNET_GNSRECORD_block_verify (const struct GNUNET_GNSRECORD_Block *block)
 {
+  const struct GNUNET_CRYPTO_EcdsaPublicKey *key;
+  const struct GNUNET_GNSRECORD_EcdsaBlock *ecblock;
+
+  if (GNUNET_GNSRECORD_TYPE_PKEY != ntohl (block->type))
+  {
+    GNUNET_break (0);
+    return GNUNET_NO;
+  }
+  ecblock = &block->ecdsa_block;
+  key = &ecblock->derived_key;
+
   return GNUNET_CRYPTO_ecdsa_verify_ (GNUNET_SIGNATURE_PURPOSE_GNS_RECORD_SIGN,
-                                      &block->purpose,
-                                      &block->signature,
-                                      &block->derived_key);
+                                      &ecblock->purpose,
+                                      &ecblock->signature,
+                                      key);
 }
 
 
-/**
- * Decrypt block.
- *
- * @param block block to decrypt
- * @param zone_key public key of the zone
- * @param label the name for the records
- * @param proc function to call with the result
- * @param proc_cls closure for proc
- * @return #GNUNET_OK on success, #GNUNET_SYSERR if the block was
- *        not well-formed
- */
-int
-GNUNET_GNSRECORD_block_decrypt (const struct GNUNET_GNSRECORD_Block *block,
-                                const struct
-                                GNUNET_CRYPTO_EcdsaPublicKey *zone_key,
-                                const char *label,
-                                GNUNET_GNSRECORD_RecordCallback proc,
-                                void *proc_cls)
+enum GNUNET_GenericReturnValue
+block_decrypt_ecdsa (const struct GNUNET_GNSRECORD_EcdsaBlock *block,
+                     const struct
+                     GNUNET_CRYPTO_EcdsaPublicKey *zone_key,
+                     const char *label,
+                     GNUNET_GNSRECORD_RecordCallback proc,
+                     void *proc_cls)
 {
   size_t payload_len = ntohl (block->purpose.size)
                        - sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose)
                        - sizeof(struct GNUNET_TIME_AbsoluteNBO);
-  struct GNUNET_CRYPTO_SymmetricInitializationVector iv;
-  struct GNUNET_CRYPTO_SymmetricSessionKey skey;
+  unsigned char ctr[GNUNET_CRYPTO_AES_KEY_LENGTH / 2];
+  unsigned char key[GNUNET_CRYPTO_AES_KEY_LENGTH];
 
   if (ntohl (block->purpose.size) <
       sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose)
@@ -319,18 +398,19 @@ GNUNET_GNSRECORD_block_decrypt (const struct 
GNUNET_GNSRECORD_Block *block,
     GNUNET_break_op (0);
     return GNUNET_SYSERR;
   }
-  derive_block_aes_key (&iv,
-                        &skey,
+  derive_block_aes_key (ctr,
+                        key,
                         label,
+                        block->expiration_time.abs_value_us__,
                         zone_key);
   {
     char payload[payload_len];
     uint32_t rd_count;
 
     GNUNET_break (payload_len ==
-                  GNUNET_CRYPTO_symmetric_decrypt (&block[1], payload_len,
-                                                   &skey, &iv,
-                                                   payload));
+                  ecdsa_symmetric_decrypt (&block[1], payload_len,
+                                           key, ctr,
+                                           payload));
     GNUNET_memcpy (&rd_count,
                    payload,
                    sizeof(uint32_t));
@@ -425,6 +505,39 @@ GNUNET_GNSRECORD_block_decrypt (const struct 
GNUNET_GNSRECORD_Block *block,
 }
 
 
+/**
+ * Decrypt block.
+ *
+ * @param block block to decrypt
+ * @param zone_key public key of the zone
+ * @param label the name for the records
+ * @param proc function to call with the result
+ * @param proc_cls closure for proc
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR if the block was
+ *        not well-formed
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_block_decrypt (const struct GNUNET_GNSRECORD_Block *block,
+                                const struct
+                                GNUNET_IDENTITY_PublicKey *zone_key,
+                                const char *label,
+                                GNUNET_GNSRECORD_RecordCallback proc,
+                                void *proc_cls)
+{
+  const struct GNUNET_CRYPTO_EcdsaPublicKey *key;
+
+  if (GNUNET_IDENTITY_TYPE_ECDSA != ntohl (zone_key->type))
+  {
+    return GNUNET_NO;
+  }
+  key = &zone_key->ecdsa_key;
+
+  return block_decrypt_ecdsa (&block->ecdsa_block,
+                              key, label, proc, proc_cls);
+
+}
+
+
 /**
  * Calculate the DHT query for a given @a label in a given @a zone.
  *
@@ -434,17 +547,24 @@ GNUNET_GNSRECORD_block_decrypt (const struct 
GNUNET_GNSRECORD_Block *block,
  */
 void
 GNUNET_GNSRECORD_query_from_private_key (const struct
-                                         GNUNET_CRYPTO_EcdsaPrivateKey *zone,
+                                         GNUNET_IDENTITY_PrivateKey *zone,
                                          const char *label,
                                          struct GNUNET_HashCode *query)
 {
-  struct GNUNET_CRYPTO_EcdsaPublicKey pub;
-
-  GNUNET_CRYPTO_ecdsa_key_get_public (zone,
-                                      &pub);
-  GNUNET_GNSRECORD_query_from_public_key (&pub,
-                                          label,
-                                          query);
+  struct GNUNET_IDENTITY_PublicKey pub;
+  switch (ntohl (zone->type))
+  {
+  case GNUNET_GNSRECORD_TYPE_PKEY:
+
+    GNUNET_IDENTITY_key_get_public (zone,
+                                    &pub);
+    GNUNET_GNSRECORD_query_from_public_key (&pub,
+                                            label,
+                                            query);
+    break;
+  default:
+    GNUNET_assert (0);
+  }
 }
 
 
@@ -457,18 +577,27 @@ GNUNET_GNSRECORD_query_from_private_key (const struct
  */
 void
 GNUNET_GNSRECORD_query_from_public_key (const struct
-                                        GNUNET_CRYPTO_EcdsaPublicKey *pub,
+                                        GNUNET_IDENTITY_PublicKey *pub,
                                         const char *label,
                                         struct GNUNET_HashCode *query)
 {
-  struct GNUNET_CRYPTO_EcdsaPublicKey pd;
-  GNUNET_CRYPTO_ecdsa_public_key_derive (pub,
-                                         label,
-                                         "gns",
-                                         &pd);
-  GNUNET_CRYPTO_hash (&pd,
-                      sizeof(pd),
-                      query);
+  struct GNUNET_IDENTITY_PublicKey pd;
+
+  switch (ntohl (pub->type))
+  {
+  case GNUNET_GNSRECORD_TYPE_PKEY:
+    pd.type = pub->type;
+    GNUNET_CRYPTO_ecdsa_public_key_derive (&pub->ecdsa_key,
+                                           label,
+                                           "gns",
+                                           &pd.ecdsa_key);
+    GNUNET_CRYPTO_hash (&pd.ecdsa_key,
+                        sizeof (pd.ecdsa_key),
+                        query);
+    break;
+  default:
+    GNUNET_assert (0);
+  }
 }
 
 
diff --git a/src/gnsrecord/gnsrecord_misc.c b/src/gnsrecord/gnsrecord_misc.c
index 5061f8493..82c38f19a 100644
--- a/src/gnsrecord/gnsrecord_misc.c
+++ b/src/gnsrecord/gnsrecord_misc.c
@@ -62,14 +62,14 @@ GNUNET_GNSRECORD_string_to_lowercase (const char *src)
  * @return string form; will be overwritten by next call to 
#GNUNET_GNSRECORD_z2s
  */
 const char *
-GNUNET_GNSRECORD_z2s (const struct GNUNET_CRYPTO_EcdsaPublicKey *z)
+GNUNET_GNSRECORD_z2s (const struct GNUNET_IDENTITY_PublicKey *z)
 {
-  static char buf[sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey) * 8];
+  static char buf[sizeof(struct GNUNET_IDENTITY_PublicKey) * 8];
   char *end;
 
   end = GNUNET_STRINGS_data_to_string ((const unsigned char *) z,
                                        sizeof(struct
-                                              GNUNET_CRYPTO_EcdsaPublicKey),
+                                              GNUNET_IDENTITY_PublicKey),
                                        buf, sizeof(buf));
   if (NULL == end)
   {
@@ -99,7 +99,7 @@ GNUNET_GNSRECORD_records_cmp (const struct 
GNUNET_GNSRECORD_Data *a,
   if (a->record_type != b->record_type)
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
-         "Record type %lu != %lu\n", a->record_type, b->record_type);
+         "Record type %u != %u\n", a->record_type, b->record_type);
     return GNUNET_NO;
   }
   if ((a->expiration_time != b->expiration_time) &&
@@ -107,15 +107,15 @@ GNUNET_GNSRECORD_records_cmp (const struct 
GNUNET_GNSRECORD_Data *a,
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
          "Expiration time %llu != %llu\n",
-         a->expiration_time,
-         b->expiration_time);
+         (unsigned long long) a->expiration_time,
+         (unsigned long long) b->expiration_time);
     return GNUNET_NO;
   }
   if ((a->flags & GNUNET_GNSRECORD_RF_RCMP_FLAGS)
       != (b->flags & GNUNET_GNSRECORD_RF_RCMP_FLAGS))
   {
     LOG (GNUNET_ERROR_TYPE_DEBUG,
-         "Flags %lu (%lu) != %lu (%lu)\n", a->flags,
+         "Flags %u (%u) != %u (%u)\n", a->flags,
          a->flags & GNUNET_GNSRECORD_RF_RCMP_FLAGS, b->flags,
          b->flags & GNUNET_GNSRECORD_RF_RCMP_FLAGS);
     return GNUNET_NO;
@@ -236,12 +236,12 @@ GNUNET_GNSRECORD_is_expired (const struct 
GNUNET_GNSRECORD_Data *rd)
  *         key in an encoding suitable for DNS labels.
  */
 const char *
-GNUNET_GNSRECORD_pkey_to_zkey (const struct GNUNET_CRYPTO_EcdsaPublicKey *pkey)
+GNUNET_GNSRECORD_pkey_to_zkey (const struct GNUNET_IDENTITY_PublicKey *pkey)
 {
   static char ret[128];
   char *pkeys;
 
-  pkeys = GNUNET_CRYPTO_ecdsa_public_key_to_string (pkey);
+  pkeys = GNUNET_IDENTITY_public_key_to_string (pkey);
   GNUNET_snprintf (ret,
                    sizeof(ret),
                    "%s",
@@ -262,15 +262,140 @@ GNUNET_GNSRECORD_pkey_to_zkey (const struct 
GNUNET_CRYPTO_EcdsaPublicKey *pkey)
  */
 int
 GNUNET_GNSRECORD_zkey_to_pkey (const char *zkey,
-                               struct GNUNET_CRYPTO_EcdsaPublicKey *pkey)
+                               struct GNUNET_IDENTITY_PublicKey *pkey)
 {
   if (GNUNET_OK !=
-      GNUNET_CRYPTO_ecdsa_public_key_from_string (zkey,
-                                                  strlen (zkey),
-                                                  pkey))
+      GNUNET_IDENTITY_public_key_from_string (zkey,
+                                              pkey))
     return GNUNET_SYSERR;
   return GNUNET_OK;
 }
 
 
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_identity_from_data (const char *data,
+                                     size_t data_size,
+                                     uint32_t type,
+                                     struct GNUNET_IDENTITY_PublicKey *key)
+{
+  if (GNUNET_NO == GNUNET_GNSRECORD_is_zonekey_type (type))
+    return GNUNET_SYSERR;
+  if (data_size > sizeof (struct GNUNET_IDENTITY_PublicKey))
+    return GNUNET_SYSERR;
+  return (GNUNET_IDENTITY_read_key_from_buffer (key, data, data_size) ==
+          data_size?
+          GNUNET_OK :
+          GNUNET_SYSERR);
+}
+
+
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_data_from_identity (const struct
+                                     GNUNET_IDENTITY_PublicKey *key,
+                                     char **data,
+                                     size_t *data_size,
+                                     uint32_t *type)
+{
+  *type = ntohl (key->type);
+  *data_size = GNUNET_IDENTITY_key_get_length (key);
+  if (0 == *data_size)
+    return GNUNET_SYSERR;
+  *data = GNUNET_malloc (*data_size);
+  return (GNUNET_IDENTITY_write_key_to_buffer (key, *data, *data_size) ==
+          *data_size?
+          GNUNET_OK :
+          GNUNET_SYSERR);
+}
+
+
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_is_zonekey_type (uint32_t type)
+{
+  switch (type)
+  {
+  case GNUNET_GNSRECORD_TYPE_PKEY:
+  case GNUNET_GNSRECORD_TYPE_EDKEY:
+    return GNUNET_YES;
+  default:
+    return GNUNET_NO;
+  }
+}
+
+
+size_t
+GNUNET_GNSRECORD_block_get_size (const struct GNUNET_GNSRECORD_Block *block)
+{
+  switch (ntohl (block->type))
+  {
+  case GNUNET_GNSRECORD_TYPE_PKEY:
+    return sizeof (uint32_t)   /* zone type */
+           + sizeof (block->ecdsa_block)   /* EcdsaBlock */
+           + ntohl (block->ecdsa_block.purpose.size)   /* Length of signed 
data */
+           - sizeof (block->ecdsa_block.purpose);   /* Purpose already in 
EcdsaBlock */
+    break;
+  default:
+    return 0;
+  }
+  return 0;
+}
+
+
+struct GNUNET_TIME_Absolute
+GNUNET_GNSRECORD_block_get_expiration (const struct
+                                       GNUNET_GNSRECORD_Block *block)
+{
+
+  switch (ntohl (block->type))
+  {
+  case GNUNET_GNSRECORD_TYPE_PKEY:
+    return GNUNET_TIME_absolute_ntoh (block->ecdsa_block.expiration_time);
+  default:
+    return GNUNET_TIME_absolute_get_zero_ ();
+  }
+  return GNUNET_TIME_absolute_get_zero_ ();
+
+}
+
+
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_query_from_block (const struct GNUNET_GNSRECORD_Block *block,
+                                   struct GNUNET_HashCode *query)
+{
+  switch (ntohl (block->type))
+  {
+  case GNUNET_GNSRECORD_TYPE_PKEY:
+    GNUNET_CRYPTO_hash (&block->ecdsa_block.derived_key,
+                        sizeof (block->ecdsa_block.derived_key),
+                        query);
+    return GNUNET_OK;
+  default:
+    return GNUNET_SYSERR;
+  }
+  return GNUNET_SYSERR;
+
+}
+
+
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_record_to_identity_key (const struct GNUNET_GNSRECORD_Data 
*rd,
+                                         struct GNUNET_IDENTITY_PublicKey *key)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Got record of type %u\n",
+              rd->record_type);
+  switch (rd->record_type)
+  {
+  case GNUNET_GNSRECORD_TYPE_PKEY:
+    key->type = htonl (rd->record_type);
+    memcpy (&key->ecdsa_key, rd->data, sizeof (key->ecdsa_key));
+    return GNUNET_OK;
+  default:
+    return GNUNET_SYSERR;
+  }
+  return GNUNET_SYSERR;
+
+
+}
+
+
 /* end of gnsrecord_misc.c */
diff --git a/src/gnsrecord/gnunet-gnsrecord-tvg.c 
b/src/gnsrecord/gnunet-gnsrecord-tvg.c
index 789ff8aa3..47b13bdab 100644
--- a/src/gnsrecord/gnunet-gnsrecord-tvg.c
+++ b/src/gnsrecord/gnunet-gnsrecord-tvg.c
@@ -90,28 +90,38 @@ run (void *cls,
   struct GNUNET_TIME_Absolute exp_abs = GNUNET_TIME_absolute_get ();
   struct GNUNET_GNSRECORD_Block *rrblock;
   char *bdata;
-  struct GNUNET_CRYPTO_EcdsaPrivateKey id_priv;
-  struct GNUNET_CRYPTO_EcdsaPublicKey id_pub;
-  struct GNUNET_CRYPTO_EcdsaPrivateKey pkey_data_p;
-  struct GNUNET_CRYPTO_EcdsaPublicKey pkey_data;
+  struct GNUNET_IDENTITY_PrivateKey id_priv;
+  struct GNUNET_IDENTITY_PublicKey id_pub;
+  struct GNUNET_IDENTITY_PrivateKey pkey_data_p;
+  struct GNUNET_IDENTITY_PublicKey pkey_data;
   void *data;
   size_t data_size;
   char *rdata;
   size_t rdata_size;
-
-  GNUNET_CRYPTO_ecdsa_key_create (&id_priv);
-  GNUNET_CRYPTO_ecdsa_key_get_public (&id_priv,
-                                      &id_pub);
-  fprintf (stdout, "Zone private key (d, little-endian scalar):\n");
-  print_bytes (&id_priv, sizeof(id_priv), 0);
+  char ztld[128];
+
+  id_priv.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
+  GNUNET_CRYPTO_ecdsa_key_create (&id_priv.ecdsa_key);
+  GNUNET_IDENTITY_key_get_public (&id_priv,
+                                  &id_pub);
+  fprintf (stdout, "Zone private key (d, little-endian, with ztype 
prepended):\n");
+  print_bytes (&id_priv, GNUNET_IDENTITY_key_get_length (&id_pub), 8); //FIXME 
length for privkey?
+  fprintf (stdout, "\n");
+  fprintf (stdout, "Zone identifier (zid):\n");
+  print_bytes (&id_pub, GNUNET_IDENTITY_key_get_length (&id_pub), 8);
+  GNUNET_STRINGS_data_to_string (&id_pub,
+                                 GNUNET_IDENTITY_key_get_length (&id_pub),
+                                 ztld,
+                                 sizeof (ztld));
   fprintf (stdout, "\n");
-  fprintf (stdout, "Zone public key (zk):\n");
-  print_bytes (&id_pub, sizeof(id_pub), 0);
+  fprintf (stdout, "Encoded zone identifier (zkl = zTLD):\n");
+  fprintf (stdout, "%s\n", ztld);
   fprintf (stdout, "\n");
 
-  GNUNET_CRYPTO_ecdsa_key_create (&pkey_data_p);
-  GNUNET_CRYPTO_ecdsa_key_get_public (&pkey_data_p,
-                                      &pkey_data);
+  pkey_data_p.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
+  GNUNET_CRYPTO_ecdsa_key_create (&pkey_data_p.ecdsa_key);
+  GNUNET_IDENTITY_key_get_public (&pkey_data_p,
+                                  &pkey_data);
   fprintf (stdout,
            "Label: %s\nRRCOUNT: %d\n\n", TEST_RECORD_LABEL, TEST_RRCOUNT);
   memset (rd, 0, sizeof (struct GNUNET_GNSRECORD_Data) * 2);
@@ -147,19 +157,20 @@ run (void *cls,
                                            TEST_RECORD_LABEL,
                                            rd,
                                            TEST_RRCOUNT);
-  size_t bdata_size = ntohl (rrblock->purpose.size)
+  size_t bdata_size = ntohl (rrblock->ecdsa_block.purpose.size)
                       - sizeof(struct GNUNET_CRYPTO_EccSignaturePurpose)
                       - sizeof(struct GNUNET_TIME_AbsoluteNBO);
-  size_t rrblock_size = ntohl (rrblock->purpose.size)
+  size_t ecblock_size = ntohl (rrblock->ecdsa_block.purpose.size)
                         + sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)
                         + sizeof(struct GNUNET_CRYPTO_EcdsaSignature);
+  size_t block_size = ecblock_size + sizeof (uint32_t);
 
-  bdata = (char*) &rrblock[1];
+  bdata = (char*) &(&rrblock->ecdsa_block)[1];
   fprintf (stdout, "BDATA:\n");
   print_bytes (bdata, bdata_size, 8);
   fprintf (stdout, "\n");
   fprintf (stdout, "RRBLOCK:\n");
-  print_bytes (rrblock, rrblock_size, 8);
+  print_bytes (rrblock, block_size, 8);
   fprintf (stdout, "\n");
 
 }
diff --git a/src/json/json_gnsrecord.c b/src/gnsrecord/json_gnsrecord.c
similarity index 72%
rename from src/json/json_gnsrecord.c
rename to src/gnsrecord/json_gnsrecord.c
index 7e11aba94..068ff48c1 100644
--- a/src/json/json_gnsrecord.c
+++ b/src/gnsrecord/json_gnsrecord.c
@@ -26,6 +26,7 @@
 #include "platform.h"
 #include "gnunet_util_lib.h"
 #include "gnunet_json_lib.h"
+#include "gnunet_gnsrecord_lib.h"
 
 #define GNUNET_JSON_GNSRECORD_VALUE "value"
 #define GNUNET_JSON_GNSRECORD_RECORD_DATA "data"
@@ -258,7 +259,7 @@ clean_gnsrecordobject (void *cls, struct 
GNUNET_JSON_Specification *spec)
  * @return JSON Specification
  */
 struct GNUNET_JSON_Specification
-GNUNET_JSON_spec_gnsrecord (struct GNUNET_GNSRECORD_Data **rd,
+GNUNET_GNSRECORD_JSON_spec_gnsrecord (struct GNUNET_GNSRECORD_Data **rd,
                             unsigned int *rd_count,
                             char **name)
 {
@@ -277,3 +278,114 @@ GNUNET_JSON_spec_gnsrecord (struct GNUNET_GNSRECORD_Data 
**rd,
                                            .size_ptr = NULL };
   return ret;
 }
+
+
+/**
+ * Convert GNS record to JSON.
+ *
+ * @param rname name of record
+ * @param rd record data
+ * @return corresponding JSON encoding
+ */
+json_t *
+GNUNET_GNSRECORD_JSON_from_gnsrecord (const char*rname,
+                            const struct GNUNET_GNSRECORD_Data *rd,
+                            unsigned int rd_count)
+{
+  struct GNUNET_TIME_Absolute abs_exp;
+  struct GNUNET_TIME_Relative rel_exp;
+  const char *expiration_time_str;
+  const char *record_type_str;
+  char *value_str;
+  json_t *data;
+  json_t *record;
+  json_t *records;
+
+  data = json_object ();
+  if (NULL == data)
+  {
+    GNUNET_break (0);
+    return NULL;
+  }
+  if (0 !=
+      json_object_set_new (data,
+                           "record_name",
+                           json_string (rname)))
+  {
+    GNUNET_break (0);
+    json_decref (data);
+    return NULL;
+  }
+  records = json_array ();
+  if (NULL == records)
+  {
+    GNUNET_break (0);
+    json_decref (data);
+    return NULL;
+  }
+  for (int i = 0; i < rd_count; i++)
+  {
+    value_str = GNUNET_GNSRECORD_value_to_string (rd[i].record_type,
+                                                  rd[i].data,
+                                                  rd[i].data_size);
+    if (GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION & rd[i].flags)
+    {
+      rel_exp.rel_value_us = rd[i].expiration_time;
+      expiration_time_str = GNUNET_STRINGS_relative_time_to_string (rel_exp,
+                                                                    GNUNET_NO);
+    }
+    else
+    {
+      abs_exp.abs_value_us = rd[i].expiration_time;
+      expiration_time_str = GNUNET_STRINGS_absolute_time_to_string (abs_exp);
+    }
+    record_type_str = GNUNET_GNSRECORD_number_to_typename (rd[i].record_type);
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Packing %s %s %s %d\n",
+                value_str, record_type_str, expiration_time_str, rd[i].flags);
+    record = json_pack ("{s:s,s:s,s:s,s:b,s:b,s:b,s:b}",
+                        "value",
+                        value_str,
+                        "record_type",
+                        record_type_str,
+                        "expiration_time",
+                        expiration_time_str,
+                        "private",
+                        rd[i].flags & GNUNET_GNSRECORD_RF_PRIVATE,
+                        "relative_expiration",
+                        rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION,
+                        "supplemental",
+                        rd[i].flags & GNUNET_GNSRECORD_RF_SUPPLEMENTAL,
+                        "shadow",
+                        rd[i].flags & GNUNET_GNSRECORD_RF_SHADOW_RECORD);
+    GNUNET_free (value_str);
+    if (NULL == record)
+    {
+      GNUNET_break (0);
+      json_decref (records);
+      json_decref (data);
+      return NULL;
+    }
+    if (0 !=
+        json_array_append_new (records,
+                               record))
+    {
+      GNUNET_break (0);
+      json_decref (records);
+      json_decref (data);
+      return NULL;
+    }
+  }
+  if (0 !=
+      json_object_set_new (data,
+                           "data",
+                           records))
+  {
+    GNUNET_break (0);
+    json_decref (data);
+    return NULL;
+  }
+  return data;
+}
+
+
diff --git a/src/gnsrecord/perf_gnsrecord_crypto.c 
b/src/gnsrecord/perf_gnsrecord_crypto.c
index eb4633f75..d9a3c20cf 100644
--- a/src/gnsrecord/perf_gnsrecord_crypto.c
+++ b/src/gnsrecord/perf_gnsrecord_crypto.c
@@ -73,7 +73,7 @@ run (void *cls,
   struct GNUNET_GNSRECORD_Data *s_rd;
   const char *s_name;
   struct GNUNET_TIME_Absolute start_time;
-  struct GNUNET_CRYPTO_EcdsaPrivateKey privkey;
+  struct GNUNET_IDENTITY_PrivateKey privkey;
   struct GNUNET_TIME_Absolute expire;
 
   (void) cls;
@@ -81,7 +81,8 @@ run (void *cls,
   (void) cfgfile;
   (void) cfg;
   expire = GNUNET_TIME_absolute_get ();
-  GNUNET_CRYPTO_ecdsa_key_create (&privkey);
+  privkey.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
+  GNUNET_CRYPTO_ecdsa_key_create (&privkey.ecdsa_key);
 
   /* test block creation */
   s_name = "DUMMY.dummy.gnunet";
diff --git a/src/gnsrecord/plugin_gnsrecord_dns.c 
b/src/gnsrecord/plugin_gnsrecord_dns.c
index 9ac6fb9e6..bde9944e2 100644
--- a/src/gnsrecord/plugin_gnsrecord_dns.c
+++ b/src/gnsrecord/plugin_gnsrecord_dns.c
@@ -100,7 +100,7 @@ dns_value_to_string (void *cls,
         return NULL;
       }
       GNUNET_asprintf (&result,
-                       "rname=%s mname=%s %lu,%lu,%lu,%lu,%lu",
+                       "rname=%s mname=%s %u,%u,%u,%u,%u",
                        soa->rname,
                        soa->mname,
                        soa->serial,
diff --git a/src/gnsrecord/test_gnsrecord_crypto.c 
b/src/gnsrecord/test_gnsrecord_crypto.c
index b67e9a123..d541f3076 100644
--- a/src/gnsrecord/test_gnsrecord_crypto.c
+++ b/src/gnsrecord/test_gnsrecord_crypto.c
@@ -100,17 +100,18 @@ run (void *cls,
      const struct GNUNET_CONFIGURATION_Handle *cfg)
 {
   struct GNUNET_GNSRECORD_Block *block;
-  struct GNUNET_CRYPTO_EcdsaPublicKey pubkey;
+  struct GNUNET_IDENTITY_PublicKey pubkey;
   struct GNUNET_HashCode query_pub;
   struct GNUNET_HashCode query_priv;
   struct GNUNET_TIME_Absolute expire = GNUNET_TIME_absolute_get ();
-  struct GNUNET_CRYPTO_EcdsaPrivateKey privkey;
+  struct GNUNET_IDENTITY_PrivateKey privkey;
 
 
-  GNUNET_CRYPTO_ecdsa_key_create (&privkey);
+  privkey.type = htonl (GNUNET_GNSRECORD_TYPE_PKEY);
+  GNUNET_CRYPTO_ecdsa_key_create (&privkey.ecdsa_key);
   /* get public key */
-  GNUNET_CRYPTO_ecdsa_key_get_public (&privkey,
-                                      &pubkey);
+  GNUNET_IDENTITY_key_get_public (&privkey,
+                                  &pubkey);
 
   /* test query derivation */
   GNUNET_GNSRECORD_query_from_private_key (&privkey,
diff --git a/src/identity/gnunet-identity.c b/src/identity/gnunet-identity.c
index d0f5546f3..a01cd1ed7 100644
--- a/src/identity/gnunet-identity.c
+++ b/src/identity/gnunet-identity.c
@@ -65,6 +65,11 @@ static unsigned int verbose;
  */
 static int quiet;
 
+/**
+ * Was "eddsa" specified?
+ */
+static int type_eddsa;
+
 /**
  * -C option
  */
@@ -108,7 +113,7 @@ static struct GNUNET_IDENTITY_Operation *delete_op;
 /**
  * Private key from command line option, or NULL.
  */
-struct GNUNET_CRYPTO_EcdsaPrivateKey pk;
+struct GNUNET_IDENTITY_PrivateKey pk;
 
 /**
  * Value to return from #main().
@@ -197,7 +202,7 @@ delete_finished (void *cls,
  */
 static void
 create_finished (void *cls,
-                 const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+                 const struct GNUNET_IDENTITY_PrivateKey *pk,
                  const char *emsg)
 {
   struct GNUNET_IDENTITY_Operation **op = cls;
@@ -212,16 +217,16 @@ create_finished (void *cls,
   }
   else if (verbose)
   {
-    struct GNUNET_CRYPTO_EcdsaPublicKey pub;
+    struct GNUNET_IDENTITY_PublicKey pub;
     char *pubs;
 
-    GNUNET_CRYPTO_ecdsa_key_get_public (pk, &pub);
-    pubs = GNUNET_CRYPTO_ecdsa_public_key_to_string (&pub);
+    GNUNET_IDENTITY_key_get_public (pk, &pub);
+    pubs = GNUNET_IDENTITY_public_key_to_string (&pub);
     if (private_keys)
     {
       char *privs;
 
-      privs = GNUNET_CRYPTO_ecdsa_private_key_to_string (pk);
+      privs = GNUNET_IDENTITY_private_key_to_string (pk);
       fprintf (stdout, "%s - %s\n", pubs, privs);
       GNUNET_free (privs);
     }
@@ -293,7 +298,7 @@ print_ego (void *cls,
            void **ctx,
            const char *identifier)
 {
-  struct GNUNET_CRYPTO_EcdsaPublicKey pk;
+  struct GNUNET_IDENTITY_PublicKey pk;
   char *s;
   char *privs;
 
@@ -342,8 +347,8 @@ print_ego (void *cls,
                      set_ego)) )
     return;
   GNUNET_IDENTITY_ego_get_public_key (ego, &pk);
-  s = GNUNET_CRYPTO_ecdsa_public_key_to_string (&pk);
-  privs = GNUNET_CRYPTO_ecdsa_private_key_to_string (
+  s = GNUNET_IDENTITY_public_key_to_string (&pk);
+  privs = GNUNET_IDENTITY_private_key_to_string (
     GNUNET_IDENTITY_ego_get_private_key (ego));
   if ((monitor) || (NULL != identifier))
   {
@@ -357,9 +362,16 @@ print_ego (void *cls,
     else
     {
       if (private_keys)
-        fprintf (stdout, "%s - %s - %s\n", identifier, s, privs);
+        fprintf (stdout, "%s - %s - %s - %s\n",
+                 identifier, s, privs,
+                 (ntohl (pk.type) == GNUNET_IDENTITY_TYPE_ECDSA) ?
+                 "ECDSA" : "EdDSA");
       else
-        fprintf (stdout, "%s - %s\n", identifier, s);
+        fprintf (stdout, "%s - %s - %s\n",
+                 identifier, s,
+                 (ntohl (pk.type) == GNUNET_IDENTITY_TYPE_ECDSA) ?
+                 "ECDSA" : "EdDSA");
+
     }
   }
   GNUNET_free (privs);
@@ -407,11 +419,12 @@ run (void *cls,
                                      strlen (privkey_ego),
                                      &pk,
                                      sizeof(struct
-                                            GNUNET_CRYPTO_EcdsaPrivateKey));
+                                            GNUNET_IDENTITY_PrivateKey));
       create_op =
         GNUNET_IDENTITY_create (sh,
                                 create_ego,
                                 &pk,
+                                0, // Ignored
                                 &create_finished,
                                 &create_op);
     }
@@ -420,6 +433,9 @@ run (void *cls,
         GNUNET_IDENTITY_create (sh,
                                 create_ego,
                                 NULL,
+                                (type_eddsa) ?
+                                GNUNET_IDENTITY_TYPE_EDDSA :
+                                GNUNET_IDENTITY_TYPE_ECDSA,
                                 &create_finished,
                                 &create_op);
   }
@@ -456,6 +472,11 @@ main (int argc, char *const *argv)
                                  gettext_noop (
                                    "set the private key for the identity to 
PRIVATE_KEY (use together with -C)"),
                                  &privkey_ego),
+    GNUNET_GETOPT_option_flag ('X',
+                               "eddsa",
+                               gettext_noop (
+                                 "generate an EdDSA identity. (use together 
with -C) EXPERIMENTAL"),
+                               &type_eddsa),
     GNUNET_GETOPT_option_flag ('d',
                                "display",
                                gettext_noop ("display all egos"),
diff --git a/src/identity/gnunet-service-identity.c 
b/src/identity/gnunet-service-identity.c
index bdacf3ba0..6cdb1c2f7 100644
--- a/src/identity/gnunet-service-identity.c
+++ b/src/identity/gnunet-service-identity.c
@@ -57,7 +57,7 @@ struct Ego
   /**
    * Private key of the ego.
    */
-  struct GNUNET_CRYPTO_EcdsaPrivateKey pk;
+  struct GNUNET_IDENTITY_PrivateKey pk;
 
   /**
    * String identifier for the ego.
@@ -538,8 +538,8 @@ handle_get_default_message (void *cls,
  * @return 0 if the keys are equal
  */
 static int
-key_cmp (const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk1,
-         const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk2)
+key_cmp (const struct GNUNET_IDENTITY_PrivateKey *pk1,
+         const struct GNUNET_IDENTITY_PrivateKey *pk2)
 {
   return GNUNET_memcmp (pk1, pk2);
 }
@@ -738,10 +738,10 @@ handle_create_message (void *cls,
   send_result_code (client, 0, NULL);
   fn = get_ego_filename (ego);
   (void) GNUNET_DISK_directory_create_for_file (fn);
-  if (sizeof(struct GNUNET_CRYPTO_EcdsaPrivateKey) !=
+  if (sizeof(struct GNUNET_IDENTITY_PrivateKey) !=
       GNUNET_DISK_fn_write (fn,
                             &crm->private_key,
-                            sizeof(struct GNUNET_CRYPTO_EcdsaPrivateKey),
+                            sizeof(struct GNUNET_IDENTITY_PrivateKey),
                             GNUNET_DISK_PERM_USER_READ
                             | GNUNET_DISK_PERM_USER_WRITE))
     GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "write", fn);
@@ -1038,6 +1038,67 @@ handle_delete_message (void *cls, const struct 
DeleteMessage *dm)
 }
 
 
+static int
+read_from_file (const char *filename,
+                void *buf,
+                size_t buf_size)
+{
+  int fd;
+  struct stat sb;
+
+  fd = open (filename,
+             O_RDONLY);
+  if (-1 == fd)
+  {
+    memset (buf,
+            0,
+            buf_size);
+    return GNUNET_SYSERR;
+  }
+  if (0 != fstat (fd,
+                  &sb))
+  {
+    GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
+                              "stat",
+                              filename);
+    GNUNET_assert (0 == close (fd));
+    memset (buf,
+            0,
+            buf_size);
+    return GNUNET_SYSERR;
+  }
+  if (sb.st_size != buf_size)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+                "File `%s' has wrong size (%llu), expected %llu bytes\n",
+                filename,
+                (unsigned long long) sb.st_size,
+                (unsigned long long) buf_size);
+    GNUNET_assert (0 == close (fd));
+    memset (buf,
+            0,
+            buf_size);
+    return GNUNET_SYSERR;
+  }
+  if (buf_size !=
+      read (fd,
+            buf,
+            buf_size))
+  {
+    GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING,
+                              "read",
+                              filename);
+    GNUNET_assert (0 == close (fd));
+    memset (buf,
+            0,
+            buf_size);
+    return GNUNET_SYSERR;
+  }
+  GNUNET_assert (0 == close (fd));
+  return GNUNET_OK;
+}
+
+
 /**
  * Process the given file from the "EGODIR".  Parses the file
  * and creates the respective 'struct Ego' in memory.
@@ -1063,9 +1124,9 @@ process_ego_file (void *cls,
   }
   ego = GNUNET_new (struct Ego);
   if (GNUNET_OK !=
-      GNUNET_CRYPTO_ecdsa_key_from_file (filename,
-                                         GNUNET_NO,
-                                         &ego->pk))
+      read_from_file (filename,
+                      &ego->pk,
+                      sizeof (ego->pk)))
   {
     GNUNET_free (ego);
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
diff --git a/src/identity/identity.h b/src/identity/identity.h
index ef638fa36..11c5883bc 100644
--- a/src/identity/identity.h
+++ b/src/identity/identity.h
@@ -30,6 +30,44 @@
 
 #include "gnunet_common.h"
 
+/**
+ * Handle for an ego.
+ */
+struct GNUNET_IDENTITY_Ego
+{
+  /**
+   * Hash of the private key of this ego.
+   */
+  struct GNUNET_HashCode id;
+
+  /**
+   * The identity key pair
+   */
+  struct GNUNET_IDENTITY_PublicKey pub;
+
+  /**
+   * The identity key pair
+   */
+  struct GNUNET_IDENTITY_PrivateKey pk;
+
+  /**
+   * Current name associated with this ego.
+   */
+  char *name;
+
+  /**
+   * Client context associated with this ego.
+   */
+  void *ctx;
+
+  /**
+   * Set to true once @e pub was initialized
+   */
+  bool pub_initialized;
+};
+
+
+
 
 GNUNET_NETWORK_STRUCT_BEGIN
 
@@ -95,7 +133,7 @@ struct UpdateMessage
   /**
    * The private key
    */
-  struct GNUNET_CRYPTO_EcdsaPrivateKey private_key;
+  struct GNUNET_IDENTITY_PrivateKey private_key;
 
   /* followed by 0-terminated ego name */
 };
@@ -151,7 +189,7 @@ struct SetDefaultMessage
   /**
    * The private key
    */
-  struct GNUNET_CRYPTO_EcdsaPrivateKey private_key;
+  struct GNUNET_IDENTITY_PrivateKey private_key;
 
   /* followed by 0-terminated service name */
 };
@@ -181,7 +219,7 @@ struct CreateRequestMessage
   /**
    * The private key
    */
-  struct GNUNET_CRYPTO_EcdsaPrivateKey private_key;
+  struct GNUNET_IDENTITY_PrivateKey private_key;
 
   /* followed by 0-terminated identity name */
 };
@@ -239,42 +277,5 @@ struct DeleteMessage
 
 GNUNET_NETWORK_STRUCT_END
 
-/**
- * Handle for an ego.
- */
-struct GNUNET_IDENTITY_Ego
-{
-  /**
-   * Hash of the private key of this ego.
-   */
-  struct GNUNET_HashCode id;
-
-  /**
-   * Private key associated with this ego.
-   */
-  struct GNUNET_CRYPTO_EcdsaPrivateKey pk;
-
-  /**
-   * Public key associated with this ego. Initialized on demand.
-   * Always use #GNUNET_IDENTITY_ego_get_public_key() to obtain.
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey pub;
-
-  /**
-   * Current name associated with this ego.
-   */
-  char *name;
-
-  /**
-   * Client context associated with this ego.
-   */
-  void *ctx;
-
-  /**
-   * Set to true once @e pub was initialized
-   */
-  bool pub_initialized;
-};
-
 
 #endif
diff --git a/src/identity/identity_api.c b/src/identity/identity_api.c
index f7aca1655..64c088923 100644
--- a/src/identity/identity_api.c
+++ b/src/identity/identity_api.c
@@ -74,7 +74,7 @@ struct GNUNET_IDENTITY_Operation
   /**
    * Private key to return to @e create_cont, or NULL.
    */
-  struct GNUNET_CRYPTO_EcdsaPrivateKey pk;
+  struct GNUNET_IDENTITY_PrivateKey pk;
 
   /**
    * Continuation to invoke with the result of the transmission for
@@ -157,13 +157,12 @@ GNUNET_IDENTITY_ego_get_anonymous ()
 {
   static struct GNUNET_IDENTITY_Ego anon;
   static int setup;
-  struct GNUNET_CRYPTO_EcdsaPublicKey pub;
 
   if (setup)
     return &anon;
-  anon.pk = *GNUNET_CRYPTO_ecdsa_key_get_anonymous ();
-  GNUNET_CRYPTO_ecdsa_key_get_public (&anon.pk,
-                                      &pub);
+  anon.pk.type = htonl (GNUNET_IDENTITY_TYPE_ECDSA);
+  anon.pub.type = htonl (GNUNET_IDENTITY_TYPE_ECDSA);
+  anon.pk.ecdsa_key = *GNUNET_CRYPTO_ecdsa_key_get_anonymous ();
   GNUNET_CRYPTO_hash (&anon.pk,
                       sizeof(anon.pk),
                       &anon.id);
@@ -172,6 +171,51 @@ GNUNET_IDENTITY_ego_get_anonymous ()
 }
 
 
+enum GNUNET_GenericReturnValue
+GNUNET_IDENTITY_key_get_public (const struct
+                                GNUNET_IDENTITY_PrivateKey *privkey,
+                                struct GNUNET_IDENTITY_PublicKey *key)
+{
+  key->type = privkey->type;
+  switch (ntohl (privkey->type))
+  {
+  case GNUNET_IDENTITY_TYPE_ECDSA:
+    GNUNET_CRYPTO_ecdsa_key_get_public (&privkey->ecdsa_key,
+                                        &key->ecdsa_key);
+    break;
+  case GNUNET_IDENTITY_TYPE_EDDSA:
+    GNUNET_CRYPTO_eddsa_key_get_public (&privkey->eddsa_key,
+                                        &key->eddsa_key);
+    break;
+  default:
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  return GNUNET_OK;
+}
+
+
+static int
+private_key_create (enum GNUNET_IDENTITY_KeyType ktype,
+                    struct GNUNET_IDENTITY_PrivateKey *key)
+{
+  key->type = htonl (ktype);
+  switch (ktype)
+  {
+  case GNUNET_IDENTITY_TYPE_ECDSA:
+    GNUNET_CRYPTO_ecdsa_key_create (&key->ecdsa_key);
+    break;
+  case GNUNET_IDENTITY_TYPE_EDDSA:
+    GNUNET_CRYPTO_eddsa_key_create (&key->eddsa_key);
+    break;
+  default:
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  return GNUNET_OK;
+}
+
+
 /**
  * Try again to connect to the identity service.
  *
@@ -591,7 +635,7 @@ GNUNET_IDENTITY_connect (const struct 
GNUNET_CONFIGURATION_Handle *cfg,
  * @param ego the ego
  * @return associated ECC key, valid as long as the ego is valid
  */
-const struct GNUNET_CRYPTO_EcdsaPrivateKey *
+const struct GNUNET_IDENTITY_PrivateKey *
 GNUNET_IDENTITY_ego_get_private_key (const struct GNUNET_IDENTITY_Ego *ego)
 {
   return &ego->pk;
@@ -606,12 +650,11 @@ GNUNET_IDENTITY_ego_get_private_key (const struct 
GNUNET_IDENTITY_Ego *ego)
  */
 void
 GNUNET_IDENTITY_ego_get_public_key (struct GNUNET_IDENTITY_Ego *ego,
-                                    struct GNUNET_CRYPTO_EcdsaPublicKey *pk)
+                                    struct GNUNET_IDENTITY_PublicKey *pk)
 {
   if (GNUNET_NO == ego->pub_initialized)
   {
-    GNUNET_CRYPTO_ecdsa_key_get_public (&ego->pk,
-                                        &ego->pub);
+    GNUNET_IDENTITY_key_get_public (&ego->pk, &ego->pub);
     ego->pub_initialized = GNUNET_YES;
   }
   *pk = ego->pub;
@@ -710,20 +753,11 @@ GNUNET_IDENTITY_set (struct GNUNET_IDENTITY_Handle *h,
 }
 
 
-/**
- * Create a new identity with the given name.
- *
- * @param h identity service to use
- * @param name desired name
- * @param privkey desired private key or NULL to create one
- * @param cont function to call with the result (will only be called once)
- * @param cont_cls closure for @a cont
- * @return handle to abort the operation
- */
 struct GNUNET_IDENTITY_Operation *
 GNUNET_IDENTITY_create (struct GNUNET_IDENTITY_Handle *h,
                         const char *name,
-                        const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey,
+                        const struct GNUNET_IDENTITY_PrivateKey *privkey,
+                        enum GNUNET_IDENTITY_KeyType ktype,
                         GNUNET_IDENTITY_CreateContinuation cont,
                         void *cont_cls)
 {
@@ -749,7 +783,10 @@ GNUNET_IDENTITY_create (struct GNUNET_IDENTITY_Handle *h,
   crm->name_len = htons (slen);
   crm->reserved = htons (0);
   if (NULL == privkey)
-    GNUNET_CRYPTO_ecdsa_key_create (&crm->private_key);
+  {
+    GNUNET_assert (GNUNET_OK ==
+                   private_key_create (ktype, &crm->private_key));
+  }
   else
     crm->private_key = *privkey;
   op->pk = crm->private_key;
@@ -917,4 +954,316 @@ GNUNET_IDENTITY_disconnect (struct GNUNET_IDENTITY_Handle 
*h)
 }
 
 
+ssize_t
+private_key_get_length (const struct GNUNET_IDENTITY_PrivateKey *key)
+{
+  switch (ntohl (key->type))
+  {
+  case GNUNET_IDENTITY_TYPE_ECDSA:
+    return sizeof (key->type) + sizeof (key->ecdsa_key);
+    break;
+  case GNUNET_IDENTITY_TYPE_EDDSA:
+    return sizeof (key->type) + sizeof (key->eddsa_key);
+    break;
+  default:
+    GNUNET_break (0);
+  }
+  return -1;
+}
+
+
+ssize_t
+GNUNET_IDENTITY_key_get_length (const struct GNUNET_IDENTITY_PublicKey *key)
+{
+  switch (ntohl (key->type))
+  {
+  case GNUNET_IDENTITY_TYPE_ECDSA:
+    return sizeof (key->type) + sizeof (key->ecdsa_key);
+    break;
+  case GNUNET_IDENTITY_TYPE_EDDSA:
+    return sizeof (key->type) + sizeof (key->eddsa_key);
+    break;
+  default:
+    GNUNET_break (0);
+  }
+  return -1;
+}
+
+
+ssize_t
+GNUNET_IDENTITY_read_key_from_buffer (struct GNUNET_IDENTITY_PublicKey *key,
+                                      const void*buffer,
+                                      size_t len)
+{
+  if (len < sizeof (key->type))
+    return -1;
+  GNUNET_memcpy (&(key->type), buffer, sizeof (key->type));
+  const ssize_t length = GNUNET_IDENTITY_key_get_length (key);
+  if (len < length)
+    return -1;
+  if (length < 0)
+    return -2;
+  GNUNET_memcpy (&(key->ecdsa_key), buffer + sizeof (key->type), length
+                 - sizeof (key->type));
+  return length;
+}
+
+
+ssize_t
+GNUNET_IDENTITY_write_key_to_buffer (const struct
+                                     GNUNET_IDENTITY_PublicKey *key,
+                                     void*buffer,
+                                     size_t len)
+{
+  const ssize_t length = GNUNET_IDENTITY_key_get_length (key);
+  if (len < length)
+    return -1;
+  if (length < 0)
+    return -2;
+  GNUNET_memcpy (buffer, key, length);
+  return length;
+}
+
+
+ssize_t
+GNUNET_IDENTITY_signature_get_length (const struct
+                                      GNUNET_IDENTITY_Signature *sig)
+{
+  switch (ntohl (sig->type))
+  {
+  case GNUNET_IDENTITY_TYPE_ECDSA:
+    return sizeof (sig->type) + sizeof (sig->ecdsa_signature);
+    break;
+  case GNUNET_IDENTITY_TYPE_EDDSA:
+    return sizeof (sig->type) + sizeof (sig->eddsa_signature);
+    break;
+  default:
+    GNUNET_break (0);
+  }
+  return -1;
+}
+
+
+ssize_t
+GNUNET_IDENTITY_read_signature_from_buffer (struct
+                                            GNUNET_IDENTITY_Signature *sig,
+                                            const void*buffer,
+                                            size_t len)
+{
+  if (len < sizeof (sig->type))
+    return -1;
+  GNUNET_memcpy (&(sig->type), buffer, sizeof (sig->type));
+  const ssize_t length = GNUNET_IDENTITY_signature_get_length (sig);
+  if (len < length)
+    return -1;
+  if (length < 0)
+    return -2;
+  GNUNET_memcpy (&(sig->ecdsa_signature), buffer + sizeof (sig->type), length
+                 - sizeof (sig->type));
+  return length;
+}
+
+
+ssize_t
+GNUNET_IDENTITY_write_signature_to_buffer (const struct
+                                           GNUNET_IDENTITY_Signature *sig,
+                                           void*buffer,
+                                           size_t len)
+{
+  const ssize_t length = GNUNET_IDENTITY_signature_get_length (sig);
+  if (len < length)
+    return -1;
+  if (length < 0)
+    return -2;
+  GNUNET_memcpy (buffer, &(sig->type), sizeof (sig->type));
+  GNUNET_memcpy (buffer + sizeof (sig->type), &(sig->ecdsa_signature), length
+                 - sizeof (sig->type));
+  return length;
+}
+
+
+int
+GNUNET_IDENTITY_sign_ (const struct
+                       GNUNET_IDENTITY_PrivateKey *priv,
+                       const struct
+                       GNUNET_CRYPTO_EccSignaturePurpose *purpose,
+                       struct GNUNET_IDENTITY_Signature *sig)
+{
+  sig->type = priv->type;
+  switch (ntohl (priv->type))
+  {
+  case GNUNET_IDENTITY_TYPE_ECDSA:
+    return GNUNET_CRYPTO_ecdsa_sign_ (&(priv->ecdsa_key), purpose,
+                                      &(sig->ecdsa_signature));
+    break;
+  case GNUNET_IDENTITY_TYPE_EDDSA:
+    return GNUNET_CRYPTO_eddsa_sign_ (&(priv->eddsa_key), purpose,
+                                      &(sig->eddsa_signature));
+    break;
+  default:
+    GNUNET_break (0);
+  }
+
+  return GNUNET_SYSERR;
+}
+
+
+int
+GNUNET_IDENTITY_signature_verify_ (uint32_t purpose,
+                                   const struct
+                                   GNUNET_CRYPTO_EccSignaturePurpose *validate,
+                                   const struct GNUNET_IDENTITY_Signature *sig,
+                                   const struct GNUNET_IDENTITY_PublicKey *pub)
+{
+  /* check type matching of 'sig' and 'pub' */
+  GNUNET_assert (ntohl (pub->type) == ntohl (sig->type));
+  switch (ntohl (pub->type))
+  {
+  case GNUNET_IDENTITY_TYPE_ECDSA:
+    return GNUNET_CRYPTO_ecdsa_verify_ (purpose, validate,
+                                        &(sig->ecdsa_signature),
+                                        &(pub->ecdsa_key));
+    break;
+  case GNUNET_IDENTITY_TYPE_EDDSA:
+    return GNUNET_CRYPTO_eddsa_verify_ (purpose, validate,
+                                        &(sig->eddsa_signature),
+                                        &(pub->eddsa_key));
+    break;
+  default:
+    GNUNET_break (0);
+  }
+
+  return GNUNET_SYSERR;
+}
+
+
+ssize_t
+GNUNET_IDENTITY_encrypt (const void *block,
+                         size_t size,
+                         const struct GNUNET_IDENTITY_PublicKey *pub,
+                         struct GNUNET_CRYPTO_EcdhePublicKey *ecc,
+                         void *result)
+{
+  struct GNUNET_CRYPTO_EcdhePrivateKey pk;
+  GNUNET_CRYPTO_ecdhe_key_create (&pk);
+  struct GNUNET_HashCode hash;
+  switch (ntohl (pub->type))
+  {
+  case GNUNET_IDENTITY_TYPE_ECDSA:
+    if (GNUNET_SYSERR == GNUNET_CRYPTO_ecdh_ecdsa (&pk, &(pub->ecdsa_key),
+                                                   &hash))
+      return -1;
+    break;
+  case GNUNET_IDENTITY_TYPE_EDDSA:
+    if (GNUNET_SYSERR == GNUNET_CRYPTO_ecdh_eddsa (&pk, &(pub->eddsa_key),
+                                                   &hash))
+      return -1;
+    break;
+  default:
+    return -1;
+  }
+  GNUNET_CRYPTO_ecdhe_key_get_public (&pk, ecc);
+  GNUNET_CRYPTO_ecdhe_key_clear (&pk);
+  struct GNUNET_CRYPTO_SymmetricSessionKey key;
+  struct GNUNET_CRYPTO_SymmetricInitializationVector iv;
+  GNUNET_CRYPTO_hash_to_aes_key (&hash, &key, &iv);
+  GNUNET_CRYPTO_zero_keys (&hash, sizeof(hash));
+  const ssize_t encrypted = GNUNET_CRYPTO_symmetric_encrypt (block, size, &key,
+                                                             &iv, result);
+  GNUNET_CRYPTO_zero_keys (&key, sizeof(key));
+  GNUNET_CRYPTO_zero_keys (&iv, sizeof(iv));
+  return encrypted;
+}
+
+
+ssize_t
+GNUNET_IDENTITY_decrypt (const void *block,
+                         size_t size,
+                         const struct GNUNET_IDENTITY_PrivateKey *priv,
+                         const struct GNUNET_CRYPTO_EcdhePublicKey *ecc,
+                         void *result)
+{
+  struct GNUNET_HashCode hash;
+  switch (ntohl (priv->type))
+  {
+  case GNUNET_IDENTITY_TYPE_ECDSA:
+    if (GNUNET_SYSERR == GNUNET_CRYPTO_ecdsa_ecdh (&(priv->ecdsa_key), ecc,
+                                                   &hash))
+      return -1;
+    break;
+  case GNUNET_IDENTITY_TYPE_EDDSA:
+    if (GNUNET_SYSERR == GNUNET_CRYPTO_eddsa_ecdh (&(priv->eddsa_key), ecc,
+                                                   &hash))
+      return -1;
+    break;
+  default:
+    return -1;
+  }
+  struct GNUNET_CRYPTO_SymmetricSessionKey key;
+  struct GNUNET_CRYPTO_SymmetricInitializationVector iv;
+  GNUNET_CRYPTO_hash_to_aes_key (&hash, &key, &iv);
+  GNUNET_CRYPTO_zero_keys (&hash, sizeof(hash));
+  const ssize_t decrypted = GNUNET_CRYPTO_symmetric_decrypt (block, size, &key,
+                                                             &iv, result);
+  GNUNET_CRYPTO_zero_keys (&key, sizeof(key));
+  GNUNET_CRYPTO_zero_keys (&iv, sizeof(iv));
+  return decrypted;
+}
+
+
+char *
+GNUNET_IDENTITY_public_key_to_string (const struct
+                                      GNUNET_IDENTITY_PublicKey *key)
+{
+  size_t size = GNUNET_IDENTITY_key_get_length (key);
+  return GNUNET_STRINGS_data_to_string_alloc (key,
+                                              size);
+}
+
+
+char *
+GNUNET_IDENTITY_private_key_to_string (const struct
+                                       GNUNET_IDENTITY_PrivateKey *key)
+{
+  size_t size = private_key_get_length (key);
+  return GNUNET_STRINGS_data_to_string_alloc (key,
+                                              size);
+}
+
+
+enum GNUNET_GenericReturnValue
+GNUNET_IDENTITY_public_key_from_string (const char *str,
+                                        struct GNUNET_IDENTITY_PublicKey *key)
+{
+  enum GNUNET_GenericReturnValue ret;
+  enum GNUNET_IDENTITY_KeyType ktype;
+  ret = GNUNET_STRINGS_string_to_data (str,
+                                       strlen (str),
+                                       key,
+                                       sizeof (*key));
+  if (GNUNET_OK != ret)
+    return GNUNET_SYSERR;
+  ktype = ntohl (key->type);
+  return (GNUNET_IDENTITY_TYPE_ECDSA == ktype) ? GNUNET_OK : GNUNET_SYSERR; // 
FIXME other keys, cleaner way?
+
+}
+
+
+enum GNUNET_GenericReturnValue
+GNUNET_IDENTITY_private_key_from_string (const char *str,
+                                         struct GNUNET_IDENTITY_PrivateKey 
*key)
+{
+  enum GNUNET_GenericReturnValue ret;
+  enum GNUNET_IDENTITY_KeyType ktype;
+  ret = GNUNET_STRINGS_string_to_data (str,
+                                       strlen (str),
+                                       key,
+                                       sizeof (*key));
+  if (GNUNET_OK != ret)
+    return GNUNET_SYSERR;
+  ktype = ntohl (key->type);
+  return (GNUNET_IDENTITY_TYPE_ECDSA == ktype) ? GNUNET_OK : GNUNET_SYSERR; // 
FIXME other keys, cleaner way?
+}
+
+
 /* end of identity_api.c */
diff --git a/src/identity/identity_api_lookup.c 
b/src/identity/identity_api_lookup.c
index 26b1eacd7..51afb2515 100644
--- a/src/identity/identity_api_lookup.c
+++ b/src/identity/identity_api_lookup.c
@@ -127,14 +127,12 @@ handle_identity_update (void *cls, const struct 
UpdateMessage *um)
   struct GNUNET_IDENTITY_EgoLookup *el = cls;
   uint16_t name_len = ntohs (um->name_len);
   const char *str = (0 == name_len) ? NULL : (const char *) &um[1];
-  struct GNUNET_CRYPTO_EcdsaPublicKey pub;
   struct GNUNET_HashCode id;
   struct GNUNET_IDENTITY_Ego ego;
   memset (&ego, 0, sizeof (ego));
 
   GNUNET_break (GNUNET_YES != ntohs (um->end_of_list));
-  GNUNET_CRYPTO_ecdsa_key_get_public (&um->private_key, &pub);
-  GNUNET_CRYPTO_hash (&pub, sizeof(pub), &id);
+  GNUNET_CRYPTO_hash (&um->private_key, sizeof(um->private_key), &id);
   ego.pk = um->private_key;
   ego.name = (char *) str;
   ego.id = id;
diff --git a/src/identity/plugin_rest_identity.c 
b/src/identity/plugin_rest_identity.c
index d86d29e36..dba1d478d 100644
--- a/src/identity/plugin_rest_identity.c
+++ b/src/identity/plugin_rest_identity.c
@@ -384,7 +384,7 @@ ego_get_for_subsystem (void *cls,
 {
   struct RequestHandle *handle = cls;
   struct MHD_Response *resp;
-  struct GNUNET_CRYPTO_EcdsaPublicKey public_key;
+  struct GNUNET_IDENTITY_PublicKey public_key;
   json_t *json_root;
   char *result_str;
   char *public_key_string;
@@ -398,7 +398,7 @@ ego_get_for_subsystem (void *cls,
   }
 
   GNUNET_IDENTITY_ego_get_public_key (ego, &public_key);
-  public_key_string = GNUNET_CRYPTO_ecdsa_public_key_to_string (&public_key);
+  public_key_string = GNUNET_IDENTITY_public_key_to_string (&public_key);
 
   // create json with subsystem identity
   json_root = json_object ();
@@ -496,7 +496,7 @@ ego_get_all (struct GNUNET_REST_RequestHandle *con_handle,
         GNUNET_CONTAINER_multihashmap_contains (
           handle->rest_handle->url_param_map, &key))
     {
-      privkey_str = GNUNET_CRYPTO_ecdsa_private_key_to_string (
+      privkey_str = GNUNET_IDENTITY_private_key_to_string (
         GNUNET_IDENTITY_ego_get_private_key (ego_entry->ego));
       json_object_set_new (json_ego,
                            GNUNET_REST_IDENTITY_PARAM_PRIVKEY,
@@ -549,7 +549,7 @@ ego_get_response (struct RequestHandle *handle, struct 
EgoEntry *ego_entry)
       GNUNET_CONTAINER_multihashmap_contains (
         handle->rest_handle->url_param_map, &key))
   {
-    privkey_str = GNUNET_CRYPTO_ecdsa_private_key_to_string (
+    privkey_str = GNUNET_IDENTITY_private_key_to_string (
       GNUNET_IDENTITY_ego_get_private_key (ego_entry->ego));
     json_object_set_new (json_ego,
                          GNUNET_REST_IDENTITY_PARAM_PRIVKEY,
@@ -686,7 +686,7 @@ do_finished (void *cls, const char *emsg)
  */
 static void
 do_finished_create (void *cls,
-                    const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+                    const struct GNUNET_IDENTITY_PrivateKey *pk,
                     const char *emsg)
 {
   struct RequestHandle *handle = cls;
@@ -999,8 +999,8 @@ ego_create (struct GNUNET_REST_RequestHandle *con_handle,
   json_error_t err;
   char *egoname;
   char *privkey;
-  struct GNUNET_CRYPTO_EcdsaPrivateKey pk;
-  struct GNUNET_CRYPTO_EcdsaPrivateKey *pk_ptr;
+  struct GNUNET_IDENTITY_PrivateKey pk;
+  struct GNUNET_IDENTITY_PrivateKey *pk_ptr;
   int json_unpack_state;
   char term_data[handle->data_size + 1];
 
@@ -1074,7 +1074,7 @@ ego_create (struct GNUNET_REST_RequestHandle *con_handle,
                                    strlen (privkey),
                                    &pk,
                                    sizeof(struct
-                                          GNUNET_CRYPTO_EcdsaPrivateKey));
+                                          GNUNET_IDENTITY_PrivateKey));
     pk_ptr = &pk;
   }
   else
@@ -1084,6 +1084,7 @@ ego_create (struct GNUNET_REST_RequestHandle *con_handle,
   handle->op = GNUNET_IDENTITY_create (identity_handle,
                                        handle->name,
                                        pk_ptr,
+                                       GNUNET_IDENTITY_TYPE_ECDSA,
                                        &do_finished_create,
                                        handle);
 }
@@ -1208,7 +1209,7 @@ list_ego (void *cls,
           const char *identifier)
 {
   struct EgoEntry *ego_entry;
-  struct GNUNET_CRYPTO_EcdsaPublicKey pk;
+  struct GNUNET_IDENTITY_PublicKey pk;
 
   if ((NULL == ego) && (ID_REST_STATE_INIT == state))
   {
@@ -1219,7 +1220,7 @@ list_ego (void *cls,
   {
     ego_entry = GNUNET_new (struct EgoEntry);
     GNUNET_IDENTITY_ego_get_public_key (ego, &pk);
-    ego_entry->keystring = GNUNET_CRYPTO_ecdsa_public_key_to_string (&pk);
+    ego_entry->keystring = GNUNET_IDENTITY_public_key_to_string (&pk);
     ego_entry->ego = ego;
     ego_entry->identifier = GNUNET_strdup (identifier);
     GNUNET_CONTAINER_DLL_insert_tail (ego_head,
@@ -1245,7 +1246,7 @@ list_ego (void *cls,
       /* Add */
       ego_entry = GNUNET_new (struct EgoEntry);
       GNUNET_IDENTITY_ego_get_public_key (ego, &pk);
-      ego_entry->keystring = GNUNET_CRYPTO_ecdsa_public_key_to_string (&pk);
+      ego_entry->keystring = GNUNET_IDENTITY_public_key_to_string (&pk);
       ego_entry->ego = ego;
       ego_entry->identifier = GNUNET_strdup (identifier);
       GNUNET_CONTAINER_DLL_insert_tail (ego_head,
diff --git a/src/identity/test_identity.c b/src/identity/test_identity.c
index 37eeab238..4954fe7be 100644
--- a/src/identity/test_identity.c
+++ b/src/identity/test_identity.c
@@ -253,7 +253,7 @@ success_rename_cont (void *cls, const char *emsg)
  */
 static void
 create_cb (void *cls,
-           const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+           const struct GNUNET_IDENTITY_PrivateKey *pk,
            const char *emsg)
 {
   CHECK (NULL != pk);
@@ -279,7 +279,11 @@ run (void *cls,
   GNUNET_SCHEDULER_add_shutdown (&cleanup, NULL);
   h = GNUNET_IDENTITY_connect (cfg, &notification_cb, NULL);
   CHECK (NULL != h);
-  op = GNUNET_IDENTITY_create (h, "test-id", NULL, &create_cb, NULL);
+  op = GNUNET_IDENTITY_create (h,
+                               "test-id",
+                               NULL,
+                               GNUNET_IDENTITY_TYPE_ECDSA,
+                               &create_cb, NULL);
 }
 
 
diff --git a/src/identity/test_identity_defaults.c 
b/src/identity/test_identity_defaults.c
index 53eec1252..2d5244d1b 100644
--- a/src/identity/test_identity_defaults.c
+++ b/src/identity/test_identity_defaults.c
@@ -241,7 +241,7 @@ notification_cb (void *cls,
  */
 static void
 create_cb (void *cls,
-           const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+           const struct GNUNET_IDENTITY_PrivateKey *pk,
            const char *emsg)
 {
   CHECK (NULL == emsg);
@@ -266,7 +266,11 @@ run_set (void *cls,
   GNUNET_SCHEDULER_add_shutdown (&cleanup, NULL);
   h = GNUNET_IDENTITY_connect (cfg, &notification_cb, NULL);
   CHECK (NULL != h);
-  op = GNUNET_IDENTITY_create (h, "test-id", NULL, &create_cb, NULL);
+  op = GNUNET_IDENTITY_create (h,
+                               "test-id",
+                               NULL,
+                               GNUNET_IDENTITY_TYPE_ECDSA,
+                               &create_cb, NULL);
 }
 
 
diff --git a/src/include/Makefile.am b/src/include/Makefile.am
index 202abb7ac..fc3d745a6 100644
--- a/src/include/Makefile.am
+++ b/src/include/Makefile.am
@@ -62,6 +62,7 @@ gnunetinclude_HEADERS = \
   gnunet_json_lib.h \
   gnunet_load_lib.h \
   gnunet_cadet_service.h \
+  gnunet_messenger_service.h \
   gnunet_mhd_compat.h \
   gnunet_microphone_lib.h \
   gnunet_mst_lib.h \
diff --git a/src/include/gnunet_buffer_lib.h b/src/include/gnunet_buffer_lib.h
index 0c566df75..7239eccfb 100644
--- a/src/include/gnunet_buffer_lib.h
+++ b/src/include/gnunet_buffer_lib.h
@@ -147,7 +147,8 @@ GNUNET_buffer_write_path (struct GNUNET_Buffer *buf, const 
char *str);
  * @param ... format arguments
  */
 void
-GNUNET_buffer_write_fstr (struct GNUNET_Buffer *buf, const char *fmt, ...);
+GNUNET_buffer_write_fstr (struct GNUNET_Buffer *buf, const char *fmt, ...)
+__attribute__ ((format (printf, 2, 3)));
 
 
 /**
diff --git a/src/include/gnunet_common.h b/src/include/gnunet_common.h
index fcaae1026..21b87b0f5 100644
--- a/src/include/gnunet_common.h
+++ b/src/include/gnunet_common.h
@@ -488,7 +488,8 @@ void
 GNUNET_log_from_nocheck (enum GNUNET_ErrorType kind,
                          const char *comp,
                          const char *message,
-                         ...);
+                         ...)
+__attribute__ ((format (printf, 3, 4)));
 
 #if ! defined(GNUNET_CULL_LOGGING)
 #define GNUNET_log_from(kind, comp, ...)                                  \
@@ -1445,6 +1446,7 @@ GNUNET_is_zero_ (const void *a,
     memcpy (&(arr1) [(len1) - (len2)], _a2, (len2) * sizeof (*arr1));    \
   } while (0)
 
+
 /**
  * @ingroup memory
  * Like snprintf, just aborts if the buffer is of insufficient size.
@@ -1456,7 +1458,11 @@ GNUNET_is_zero_ (const void *a,
  * @return number of bytes written to buf or negative value on error
  */
 int
-GNUNET_snprintf (char *buf, size_t size, const char *format, ...);
+GNUNET_snprintf (char *buf,
+                 size_t size,
+                 const char *format,
+                 ...)
+__attribute__ ((format (printf, 3, 4)));
 
 
 /**
@@ -1469,7 +1475,10 @@ GNUNET_snprintf (char *buf, size_t size, const char 
*format, ...);
  * @return number of bytes in "*buf" excluding 0-termination
  */
 int
-GNUNET_asprintf (char **buf, const char *format, ...);
+GNUNET_asprintf (char **buf,
+                 const char *format,
+                 ...)
+__attribute__ ((format (printf, 2, 3)));
 
 
 /* ************** internal implementations, use macros above! ************** */
diff --git a/src/include/gnunet_conversation_service.h 
b/src/include/gnunet_conversation_service.h
index 4566caad0..be5a81cfb 100644
--- a/src/include/gnunet_conversation_service.h
+++ b/src/include/gnunet_conversation_service.h
@@ -147,7 +147,7 @@ typedef void
                                          struct GNUNET_CONVERSATION_Caller *
                                          caller,
                                          const struct
-                                         GNUNET_CRYPTO_EcdsaPublicKey 
*caller_id);
+                                         GNUNET_IDENTITY_PublicKey *caller_id);
 
 
 /**
diff --git a/src/include/gnunet_crypto_lib.h b/src/include/gnunet_crypto_lib.h
index 03fb16a43..2bbf2b1e7 100644
--- a/src/include/gnunet_crypto_lib.h
+++ b/src/include/gnunet_crypto_lib.h
@@ -1700,7 +1700,7 @@ GNUNET_CRYPTO_eddsa_sign_ (
  */
 #define GNUNET_CRYPTO_eddsa_sign(priv,ps,sig) do {                 \
     /* check size is set correctly */                              \
-    GNUNET_assert (htonl ((ps)->purpose.size) == sizeof (*ps));    \
+    GNUNET_assert (ntohl ((ps)->purpose.size) == sizeof (*ps));    \
     /* check 'ps' begins with the purpose */                       \
     GNUNET_static_assert (((void*) (ps)) ==                        \
                           ((void*) &(ps)->purpose));               \
@@ -1747,7 +1747,7 @@ GNUNET_CRYPTO_ecdsa_sign_ (
  */
 #define GNUNET_CRYPTO_ecdsa_sign(priv,ps,sig) do {                 \
     /* check size is set correctly */                              \
-    GNUNET_assert (htonl ((ps)->purpose.size) == sizeof (*(ps)));  \
+    GNUNET_assert (ntohl ((ps)->purpose.size) == sizeof (*(ps)));  \
     /* check 'ps' begins with the purpose */                       \
     GNUNET_static_assert (((void*) (ps)) ==                        \
                           ((void*) &(ps)->purpose));               \
@@ -1853,7 +1853,7 @@ GNUNET_CRYPTO_ecdsa_verify_ (
  */
 #define GNUNET_CRYPTO_ecdsa_verify(purp,ps,sig,pub) ({             \
     /* check size is set correctly */                              \
-    GNUNET_assert (htonl ((ps)->purpose.size) == sizeof (*(ps)));  \
+    GNUNET_assert (ntohl ((ps)->purpose.size) == sizeof (*(ps)));  \
     /* check 'ps' begins with the purpose */                       \
     GNUNET_static_assert (((void*) (ps)) ==                        \
                           ((void*) &(ps)->purpose));               \
diff --git a/src/include/gnunet_gns_service.h b/src/include/gnunet_gns_service.h
index ef81e9a88..3f6c9b9aa 100644
--- a/src/include/gnunet_gns_service.h
+++ b/src/include/gnunet_gns_service.h
@@ -36,6 +36,7 @@
 
 #include "gnunet_util_lib.h"
 #include "gnunet_dnsparser_lib.h"
+#include "gnunet_identity_service.h"
 #include "gnunet_namestore_service.h"
 
 #ifdef __cplusplus
@@ -139,7 +140,7 @@ enum GNUNET_GNS_LocalOptions
 struct GNUNET_GNS_LookupRequest *
 GNUNET_GNS_lookup (struct GNUNET_GNS_Handle *handle,
                    const char *name,
-                   const struct GNUNET_CRYPTO_EcdsaPublicKey *zone,
+                   const struct GNUNET_IDENTITY_PublicKey *zone,
                    uint32_t type,
                    enum GNUNET_GNS_LocalOptions options,
                    GNUNET_GNS_LookupResultProcessor proc,
@@ -163,7 +164,7 @@ GNUNET_GNS_lookup (struct GNUNET_GNS_Handle *handle,
 struct GNUNET_GNS_LookupRequest *
 GNUNET_GNS_lookup_limited (struct GNUNET_GNS_Handle *handle,
                            const char *name,
-                           const struct GNUNET_CRYPTO_EcdsaPublicKey *zone,
+                           const struct GNUNET_IDENTITY_PublicKey *zone,
                            uint32_t type,
                            enum GNUNET_GNS_LocalOptions options,
                            uint16_t recursion_depth_limit,
diff --git a/src/include/gnunet_gnsrecord_json_lib.h 
b/src/include/gnunet_gnsrecord_json_lib.h
new file mode 100644
index 000000000..966461705
--- /dev/null
+++ b/src/include/gnunet_gnsrecord_json_lib.h
@@ -0,0 +1,73 @@
+/*
+     This file is part of GNUnet
+     Copyright (C) 2012, 2013 GNUnet e.V.
+
+     GNUnet is free software: you can redistribute it and/or modify it
+     under the terms of the GNU Affero General Public License as published
+     by the Free Software Foundation, either version 3 of the License,
+     or (at your option) any later version.
+
+     GNUnet is distributed in the hope that it will be useful, but
+     WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     Affero General Public License for more details.
+
+     You should have received a copy of the GNU Affero General Public License
+     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
+ */
+
+/**
+ * @author Martin Schanzenbach
+ *
+ * @file
+ * API that can be used to manipulate JSON GNS record data
+ *
+ * @defgroup gnsrecord  GNS Record library
+ * Manipulate GNS record data
+ *
+ * @see [Documentation](https://gnunet.org/gns-plugins)
+ *
+ * @{
+ */
+#ifndef GNUNET_GNSRECORD_JSON_LIB_H
+#define GNUNET_GNSRECORD_JSON_LIB_H
+
+#include "gnunet_gnsrecord_lib.h"
+#include "gnunet_json_lib.h"
+
+#ifdef __cplusplus
+extern "C" {
+#if 0 /* keep Emacsens' auto-indent happy */
+}
+#endif
+#endif
+
+
+/**
+ * JSON Specification for GNS Records.
+ *
+ * @param gnsrecord_object struct of GNUNET_GNSRECORD_Data to fill
+ * @return JSON Specification
+ */
+struct GNUNET_JSON_Specification
+GNUNET_GNSRECORD_JSON_spec_gnsrecord (struct GNUNET_GNSRECORD_Data **rd,
+                            unsigned int *rd_count,
+                            char **name);
+
+
+/**
+ * Convert GNS record to JSON.
+ *
+ * @param rname name of record
+ * @param rd record data
+ * @return corresponding JSON encoding
+ */
+json_t *
+GNUNET_GNSRECORD_JSON_from_gnsrecord (const char*rname,
+                            const struct GNUNET_GNSRECORD_Data *rd,
+                            unsigned int rd_count);
+
+
+#endif
diff --git a/src/include/gnunet_gnsrecord_lib.h 
b/src/include/gnunet_gnsrecord_lib.h
index 960203fb1..0bf2ceed7 100644
--- a/src/include/gnunet_gnsrecord_lib.h
+++ b/src/include/gnunet_gnsrecord_lib.h
@@ -34,6 +34,8 @@
 #ifndef GNUNET_GNSRECORD_LIB_H
 #define GNUNET_GNSRECORD_LIB_H
 
+#include "gnunet_identity_service.h"
+
 #ifdef __cplusplus
 extern "C" {
 #if 0 /* keep Emacsens' auto-indent happy */
@@ -55,7 +57,7 @@ extern "C" {
 /**
  * Record type for GNS zone transfer ("PKEY").
  */
-#define GNUNET_GNSRECORD_TYPE_PKEY 65536
+#define GNUNET_GNSRECORD_TYPE_PKEY GNUNET_IDENTITY_TYPE_ECDSA
 
 /**
  * Record type for GNS nick names ("NICK").
@@ -151,6 +153,11 @@ extern "C" {
  */
 #define GNUNET_GNSRECORD_TYPE_RECLAIM_PRESENTATION 65555
 
+/**
+ * Record type for EDKEY delegations.
+ */
+#define GNUNET_GNSRECORD_TYPE_EDKEY GNUNET_IDENTITY_TYPE_EDDSA
+
 
 /**
  * Flags that can be set for a record.
@@ -261,21 +268,20 @@ struct GNUNET_GNSRECORD_PlaceData
   /* Followed by struct GNUNET_PeerIdentity relays[relay_count] */
 };
 
-
 /**
  * Information we have in an encrypted block with record data (i.e. in the 
DHT).
  */
-struct GNUNET_GNSRECORD_Block
+struct GNUNET_GNSRECORD_EcdsaBlock
 {
   /**
-   * Signature of the block.
+   * Derived key used for signing; hash of this is the query.
    */
-  struct GNUNET_CRYPTO_EcdsaSignature signature;
+  struct GNUNET_CRYPTO_EcdsaPublicKey derived_key;
 
   /**
-   * Derived key used for signing; hash of this is the query.
+   * Signature of the block.
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey derived_key;
+  struct GNUNET_CRYPTO_EcdsaSignature signature;
 
   /**
    * Number of bytes signed; also specifies the number of bytes
@@ -291,6 +297,17 @@ struct GNUNET_GNSRECORD_Block
   /* followed by encrypted data */
 };
 
+struct GNUNET_GNSRECORD_Block
+{
+  uint32_t type;
+
+  union
+  {
+    struct GNUNET_GNSRECORD_EcdsaBlock ecdsa_block;
+    //struct GNUNET_GNSRECORD_EddsaBlock eddsa_block;
+  };
+};
+
 
 /**
  * Record type used to box up SRV and TLSA records.  For example, a
@@ -335,7 +352,7 @@ struct GNUNET_GNSRECORD_ReverseRecord
   /**
    * The public key of the namespace the is delegating to our namespace
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey pkey;
+  struct GNUNET_IDENTITY_PublicKey pkey;
 
   /**
    * The expiration time of the delegation
@@ -488,7 +505,7 @@ GNUNET_GNSRECORD_string_to_lowercase (const char *src);
  * #GNUNET_GNSRECORD_z2s.
  */
 const char *
-GNUNET_GNSRECORD_z2s (const struct GNUNET_CRYPTO_EcdsaPublicKey *z);
+GNUNET_GNSRECORD_z2s (const struct GNUNET_IDENTITY_PublicKey *z);
 
 
 /**
@@ -502,7 +519,7 @@ GNUNET_GNSRECORD_z2s (const struct 
GNUNET_CRYPTO_EcdsaPublicKey *z);
  *         key in an encoding suitable for DNS labels.
  */
 const char *
-GNUNET_GNSRECORD_pkey_to_zkey (const struct GNUNET_CRYPTO_EcdsaPublicKey 
*pkey);
+GNUNET_GNSRECORD_pkey_to_zkey (const struct GNUNET_IDENTITY_PublicKey *pkey);
 
 
 /**
@@ -516,7 +533,7 @@ GNUNET_GNSRECORD_pkey_to_zkey (const struct 
GNUNET_CRYPTO_EcdsaPublicKey *pkey);
  */
 int
 GNUNET_GNSRECORD_zkey_to_pkey (const char *zkey,
-                               struct GNUNET_CRYPTO_EcdsaPublicKey *pkey);
+                               struct GNUNET_IDENTITY_PublicKey *pkey);
 
 
 /**
@@ -528,7 +545,7 @@ GNUNET_GNSRECORD_zkey_to_pkey (const char *zkey,
  */
 void
 GNUNET_GNSRECORD_query_from_private_key (
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone, const char *label,
+  const struct GNUNET_IDENTITY_PrivateKey *zone, const char *label,
   struct GNUNET_HashCode *query);
 
 
@@ -541,7 +558,7 @@ GNUNET_GNSRECORD_query_from_private_key (
  */
 void
 GNUNET_GNSRECORD_query_from_public_key (
-  const struct GNUNET_CRYPTO_EcdsaPublicKey *pub, const char *label,
+  const struct GNUNET_IDENTITY_PublicKey *pub, const char *label,
   struct GNUNET_HashCode *query);
 
 
@@ -555,7 +572,7 @@ GNUNET_GNSRECORD_query_from_public_key (
  * @param rd_count number of records in @a rd
  */
 struct GNUNET_GNSRECORD_Block *
-GNUNET_GNSRECORD_block_create (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key,
+GNUNET_GNSRECORD_block_create (const struct GNUNET_IDENTITY_PrivateKey *key,
                                struct GNUNET_TIME_Absolute expire,
                                const char *label,
                                const struct GNUNET_GNSRECORD_Data *rd,
@@ -574,7 +591,7 @@ GNUNET_GNSRECORD_block_create (const struct 
GNUNET_CRYPTO_EcdsaPrivateKey *key,
  * @param rd_count number of records in @a rd
  */
 struct GNUNET_GNSRECORD_Block *
-GNUNET_GNSRECORD_block_create2 (const struct GNUNET_CRYPTO_EcdsaPrivateKey 
*key,
+GNUNET_GNSRECORD_block_create2 (const struct GNUNET_IDENTITY_PrivateKey *key,
                                 struct GNUNET_TIME_Absolute expire,
                                 const char *label,
                                 const struct GNUNET_GNSRECORD_Data *rd,
@@ -606,7 +623,7 @@ GNUNET_GNSRECORD_block_verify (const struct 
GNUNET_GNSRECORD_Block *block);
 int
 GNUNET_GNSRECORD_block_decrypt (
   const struct GNUNET_GNSRECORD_Block *block,
-  const struct GNUNET_CRYPTO_EcdsaPublicKey *zone_key, const char *label,
+  const struct GNUNET_IDENTITY_PublicKey *zone_key, const char *label,
   GNUNET_GNSRECORD_RecordCallback proc, void *proc_cls);
 
 
@@ -636,6 +653,82 @@ GNUNET_GNSRECORD_record_get_expiration_time (
   unsigned int rd_count, const struct GNUNET_GNSRECORD_Data *rd);
 
 
+/**
+ * Returns the length of this block in bytes.
+ * Block length strongly depends on the zone type.
+ *
+ * @param block the block.
+ * @return the length of this block in bytes
+ */
+size_t
+GNUNET_GNSRECORD_block_get_size (const struct GNUNET_GNSRECORD_Block *block);
+
+/**
+ * Returns the expiration of a block.
+ *
+ * @param block the block.
+ * @return the block expiration.
+ */
+struct GNUNET_TIME_Absolute
+GNUNET_GNSRECORD_block_get_expiration (const struct GNUNET_GNSRECORD_Block 
*block);
+
+
+/**
+ * Builds the query hash from a block.
+ *
+ * @param block the block.
+ * @param query where to write the query hash.
+ * @return GNUNET_SYSERR on error.
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_query_from_block (const struct GNUNET_GNSRECORD_Block *block,
+                                   struct GNUNET_HashCode *query);
+
+
+/**
+ * Build a #GNUNET_GNSRECORD_PublicKey from
+ * zone delegation resource record data.
+ *
+ * @param data the record data-
+ * @param data_size the data size.
+ * @param type the record type
+ * @param key the identity key to store the data in (must be allocated).
+ * @return GNUNET_OK if successful.
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_identity_from_data (const char *data,
+                                     size_t data_size,
+                                     uint32_t type,
+                                     struct GNUNET_IDENTITY_PublicKey *key);
+
+
+/**
+ * Create record data and size from an identity key.
+ *
+ * @param key the identity key to use.
+ * @param data the record data (will be allocated)
+ * @param data_size the allocated data size.
+ * @param type the resulting record type
+ * @return GNUNET_OK if successful.
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_data_from_identity (const struct GNUNET_IDENTITY_PublicKey 
*key,
+                                     char **data,
+                                     size_t *data_size,
+                                     uint32_t *type);
+
+
+/**
+ * Check if this type is one of the supported GNS zone
+ * types.
+ *
+ * @param type the type to check
+ * @return GNUNET_YES if it is one of the supported types.
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_GNSRECORD_is_zonekey_type (uint32_t type);
+
+
 #if 0 /* keep Emacsens' auto-indent happy */
 {
 #endif
diff --git a/src/include/gnunet_identity_service.h 
b/src/include/gnunet_identity_service.h
index 94127248e..2974568db 100644
--- a/src/include/gnunet_identity_service.h
+++ b/src/include/gnunet_identity_service.h
@@ -57,6 +57,21 @@ extern "C" {
  */
 #define GNUNET_IDENTITY_VERSION 0x00000100
 
+enum GNUNET_IDENTITY_KeyType
+{
+  /**
+   * The identity type. The value is the same as the
+   * PKEY record type.
+   */
+  GNUNET_IDENTITY_TYPE_ECDSA = 65536,
+
+  /**
+   * EDDSA identity. The value is the same as the EDKEY
+   * record type.
+   */
+  GNUNET_IDENTITY_TYPE_EDDSA = 65556
+};
+
 /**
  * Handle to access the identity service.
  */
@@ -67,6 +82,88 @@ struct GNUNET_IDENTITY_Handle;
  */
 struct GNUNET_IDENTITY_Ego;
 
+
+/**
+ * A private key for an identity as per LSD0001.
+ */
+struct GNUNET_IDENTITY_PrivateKey
+{
+  /**
+   * Type of public key.
+   * Defined by the GNS zone type value.
+   * In NBO.
+   */
+  uint32_t type;
+
+  union
+  {
+    /**
+     * An ECDSA identity key.
+     */
+    struct GNUNET_CRYPTO_EcdsaPrivateKey ecdsa_key;
+
+    /**
+     * AN EdDSA identtiy key
+     */
+    struct GNUNET_CRYPTO_EddsaPrivateKey eddsa_key;
+  };
+};
+
+
+/**
+ * An identity key as per LSD0001.
+ */
+struct GNUNET_IDENTITY_PublicKey
+{
+  /**
+   * Type of public key.
+   * Defined by the GNS zone type value.
+   * In NBO.
+   */
+  uint32_t type;
+
+  union
+  {
+    /**
+     * An ECDSA identity key.
+     */
+    struct GNUNET_CRYPTO_EcdsaPublicKey ecdsa_key;
+
+    /**
+     * AN EdDSA identtiy key
+     */
+    struct GNUNET_CRYPTO_EddsaPublicKey eddsa_key;
+  };
+};
+
+
+/**
+ * An identity signature as per LSD0001.
+ */
+struct GNUNET_IDENTITY_Signature
+{
+  /**
+   * Type of signature.
+   * Defined by the GNS zone type value.
+   * In NBO.
+   */
+  uint32_t type;
+
+  union
+  {
+    /**
+     * An ECDSA signature
+     */
+    struct GNUNET_CRYPTO_EcdsaSignature ecdsa_signature;
+
+    /**
+     * AN EdDSA signature
+     */
+    struct GNUNET_CRYPTO_EddsaSignature eddsa_signature;
+  };
+};
+
+
 /**
  * Handle for an operation with the identity service.
  */
@@ -79,7 +176,7 @@ struct GNUNET_IDENTITY_Operation;
  * @param ego the ego
  * @return associated ECC key, valid as long as the ego is valid
  */
-const struct GNUNET_CRYPTO_EcdsaPrivateKey *
+const struct GNUNET_IDENTITY_PrivateKey *
 GNUNET_IDENTITY_ego_get_private_key (const struct GNUNET_IDENTITY_Ego *ego);
 
 
@@ -100,7 +197,7 @@ GNUNET_IDENTITY_ego_get_anonymous (void);
  */
 void
 GNUNET_IDENTITY_ego_get_public_key (struct GNUNET_IDENTITY_Ego *ego,
-                                    struct GNUNET_CRYPTO_EcdsaPublicKey *pk);
+                                    struct GNUNET_IDENTITY_PublicKey *pk);
 
 
 /**
@@ -224,7 +321,7 @@ GNUNET_IDENTITY_disconnect (struct GNUNET_IDENTITY_Handle 
*h);
 typedef void
 (*GNUNET_IDENTITY_CreateContinuation) (
   void *cls,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *pk,
+  const struct GNUNET_IDENTITY_PrivateKey *pk,
   const char *emsg);
 
 
@@ -234,6 +331,7 @@ typedef void
  * @param id identity service to use
  * @param name desired name
  * @param privkey desired private key or NULL to create one
+ * @param ktype the type of key to create. Ignored if privkey != NULL.
  * @param cont function to call with the result (will only be called once)
  * @param cont_cls closure for @a cont
  * @return handle to abort the operation
@@ -241,7 +339,8 @@ typedef void
 struct GNUNET_IDENTITY_Operation *
 GNUNET_IDENTITY_create (struct GNUNET_IDENTITY_Handle *id,
                         const char *name,
-                        const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey,
+                        const struct GNUNET_IDENTITY_PrivateKey *privkey,
+                        enum GNUNET_IDENTITY_KeyType ktype,
                         GNUNET_IDENTITY_CreateContinuation cont,
                         void *cont_cls);
 
@@ -292,6 +391,319 @@ void
 GNUNET_IDENTITY_cancel (struct GNUNET_IDENTITY_Operation *op);
 
 
+/**
+ * Get the compacted length of a #GNUNET_IDENTITY_PublicKey.
+ * Compacted means that it returns the minimum number of bytes this
+ * key is long, as opposed to the union structure inside
+ * #GNUNET_IDENTITY_PublicKey.
+ * Useful for compact serializations.
+ *
+ * @param key the key.
+ * @return -1 on error, else the compacted length of the key.
+ */
+ssize_t
+GNUNET_IDENTITY_key_get_length (const struct GNUNET_IDENTITY_PublicKey *key);
+
+
+/**
+ * Reads a #GNUNET_IDENTITY_PublicKey from a compact buffer.
+ * The buffer has to contain at least the compacted length of
+ * a #GNUNET_IDENTITY_PublicKey in bytes.
+ * If the buffer is too small, the function returns -1 as error.
+ * If the buffer does not contain a valid key, it returns -2 as error.
+ *
+ * @param key the key
+ * @param buffer the buffer
+ * @param len the length of buffer
+ * @return -1 or -2 on error, else the amount of bytes read from the buffer
+ */
+ssize_t
+GNUNET_IDENTITY_read_key_from_buffer (struct GNUNET_IDENTITY_PublicKey *key,
+                                      const void*buffer,
+                                      size_t len);
+
+
+/**
+ * Writes a #GNUNET_IDENTITY_PublicKey to a compact buffer.
+ * The buffer requires space for at least the compacted length of
+ * a #GNUNET_IDENTITY_PublicKey in bytes.
+ * If the buffer is too small, the function returns -1 as error.
+ * If the key is not valid, it returns -2 as error.
+ *
+ * @param key the key
+ * @param buffer the buffer
+ * @param len the length of buffer
+ * @return -1 or -2 on error, else the amount of bytes written to the buffer
+ */
+ssize_t
+GNUNET_IDENTITY_write_key_to_buffer (const struct
+                                     GNUNET_IDENTITY_PublicKey *key,
+                                     void*buffer,
+                                     size_t len);
+
+
+/**
+ * Get the compacted length of a #GNUNET_IDENTITY_Signature.
+ * Compacted means that it returns the minimum number of bytes this
+ * signature is long, as opposed to the union structure inside
+ * #GNUNET_IDENTITY_Signature.
+ * Useful for compact serializations.
+ *
+ * @param sig the signature.
+ * @return -1 on error, else the compacted length of the signature.
+ */
+ssize_t
+GNUNET_IDENTITY_signature_get_length (const struct
+                                      GNUNET_IDENTITY_Signature *sig);
+
+
+/**
+ * Reads a #GNUNET_IDENTITY_Signature from a compact buffer.
+ * The buffer has to contain at least the compacted length of
+ * a #GNUNET_IDENTITY_Signature in bytes.
+ * If the buffer is too small, the function returns -1 as error.
+ * If the buffer does not contain a valid key, it returns -2 as error.
+ *
+ * @param sig the signature
+ * @param buffer the buffer
+ * @param len the length of buffer
+ * @return -1 or -2 on error, else the amount of bytes read from the buffer
+ */
+ssize_t
+GNUNET_IDENTITY_read_signature_from_buffer (struct
+                                            GNUNET_IDENTITY_Signature *sig,
+                                            const void*buffer,
+                                            size_t len);
+
+
+/**
+ * Writes a #GNUNET_IDENTITY_Signature to a compact buffer.
+ * The buffer requires space for at least the compacted length of
+ * a #GNUNET_IDENTITY_Signature in bytes.
+ * If the buffer is too small, the function returns -1 as error.
+ * If the key is not valid, it returns -2 as error.
+ *
+ * @param sig the signature
+ * @param buffer the buffer
+ * @param len the length of buffer
+ * @return -1 or -2 on error, else the amount of bytes written to the buffer
+ */
+ssize_t
+GNUNET_IDENTITY_write_signature_to_buffer (const struct
+                                           GNUNET_IDENTITY_Signature *sig,
+                                           void*buffer,
+                                           size_t len);
+
+
+/**
+ * @brief Sign a given block.
+ *
+ * The @a purpose data is the beginning of the data of which the signature is
+ * to be created. The `size` field in @a purpose must correctly indicate the
+ * number of bytes of the data structure, including its header. If possible,
+ * use #GNUNET_IDENTITY_sign() instead of this function.
+ *
+ * @param priv private key to use for the signing
+ * @param purpose what to sign (size, purpose)
+ * @param[out] sig where to write the signature
+ * @return #GNUNET_SYSERR on error, #GNUNET_OK on success
+ */
+int
+GNUNET_IDENTITY_sign_ (const struct
+                       GNUNET_IDENTITY_PrivateKey *priv,
+                       const struct
+                       GNUNET_CRYPTO_EccSignaturePurpose *purpose,
+                       struct GNUNET_IDENTITY_Signature *sig);
+
+
+/**
+ * @brief Sign a given block with #GNUNET_IDENTITY_PrivateKey.
+ *
+ * The @a ps data must be a fixed-size struct for which the signature is to be
+ * created. The `size` field in @a ps->purpose must correctly indicate the
+ * number of bytes of the data structure, including its header.
+ *
+ * @param priv private key to use for the signing
+ * @param ps packed struct with what to sign, MUST begin with a purpose
+ * @param[out] sig where to write the signature
+ */
+#define GNUNET_IDENTITY_sign(priv,ps,sig) do {                \
+    /* check size is set correctly */                                     \
+    GNUNET_assert (ntohl ((ps)->purpose.size) == sizeof (*(ps)));         \
+    /* check 'ps' begins with the purpose */                              \
+    GNUNET_static_assert (((void*) (ps)) ==                               \
+                          ((void*) &(ps)->purpose));                      \
+    GNUNET_assert (GNUNET_OK ==                                           \
+                   GNUNET_IDENTITY_sign_ (priv,               \
+                                          &(ps)->purpose,             \
+                                          sig));                      \
+} while (0)
+
+
+/**
+ * @brief Verify a given signature.
+ *
+ * The @a validate data is the beginning of the data of which the signature
+ * is to be verified. The `size` field in @a validate must correctly indicate
+ * the number of bytes of the data structure, including its header.  If @a
+ * purpose does not match the purpose given in @a validate (the latter must be
+ * in big endian), signature verification fails.  If possible,
+ * use #GNUNET_IDENTITY_signature_verify() instead of this function (only if 
@a validate
+ * is not fixed-size, you must use this function directly).
+ *
+ * @param purpose what is the purpose that the signature should have?
+ * @param validate block to validate (size, purpose, data)
+ * @param sig signature that is being validated
+ * @param pub public key of the signer
+ * @returns #GNUNET_OK if ok, #GNUNET_SYSERR if invalid
+ */
+int
+GNUNET_IDENTITY_signature_verify_ (uint32_t purpose,
+                                   const struct
+                                   GNUNET_CRYPTO_EccSignaturePurpose *validate,
+                                   const struct GNUNET_IDENTITY_Signature *sig,
+                                   const struct
+                                   GNUNET_IDENTITY_PublicKey *pub);
+
+
+/**
+ * @brief Verify a given signature with #GNUNET_IDENTITY_PublicKey.
+ *
+ * The @a ps data must be a fixed-size struct for which the signature is to be
+ * created. The `size` field in @a ps->purpose must correctly indicate the
+ * number of bytes of the data structure, including its header.
+ *
+ * @param purp purpose of the signature, must match 'ps->purpose.purpose'
+ *              (except in host byte order)
+ * @param ps packed struct with what to sign, MUST begin with a purpose
+ * @param sig where to read the signature from
+ * @param pub public key to use for the verifying
+ */
+#define GNUNET_IDENTITY_signature_verify(purp,ps,sig,pub) ({             \
+    /* check size is set correctly */                                     \
+    GNUNET_assert (ntohl ((ps)->purpose.size) == sizeof (*(ps)));         \
+    /* check 'ps' begins with the purpose */                              \
+    GNUNET_static_assert (((void*) (ps)) ==                               \
+                          ((void*) &(ps)->purpose));                      \
+    GNUNET_IDENTITY_signature_verify_ (purp,                              \
+                                       &(ps)->purpose,                    \
+                                       sig,                               \
+                                       pub);                              \
+  })
+
+
+/**
+ * Encrypt a block with #GNUNET_IDENTITY_PublicKey and derives a
+ * #GNUNET_CRYPTO_EcdhePublicKey which is required for decryption
+ * using ecdh to derive a symmetric key.
+ *
+ * @param block the block to encrypt
+ * @param size the size of the @a block
+ * @param pub public key to use for ecdh
+ * @param ecc where to write the ecc public key
+ * @param result the output parameter in which to store the encrypted result
+ *               can be the same or overlap with @c block
+ * @returns the size of the encrypted block, -1 for errors.
+ *          Due to the use of CFB and therefore an effective stream cipher,
+ *          this size should be the same as @c len.
+ */
+ssize_t
+GNUNET_IDENTITY_encrypt (const void *block,
+                         size_t size,
+                         const struct GNUNET_IDENTITY_PublicKey *pub,
+                         struct GNUNET_CRYPTO_EcdhePublicKey *ecc,
+                         void *result);
+
+
+/**
+ * Decrypt a given block with #GNUNET_IDENTITY_PrivateKey and a given
+ * #GNUNET_CRYPTO_EcdhePublicKey using ecdh to derive a symmetric key.
+ *
+ * @param block the data to decrypt, encoded as returned by encrypt
+ * @param size the size of the @a block to decrypt
+ * @param priv private key to use for ecdh
+ * @param ecc the ecc public key
+ * @param result address to store the result at
+ *               can be the same or overlap with @c block
+ * @return -1 on failure, size of decrypted block on success.
+ *         Due to the use of CFB and therefore an effective stream cipher,
+ *         this size should be the same as @c size.
+ */
+ssize_t
+GNUNET_IDENTITY_decrypt (const void *block,
+                         size_t size,
+                         const struct
+                         GNUNET_IDENTITY_PrivateKey *priv,
+                         const struct
+                         GNUNET_CRYPTO_EcdhePublicKey *ecc,
+                         void *result);
+
+
+/**
+ * Creates a (Base32) string representation of the public key.
+ * The resulting string encodes a compacted representation of the key.
+ * See also #GNUNET_IDENTITY_key_get_length.
+ *
+ * @param key the key.
+ * @return the string representation of the key, or NULL on error.
+ */
+char *
+GNUNET_IDENTITY_public_key_to_string (const struct
+                                      GNUNET_IDENTITY_PublicKey *key);
+
+
+/**
+ * Creates a (Base32) string representation of the private key.
+ * The resulting string encodes a compacted representation of the key.
+ * See also #GNUNET_IDENTITY_key_get_length.
+ *
+ * @param key the key.
+ * @return the string representation of the key, or NULL on error.
+ */
+char *
+GNUNET_IDENTITY_private_key_to_string (const struct
+                                       GNUNET_IDENTITY_PrivateKey *key);
+
+
+/**
+ * Parses a (Base32) string representation of the public key.
+ * See also #GNUNET_IDENTITY_public_key_to_string.
+ *
+ * @param str the encoded key.
+ * @param key where to write the key.
+ * @return GNUNET_SYSERR on error.
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_IDENTITY_public_key_from_string (const char*str,
+                                        struct GNUNET_IDENTITY_PublicKey *key);
+
+
+/**
+ * Parses a (Base32) string representation of the private key.
+ * See also #GNUNET_IDENTITY_private_key_to_string.
+ *
+ * @param str the encoded key.
+ * @param key where to write the key.
+ * @return GNUNET_SYSERR on error.
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_IDENTITY_private_key_from_string (const char*str,
+                                         struct GNUNET_IDENTITY_PrivateKey 
*key);
+
+
+/**
+ * Retrieves the public key representation of a private key.
+ *
+ * @param privkey the private key.
+ * @param key the public key result.
+ * @return GNUNET_SYSERR on error.
+ */
+enum GNUNET_GenericReturnValue
+GNUNET_IDENTITY_key_get_public (const struct
+                                GNUNET_IDENTITY_PrivateKey *privkey,
+                                struct GNUNET_IDENTITY_PublicKey *key);
+
+
 /* ************* convenience API to lookup an ego ***************** */
 
 /**
@@ -344,7 +756,7 @@ GNUNET_IDENTITY_ego_lookup_cancel (struct 
GNUNET_IDENTITY_EgoLookup *el);
 typedef void
 (*GNUNET_IDENTITY_EgoSuffixCallback) (
   void *cls,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *priv,
+  const struct GNUNET_IDENTITY_PrivateKey *priv,
   const char *ego_name);
 
 
diff --git a/src/include/gnunet_json_lib.h b/src/include/gnunet_json_lib.h
index 07a14d329..3dc79105e 100644
--- a/src/include/gnunet_json_lib.h
+++ b/src/include/gnunet_json_lib.h
@@ -1,6 +1,6 @@
 /*
    This file is part of GNUnet
-   Copyright (C) 2014, 2015, 2016 GNUnet e.V.
+   Copyright (C) 2014, 2015, 2016, 2020 GNUnet e.V.
 
    GNUnet is free software: you can redistribute it and/or modify it
    under the terms of the GNU Affero General Public License as published
@@ -28,7 +28,6 @@
 #define GNUNET_JSON_LIB_H
 
 #include "gnunet_util_lib.h"
-#include "gnunet_gnsrecord_lib.h"
 #include <jansson.h>
 #include <microhttpd.h>
 
@@ -359,18 +358,6 @@ GNUNET_JSON_spec_rsa_signature (const char *name,
                                 struct GNUNET_CRYPTO_RsaSignature **sig);
 
 
-/**
- * JSON Specification for GNS Records.
- *
- * @param gnsrecord_object struct of GNUNET_GNSRECORD_Data to fill
- * @return JSON Specification
- */
-struct GNUNET_JSON_Specification
-GNUNET_JSON_spec_gnsrecord (struct GNUNET_GNSRECORD_Data **rd,
-                            unsigned int *rd_count,
-                            char **name);
-
-
 /* ****************** Generic generator interface ******************* */
 
 
@@ -446,18 +433,6 @@ GNUNET_JSON_from_rsa_public_key (const struct 
GNUNET_CRYPTO_RsaPublicKey *pk);
 json_t *
 GNUNET_JSON_from_rsa_signature (const struct GNUNET_CRYPTO_RsaSignature *sig);
 
-/**
- * Convert Gns record to JSON.
- *
- * @param rname name of record
- * @param rd record data
- * @return corresponding JSON encoding
- */
-json_t *
-GNUNET_JSON_from_gnsrecord (const char *rname,
-                            const struct GNUNET_GNSRECORD_Data *rd,
-                            unsigned int rd_count);
-
 /* ******************* Helpers for MHD upload handling ******************* */
 
 /**
diff --git a/src/include/gnunet_messenger_service.h 
b/src/include/gnunet_messenger_service.h
new file mode 100644
index 000000000..8f5315c30
--- /dev/null
+++ b/src/include/gnunet_messenger_service.h
@@ -0,0 +1,436 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ *
+ * @file
+ * MESSENGER service; manages decentralized chat groups
+ *
+ * @defgroup messenger  MESSENGER service
+ * Instant messaging based on the CADET subsystem
+ *
+ * @{
+ */
+
+#ifndef GNUNET_MESSENGER_SERVICE_H
+#define GNUNET_MESSENGER_SERVICE_H
+
+#ifdef __cplusplus
+extern "C" {
+#if 0 /* keep Emacsens' auto-indent happy */
+}
+#endif
+#endif
+
+#include "platform.h"
+#include "gnunet_configuration_lib.h"
+#include "gnunet_crypto_lib.h"
+#include "gnunet_identity_service.h"
+#include "gnunet_mq_lib.h"
+#include "gnunet_protocols.h"
+#include "gnunet_scheduler_lib.h"
+#include "gnunet_time_lib.h"
+
+#define GNUNET_MESSENGER_SERVICE_NAME "messenger"
+
+/**
+ * Opaque handle to the messenger
+ */
+struct GNUNET_MESSENGER_Handle;
+
+/**
+ * Opaque handle to a room
+ */
+struct GNUNET_MESSENGER_Room;
+
+/**
+ * Opaque handle to a contact
+ */
+struct GNUNET_MESSENGER_Contact;
+
+/**
+ * Enum for the different supported kinds of messages
+ */
+enum GNUNET_MESSENGER_MessageKind
+{
+  GNUNET_MESSENGER_KIND_INFO = 1,
+
+  GNUNET_MESSENGER_KIND_JOIN = 2,
+  GNUNET_MESSENGER_KIND_LEAVE = 3,
+
+  GNUNET_MESSENGER_KIND_NAME = 4,
+  GNUNET_MESSENGER_KIND_KEY = 5,
+  GNUNET_MESSENGER_KIND_PEER = 6,
+  GNUNET_MESSENGER_KIND_ID = 7,
+
+  GNUNET_MESSENGER_KIND_MISS = 8,
+  GNUNET_MESSENGER_KIND_MERGE = 9,
+  GNUNET_MESSENGER_KIND_REQUEST = 10,
+
+  GNUNET_MESSENGER_KIND_INVITE = 11,
+  GNUNET_MESSENGER_KIND_TEXT = 12,
+  GNUNET_MESSENGER_KIND_FILE = 13,
+
+  GNUNET_MESSENGER_KIND_PRIVATE = 14,
+
+  GNUNET_MESSENGER_KIND_UNKNOWN = 0
+}__attribute__((__packed__));
+
+/**
+ * Get the name of a message <i>kind</i>.
+ *
+ * @param kind Kind of a message
+ * @return Name of that kind
+ */
+const char*
+GNUNET_MESSENGER_name_of_kind (enum GNUNET_MESSENGER_MessageKind kind);
+
+struct GNUNET_MESSENGER_MessageHeader
+{
+  struct GNUNET_IDENTITY_Signature signature;
+
+  struct GNUNET_TIME_AbsoluteNBO timestamp;
+
+  struct GNUNET_ShortHashCode sender_id;
+  struct GNUNET_HashCode previous;
+
+  enum GNUNET_MESSENGER_MessageKind kind;
+};
+
+struct GNUNET_MESSENGER_MessageInfo
+{
+  struct GNUNET_IDENTITY_PublicKey host_key;
+  struct GNUNET_ShortHashCode unique_id;
+};
+
+struct GNUNET_MESSENGER_MessageJoin
+{
+  struct GNUNET_IDENTITY_PublicKey key;
+};
+
+struct GNUNET_MESSENGER_MessageLeave
+{
+};
+
+struct GNUNET_MESSENGER_MessageName
+{
+  char *name;
+};
+
+struct GNUNET_MESSENGER_MessageKey
+{
+  struct GNUNET_IDENTITY_PublicKey key;
+};
+
+struct GNUNET_MESSENGER_MessagePeer
+{
+  struct GNUNET_PeerIdentity peer;
+};
+
+struct GNUNET_MESSENGER_MessageId
+{
+  struct GNUNET_ShortHashCode id;
+};
+
+struct GNUNET_MESSENGER_MessageMiss
+{
+  struct GNUNET_PeerIdentity peer;
+};
+
+struct GNUNET_MESSENGER_MessageMerge
+{
+  struct GNUNET_HashCode previous;
+};
+
+struct GNUNET_MESSENGER_MessageRequest
+{
+  struct GNUNET_HashCode hash;
+};
+
+struct GNUNET_MESSENGER_MessageInvite
+{
+  struct GNUNET_PeerIdentity door;
+  struct GNUNET_HashCode key;
+};
+
+struct GNUNET_MESSENGER_MessageText
+{
+  char *text;
+};
+
+struct GNUNET_MESSENGER_MessageFile
+{
+  struct GNUNET_CRYPTO_SymmetricSessionKey key;
+  struct GNUNET_HashCode hash;
+  char name[NAME_MAX];
+  char *uri;
+};
+
+struct GNUNET_MESSENGER_MessagePrivate
+{
+  struct GNUNET_CRYPTO_EcdhePublicKey key;
+
+  uint16_t length;
+  char *data;
+};
+
+struct GNUNET_MESSENGER_MessageBody
+{
+  union
+  {
+    struct GNUNET_MESSENGER_MessageInfo info;
+
+    struct GNUNET_MESSENGER_MessageJoin join;
+    struct GNUNET_MESSENGER_MessageLeave leave;
+
+    struct GNUNET_MESSENGER_MessageName name;
+    struct GNUNET_MESSENGER_MessageKey key;
+    struct GNUNET_MESSENGER_MessagePeer peer;
+    struct GNUNET_MESSENGER_MessageId id;
+
+    struct GNUNET_MESSENGER_MessageMiss miss;
+    struct GNUNET_MESSENGER_MessageMerge merge;
+    struct GNUNET_MESSENGER_MessageRequest request;
+
+    struct GNUNET_MESSENGER_MessageInvite invite;
+    struct GNUNET_MESSENGER_MessageText text;
+    struct GNUNET_MESSENGER_MessageFile file;
+
+    struct GNUNET_MESSENGER_MessagePrivate private;
+  };
+};
+
+/**
+ * Struct to a message
+ */
+struct GNUNET_MESSENGER_Message
+{
+  struct GNUNET_MESSENGER_MessageHeader header;
+  struct GNUNET_MESSENGER_MessageBody body;
+};
+
+/**
+ * Method called whenever the EGO of a <i>handle</i> changes or if the first 
connection fails
+ * to load a valid EGO and the anonymous keypair will be used instead.
+ *
+ * @param cls Closure from <i>GNUNET_MESSENGER_connect</i>
+ * @param handle Messenger handle
+ */
+typedef void
+(*GNUNET_MESSENGER_IdentityCallback) (void *cls, struct 
GNUNET_MESSENGER_Handle *handle);
+
+/**
+ * Method called whenever a message is sent or received from a <i>room</i>.
+ *
+ * @param cls Closure from <i>GNUNET_MESSENGER_connect</i>
+ * @param room Room handle
+ * @param message Newly received or sent message
+ * @param hash Hash identifying the message
+ */
+typedef void
+(*GNUNET_MESSENGER_MessageCallback) (void *cls, const struct 
GNUNET_MESSENGER_Room *room,
+                                     const struct GNUNET_MESSENGER_Message 
*message, const struct GNUNET_HashCode *hash);
+
+/**
+ * Set up a handle for the messenger related functions and connects to all 
necessary services. It will look up the ego
+ * key identified by its <i>name</i> and use it for signing all messages from 
the handle.
+ *
+ * @param cfg Configuration to use
+ * @param name Name to look up an ego or NULL to stay anonymous
+ * @param identity_callback Function called when the EGO of the handle changes
+ * @param identity_cls Closure for the <i>identity_callback</i> handler
+ * @param msg_callback Function called when a new message is sent or received
+ * @param msg_cls Closure for the <i>msg_callback</i> handler
+ * @return Messenger handle to use, NULL on error
+ */
+struct GNUNET_MESSENGER_Handle*
+GNUNET_MESSENGER_connect (const struct GNUNET_CONFIGURATION_Handle *cfg, const 
char *name,
+                          GNUNET_MESSENGER_IdentityCallback identity_callback, 
void *identity_cls,
+                          GNUNET_MESSENGER_MessageCallback msg_callback, void 
*msg_cls);
+
+/**
+ * Update a handle of the messenger to use a different ego key and replace the 
old one with a newly generated one. All
+ * participated rooms get informed about the key renewal. The handle requires 
a set name for this function to work and
+ * it needs to be unused by other egos.
+ *
+ * Keep in mind that this will fully delete the old ego key (if any is used) 
even if any other service wants to use it
+ * as default.
+ *
+ * @param handle Messenger handle to use
+ * @return GNUNET_OK on success, GNUNET_SYSERR on failure
+ */
+int
+GNUNET_MESSENGER_update (struct GNUNET_MESSENGER_Handle *handle);
+
+/**
+ * Disconnect all of the messengers used services and clears up its used 
memory.
+ *
+ * @param handle Messenger handle to use
+ */
+void
+GNUNET_MESSENGER_disconnect (struct GNUNET_MESSENGER_Handle *handle);
+
+/**
+ * Get the name (if specified, otherwise NULL) used by the messenger.
+ *
+ * @param handle Messenger handle to use
+ * @return Name used by the messenger or NULL
+ */
+const char*
+GNUNET_MESSENGER_get_name (const struct GNUNET_MESSENGER_Handle *handle);
+
+/**
+ * Set the name for the messenger. This will rename the currently used ego and 
move all stored files related to the current
+ * name to its new directory. If anything fails during this process the 
function returns GNUNET_NO and the name for
+ * the messenger won't change as specified.
+ *
+ * @param handle Messenger handle to use
+ * @param name Name for the messenger to change to
+ * @return GNUNET_YES on success, GNUNET_NO on failure and GNUNET_SYSERR if 
<i>handle</i> is NULL
+ */
+int
+GNUNET_MESSENGER_set_name (struct GNUNET_MESSENGER_Handle *handle, const char 
*name);
+
+/**
+ * Get the public key used by the messenger.
+ *
+ * @param handle Messenger handle to use
+ * @return Used ego's public key
+ */
+const struct GNUNET_IDENTITY_PublicKey*
+GNUNET_MESSENGER_get_key (const struct GNUNET_MESSENGER_Handle *handle);
+
+/**
+ * Open a room to send and receive messages. The room will use the specified 
<i>key</i> as port for the underlying cadet
+ * service. Opening a room results in opening the port for incoming 
connections as possible <b>door</b>.
+ *
+ * Notice that there can only be one room related to a specific <i>key</i>. So 
trying to open two rooms with the same
+ * <i>key</i> will result in opening the room once but returning the handle 
both times because the room stays open.
+ *
+ * You can also open a room after entering it through a <b>door</b> using 
<i>GNUNET_MESSENGER_entry_room(...)</i>. This
+ * will notify all entered <b>doors</b> to list you as new <b>door</b>.
+ *
+ * ( All <b>doors</b> form a ring structured network to shorten the latency 
sending and receiving messages. )
+ *
+ * @param handle Messenger handle to use
+ * @param key Hash identifying the port
+ * @return Room handle, NULL on error
+ */
+struct GNUNET_MESSENGER_Room*
+GNUNET_MESSENGER_open_room (struct GNUNET_MESSENGER_Handle *handle, const 
struct GNUNET_HashCode *key);
+
+/**
+ * Enter a room to send and receive messages through a <b>door</b> opened 
using <i>GNUNET_MESSENGER_open_room(...)</i>.
+ *
+ * Notice that there can only be one room related to a specific <i>key</i>. So 
trying to enter two rooms with the same
+ * <i>key</i> will result in entering the room once but returning the handle 
both times because the room stays entered.
+ * You can however enter a room through multiple <b>doors</b> in parallel 
which results in connecting both ends. But
+ * entering the room through the same <b>door</b> won't have any effect after 
the first time.
+ *
+ * You can also enter a room through a <b>door</b> after opening it using 
<i>GNUNET_MESSENGER_open_room(...)</i>. But the
+ * <b>door</b> may not be your own peer identity.
+ *
+ * ( All <b>doors</b> form a ring structured network to shorten the latency 
sending and receiving messages. )
+ *
+ * @param handle Messenger handle to use
+ * @param door Peer identity of an open <b>door</b>
+ * @param key Hash identifying the port
+ * @return Room handle, NULL on error
+ */
+struct GNUNET_MESSENGER_Room*
+GNUNET_MESSENGER_entry_room (struct GNUNET_MESSENGER_Handle *handle, const 
struct GNUNET_PeerIdentity *door,
+                             const struct GNUNET_HashCode *key);
+
+/**
+ * Close a room which was entered, opened or both in various order and 
variety. Closing a room will destroy all connections
+ * from your peer to another and the other way around.
+ *
+ * ( After a member closes a <b>door</b>, all members entered through that 
specific <b>door</b> have to use another one
+ * or open the room on their own. )
+ *
+ * @param room Room handle
+ */
+void
+GNUNET_MESSENGER_close_room (struct GNUNET_MESSENGER_Room *room);
+
+/**
+ * Get the contact of a member in a <i>room</i> identified by their <i>id</i>.
+ *
+ * Notice that contacts are independent of rooms but will be removed if all 
rooms containing these contacts get closed.
+ *
+ * @param room Room handle
+ * @param id Hash identifying a member
+ * @return Contact handle, NULL if <i>id</i> is not in use
+ */
+struct GNUNET_MESSENGER_Contact*
+GNUNET_MESSENGER_get_member (const struct GNUNET_MESSENGER_Room *room, const 
struct GNUNET_ShortHashCode *id);
+
+/**
+ * Get the name used by the <i>contact</i>.
+ *
+ * @param contact Contact handle
+ * @return Name of <i>contact</i> or NULL
+ */
+const char*
+GNUNET_MESSENGER_contact_get_name (const struct GNUNET_MESSENGER_Contact 
*contact);
+
+/**
+ * Get the public key used by the <i>contact</i>.
+ *
+ * @param contact Contact handle
+ * @return Public key of the ego used by <i>contact</i>
+ */
+const struct GNUNET_IDENTITY_PublicKey*
+GNUNET_MESSENGER_contact_get_key (const struct GNUNET_MESSENGER_Contact 
*contact);
+
+/**
+ * Send a <i>message</i> into a </i>room</i>. If you opened the <i>room</i> 
all entered members will receive the
+ * <i>message</i>. If you entered the <i>room</i> through a <b>door</b> all so 
entered <b>doors</b> will receive the
+ * <i>message</i> as well. All members receiving the <i>message</i> will also 
propagate this <i>message</i> recursively
+ * as long as the <i>message</i> is unknown to them.
+ *
+ * Notice that all messages sent and received are also stored and can be 
propagated to new members entering the room.
+ *
+ * @param room Room handle
+ * @param message New message to send
+ */
+void
+GNUNET_MESSENGER_send_message (struct GNUNET_MESSENGER_Room *room, const 
struct GNUNET_MESSENGER_Message *message);
+
+/**
+ * Get the message in a <i>room</i> identified by its <i>hash</i>.
+ *
+ * @param room Room handle
+ * @param hash Hash identifying a message
+ * @return Message struct or NULL if no message with that hash is known
+ */
+const struct GNUNET_MESSENGER_Message*
+GNUNET_MESSENGER_get_message (const struct GNUNET_MESSENGER_Room *room, const 
struct GNUNET_HashCode *hash);
+
+#if 0 /* keep Emacsens' auto-indent happy */
+{
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+#endif //GNUNET_MESSENGER_SERVICE_H
+
+/** @} *//* end of group */
diff --git a/src/include/gnunet_namestore_plugin.h 
b/src/include/gnunet_namestore_plugin.h
index 443c9e451..9cc8abc6e 100644
--- a/src/include/gnunet_namestore_plugin.h
+++ b/src/include/gnunet_namestore_plugin.h
@@ -58,7 +58,7 @@ typedef void
 (*GNUNET_NAMESTORE_RecordIterator) (void *cls,
                                     uint64_t serial,
                                     const struct
-                                    GNUNET_CRYPTO_EcdsaPrivateKey *private_key,
+                                    GNUNET_IDENTITY_PrivateKey *private_key,
                                     const char *label,
                                     unsigned int rd_count,
                                     const struct GNUNET_GNSRECORD_Data *rd);
@@ -87,7 +87,7 @@ struct GNUNET_NAMESTORE_PluginFunctions
    */
   int
   (*store_records) (void *cls,
-                    const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
+                    const struct GNUNET_IDENTITY_PrivateKey *zone,
                     const char *label,
                     unsigned int rd_count,
                     const struct GNUNET_GNSRECORD_Data *rd);
@@ -104,7 +104,7 @@ struct GNUNET_NAMESTORE_PluginFunctions
    */
   int
   (*lookup_records) (void *cls,
-                     const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
+                     const struct GNUNET_IDENTITY_PrivateKey *zone,
                      const char *label,
                      GNUNET_NAMESTORE_RecordIterator iter,
                      void *iter_cls);
@@ -126,7 +126,7 @@ struct GNUNET_NAMESTORE_PluginFunctions
    */
   int
   (*iterate_records) (void *cls,
-                      const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
+                      const struct GNUNET_IDENTITY_PrivateKey *zone,
                       uint64_t serial,
                       uint64_t limit,
                       GNUNET_NAMESTORE_RecordIterator iter,
@@ -146,8 +146,8 @@ struct GNUNET_NAMESTORE_PluginFunctions
    */
   int
   (*zone_to_name) (void *cls,
-                   const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone,
-                   const struct GNUNET_CRYPTO_EcdsaPublicKey *value_zone,
+                   const struct GNUNET_IDENTITY_PrivateKey *zone,
+                   const struct GNUNET_IDENTITY_PublicKey *value_zone,
                    GNUNET_NAMESTORE_RecordIterator iter,
                    void *iter_cls);
 };
diff --git a/src/include/gnunet_namestore_service.h 
b/src/include/gnunet_namestore_service.h
index bf42c8d34..ca4d2cb52 100644
--- a/src/include/gnunet_namestore_service.h
+++ b/src/include/gnunet_namestore_service.h
@@ -41,6 +41,7 @@
 #include "gnunet_util_lib.h"
 #include "gnunet_block_lib.h"
 #include "gnunet_gnsrecord_lib.h"
+#include "gnunet_identity_service.h"
 
 #ifdef __cplusplus
 extern "C"
@@ -127,7 +128,7 @@ typedef void
 struct GNUNET_NAMESTORE_QueueEntry *
 GNUNET_NAMESTORE_records_store (struct GNUNET_NAMESTORE_Handle *h,
                                 const struct
-                                GNUNET_CRYPTO_EcdsaPrivateKey *pkey,
+                                GNUNET_IDENTITY_PrivateKey *pkey,
                                 const char *label,
                                 unsigned int rd_count,
                                 const struct GNUNET_GNSRECORD_Data *rd,
@@ -147,7 +148,7 @@ GNUNET_NAMESTORE_records_store (struct 
GNUNET_NAMESTORE_Handle *h,
 typedef void
 (*GNUNET_NAMESTORE_RecordMonitor) (void *cls,
                                    const struct
-                                   GNUNET_CRYPTO_EcdsaPrivateKey *zone,
+                                   GNUNET_IDENTITY_PrivateKey *zone,
                                    const char *label,
                                    unsigned int rd_count,
                                    const struct GNUNET_GNSRECORD_Data *rd);
@@ -170,7 +171,7 @@ typedef void
 struct GNUNET_NAMESTORE_QueueEntry *
 GNUNET_NAMESTORE_records_lookup (struct GNUNET_NAMESTORE_Handle *h,
                                  const struct
-                                 GNUNET_CRYPTO_EcdsaPrivateKey *pkey,
+                                 GNUNET_IDENTITY_PrivateKey *pkey,
                                  const char *label,
                                  GNUNET_SCHEDULER_TaskCallback error_cb,
                                  void *error_cb_cls,
@@ -197,9 +198,9 @@ GNUNET_NAMESTORE_records_lookup (struct 
GNUNET_NAMESTORE_Handle *h,
  */
 struct GNUNET_NAMESTORE_QueueEntry *
 GNUNET_NAMESTORE_zone_to_name (struct GNUNET_NAMESTORE_Handle *h,
-                               const struct GNUNET_CRYPTO_EcdsaPrivateKey 
*zone,
+                               const struct GNUNET_IDENTITY_PrivateKey *zone,
                                const struct
-                               GNUNET_CRYPTO_EcdsaPublicKey *value_zone,
+                               GNUNET_IDENTITY_PublicKey *value_zone,
                                GNUNET_SCHEDULER_TaskCallback error_cb,
                                void *error_cb_cls,
                                GNUNET_NAMESTORE_RecordMonitor proc,
@@ -246,7 +247,7 @@ GNUNET_NAMESTORE_cancel (struct GNUNET_NAMESTORE_QueueEntry 
*qe);
 struct GNUNET_NAMESTORE_ZoneIterator *
 GNUNET_NAMESTORE_zone_iteration_start (struct GNUNET_NAMESTORE_Handle *h,
                                        const struct
-                                       GNUNET_CRYPTO_EcdsaPrivateKey *zone,
+                                       GNUNET_IDENTITY_PrivateKey *zone,
                                        GNUNET_SCHEDULER_TaskCallback error_cb,
                                        void *error_cb_cls,
                                        GNUNET_NAMESTORE_RecordMonitor proc,
@@ -316,7 +317,7 @@ struct GNUNET_NAMESTORE_ZoneMonitor *
 GNUNET_NAMESTORE_zone_monitor_start (const struct
                                      GNUNET_CONFIGURATION_Handle *cfg,
                                      const struct
-                                     GNUNET_CRYPTO_EcdsaPrivateKey *zone,
+                                     GNUNET_IDENTITY_PrivateKey *zone,
                                      int iterate_first,
                                      GNUNET_SCHEDULER_TaskCallback error_cb,
                                      void *error_cb_cls,
diff --git a/src/include/gnunet_pq_lib.h b/src/include/gnunet_pq_lib.h
index ca549f77c..de717526c 100644
--- a/src/include/gnunet_pq_lib.h
+++ b/src/include/gnunet_pq_lib.h
@@ -1,6 +1,6 @@
 /*
    This file is part of GNUnet
-   Copyright (C) 2016, 2017 GNUnet e.V.
+   Copyright (C) 2016, 2017, 2020 GNUnet e.V.
 
    GNUnet is free software: you can redistribute it and/or modify it
    under the terms of the GNU Affero General Public License as published
@@ -87,6 +87,7 @@ struct GNUNET_PQ_QueryParam
    * Number of parameters eaten by this operation.
    */
   unsigned int num_params;
+
 };
 
 
@@ -99,21 +100,33 @@ struct GNUNET_PQ_QueryParam
   }
 
 
+/**
+ * Generate query parameter to create a NULL value.
+ *
+ * @return query parameter to use to insert NULL into DB
+ */
+struct GNUNET_PQ_QueryParam
+GNUNET_PQ_query_param_null (void);
+
+
 /**
  * Generate query parameter for a buffer @a ptr of
  * @a ptr_size bytes.
  *
  * @param ptr pointer to the query parameter to pass
  * @oaran ptr_size number of bytes in @a ptr
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
-GNUNET_PQ_query_param_fixed_size (const void *ptr, size_t ptr_size);
+GNUNET_PQ_query_param_fixed_size (const void *ptr,
+                                  size_t ptr_size);
 
 
 /**
  * Generate query parameter for a string.
  *
  * @param ptr pointer to the string query parameter to pass
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
 GNUNET_PQ_query_param_string (const char *ptr);
@@ -124,6 +137,7 @@ GNUNET_PQ_query_param_string (const char *ptr);
  * by variable type.
  *
  * @param x pointer to the query parameter to pass.
+ * @return query parameter to use
  */
 #define GNUNET_PQ_query_param_auto_from_type(x) \
   GNUNET_PQ_query_param_fixed_size ((x), sizeof(*(x)))
@@ -134,6 +148,7 @@ GNUNET_PQ_query_param_string (const char *ptr);
  * database must contain a BLOB type in the respective position.
  *
  * @param x the query parameter to pass.
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
 GNUNET_PQ_query_param_rsa_public_key (
@@ -145,6 +160,7 @@ GNUNET_PQ_query_param_rsa_public_key (
  * database must contain a BLOB type in the respective position.
  *
  * @param x the query parameter to pass
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
 GNUNET_PQ_query_param_rsa_signature (
@@ -156,6 +172,7 @@ GNUNET_PQ_query_param_rsa_signature (
  * The database must store a 64-bit integer.
  *
  * @param x pointer to the query parameter to pass
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
 GNUNET_PQ_query_param_relative_time (const struct GNUNET_TIME_Relative *x);
@@ -166,6 +183,7 @@ GNUNET_PQ_query_param_relative_time (const struct 
GNUNET_TIME_Relative *x);
  * The database must store a 64-bit integer.
  *
  * @param x pointer to the query parameter to pass
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
 GNUNET_PQ_query_param_absolute_time (const struct GNUNET_TIME_Absolute *x);
@@ -176,6 +194,7 @@ GNUNET_PQ_query_param_absolute_time (const struct 
GNUNET_TIME_Absolute *x);
  * The database must store a 64-bit integer.
  *
  * @param x pointer to the query parameter to pass
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
 GNUNET_PQ_query_param_absolute_time_nbo (
@@ -186,6 +205,7 @@ GNUNET_PQ_query_param_absolute_time_nbo (
  * Generate query parameter for an uint16_t in host byte order.
  *
  * @param x pointer to the query parameter to pass
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
 GNUNET_PQ_query_param_uint16 (const uint16_t *x);
@@ -195,6 +215,7 @@ GNUNET_PQ_query_param_uint16 (const uint16_t *x);
  * Generate query parameter for an uint32_t in host byte order.
  *
  * @param x pointer to the query parameter to pass
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
 GNUNET_PQ_query_param_uint32 (const uint32_t *x);
@@ -204,6 +225,7 @@ GNUNET_PQ_query_param_uint32 (const uint32_t *x);
  * Generate query parameter for an uint16_t in host byte order.
  *
  * @param x pointer to the query parameter to pass
+ * @return query parameter to use
  */
 struct GNUNET_PQ_QueryParam
 GNUNET_PQ_query_param_uint64 (const uint64_t *x);
@@ -288,6 +310,20 @@ struct GNUNET_PQ_ResultSpec
    * Where to store actual size of the result.
    */
   size_t *result_size;
+  
+  /**
+   * True if NULL is allowed for a value in the database.
+   */
+  bool is_nullable;
+
+  /**
+   * Points to a location where we should store
+   * "true" if the result found is NULL, and
+   * otherwise "false". Only used if @e is_nullable
+   * is true.
+   */
+  bool *is_null;
+
 };
 
 
@@ -302,6 +338,21 @@ struct GNUNET_PQ_ResultSpec
   }
 
 
+/**
+ * Allow NULL value to be found in the database
+ * for the given value.
+ *
+ * @param rs result spec entry to modify
+ * @param[out] is_null location set to 'true' if the
+ *     value was indeed NULL, set to 'false' if the
+ *     value was non-NULL
+ * @return array entry for the result specification to use
+ */
+struct GNUNET_PQ_ResultSpec
+GNUNET_PQ_result_spec_allow_null (struct GNUNET_PQ_ResultSpec rs,
+                                  bool *is_null);
+
+
 /**
  * Variable-size result expected.
  *
diff --git a/src/include/gnunet_protocols.h b/src/include/gnunet_protocols.h
index d9821ffe8..3bdebeb50 100644
--- a/src/include/gnunet_protocols.h
+++ b/src/include/gnunet_protocols.h
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     Copyright (C) 2001--2018 GNUnet e.V.
+     Copyright (C) 2001--2020 GNUnet e.V.
 
      GNUnet is free software: you can redistribute it and/or modify it
      under the terms of the GNU Affero General Public License as published
@@ -20,6 +20,7 @@
 
 /**
  * @author Christian Grothoff
+ * @author Tobias Frisch
  *
  * @file
  * Constants for network protocols
@@ -3518,6 +3519,46 @@ extern "C" {
 #define GNUNET_MESSAGE_TYPE_RECLAIM_REFERENCE_RESULT 1501
 
 
+/*********************************************************************************/
+/**********************************  MESSENGER  
**********************************/
+/*********************************************************************************/
+/* MESSENGER: message types 1600-1629
+ * 1600-1609 Connection-level Messages
+ * 1610-1619 Room-level Messages
+ */
+
+/*********************************  Connection  
**********************************/
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_CREATE 1600
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_UPDATE 1601
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_DESTROY 1602
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_GET_NAME 1603
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_SET_NAME 1604
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_GET_KEY 1605
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_MEMBER_ID 1606
+
+/************************************  Room  
*************************************/
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_OPEN 1610
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_ENTRY 1611
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_CLOSE 1612
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_SEND_MESSAGE 1614
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_RECV_MESSAGE 1615
+
+#define GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_GET_MESSAGE 1616
+
+/*********************************************************************************/
+
 /**
  * Type used to match 'all' message types.
  */
diff --git a/src/include/gnunet_reclaim_service.h 
b/src/include/gnunet_reclaim_service.h
index 368058f56..8549081a1 100644
--- a/src/include/gnunet_reclaim_service.h
+++ b/src/include/gnunet_reclaim_service.h
@@ -38,6 +38,7 @@ extern "C" {
 #endif
 #endif
 
+#include "gnunet_identity_service.h"
 #include "gnunet_reclaim_lib.h"
 #include "gnunet_util_lib.h"
 
@@ -69,12 +70,12 @@ struct GNUNET_RECLAIM_Ticket
   /**
    * The ticket issuer (= the user)
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey identity;
+  struct GNUNET_IDENTITY_PublicKey identity;
 
   /**
    * The ticket audience (= relying party)
    */
-  struct GNUNET_CRYPTO_EcdsaPublicKey audience;
+  struct GNUNET_IDENTITY_PublicKey audience;
 
   /**
    * The ticket random identifier
@@ -129,7 +130,7 @@ typedef void (*GNUNET_RECLAIM_ContinuationWithStatus) (void 
*cls,
  * @param attr The attribute
  */
 typedef void (*GNUNET_RECLAIM_AttributeResult) (
-  void *cls, const struct GNUNET_CRYPTO_EcdsaPublicKey *identity,
+  void *cls, const struct GNUNET_IDENTITY_PublicKey *identity,
   const struct GNUNET_RECLAIM_Attribute *attr);
 
 /**
@@ -141,7 +142,7 @@ typedef void (*GNUNET_RECLAIM_AttributeResult) (
  * @param presentation The presentation for the credential (may be NULL)
  */
 typedef void (*GNUNET_RECLAIM_AttributeTicketResult) (
-  void *cls, const struct GNUNET_CRYPTO_EcdsaPublicKey *identity,
+  void *cls, const struct GNUNET_IDENTITY_PublicKey *identity,
   const struct GNUNET_RECLAIM_Attribute *attr,
   const struct GNUNET_RECLAIM_Presentation *presentation);
 
@@ -155,7 +156,7 @@ typedef void (*GNUNET_RECLAIM_AttributeTicketResult) (
  * @param attributes the parsed attributes
  */
 typedef void (*GNUNET_RECLAIM_CredentialResult) (
-  void *cls, const struct GNUNET_CRYPTO_EcdsaPublicKey *identity,
+  void *cls, const struct GNUNET_IDENTITY_PublicKey *identity,
   const struct GNUNET_RECLAIM_Credential *credential);
 
 
@@ -184,7 +185,7 @@ GNUNET_RECLAIM_connect (const struct 
GNUNET_CONFIGURATION_Handle *cfg);
 struct GNUNET_RECLAIM_Operation *
 GNUNET_RECLAIM_attribute_store (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *pkey,
+  const struct GNUNET_IDENTITY_PrivateKey *pkey,
   const struct GNUNET_RECLAIM_Attribute *attr,
   const struct GNUNET_TIME_Relative *exp_interval,
   GNUNET_RECLAIM_ContinuationWithStatus cont, void *cont_cls);
@@ -205,7 +206,7 @@ GNUNET_RECLAIM_attribute_store (
 struct GNUNET_RECLAIM_Operation *
 GNUNET_RECLAIM_credential_store (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *pkey,
+  const struct GNUNET_IDENTITY_PrivateKey *pkey,
   const struct GNUNET_RECLAIM_Credential *credential,
   const struct GNUNET_TIME_Relative *exp_interval,
   GNUNET_RECLAIM_ContinuationWithStatus cont,
@@ -226,7 +227,7 @@ GNUNET_RECLAIM_credential_store (
 struct GNUNET_RECLAIM_Operation *
 GNUNET_RECLAIM_attribute_delete (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *pkey,
+  const struct GNUNET_IDENTITY_PrivateKey *pkey,
   const struct GNUNET_RECLAIM_Attribute *attr,
   GNUNET_RECLAIM_ContinuationWithStatus cont, void *cont_cls);
 
@@ -244,7 +245,7 @@ GNUNET_RECLAIM_attribute_delete (
 struct GNUNET_RECLAIM_Operation *
 GNUNET_RECLAIM_credential_delete (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *pkey,
+  const struct GNUNET_IDENTITY_PrivateKey *pkey,
   const struct GNUNET_RECLAIM_Credential *cred,
   GNUNET_RECLAIM_ContinuationWithStatus cont,
   void *cont_cls);
@@ -276,7 +277,7 @@ GNUNET_RECLAIM_credential_delete (
 struct GNUNET_RECLAIM_AttributeIterator *
 GNUNET_RECLAIM_get_attributes_start (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity,
+  const struct GNUNET_IDENTITY_PrivateKey *identity,
   GNUNET_SCHEDULER_TaskCallback error_cb, void *error_cb_cls,
   GNUNET_RECLAIM_AttributeResult proc, void *proc_cls,
   GNUNET_SCHEDULER_TaskCallback finish_cb, void *finish_cb_cls);
@@ -332,7 +333,7 @@ GNUNET_RECLAIM_get_attributes_stop (
 struct GNUNET_RECLAIM_CredentialIterator *
 GNUNET_RECLAIM_get_credentials_start (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity,
+  const struct GNUNET_IDENTITY_PrivateKey *identity,
   GNUNET_SCHEDULER_TaskCallback error_cb,
   void *error_cb_cls,
   GNUNET_RECLAIM_CredentialResult proc,
@@ -380,8 +381,8 @@ GNUNET_RECLAIM_get_credentials_stop (
 struct GNUNET_RECLAIM_Operation *
 GNUNET_RECLAIM_ticket_issue (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *iss,
-  const struct GNUNET_CRYPTO_EcdsaPublicKey *rp,
+  const struct GNUNET_IDENTITY_PrivateKey *iss,
+  const struct GNUNET_IDENTITY_PublicKey *rp,
   const struct GNUNET_RECLAIM_AttributeList *attrs,
   GNUNET_RECLAIM_IssueTicketCallback cb, void *cb_cls);
 
@@ -402,7 +403,7 @@ GNUNET_RECLAIM_ticket_issue (
 struct GNUNET_RECLAIM_Operation *
 GNUNET_RECLAIM_ticket_revoke (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity,
+  const struct GNUNET_IDENTITY_PrivateKey *identity,
   const struct GNUNET_RECLAIM_Ticket *ticket,
   GNUNET_RECLAIM_ContinuationWithStatus cb, void *cb_cls);
 
@@ -422,7 +423,7 @@ GNUNET_RECLAIM_ticket_revoke (
 struct GNUNET_RECLAIM_Operation *
 GNUNET_RECLAIM_ticket_consume (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity,
+  const struct GNUNET_IDENTITY_PrivateKey *identity,
   const struct GNUNET_RECLAIM_Ticket *ticket,
   GNUNET_RECLAIM_AttributeTicketResult cb, void *cb_cls);
 
@@ -447,7 +448,7 @@ GNUNET_RECLAIM_ticket_consume (
 struct GNUNET_RECLAIM_TicketIterator *
 GNUNET_RECLAIM_ticket_iteration_start (
   struct GNUNET_RECLAIM_Handle *h,
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *identity,
+  const struct GNUNET_IDENTITY_PrivateKey *identity,
   GNUNET_SCHEDULER_TaskCallback error_cb, void *error_cb_cls,
   GNUNET_RECLAIM_TicketCallback proc, void *proc_cls,
   GNUNET_SCHEDULER_TaskCallback finish_cb, void *finish_cb_cls);
diff --git a/src/include/gnunet_revocation_service.h 
b/src/include/gnunet_revocation_service.h
index 105bb1149..d56116914 100644
--- a/src/include/gnunet_revocation_service.h
+++ b/src/include/gnunet_revocation_service.h
@@ -21,6 +21,8 @@
 #ifndef GNUNET_REVOCATION_SERVICE_H_
 #define GNUNET_REVOCATION_SERVICE_H_
 
+#include "gnunet_identity_service.h"
+
 /**
  * @author Christian Grothoff
  *
@@ -50,6 +52,13 @@ extern "C"
  */
 #define GNUNET_REVOCATION_VERSION 0x00000001
 
+/**
+ * Maximum length of a revocation
+ */
+#define GNUNET_REVOCATION_MAX_PROOF_SIZE sizeof(struct GNUNET_REVOCATION_PowP) 
+\
+                                         sizeof(struct 
GNUNET_IDENTITY_PublicKey) +\
+                                         1024 //FIXME max sig_len
+
 /**
  * The proof-of-work narrowing factor.
  * The number of PoWs that are calculates as part of revocation.
@@ -79,15 +88,7 @@ struct GNUNET_REVOCATION_PowP
    */
   uint64_t pow[POW_COUNT] GNUNET_PACKED;
 
-  /**
-   * The signature
-   */
-  struct GNUNET_CRYPTO_EcdsaSignature signature;
-
-  /**
-   * The revoked public key
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey key;
+  /** followed by the public key type, the key and a signature **/
 };
 
 
@@ -101,15 +102,12 @@ struct GNUNET_REVOCATION_SignaturePurposePS
    */
   struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
-  /**
-   * The revoked public key
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey key;
-
   /**
    * The timestamp of the revocation
    */
   struct GNUNET_TIME_AbsoluteNBO timestamp;
+
+  /** Followed by the zone public key type and key **/
 };
 
 GNUNET_NETWORK_STRUCT_END
@@ -150,7 +148,7 @@ typedef void (*GNUNET_REVOCATION_Callback) (void *cls,
  */
 struct GNUNET_REVOCATION_Query *
 GNUNET_REVOCATION_query (const struct GNUNET_CONFIGURATION_Handle *cfg,
-                         const struct GNUNET_CRYPTO_EcdsaPublicKey *key,
+                         const struct GNUNET_IDENTITY_PublicKey *key,
                          GNUNET_REVOCATION_Callback func, void *func_cls);
 
 
@@ -217,7 +215,7 @@ GNUNET_REVOCATION_check_pow (const struct 
GNUNET_REVOCATION_PowP *pow,
  * @param pow the pow object to work with in the calculation.
  */
 void
-GNUNET_REVOCATION_pow_init (const struct GNUNET_CRYPTO_EcdsaPrivateKey *key,
+GNUNET_REVOCATION_pow_init (const struct GNUNET_IDENTITY_PrivateKey *key,
                             struct GNUNET_REVOCATION_PowP *pow);
 
 
@@ -256,6 +254,10 @@ GNUNET_REVOCATION_pow_round (struct 
GNUNET_REVOCATION_PowCalculationHandle *pc);
 void
 GNUNET_REVOCATION_pow_stop (struct GNUNET_REVOCATION_PowCalculationHandle *pc);
 
+size_t
+GNUNET_REVOCATION_proof_get_size (const struct GNUNET_REVOCATION_PowP *pow);
+
+
 #if 0                           /* keep Emacsens' auto-indent happy */
 {
 #endif
diff --git a/src/include/gnunet_uri_lib.h b/src/include/gnunet_uri_lib.h
index d428bdd9a..57c9e9316 100644
--- a/src/include/gnunet_uri_lib.h
+++ b/src/include/gnunet_uri_lib.h
@@ -26,12 +26,13 @@
 /**
  * The struct where the parsed values will be stored:
  *
- * scheme ":" [ "//" ] [ username ":" password "@" ] host [ ":" port ] [ "/" ] 
[ path ] [ "?" query ]
+ * scheme ":" [ "//" ] [ username ":" password "@" ] host [ ":" port ] [ "/" ] 
[ path ] [ "?" query ] [ "#" fragment ]
  *
  * Note: to make sure that no strings are copied, the first slash "/" in the
  * path will be used to null terminate the hostname if no port is supplied.
  */
-struct GNUNET_Uri {
+struct GNUNET_Uri
+{
   char *scheme; /* scheme, without ":" and "//" */
   char *username; /* username, default: NULL */
   char *password; /* password, default: NULL */
@@ -44,7 +45,8 @@ struct GNUNET_Uri {
 
 
 /* A struct to hold the query string parameter values. */
-struct GNUNET_UriParam {
+struct GNUNET_UriParam
+{
   char *key;
   char *val;
 };
diff --git a/src/json/Makefile.am b/src/json/Makefile.am
index 2ed05c35a..d4ea38adf 100644
--- a/src/json/Makefile.am
+++ b/src/json/Makefile.am
@@ -18,18 +18,15 @@ libgnunetjson_la_SOURCES = \
   json.c \
   json_mhd.c \
   json_generator.c \
-  json_helper.c \
-  json_gnsrecord.c
+  json_helper.c
 libgnunetjson_la_LIBADD = \
   $(top_builddir)/src/util/libgnunetutil.la \
-  $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la \
   -ljansson \
   $(MHD_LIBS) \
   $(XLIB) \
   $(Z_LIBS)
 libgnunetjson_la_DEPENDENCIES = \
-  $(top_builddir)/src/util/libgnunetutil.la \
-  $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la
+  $(top_builddir)/src/util/libgnunetutil.la
 
 
 check_PROGRAMS = \
diff --git a/src/json/json.c b/src/json/json.c
index 0631c51bb..503702962 100644
--- a/src/json/json.c
+++ b/src/json/json.c
@@ -56,11 +56,17 @@ GNUNET_JSON_parse (const json_t *root,
     if (NULL == spec[i].field)
       pos = (json_t *) root;
     else
-      pos = json_object_get (root, spec[i].field);
-    if ((NULL == pos) && (spec[i].is_optional))
+      pos = json_object_get (root,
+                             spec[i].field);
+    if ( ( (NULL == pos) ||
+           (json_is_null (pos) ) ) &&
+         (spec[i].is_optional) )
       continue;
-    if ((NULL == pos) ||
-        (GNUNET_OK != spec[i].parser (spec[i].cls, pos, &spec[i])))
+    if ( (NULL == pos) ||
+         (GNUNET_OK !=
+          spec[i].parser (spec[i].cls,
+                          pos,
+                          &spec[i])) )
     {
       if (NULL != error_json_name)
         *error_json_name = spec[i].field;
diff --git a/src/json/json_generator.c b/src/json/json_generator.c
index 3f82a5f17..5806eb174 100644
--- a/src/json/json_generator.c
+++ b/src/json/json_generator.c
@@ -201,113 +201,5 @@ GNUNET_JSON_from_rsa_signature (const struct 
GNUNET_CRYPTO_RsaSignature *sig)
 }
 
 
-/**
- * Convert GNS record to JSON.
- *
- * @param rname name of record
- * @param rd record data
- * @return corresponding JSON encoding
- */
-json_t *
-GNUNET_JSON_from_gnsrecord (const char*rname,
-                            const struct GNUNET_GNSRECORD_Data *rd,
-                            unsigned int rd_count)
-{
-  struct GNUNET_TIME_Absolute abs_exp;
-  struct GNUNET_TIME_Relative rel_exp;
-  const char *expiration_time_str;
-  const char *record_type_str;
-  char *value_str;
-  json_t *data;
-  json_t *record;
-  json_t *records;
-
-  data = json_object ();
-  if (NULL == data)
-  {
-    GNUNET_break (0);
-    return NULL;
-  }
-  if (0 !=
-      json_object_set_new (data,
-                           "record_name",
-                           json_string (rname)))
-  {
-    GNUNET_break (0);
-    json_decref (data);
-    return NULL;
-  }
-  records = json_array ();
-  if (NULL == records)
-  {
-    GNUNET_break (0);
-    json_decref (data);
-    return NULL;
-  }
-  for (int i = 0; i < rd_count; i++)
-  {
-    value_str = GNUNET_GNSRECORD_value_to_string (rd[i].record_type,
-                                                  rd[i].data,
-                                                  rd[i].data_size);
-    if (GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION & rd[i].flags)
-    {
-      rel_exp.rel_value_us = rd[i].expiration_time;
-      expiration_time_str = GNUNET_STRINGS_relative_time_to_string (rel_exp,
-                                                                    GNUNET_NO);
-    }
-    else
-    {
-      abs_exp.abs_value_us = rd[i].expiration_time;
-      expiration_time_str = GNUNET_STRINGS_absolute_time_to_string (abs_exp);
-    }
-    record_type_str = GNUNET_GNSRECORD_number_to_typename (rd[i].record_type);
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                "Packing %s %s %s %d\n",
-                value_str, record_type_str, expiration_time_str, rd[i].flags);
-    record = json_pack ("{s:s,s:s,s:s,s:b,s:b,s:b,s:b}",
-                        "value",
-                        value_str,
-                        "record_type",
-                        record_type_str,
-                        "expiration_time",
-                        expiration_time_str,
-                        "private",
-                        rd[i].flags & GNUNET_GNSRECORD_RF_PRIVATE,
-                        "relative_expiration",
-                        rd[i].flags & GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION,
-                        "supplemental",
-                        rd[i].flags & GNUNET_GNSRECORD_RF_SUPPLEMENTAL,
-                        "shadow",
-                        rd[i].flags & GNUNET_GNSRECORD_RF_SHADOW_RECORD);
-    GNUNET_free (value_str);
-    if (NULL == record)
-    {
-      GNUNET_break (0);
-      json_decref (records);
-      json_decref (data);
-      return NULL;
-    }
-    if (0 !=
-        json_array_append_new (records,
-                               record))
-    {
-      GNUNET_break (0);
-      json_decref (records);
-      json_decref (data);
-      return NULL;
-    }
-  }
-  if (0 !=
-      json_object_set_new (data,
-                           "data",
-                           records))
-  {
-    GNUNET_break (0);
-    json_decref (data);
-    return NULL;
-  }
-  return data;
-}
-
 
 /* End of json/json_generator.c */
diff --git a/src/messenger/.gitignore b/src/messenger/.gitignore
new file mode 100644
index 000000000..9de3fb304
--- /dev/null
+++ b/src/messenger/.gitignore
@@ -0,0 +1,4 @@
+gnunet-service-messenger
+gnunet-messenger
+test_messenger_api
+test_messenger_anonymous
diff --git a/src/messenger/Makefile.am b/src/messenger/Makefile.am
new file mode 100644
index 000000000..ebe08290e
--- /dev/null
+++ b/src/messenger/Makefile.am
@@ -0,0 +1,131 @@
+# This Makefile.am is in the public domain
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
+
+if USE_COVERAGE
+  AM_CFLAGS = --coverage -O0
+  XLIB = -lgcov
+endif
+
+pkgcfgdir= $(pkgdatadir)/config.d/
+
+libexecdir= $(pkglibdir)/libexec/
+
+pkgcfg_DATA = \
+  messenger.conf
+
+plugindir = $(libdir)/gnunet
+
+AM_CLFAGS = -g
+
+libexec_PROGRAMS = \
+ gnunet-service-messenger \
+ $(EXP_LIBEXEC)
+
+bin_PROGRAMS = \
+ gnunet-messenger
+
+lib_LTLIBRARIES = \
+  libgnunetmessenger_common.la \
+  libgnunetmessenger.la \
+  $(EXP_LIB)
+
+libgnunetmessenger_common_la_SOURCES = \
+  messenger_api_ego.h \
+  messenger_api_message.c messenger_api_message.h \
+  messenger_api_list_tunnels.c messenger_api_list_tunnels.h
+libgnunetmessenger_common_la_LIBADD = \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
+  $(XLIB) \
+  $(LTLIBINTL)
+libgnunetmessenger_common_la_LDFLAGS = \
+  $(GN_LIB_LDFLAGS)  \
+  -version-info 0:0:0
+
+libgnunetmessenger_la_SOURCES = \
+  messenger_api.c \
+  messenger_api_contact.c messenger_api_contact.h \
+  messenger_api_handle.c messenger_api_handle.h \
+  messenger_api_room.c messenger_api_room.h
+libgnunetmessenger_la_LIBADD = \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
+  libgnunetmessenger_common.la \
+  $(XLIB) \
+  $(LTLIBINTL)
+libgnunetmessenger_la_LDFLAGS = \
+  $(GN_LIB_LDFLAGS)  \
+  -version-info 0:0:0
+
+gnunet_messenger_SOURCES = \
+ gnunet-messenger.c
+gnunet_messenger_LDADD = \
+ libgnunetmessenger_common.la \
+ libgnunetmessenger.la \
+ $(top_builddir)/src/util/libgnunetutil.la
+gnunet_messenger_LDFLAGS = \
+  $(GN_LIBINTL)
+
+gnunet_service_messenger_SOURCES = \
+  gnunet-service-messenger.c gnunet-service-messenger.h \
+  gnunet-service-messenger_service.c gnunet-service-messenger_service.h \
+  gnunet-service-messenger_list_handles.c 
gnunet-service-messenger_list_handles.h \
+  gnunet-service-messenger_list_messages.c 
gnunet-service-messenger_list_messages.h \
+  gnunet-service-messenger_message_handle.c 
gnunet-service-messenger_message_handle.h \
+  gnunet-service-messenger_message_kind.c 
gnunet-service-messenger_message_kind.h \
+  gnunet-service-messenger_message_recv.c 
gnunet-service-messenger_message_recv.h \
+  gnunet-service-messenger_message_send.c 
gnunet-service-messenger_message_send.h \
+  gnunet-service-messenger_message_store.c 
gnunet-service-messenger_message_store.h \
+  gnunet-service-messenger_basement.c gnunet-service-messenger_basement.h \
+  gnunet-service-messenger_contact.c gnunet-service-messenger_contact.h \
+  gnunet-service-messenger_handle.c gnunet-service-messenger_handle.h \
+  gnunet-service-messenger_room.c gnunet-service-messenger_room.h \
+  gnunet-service-messenger_tunnel.c gnunet-service-messenger_tunnel.h \
+  gnunet-service-messenger_util.c gnunet-service-messenger_util.h
+gnunet_service_messenger_LDADD = \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(top_builddir)/src/cadet/libgnunetcadet.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
+  libgnunetmessenger_common.la \
+  libgnunetmessenger.la \
+  $(GN_LIBINTL)
+
+check_PROGRAMS = \
+  test_messenger_api \
+  test_messenger_anonymous \
+  test_messenger_comm0
+
+if ENABLE_TEST_RUN
+AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export 
PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;unset XDG_DATA_HOME;unset 
XDG_CONFIG_HOME;
+TESTS = \
+ $(check_PROGRAMS)
+endif
+
+test_messenger_api_SOURCES = \
+  test_messenger.c
+test_messenger_api_LDADD = \
+  libgnunetmessenger_common.la \
+  libgnunetmessenger.la \
+  $(top_builddir)/src/testing/libgnunettesting.la \
+  $(top_builddir)/src/util/libgnunetutil.la
+
+test_messenger_anonymous_SOURCES = \
+  test_messenger_anonymous.c
+test_messenger_anonymous_LDADD = \
+  libgnunetmessenger_common.la \
+  libgnunetmessenger.la \
+  $(top_builddir)/src/testing/libgnunettesting.la \
+  $(top_builddir)/src/util/libgnunetutil.la
+
+test_messenger_comm0_SOURCES = \
+  test_messenger_comm0.c
+test_messenger_comm0_LDADD = \
+  libgnunetmessenger_common.la \
+  libgnunetmessenger.la \
+  $(top_builddir)/src/testbed/libgnunettestbed.la \
+  $(top_builddir)/src/testbed-logger/libgnunettestbedlogger.la \
+  $(top_builddir)/src/testing/libgnunettesting.la \
+  $(top_builddir)/src/util/libgnunetutil.la
+
+EXTRA_DIST = \
+  test_messenger_api.conf
diff --git a/src/messenger/gnunet-messenger.c b/src/messenger/gnunet-messenger.c
new file mode 100644
index 000000000..579e5c3ad
--- /dev/null
+++ b/src/messenger/gnunet-messenger.c
@@ -0,0 +1,306 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-messenger.c
+ * @brief Print information about messenger groups.
+ */
+
+#include <stdio.h>
+
+#include "platform.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_messenger_service.h"
+
+struct GNUNET_MESSENGER_Handle *messenger;
+
+/**
+ * Function called whenever a message is received or sent.
+ *
+ * @param cls Closure
+ * @param room Room
+ * @param message Message
+ * @param hash Hash of message
+ */
+void
+on_message (void *cls, const struct GNUNET_MESSENGER_Room *room, const struct 
GNUNET_MESSENGER_Message *message,
+            const struct GNUNET_HashCode *hash)
+{
+  struct GNUNET_MESSENGER_Contact *sender = GNUNET_MESSENGER_get_member (room, 
&(message->header.sender_id));
+
+  const char *sender_name = GNUNET_MESSENGER_contact_get_name (sender);
+
+  if (!sender_name)
+    sender_name = "anonymous";
+
+  switch (message->header.kind)
+  {
+  case GNUNET_MESSENGER_KIND_JOIN:
+    {
+      printf ("* '%s' joined the room! [ %u %u %u %u ]\n", sender_name, 
message->body.join.key.ecdsa_key.q_y[0],
+              message->body.join.key.ecdsa_key.q_y[1], 
message->body.join.key.ecdsa_key.q_y[2],
+              message->body.join.key.ecdsa_key.q_y[3]);
+      break;
+    }
+  case GNUNET_MESSENGER_KIND_LEAVE:
+    {
+      printf ("* '%s' leaves the room!\n", sender_name);
+      break;
+    }
+  case GNUNET_MESSENGER_KIND_PEER:
+    {
+      printf ("* '%s' opened the room on: %s\n", sender_name, GNUNET_i2s_full 
(&(message->body.peer.peer)));
+      break;
+    }
+  case GNUNET_MESSENGER_KIND_TEXT:
+    {
+      printf ("* '%s' says: \"%s\"\n", sender_name, message->body.text.text);
+      break;
+    }
+  default:
+    {
+      break;
+    }
+  }
+}
+
+struct GNUNET_SCHEDULER_Task *read_task;
+
+/**
+ * Task to shut down this application.
+ *
+ * @param cls Closure
+ */
+static void
+shutdown_hook (void *cls)
+{
+  struct GNUNET_MESSENGER_Room *room = cls;
+
+  if (read_task)
+    GNUNET_SCHEDULER_cancel (read_task);
+
+  if (room)
+    GNUNET_MESSENGER_close_room (room);
+
+  if (messenger)
+    GNUNET_MESSENGER_disconnect (messenger);
+}
+
+static void
+listen_stdio (void *cls);
+
+#define MAX_BUFFER_SIZE 60000
+
+/**
+ * Task run in stdio mode, after some data is available at stdin.
+ *
+ * @param cls Closure
+ */
+static void
+read_stdio (void *cls)
+{
+  read_task = NULL;
+
+  char buffer[MAX_BUFFER_SIZE];
+  ssize_t length;
+
+  length = read (0, buffer, MAX_BUFFER_SIZE);
+
+  if ((length <= 0) || (length >= MAX_BUFFER_SIZE))
+  {
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+
+  if (buffer[length - 1] == '\n')
+    buffer[length - 1] = '\0';
+  else
+    buffer[length] = '\0';
+
+  struct GNUNET_MESSENGER_Room *room = cls;
+
+  struct GNUNET_MESSENGER_Message message;
+  message.header.kind = GNUNET_MESSENGER_KIND_TEXT;
+  message.body.text.text = buffer;
+
+  GNUNET_MESSENGER_send_message (room, &message);
+
+  read_task = GNUNET_SCHEDULER_add_now (listen_stdio, cls);
+}
+
+/**
+ * Wait for input on STDIO and send it out over the #ch.
+ *
+ * @param cls Closure
+ */
+static void
+listen_stdio (void *cls)
+{
+  read_task = NULL;
+
+  struct GNUNET_NETWORK_FDSet *rs = GNUNET_NETWORK_fdset_create ();
+
+  GNUNET_NETWORK_fdset_set_native (rs, 0);
+
+  read_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
+  GNUNET_TIME_UNIT_FOREVER_REL,
+                                           rs,
+                                           NULL,
+                                           &read_stdio, cls);
+
+  GNUNET_NETWORK_fdset_destroy (rs);
+}
+
+/**
+ * Initial task to startup application.
+ *
+ * @param cls Closure
+ */
+static void
+idle (void *cls)
+{
+  struct GNUNET_MESSENGER_Room *room = cls;
+
+  printf ("* You joined the room.\n");
+
+  read_task = GNUNET_SCHEDULER_add_now (listen_stdio, room);
+}
+
+char *door_id;
+char *ego_name;
+char *room_key;
+
+struct GNUNET_SCHEDULER_Task *shutdown_task;
+
+/**
+ * Function called when an identity is retrieved.
+ *
+ * @param cls Closure
+ * @param handle Handle of messenger service
+ */
+static void
+on_identity (void *cls, struct GNUNET_MESSENGER_Handle *handle)
+{
+  struct GNUNET_HashCode key;
+  memset (&key, 0, sizeof(key));
+
+  if (room_key)
+    GNUNET_CRYPTO_hash (room_key, strlen (room_key), &key);
+
+  struct GNUNET_PeerIdentity *door = NULL;
+
+  if (door_id)
+  {
+    door = GNUNET_new(struct GNUNET_PeerIdentity);
+
+    if (GNUNET_OK != GNUNET_CRYPTO_eddsa_public_key_from_string (door_id, 
strlen (door_id), &(door->public_key)))
+    {
+      GNUNET_free(door);
+      door = NULL;
+    }
+  }
+
+  const char *name = GNUNET_MESSENGER_get_name (handle);
+
+  if (!name)
+    name = "anonymous";
+
+  printf ("* Welcome to the messenger, '%s'!\n", name);
+
+  struct GNUNET_MESSENGER_Room *room;
+
+  if (door)
+  {
+    printf ("* You try to entry a room...\n");
+
+    room = GNUNET_MESSENGER_entry_room (messenger, door, &key);
+  }
+  else
+  {
+    printf ("* You try to open a room...\n");
+
+    room = GNUNET_MESSENGER_open_room (messenger, &key);
+  }
+
+  GNUNET_SCHEDULER_cancel (shutdown_task);
+
+  shutdown_task = GNUNET_SCHEDULER_add_shutdown (shutdown_hook, room);
+
+  if (!room)
+    GNUNET_SCHEDULER_shutdown ();
+  else
+    GNUNET_SCHEDULER_add_delayed_with_priority (GNUNET_TIME_relative_get_zero_ 
(), GNUNET_SCHEDULER_PRIORITY_IDLE, idle,
+                                                room);
+}
+
+/**
+ * Main function that will be run by the scheduler.
+ *
+ * @param cls closure
+ * @param args remaining command-line arguments
+ * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
+ * @param cfg configuration
+ */
+static void
+run (void *cls, char *const*args, const char *cfgfile, const struct 
GNUNET_CONFIGURATION_Handle *cfg)
+{
+  messenger = GNUNET_MESSENGER_connect (cfg, ego_name, &on_identity, NULL, 
&on_message, NULL);
+
+  shutdown_task = GNUNET_SCHEDULER_add_shutdown (shutdown_hook, NULL);
+}
+
+/**
+ * The main function to obtain messenger information.
+ *
+ * @param argc number of arguments from the command line
+ * @param argv command line arguments
+ * @return 0 ok, 1 on error
+ */
+int
+main (int argc, char **argv)
+{
+  const char *description = "Open and connect to rooms using the MESSENGER to 
chat.";
+
+  struct GNUNET_GETOPT_CommandLineOption options[] = {
+    GNUNET_GETOPT_option_string ('d',
+                                 "door",
+                                 "PEERIDENTITY",
+                                 "peer identity to entry into the room",
+                                 &door_id),
+    GNUNET_GETOPT_option_string ('e',
+                                 "ego",
+                                 "IDENTITY",
+                                 "identity to use for messaging",
+                                 &ego_name),
+    GNUNET_GETOPT_option_string ('r',
+                                 "room",
+                                 "ROOMKEY",
+                                 "key of the room to connect to",
+                                 &room_key),
+    GNUNET_GETOPT_OPTION_END };
+
+  return (GNUNET_OK == GNUNET_PROGRAM_run (argc,
+                                           argv,
+                                           "gnunet-messenger\0",
+                                           gettext_noop(description),
+                                           options,
+                                           &run,
+                                           NULL) ? EXIT_SUCCESS : 
EXIT_FAILURE);
+}
diff --git a/src/messenger/gnunet-service-messenger.c 
b/src/messenger/gnunet-service-messenger.c
new file mode 100644
index 000000000..2c92305c4
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger.c
@@ -0,0 +1,306 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger.c
+ * @brief GNUnet MESSENGER service
+ */
+
+#include "gnunet-service-messenger.h"
+
+#include "gnunet-service-messenger_service.h"
+#include "messenger_api_message.h"
+
+struct GNUNET_MESSENGER_Client
+{
+  struct GNUNET_SERVICE_Client *client;
+  struct GNUNET_MESSENGER_SrvHandle *handle;
+};
+
+struct GNUNET_MESSENGER_Service *messenger;
+
+static int
+check_create (void *cls, const struct GNUNET_MESSENGER_CreateMessage *msg)
+{
+  GNUNET_MQ_check_zero_termination(msg);
+  return GNUNET_OK;
+}
+
+static void
+handle_create (void *cls, const struct GNUNET_MESSENGER_CreateMessage *msg)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = cls;
+
+  const char *name = ((const char*) msg) + sizeof(*msg);
+
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Handle created with name: %s\n", name);
+
+  setup_handle_name (msg_client->handle, strlen (name) > 0? name : NULL);
+
+  GNUNET_SERVICE_client_continue (msg_client->client);
+}
+
+static void
+handle_update (void *cls, const struct GNUNET_MESSENGER_UpdateMessage *msg)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = cls;
+
+  if (GNUNET_OK != update_handle (msg_client->handle))
+    GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "Name is required to update key!\n");
+
+  GNUNET_SERVICE_client_continue (msg_client->client);
+}
+
+static void
+handle_destroy (void *cls, const struct GNUNET_MESSENGER_DestroyMessage *msg)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = cls;
+
+  GNUNET_SERVICE_client_drop (msg_client->client);
+}
+
+static int
+check_set_name (void *cls, const struct GNUNET_MESSENGER_NameMessage *msg)
+{
+  GNUNET_MQ_check_zero_termination(msg);
+  return GNUNET_OK;
+}
+
+static void
+handle_set_name (void *cls, const struct GNUNET_MESSENGER_NameMessage *msg)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = cls;
+
+  const char *name = ((const char*) msg) + sizeof(*msg);
+
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Handles name is now: %s\n", name);
+
+  if (GNUNET_YES != set_handle_name (msg_client->handle, name))
+    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "No valid name: %s\n", name);
+
+  GNUNET_SERVICE_client_continue (msg_client->client);
+}
+
+static void
+handle_room_open (void *cls, const struct GNUNET_MESSENGER_RoomMessage *msg)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = cls;
+
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Opening room: %s\n",
+             GNUNET_h2s (&(msg->key)));
+
+  if (GNUNET_YES == open_handle_room (msg_client->handle, &(msg->key)))
+  {
+    const struct GNUNET_ShortHashCode* member_id = 
get_handle_member_id(msg_client->handle, &(msg->key));
+
+    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Opening room with member id: %s\n",
+               GNUNET_sh2s (member_id));
+
+    struct GNUNET_MESSENGER_RoomMessage *response;
+    struct GNUNET_MQ_Envelope *env;
+
+    env = GNUNET_MQ_msg(response, GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_OPEN);
+    GNUNET_memcpy(&(response->key), &(msg->key), sizeof(msg->key));
+    GNUNET_MQ_send (msg_client->handle->mq, env);
+  }
+  else
+    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Opening room failed: %s\n",
+               GNUNET_h2s (&(msg->key)));
+
+  GNUNET_SERVICE_client_continue (msg_client->client);
+}
+
+static void
+handle_room_entry (void *cls, const struct GNUNET_MESSENGER_RoomMessage *msg)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = cls;
+
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Entering room: %s, %s\n",
+             GNUNET_h2s (&(msg->key)), GNUNET_i2s (&(msg->door)));
+
+  if (GNUNET_YES == entry_handle_room (msg_client->handle, &(msg->door), 
&(msg->key)))
+  {
+    const struct GNUNET_ShortHashCode* member_id = 
get_handle_member_id(msg_client->handle, &(msg->key));
+
+    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Entering room with member id: %s\n",
+               GNUNET_sh2s (member_id));
+
+    struct GNUNET_MESSENGER_RoomMessage *response;
+    struct GNUNET_MQ_Envelope *env;
+
+    env = GNUNET_MQ_msg(response, GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_ENTRY);
+    GNUNET_memcpy(&(response->door), &(msg->door), sizeof(msg->door));
+    GNUNET_memcpy(&(response->key), &(msg->key), sizeof(msg->key));
+    GNUNET_MQ_send (msg_client->handle->mq, env);
+  }
+  else
+    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Entrance into room failed: %s, %s\n",
+               GNUNET_h2s (&(msg->key)), GNUNET_i2s (&(msg->door)));
+
+  GNUNET_SERVICE_client_continue (msg_client->client);
+}
+
+static void
+handle_room_close (void *cls, const struct GNUNET_MESSENGER_RoomMessage *msg)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = cls;
+
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Closing room: %s\n", GNUNET_h2s 
(&(msg->key)));
+
+  if (GNUNET_YES == close_handle_room (msg_client->handle, &(msg->key)))
+  {
+    const struct GNUNET_ShortHashCode* member_id = 
get_handle_member_id(msg_client->handle, &(msg->key));
+
+    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Closing room with member id: %s\n",
+               GNUNET_sh2s (member_id));
+
+    struct GNUNET_MESSENGER_RoomMessage *response;
+    struct GNUNET_MQ_Envelope *env;
+
+    env = GNUNET_MQ_msg(response, GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_CLOSE);
+    GNUNET_memcpy(&(response->key), &(msg->key), sizeof(msg->key));
+    GNUNET_MQ_send (msg_client->handle->mq, env);
+  }
+  else
+    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Closing room failed: %s\n", 
GNUNET_h2s (&(msg->key)));
+
+  GNUNET_SERVICE_client_continue (msg_client->client);
+}
+
+static int
+check_send_message (void *cls, const struct GNUNET_MESSENGER_SendMessage *msg)
+{
+  const uint16_t full_length = ntohs (msg->header.size) - sizeof(msg->header);
+
+  if (full_length < sizeof(msg->key))
+    return GNUNET_NO;
+
+  const uint16_t length = full_length - sizeof(msg->key);
+  const char *buffer = ((const char*) msg) + sizeof(*msg);
+
+  struct GNUNET_MESSENGER_Message message;
+
+  if (GNUNET_YES != decode_message (&message, length, buffer))
+    return GNUNET_NO;
+
+  return GNUNET_OK;
+}
+
+static void
+handle_send_message (void *cls, const struct GNUNET_MESSENGER_SendMessage *msg)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = cls;
+
+  const struct GNUNET_HashCode *key = &(msg->key);
+  const char *buffer = ((const char*) msg) + sizeof(*msg);
+
+  const uint16_t length = ntohs (msg->header.size) - sizeof(*msg);
+
+  struct GNUNET_MESSENGER_Message message;
+  decode_message (&message, length, buffer);
+
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Sending message: %s to %s\n",
+             GNUNET_MESSENGER_name_of_kind (message.header.kind),
+             GNUNET_h2s (key));
+
+  if (GNUNET_YES != send_handle_message (msg_client->handle, key, &message))
+    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Sending message failed: %s to %s\n",
+               GNUNET_MESSENGER_name_of_kind (message.header.kind),
+               GNUNET_h2s (key));
+
+  GNUNET_SERVICE_client_continue (msg_client->client);
+}
+
+static void
+handle_get_message (void *cls, const struct GNUNET_MESSENGER_RecvMessage *msg)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = cls;
+
+  GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Requesting message from room: %s\n",
+             GNUNET_h2s (&(msg->key)));
+
+  struct GNUNET_MESSENGER_SrvRoom *room = get_service_room (messenger, 
&(msg->key));
+
+  if (room)
+    get_room_message (room, msg_client->handle, &(msg->hash), GNUNET_YES);
+  else
+    GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Room not found: %s\n",
+               GNUNET_h2s (&(msg->key)));
+
+  GNUNET_SERVICE_client_continue (msg_client->client);
+}
+
+static void*
+callback_client_connect (void *cls, struct GNUNET_SERVICE_Client *client, 
struct GNUNET_MQ_Handle *mq)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = GNUNET_new(struct 
GNUNET_MESSENGER_Client);
+
+  msg_client->client = client;
+  msg_client->handle = add_service_handle (messenger, mq);
+
+  return msg_client;
+}
+
+static void
+callback_client_disconnect (void *cls, struct GNUNET_SERVICE_Client *client, 
void *internal_cls)
+{
+  struct GNUNET_MESSENGER_Client *msg_client = internal_cls;
+
+  remove_service_handle (messenger, msg_client->handle);
+
+  GNUNET_free(msg_client);
+}
+
+/**
+ * Setup MESSENGER internals.
+ *
+ * @param cls closure
+ * @param config configuration to use
+ * @param service the initialized service
+ */
+static void
+run (void *cls, const struct GNUNET_CONFIGURATION_Handle *config, struct 
GNUNET_SERVICE_Handle *service)
+{
+  messenger = create_service (config, service);
+
+  if ((!messenger) || (!messenger->cadet) || (!messenger->identity))
+    GNUNET_SCHEDULER_shutdown ();
+}
+
+/**
+ * Define "main" method using service macro.
+ */
+GNUNET_SERVICE_MAIN(
+    GNUNET_MESSENGER_SERVICE_NAME,
+    GNUNET_SERVICE_OPTION_NONE,
+    &run,
+    &callback_client_connect,
+    &callback_client_disconnect,
+    NULL,
+    GNUNET_MQ_hd_var_size( create, 
GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_CREATE, struct 
GNUNET_MESSENGER_CreateMessage, NULL ),
+    GNUNET_MQ_hd_fixed_size( update, 
GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_UPDATE, struct 
GNUNET_MESSENGER_UpdateMessage, NULL ),
+    GNUNET_MQ_hd_fixed_size( destroy, 
GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_DESTROY, struct 
GNUNET_MESSENGER_DestroyMessage, NULL ),
+    GNUNET_MQ_hd_var_size( set_name, 
GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_SET_NAME, struct 
GNUNET_MESSENGER_NameMessage, NULL ),
+    GNUNET_MQ_hd_fixed_size( room_open, 
GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_OPEN, struct GNUNET_MESSENGER_RoomMessage, 
NULL ),
+    GNUNET_MQ_hd_fixed_size( room_entry, 
GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_ENTRY, struct GNUNET_MESSENGER_RoomMessage, 
NULL ),
+    GNUNET_MQ_hd_fixed_size( room_close, 
GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_CLOSE, struct GNUNET_MESSENGER_RoomMessage, 
NULL ),
+    GNUNET_MQ_hd_var_size( send_message, 
GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_SEND_MESSAGE, struct 
GNUNET_MESSENGER_SendMessage, NULL ),
+    GNUNET_MQ_hd_fixed_size( get_message, 
GNUNET_MESSAGE_TYPE_MESSENGER_ROOM_GET_MESSAGE, struct 
GNUNET_MESSENGER_RecvMessage, NULL ),
+    GNUNET_MQ_handler_end());
diff --git a/src/messenger/gnunet-service-messenger.h 
b/src/messenger/gnunet-service-messenger.h
new file mode 100644
index 000000000..85a1d2549
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger.h
@@ -0,0 +1,121 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger.h
+ * @brief GNUnet MESSENGER service
+ */
+
+#ifndef GNUNET_SERVICE_MESSENGER_H
+#define GNUNET_SERVICE_MESSENGER_H
+
+#include "platform.h"
+#include "gnunet_cadet_service.h"
+#include "gnunet_container_lib.h"
+#include "gnunet_crypto_lib.h"
+#include "gnunet_identity_service.h"
+#include "gnunet_mq_lib.h"
+#include "gnunet_peer_lib.h"
+#include "gnunet_protocols.h"
+#include "gnunet_util_lib.h"
+
+/**
+ * Message to create a handle for a client
+ */
+struct GNUNET_MESSENGER_CreateMessage
+{
+  struct GNUNET_MessageHeader header;
+};
+
+/**
+ * Message to update the handle (its EGO key) for a client
+ */
+struct GNUNET_MESSENGER_UpdateMessage
+{
+  struct GNUNET_MessageHeader header;
+};
+
+/**
+ * Message to destroy the handle for a client
+ */
+struct GNUNET_MESSENGER_DestroyMessage
+{
+  struct GNUNET_MessageHeader header;
+};
+
+/**
+ * Message to receive the current name of a handle
+ */
+struct GNUNET_MESSENGER_NameMessage
+{
+  struct GNUNET_MessageHeader header;
+};
+
+/**
+ * Message to receive the current public key of a handle
+ */
+struct GNUNET_MESSENGER_KeyMessage
+{
+  struct GNUNET_MessageHeader header;
+  struct GNUNET_IDENTITY_PublicKey pubkey;
+};
+
+/**
+ * General message to confirm interaction with a room
+ */
+struct GNUNET_MESSENGER_RoomMessage
+{
+  struct GNUNET_MessageHeader header;
+
+  struct GNUNET_PeerIdentity door;
+  struct GNUNET_HashCode key;
+};
+
+/**
+ * Message to receive the current member id of a handle in room
+ */
+struct GNUNET_MESSENGER_MemberMessage
+{
+  struct GNUNET_MessageHeader header;
+
+  struct GNUNET_HashCode key;
+  struct GNUNET_ShortHashCode id;
+};
+
+/**
+ * Message to send something into a room
+ */
+struct GNUNET_MESSENGER_SendMessage
+{
+  struct GNUNET_MessageHeader header;
+  struct GNUNET_HashCode key;
+};
+
+/**
+ * Message to receive something from a room
+ */
+struct GNUNET_MESSENGER_RecvMessage
+{
+  struct GNUNET_MessageHeader header;
+  struct GNUNET_HashCode key;
+  struct GNUNET_HashCode hash;
+};
+
+#endif //GNUNET_SERVICE_MESSENGER_H
diff --git a/src/messenger/gnunet-service-messenger_basement.c 
b/src/messenger/gnunet-service-messenger_basement.c
new file mode 100644
index 000000000..190cf2de5
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_basement.c
@@ -0,0 +1,58 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_basement.c
+ * @brief GNUnet MESSENGER service
+ */
+
+#include "gnunet-service-messenger_basement.h"
+
+size_t
+count_of_tunnels (const struct GNUNET_MESSENGER_ListTunnels *tunnels)
+{
+  const struct GNUNET_MESSENGER_ListTunnel *element;
+  size_t count = 0;
+
+  for (element = tunnels->head; element; element = element->next)
+    count++;
+
+  return count;
+}
+
+int
+should_connect_tunnel_to (size_t count, size_t src, size_t dst)
+{
+  if ((src + 1) % count == dst % count)
+    return GNUNET_YES;
+
+  return GNUNET_NO;
+}
+
+int
+required_connection_between (size_t count, size_t src, size_t dst)
+{
+  if (GNUNET_YES == should_connect_tunnel_to (count, src, dst))
+    return GNUNET_YES;
+  if (GNUNET_YES == should_connect_tunnel_to (count, dst, src))
+    return GNUNET_YES;
+
+  return GNUNET_NO;
+}
diff --git a/src/messenger/gnunet-service-messenger_basement.h 
b/src/messenger/gnunet-service-messenger_basement.h
new file mode 100644
index 000000000..0a1a9b126
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_basement.h
@@ -0,0 +1,66 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_basement.h
+ * @brief GNUnet MESSENGER service
+ */
+
+#ifndef GNUNET_SERVICE_MESSENGER_BASEMENT_H
+#define GNUNET_SERVICE_MESSENGER_BASEMENT_H
+
+#include "messenger_api_list_tunnels.h"
+
+/**
+ * Returns the count of peers in a list (typically from the basement of a 
room).
+ *
+ * @param tunnels List of peer identities
+ * @return Count of the entries in the list
+ */
+size_t
+count_of_tunnels (const struct GNUNET_MESSENGER_ListTunnels *tunnels);
+
+/**
+ * Returns GNUNET_YES or GNUNET_NO to determine if the peer at index 
<i>src</i> should
+ * or should not connect outgoing to the peer at index <i>dst</i> to construct 
a complete
+ * basement with a given <i>count</i> of peers.
+ *
+ * @param count Count of peers
+ * @param src Source index
+ * @param dst Destination index
+ * @return GNUNET_YES or GNUNET_NO based on topologic requirement
+ */
+int
+should_connect_tunnel_to (size_t count, size_t src, size_t dst);
+
+/**
+ * Returns GNUNET_YES or GNUNET_NO to determine if the peers of index 
<i>src</i> and
+ * index <i>dst</i> should be connected in any direction to construct a 
complete
+ * basement with a given <i>count</i> of peers.
+ *
+ * @param count Count of peers
+ * @param src Source index
+ * @param dst Destination index
+ * @return GNUNET_YES or GNUNET_NO based on topologic requirement
+ */
+int
+required_connection_between (size_t count, size_t src, size_t dst);
+
+#endif //GNUNET_SERVICE_MESSENGER_BASEMENT_H
diff --git a/src/messenger/gnunet-service-messenger_contact.c 
b/src/messenger/gnunet-service-messenger_contact.c
new file mode 100644
index 000000000..1ec125402
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_contact.c
@@ -0,0 +1,96 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_contact.c
+ * @brief GNUnet MESSENGER service
+ */
+
+#include "gnunet-service-messenger_contact.h"
+
+struct GNUNET_MESSENGER_SrvContact*
+create_contact (const struct GNUNET_IDENTITY_PublicKey *key)
+{
+  struct GNUNET_MESSENGER_SrvContact *contact = GNUNET_new(struct 
GNUNET_MESSENGER_SrvContact);
+
+  contact->name = NULL;
+  contact->rc = 0;
+
+  GNUNET_memcpy(&(contact->public_key), key, sizeof(contact->public_key));
+
+  return contact;
+}
+
+void
+destroy_contact (struct GNUNET_MESSENGER_SrvContact *contact)
+{
+  if (contact->name)
+    GNUNET_free(contact->name);
+
+  GNUNET_free(contact);
+}
+
+const char*
+get_contact_name (const struct GNUNET_MESSENGER_SrvContact *contact)
+{
+  return contact->name;
+}
+
+void
+set_contact_name (struct GNUNET_MESSENGER_SrvContact *contact, const char 
*name)
+{
+  GNUNET_assert(name);
+
+  if (contact->name)
+    GNUNET_free(contact->name);
+
+  contact->name = GNUNET_strdup(name);
+}
+
+const struct GNUNET_IDENTITY_PublicKey*
+get_contact_key (const struct GNUNET_MESSENGER_SrvContact *contact)
+{
+  return &(contact->public_key);
+}
+
+void
+increase_contact_rc (struct GNUNET_MESSENGER_SrvContact *contact)
+{
+  contact->rc++;
+}
+
+int
+decrease_contact_rc (struct GNUNET_MESSENGER_SrvContact *contact)
+{
+  if (contact->rc > 0)
+    contact->rc--;
+
+  return contact->rc ? GNUNET_NO : GNUNET_YES;
+}
+
+const struct GNUNET_HashCode*
+get_contact_id_from_key (const struct GNUNET_MESSENGER_SrvContact *contact)
+{
+  static struct GNUNET_HashCode id;
+
+  GNUNET_CRYPTO_hash (&(contact->public_key), sizeof(contact->public_key), 
&id);
+
+  return &id;
+}
diff --git a/src/messenger/gnunet-service-messenger_contact.h 
b/src/messenger/gnunet-service-messenger_contact.h
new file mode 100644
index 000000000..4a4f8bf0f
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_contact.h
@@ -0,0 +1,112 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_contact.h
+ * @brief GNUnet MESSENGER service
+ */
+
+#ifndef GNUNET_SERVICE_MESSENGER_CONTACT_H
+#define GNUNET_SERVICE_MESSENGER_CONTACT_H
+
+#include "platform.h"
+#include "gnunet_crypto_lib.h"
+#include "gnunet_identity_service.h"
+
+struct GNUNET_MESSENGER_SrvContact
+{
+  char *name;
+  size_t rc;
+
+  struct GNUNET_IDENTITY_PublicKey public_key;
+};
+
+/**
+ * Creates and allocates a new contact with a given public <i>key</i> from an 
EGO.
+ *
+ * @param key Public key
+ * @return New contact
+ */
+struct GNUNET_MESSENGER_SrvContact*
+create_contact (const struct GNUNET_IDENTITY_PublicKey *key);
+
+/**
+ * Destroys a contact and frees its memory fully.
+ *
+ * @param contact Contact
+ */
+void
+destroy_contact (struct GNUNET_MESSENGER_SrvContact *contact);
+
+/**
+ * Returns the current name of a given <i>contact</i> or NULL if no valid name 
was assigned yet.
+ *
+ * @param contact Contact
+ * @return Name of the contact or NULL
+ */
+const char*
+get_contact_name (const struct GNUNET_MESSENGER_SrvContact *contact);
+
+/**
+ * Changes the current name of a given <i>contact</i> by copying it from the 
parameter <i>name</i>.
+ *
+ * @param contact Contact
+ * @param name Valid name (may not be NULL!)
+ */
+void
+set_contact_name (struct GNUNET_MESSENGER_SrvContact *contact, const char 
*name);
+
+/**
+ * Returns the public key of a given <i>contact</i>.
+ *
+ * @param contact Contact
+ * @return Public key of the contact
+ */
+const struct GNUNET_IDENTITY_PublicKey*
+get_contact_key (const struct GNUNET_MESSENGER_SrvContact *contact);
+
+/**
+ * Increases the reference counter of a given <i>contact</i> which is zero as 
default.
+ *
+ * @param contact Contact
+ */
+void
+increase_contact_rc (struct GNUNET_MESSENGER_SrvContact *contact);
+
+/**
+ * Decreases the reference counter if possible (can not underflow!) of a given 
<i>contact</i>
+ * and returns GNUNET_YES if the counter is equal to zero, otherwise GNUNET_NO.
+ *
+ * @param contact Contact
+ * @return GNUNET_YES or GNUNET_NO depending on the reference counter
+ */
+int
+decrease_contact_rc (struct GNUNET_MESSENGER_SrvContact *contact);
+
+/**
+ * Returns the resulting hashcode of the public key from a given 
<i>contact</i>.
+ *
+ * @param contact Contact
+ * @return Hash of the contacts public key
+ */
+const struct GNUNET_HashCode*
+get_contact_id_from_key (const struct GNUNET_MESSENGER_SrvContact *contact);
+
+#endif //GNUNET_SERVICE_MESSENGER_CONTACT_H
diff --git a/src/messenger/gnunet-service-messenger_handle.c 
b/src/messenger/gnunet-service-messenger_handle.c
new file mode 100644
index 000000000..38ad6fbb4
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_handle.c
@@ -0,0 +1,503 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_handle.c
+ * @brief GNUnet MESSENGER service
+ */
+
+#include "gnunet-service-messenger_handle.h"
+
+#include "gnunet-service-messenger.h"
+#include "gnunet-service-messenger_message_kind.h"
+
+struct GNUNET_MESSENGER_SrvHandle*
+create_handle (struct GNUNET_MESSENGER_Service *service, struct 
GNUNET_MQ_Handle *mq)
+{
+  struct GNUNET_MESSENGER_SrvHandle *handle = GNUNET_new(struct 
GNUNET_MESSENGER_SrvHandle);
+
+  handle->service = service;
+  handle->mq = mq;
+
+  handle->name = NULL;
+
+  handle->operation = NULL;
+
+  handle->ego = NULL;
+
+  handle->member_ids = GNUNET_CONTAINER_multihashmap_create (8, GNUNET_NO);
+
+  return handle;
+}
+
+int
+iterate_free_member_ids (void *cls, const struct GNUNET_HashCode *key, void 
*value)
+{
+  GNUNET_free(value);
+
+  return GNUNET_YES;
+}
+
+void
+destroy_handle (struct GNUNET_MESSENGER_SrvHandle *handle)
+{
+  if (handle->service->dir)
+   save_handle_configuration(handle);
+
+  if (handle->operation)
+    GNUNET_IDENTITY_cancel (handle->operation);
+
+  if (handle->name)
+    GNUNET_free(handle->name);
+
+  GNUNET_CONTAINER_multihashmap_iterate (handle->member_ids, 
iterate_free_member_ids, NULL);
+  GNUNET_CONTAINER_multihashmap_destroy (handle->member_ids);
+
+  GNUNET_free(handle);
+}
+
+void
+get_handle_data_subdir (struct GNUNET_MESSENGER_SrvHandle *handle, const char 
*name, char **dir)
+{
+  if (name)
+    GNUNET_asprintf (dir, "%s%s%c%s%c", handle->service->dir, "identities",
+                     DIR_SEPARATOR, name, DIR_SEPARATOR);
+  else
+    GNUNET_asprintf (dir, "%s%s%c", handle->service->dir, "anonymous",
+                     DIR_SEPARATOR);
+}
+
+static int
+create_handle_member_id (const struct GNUNET_MESSENGER_SrvHandle *handle, 
const struct GNUNET_HashCode *key)
+{
+  struct GNUNET_ShortHashCode *random_id = generate_service_new_member_id 
(handle->service, key);
+
+  if (!random_id)
+    return GNUNET_NO;
+
+  if (GNUNET_OK != GNUNET_CONTAINER_multihashmap_put (handle->member_ids, key, 
random_id,
+                                                      
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST))
+  {
+    GNUNET_free(random_id);
+    return GNUNET_NO;
+  }
+
+  GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Created a new member id (%s) for room: 
%s\n",
+             GNUNET_sh2s(random_id), GNUNET_h2s(key));
+
+  return GNUNET_YES;
+}
+
+const struct GNUNET_ShortHashCode*
+get_handle_member_id (const struct GNUNET_MESSENGER_SrvHandle *handle, const 
struct GNUNET_HashCode *key)
+{
+  return GNUNET_CONTAINER_multihashmap_get (handle->member_ids, key);
+}
+
+void
+change_handle_member_id (struct GNUNET_MESSENGER_SrvHandle *handle, const 
struct GNUNET_HashCode *key,
+                         const struct GNUNET_ShortHashCode *unique_id)
+{
+  struct GNUNET_ShortHashCode *member_id = GNUNET_CONTAINER_multihashmap_get 
(handle->member_ids, key);
+
+  if (member_id)
+  {
+    GNUNET_log(GNUNET_ERROR_TYPE_INFO, "Changed a member id (%s) for room (%s) 
",
+               GNUNET_sh2s(member_id), GNUNET_h2s(key));
+    GNUNET_log(GNUNET_ERROR_TYPE_INFO, "into (%s).\n",
+               GNUNET_sh2s(unique_id));
+
+    GNUNET_memcpy(member_id, unique_id, sizeof(*unique_id));
+
+    struct GNUNET_MESSENGER_MemberMessage *msg;
+    struct GNUNET_MQ_Envelope *env;
+
+    env = GNUNET_MQ_msg(msg, 
GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_MEMBER_ID);
+
+    GNUNET_memcpy(&(msg->key), key, sizeof(*key));
+    GNUNET_memcpy(&(msg->id), member_id, sizeof(*member_id));
+
+    GNUNET_MQ_send (handle->mq, env);
+  }
+  else
+  {
+    member_id = GNUNET_new(struct GNUNET_ShortHashCode);
+    GNUNET_memcpy(member_id, unique_id, sizeof(*member_id));
+
+    if (GNUNET_OK != GNUNET_CONTAINER_multihashmap_put (handle->member_ids, 
key, member_id,
+                                                        
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST))
+      GNUNET_free(member_id);
+  }
+}
+
+static void
+change_handle_name (struct GNUNET_MESSENGER_SrvHandle *handle, const char 
*name)
+{
+  if (handle->name)
+    GNUNET_free(handle->name);
+
+  handle->name = name ? GNUNET_strdup(name) : NULL;
+
+  const uint16_t name_len = handle->name ? strlen (handle->name) : 0;
+
+  struct GNUNET_MESSENGER_NameMessage *msg;
+  struct GNUNET_MQ_Envelope *env;
+
+  env = GNUNET_MQ_msg_extra(msg, name_len + 1, 
GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_GET_NAME);
+
+  char *extra = ((char*) msg) + sizeof(*msg);
+
+  if (name_len)
+    GNUNET_memcpy(extra, handle->name, name_len);
+
+  extra[name_len] = '\0';
+
+  GNUNET_MQ_send (handle->mq, env);
+}
+
+static void
+change_handle_ego (struct GNUNET_MESSENGER_SrvHandle *handle, struct 
GNUNET_MESSENGER_Ego *ego)
+{
+  handle->ego = ego;
+
+  ego = get_handle_ego(handle);
+
+  struct GNUNET_MESSENGER_KeyMessage *msg;
+  struct GNUNET_MQ_Envelope *env;
+
+  env = GNUNET_MQ_msg(msg, GNUNET_MESSAGE_TYPE_MESSENGER_CONNECTION_GET_KEY);
+
+  GNUNET_memcpy(&(msg->pubkey), &(ego->pub), sizeof(ego->pub));
+
+  GNUNET_MQ_send (handle->mq, env);
+}
+
+struct GNUNET_MESSENGER_Ego*
+get_handle_ego (struct GNUNET_MESSENGER_SrvHandle *handle)
+{
+  static struct GNUNET_MESSENGER_Ego anonymous;
+  static int read_keys = 0;
+
+  if (handle->ego)
+    return handle->ego;
+
+  if (!read_keys)
+  {
+    struct GNUNET_IDENTITY_Ego* ego = GNUNET_IDENTITY_ego_get_anonymous ();
+    GNUNET_memcpy(&(anonymous.priv), GNUNET_IDENTITY_ego_get_private_key(ego), 
sizeof(anonymous.priv));
+    GNUNET_IDENTITY_ego_get_public_key(ego, &(anonymous.pub));
+    read_keys = 1;
+  }
+
+  return &anonymous;
+}
+
+void
+setup_handle_name (struct GNUNET_MESSENGER_SrvHandle *handle, const char *name)
+{
+  change_handle_name (handle, name);
+  change_handle_ego (handle, handle->name? lookup_service_ego(handle->service, 
handle->name) : NULL);
+
+  if (handle->service->dir)
+   load_handle_configuration(handle);
+}
+
+struct GNUNET_MESSENGER_MessageHandle
+{
+  struct GNUNET_MESSENGER_SrvHandle *handle;
+  struct GNUNET_MESSENGER_Message *message;
+};
+
+static int
+iterate_send_message (void *cls, const struct GNUNET_HashCode *key, void 
*value)
+{
+  struct GNUNET_MESSENGER_MessageHandle *msg_handle = cls;
+
+  send_handle_message (msg_handle->handle, key, msg_handle->message);
+
+  return GNUNET_YES;
+}
+
+static void
+callback_ego_create (void *cls, const struct GNUNET_IDENTITY_PrivateKey *key, 
const char *emsg)
+{
+  struct GNUNET_MESSENGER_SrvHandle *handle = cls;
+
+  handle->operation = NULL;
+
+  if (emsg)
+    GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "%s\n", emsg);
+
+  if (key)
+  {
+    struct GNUNET_MESSENGER_MessageHandle msg_handle;
+
+    msg_handle.handle = handle;
+    msg_handle.message = create_message_key (key);
+
+    GNUNET_CONTAINER_multihashmap_iterate (handle->member_ids, 
iterate_send_message, &msg_handle);
+
+    destroy_message (msg_handle.message);
+
+    update_service_ego(handle->service, handle->name, key);
+
+    change_handle_ego (handle, lookup_service_ego(handle->service, 
handle->name));
+  }
+}
+
+int
+update_handle (struct GNUNET_MESSENGER_SrvHandle *handle)
+{
+  GNUNET_assert(handle);
+
+  if (!handle->name)
+    return GNUNET_SYSERR;
+
+  struct GNUNET_MESSENGER_Ego *ego = lookup_service_ego(handle->service, 
handle->name);
+
+  if (!ego)
+    handle->operation = GNUNET_IDENTITY_create (handle->service->identity, 
handle->name, NULL,
+                                                GNUNET_IDENTITY_TYPE_ECDSA, 
callback_ego_create, handle);
+  else
+    change_handle_ego (handle, ego);
+
+  return GNUNET_OK;
+}
+
+int
+set_handle_name (struct GNUNET_MESSENGER_SrvHandle *handle, const char *name)
+{
+  GNUNET_assert(handle);
+
+  if ((name) && (lookup_service_ego(handle->service, name)))
+    return GNUNET_NO;
+
+  struct GNUNET_IDENTITY_Operation *operation = handle->operation;
+
+  if (handle->name)
+    handle->operation = GNUNET_IDENTITY_rename (handle->service->identity, 
handle->name, name, NULL, NULL);
+
+  char *old_dir;
+  get_handle_data_subdir (handle, handle->name, &old_dir);
+
+  char *new_dir;
+  get_handle_data_subdir (handle, name, &new_dir);
+
+  int result = 0;
+
+  if (GNUNET_YES == GNUNET_DISK_directory_test (old_dir, GNUNET_YES))
+  {
+    GNUNET_DISK_directory_create_for_file (new_dir);
+
+    result = rename (old_dir, new_dir);
+  }
+  else if (GNUNET_YES == GNUNET_DISK_directory_test (new_dir, GNUNET_NO))
+    result = -1;
+
+  if (0 == result)
+  {
+    struct GNUNET_MESSENGER_MessageHandle msg_handle;
+
+    msg_handle.handle = handle;
+    msg_handle.message = create_message_name (name);
+
+    GNUNET_CONTAINER_multihashmap_iterate (handle->member_ids, 
iterate_send_message, &msg_handle);
+
+    destroy_message (msg_handle.message);
+
+    change_handle_name (handle, name);
+
+    if (operation)
+      GNUNET_IDENTITY_cancel (operation);
+  }
+  else
+  {
+    if (handle->operation)
+    {
+      GNUNET_IDENTITY_cancel (handle->operation);
+
+      handle->operation = operation;
+    }
+  }
+
+  GNUNET_free(old_dir);
+  GNUNET_free(new_dir);
+
+  return (result == 0 ? GNUNET_OK : GNUNET_NO);
+}
+
+int
+open_handle_room (struct GNUNET_MESSENGER_SrvHandle *handle, const struct 
GNUNET_HashCode *key)
+{
+  if ((!get_handle_member_id (handle, key)) && (GNUNET_YES != 
create_handle_member_id (handle, key)))
+    return GNUNET_NO;
+
+  return open_service_room (handle->service, handle, key);
+}
+
+int
+entry_handle_room (struct GNUNET_MESSENGER_SrvHandle *handle, const struct 
GNUNET_PeerIdentity *door,
+                   const struct GNUNET_HashCode *key)
+{
+  if ((!get_handle_member_id (handle, key)) && (GNUNET_YES != 
create_handle_member_id (handle, key)))
+    return GNUNET_NO;
+
+  return entry_service_room (handle->service, handle, door, key);
+}
+
+int
+close_handle_room (struct GNUNET_MESSENGER_SrvHandle *handle, const struct 
GNUNET_HashCode *key)
+{
+  if (!get_handle_member_id (handle, key))
+    return GNUNET_NO;
+
+  return close_service_room (handle->service, handle, key);
+}
+
+int
+send_handle_message (struct GNUNET_MESSENGER_SrvHandle *handle, const struct 
GNUNET_HashCode *key,
+                     struct GNUNET_MESSENGER_Message *message)
+{
+  const struct GNUNET_ShortHashCode *id = get_handle_member_id (handle, key);
+
+  if (!id)
+  {
+    GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "It is required to be a member of a 
room to send messages!\n");
+    return GNUNET_NO;
+  }
+
+  struct GNUNET_MESSENGER_SrvRoom *room = get_service_room (handle->service, 
key);
+
+  if (!room)
+  {
+    GNUNET_log(GNUNET_ERROR_TYPE_WARNING, "The room (%s) is unknown!\n", 
GNUNET_h2s (key));
+    return GNUNET_NO;
+  }
+
+  struct GNUNET_HashCode hash;
+
+  GNUNET_memcpy(&(message->header.sender_id), id, sizeof(*id));
+
+  send_room_message (room, handle, message, &hash);
+  return GNUNET_YES;
+}
+
+static int callback_scan_for_rooms(void* cls, const char *filename) {
+  struct GNUNET_MESSENGER_SrvHandle* handle = cls;
+
+  struct GNUNET_CONFIGURATION_Handle* cfg = GNUNET_CONFIGURATION_create();
+
+  if ((GNUNET_YES == GNUNET_DISK_file_test(filename)) &&
+      (GNUNET_OK == GNUNET_CONFIGURATION_parse(cfg, filename)))
+  {
+    struct GNUNET_HashCode key;
+    struct GNUNET_ShortHashCode member_id;
+
+    if ((GNUNET_OK == GNUNET_CONFIGURATION_get_data(cfg, "room", "key", &key, 
sizeof(key))) &&
+        (GNUNET_OK == GNUNET_CONFIGURATION_get_data(cfg, "room", "member_id", 
&member_id, sizeof(member_id))))
+      change_handle_member_id(handle, &key, &member_id);
+  }
+
+  GNUNET_CONFIGURATION_destroy(cfg);
+  return GNUNET_OK;
+}
+
+void load_handle_configuration(struct GNUNET_MESSENGER_SrvHandle *handle) {
+  char* id_dir;
+  get_handle_data_subdir(handle, handle->name, &id_dir);
+
+  if (GNUNET_YES == GNUNET_DISK_directory_test(id_dir, GNUNET_YES))
+  {
+    char* scan_dir;
+    GNUNET_asprintf(&scan_dir, "%s%s%c", id_dir, "rooms", DIR_SEPARATOR);
+
+    if (GNUNET_OK == GNUNET_DISK_directory_test(scan_dir, GNUNET_YES))
+      GNUNET_DISK_directory_scan(scan_dir, callback_scan_for_rooms, handle);
+
+    GNUNET_free(scan_dir);
+  }
+
+  GNUNET_free(id_dir);
+}
+
+static int
+iterate_save_rooms(void* cls, const struct GNUNET_HashCode* key, void* value)
+{
+  struct GNUNET_MESSENGER_SrvHandle* handle = cls;
+  struct GNUNET_ShortHashCode* member_id = value;
+
+  char* id_dir;
+  get_handle_data_subdir(handle, handle->name, &id_dir);
+
+  char* filename;
+  GNUNET_asprintf(&filename, "%s%s%c%s.cfg",
+                  id_dir, "rooms", DIR_SEPARATOR,
+                  GNUNET_h2s(key));
+
+  GNUNET_free(id_dir);
+
+  struct GNUNET_CONFIGURATION_Handle* cfg = GNUNET_CONFIGURATION_create();
+
+  char* key_data = GNUNET_STRINGS_data_to_string_alloc(key, sizeof(*key));
+
+  if (key_data)
+  {
+    GNUNET_CONFIGURATION_set_value_string(cfg, "room", "key", key_data);
+
+    GNUNET_free(key_data);
+  }
+
+  char* member_id_data = GNUNET_STRINGS_data_to_string_alloc(member_id, 
sizeof(*member_id));
+
+  if (member_id_data)
+  {
+    GNUNET_CONFIGURATION_set_value_string(cfg, "room", "member_id", 
member_id_data);
+
+    GNUNET_free(member_id_data);
+  }
+
+  GNUNET_CONFIGURATION_write(cfg, filename);
+  GNUNET_CONFIGURATION_destroy(cfg);
+
+  GNUNET_free(filename);
+
+  return GNUNET_YES;
+}
+
+void save_handle_configuration(struct GNUNET_MESSENGER_SrvHandle *handle)
+{
+  char* id_dir;
+  get_handle_data_subdir(handle, handle->name, &id_dir);
+
+  if ((GNUNET_YES == GNUNET_DISK_directory_test(id_dir, GNUNET_NO)) ||
+      (GNUNET_OK == GNUNET_DISK_directory_create(id_dir)))
+  {
+    char* save_dir;
+    GNUNET_asprintf(&save_dir, "%s%s%c", id_dir, "rooms", DIR_SEPARATOR);
+
+    if ((GNUNET_YES == GNUNET_DISK_directory_test(save_dir, GNUNET_NO)) ||
+        (GNUNET_OK == GNUNET_DISK_directory_create(save_dir)))
+      GNUNET_CONTAINER_multihashmap_iterate(handle->member_ids, 
iterate_save_rooms, handle);
+
+    GNUNET_free(save_dir);
+  }
+
+  GNUNET_free(id_dir);
+}
diff --git a/src/messenger/gnunet-service-messenger_handle.h 
b/src/messenger/gnunet-service-messenger_handle.h
new file mode 100644
index 000000000..81cf377a8
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_handle.h
@@ -0,0 +1,216 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_handle.h
+ * @brief GNUnet MESSENGER service
+ */
+
+#ifndef GNUNET_SERVICE_MESSENGER_HANDLE_H
+#define GNUNET_SERVICE_MESSENGER_HANDLE_H
+
+#include "platform.h"
+#include "gnunet_cadet_service.h"
+#include "gnunet_container_lib.h"
+#include "gnunet_crypto_lib.h"
+#include "gnunet_identity_service.h"
+#include "gnunet_peer_lib.h"
+#include "gnunet_mq_lib.h"
+
+#include "gnunet-service-messenger_service.h"
+
+#include "messenger_api_ego.h"
+#include "messenger_api_message.h"
+
+struct GNUNET_MESSENGER_SrvHandle
+{
+  struct GNUNET_MESSENGER_Service *service;
+  struct GNUNET_MQ_Handle *mq;
+
+  char *name;
+
+  struct GNUNET_IDENTITY_Operation *operation;
+
+  struct GNUNET_MESSENGER_Ego *ego;
+
+  struct GNUNET_CONTAINER_MultiHashMap *member_ids;
+};
+
+/**
+ * Creates and allocates a new handle related to a <i>service</i> and using a 
given <i>mq</i> (message queue).
+ *
+ * @param service MESSENGER Service
+ * @param mq Message queue
+ * @return New handle
+ */
+struct GNUNET_MESSENGER_SrvHandle*
+create_handle (struct GNUNET_MESSENGER_Service *service, struct 
GNUNET_MQ_Handle *mq);
+
+/**
+ * Destroys a handle and frees its memory fully.
+ *
+ * @param handle Handle
+ */
+void
+destroy_handle (struct GNUNET_MESSENGER_SrvHandle *handle);
+
+/**
+ * Writes the path of the directory for a given <i>handle</i> using a specific 
<i>name</i> to the parameter
+ * <i>dir</i>. This directory will be used to store data regarding the handle 
and its messages.
+ *
+ * @param handle Handle
+ * @param name Potential name of the handle
+ * @param dir[out] Path to store data
+ */
+void
+get_handle_data_subdir (struct GNUNET_MESSENGER_SrvHandle *handle, const char 
*name, char **dir);
+
+/**
+ * Returns the member id of a given <i>handle</i> in a specific <i>room</i>.
+ *
+ * If the handle is not a member of the specific <i>room</i>, NULL gets 
returned.
+ *
+ * @param handle Handle
+ * @param key Key of a room
+ * @return Member id or NULL
+ */
+const struct GNUNET_ShortHashCode*
+get_handle_member_id (const struct GNUNET_MESSENGER_SrvHandle *handle, const 
struct GNUNET_HashCode *key);
+
+/**
+ * Changes the member id of a given <i>handle</i> in a specific <i>room</i> to 
match a <i>unique_id</i>.
+ *
+ * The client connected to the <i>handle</i> will be informed afterwards 
automatically.
+ *
+ * @param handle Handle
+ * @param key Key of a room
+ * @param unique_id Unique member id
+ */
+void
+change_handle_member_id (struct GNUNET_MESSENGER_SrvHandle *handle, const 
struct GNUNET_HashCode *key,
+                         const struct GNUNET_ShortHashCode *unique_id);
+
+/**
+ * Returns the EGO used by a given <i>handle</i>.
+ *
+ * @param handle Handle
+ * @return EGO keypair
+ */
+struct GNUNET_MESSENGER_Ego*
+get_handle_ego (struct GNUNET_MESSENGER_SrvHandle *handle);
+
+/**
+ * Tries to set the name and EGO key of a <i>handle</i> initially by looking 
up a specific <i>name</i>.
+ *
+ * @param handle Handle
+ * @param name Name (optionally: valid EGO name)
+ */
+void
+setup_handle_name (struct GNUNET_MESSENGER_SrvHandle *handle, const char 
*name);
+
+/**
+ * Tries to change the keypair of an EGO of a <i>handle</i> under the same 
name and informs all rooms
+ * about the change automatically.
+ *
+ * @param handle Handle
+ * @return GNUNET_OK on success, otherwise GNUNET_SYSERR
+ */
+int
+update_handle (struct GNUNET_MESSENGER_SrvHandle *handle);
+
+/**
+ * Tries to rename the handle which implies renaming the EGO its using and 
moving all related data into
+ * the directory fitting to the changed <i>name</i>.
+ *
+ * The client connected to the <i>handle</i> will be informed afterwards 
automatically.
+ *
+ * @param handle Handle
+ * @param name New name
+ * @return GNUNET_OK on success, otherwise GNUNET_NO
+ */
+int
+set_handle_name (struct GNUNET_MESSENGER_SrvHandle *handle, const char *name);
+
+/**
+ * Makes a given <i>handle</i> a member of the room using a specific 
<i>key</i> and opens the
+ * room from the handles service.
+ *
+ * @param handle Handle
+ * @param key Key of a room
+ * @return GNUNET_YES on success, otherwise GNUNET_NO
+ */
+int
+open_handle_room (struct GNUNET_MESSENGER_SrvHandle *handle, const struct 
GNUNET_HashCode *key);
+
+/**
+ * Makes a given <i>handle</i> a member of the room using a specific 
<i>key</i> and enters the room
+ * through a tunnel to a peer identified by a given <i>door</i> (peer 
identity).
+ *
+ * @param handle Handle
+ * @param door Peer identity
+ * @param key Key of a room
+ * @return GNUNET_YES on success, otherwise GNUNET_NO
+ */
+int
+entry_handle_room (struct GNUNET_MESSENGER_SrvHandle *handle, const struct 
GNUNET_PeerIdentity *door,
+                   const struct GNUNET_HashCode *key);
+
+/**
+ * Removes the membership of the room using a specific <i>key</i> and closes 
it if no other handle
+ * from this service is still a member of it.
+ *
+ * @param handle Handle
+ * @param key Key of a room
+ * @return GNUNET_YES on success, otherwise GNUNET_NO
+ */
+int
+close_handle_room (struct GNUNET_MESSENGER_SrvHandle *handle, const struct 
GNUNET_HashCode *key);
+
+/**
+ * Sends a <i>message</i> from a given <i>handle</i> to the room using a 
specific <i>key</i>.
+ *
+ * @param handle Handle
+ * @param key Key of a room
+ * @param message Message
+ * @return GNUNET_YES on success, otherwise GNUNET_NO
+ */
+int
+send_handle_message (struct GNUNET_MESSENGER_SrvHandle *handle, const struct 
GNUNET_HashCode *key,
+                     struct GNUNET_MESSENGER_Message *message);
+
+/**
+ * Loads member ids and other potential configuration from a given 
<i>handle</i> which
+ * depends on the given name the <i>handle</i> uses.
+ *
+ * @param handle Handle
+ */
+void
+load_handle_configuration(struct GNUNET_MESSENGER_SrvHandle *handle);
+
+/**
+ * Saves member ids and other potential configuration from a given 
<i>handle</i> which
+ * depends on the given name the <i>handle</i> uses.
+ *
+ * @param handle Handle
+ */
+void
+save_handle_configuration(struct GNUNET_MESSENGER_SrvHandle *handle);
+
+#endif //GNUNET_SERVICE_MESSENGER_HANDLE_H
diff --git a/src/messenger/gnunet-service-messenger_list_handles.c 
b/src/messenger/gnunet-service-messenger_list_handles.c
new file mode 100644
index 000000000..16a160dea
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_list_handles.c
@@ -0,0 +1,95 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_list_handles.c
+ * @brief GNUnet MESSENGER service
+ */
+
+#include "gnunet-service-messenger_list_handles.h"
+
+#include "gnunet-service-messenger_handle.h"
+
+void
+init_list_handles (struct GNUNET_MESSENGER_ListHandles *handles)
+{
+  GNUNET_assert(handles);
+
+  handles->head = NULL;
+  handles->tail = NULL;
+}
+
+void
+clear_list_handles (struct GNUNET_MESSENGER_ListHandles *handles)
+{
+  GNUNET_assert(handles);
+
+  while (handles->head)
+  {
+    struct GNUNET_MESSENGER_ListHandle *element = handles->head;
+
+    GNUNET_CONTAINER_DLL_remove(handles->head, handles->tail, element);
+    destroy_handle (element->handle);
+    GNUNET_free(element);
+  }
+
+  handles->head = NULL;
+  handles->tail = NULL;
+}
+
+void
+add_list_handle (struct GNUNET_MESSENGER_ListHandles *handles, void *handle)
+{
+  struct GNUNET_MESSENGER_ListHandle *element = GNUNET_new(struct 
GNUNET_MESSENGER_ListHandle);
+
+  element->handle = handle;
+
+  GNUNET_CONTAINER_DLL_insert_tail(handles->head, handles->tail, element);
+}
+
+int
+remove_list_handle (struct GNUNET_MESSENGER_ListHandles *handles, void *handle)
+{
+  struct GNUNET_MESSENGER_ListHandle *element;
+
+  for (element = handles->head; element; element = element->next)
+    if (element->handle == handle)
+      break;
+
+  if (!element)
+    return GNUNET_NO;
+
+  GNUNET_CONTAINER_DLL_remove(handles->head, handles->tail, element);
+  GNUNET_free(element);
+
+  return GNUNET_YES;
+}
+
+void*
+find_list_handle_by_member (struct GNUNET_MESSENGER_ListHandles *handles, 
const struct GNUNET_HashCode *key)
+{
+  struct GNUNET_MESSENGER_ListHandle *element;
+
+  for (element = handles->head; element; element = element->next)
+    if (get_handle_member_id ((struct GNUNET_MESSENGER_SrvHandle*) 
element->handle, key))
+      return element->handle;
+
+  return NULL;
+}
diff --git a/src/messenger/gnunet-service-messenger_list_handles.h 
b/src/messenger/gnunet-service-messenger_list_handles.h
new file mode 100644
index 000000000..fe92cc58a
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_list_handles.h
@@ -0,0 +1,96 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_list_handles.h
+ * @brief GNUnet MESSENGER service
+ */
+
+#ifndef GNUNET_SERVICE_MESSENGER_LIST_HANDLES_H
+#define GNUNET_SERVICE_MESSENGER_LIST_HANDLES_H
+
+#include "platform.h"
+#include "gnunet_crypto_lib.h"
+#include "gnunet_container_lib.h"
+
+struct GNUNET_MESSENGER_ListHandle
+{
+  struct GNUNET_MESSENGER_ListHandle *prev;
+  struct GNUNET_MESSENGER_ListHandle *next;
+
+  void *handle;
+};
+
+struct GNUNET_MESSENGER_ListHandles
+{
+  struct GNUNET_MESSENGER_ListHandle *head;
+  struct GNUNET_MESSENGER_ListHandle *tail;
+};
+
+/**
+ * Initializes list of handles as empty list.
+ *
+ * @param handles List of handles
+ */
+void
+init_list_handles (struct GNUNET_MESSENGER_ListHandles *handles);
+
+/**
+ * Destroys remaining handles and clears the list.
+ *
+ * @param handles List of handles
+ */
+void
+clear_list_handles (struct GNUNET_MESSENGER_ListHandles *handles);
+
+/**
+ * Adds a specific <i>handle</i> to the end of the list.
+ *
+ * @param handles List of handles
+ * @param handle Handle
+ */
+void
+add_list_handle (struct GNUNET_MESSENGER_ListHandles *handles, void *handle);
+
+/**
+ * Removes the first entry matching with a specific <i>handle</i> from the 
list and
+ * returns GNUNET_YES on success or GNUNET_NO on failure.
+ *
+ * @param handles List of handles
+ * @param handle Handle
+ * @return GNUNET_YES on success, otherwise GNUNET_NO
+ */
+int
+remove_list_handle (struct GNUNET_MESSENGER_ListHandles *handles, void 
*handle);
+
+/**
+ * Searches linearly through the list of handles for members of a specific room
+ * which is identified by a given <i>key</i>.
+ *
+ * If no handle is found which is a current member, NULL gets returned.
+ *
+ * @param handles List of handles
+ * @param key Common key of a room
+ * @return First handle which is a current member
+ */
+void*
+find_list_handle_by_member (struct GNUNET_MESSENGER_ListHandles *handles, 
const struct GNUNET_HashCode *key);
+
+#endif //GNUNET_SERVICE_MESSENGER_LIST_HANDLES_H
diff --git a/src/messenger/gnunet-service-messenger_list_messages.c 
b/src/messenger/gnunet-service-messenger_list_messages.c
new file mode 100644
index 000000000..c4f1f7043
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_list_messages.c
@@ -0,0 +1,76 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_list_messages.c
+ * @brief GNUnet MESSENGER service
+ */
+
+#include "gnunet-service-messenger_list_messages.h"
+
+void
+init_list_messages (struct GNUNET_MESSENGER_ListMessages *messages)
+{
+  GNUNET_assert(messages);
+
+  messages->head = NULL;
+  messages->tail = NULL;
+}
+
+void
+clear_list_messages (struct GNUNET_MESSENGER_ListMessages *messages)
+{
+  GNUNET_assert(messages);
+
+  while (messages->head)
+  {
+    struct GNUNET_MESSENGER_ListMessage *element = messages->head;
+
+    GNUNET_CONTAINER_DLL_remove(messages->head, messages->tail, element);
+    GNUNET_free(element);
+  }
+
+  messages->head = NULL;
+  messages->tail = NULL;
+}
+
+void
+add_to_list_messages (struct GNUNET_MESSENGER_ListMessages *messages, const 
struct GNUNET_HashCode *hash)
+{
+  struct GNUNET_MESSENGER_ListMessage *element = GNUNET_new(struct 
GNUNET_MESSENGER_ListMessage);
+
+  GNUNET_memcpy(&(element->hash), hash, sizeof(struct GNUNET_HashCode));
+
+  GNUNET_CONTAINER_DLL_insert_tail(messages->head, messages->tail, element);
+}
+
+void
+remove_from_list_messages (struct GNUNET_MESSENGER_ListMessages *messages, 
const struct GNUNET_HashCode *hash)
+{
+  struct GNUNET_MESSENGER_ListMessage *element;
+
+  for (element = messages->head; element; element = element->next)
+    if (0 == GNUNET_CRYPTO_hash_cmp (&(element->hash), hash))
+    {
+      GNUNET_CONTAINER_DLL_remove(messages->head, messages->tail, element);
+      GNUNET_free(element);
+      break;
+    }
+}
diff --git a/src/messenger/gnunet-service-messenger_list_messages.h 
b/src/messenger/gnunet-service-messenger_list_messages.h
new file mode 100644
index 000000000..266c30ec6
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_list_messages.h
@@ -0,0 +1,81 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_list_messages.h
+ * @brief GNUnet MESSENGER service
+ */
+
+#ifndef GNUNET_SERVICE_MESSENGER_LIST_MESSAGES_H
+#define GNUNET_SERVICE_MESSENGER_LIST_MESSAGES_H
+
+#include "platform.h"
+#include "gnunet_crypto_lib.h"
+#include "gnunet_container_lib.h"
+
+struct GNUNET_MESSENGER_ListMessage
+{
+  struct GNUNET_MESSENGER_ListMessage *prev;
+  struct GNUNET_MESSENGER_ListMessage *next;
+
+  struct GNUNET_HashCode hash;
+};
+
+struct GNUNET_MESSENGER_ListMessages
+{
+  struct GNUNET_MESSENGER_ListMessage *head;
+  struct GNUNET_MESSENGER_ListMessage *tail;
+};
+
+/**
+ * Initializes list of message hashes as empty list.
+ *
+ * @param messages List of hashes
+ */
+void
+init_list_messages (struct GNUNET_MESSENGER_ListMessages *messages);
+
+/**
+ * Clears the list of message hashes.
+ *
+ * @param messages List of hashes
+ */
+void
+clear_list_messages (struct GNUNET_MESSENGER_ListMessages *messages);
+
+/**
+ * Adds a specific <i>hash</i> from a message to the end of the list.
+ *
+ * @param messages List of hashes
+ * @param hash Hash of message
+ */
+void
+add_to_list_messages (struct GNUNET_MESSENGER_ListMessages *messages, const 
struct GNUNET_HashCode *hash);
+
+/**
+ * Removes the first entry with a matching <i>hash</i> from the list.
+ *
+ * @param messages List of hashes
+ * @param hash Hash of message
+ */
+void
+remove_from_list_messages (struct GNUNET_MESSENGER_ListMessages *messages, 
const struct GNUNET_HashCode *hash);
+
+#endif //GNUNET_SERVICE_MESSENGER_LIST_MESSAGES_H
diff --git a/src/messenger/gnunet-service-messenger_message_handle.c 
b/src/messenger/gnunet-service-messenger_message_handle.c
new file mode 100644
index 000000000..1652435c8
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_message_handle.c
@@ -0,0 +1,130 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_message_handle.c
+ * @brief GNUnet MESSENGER service
+ */
+
+#include "gnunet-service-messenger_message_handle.h"
+
+void
+handle_message_join (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                     struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash)
+{
+  struct GNUNET_MESSENGER_SrvContact *contact = get_room_contact (room, 
&(message->header.sender_id));
+
+  if (!contact)
+    add_room_contact (room, &(message->header.sender_id), 
&(message->body.join.key));
+
+  struct GNUNET_MESSENGER_MemberInfo *info = get_room_member_info (room, 
&(message->header.sender_id));
+
+  if (!info)
+  {
+    info = GNUNET_new(struct GNUNET_MESSENGER_MemberInfo);
+
+    info->access = GNUNET_MESSENGER_MEMBER_UNKNOWN;
+    init_list_messages (&(info->session_messages));
+  }
+  else
+    clear_list_messages (&(info->session_messages));
+
+  if (GNUNET_YES == GNUNET_CONTAINER_multishortmap_put (room->member_infos, 
&(message->header.sender_id), info,
+                                                        
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_FAST))
+    add_to_list_messages (&(info->session_messages), hash);
+}
+
+void
+handle_message_leave (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                      struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash)
+{
+  struct GNUNET_MESSENGER_MemberInfo *info = get_room_member_info (room, 
&(message->header.sender_id));
+
+  if (info)
+    clear_list_messages (&(info->session_messages));
+}
+
+void
+handle_message_name (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                     struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash)
+{
+  struct GNUNET_MESSENGER_SrvContact *contact = get_room_contact (room, 
&(message->header.sender_id));
+
+  if (contact)
+    set_contact_name (contact, message->body.name.name);
+
+  struct GNUNET_MESSENGER_MemberInfo *info = get_room_member_info (room, 
&(message->header.sender_id));
+
+  if (info)
+    add_to_list_messages (&(info->session_messages), hash);
+}
+
+void
+handle_message_key (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                    struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash)
+{
+  struct GNUNET_MESSENGER_SrvContact *contact = get_room_contact (room, 
&(message->header.sender_id));
+
+  if (contact)
+    swap_service_contact_by_pubkey (room->service, contact, 
&(message->body.key.key));
+
+  struct GNUNET_MESSENGER_MemberInfo *info = get_room_member_info (room, 
&(message->header.sender_id));
+
+  if (info)
+    add_to_list_messages (&(info->session_messages), hash);
+}
+
+void
+handle_message_peer (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                     struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash)
+{
+  if (GNUNET_NO == contains_list_tunnels (&(room->basement), 
&(message->body.peer.peer)))
+    add_to_list_tunnels (&(room->basement), &(message->body.peer.peer));
+
+  if (room->peer_message)
+    rebuild_room_basement_structure (room);
+}
+
+void
+handle_message_id (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                   struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash)
+{
+  struct GNUNET_MESSENGER_MemberInfo *info = get_room_member_info (room, 
&(message->header.sender_id));
+
+  if (info)
+    add_to_list_messages (&(info->session_messages), hash);
+
+  switch_room_member_id (room, &(message->header.sender_id), 
&(message->body.id.id), hash);
+}
+
+void
+handle_message_miss (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                     struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash)
+{
+  struct GNUNET_MESSENGER_ListTunnel *element = find_list_tunnels 
(&(room->basement), &(message->body.peer.peer), NULL);
+
+  if (!element)
+    return;
+
+  remove_from_list_tunnels (&(room->basement), element);
+
+  if (room->peer_message)
+    rebuild_room_basement_structure (room);
+}
diff --git a/src/messenger/gnunet-service-messenger_message_handle.h 
b/src/messenger/gnunet-service-messenger_message_handle.h
new file mode 100644
index 000000000..d091e1d11
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_message_handle.h
@@ -0,0 +1,128 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_message_handle.h
+ * @brief GNUnet MESSENGER service
+ */
+
+#ifndef GNUNET_SERVICE_MESSENGER_MESSAGE_HANDLE_H
+#define GNUNET_SERVICE_MESSENGER_MESSAGE_HANDLE_H
+
+#include "platform.h"
+#include "gnunet_crypto_lib.h"
+
+#include "gnunet-service-messenger_message_kind.h"
+
+#include "gnunet-service-messenger_tunnel.h"
+#include "messenger_api_message.h"
+
+/**
+ * Handles a received or sent join message to make changes of current member 
information.
+ * (add matching member and clear member info)
+ *
+ * @param room Room of the message
+ * @param tunnel Receiving/sending connection (may be NULL)
+ * @param message JOIN-Message
+ * @param hash Hash of the message
+ */
+void
+handle_message_join (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                     struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash);
+
+/**
+ * Handles a received or sent leave message to make changes of current member 
information.
+ * (remove matching member and clear member info)
+ *
+ * @param room Room of the message
+ * @param tunnel Receiving/sending connection (may be NULL)
+ * @param message LEAVE-Message
+ * @param hash Hash of the message
+ */
+void
+handle_message_leave (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                      struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash);
+
+/**
+ * Handles a received or sent name message to rename a current member.
+ * (change name of matching member)
+ *
+ * @param room Room of the message
+ * @param tunnel Receiving/sending connection (may be NULL)
+ * @param message NAME-Message
+ * @param hash Hash of the message
+ */
+void
+handle_message_name (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                     struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash);
+
+/**
+ * Handles a received or sent key message to change the key of a member and 
rearrange the contacts accordingly.
+ * (move the member in the contacts and change its key)
+ *
+ * @param room Room of the message
+ * @param tunnel Receiving/sending connection (may be NULL)
+ * @param message KEY-Message
+ * @param hash Hash of the message
+ */
+void
+handle_message_key (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                    struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash);
+
+/**
+ * Handles a received or sent peer message to make changes of the basement in 
the room.
+ * (add a new peer to the basement and restructure connections based on 
updated list of peers)
+ *
+ * @param room Room of the message
+ * @param tunnel Receiving/sending connection (may be NULL)
+ * @param message PEER-Message
+ * @param hash Hash of the message
+ */
+void
+handle_message_peer (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                     struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash);
+
+/**
+ * Handles a received or sent id message to change a members id.
+ * (change id of matching member)
+ *
+ * @param room Room of the message
+ * @param tunnel Receiving/sending connection (may be NULL)
+ * @param message ID-Message
+ * @param hash Hash of the message
+ */
+void
+handle_message_id (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                   struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash);
+
+/**
+ * Handles a received or sent miss message to drop a peer from the basement in 
the room.
+ * (remove a peer from the basement and restructure connections based on 
updated list of peers)
+ *
+ * @param room Room of the message
+ * @param tunnel Receiving/sending connection (may be NULL)
+ * @param message MISS-Message
+ * @param hash Hash of the message
+ */
+void
+handle_message_miss (struct GNUNET_MESSENGER_SrvRoom *room, struct 
GNUNET_MESSENGER_SrvTunnel *tunnel,
+                     struct GNUNET_MESSENGER_Message *message, const struct 
GNUNET_HashCode *hash);
+
+#endif //GNUNET_SERVICE_MESSENGER_MESSAGE_HANDLE_H
diff --git a/src/messenger/gnunet-service-messenger_message_kind.c 
b/src/messenger/gnunet-service-messenger_message_kind.c
new file mode 100644
index 000000000..9c829fe09
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_message_kind.c
@@ -0,0 +1,192 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
+   under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
+   or (at your option) any later version.
+
+   GNUnet is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Affero General Public License for more details.
+
+   You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+   SPDX-License-Identifier: AGPL3.0-or-later
+ */
+/**
+ * @author Tobias Frisch
+ * @file src/messenger/gnunet-service-messenger_message_kind.c
+ * @brief GNUnet MESSENGER service
+ */
+
+#include "gnunet-service-messenger_message_kind.h"
+#include "gnunet-service-messenger_util.h"
+
+struct GNUNET_MESSENGER_Message*
+create_message_info (struct GNUNET_MESSENGER_Ego *ego, struct 
GNUNET_CONTAINER_MultiShortmap *members)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_INFO);
+
+  if (!message)
+    return NULL;
+
+  GNUNET_memcpy(&(message->body.info.host_key), &(ego->pub), sizeof(ego->pub));
+
+  if (GNUNET_YES == generate_free_member_id (&(message->body.info.unique_id), 
members))
+    return message;
+  else
+  {
+    destroy_message (message);
+    return NULL;
+  }
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_join (struct GNUNET_MESSENGER_Ego *ego)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_JOIN);
+
+  if (!message)
+    return NULL;
+
+  GNUNET_memcpy(&(message->body.join.key), &(ego->pub), sizeof(ego->pub));
+
+  return message;
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_leave ()
+{
+  return create_message (GNUNET_MESSENGER_KIND_LEAVE);
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_name (const char *name)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_NAME);
+
+  if (!message)
+    return NULL;
+
+  message->body.name.name = GNUNET_strdup(name);
+  return message;
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_key (const struct GNUNET_IDENTITY_PrivateKey *key)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_KEY);
+
+  if (!message)
+    return NULL;
+
+  GNUNET_IDENTITY_key_get_public (key, &(message->body.key.key));
+  return message;
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_peer (const struct GNUNET_MESSENGER_Service *service)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_PEER);
+
+  if (!message)
+    return NULL;
+
+  if (GNUNET_OK == get_service_peer_identity (service, 
&(message->body.peer.peer)))
+    return message;
+  else
+  {
+    destroy_message (message);
+    return NULL;
+  }
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_id (const struct GNUNET_ShortHashCode *unique_id)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_ID);
+
+  if (!message)
+    return NULL;
+
+  GNUNET_memcpy(&(message->body.id.id), unique_id, sizeof(struct 
GNUNET_ShortHashCode));
+
+  return message;
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_miss (const struct GNUNET_PeerIdentity *peer)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_MISS);
+
+  if (!message)
+  {
+    return NULL;
+  }
+
+  GNUNET_memcpy(&(message->body.miss.peer), peer, sizeof(struct 
GNUNET_PeerIdentity));
+
+  return message;
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_merge (const struct GNUNET_HashCode *previous)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_MERGE);
+
+  if (!message)
+    return NULL;
+
+  GNUNET_memcpy(&(message->body.merge.previous), previous, sizeof(struct 
GNUNET_HashCode));
+
+  return message;
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_request (const struct GNUNET_HashCode *hash)
+{
+  struct GNUNET_HashCode zero;
+  memset (&zero, 0, sizeof(zero));
+
+  if (0 == GNUNET_CRYPTO_hash_cmp (hash, &zero))
+    return NULL;
+
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_REQUEST);
+
+  if (!message)
+    return NULL;
+
+  GNUNET_memcpy(&(message->body.request.hash), hash, sizeof(struct 
GNUNET_HashCode));
+
+  return message;
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_invite (const struct GNUNET_PeerIdentity *door, const struct 
GNUNET_HashCode *key)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_INVITE);
+
+  if (!message)
+    return NULL;
+
+  GNUNET_memcpy(&(message->body.invite.door), door, sizeof(struct 
GNUNET_PeerIdentity));
+  GNUNET_memcpy(&(message->body.invite.key), key, sizeof(struct 
GNUNET_HashCode));
+
+  return message;
+}
+
+struct GNUNET_MESSENGER_Message*
+create_message_text (const char *text)
+{
+  struct GNUNET_MESSENGER_Message *message = create_message 
(GNUNET_MESSENGER_KIND_TEXT);
+
+  if (!message)
+    return NULL;
+
+  message->body.text.text = GNUNET_strdup(text);
+  return message;
+}
diff --git a/src/messenger/gnunet-service-messenger_message_kind.h 
b/src/messenger/gnunet-service-messenger_message_kind.h
new file mode 100644
index 000000000..dd89d0b2f
--- /dev/null
+++ b/src/messenger/gnunet-service-messenger_message_kind.h
@@ -0,0 +1,160 @@
+/*
+   This file is part of GNUnet.
+   Copyright (C) 2020 GNUnet e.V.
+