gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [gnunet] branch master updated (921b03e4c -> 8db3019c4)


From: gnunet
Subject: [GNUnet-SVN] [gnunet] branch master updated (921b03e4c -> 8db3019c4)
Date: Mon, 07 Oct 2019 12:30:56 +0200

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

martin-schanzenbach pushed a change to branch master
in repository gnunet.

    from 921b03e4c more dead files
     new d2634b1f9 Handle all credential storage via credential service, 
prepared for subject side storage
     new fc58d9d42 Implemented delegate sign and store function for GNS entries:
     new 5091edcec Cleanup, additional input checks, renaming, simplification:
     new 40624873c Run clang format over some files, experimental 
implementation of forward algorithm
     new 93cd93a13 Updated fw/bw algo, collect, and verify (still some things 
left to do)
     new 15b0d71a6 Clean up and renaming
     new 33525da20 Removed GNUNET_CREDENTIAL_Credential, new cmdline 
parameters, formatting:
     new 7b749c917 Unfinished implementation of bidirectional search:
     new 6ad2e1f1d Bidirectional implementation finished, more complex tests 
for bidirectional, cleanup fix, todos done:
     new 418b7f2ce Cleanup and fixes regarding bidirectional search and the 
test.sh files:
     new d4790594a Introduction of intermediate result reporting, removed some 
stuff, new test:
     new 5be14856a Bugfixes, changed test reporting behavior, modified 
intermediate result reporting:
     new 3099a7c25 Cleanup TODOs, bugfix in cleanup and start of bidirectional 
chain resolution: - removed and/or implemented all remaining TODOs - fixed a 
bug in cleanup_handle() which caused to not cleanup correctly when a solution 
was prematurely found - delegation_chain_bw/fw_resolution_start() not has a 
return value to indicate whether a solution was prematurely found - cleaned up 
the test_... files (an additional cleanup commit might follow)
     new 4d4a16e00 Test cleanup/fix:
     new 5ee7ff6e1 Fixed test
     new 5cc45c7ee Proper print on add callback, fixed return value in 
.._start, both cases require same handling therefore same return value
     new 1d468ecab Renamed credential service to abd, replaced all related 
functions, parameters, etc
     new 8db3019c4 Removed rest files, updated makefile

The 18 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 configure.ac                                       |    4 +-
 po/POTFILES.in                                     |   56 +-
 po/de.po                                           | 2533 ++++++++---------
 po/es.po                                           | 2863 +++++++++-----------
 po/fr.po                                           | 2396 ++++++++--------
 po/it.po                                           | 2822 ++++++++-----------
 po/sv.po                                           | 2555 ++++++++---------
 po/vi.po                                           | 2684 +++++++++---------
 po/zh_CN.po                                        | 2423 ++++++++---------
 src/Makefile.am                                    |   16 +-
 src/abd/Makefile.am                                |  100 +
 src/abd/abd.conf.in                                |    5 +
 src/{credential/credential.h => abd/abd.h}         |  102 +-
 src/abd/abd_api.c                                  |  556 ++++
 src/abd/abd_serialization.c                        |  508 ++++
 src/abd/abd_serialization.h                        |  165 ++
 src/abd/delegate_misc.c                            |  274 ++
 .../credential_misc.h => abd/delegate_misc.h}      |   18 +-
 src/abd/gnunet-abd.c                               | 1070 ++++++++
 src/abd/gnunet-service-abd.c                       | 1751 ++++++++++++
 src/abd/plugin_gnsrecord_abd.c                     |  349 +++
 src/abd/test_abd_bi_and.sh                         |   98 +
 src/abd/test_abd_bi_and2.sh                        |   94 +
 src/abd/test_abd_bi_and3.sh                        |   96 +
 src/abd/test_abd_bi_and4.sh                        |   83 +
 src/abd/test_abd_bi_bw.sh                          |   87 +
 src/abd/test_abd_bi_bw_link.sh                     |   92 +
 src/abd/test_abd_bi_bw_link2.sh                    |   93 +
 src/abd/test_abd_bi_fw.sh                          |   92 +
 .../test_abd_defaults.conf}                        |    2 +-
 src/abd/test_abd_issue.sh                          |   46 +
 .../test_abd_lookup.conf}                          |    6 +-
 src/abd/test_abd_own.sh                            |  140 +
 src/abd/test_abd_verify.sh                         |   87 +
 src/abd/test_abd_verify_and.sh                     |   86 +
 src/abd/test_abd_verify_simple.sh                  |   56 +
 src/credential/Makefile.am                         |  111 -
 src/credential/credential.conf.in                  |    5 -
 src/credential/credential_api.c                    |  515 ----
 src/credential/credential_misc.c                   |  176 --
 src/credential/credential_serialization.c          |  479 ----
 src/credential/credential_serialization.h          |  173 --
 src/credential/gnunet-credential.c                 |  603 -----
 src/credential/gnunet-service-credential.c         | 1151 --------
 src/credential/plugin_gnsrecord_credential.c       |  340 ---
 src/credential/plugin_rest_credential.c            | 1174 --------
 src/credential/test_credential_collect.sh          |   47 -
 src/credential/test_credential_collect_rest.sh     |   91 -
 src/credential/test_credential_issue.sh            |   44 -
 src/credential/test_credential_issue_rest.sh       |   53 -
 src/credential/test_credential_verify.sh           |   82 -
 src/credential/test_credential_verify_and.sh       |   82 -
 src/credential/test_credential_verify_rest.sh      |   88 -
 src/credential/test_credential_verify_simple.sh    |   52 -
 src/include/Makefile.am                            |    2 +-
 ...t_credential_service.h => gnunet_abd_service.h} |  184 +-
 src/include/gnunet_gnsrecord_lib.h                 |    5 +-
 src/include/gnunet_protocols.h                     |   12 +-
 src/include/gnunet_signatures.h                    |    2 +-
 59 files changed, 14426 insertions(+), 15453 deletions(-)
 create mode 100644 src/abd/Makefile.am
 create mode 100644 src/abd/abd.conf.in
 rename src/{credential/credential.h => abd/abd.h} (67%)
 create mode 100644 src/abd/abd_api.c
 create mode 100644 src/abd/abd_serialization.c
 create mode 100644 src/abd/abd_serialization.h
 create mode 100644 src/abd/delegate_misc.c
 rename src/{credential/credential_misc.h => abd/delegate_misc.h} (70%)
 create mode 100644 src/abd/gnunet-abd.c
 create mode 100644 src/abd/gnunet-service-abd.c
 create mode 100644 src/abd/plugin_gnsrecord_abd.c
 create mode 100755 src/abd/test_abd_bi_and.sh
 create mode 100755 src/abd/test_abd_bi_and2.sh
 create mode 100755 src/abd/test_abd_bi_and3.sh
 create mode 100755 src/abd/test_abd_bi_and4.sh
 create mode 100755 src/abd/test_abd_bi_bw.sh
 create mode 100755 src/abd/test_abd_bi_bw_link.sh
 create mode 100755 src/abd/test_abd_bi_bw_link2.sh
 create mode 100755 src/abd/test_abd_bi_fw.sh
 rename src/{credential/test_credential_defaults.conf => 
abd/test_abd_defaults.conf} (86%)
 create mode 100755 src/abd/test_abd_issue.sh
 rename src/{credential/test_credential_lookup.conf => 
abd/test_abd_lookup.conf} (82%)
 create mode 100755 src/abd/test_abd_own.sh
 create mode 100755 src/abd/test_abd_verify.sh
 create mode 100755 src/abd/test_abd_verify_and.sh
 create mode 100755 src/abd/test_abd_verify_simple.sh
 delete mode 100644 src/credential/Makefile.am
 delete mode 100644 src/credential/credential.conf.in
 delete mode 100644 src/credential/credential_api.c
 delete mode 100644 src/credential/credential_misc.c
 delete mode 100644 src/credential/credential_serialization.c
 delete mode 100644 src/credential/credential_serialization.h
 delete mode 100644 src/credential/gnunet-credential.c
 delete mode 100644 src/credential/gnunet-service-credential.c
 delete mode 100644 src/credential/plugin_gnsrecord_credential.c
 delete mode 100644 src/credential/plugin_rest_credential.c
 delete mode 100755 src/credential/test_credential_collect.sh
 delete mode 100755 src/credential/test_credential_collect_rest.sh
 delete mode 100755 src/credential/test_credential_issue.sh
 delete mode 100755 src/credential/test_credential_issue_rest.sh
 delete mode 100755 src/credential/test_credential_verify.sh
 delete mode 100755 src/credential/test_credential_verify_and.sh
 delete mode 100755 src/credential/test_credential_verify_rest.sh
 delete mode 100755 src/credential/test_credential_verify_simple.sh
 rename src/include/{gnunet_credential_service.h => gnunet_abd_service.h} (61%)

diff --git a/configure.ac b/configure.ac
index 95f1020ae..7af7e83df 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1675,8 +1675,8 @@ src/gnsrecord/Makefile
 src/hello/Makefile
 src/identity/Makefile
 src/identity/identity.conf
-src/credential/Makefile
-src/credential/credential.conf
+src/abd/Makefile
+src/abd/abd.conf
 src/include/Makefile
 src/integration-tests/Makefile
 src/json/Makefile
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 1a6a4a67d..1bffc3b02 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,3 +1,11 @@
+src/abd/abd_api.c
+src/abd/abd_serialization.c
+src/abd/delegate_misc.c
+src/abd/gnunet-abd.c
+src/abd/gnunet-service-abd.c
+src/abd/plugin_gnsrecord_abd.c
+src/abd/plugin_rest_abd.c
+src/abd/plugin_rest_credential.c
 src/abe/abe.c
 src/arm/arm_api.c
 src/arm/arm_monitor_api.c
@@ -86,13 +94,6 @@ src/core/gnunet-service-core.c
 src/core/gnunet-service-core_kx.c
 src/core/gnunet-service-core_sessions.c
 src/core/gnunet-service-core_typemap.c
-src/credential/credential_api.c
-src/credential/credential_misc.c
-src/credential/credential_serialization.c
-src/credential/gnunet-credential.c
-src/credential/gnunet-service-credential.c
-src/credential/plugin_gnsrecord_credential.c
-src/credential/plugin_rest_credential.c
 src/curl/curl.c
 src/curl/curl_reschedule.c
 src/datacache/datacache.c
@@ -131,6 +132,7 @@ src/dns/gnunet-zonewalk.c
 src/dns/plugin_block_dns.c
 src/exit/gnunet-daemon-exit.c
 src/exit/gnunet-helper-exit.c
+src/exit/gnunet-helper-exit-windows.c
 src/fragmentation/defragmentation.c
 src/fragmentation/fragmentation.c
 src/fs/fs_api.c
@@ -177,6 +179,7 @@ src/gns/gnunet-bcd.c
 src/gns/gnunet-dns2gns.c
 src/gns/gnunet-gns-benchmark.c
 src/gns/gnunet-gns.c
+src/gns/gnunet-gns-helper-service-w32.c
 src/gns/gnunet-gns-import.c
 src/gns/gnunet-gns-proxy.c
 src/gns/gnunet-service-gns.c
@@ -192,6 +195,10 @@ src/gnsrecord/gnsrecord_crypto.c
 src/gnsrecord/gnsrecord_misc.c
 src/gnsrecord/gnsrecord_serialization.c
 src/gnsrecord/plugin_gnsrecord_dns.c
+src/gns/w32nsp.c
+src/gns/w32nsp-install.c
+src/gns/w32nsp-resolve.c
+src/gns/w32nsp-uninstall.c
 src/hello/address.c
 src/hello/gnunet-hello.c
 src/hello/hello.c
@@ -203,7 +210,6 @@ src/identity/gnunet-identity.c
 src/identity/gnunet-service-identity.c
 src/identity/identity_api.c
 src/identity/identity_api_lookup.c
-src/identity/identity_api_suffix_lookup.c
 src/identity/plugin_rest_identity.c
 src/json/json.c
 src/json/json_generator.c
@@ -226,7 +232,7 @@ src/namestore/gnunet-service-namestore.c
 src/namestore/gnunet-zoneimport.c
 src/namestore/namestore_api.c
 src/namestore/namestore_api_monitor.c
-src/namestore/plugin_namestore_flat.c
+src/namestore/plugin_namestore_heap.c
 src/namestore/plugin_namestore_postgres.c
 src/namestore/plugin_namestore_sqlite.c
 src/namestore/plugin_rest_namestore.c
@@ -238,7 +244,9 @@ src/nat-auto/gnunet-service-nat-auto_legacy.c
 src/nat-auto/nat_auto_api.c
 src/nat-auto/nat_auto_api_test.c
 src/nat/gnunet-helper-nat-client.c
+src/nat/gnunet-helper-nat-client-windows.c
 src/nat/gnunet-helper-nat-server.c
+src/nat/gnunet-helper-nat-server-windows.c
 src/nat/gnunet-nat.c
 src/nat/gnunet-service-nat.c
 src/nat/gnunet-service-nat_externalip.c
@@ -298,7 +306,6 @@ src/regex/regex_test_graph.c
 src/regex/regex_test_lib.c
 src/regex/regex_test_random.c
 src/rest/gnunet-rest-server.c
-src/rest/plugin_rest_config.c
 src/rest/plugin_rest_copying.c
 src/rest/rest.c
 src/revocation/gnunet-revocation.c
@@ -398,6 +405,7 @@ src/transport/gnunet-service-transport_neighbours.c
 src/transport/gnunet-service-transport_plugins.c
 src/transport/gnunet-service-transport_validation.c
 src/transport/gnunet-transport.c
+src/transport/gnunet-transport-certificate-creation.c
 src/transport/gnunet-transport-profiler.c
 src/transport/gnunet-transport-wlan-receiver.c
 src/transport/gnunet-transport-wlan-sender.c
@@ -415,6 +423,7 @@ src/transport/tcp_connection_legacy.c
 src/transport/tcp_server_legacy.c
 src/transport/tcp_server_mst_legacy.c
 src/transport/tcp_service_legacy.c
+src/transport/transport_api2_address.c
 src/transport/transport_api2_application.c
 src/transport/transport_api2_communication.c
 src/transport/transport_api2_core.c
@@ -427,7 +436,6 @@ src/transport/transport_api_manipulation.c
 src/transport/transport_api_monitor_peers.c
 src/transport/transport_api_monitor_plugins.c
 src/transport/transport_api_offer_hello.c
-src/transport/transport-testing2.c
 src/transport/transport-testing.c
 src/transport/transport-testing-filenames.c
 src/transport/transport-testing-loggers.c
@@ -449,7 +457,6 @@ src/util/container_multihashmap32.c
 src/util/container_multihashmap.c
 src/util/container_multipeermap.c
 src/util/container_multishortmap.c
-src/util/container_multiuuidmap.c
 src/util/crypto_abe.c
 src/util/crypto_crc.c
 src/util/crypto_ecc.c
@@ -472,11 +479,13 @@ src/util/getopt_helpers.c
 src/util/gnunet-config.c
 src/util/gnunet-config-diff.c
 src/util/gnunet-ecc.c
+src/util/gnunet-helper-w32-console.c
 src/util/gnunet-qr.c
 src/util/gnunet-resolver.c
 src/util/gnunet-scrypt.c
 src/util/gnunet-service-resolver.c
 src/util/gnunet-timeout.c
+src/util/gnunet-timeout-w32.c
 src/util/gnunet-uri.c
 src/util/helper.c
 src/util/load.c
@@ -502,36 +511,21 @@ src/util/speedup.c
 src/util/strings.c
 src/util/time.c
 src/util/tun.c
+src/util/w32cat.c
+src/util/win.c
+src/util/winproc.c
 src/vpn/gnunet-helper-vpn.c
+src/vpn/gnunet-helper-vpn-windows.c
 src/vpn/gnunet-service-vpn.c
 src/vpn/gnunet-vpn.c
 src/vpn/vpn_api.c
 src/zonemaster/gnunet-service-zonemaster.c
 src/zonemaster/gnunet-service-zonemaster-monitor.c
 src/fs/fs_api.h
-src/fs/fs_publish_ublock.h
-src/fs/gnunet-service-fs_cp.h
-src/fs/gnunet-service-fs.h
-src/fs/gnunet-service-fs_pe.h
-src/fs/gnunet-service-fs_pr.h
-src/fs/gnunet-service-fs_push.h
-src/fs/gnunet-service-fs_put.h
 src/include/compat.h
-src/include/gnunet_bio_lib.h
 src/include/gnunet_common.h
 src/include/gnunet_mq_lib.h
-src/include/gnunet_network_lib.h
 src/include/gnunet_time_lib.h
-src/nat/gnunet-service-nat_helper.h
-src/nat/gnunet-service-nat_mini.h
-src/nat/gnunet-service-nat_stun.h
 src/scalarproduct/scalarproduct.h
 src/testbed/testbed_api.h
-src/testbed/testbed_api_hosts.h
 src/testbed/testbed_api_operations.h
-src/testbed/testbed_api_peers.h
-src/testbed/testbed_api_sd.h
-src/testbed/testbed_api_topology.h
-src/transport/transport-testing.h
-src/util/disk.h
-src/util/speedup.h
diff --git a/po/de.po b/po/de.po
index 948c9c4f5..d9482813c 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,17 +10,155 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-02-09 22:07+0000\n"
+"POT-Creation-Date: 2019-10-07 11:45+0200\n"
 "PO-Revision-Date: 2015-03-08 16:16+0100\n"
 "Last-Translator: Mario Blättermann <address@hidden>\n"
 "Language-Team: German <address@hidden>\n"
+"Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 1.7.4\n"
 
+#: src/abd/gnunet-abd.c:394 src/namestore/gnunet-namestore.c:994
+#, fuzzy, c-format
+msgid "Ego `%s' not known to identity service\n"
+msgstr "`%s': unbekannter Dienst: %s\n"
+
+#: src/abd/gnunet-abd.c:410 src/abd/gnunet-abd.c:875
+#, c-format
+msgid "Issuer public key `%s' is not well-formed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:549 src/abd/gnunet-service-abd.c:1723
+#: src/namestore/gnunet-namestore.c:1019
+#: src/namestore/gnunet-namestore-fcfsd.c:1138
+#, fuzzy, c-format
+msgid "Failed to connect to namestore\n"
+msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
+
+#: src/abd/gnunet-abd.c:814 src/abd/gnunet-abd.c:865
+#, fuzzy, c-format
+msgid "Issuer public key not well-formed\n"
+msgstr "Ungültiger Parameter: `%s'\n"
+
+#: src/abd/gnunet-abd.c:823 src/abd/gnunet-abd.c:884
+#, fuzzy, c-format
+msgid "Failed to connect to ABD\n"
+msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
+
+#: src/abd/gnunet-abd.c:829
+#, c-format
+msgid "You must provide issuer the attribute\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:836
+#, fuzzy, c-format
+msgid "ego required\n"
+msgstr "Gültiger Typ ist erforderlich\n"
+
+#: src/abd/gnunet-abd.c:846
+#, c-format
+msgid "Subject public key needed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:855
+#, c-format
+msgid "Subject public key `%s' is not well-formed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:890
+#, c-format
+msgid "You must provide issuer and subject attributes\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:946
+#, c-format
+msgid "Please specify name to lookup, subject key and issuer key!\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:967
+msgid "verify credential against attribute"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:974
+#, fuzzy
+msgid ""
+"The public key of the subject to lookup thecredential for, or for issuer "
+"side storage: subject and its attributes"
+msgstr "Die Priorität des Inhalts angeben"
+
+#: src/abd/gnunet-abd.c:981
+msgid "The private, signed delegate presented by the subject"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:988
+msgid "The public key of the authority to verify the credential against"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:993
+msgid "The ego/zone name to use"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:999
+msgid "The issuer attribute to verify against or to issue"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1005
+msgid ""
+"The time to live for the credential.e.g. 5m, 6h, \"1990-12-30 12:00:00\""
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1010
+msgid "collect credentials"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1015
+msgid "Create and issue a credential issuer side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1020
+msgid "Issue a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1025
+msgid "Create, sign and return a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1032
+msgid "Import signed credentials that should be issued to a zone/ego"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1036
+msgid "Create private record entry."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1042 src/abd/gnunet-abd.c:1048
+msgid "Indicates that the collect/verify process is done via forward search."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1061
+#, fuzzy
+msgid "GNUnet abd resolver tool"
+msgstr "GNUnet Netzwerk Topologie tracen."
+
+#: src/abd/gnunet-service-abd.c:1718 src/gns/gnunet-gns.c:185
+#: src/gns/gnunet-gns-helper-service-w32.c:727
+#, fuzzy, c-format
+msgid "Failed to connect to GNS\n"
+msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
+
+#: src/abd/plugin_gnsrecord_abd.c:182
+#, fuzzy, c-format
+msgid "Unable to parse ATTR record string `%s'\n"
+msgstr "Fehler beim Speichern der Konfigurationsdatei `%s':"
+
+#: src/abd/plugin_rest_abd.c:1128 src/abd/plugin_rest_credential.c:1128
+#, fuzzy
+msgid "GNS REST API initialized\n"
+msgstr " Verbindung fehlgeschlagen\n"
+
 #: src/arm/gnunet-arm.c:156
 #, fuzzy, c-format
 msgid "Failed to remove configuration file %s\n"
@@ -226,8 +364,7 @@ msgid "Control services and the Automated Restart Manager 
(ARM)"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:388 src/transport/plugin_transport_tcp.c:1120
-#: src/transport/plugin_transport_xt.c:1120
-#: src/transport/tcp_service_legacy.c:557 src/util/service.c:612
+#: src/transport/tcp_service_legacy.c:557
 #, c-format
 msgid ""
 "Disabling IPv6 support for service `%s', failed to create IPv6 socket: %s\n"
@@ -236,36 +373,30 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:412 src/arm/gnunet-service-arm.c:418
 #: src/transport/plugin_transport_tcp.c:1139
 #: src/transport/plugin_transport_tcp.c:1145
-#: src/transport/plugin_transport_tcp.c:3829
-#: src/transport/plugin_transport_xt.c:1139
-#: src/transport/plugin_transport_xt.c:1145
-#: src/transport/plugin_transport_xt.c:3833
+#: src/transport/plugin_transport_tcp.c:3835
 #: src/transport/tcp_service_legacy.c:576
-#: src/transport/tcp_service_legacy.c:582 src/util/service.c:637
-#: src/util/service.c:643
+#: src/transport/tcp_service_legacy.c:582 src/util/service.c:1150
+#: src/util/service.c:1156
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:457 src/transport/plugin_transport_tcp.c:1176
-#: src/transport/plugin_transport_xt.c:1176
-#: src/transport/tcp_service_legacy.c:613 src/util/client.c:506
-#: src/util/service.c:682
+#: src/transport/tcp_service_legacy.c:613 src/util/client.c:521
+#: src/util/service.c:1195
 #, c-format
 msgid "UNIXPATH `%s' too long, maximum length is %llu\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:462 src/transport/plugin_transport_tcp.c:1180
-#: src/transport/plugin_transport_xt.c:1180
-#: src/transport/tcp_service_legacy.c:617 src/util/client.c:511
-#: src/util/service.c:687
+#: src/transport/tcp_service_legacy.c:617 src/util/client.c:526
+#: src/util/service.c:1200
 #, c-format
 msgid "Using `%s' instead\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:495 src/transport/plugin_transport_tcp.c:1211
-#: src/transport/plugin_transport_xt.c:1211
-#: src/transport/tcp_service_legacy.c:648 src/util/service.c:723
+#: src/transport/tcp_service_legacy.c:648 src/util/service.c:1236
 #, c-format
 msgid ""
 "Disabling UNIX domain socket support for service `%s', failed to create UNIX "
@@ -273,8 +404,7 @@ msgid ""
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:517 src/transport/plugin_transport_tcp.c:1228
-#: src/transport/plugin_transport_xt.c:1228
-#: src/transport/tcp_service_legacy.c:665 src/util/service.c:741
+#: src/transport/tcp_service_legacy.c:665 src/util/service.c:1254
 #, c-format
 msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"
 msgstr ""
@@ -282,8 +412,7 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:556
 #: src/transport/plugin_transport_http_server.c:2688
 #: src/transport/plugin_transport_tcp.c:1259
-#: src/transport/plugin_transport_xt.c:1259
-#: src/transport/tcp_service_legacy.c:696 src/util/service.c:782
+#: src/transport/tcp_service_legacy.c:696 src/util/service.c:1295
 #, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "»%s« konnte nicht aufgelöst werden: %s\n"
@@ -291,8 +420,7 @@ msgstr "»%s« konnte nicht aufgelöst werden: %s\n"
 #: src/arm/gnunet-service-arm.c:575
 #: src/transport/plugin_transport_http_server.c:2706
 #: src/transport/plugin_transport_tcp.c:1278
-#: src/transport/plugin_transport_xt.c:1278
-#: src/transport/tcp_service_legacy.c:715 src/util/service.c:802
+#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1315
 #, fuzzy, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
@@ -363,14 +491,139 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:837
-msgid "Stop logging\n"
-msgstr "Protokollierung stoppen\n"
+#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:892
+#: src/ats/gnunet-ats-solver-eval.c:2799
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:2840
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3294 src/ats-tests/gnunet-solver-eval.c:939
+msgid "solver to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3299 src/ats-tests/gnunet-solver-eval.c:945
+#: src/ats-tests/gnunet-solver-eval.c:950
+msgid "experiment to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3306
+msgid "print logging"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3311
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3316
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats-new.c:756
+#: src/ats/gnunet-service-ats_plugins.c:451
 #, fuzzy, c-format
-msgid "Start logging `%s'\n"
-msgstr "Collection `%s' begonnen.\n"
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n"
+
+#: src/ats/gnunet-service-ats_plugins.c:304
+#, 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:314
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:359
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats2_common.c:90
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s': `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1274
+msgid "Problem size too large, cannot allocate memory!\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1870
+#, fuzzy, c-format
+msgid "Adding address for peer `%s' multiple times\n"
+msgstr "Adresse des Knotens `%s' konnte nicht ermittelt werden.\n"
+
+#: src/ats/plugin_ats_mlp.c:1914
+#, fuzzy, c-format
+msgid "Updating address property for peer `%s' %p not added before\n"
+msgstr "Adresse des Knotens `%s' konnte nicht ermittelt werden.\n"
+
+#: src/ats/plugin_ats_mlp.c:2476
+msgid ""
+"MLP solver is not optimizing for anything, changing to feasibility check\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
+#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
+#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
+#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
+#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
+#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
+#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "Konfiguration konnte nicht aus %s geladen werden\n"
+
+#: src/ats/plugin_ats_mlp.c:2671
+#, c-format
+msgid ""
+"Adjusting inconsistent outbound quota configuration for network `%s', is "
+"%llu must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2680
+#, c-format
+msgid ""
+"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
+"must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2690
+#, c-format
+msgid ""
+"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2699
+#, c-format
+msgid ""
+"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_proportional.c:1164
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr " gconfig\tGTK Konfiguration\n"
 
 #: src/ats-tests/ats-testing.c:422
 #, c-format
@@ -382,6 +635,15 @@ 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:837
+msgid "Stop logging\n"
+msgstr "Protokollierung stoppen\n"
+
+#: src/ats-tests/ats-testing-log.c:892
+#, fuzzy, c-format
+msgid "Start logging `%s'\n"
+msgstr "Collection `%s' begonnen.\n"
+
 #: src/ats-tests/gnunet-ats-sim.c:90
 #, c-format
 msgid ""
@@ -389,17 +651,6 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
-#: src/ats-tests/gnunet-solver-eval.c:939
-#: src/ats/gnunet-ats-solver-eval.c:3294
-msgid "solver to use"
-msgstr ""
-
-#: src/ats-tests/gnunet-solver-eval.c:945
-#: src/ats-tests/gnunet-solver-eval.c:950
-#: src/ats/gnunet-ats-solver-eval.c:3299
-msgid "experiment to use"
-msgstr ""
-
 #: src/ats-tool/gnunet-ats.c:307
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -517,131 +768,6 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
-#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2799
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2840
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3306
-msgid "print logging"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3311
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3316
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats-new.c:733
-#: src/ats/gnunet-service-ats_plugins.c:451
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n"
-
-#: src/ats/gnunet-service-ats_plugins.c:304
-#, 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:314
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:359
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats2_common.c:90
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s': `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1274
-msgid "Problem size too large, cannot allocate memory!\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1870
-#, fuzzy, c-format
-msgid "Adding address for peer `%s' multiple times\n"
-msgstr "Adresse des Knotens `%s' konnte nicht ermittelt werden.\n"
-
-#: src/ats/plugin_ats_mlp.c:1914
-#, fuzzy, c-format
-msgid "Updating address property for peer `%s' %p not added before\n"
-msgstr "Adresse des Knotens `%s' konnte nicht ermittelt werden.\n"
-
-#: src/ats/plugin_ats_mlp.c:2476
-msgid ""
-"MLP solver is not optimizing for anything, changing to feasibility check\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
-#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
-#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
-#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
-#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
-#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
-#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "Konfiguration konnte nicht aus %s geladen werden\n"
-
-#: src/ats/plugin_ats_mlp.c:2671
-#, c-format
-msgid ""
-"Adjusting inconsistent outbound quota configuration for network `%s', is %"
-"llu must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2680
-#, c-format
-msgid ""
-"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
-"must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2690
-#, c-format
-msgid ""
-"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2699
-#, c-format
-msgid ""
-"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_proportional.c:1164
-#, 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 ""
@@ -773,28 +899,6 @@ 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:145
-#, 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:216
-#, 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:277
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1052,8 +1156,30 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-playback-gst.c:361
+#: 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:145
+#, 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:216
+#, 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:622
+#: src/conversation/gnunet-helper-audio-playback-gst.c:361
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr "Fehler beim Lesen aus STDIN: %d %s\n"
@@ -1351,7 +1477,7 @@ msgid "# valid ephemeral keys received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
 #: src/core/gnunet-service-core_kx.c:1180
-#: src/transport/gnunet-service-transport_validation.c:1128
+#: src/transport/gnunet-service-transport_validation.c:1129
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# PING Nachrichten erstellt"
@@ -1376,7 +1502,7 @@ msgid "# keepalive messages sent"
 msgstr "# Klartext PING Nachrichten gesendet"
 
 #: src/core/gnunet-service-core_kx.c:1351
-#: src/transport/gnunet-service-transport_validation.c:1461
+#: src/transport/gnunet-service-transport_validation.c:1462
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
@@ -1464,146 +1590,23 @@ msgstr "# p2p Trace-Antworten gesendet"
 
 #: src/core/gnunet-service-core_sessions.c:416
 #, fuzzy
-msgid "# outdated typemap confirmations received"
-msgstr "# Bytes empfangen über TCP"
-
-#: src/core/gnunet-service-core_sessions.c:433
-#, fuzzy
-msgid "# valid typemap confirmations received"
-msgstr "# Bytes empfangen über TCP"
-
-#: src/core/gnunet-service-core_typemap.c:169
-#: src/core/gnunet-service-core_typemap.c:181
-#, fuzzy
-msgid "# type maps received"
-msgstr "# Bytes empfangen über TCP"
-
-#: src/core/gnunet-service-core_typemap.c:212
-msgid "# updates to my type map"
-msgstr ""
-
-#: src/credential/credential_misc.c:88
-#, fuzzy, c-format
-msgid "Unable to parse CRED record string `%s'\n"
-msgstr "Fehler beim Speichern der Konfigurationsdatei `%s':"
-
-#: src/credential/gnunet-credential.c:264 src/namestore/gnunet-namestore.c:994
-#, fuzzy, c-format
-msgid "Ego `%s' not known to identity service\n"
-msgstr "`%s': unbekannter Dienst: %s\n"
-
-#: src/credential/gnunet-credential.c:280
-#: src/credential/gnunet-credential.c:434
-#, c-format
-msgid "Issuer public key `%s' is not well-formed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:361
-#: src/credential/gnunet-credential.c:423
-#, fuzzy, c-format
-msgid "Issuer public key not well-formed\n"
-msgstr "Ungültiger Parameter: `%s'\n"
-
-#: src/credential/gnunet-credential.c:372
-#: src/credential/gnunet-credential.c:444
-#, fuzzy, c-format
-msgid "Failed to connect to CREDENTIAL\n"
-msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
-
-#: src/credential/gnunet-credential.c:379
-#, c-format
-msgid "You must provide issuer the attribute\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:387
-#, fuzzy, c-format
-msgid "ego required\n"
-msgstr "Gültiger Typ ist erforderlich\n"
-
-#: src/credential/gnunet-credential.c:403
-#, c-format
-msgid "Subject public key needed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:414
-#, c-format
-msgid "Subject public key `%s' is not well-formed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:451
-#, c-format
-msgid "You must provide issuer and subject attributes\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:504
-#, fuzzy, c-format
-msgid "Issuer ego required\n"
-msgstr "Gültiger Typ ist erforderlich\n"
-
-#: src/credential/gnunet-credential.c:516
-#, c-format
-msgid "Please specify name to lookup, subject key and issuer key!\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:536
-msgid "create credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:540
-msgid "verify credential against attribute"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:545
-#, fuzzy
-msgid "The public key of the subject to lookup the credential for"
-msgstr "Die Priorität des Inhalts angeben"
-
-#: src/credential/gnunet-credential.c:550
-msgid "The name of the credential presented by the subject"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:555
-msgid "The public key of the authority to verify the credential against"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:560
-msgid "The ego to use"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:565
-msgid "The issuer attribute to verify against or to issue"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:570
-msgid "The time to live for the credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:574
-msgid "collect credentials"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:588
-#, fuzzy
-msgid "GNUnet credential resolver tool"
-msgstr "GNUnet Netzwerk Topologie tracen."
+msgid "# outdated typemap confirmations received"
+msgstr "# Bytes empfangen über TCP"
 
-#: src/credential/gnunet-service-credential.c:1138
-#: src/gns/gnunet-gns-helper-service-w32.c:727 src/gns/gnunet-gns.c:185
-#, fuzzy, c-format
-msgid "Failed to connect to GNS\n"
-msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
+#: src/core/gnunet-service-core_sessions.c:433
+#, fuzzy
+msgid "# valid typemap confirmations received"
+msgstr "# Bytes empfangen über TCP"
 
-#: src/credential/gnunet-service-credential.c:1144
-#: src/namestore/gnunet-namestore-fcfsd.c:1138
-#: src/namestore/gnunet-namestore.c:1019
-#, fuzzy, c-format
-msgid "Failed to connect to namestore\n"
-msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
+#: src/core/gnunet-service-core_typemap.c:169
+#: src/core/gnunet-service-core_typemap.c:181
+#, fuzzy
+msgid "# type maps received"
+msgstr "# Bytes empfangen über TCP"
 
-#: src/credential/plugin_gnsrecord_credential.c:186
-#, fuzzy, c-format
-msgid "Unable to parse ATTR record string `%s'\n"
-msgstr "Fehler beim Speichern der Konfigurationsdatei `%s':"
+#: src/core/gnunet-service-core_typemap.c:212
+msgid "# updates to my type map"
+msgstr ""
 
 #: src/datacache/datacache.c:119 src/datacache/datacache.c:311
 #: src/datastore/gnunet-service-datastore.c:757
@@ -1655,14 +1658,12 @@ msgstr ""
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_sqlite.c:53
 #: src/peerstore/plugin_peerstore_sqlite.c:52
-#: src/psycstore/plugin_psycstore_mysql.c:62
-#: src/reclaim/plugin_reclaim_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:56
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:53
 #: src/util/crypto_ecc_setup.c:41 src/util/crypto_mpi.c:39
-#: src/include/gnunet_common.h:818 src/include/gnunet_common.h:827
+#: src/include/gnunet_common.h:840 src/include/gnunet_common.h:849
 #: src/scalarproduct/scalarproduct.h:35
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
@@ -1672,7 +1673,6 @@ msgstr "»%s« schlug bei %s:%d mit dem Fehler %s fehl\n"
 #: src/datastore/plugin_datastore_sqlite.c:508
 #: src/namecache/plugin_namecache_sqlite.c:229
 #: src/namestore/plugin_namestore_sqlite.c:265
-#: src/reclaim/plugin_reclaim_sqlite.c:336
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -1983,22 +1983,20 @@ msgid "`%s' for `%s' failed at %s:%d with error: %s\n"
 msgstr "`%s' an `%s' schlug fehl bei %s:%d mit dem Fehler: %s\n"
 
 #: src/datastore/plugin_datastore_mysql.c:1180
-#: src/psycstore/plugin_psycstore_mysql.c:1936
 msgid "Mysql database running\n"
 msgstr "MySQL-Datenbank läuft\n"
 
-#: src/datastore/plugin_datastore_postgres.c:276
-#: src/datastore/plugin_datastore_postgres.c:893
+#: src/datastore/plugin_datastore_postgres.c:280
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:854
+#: 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:952
-#: src/psycstore/plugin_psycstore_postgres.c:1506
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr "PostgreSQL-Datenbank läuft\n"
 
@@ -2014,8 +2012,6 @@ msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
 #: src/namecache/plugin_namecache_sqlite.c:173
 #: src/namestore/plugin_namestore_sqlite.c:206
 #: src/peerstore/plugin_peerstore_sqlite.c:535
-#: src/psycstore/plugin_psycstore_sqlite.c:325
-#: src/reclaim/plugin_reclaim_sqlite.c:212
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "SQLite-Datenbank konnte nicht initialisiert werden: %s.\n"
@@ -2037,8 +2033,7 @@ msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:1405
 #: src/namecache/plugin_namecache_sqlite.c:557
-#: src/namestore/plugin_namestore_sqlite.c:750
-#: src/reclaim/plugin_reclaim_sqlite.c:711
+#: src/namestore/plugin_namestore_sqlite.c:751
 msgid "Sqlite database running\n"
 msgstr "Sqlite-Datenbank läuft\n"
 
@@ -2108,6 +2103,53 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
+#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
+#, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:949 src/rps/gnunet-rps-profiler.c:3083
+#, fuzzy
+msgid "number of peers to start"
+msgstr "Anzahl an Durchläufen"
+
+#: src/dht/gnunet_dht_profiler.c:954
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
+#: src/testbed/gnunet-testbed-profiler.c:300
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:964
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:969
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:974
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:984
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:989
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1009
+msgid "Measure quality and performance of the DHT service."
+msgstr ""
+
 #: src/dht/gnunet-dht-put.c:134
 msgid "Must provide KEY and DATA for DHT put!\n"
 msgstr ""
@@ -2372,53 +2414,6 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr "# dht Anfragen weitergeleitet"
 
-#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
-#, c-format
-msgid "Exiting as the number of peers is %u\n"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:949 src/rps/gnunet-rps-profiler.c:2953
-#, fuzzy
-msgid "number of peers to start"
-msgstr "Anzahl an Durchläufen"
-
-#: src/dht/gnunet_dht_profiler.c:954
-msgid "number of PUTs to perform per peer"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
-#: src/testbed/gnunet-testbed-profiler.c:304
-msgid "name of the file with the login information for the testbed"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:964
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:969
-msgid "delay to start doing PUTs (default: 1 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:974
-msgid "delay to start doing GETs (default: 5 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "replication degree for DHT PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:984
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:989
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1009
-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"
@@ -2503,11 +2498,6 @@ msgstr ""
 msgid "`%s' must be installed SUID, will not run DNS interceptor\n"
 msgstr ""
 
-#: src/dv/gnunet-dv.c:175
-#, fuzzy
-msgid "Print information about DV state"
-msgstr "Informationen über andere GNUnet Knoten ausgeben."
-
 #: src/exit/gnunet-daemon-exit.c:960
 #, fuzzy
 msgid "# TCP packets sent via TUN"
@@ -2960,62 +2950,67 @@ msgstr ""
 "\n"
 "Fehler beim Uploaden der Datei: %s\n"
 
-#: src/fs/fs_publish.c:724 src/fs/fs_publish.c:778 src/fs/fs_publish.c:823
-#: src/fs/fs_publish.c:844 src/fs/fs_publish.c:874 src/fs/fs_publish.c:1140
+#: src/fs/fs_publish.c:725
+#, fuzzy, c-format
+msgid "Can not index file `%s': %s.\n"
+msgstr "Konfigurationsdatei `%s' konnte nicht geöffnet werden.\n"
+
+#: src/fs/fs_publish.c:782 src/fs/fs_publish.c:827 src/fs/fs_publish.c:848
+#: src/fs/fs_publish.c:878 src/fs/fs_publish.c:1144
 #, fuzzy, c-format
 msgid "Can not index file `%s': %s.  Will try to insert instead.\n"
 msgstr "Indizieren der Datei `%s' schlug fehl.  Versuch Datei einzufügen...\n"
 
-#: src/fs/fs_publish.c:780
+#: src/fs/fs_publish.c:784
 #, fuzzy
 msgid "error on index-start request to `fs' service"
 msgstr "Anfrage an den Transportdienst konnte nicht gestellt werden\n"
 
-#: src/fs/fs_publish.c:825
+#: src/fs/fs_publish.c:829
 msgid "failed to compute hash"
 msgstr ""
 
-#: src/fs/fs_publish.c:845
+#: src/fs/fs_publish.c:849
 msgid "filename too long"
 msgstr "Dateiname zu lang"
 
-#: src/fs/fs_publish.c:876
+#: src/fs/fs_publish.c:880
 #, fuzzy
 msgid "could not connect to `fs' service"
 msgstr "Verbindung zu gnunetd konnte nicht hergestellt werden.\n"
 
-#: src/fs/fs_publish.c:902
+#: src/fs/fs_publish.c:906
 #, fuzzy, c-format
 msgid "Failed to get file identifiers for `%s'\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 
-#: src/fs/fs_publish.c:991 src/fs/fs_publish.c:1027
+#: src/fs/fs_publish.c:995 src/fs/fs_publish.c:1031
 msgid "Can not create LOC URI. Will continue with CHK instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:1094
+#: src/fs/fs_publish.c:1098
 #, fuzzy, c-format
 msgid "Recursive upload failed at `%s': %s"
 msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
 
-#: src/fs/fs_publish.c:1102
+#: src/fs/fs_publish.c:1106
 #, fuzzy, c-format
 msgid "Recursive upload failed: %s"
 msgstr ""
 "\n"
 "Fehler beim Uploaden der Datei: %s\n"
 
-#: src/fs/fs_publish.c:1142
+#: src/fs/fs_publish.c:1146
 #, fuzzy
 msgid "needs to be an actual file"
 msgstr "`%s' ist keine normale Datei.\n"
 
-#: src/fs/fs_publish.c:1381
+#: src/fs/fs_publish.c:1385
 #, fuzzy, c-format
 msgid "Datastore failure: %s"
 msgstr "Verbindung fehlgeschlagen: %s\n"
 
-#: src/fs/fs_publish.c:1472
+#: src/fs/fs_publish.c:1476
 #, c-format
 msgid "Reserving space for %u entries and %llu bytes for publication\n"
 msgstr ""
@@ -3089,96 +3084,96 @@ msgstr "Es konnte keine Verbindung mit gnunetd 
hergestellt werden."
 msgid "Failed to compute hash of file."
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden."
 
-#: src/fs/fs_uri.c:234
+#: src/fs/fs_uri.c:236
 #, fuzzy, no-c-format
 msgid "Malformed KSK URI (`%' must be followed by HEX number)"
 msgstr "Ungültige URL `%s' (muss mit `%s' beginnen)\n"
 
-#: src/fs/fs_uri.c:293
+#: src/fs/fs_uri.c:295
 #, fuzzy
 msgid "Malformed KSK URI (must not begin or end with `+')"
 msgstr "Ungültige URL `%s' (muss mit `%s' beginnen)\n"
 
-#: src/fs/fs_uri.c:311
+#: src/fs/fs_uri.c:313
 #, fuzzy
 msgid "Malformed KSK URI (`++' not allowed)"
 msgstr "Ungültige URL `%s' (muss mit `%s' beginnen)\n"
 
-#: src/fs/fs_uri.c:318
+#: src/fs/fs_uri.c:320
 #, fuzzy
 msgid "Malformed KSK URI (quotes not balanced)"
 msgstr "Ungültige URL `%s' (muss mit `%s' beginnen)\n"
 
-#: src/fs/fs_uri.c:388
+#: src/fs/fs_uri.c:390
 msgid "Malformed SKS URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:429
+#: src/fs/fs_uri.c:431
 msgid "Malformed CHK URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:444
+#: src/fs/fs_uri.c:446
 msgid "Malformed CHK URI (failed to decode CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:523
+#: src/fs/fs_uri.c:525
 msgid "LOC URI malformed (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:538
+#: src/fs/fs_uri.c:540
 msgid "LOC URI malformed (no CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:548
+#: src/fs/fs_uri.c:550
 msgid "LOC URI malformed (missing LOC)"
 msgstr ""
 
-#: src/fs/fs_uri.c:556
+#: src/fs/fs_uri.c:558
 msgid "LOC URI malformed (wrong syntax for public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:564
+#: src/fs/fs_uri.c:566
 msgid "LOC URI malformed (could not decode public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:570
+#: src/fs/fs_uri.c:572
 msgid "LOC URI malformed (could not find signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:576
+#: src/fs/fs_uri.c:578
 msgid "LOC URI malformed (wrong syntax for signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:585
+#: src/fs/fs_uri.c:587
 msgid "LOC URI malformed (could not decode signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:591
+#: src/fs/fs_uri.c:593
 msgid "LOC URI malformed (wrong syntax for expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:597
+#: src/fs/fs_uri.c:599
 msgid "LOC URI malformed (could not parse expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:609
+#: src/fs/fs_uri.c:611
 msgid "LOC URI malformed (signature failed validation)"
 msgstr ""
 
-#: src/fs/fs_uri.c:643
+#: src/fs/fs_uri.c:645
 #, fuzzy
 msgid "invalid argument"
 msgstr "Ungültiges Argument »%s«\n"
 
-#: src/fs/fs_uri.c:655
+#: src/fs/fs_uri.c:657
 msgid "Unrecognized URI type"
 msgstr ""
 
-#: src/fs/fs_uri.c:1059 src/fs/fs_uri.c:1086
+#: src/fs/fs_uri.c:1061 src/fs/fs_uri.c:1088
 msgid "No keywords specified!\n"
 msgstr "Keine Schlüsselwörter angegeben!\n"
 
-#: src/fs/fs_uri.c:1092
+#: src/fs/fs_uri.c:1094
 msgid "Number of double-quotes not balanced!\n"
 msgstr ""
 
@@ -3218,11 +3213,11 @@ msgstr "Sie dürfen nur eine Datei zum Deindizieren 
angeben.\n"
 msgid "set the desired LEVEL of sender-anonymity"
 msgstr "Gewünschten Grad LEVEL an Sender-Anonymität festlegen"
 
-#: src/fs/gnunet-auto-share.c:772 src/fs/gnunet-publish.c:907
+#: src/fs/gnunet-auto-share.c:772
 msgid "disable adding the creation time to the metadata of the uploaded file"
 msgstr ""
 
-#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:912
+#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:907
 msgid "do not use libextractor to add keywords or metadata"
 msgstr ""
 
@@ -3305,7 +3300,7 @@ msgid "Downloading `%s' done (%s/s).\n"
 msgstr "Dateien aus dem GNUnet herunterladen."
 
 #: src/fs/gnunet-download.c:216 src/fs/gnunet-publish.c:295
-#: src/fs/gnunet-search.c:212 src/fs/gnunet-unindex.c:107
+#: src/fs/gnunet-search.c:215 src/fs/gnunet-unindex.c:107
 #, c-format
 msgid "Unexpected status: %d\n"
 msgstr ""
@@ -3329,12 +3324,12 @@ msgid "Target filename must be specified.\n"
 msgstr ""
 
 #: src/fs/gnunet-download.c:291 src/fs/gnunet-publish.c:872
-#: src/fs/gnunet-search.c:270 src/fs/gnunet-unindex.c:139
+#: src/fs/gnunet-search.c:273 src/fs/gnunet-unindex.c:139
 #, fuzzy, c-format
 msgid "Could not initialize `%s' subsystem.\n"
 msgstr "`%s' Dienst konnte nicht initialisiert werden.\n"
 
-#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:312
+#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:315
 msgid "set the desired LEVEL of receiver-anonymity"
 msgstr "Den Grad LEVEL der gewünschten Empfänger-Anonymität setzen"
 
@@ -3342,7 +3337,7 @@ msgstr "Den Grad LEVEL der gewünschten 
Empfänger-Anonymität setzen"
 msgid "delete incomplete downloads (when aborted with CTRL-C)"
 msgstr ""
 
-#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:316
+#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:319
 msgid "only search the local peer (no P2P network search)"
 msgstr ""
 
@@ -3368,6 +3363,15 @@ msgid ""
 "chk/...)"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:119
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:130
+#, 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 ""
@@ -3384,15 +3388,6 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:119
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:130
-#, fuzzy
-msgid "Special file-sharing operations"
-msgstr "Alle Optionen anzeigen"
-
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:231
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3484,7 +3479,7 @@ msgstr ""
 
 #: src/fs/gnunet-publish.c:687
 #, fuzzy
-msgid "Internal error scanning directory.\n"
+msgid "Error scanning directory.\n"
 msgstr "=\tFehler beim Lesen des Verzeichnisses.\n"
 
 #: src/fs/gnunet-publish.c:715
@@ -3529,6 +3524,10 @@ msgstr "Option `%s' macht keinen Sinn ohne die Option 
`%s'.\n"
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr "Die Option »%s« ergibt keinen Sinn ohne die Option »%s«.\n"
 
+#: src/fs/gnunet-publish.c:911
+msgid "enable adding the creation time to the metadata of the uploaded file"
+msgstr ""
+
 #: src/fs/gnunet-publish.c:916
 msgid ""
 "print list of extracted keywords that would be used, but do not perform "
@@ -3601,33 +3600,33 @@ msgstr ""
 msgid "Failed to write directory with search results to `%s'\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:204
+#: src/fs/gnunet-search.c:207
 #, fuzzy, c-format
 msgid "Error searching: %s.\n"
 msgstr "Fehler beim Verlassen der DHT.\n"
 
-#: src/fs/gnunet-search.c:260
+#: src/fs/gnunet-search.c:263
 msgid "Could not create keyword URI from arguments.\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:284
+#: src/fs/gnunet-search.c:287
 #, fuzzy
 msgid "Could not start searching.\n"
 msgstr "Fehler beim Starten der Collection.\n"
 
-#: src/fs/gnunet-search.c:321
+#: src/fs/gnunet-search.c:324
 msgid "write search results to file starting with PREFIX"
 msgstr ""
 
-#: src/fs/gnunet-search.c:326
+#: src/fs/gnunet-search.c:329
 msgid "automatically terminate search after DELAY"
 msgstr ""
 
-#: src/fs/gnunet-search.c:332
+#: src/fs/gnunet-search.c:335
 msgid "automatically terminate search after VALUE results are found"
 msgstr ""
 
-#: src/fs/gnunet-search.c:348
+#: src/fs/gnunet-search.c:351
 msgid "Search GNUnet for files that were published on GNUnet"
 msgstr ""
 
@@ -4039,39 +4038,39 @@ msgstr ""
 msgid "GNUnet HTTP server to create business cards"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:203
+#: src/gns/gnunet-dns2gns.c:214
 msgid "Failed to pack DNS response into UDP packet!\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:405
+#: src/gns/gnunet-dns2gns.c:416
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:421
+#: src/gns/gnunet-dns2gns.c:432
 #, fuzzy, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr "Beschädigte Antwort auf `%s' von Knoten `%s' empfangen.\n"
 
-#: src/gns/gnunet-dns2gns.c:429
+#: src/gns/gnunet-dns2gns.c:440
 #, fuzzy, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr "Unbekannte Anfrageart %d empfangen bei %s:%d\n"
 
-#: src/gns/gnunet-dns2gns.c:588
+#: src/gns/gnunet-dns2gns.c:600
 #, fuzzy
 msgid "No DNS server specified!\n"
 msgstr "Keine Schlüsselwörter angegeben!\n"
 
-#: src/gns/gnunet-dns2gns.c:688
+#: src/gns/gnunet-dns2gns.c:748
 msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:693
+#: src/gns/gnunet-dns2gns.c:753
 msgid "UDP port to listen on for inbound DNS requests; default: 2853"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:710
+#: src/gns/gnunet-dns2gns.c:770
 msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
 msgstr ""
 
@@ -4087,6 +4086,29 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:199
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:233
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:238
+#, fuzzy
+msgid "Specify the type of the record to lookup"
+msgstr "Die Priorität des Inhalts angeben"
+
+#: src/gns/gnunet-gns.c:242
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:258
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "GNUnet Netzwerk Topologie tracen."
+
 #: src/gns/gnunet-gns-helper-service-w32.c:602
 msgid "Not ready to process requests, lacking ego data\n"
 msgstr ""
@@ -4121,130 +4143,107 @@ msgstr ""
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr "»%s« schlug fehl bei %s:%d mit dem Fehler: »%s«.\n"
 
-#: src/gns/gnunet-gns-proxy.c:980
+#: src/gns/gnunet-gns-proxy.c:989
 #, fuzzy, c-format
 msgid "Unsupported CURL TLS backend %d\n"
 msgstr "Kommando `%s' wird nicht unterstützt. Vorgang wird abgebrochen.\n"
 
-#: src/gns/gnunet-gns-proxy.c:1005
+#: src/gns/gnunet-gns-proxy.c:1014
 #, fuzzy, c-format
 msgid "Failed to fetch CN from cert: %s\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 
-#: src/gns/gnunet-gns-proxy.c:1026
+#: src/gns/gnunet-gns-proxy.c:1035
 #, fuzzy, c-format
 msgid "Failed to initialize DANE: %s\n"
 msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n"
 
-#: src/gns/gnunet-gns-proxy.c:1041
+#: src/gns/gnunet-gns-proxy.c:1050
 #, fuzzy, c-format
 msgid "Failed to parse DANE record: %s\n"
 msgstr "Dateiformat fehlerhaft (kein GNUnet Verzeichnis?)\n"
 
-#: src/gns/gnunet-gns-proxy.c:1056
+#: src/gns/gnunet-gns-proxy.c:1065
 #, fuzzy, c-format
 msgid "Failed to verify TLS connection using DANE: %s\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/gns/gnunet-gns-proxy.c:1066
+#: src/gns/gnunet-gns-proxy.c:1075
 #, c-format
 msgid "Failed DANE verification failed with GnuTLS verify status code: %u\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1090
+#: src/gns/gnunet-gns-proxy.c:1099
 #, c-format
 msgid "TLS certificate subject name (%s) does not match `%s': %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1221
+#: src/gns/gnunet-gns-proxy.c:1230
 #, c-format
 msgid "Cookie domain `%s' supplied by server is invalid\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2121
+#: src/gns/gnunet-gns-proxy.c:2131
 #, fuzzy, c-format
 msgid "Unsupported HTTP method `%s'\n"
 msgstr "Kommando `%s' wird nicht unterstützt. Vorgang wird abgebrochen.\n"
 
-#: src/gns/gnunet-gns-proxy.c:2642
+#: src/gns/gnunet-gns-proxy.c:2652
 #, fuzzy, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "Fehler beim Speichern der Konfigurationsdatei `%s':"
 
-#: src/gns/gnunet-gns-proxy.c:2674
+#: src/gns/gnunet-gns-proxy.c:2684
 #, fuzzy, c-format
 msgid "Unable to import certificate from `%s'\n"
 msgstr "SQLite Datenbank konnte nicht initialisiert werden: %s.\n"
 
-#: src/gns/gnunet-gns-proxy.c:2875
+#: src/gns/gnunet-gns-proxy.c:2885
 #, fuzzy, c-format
 msgid "Failed to start HTTPS server for `%s'\n"
 msgstr "Der Transportdienst auf Port %d konnte nicht gestartet werden.\n"
 
-#: src/gns/gnunet-gns-proxy.c:2897 src/rest/gnunet-rest-server.c:658
+#: src/gns/gnunet-gns-proxy.c:2907 src/rest/gnunet-rest-server.c:668
 #, fuzzy
 msgid "Failed to pass client to MHD\n"
 msgstr "Fehler beim Starten der Collection.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3233
+#: src/gns/gnunet-gns-proxy.c:3243
 #, c-format
 msgid "Unsupported socks version %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3262
+#: src/gns/gnunet-gns-proxy.c:3272
 #, fuzzy, c-format
 msgid "Unsupported socks command %d\n"
 msgstr "Kommando `%s' wird nicht unterstützt. Vorgang wird abgebrochen.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3345
+#: src/gns/gnunet-gns-proxy.c:3355
 #, c-format
 msgid "Unsupported socks address type %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3635
+#: src/gns/gnunet-gns-proxy.c:3693
 #, fuzzy, c-format
 msgid "Failed to load X.509 key and certificate from `%s'\n"
 msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
 
-#: src/gns/gnunet-gns-proxy.c:3763
+#: src/gns/gnunet-gns-proxy.c:3821
 msgid "listen on specified port (default: 7777)"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3768
+#: src/gns/gnunet-gns-proxy.c:3826
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3772
+#: src/gns/gnunet-gns-proxy.c:3830
 msgid "disable use of IPv6"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3798
+#: src/gns/gnunet-gns-proxy.c:3856
 msgid "GNUnet GNS proxy"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:199
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:233
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:238
-#, fuzzy
-msgid "Specify the type of the record to lookup"
-msgstr "Die Priorität des Inhalts angeben"
-
-#: src/gns/gnunet-gns.c:242
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:258
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "GNUnet Netzwerk Topologie tracen."
-
 #: src/gns/gnunet-service-gns.c:506
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4256,8 +4255,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:561
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #: src/zonemaster/gnunet-service-zonemaster.c:875
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "Verbindung zu gnunetd konnte nicht hergestellt werden.\n"
@@ -4351,6 +4350,11 @@ msgstr "Fehler beim Speichern der Konfigurationsdatei 
`%s':"
 msgid "Unable to parse BOX record string `%s'\n"
 msgstr "Fehler beim Speichern der Konfigurationsdatei `%s':"
 
+#: src/gns/plugin_rest_gns.c:452
+#, fuzzy
+msgid "Gns REST API initialized\n"
+msgstr " Verbindung fehlgeschlagen\n"
+
 #: src/gnsrecord/plugin_gnsrecord_dns.c:359
 #, c-format
 msgid "Unable to parse IPv4 address `%s'\n"
@@ -4739,7 +4743,7 @@ msgid "# hostlist advertisements send"
 msgstr "# Bekanntmachungen von anderen übertragen"
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:679
-#: src/transport/gnunet-service-transport.c:2814
+#: src/transport/gnunet-service-transport.c:2827
 #, fuzzy
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr "Auf die Namespace Informationen konnte nicht zugegriffen werden.\n"
@@ -4869,15 +4873,15 @@ msgstr "Fehler beim Speichern der Konfigurationsdatei 
`%s':"
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "Dateiformat fehlerhaft (kein GNUnet Verzeichnis?)\n"
 
+#: src/identity/plugin_rest_identity.c:1297
+msgid "Identity REST API initialized\n"
+msgstr ""
+
 #: src/json/json.c:123
 #, fuzzy, c-format
 msgid "Failed to parse JSON in option `%s': %s (%s)\n"
 msgstr "Datei wurde als `%s' gespeichert.\n"
 
-#: src/multicast/gnunet-multicast.c:48 src/multicast/gnunet-multicast.c:72
-msgid "This command doesn't do anything yet."
-msgstr ""
-
 #: src/my/my.c:196 src/my/my.c:215
 #, fuzzy, c-format
 msgid "%s failed at %s:%d with error: %s\n"
@@ -4936,112 +4940,48 @@ msgstr "GNUnet Konfiguration"
 msgid "Namecache failed to cache block"
 msgstr ""
 
-#: src/namecache/namecache_api.c:383
-#, fuzzy
-msgid "Error communicating with namecache service"
-msgstr "Informationen über andere GNUnet Knoten ausgeben."
-
-#: src/namecache/plugin_namecache_flat.c:121
-#: src/namecache/plugin_namecache_flat.c:255
-#: src/namestore/plugin_namestore_heap.c:148
-#: src/namestore/plugin_namestore_heap.c:395
-#: src/peerstore/plugin_peerstore_flat.c:379
-#: src/peerstore/plugin_peerstore_flat.c:538
-#, fuzzy, c-format
-msgid "Unable to initialize file: %s.\n"
-msgstr "SQLite-Datenbank konnte nicht initialisiert werden: %s.\n"
-
-#: src/namecache/plugin_namecache_flat.c:132
-#: src/namestore/plugin_namestore_heap.c:159
-#: src/peerstore/plugin_peerstore_flat.c:394
-#, fuzzy, c-format
-msgid "Unable to get filesize: %s.\n"
-msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
-
-#: src/namecache/plugin_namecache_flat.c:151
-#: src/namestore/plugin_namestore_heap.c:172
-#: src/peerstore/plugin_peerstore_flat.c:406
-#, fuzzy, c-format
-msgid "Unable to read file: %s.\n"
-msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
-
-#: src/namecache/plugin_namecache_flat.c:410
-#, fuzzy
-msgid "flat plugin running\n"
-msgstr "Sqlite-Datenbank läuft\n"
-
-#: src/namecache/plugin_namecache_sqlite.c:183
-#: src/namecache/plugin_namecache_sqlite.c:197
-#: src/namestore/plugin_namestore_sqlite.c:219
-#: src/namestore/plugin_namestore_sqlite.c:230
-#, fuzzy, c-format
-msgid "Failed to setup database at `%s'\n"
-msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:549
-#, 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:576
-#, 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:597
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:629
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:689
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
+#: src/namecache/namecache_api.c:383
+#, fuzzy
+msgid "Error communicating with namecache service"
+msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
-#: src/namestore/gnunet-namestore-fcfsd.c:777
+#: src/namecache/plugin_namecache_flat.c:121
+#: src/namecache/plugin_namecache_flat.c:255
+#: src/namestore/plugin_namestore_heap.c:179
+#: src/namestore/plugin_namestore_heap.c:412
+#: src/peerstore/plugin_peerstore_flat.c:379
+#: src/peerstore/plugin_peerstore_flat.c:538
 #, fuzzy, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n"
+msgid "Unable to initialize file: %s.\n"
+msgstr "SQLite-Datenbank konnte nicht initialisiert werden: %s.\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:796
+#: src/namecache/plugin_namecache_flat.c:132
+#: src/namestore/plugin_namestore_heap.c:190
+#: src/peerstore/plugin_peerstore_flat.c:394
 #, 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:832
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:841
-msgid "Domain name must not contain `+'\n"
-msgstr ""
+msgid "Unable to get filesize: %s.\n"
+msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1071
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
+#: src/namecache/plugin_namecache_flat.c:151
+#: src/namestore/plugin_namestore_heap.c:203
+#: src/peerstore/plugin_peerstore_flat.c:406
+#, fuzzy, c-format
+msgid "Unable to read file: %s.\n"
+msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1099
+#: src/namecache/plugin_namecache_flat.c:410
 #, fuzzy
-msgid "Failed to start HTTP server\n"
-msgstr "Fehler beim Senden einer `%s' Anfrage an den SMTP Server.\n"
+msgid "flat plugin running\n"
+msgstr "Sqlite-Datenbank läuft\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1147
-#, fuzzy
-msgid "Failed to connect to identity\n"
+#: src/namecache/plugin_namecache_sqlite.c:183
+#: src/namecache/plugin_namecache_sqlite.c:197
+#: src/namestore/plugin_namestore_sqlite.c:219
+#: src/namestore/plugin_namestore_sqlite.c:230
+#, fuzzy, c-format
+msgid "Failed to setup database at `%s'\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1173
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1192
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-namestore.c:341
 #, c-format
 msgid "Adding record failed: %s\n"
@@ -5246,6 +5186,70 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
+#: src/namestore/gnunet-namestore-fcfsd.c:549
+#, 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:576
+#, 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:597
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:629
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:689
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:777
+#, 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:796
+#, 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:832
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:841
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1071
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1099
+#, 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:1147
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1173
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1192
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-service-namestore.c:900
 #, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5263,11 +5267,16 @@ msgstr ""
 msgid "Namestore failed to store record\n"
 msgstr ""
 
-#: src/namestore/plugin_namestore_heap.c:778
+#: src/namestore/plugin_namestore_heap.c:773
 #, fuzzy
 msgid "heap file database running\n"
 msgstr "Sqlite-Datenbank läuft\n"
 
+#: src/namestore/plugin_rest_namestore.c:1079
+#, fuzzy
+msgid "Namestore REST API initialized\n"
+msgstr " Verbindung fehlgeschlagen\n"
+
 #: src/nat-auto/gnunet-nat-auto.c:193
 #, fuzzy
 msgid "Suggested configuration changes:\n"
@@ -5553,6 +5562,10 @@ 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:122
+msgid "Show network size estimates from NSE service."
+msgstr ""
+
 #: src/nse/gnunet-nse-profiler.c:849
 msgid "limit to the number of connections to NSE services, 0 for none"
 msgstr ""
@@ -5577,15 +5590,68 @@ msgstr ""
 msgid "Measure quality and performance of the NSE service."
 msgstr ""
 
-#: src/nse/gnunet-nse.c:122
-msgid "Show network size estimates from NSE service."
-msgstr ""
-
 #: src/nse/gnunet-service-nse.c:1534
 #: src/revocation/gnunet-service-revocation.c:843 src/util/gnunet-scrypt.c:276
 msgid "Value is too large.\n"
 msgstr ""
 
+#: src/peerinfo/gnunet-service-peerinfo.c:178
+#, 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:313
+#, 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:334
+#: src/peerinfo/gnunet-service-peerinfo.c:365
+#, 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:449
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:492
+#, 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:659
+#, fuzzy, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "==> Verzeichnis `%s':\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:667
+#, 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:1100
+#, fuzzy, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr "==> Verzeichnis `%s':\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1438
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1451
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:220
+#, fuzzy
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr "Fehler beim Empfangen der Antwort von gnunetd auf die `%s' Nachricht\n"
+
 #: src/peerinfo-tool/gnunet-peerinfo.c:239
 #, fuzzy, c-format
 msgid "%sPeer `%s'\n"
@@ -5597,7 +5663,7 @@ msgid "\tExpires: %s \t %s\n"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:299
-#: src/rest-plugins/plugin_rest_peerinfo.c:501
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:501
 #, fuzzy, c-format
 msgid "Failure: Cannot convert address to string for peer `%s'\n"
 msgstr "Adresse des Knotens `%s' konnte nicht ermittelt werden.\n"
@@ -5665,74 +5731,22 @@ msgstr "Informationen über andere GNUnet Knoten 
ausgeben."
 msgid "Starting transport plugins `%s'\n"
 msgstr "Teste Transport(e) %s\n"
 
-#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:109
-#: src/transport/gnunet-service-transport_plugins.c:173
-#, fuzzy, c-format
-msgid "Loading `%s' transport plugin\n"
-msgstr "Teste Transport(e) %s\n"
-
-#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:129
-#: src/transport/gnunet-service-transport_plugins.c:208
-#, fuzzy, c-format
-msgid "Failed to load transport plugin for `%s'\n"
-msgstr "Anwendung `%s' konnte nicht initialisiert werden.\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:178
-#, 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:313
-#, 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:334
-#: src/peerinfo/gnunet-service-peerinfo.c:365
-#, 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:449
-msgid "# peers known"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:492
-#, 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:659
-#, fuzzy, c-format
-msgid "Scanning directory `%s'\n"
-msgstr "==> Verzeichnis `%s':\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:667
-#, 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:1100
-#, fuzzy, c-format
-msgid "Cleaning up directory `%s'\n"
-msgstr "==> Verzeichnis `%s':\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1438
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1451
-msgid "Skipping import of included HELLOs\n"
-msgstr ""
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:109
+#: src/transport/gnunet-service-transport_plugins.c:173
+#, fuzzy, c-format
+msgid "Loading `%s' transport plugin\n"
+msgstr "Teste Transport(e) %s\n"
 
-#: src/peerinfo/peerinfo_api.c:220
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:129
+#: src/transport/gnunet-service-transport_plugins.c:208
+#, fuzzy, c-format
+msgid "Failed to load transport plugin for `%s'\n"
+msgstr "Anwendung `%s' konnte nicht initialisiert werden.\n"
+
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:796
 #, fuzzy
-msgid "Failed to receive response from `PEERINFO' service."
-msgstr "Fehler beim Empfangen der Antwort von gnunetd auf die `%s' Nachricht\n"
+msgid "Peerinfo REST API initialized\n"
+msgstr " Verbindung fehlgeschlagen\n"
 
 #: src/peerstore/gnunet-peerstore.c:91
 msgid "peerstore"
@@ -5743,21 +5757,20 @@ msgstr ""
 msgid "Could not load database backend `%s'\n"
 msgstr "`%s' konnte nicht aufgelöst werden: %s\n"
 
-#: src/peerstore/peerstore_api.c:532 src/peerstore/peerstore_api.c:581
+#: src/peerstore/peerstore_api.c:605 src/peerstore/peerstore_api.c:657
 msgid "Unexpected iteration response, this should not happen.\n"
 msgstr ""
 
-#: src/peerstore/peerstore_api.c:595
+#: src/peerstore/peerstore_api.c:671
 #, fuzzy
 msgid "Received a malformed response from service."
 msgstr "Beschädigte Antwort auf `%s' von Knoten `%s' empfangen.\n"
 
-#: src/peerstore/peerstore_api.c:731
+#: src/peerstore/peerstore_api.c:807
 msgid "Received a watch result for a non existing watch.\n"
 msgstr ""
 
 #: src/peerstore/plugin_peerstore_sqlite.c:453
-#: src/psycstore/plugin_psycstore_sqlite.c:282
 #, c-format
 msgid ""
 "Error executing SQL query: %s\n"
@@ -5765,8 +5778,6 @@ msgid ""
 msgstr ""
 
 #: src/peerstore/plugin_peerstore_sqlite.c:488
-#: src/psycstore/plugin_psycstore_mysql.c:250
-#: src/psycstore/plugin_psycstore_sqlite.c:259
 #, c-format
 msgid ""
 "Error preparing SQL query: %s\n"
@@ -5783,114 +5794,6 @@ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
 msgid "PQprepare (`%s' as `%s') failed with error: %s\n"
 msgstr "`%s' an `%s' schlug fehl bei %s:%d mit dem Fehler: %s\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:249
-#, fuzzy
-msgid "Failed to store membership information!\n"
-msgstr "Fehler beim Speichern der Konfiguration!"
-
-#: src/psycstore/gnunet-service-psycstore.c:271
-#, fuzzy
-msgid "Failed to test membership!\n"
-msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:300
-#, fuzzy
-msgid "Dropping invalid fragment\n"
-msgstr "Ungültiges Argument »%s«\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:311
-#, fuzzy
-msgid "Failed to store fragment\n"
-msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:368
-#, fuzzy
-msgid "Failed to get fragment!\n"
-msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:434
-#, fuzzy
-msgid "Failed to get message!\n"
-msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:464
-#, fuzzy
-msgid "Failed to get message fragment!\n"
-msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:494
-#, fuzzy
-msgid "Failed to get master counters!\n"
-msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:675
-#, fuzzy, c-format
-msgid "Failed to begin modifying state: %d\n"
-msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:685
-#, fuzzy, c-format
-msgid "Failed to modify state: %d\n"
-msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:693
-#, fuzzy
-msgid "Failed to end modifying state!\n"
-msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:730
-#, fuzzy
-msgid "Tried to set invalid state variable name!\n"
-msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:744
-#, fuzzy
-msgid "Failed to begin synchronizing state!\n"
-msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:761
-#, fuzzy
-msgid "Failed to end synchronizing state!\n"
-msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:779
-#: src/psycstore/gnunet-service-psycstore.c:795
-#, fuzzy
-msgid "Failed to reset state!\n"
-msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:824
-#: src/psycstore/gnunet-service-psycstore.c:881
-#, fuzzy
-msgid "Tried to get invalid state variable name!\n"
-msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:851
-#: src/psycstore/gnunet-service-psycstore.c:896
-#, fuzzy
-msgid "Failed to get state variable!\n"
-msgstr "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:281
-#, fuzzy
-msgid "Unable to initialize Mysql.\n"
-msgstr "SQLite-Datenbank konnte nicht initialisiert werden: %s.\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:291
-#, fuzzy, c-format
-msgid "Failed to run SQL statement `%s'\n"
-msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
-
-#: src/psycstore/plugin_psycstore_sqlite.c:61
-#, fuzzy, c-format
-msgid "`%s' failed at %s:%d with error: %s (%d)\n"
-msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
-
-#: src/psycstore/plugin_psycstore_sqlite.c:1924
-#, fuzzy
-msgid "SQLite database running\n"
-msgstr "SQL Datenbank beschädigt, Ergebnis wird ignoriert.\n"
-
 #: src/pt/gnunet-daemon-pt.c:423
 msgid "Failed to pack DNS request.  Dropping.\n"
 msgstr ""
@@ -5954,61 +5857,79 @@ msgstr ""
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:467
+#: src/reclaim/gnunet-reclaim.c:495
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "Option `%s' macht keinen Sinn ohne die Option `%s'.\n"
 
-#: src/reclaim/gnunet-reclaim.c:475
+#: src/reclaim/gnunet-reclaim.c:501
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:483
+#: src/reclaim/gnunet-reclaim.c:507
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "Option `%s' macht keinen Sinn ohne die Option `%s'.\n"
 
-#: src/reclaim/gnunet-reclaim.c:506
-msgid "Add attribute"
+#: src/reclaim/gnunet-reclaim.c:524
+msgid "Add an attribute NAME"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:512
-msgid "Attribute value"
+#: src/reclaim/gnunet-reclaim.c:527
+msgid "Add an attribute with ID"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:517
-msgid "Ego"
+#: src/reclaim/gnunet-reclaim.c:530
+msgid "The attribute VALUE"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:522
-msgid "Audience (relying party)"
+#: src/reclaim/gnunet-reclaim.c:533
+msgid "The EGO to use"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:526
-msgid "List attributes for Ego"
+#: src/reclaim/gnunet-reclaim.c:535
+msgid "Specify the relying party for issue"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:531
-msgid "Issue a ticket"
+#: src/reclaim/gnunet-reclaim.c:538
+msgid "List attributes for EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:536
+#: src/reclaim/gnunet-reclaim.c:542
+msgid "Issue a ticket for a set of attributes separated by comma"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:545
 msgid "Consume a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:541
+#: src/reclaim/gnunet-reclaim.c:548
 msgid "Revoke a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:546
+#: src/reclaim/gnunet-reclaim.c:551
 msgid "Type of attribute"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:551
+#: src/reclaim/gnunet-reclaim.c:553
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:556
 msgid "Expiration interval of the attribute"
 msgstr ""
 
+#: src/reclaim/gnunet-reclaim.c:560
+msgid "re:claimID command line tool"
+msgstr ""
+
+#: src/reclaim/plugin_rest_openid_connect.c:2051
+#: src/reclaim/plugin_rest_reclaim.c:1018
+#, fuzzy
+msgid "Identity Provider REST API initialized\n"
+msgstr " Verbindung fehlgeschlagen\n"
+
 #: src/reclaim/reclaim_api.c:436
 #, fuzzy
 msgid "failed to store record\n"
@@ -6098,50 +6019,20 @@ msgstr ""
 msgid "Search string `%s' is too long!\n"
 msgstr "Dienst »%s« läuft nicht\n"
 
-#: src/rest-plugins/plugin_rest_copying.c:209
-#, fuzzy
-msgid "COPYING REST API initialized\n"
-msgstr " Verbindung fehlgeschlagen\n"
-
-#: src/rest-plugins/plugin_rest_credential.c:1128
-#, fuzzy
-msgid "GNS REST API initialized\n"
-msgstr " Verbindung fehlgeschlagen\n"
-
-#: src/rest-plugins/plugin_rest_gns.c:452
-#, fuzzy
-msgid "Gns REST API initialized\n"
-msgstr " Verbindung fehlgeschlagen\n"
-
-#: src/rest-plugins/plugin_rest_identity.c:1297
-msgid "Identity REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_namestore.c:1079
-#, fuzzy
-msgid "Namestore REST API initialized\n"
-msgstr " Verbindung fehlgeschlagen\n"
-
-#: src/rest-plugins/plugin_rest_openid_connect.c:2245
-#: src/rest-plugins/plugin_rest_reclaim.c:1079
-#, fuzzy
-msgid "Identity Provider REST API initialized\n"
-msgstr " Verbindung fehlgeschlagen\n"
-
-#: src/rest-plugins/plugin_rest_peerinfo.c:796
-#, fuzzy
-msgid "Peerinfo REST API initialized\n"
-msgstr " Verbindung fehlgeschlagen\n"
-
-#: src/rest/gnunet-rest-server.c:927
+#: src/rest/gnunet-rest-server.c:986
 msgid "listen on specified port (default: 7776)"
 msgstr ""
 
-#: src/rest/gnunet-rest-server.c:944
+#: src/rest/gnunet-rest-server.c:1003
 #, fuzzy
 msgid "GNUnet REST server"
 msgstr "GNUnet Netzwerk Topologie tracen."
 
+#: src/rest/plugin_rest_copying.c:209
+#, fuzzy
+msgid "COPYING REST API initialized\n"
+msgstr " Verbindung fehlgeschlagen\n"
+
 #: src/revocation/gnunet-revocation.c:129
 #, c-format
 msgid "Key `%s' is valid\n"
@@ -6201,7 +6092,7 @@ msgstr ""
 msgid "Revocation certificate not ready, calculating proof of work\n"
 msgstr ""
 
-#: src/revocation/gnunet-revocation.c:437 src/social/gnunet-social.c:1180
+#: src/revocation/gnunet-revocation.c:437
 #, c-format
 msgid "Public key `%s' malformed\n"
 msgstr ""
@@ -6276,35 +6167,35 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "Knoten `%s' konnte nicht in der Routing Tabelle gefunden werden!\n"
 
-#: src/rps/gnunet-rps-profiler.c:2959
+#: src/rps/gnunet-rps.c:260
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:264
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:268
+msgid "Get peers from biased stream"
+msgstr ""
+
+#: src/rps/gnunet-rps-profiler.c:3088
 msgid "duration of the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2965
+#: src/rps/gnunet-rps-profiler.c:3093
 msgid "timeout for the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2971
+#: src/rps/gnunet-rps-profiler.c:3098
 #, fuzzy
 msgid "number of PeerIDs to request"
 msgstr "Anzahl an Durchläufen"
 
-#: src/rps/gnunet-rps-profiler.c:2986
+#: src/rps/gnunet-rps-profiler.c:3114
 msgid "Measure quality and performance of the RPS service."
 msgstr ""
 
-#: src/rps/gnunet-rps.c:260
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:264
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:268
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/scalarproduct/gnunet-scalarproduct.c:220
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6360,10 +6251,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1401
 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1345
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr " Verbindung fehlgeschlagen\n"
@@ -6388,7 +6279,7 @@ msgstr ""
 msgid "also profile decryption"
 msgstr ""
 
-#: src/set/gnunet-service-set.c:2005
+#: src/set/gnunet-service-set.c:2008
 #, fuzzy
 msgid "Could not connect to CADET service\n"
 msgstr "Verbindung zum %s-Dienst ist fehlgeschlagen!\n"
@@ -6435,131 +6326,6 @@ msgstr ""
 msgid "element size"
 msgstr ""
 
-#: src/social/gnunet-social.c:1166
-#, fuzzy
-msgid "--place missing or invalid.\n"
-msgstr "Ungültige Antwort auf `%s'.\n"
-
-#: src/social/gnunet-social.c:1217
-msgid "assign --name in state to --data"
-msgstr ""
-
-#: src/social/gnunet-social.c:1222
-msgid "say good-bye and leave somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1227
-msgid "create a place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1232
-msgid "destroy a place we were hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1237
-msgid "enter somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1243
-msgid "find state matching name prefix"
-msgstr ""
-
-#: src/social/gnunet-social.c:1248
-msgid "replay history of messages up to the given --limit"
-msgstr ""
-
-#: src/social/gnunet-social.c:1253
-msgid "reconnect to a previously created place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1258
-msgid "publish something to a place we are hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1263
-msgid "reconnect to a previously entered place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1268
-msgid "search for state matching exact name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1273
-msgid "submit something to somebody's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1278
-msgid "list of egos and subscribed places"
-msgstr ""
-
-#: src/social/gnunet-social.c:1283
-msgid "extract and replay history between message IDs --start and --until"
-msgstr ""
-
-#: src/social/gnunet-social.c:1292
-msgid "application ID to use when connecting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1298
-msgid "message body or state value"
-msgstr ""
-
-#: src/social/gnunet-social.c:1304
-#, fuzzy
-msgid "name or public key of ego"
-msgstr "Ungültiger Parameter: `%s'\n"
-
-#: src/social/gnunet-social.c:1309
-msgid "wait for incoming messages"
-msgstr ""
-
-#: src/social/gnunet-social.c:1315
-msgid "GNS name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1321
-msgid "peer ID for --guest-enter"
-msgstr ""
-
-#: src/social/gnunet-social.c:1327
-msgid "name (key) to query from state"
-msgstr ""
-
-#: src/social/gnunet-social.c:1333
-msgid "method name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1339
-#, fuzzy
-msgid "number of messages to replay from history"
-msgstr "Anzahl an Durchläufen"
-
-#: src/social/gnunet-social.c:1345
-msgid "key address of place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1351
-msgid "start message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1356
-msgid "respond to entry requests by admitting all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1362
-msgid "end message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1367
-msgid "respond to entry requests by refusing all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1377
-msgid ""
-"gnunet-social - Interact with the social service: enter/leave, send/receive "
-"messages, access history and state.\n"
-msgstr ""
-
 #: src/sq/sq.c:54
 #, c-format
 msgid "Failure to bind %u-th SQL parameter\n"
@@ -6723,7 +6489,7 @@ msgid "Invalid argument `%s'; expecting unsigned int\n"
 msgstr "Ungültiger Parameter für `%s' bei %s:%d.\n"
 
 #: src/testbed/generate-underlay-topology.c:342
-#: src/testbed/gnunet-testbed-profiler.c:283
+#: src/testbed/gnunet-testbed-profiler.c:282
 msgid "create COUNT number of peers"
 msgstr ""
 
@@ -6832,17 +6598,6 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr ""
 
-#: src/testbed/gnunet-testbed-profiler.c:289
-msgid "tolerate COUNT number of continious timeout failures"
-msgstr ""
-
-#: src/testbed/gnunet-testbed-profiler.c:294
-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:118
 #, fuzzy
 msgid "Waiting for child to exit.\n"
@@ -6855,6 +6610,17 @@ msgstr ""
 msgid "Spawning process `%s'\n"
 msgstr "Ungültige Antwort auf `%s'.\n"
 
+#: src/testbed/gnunet-testbed-profiler.c:287
+msgid "tolerate COUNT number of continious timeout failures"
+msgstr ""
+
+#: src/testbed/gnunet-testbed-profiler.c:291
+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:410
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -7031,47 +6797,47 @@ msgstr ""
 msgid "Key number %u does not exist\n"
 msgstr ""
 
-#: src/testing/testing.c:1159
+#: src/testing/testing.c:1161
 #, c-format
 msgid ""
 "You attempted to create a testbed with more than %u hosts.  Please "
 "precompute more hostkeys first.\n"
 msgstr ""
 
-#: src/testing/testing.c:1168
+#: src/testing/testing.c:1170
 #, fuzzy, c-format
 msgid "Failed to initialize hostkey for peer %u\n"
 msgstr "SQLite Datenbank konnte nicht initialisiert werden.\n"
 
-#: src/testing/testing.c:1178
+#: src/testing/testing.c:1180
 msgid "PRIVATE_KEY option in PEER section missing in configuration\n"
 msgstr ""
 
-#: src/testing/testing.c:1191
+#: src/testing/testing.c:1193
 msgid "Failed to create configuration for peer (not enough free ports?)\n"
 msgstr ""
 
-#: src/testing/testing.c:1205
+#: src/testing/testing.c:1207
 #, fuzzy, c-format
 msgid "Cannot open hostkey file `%s': %s\n"
 msgstr "Konfigurationsdatei `%s' konnte nicht geöffnet werden.\n"
 
-#: src/testing/testing.c:1217
+#: src/testing/testing.c:1219
 #, fuzzy, c-format
 msgid "Failed to write hostkey file for peer %u: %s\n"
 msgstr "Datei wurde als `%s' gespeichert.\n"
 
-#: src/testing/testing.c:1242
+#: src/testing/testing.c:1244
 #, fuzzy, c-format
 msgid "Failed to write configuration file `%s' for peer %u: %s\n"
 msgstr "Fehler beim Speichern der Konfigurationsdatei `%s':"
 
-#: src/testing/testing.c:1344
+#: src/testing/testing.c:1346
 #, c-format
 msgid "Failed to start `%s': %s\n"
 msgstr "»%s« konnte nicht gestartet werden: %s\n"
 
-#: src/testing/testing.c:1647
+#: src/testing/testing.c:1649
 #, c-format
 msgid "Failed to load configuration from %s\n"
 msgstr "Konfiguration konnte nicht aus %s geladen werden\n"
@@ -7147,18 +6913,18 @@ msgstr "# HELLO-Meldungen empfangen"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:2329
-#: src/transport/gnunet-communicator-udp.c:2883
-#: src/transport/gnunet-service-tng.c:4679
-#: src/transport/gnunet-service-transport.c:2782
+#: src/transport/gnunet-communicator-tcp.c:2334
+#: src/transport/gnunet-communicator-udp.c:2938
+#: src/transport/gnunet-service-tng.c:7070
+#: src/transport/gnunet-service-transport.c:2795
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:2393
+#: src/transport/gnunet-communicator-tcp.c:2398
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2954
+#: src/transport/gnunet-communicator-udp.c:3016
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7168,60 +6934,60 @@ msgid ""
 "Maximum number of UNIX connections exceeded, dropping incoming message\n"
 msgstr "Maximale Anzahl der Verbindungen ist %u\n"
 
-#: src/transport/gnunet-communicator-unix.c:1073
+#: src/transport/gnunet-communicator-unix.c:1074
 #: src/transport/plugin_transport_unix.c:1403
 #, c-format
 msgid "Cannot create path to `%s'\n"
 msgstr "Pfad zu »%s« kann nicht erstellt werden\n"
 
-#: src/transport/gnunet-communicator-unix.c:1162
+#: src/transport/gnunet-communicator-unix.c:1163
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:448
+#: src/transport/gnunet-service-transport_ats.c:141
+msgid "# Addresses given to ATS"
+msgstr ""
+
+#: src/transport/gnunet-service-transport.c:452
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:817
+#: src/transport/gnunet-service-transport.c:826
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1550
+#: src/transport/gnunet-service-transport.c:1563
 msgid "# bytes payload discarded due to not connected peer"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1710
+#: src/transport/gnunet-service-transport.c:1723
 msgid "# bytes total received"
 msgstr "# Bytes insgesamt empfangen"
 
-#: src/transport/gnunet-service-transport.c:1807
+#: src/transport/gnunet-service-transport.c:1820
 msgid "# bytes payload received"
 msgstr "# Bytes Nutzdaten empfangen"
 
-#: src/transport/gnunet-service-transport.c:2124
-#: src/transport/gnunet-service-transport.c:2596
+#: src/transport/gnunet-service-transport.c:2137
+#: src/transport/gnunet-service-transport.c:2609
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2600
+#: src/transport/gnunet-service-transport.c:2613
 #, 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:2708
+#: src/transport/gnunet-service-transport.c:2721
 #, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2717
+#: src/transport/gnunet-service-transport.c:2730
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:141
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7231,202 +6997,202 @@ msgstr ""
 msgid "# session creation failed"
 msgstr " Verbindung fehlgeschlagen\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1052
+#: src/transport/gnunet-service-transport_neighbours.c:1053
 msgid "# DISCONNECT messages sent"
 msgstr "# DISCONNECT-Meldungen empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1175
+#: src/transport/gnunet-service-transport_neighbours.c:1176
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1323
-#: src/transport/gnunet-service-transport_neighbours.c:1784
+#: src/transport/gnunet-service-transport_neighbours.c:1324
+#: src/transport/gnunet-service-transport_neighbours.c:1785
 #, fuzzy
 msgid "# bytes in message queue for other peers"
 msgstr "# Bytes ausgehender Nachrichten verworfen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1328
+#: src/transport/gnunet-service-transport_neighbours.c:1329
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# Bytes des Typs %d übertragen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1334
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 msgid "# transmission failures for messages to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1394
+#: src/transport/gnunet-service-transport_neighbours.c:1395
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1478
+#: src/transport/gnunet-service-transport_neighbours.c:1479
 msgid "# KEEPALIVES sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1514
+#: src/transport/gnunet-service-transport_neighbours.c:1515
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1522
+#: src/transport/gnunet-service-transport_neighbours.c:1523
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1532
+#: src/transport/gnunet-service-transport_neighbours.c:1533
 msgid "# KEEPALIVES received in good order"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1577
+#: src/transport/gnunet-service-transport_neighbours.c:1578
 msgid "# KEEPALIVE_RESPONSEs discarded (not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1586
+#: src/transport/gnunet-service-transport_neighbours.c:1587
 msgid "# KEEPALIVE_RESPONSEs discarded (not expected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1594
+#: src/transport/gnunet-service-transport_neighbours.c:1595
 msgid "# KEEPALIVE_RESPONSEs discarded (address changed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1603
+#: src/transport/gnunet-service-transport_neighbours.c:1604
 msgid "# KEEPALIVE_RESPONSEs discarded (no nonce)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 msgid "# KEEPALIVE_RESPONSEs discarded (bad nonce)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1614
+#: src/transport/gnunet-service-transport_neighbours.c:1615
 msgid "# KEEPALIVE_RESPONSEs received (OK)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1681
+#: src/transport/gnunet-service-transport_neighbours.c:1682
 msgid "# messages discarded due to lack of neighbour record"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1715
+#: src/transport/gnunet-service-transport_neighbours.c:1716
 #, fuzzy
 msgid "# bandwidth quota violations by other peers"
 msgstr "Verfolgt die Bandbreitennutzung von gnunetd"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1730
+#: src/transport/gnunet-service-transport_neighbours.c:1731
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1853
+#: src/transport/gnunet-service-transport_neighbours.c:1854
 #, fuzzy, c-format
 msgid "Failed to send SYN message to peer `%s'\n"
 msgstr "Fehler beim Parsen der Gerätedaten von `%s' bei %s:%d.\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1873
+#: src/transport/gnunet-service-transport_neighbours.c:1874
 msgid "# Failed attempts to switch addresses (failed to send SYN CONT)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1912
+#: src/transport/gnunet-service-transport_neighbours.c:1913
 #, fuzzy
 msgid "# SYN messages sent"
 msgstr "# DISCONNECT-Meldungen empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1929
+#: src/transport/gnunet-service-transport_neighbours.c:1930
 #, fuzzy, c-format
 msgid "Failed to transmit SYN message to %s\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1959
+#: src/transport/gnunet-service-transport_neighbours.c:1960
 msgid "# Failed attempts to switch addresses (failed to send SYN)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2027
+#: src/transport/gnunet-service-transport_neighbours.c:2028
 #, fuzzy, c-format
 msgid "Failed to send SYN_ACK message to peer `%s' using address `%s'\n"
 msgstr "Fehler beim Senden der `%s' Nachricht an gnunetd\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2081
+#: src/transport/gnunet-service-transport_neighbours.c:2082
 #, fuzzy
 msgid "# SYN_ACK messages sent"
 msgstr "# verschlüsselter PONG Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2098
+#: src/transport/gnunet-service-transport_neighbours.c:2099
 #, fuzzy, c-format
 msgid "Failed to transmit SYN_ACK message to %s\n"
 msgstr "Fehler beim Aktualisieren der Daten des Moduls `%s'\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2261
+#: src/transport/gnunet-service-transport_neighbours.c:2262
 #, fuzzy
 msgid "# SYN messages received"
 msgstr "# PING Nachrichten erstellt"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2266
+#: src/transport/gnunet-service-transport_neighbours.c:2267
 #, c-format
 msgid "SYN request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2653
+#: src/transport/gnunet-service-transport_neighbours.c:2654
 msgid "# Attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3138
+#: src/transport/gnunet-service-transport_neighbours.c:3139
 #, fuzzy
 msgid "# SYN_ACK messages received"
 msgstr "# SESSION_ACK-Meldungen empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3146
+#: src/transport/gnunet-service-transport_neighbours.c:3147
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (no peer)"
 msgstr "# verschlüsselter PONG Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3164
-#: src/transport/gnunet-service-transport_neighbours.c:3188
+#: src/transport/gnunet-service-transport_neighbours.c:3165
+#: src/transport/gnunet-service-transport_neighbours.c:3189
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (not ready)"
 msgstr "# verschlüsselter PONG Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3200
+#: src/transport/gnunet-service-transport_neighbours.c:3201
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (waiting on ATS)"
 msgstr "# verschlüsselter PONG Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3225
+#: src/transport/gnunet-service-transport_neighbours.c:3226
 msgid "# Successful attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3238
+#: src/transport/gnunet-service-transport_neighbours.c:3239
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (disconnecting)"
 msgstr "# verschlüsselter PONG Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3411
+#: src/transport/gnunet-service-transport_neighbours.c:3412
 #, fuzzy
 msgid "# ACK messages received"
 msgstr "# CONNECT_ACK-Meldungen empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3447
+#: src/transport/gnunet-service-transport_neighbours.c:3448
 #, fuzzy
 msgid "# unexpected ACK messages"
 msgstr "# verschlüsselter PONG Nachrichten gesendet"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3535
+#: src/transport/gnunet-service-transport_neighbours.c:3536
 #, fuzzy
 msgid "# quota messages ignored (malformed)"
 msgstr "# gap Anfragen verworfen: Kollision in RT"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3542
+#: src/transport/gnunet-service-transport_neighbours.c:3543
 #, fuzzy
 msgid "# QUOTA messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3582
+#: src/transport/gnunet-service-transport_neighbours.c:3583
 msgid "# disconnect messages ignored (malformed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3589
+#: src/transport/gnunet-service-transport_neighbours.c:3590
 #, fuzzy
 msgid "# DISCONNECT messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3600
+#: src/transport/gnunet-service-transport_neighbours.c:3601
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3735
+#: src/transport/gnunet-service-transport_neighbours.c:3736
 msgid "# disconnected from peer upon explicit request"
 msgstr ""
 
@@ -7461,7 +7227,7 @@ msgstr ""
 #: src/transport/gnunet-service-transport_validation.c:491
 #: src/transport/gnunet-service-transport_validation.c:677
 #: src/transport/gnunet-service-transport_validation.c:997
-#: src/transport/gnunet-service-transport_validation.c:1609
+#: src/transport/gnunet-service-transport_validation.c:1610
 #, fuzzy
 msgid "# validations running"
 msgstr "Sqlite-Datenbank läuft\n"
@@ -7488,102 +7254,65 @@ msgstr ""
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1123
+#: src/transport/gnunet-service-transport_validation.c:1124
 #, fuzzy
 msgid "# PING message for different peer received"
 msgstr "# PING Nachrichten erstellt"
 
-#: src/transport/gnunet-service-transport_validation.c:1174
+#: src/transport/gnunet-service-transport_validation.c:1175
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1187
+#: src/transport/gnunet-service-transport_validation.c:1188
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1190
+#: src/transport/gnunet-service-transport_validation.c:1191
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1198
+#: src/transport/gnunet-service-transport_validation.c:1199
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1211
+#: src/transport/gnunet-service-transport_validation.c:1212
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1266
+#: src/transport/gnunet-service-transport_validation.c:1267
 #, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr "PONG-Signatur für Knoten »%s« konnte nicht erstellt werden\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1317
+#: src/transport/gnunet-service-transport_validation.c:1318
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1326
-msgid "# PONGs multicast to all available addresses"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1499
-msgid "# PONGs dropped, no matching pending validation"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1517
-msgid "# PONGs dropped, signature expired"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1572
-msgid "# validations succeeded"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1627
-msgid "# HELLOs given to peerinfo"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:219
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
+#: src/transport/gnunet-service-transport_validation.c:1327
+msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:617
-msgid "send data to peer"
+#: src/transport/gnunet-service-transport_validation.c:1500
+msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:621
-#, fuzzy
-msgid "receive data from peer"
-msgstr "# Bytes des Typs %d empfangen"
-
-#: src/transport/gnunet-transport-profiler.c:626
-msgid "iterations"
+#: src/transport/gnunet-service-transport_validation.c:1518
+msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:631
-#, fuzzy
-msgid "number of messages to send"
-msgstr "Anzahl an Durchläufen"
-
-#: src/transport/gnunet-transport-profiler.c:636
-msgid "message size to use"
+#: src/transport/gnunet-service-transport_validation.c:1573
+msgid "# validations succeeded"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:641
-#: src/transport/gnunet-transport.c:1462
-msgid "peer identity"
+#: src/transport/gnunet-service-transport_validation.c:1628
+msgid "# HELLOs given to peerinfo"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:652
-#: src/transport/gnunet-transport.c:1482
-msgid "Direct access to transport service."
-msgstr "Direkter Zugriff auf den Transportdienst"
-
 #: src/transport/gnunet-transport.c:413
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7716,6 +7445,11 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr "Keine Rechnernamen auflösen"
 
+#: src/transport/gnunet-transport.c:1462
+#: src/transport/gnunet-transport-profiler.c:641
+msgid "peer identity"
+msgstr ""
+
 #: src/transport/gnunet-transport.c:1466
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7724,13 +7458,43 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
+#: src/transport/gnunet-transport.c:1482
+#: src/transport/gnunet-transport-profiler.c:652
+msgid "Direct access to transport service."
+msgstr "Direkter Zugriff auf den Transportdienst"
+
+#: src/transport/gnunet-transport-profiler.c:219
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:617
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:621
+#, fuzzy
+msgid "receive data from peer"
+msgstr "# Bytes des Typs %d empfangen"
+
+#: src/transport/gnunet-transport-profiler.c:626
+msgid "iterations"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:631
+#, fuzzy
+msgid "number of messages to send"
+msgstr "Anzahl an Durchläufen"
+
+#: src/transport/gnunet-transport-profiler.c:636
+msgid "message size to use"
+msgstr ""
+
 #: src/transport/plugin_transport_http_client.c:1474
 #: src/transport/plugin_transport_http_server.c:2312
 #: src/transport/plugin_transport_http_server.c:3530
-#: src/transport/plugin_transport_tcp.c:3895
-#: src/transport/plugin_transport_tcp.c:3902
-#: src/transport/plugin_transport_xt.c:3899
-#: src/transport/plugin_transport_xt.c:3906
+#: src/transport/plugin_transport_tcp.c:3901
+#: src/transport/plugin_transport_tcp.c:3908
 msgid "TCP_STEALTH not supported on this platform.\n"
 msgstr ""
 
@@ -7800,7 +7564,6 @@ msgstr ""
 
 #: src/transport/plugin_transport_http_server.c:2905
 #: src/transport/plugin_transport_udp.c:3627
-#: src/transport/plugin_transport_xu.c:2049
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
@@ -7903,128 +7666,117 @@ msgstr "# Bytes gesendet über SMTP"
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# Bytes verworfen von SMTP (ausgehend)"
 
-#: src/transport/plugin_transport_tcp.c:1551
-#: src/transport/plugin_transport_tcp.c:2877
-#: src/transport/plugin_transport_xt.c:1553
-#: src/transport/plugin_transport_xt.c:2879
+#: src/transport/plugin_transport_tcp.c:1557
+#: src/transport/plugin_transport_tcp.c:2883
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1734
-#: src/transport/plugin_transport_tcp.c:1958
-#: src/transport/plugin_transport_tcp.c:3141
-#: src/transport/plugin_transport_tcp.c:4018
-#: src/transport/plugin_transport_xt.c:1736
-#: src/transport/plugin_transport_xt.c:1960
-#: src/transport/plugin_transport_xt.c:3143
+#: src/transport/plugin_transport_tcp.c:1740
+#: src/transport/plugin_transport_tcp.c:1964
+#: src/transport/plugin_transport_tcp.c:3147
+#: src/transport/plugin_transport_tcp.c:4024
 msgid "# TCP sessions active"
 msgstr "# aktive TCP-Sitzungen"
 
-#: src/transport/plugin_transport_tcp.c:1776
-#: src/transport/plugin_transport_tcp.c:1940
-#: src/transport/plugin_transport_tcp.c:2064
-#: src/transport/plugin_transport_tcp.c:2137
-#: src/transport/plugin_transport_tcp.c:2237
-#: src/transport/plugin_transport_tcp.c:2262
-#: src/transport/plugin_transport_xt.c:1778
-#: src/transport/plugin_transport_xt.c:1942
-#: src/transport/plugin_transport_xt.c:2066
-#: src/transport/plugin_transport_xt.c:2139
-#: src/transport/plugin_transport_xt.c:2239
-#: src/transport/plugin_transport_xt.c:2264
+#: src/transport/plugin_transport_tcp.c:1782
+#: src/transport/plugin_transport_tcp.c:1946
+#: src/transport/plugin_transport_tcp.c:2070
+#: src/transport/plugin_transport_tcp.c:2143
+#: src/transport/plugin_transport_tcp.c:2243
+#: src/transport/plugin_transport_tcp.c:2268
 msgid "# bytes currently in TCP buffers"
 msgstr "# Bytes derzeit in TCP-Puffern"
 
-#: src/transport/plugin_transport_tcp.c:1779
-#: src/transport/plugin_transport_xt.c:1781
+#: src/transport/plugin_transport_tcp.c:1785
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# Bytes verworfen von TCP (unterbrochen)"
 
-#: src/transport/plugin_transport_tcp.c:2067
-#: src/transport/plugin_transport_xt.c:2069
+#: src/transport/plugin_transport_tcp.c:2073
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# Bytes verworfen von TCP (Zeitüberschreitung)"
 
-#: src/transport/plugin_transport_tcp.c:2141
-#: src/transport/plugin_transport_xt.c:2143
+#: src/transport/plugin_transport_tcp.c:2147
 msgid "# bytes transmitted via TCP"
 msgstr "# Bytes über TCP übertragen"
 
-#: src/transport/plugin_transport_tcp.c:2539
-#: src/transport/plugin_transport_xt.c:2541
+#: src/transport/plugin_transport_tcp.c:2545
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
-#: src/transport/plugin_transport_xt.c:2717
+#: src/transport/plugin_transport_tcp.c:2721
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3207
-#: src/transport/plugin_transport_xt.c:3209
+#: src/transport/plugin_transport_tcp.c:3213
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# verschlüsselter PONG Nachrichten empfangen"
 
-#: src/transport/plugin_transport_tcp.c:3413
-#: src/transport/plugin_transport_xt.c:3415
+#: src/transport/plugin_transport_tcp.c:3419
 msgid "# bytes received via TCP"
 msgstr "# Bytes empfangen über TCP"
 
-#: src/transport/plugin_transport_tcp.c:3464
-#: src/transport/plugin_transport_tcp.c:3522
-#: src/transport/plugin_transport_xt.c:3466
-#: src/transport/plugin_transport_xt.c:3524
+#: src/transport/plugin_transport_tcp.c:3470
+#: src/transport/plugin_transport_tcp.c:3528
 #, fuzzy
 msgid "# TCP server connections active"
 msgstr " Verbindung fehlgeschlagen\n"
 
-#: src/transport/plugin_transport_tcp.c:3468
-#: src/transport/plugin_transport_xt.c:3470
+#: src/transport/plugin_transport_tcp.c:3474
 #, fuzzy
 msgid "# TCP server connect events"
 msgstr "# verbundener Knoten"
 
-#: src/transport/plugin_transport_tcp.c:3474
-#: src/transport/plugin_transport_xt.c:3476
+#: src/transport/plugin_transport_tcp.c:3480
 msgid "TCP connection limit reached, suspending server\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3476
-#: src/transport/plugin_transport_xt.c:3478
+#: src/transport/plugin_transport_tcp.c:3482
 msgid "# TCP service suspended"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3516
-#: src/transport/plugin_transport_xt.c:3518
+#: src/transport/plugin_transport_tcp.c:3522
 msgid "# TCP service resumed"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3526
-#: src/transport/plugin_transport_xt.c:3528
+#: src/transport/plugin_transport_tcp.c:3532
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3845
-#: src/transport/plugin_transport_xt.c:3849
+#: src/transport/plugin_transport_tcp.c:3851
 msgid "Failed to start service.\n"
 msgstr "Fehler beim Starten des Dienstes.\n"
 
-#: src/transport/plugin_transport_tcp.c:4006
+#: src/transport/plugin_transport_tcp.c:4012
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr "TCP-Transportdienst wartet auf Port %llu\n"
 
-#: src/transport/plugin_transport_tcp.c:4010
+#: src/transport/plugin_transport_tcp.c:4016
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4014
+#: src/transport/plugin_transport_tcp.c:4020
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
+#: src/transport/plugin_transport_udp_broadcasting.c:168
+#, fuzzy
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr "# Bytes empfangen über TCP"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:548
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:565
+#, 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:3371
 #, c-format
 msgid ""
@@ -8045,7 +7797,6 @@ msgid "Failed to bind UDP socket to %s: %s\n"
 msgstr "UDP-Sockets können nicht geöffnet werden\n"
 
 #: src/transport/plugin_transport_udp.c:3721
-#: src/transport/plugin_transport_xu.c:2143
 msgid "Disabling IPv4 since it is not supported on this system!\n"
 msgstr ""
 
@@ -8055,19 +7806,15 @@ msgstr "UDP-Sockets können nicht geöffnet werden\n"
 
 #: src/transport/plugin_transport_udp.c:3883
 #: src/transport/plugin_transport_udp.c:3897
-#: src/transport/plugin_transport_xu.c:2301
-#: src/transport/plugin_transport_xu.c:2315
 msgid "must be in [0,65535]"
 msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3929
-#: src/transport/plugin_transport_xu.c:2347
 #, fuzzy
 msgid "must be valid IPv4 address"
 msgstr "»%s« ist keine gültige IP-Adresse.\n"
 
 #: src/transport/plugin_transport_udp.c:3956
-#: src/transport/plugin_transport_xu.c:2374
 #, fuzzy
 msgid "must be valid IPv6 address"
 msgstr "»%s« ist keine gültige IP-Adresse.\n"
@@ -8077,21 +7824,6 @@ 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:168
-#, fuzzy
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr "# Bytes empfangen über TCP"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:548
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:565
-#, 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:1416
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -8168,55 +7900,6 @@ msgstr ""
 msgid "# sessions allocated"
 msgstr "# Sitzungsschlüssel akzeptiert"
 
-#: src/transport/plugin_transport_xt.c:4010
-#, fuzzy, c-format
-msgid "XT transport listening on port %llu\n"
-msgstr "TCP-Transportdienst wartet auf Port %llu\n"
-
-#: src/transport/plugin_transport_xt.c:4014
-#, fuzzy
-msgid "XT transport not listening on any port (client only)\n"
-msgstr "TCP-Transportdienst wartet auf Port %llu\n"
-
-#: src/transport/plugin_transport_xt.c:4018
-#, fuzzy, c-format
-msgid "XT transport advertises itself as being on port %llu\n"
-msgstr "TCP-Transportdienst wartet auf Port %llu\n"
-
-#: src/transport/plugin_transport_xt.c:4022
-#, fuzzy
-msgid "# XT sessions active"
-msgstr "# aktive TCP-Sitzungen"
-
-#: src/transport/plugin_transport_xu.c:1237
-#, c-format
-msgid ""
-"XU could not transmit message to `%s': Network seems down, please check your "
-"network configuration\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xu.c:1251
-msgid ""
-"XU 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 ""
-
-#: src/transport/plugin_transport_xu.c:2125
-#: src/transport/plugin_transport_xu.c:2224
-#, fuzzy, c-format
-msgid "Failed to bind XU socket to %s: %s\n"
-msgstr "UDP-Sockets können nicht geöffnet werden\n"
-
-#: src/transport/plugin_transport_xu.c:2234
-#, fuzzy
-msgid "Failed to open XU sockets\n"
-msgstr "UDP-Sockets können nicht geöffnet werden\n"
-
-#: src/transport/plugin_transport_xu.c:2398
-#, fuzzy
-msgid "Failed to create XU network sockets\n"
-msgstr "UDP-Sockets können nicht geöffnet werden\n"
-
 #: src/transport/tcp_connection_legacy.c:452
 #, c-format
 msgid "Access denied to `%s'\n"
@@ -8227,17 +7910,17 @@ msgstr "Zugriff verweigert auf »%s«\n"
 msgid "Accepting connection from `%s': %p\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1111
+#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1624
 #, fuzzy, c-format
 msgid "`%s' failed for port %d (%s).\n"
 msgstr "`%s' fehlgeschlagen für Laufwerk %s: %u\n"
 
-#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1121
+#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1634
 #, fuzzy, c-format
 msgid "`%s' failed for port %d (%s): address already in use\n"
 msgstr "`%s' schlug fehl für Port %d: %s. Läuft gnunetd bereits?\n"
 
-#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1127
+#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1640
 #, fuzzy, c-format
 msgid "`%s' failed for `%s': address already in use\n"
 msgstr "%s schlug fehl, Nachrichten Typ %d ist bereits in Verwendung.\n"
@@ -8249,7 +7932,7 @@ msgid ""
 "`GNUNET_SERVER_receive_done' after %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:339 src/util/service.c:2396
+#: src/transport/tcp_service_legacy.c:339 src/util/service.c:864
 #, c-format
 msgid "Unknown address family %d\n"
 msgstr ""
@@ -8259,27 +7942,27 @@ msgstr ""
 msgid "Access from `%s' denied to service `%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:402 src/util/service.c:439
+#: src/transport/tcp_service_legacy.c:402 src/util/service.c:988
 #, c-format
 msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:440 src/util/service.c:482
+#: src/transport/tcp_service_legacy.c:440 src/util/service.c:1031
 #, c-format
 msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1042
+#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1555
 msgid "Could not access a pre-bound socket, will try to bind myself\n"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:953
-#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1195
+#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1708
 #, c-format
 msgid "Specified value for `%s' of service `%s' is invalid\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1228
+#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1741
 #, c-format
 msgid "Could not access pre-bound socket %u, will try to bind myself\n"
 msgstr ""
@@ -8294,44 +7977,44 @@ msgstr "Es konnte keine Verbindung mit gnunetd 
hergestellt werden.\n"
 msgid "Service `%s' runs at %s\n"
 msgstr "Dienst »%s« läuft auf %s\n"
 
-#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:1502
+#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:2015
 msgid "Service process failed to initialize\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1506
+#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:2019
 msgid "Service process could not initialize server function\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:1510
+#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:2023
 msgid "Service process failed to report status\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1525
-#: src/util/service.c:1380
+#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1535
+#: src/util/service.c:1893
 #, fuzzy, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "Fehler beim Speichern der Konfigurationsdatei: `%s': %s.\n"
 
-#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1382
+#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1895
 msgid "No such user"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1401
+#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1914
 #, c-format
 msgid "Cannot change user/group to `%s': %s\n"
 msgstr "Benutzer/Gruppe kann nicht zu »%s« geändert werden: %s\n"
 
-#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:1762
+#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:2276
 msgid "do daemonize (detach from terminal)"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:1826
-#: src/util/service.c:1841
+#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:2340
+#: src/util/service.c:2355
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
 msgstr "Konfigurationsdatei `%s' wurde erzeugt.\n"
 
-#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:1853
+#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:2367
 #, fuzzy
 msgid "Malformed configuration, exit ...\n"
 msgstr "GNUnet Konfiguration"
@@ -8374,11 +8057,11 @@ msgstr ""
 msgid "Metadata `%s' failed to deserialize"
 msgstr ""
 
-#: src/util/client.c:734
+#: src/util/client.c:749
 msgid "not a valid filename"
 msgstr ""
 
-#: src/util/client.c:925
+#: src/util/client.c:941
 #, c-format
 msgid "Need a non-empty hostname for service `%s'.\n"
 msgstr ""
@@ -8425,18 +8108,18 @@ msgstr ""
 msgid "unknown address"
 msgstr "Unbekannte Adresse"
 
-#: src/util/common_logging.c:1500
+#: src/util/common_logging.c:1513
 msgid "invalid address"
 msgstr "Ungültige Adresse"
 
-#: src/util/common_logging.c:1518
+#: src/util/common_logging.c:1531
 #, fuzzy, c-format
 msgid "Configuration fails to specify option `%s' in section `%s'!\n"
 msgstr ""
 "Die Konfigurationsdatei muss in der Sektion `%s' unter `%s' ein Verzeichnis "
 "angeben, in dem FS Daten gespeichert werden.\n"
 
-#: src/util/common_logging.c:1539
+#: src/util/common_logging.c:1552
 #, fuzzy, c-format
 msgid ""
 "Configuration specifies invalid value for option `%s' in section `%s': %s\n"
@@ -8485,26 +8168,26 @@ msgstr ""
 #: src/util/container_bloomfilter.c:532
 #, c-format
 msgid ""
-"Size of file on disk is incorrect for this Bloom filter (want %llu, have %"
-"llu)\n"
+"Size of file on disk is incorrect for this Bloom filter (want %llu, have "
+"%llu)\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:862
+#: src/util/crypto_ecc.c:887
 #, fuzzy, c-format
 msgid "ECC signing failed at %s:%d: %s\n"
 msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
 
-#: src/util/crypto_ecc.c:917
+#: src/util/crypto_ecc.c:946
 #, fuzzy, c-format
 msgid "EdDSA signing failed at %s:%d: %s\n"
 msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
 
-#: src/util/crypto_ecc.c:996
+#: src/util/crypto_ecc.c:1025
 #, fuzzy, c-format
 msgid "ECDSA signature verification failed at %s:%d: %s\n"
 msgstr "RSA Signaturüberprüfung fehlgeschlagen bei %s:%d: %s\n"
 
-#: src/util/crypto_ecc.c:1057
+#: src/util/crypto_ecc.c:1086
 #, fuzzy, c-format
 msgid "EdDSA signature verification failed at %s:%d: %s\n"
 msgstr "RSA Signaturüberprüfung fehlgeschlagen bei %s:%d: %s\n"
@@ -8555,17 +8238,17 @@ msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: 
`%s'.\n"
 msgid "RSA signature verification failed at %s:%d: %s\n"
 msgstr "RSA Signaturüberprüfung fehlgeschlagen bei %s:%d: %s\n"
 
-#: src/util/disk.c:1255
+#: src/util/disk.c:1265
 #, fuzzy, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "`%s' erwartet, dass `%s' ein Verzeichnis ist!\n"
 
-#: src/util/dnsparser.c:260
+#: src/util/dnsparser.c:264
 #, c-format
 msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
 msgstr ""
 
-#: src/util/dnsparser.c:950
+#: src/util/dnsparser.c:954
 #, c-format
 msgid "Failed to convert UTF-8 name `%s' to DNS IDNA format: %s\n"
 msgstr ""
@@ -8671,7 +8354,7 @@ msgstr ""
 msgid "print this help"
 msgstr ""
 
-#: src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:282 src/util/gnunet-qr.c:300
 msgid "be verbose"
 msgstr ""
 
@@ -8720,52 +8403,52 @@ msgstr "Sie müssen für die Option »%s« zusätzlich eine 
Zahl angeben.\n"
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:160
+#: src/util/gnunet-config.c:161
 #, fuzzy, c-format
 msgid "failed to load configuration defaults"
 msgstr "Konfiguration konnte nicht aus %s geladen werden\n"
 
-#: src/util/gnunet-config.c:173
+#: src/util/gnunet-config.c:174
 #, fuzzy, c-format
 msgid "%s or %s argument is required\n"
 msgstr "Option `%s' macht keinen Sinn ohne die Option `%s'.\n"
 
-#: src/util/gnunet-config.c:181
+#: src/util/gnunet-config.c:182
 #, c-format
 msgid "The following sections are available:\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:232
+#: src/util/gnunet-config.c:234
 #, c-format
 msgid "--option argument required to set value\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:286
-msgid "obtain option of value as a filename (with $-expansion)"
+#: src/util/gnunet-config.c:288
+msgid "interpret option value as a filename (with $-expansion)"
 msgstr ""
 
-#: src/util/gnunet-config.c:291
+#: src/util/gnunet-config.c:293
 msgid "name of the section to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:296
+#: src/util/gnunet-config.c:298
 msgid "name of the option to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:301
+#: src/util/gnunet-config.c:303
 msgid "value to set"
 msgstr ""
 
-#: src/util/gnunet-config.c:305
+#: src/util/gnunet-config.c:307
 #, fuzzy
 msgid "print available configuration sections"
 msgstr "GNUnet Konfiguration"
 
-#: src/util/gnunet-config.c:309
+#: src/util/gnunet-config.c:311
 msgid "write configuration file that only contains delta to defaults"
 msgstr ""
 
-#: src/util/gnunet-config.c:322
+#: src/util/gnunet-config.c:324
 msgid "Manipulate GNUnet configuration files"
 msgstr "GNUnet-Konfigurationsdateien bearbeiten"
 
@@ -8860,6 +8543,33 @@ msgstr ""
 msgid "Manipulate GNUnet private ECC key files"
 msgstr ""
 
+#: src/util/gnunet-qr.c:108 src/util/gnunet-uri.c:91
+#, c-format
+msgid "Invalid URI: does not start with `%s'\n"
+msgstr "URL beginnt nicht mit »%s«\n"
+
+#: src/util/gnunet-qr.c:116 src/util/gnunet-uri.c:98
+#, c-format
+msgid "Invalid URI: fails to specify subsystem\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:127 src/util/gnunet-uri.c:108
+#, c-format
+msgid "No handler known for subsystem `%s'\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:297
+msgid "use video-device DEVICE (default: /dev/video0"
+msgstr ""
+
+#: src/util/gnunet-qr.c:303
+msgid "do not show preview windows"
+msgstr ""
+
+#: src/util/gnunet-qr.c:311
+msgid "Scan a QR code using a video device and import the uri read"
+msgstr ""
+
 #: src/util/gnunet-resolver.c:168
 msgid "perform a reverse lookup"
 msgstr ""
@@ -8893,7 +8603,7 @@ msgstr ""
 msgid "Manipulate GNUnet proof of work files"
 msgstr ""
 
-#: src/util/gnunet-service-resolver.c:1443
+#: src/util/gnunet-service-resolver.c:1424
 msgid "No DNS server available. DNS resolution will not be possible.\n"
 msgstr ""
 
@@ -8902,21 +8612,6 @@ msgstr ""
 msgid "No URI specified on command line\n"
 msgstr ""
 
-#: src/util/gnunet-uri.c:91
-#, c-format
-msgid "Invalid URI: does not start with `%s'\n"
-msgstr "URL beginnt nicht mit »%s«\n"
-
-#: src/util/gnunet-uri.c:98
-#, c-format
-msgid "Invalid URI: fails to specify subsystem\n"
-msgstr ""
-
-#: src/util/gnunet-uri.c:108
-#, c-format
-msgid "No handler known for subsystem `%s'\n"
-msgstr ""
-
 #: src/util/gnunet-uri.c:170
 msgid "Perform default-actions for GNUnet URIs"
 msgstr ""
@@ -8936,12 +8631,12 @@ msgstr "Fehler beim Parsen der Gerätedaten von `%s' bei 
%s:%d.\n"
 msgid "Error writing to `%s': %s\n"
 msgstr "Verbindung zu %u.%u.%u.%u:%u fehlgeschlagen: %s\n"
 
-#: src/util/network.c:136
+#: src/util/network.c:176
 #, c-format
 msgid "Unable to shorten unix path `%s' while keeping name unique\n"
 msgstr ""
 
-#: src/util/network.c:1795 src/util/network.c:1979
+#: src/util/network.c:1835 src/util/network.c:2019
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -9051,18 +8746,18 @@ msgstr "Standarddienst »%s« ist nicht korrekt 
eingerichtet!\n"
 msgid "Could not resolve our FQDN: %s\n"
 msgstr "`%s' konnte nicht aufgelöst werden: %s\n"
 
-#: src/util/service.c:1307
-msgid ""
-"Could not bind to any of the ports I was supposed to, refusing to run!\n"
-msgstr ""
-
-#: src/util/service.c:2141
+#: src/util/service.c:668
 #, c-format
 msgid ""
 "Processing code for message of type %u did not call "
 "`GNUNET_SERVICE_client_continue' after %s\n"
 msgstr ""
 
+#: src/util/service.c:1820
+msgid ""
+"Could not bind to any of the ports I was supposed to, refusing to run!\n"
+msgstr ""
+
 #: src/util/signal.c:89
 #, fuzzy, c-format
 msgid "signal (%d, %p) returned %d.\n"
@@ -9192,12 +8887,12 @@ msgstr "Falsches Format `%s' für Netzmaske: %s\n"
 msgid "Wrong format `%s' for network\n"
 msgstr "Falsches Format `%s' für Netzwerk: %s\n"
 
-#: src/util/time.c:828 src/util/time.c:860
+#: src/util/time.c:844 src/util/time.c:876
 #, c-format
 msgid "Failed to map `%s', cannot assure monotonic time!\n"
 msgstr ""
 
-#: src/util/time.c:866
+#: src/util/time.c:882
 #, c-format
 msgid ""
 "Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
@@ -9377,64 +9072,80 @@ msgstr "Dienst wird über UDP angeboten"
 msgid "Setup tunnels via VPN."
 msgstr "Tunnel über VPN einrichten."
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #: src/zonemaster/gnunet-service-zonemaster.c:838
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
-#: src/include/gnunet_common.h:772 src/include/gnunet_common.h:779
-#: src/include/gnunet_common.h:789
+#: src/include/gnunet_common.h:794 src/include/gnunet_common.h:801
+#: src/include/gnunet_common.h:811
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d. Aborting.\n"
 msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
 
-#: src/include/gnunet_common.h:797
+#: src/include/gnunet_common.h:819
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr "`%s' schlug fehl bei %s:%d mit dem Fehler: `%s'.\n"
 
-#: src/include/gnunet_common.h:809
+#: src/include/gnunet_common.h:831
 #, fuzzy, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr "Protokollverletzung auf Socket. Kommando erwartet.\n"
 
-#: src/include/gnunet_common.h:836 src/include/gnunet_common.h:845
+#: src/include/gnunet_common.h:858 src/include/gnunet_common.h:867
 #, fuzzy, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr "`%s' schlug bei Datei `%s' fehl. Ort: %s:%d. Fehler: %s\n"
 
 #, fuzzy
-#~ msgid "Can not index file `%s': %s.\n"
-#~ msgstr "Konfigurationsdatei `%s' konnte nicht geöffnet werden.\n"
+#~ msgid "Failed to connect to CREDENTIAL\n"
+#~ msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
 
 #, fuzzy
-#~ msgid "`%s' is not a valid domain name\n"
-#~ msgstr "»%s« ist keine gültige IP-Adresse.\n"
+#~ msgid "GNUnet credential resolver tool"
+#~ msgstr "GNUnet Netzwerk Topologie tracen."
 
 #, fuzzy
-#~ msgid "Specify a timeout for the lookup"
-#~ msgstr "Die Priorität des Inhalts angeben"
+#~ msgid "Unable to parse CRED record string `%s'\n"
+#~ msgstr "Fehler beim Speichern der Konfigurationsdatei `%s':"
 
 #, fuzzy
-#~ msgid "Unable to parse CAA record string `%s'\n"
-#~ msgstr "Fehler beim Speichern der Konfigurationsdatei `%s':"
+#~ msgid "Issuer ego required\n"
+#~ msgstr "Gültiger Typ ist erforderlich\n"
 
 #, fuzzy
-#~ msgid "reduce output"
-#~ msgstr "Ausführliche Ausgabe"
+#~ msgid "XT transport listening on port %llu\n"
+#~ msgstr "TCP-Transportdienst wartet auf Port %llu\n"
 
 #, fuzzy
-#~ msgid "OpenID Connect REST API initialized\n"
-#~ msgstr " Verbindung fehlgeschlagen\n"
+#~ msgid "XT transport not listening on any port (client only)\n"
+#~ msgstr "TCP-Transportdienst wartet auf Port %llu\n"
 
 #, fuzzy
-#~ msgid "CONFIG REST API initialized\n"
-#~ msgstr " Verbindung fehlgeschlagen\n"
+#~ msgid "XT transport advertises itself as being on port %llu\n"
+#~ msgstr "TCP-Transportdienst wartet auf Port %llu\n"
+
+#, fuzzy
+#~ msgid "# XT sessions active"
+#~ msgstr "# aktive TCP-Sitzungen"
+
+#, fuzzy
+#~ msgid "Failed to bind XU socket to %s: %s\n"
+#~ msgstr "UDP-Sockets können nicht geöffnet werden\n"
+
+#, fuzzy
+#~ msgid "Failed to open XU sockets\n"
+#~ msgstr "UDP-Sockets können nicht geöffnet werden\n"
 
 #, fuzzy
-#~ msgid "Option `%s' can't be used with other options.\n"
-#~ msgstr "Die Option »%s« ergibt keinen Sinn ohne die Option »%s«.\n"
+#~ msgid "Failed to create XU network sockets\n"
+#~ msgstr "UDP-Sockets können nicht geöffnet werden\n"
+
+#, fuzzy
+#~ msgid "Print information about DV state"
+#~ msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
 #, fuzzy
 #~ msgid "Invalid tunnel owner `%s'\n"
@@ -9444,6 +9155,99 @@ msgstr "`%s' schlug bei Datei `%s' fehl. Ort: %s:%d. 
Fehler: %s\n"
 #~ msgid "Provide information about a particular tunnel"
 #~ msgstr "Informationen über andere GNUnet Knoten ausgeben."
 
+#, fuzzy
+#~ msgid "Failed to store membership information!\n"
+#~ msgstr "Fehler beim Speichern der Konfiguration!"
+
+#, fuzzy
+#~ msgid "Failed to test membership!\n"
+#~ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
+
+#, fuzzy
+#~ msgid "Dropping invalid fragment\n"
+#~ msgstr "Ungültiges Argument »%s«\n"
+
+#, fuzzy
+#~ msgid "Failed to store fragment\n"
+#~ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
+
+#, fuzzy
+#~ msgid "Failed to get fragment!\n"
+#~ msgstr ""
+#~ "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
+
+#, fuzzy
+#~ msgid "Failed to get message!\n"
+#~ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
+
+#, fuzzy
+#~ msgid "Failed to get message fragment!\n"
+#~ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
+
+#, fuzzy
+#~ msgid "Failed to get master counters!\n"
+#~ msgstr ""
+#~ "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
+
+#, fuzzy
+#~ msgid "Failed to begin modifying state: %d\n"
+#~ msgstr ""
+#~ "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
+
+#, fuzzy
+#~ msgid "Failed to modify state: %d\n"
+#~ msgstr "Es konnte keine Verbindung mit gnunetd hergestellt werden.\n"
+
+#, fuzzy
+#~ msgid "Failed to end modifying state!\n"
+#~ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
+
+#, fuzzy
+#~ msgid "Failed to begin synchronizing state!\n"
+#~ msgstr ""
+#~ "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
+
+#, fuzzy
+#~ msgid "Failed to end synchronizing state!\n"
+#~ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
+
+#, fuzzy
+#~ msgid "Failed to reset state!\n"
+#~ msgstr "Zustellung der Nachricht `%s' fehlgeschlagen.\n"
+
+#, fuzzy
+#~ msgid "Failed to get state variable!\n"
+#~ msgstr ""
+#~ "Statistiken über den Netzwerkverkehr konnten nicht ermittelt werden.\n"
+
+#, fuzzy
+#~ msgid "Unable to initialize Mysql.\n"
+#~ msgstr "SQLite-Datenbank konnte nicht initialisiert werden: %s.\n"
+
+#, fuzzy
+#~ msgid "Failed to run SQL statement `%s'\n"
+#~ msgstr "Fehler beim Lesen der Freunde-Liste von `%s'\n"
+
+#, fuzzy
+#~ msgid "`%s' failed at %s:%d with error: %s (%d)\n"
+#~ msgstr "`%s' schlug bei %s:%d mit dem Fehler %s fehl\n"
+
+#, fuzzy
+#~ msgid "SQLite database running\n"
+#~ msgstr "SQL Datenbank beschädigt, Ergebnis wird ignoriert.\n"
+
+#, fuzzy
+#~ msgid "--place missing or invalid.\n"
+#~ msgstr "Ungültige Antwort auf `%s'.\n"
+
+#, fuzzy
+#~ msgid "name or public key of ego"
+#~ msgstr "Ungültiger Parameter: `%s'\n"
+
+#, fuzzy
+#~ msgid "number of messages to replay from history"
+#~ msgstr "Anzahl an Durchläufen"
+
 #, fuzzy
 #~ msgid "Could not resolve `%s' (%s): %s\n"
 #~ msgstr "`%s' konnte nicht aufgelöst werden: %s\n"
@@ -9498,6 +9302,9 @@ msgstr "`%s' schlug bei Datei `%s' fehl. Ort: %s:%d. 
Fehler: %s\n"
 #~ msgid "# Bytes received from other peers"
 #~ msgstr "# Bytes des Typs %d empfangen"
 
+#~ msgid "verbose output"
+#~ msgstr "Ausführliche Ausgabe"
+
 #, fuzzy
 #~ msgid "# UPDATE requests executed"
 #~ msgstr "# dht Anfragen weitergeleitet"
diff --git a/po/es.po b/po/es.po
index e1dd584c8..ac7e3e28c 100644
--- a/po/es.po
+++ b/po/es.po
@@ -8,16 +8,156 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.9.5a\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-02-09 22:07+0000\n"
+"POT-Creation-Date: 2019-10-07 11:45+0200\n"
 "PO-Revision-Date: 2013-02-23 17:50+0100\n"
 "Last-Translator: Miguel Ángel Arruga Vivas <address@hidden>\n"
 "Language-Team: Spanish <address@hidden>\n"
+"Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+#: src/abd/gnunet-abd.c:394 src/namestore/gnunet-namestore.c:994
+#, fuzzy, c-format
+msgid "Ego `%s' not known to identity service\n"
+msgstr "'%s': servicio desconocido: %s\n"
+
+#: src/abd/gnunet-abd.c:410 src/abd/gnunet-abd.c:875
+#, fuzzy, c-format
+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:549 src/abd/gnunet-service-abd.c:1723
+#: src/namestore/gnunet-namestore.c:1019
+#: src/namestore/gnunet-namestore-fcfsd.c:1138
+#, c-format
+msgid "Failed to connect to namestore\n"
+msgstr "Se produjo un fallo al conectar con el almacén de nombres\n"
+
+#: src/abd/gnunet-abd.c:814 src/abd/gnunet-abd.c:865
+#, fuzzy, c-format
+msgid "Issuer public key not well-formed\n"
+msgstr "El bloque del tipo %u está mal formado\n"
+
+#: src/abd/gnunet-abd.c:823 src/abd/gnunet-abd.c:884
+#, fuzzy, c-format
+msgid "Failed to connect to ABD\n"
+msgstr "Se produjo un fallo al conectar con GNS\n"
+
+#: src/abd/gnunet-abd.c:829
+#, c-format
+msgid "You must provide issuer the attribute\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:836
+#, fuzzy, c-format
+msgid "ego required\n"
+msgstr "Tipo requerido\n"
+
+#: src/abd/gnunet-abd.c:846
+#, c-format
+msgid "Subject public key needed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:855
+#, fuzzy, c-format
+msgid "Subject public key `%s' is not well-formed\n"
+msgstr "El bloque del tipo %u está mal formado\n"
+
+#: src/abd/gnunet-abd.c:890
+#, c-format
+msgid "You must provide issuer and subject attributes\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:946
+#, c-format
+msgid "Please specify name to lookup, subject key and issuer key!\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:967
+msgid "verify credential against attribute"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:974
+#, fuzzy
+msgid ""
+"The public key of the subject to lookup thecredential for, or for issuer "
+"side storage: subject and its attributes"
+msgstr "Especificar el tipo del registro a buscar"
+
+#: src/abd/gnunet-abd.c:981
+msgid "The private, signed delegate presented by the subject"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:988
+#, fuzzy
+msgid "The public key of the authority to verify the credential against"
+msgstr "Especificar el tipo del registro a buscar"
+
+#: src/abd/gnunet-abd.c:993
+#, fuzzy
+msgid "The ego/zone name to use"
+msgstr "tamaño del mensaje"
+
+#: src/abd/gnunet-abd.c:999
+msgid "The issuer attribute to verify against or to issue"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1005
+msgid ""
+"The time to live for the credential.e.g. 5m, 6h, \"1990-12-30 12:00:00\""
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1010
+msgid "collect credentials"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1015
+msgid "Create and issue a credential issuer side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1020
+msgid "Issue a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1025
+msgid "Create, sign and return a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1032
+msgid "Import signed credentials that should be issued to a zone/ego"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1036
+msgid "Create private record entry."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1042 src/abd/gnunet-abd.c:1048
+msgid "Indicates that the collect/verify process is done via forward search."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1061
+#, fuzzy
+msgid "GNUnet abd resolver tool"
+msgstr "Herramienta de acceso GNUnet GNS"
+
+#: src/abd/gnunet-service-abd.c:1718 src/gns/gnunet-gns.c:185
+#: src/gns/gnunet-gns-helper-service-w32.c:727
+#, c-format
+msgid "Failed to connect to GNS\n"
+msgstr "Se produjo un fallo al conectar con GNS\n"
+
+#: src/abd/plugin_gnsrecord_abd.c:182
+#, fuzzy, c-format
+msgid "Unable to parse ATTR record string `%s'\n"
+msgstr "No se pudo procesar la cadena de registro TLSA «%s»\n"
+
+#: src/abd/plugin_rest_abd.c:1128 src/abd/plugin_rest_credential.c:1128
+#, fuzzy
+msgid "GNS REST API initialized\n"
+msgstr "Conexión fallida\n"
+
 #: src/arm/gnunet-arm.c:156
 #, c-format
 msgid "Failed to remove configuration file %s\n"
@@ -234,8 +374,7 @@ msgstr ""
 "Servicios de control y el Gestor de Reinicio Automático (ARM en inglés)"
 
 #: src/arm/gnunet-service-arm.c:388 src/transport/plugin_transport_tcp.c:1120
-#: src/transport/plugin_transport_xt.c:1120
-#: src/transport/tcp_service_legacy.c:557 src/util/service.c:612
+#: src/transport/tcp_service_legacy.c:557
 #, c-format
 msgid ""
 "Disabling IPv6 support for service `%s', failed to create IPv6 socket: %s\n"
@@ -246,13 +385,10 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:412 src/arm/gnunet-service-arm.c:418
 #: src/transport/plugin_transport_tcp.c:1139
 #: src/transport/plugin_transport_tcp.c:1145
-#: src/transport/plugin_transport_tcp.c:3829
-#: src/transport/plugin_transport_xt.c:1139
-#: src/transport/plugin_transport_xt.c:1145
-#: src/transport/plugin_transport_xt.c:3833
+#: src/transport/plugin_transport_tcp.c:3835
 #: src/transport/tcp_service_legacy.c:576
-#: src/transport/tcp_service_legacy.c:582 src/util/service.c:637
-#: src/util/service.c:643
+#: src/transport/tcp_service_legacy.c:582 src/util/service.c:1150
+#: src/util/service.c:1156
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
@@ -260,36 +396,32 @@ msgstr ""
 "configuración!\n"
 
 #: src/arm/gnunet-service-arm.c:457 src/transport/plugin_transport_tcp.c:1176
-#: src/transport/plugin_transport_xt.c:1176
-#: src/transport/tcp_service_legacy.c:613 src/util/client.c:506
-#: src/util/service.c:682
+#: src/transport/tcp_service_legacy.c:613 src/util/client.c:521
+#: src/util/service.c:1195
 #, c-format
 msgid "UNIXPATH `%s' too long, maximum length is %llu\n"
 msgstr ""
 "La ruta tipo UNIX «%s» es demasiado larga, la longitud máxima es %llu\n"
 
 #: src/arm/gnunet-service-arm.c:462 src/transport/plugin_transport_tcp.c:1180
-#: src/transport/plugin_transport_xt.c:1180
-#: src/transport/tcp_service_legacy.c:617 src/util/client.c:511
-#: src/util/service.c:687
+#: src/transport/tcp_service_legacy.c:617 src/util/client.c:526
+#: src/util/service.c:1200
 #, c-format
 msgid "Using `%s' instead\n"
 msgstr "Usando «%s» en su defecto\n"
 
 #: src/arm/gnunet-service-arm.c:495 src/transport/plugin_transport_tcp.c:1211
-#: src/transport/plugin_transport_xt.c:1211
-#: src/transport/tcp_service_legacy.c:648 src/util/service.c:723
+#: src/transport/tcp_service_legacy.c:648 src/util/service.c:1236
 #, c-format
 msgid ""
 "Disabling UNIX domain socket support for service `%s', failed to create UNIX "
 "domain socket: %s\n"
 msgstr ""
-"Deshabilitando el soporte de dominio de «sockets» UNIX para el servicio «%"
-"s», no se pudo crear un «socket» UNIX: %s\n"
+"Deshabilitando el soporte de dominio de «sockets» UNIX para el servicio "
+"«%s», no se pudo crear un «socket» UNIX: %s\n"
 
 #: src/arm/gnunet-service-arm.c:517 src/transport/plugin_transport_tcp.c:1228
-#: src/transport/plugin_transport_xt.c:1228
-#: src/transport/tcp_service_legacy.c:665 src/util/service.c:741
+#: src/transport/tcp_service_legacy.c:665 src/util/service.c:1254
 #, c-format
 msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"
 msgstr ""
@@ -299,8 +431,7 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:556
 #: src/transport/plugin_transport_http_server.c:2688
 #: src/transport/plugin_transport_tcp.c:1259
-#: src/transport/plugin_transport_xt.c:1259
-#: src/transport/tcp_service_legacy.c:696 src/util/service.c:782
+#: src/transport/tcp_service_legacy.c:696 src/util/service.c:1295
 #, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "Se produjo un fallo al resolver «%s»: %s\n"
@@ -308,8 +439,7 @@ msgstr "Se produjo un fallo al resolver «%s»: %s\n"
 #: src/arm/gnunet-service-arm.c:575
 #: src/transport/plugin_transport_http_server.c:2706
 #: src/transport/plugin_transport_tcp.c:1278
-#: src/transport/plugin_transport_xt.c:1278
-#: src/transport/tcp_service_legacy.c:715 src/util/service.c:802
+#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1315
 #, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "No se encontró la dirección %s para «%s».\n"
@@ -387,15 +517,161 @@ 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-tests/ats-testing-log.c:837
-msgid "Stop logging\n"
+#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
+#, 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-tests/ats-testing-log.c:892
-#, fuzzy, c-format
-msgid "Start logging `%s'\n"
+#: src/ats/gnunet-ats-solver-eval.c:2799
+#, 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:2840
+#, 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:3294 src/ats-tests/gnunet-solver-eval.c:939
+#, fuzzy
+msgid "solver to use"
+msgstr "valor a establecer"
+
+#: src/ats/gnunet-ats-solver-eval.c:3299 src/ats-tests/gnunet-solver-eval.c:945
+#: src/ats-tests/gnunet-solver-eval.c:950
+msgid "experiment to use"
+msgstr "experimento para usar"
+
+#: src/ats/gnunet-ats-solver-eval.c:3306
+#, fuzzy
+msgid "print logging"
 msgstr "Iniciando descarga «%s».\n"
 
+#: src/ats/gnunet-ats-solver-eval.c:3311
+msgid "save logging to disk"
+msgstr "guarda protocolo al fichero en disco"
+
+#: src/ats/gnunet-ats-solver-eval.c:3316
+msgid "disable normalization"
+msgstr "deshabilita normalización"
+
+#: src/ats/gnunet-service-ats-new.c:756
+#: src/ats/gnunet-service-ats_plugins.c:451
+#, fuzzy, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "¡No se puede inicializar el resolvedor!\n"
+
+#: src/ats/gnunet-service-ats_plugins.c:304
+#, 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:314
+#, 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:359
+#, 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/plugin_ats2_common.c:90
+#, 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"
+
+#: src/ats/plugin_ats_mlp.c:1274
+msgid "Problem size too large, cannot allocate memory!\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1870
+#, fuzzy, c-format
+msgid "Adding address for peer `%s' multiple times\n"
+msgstr "Añadiendo «%s» sin direcciones para el par «%s»\n"
+
+#: src/ats/plugin_ats_mlp.c:1914
+#, fuzzy, c-format
+msgid "Updating address property for peer `%s' %p not added before\n"
+msgstr "Añadiendo «%s» sin direcciones para el par «%s»\n"
+
+#: src/ats/plugin_ats_mlp.c:2476
+msgid ""
+"MLP solver is not optimizing for anything, changing to feasibility check\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
+#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
+#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
+#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
+#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
+#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
+#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
+#, 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_mlp.c:2671
+#, fuzzy, c-format
+msgid ""
+"Adjusting inconsistent outbound quota configuration for network `%s', is "
+"%llu must be at least %llu\n"
+msgstr ""
+"No hay configurada una cuota de salida para la red «%s», asignando el ancho "
+"de banda predeterminado %llu\n"
+
+#: src/ats/plugin_ats_mlp.c:2680
+#, fuzzy, c-format
+msgid ""
+"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
+"must be at least %llu\n"
+msgstr ""
+"No hay configuración de cuota de entrada para la red '%s', asignando el "
+"ancho de banda predeterminado (%llu)\n"
+
+# Miguel: "Outbound" lo he traducido como salida en todo el texto.
+#: src/ats/plugin_ats_mlp.c:2690
+#, fuzzy, c-format
+msgid ""
+"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
+msgstr "La cuota de salida configurada para la red «%s» es %llu\n"
+
+# Miguel: "Outbound" lo he traducido como salida en todo el texto.
+#: src/ats/plugin_ats_mlp.c:2699
+#, fuzzy, c-format
+msgid ""
+"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
+msgstr "La cuota de salida configurada para la red «%s» es %llu\n"
+
+#: src/ats/plugin_ats_proportional.c:1164
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr "Se produjo un fallo al cargar la configuración de %s\n"
+
 #: src/ats-tests/ats-testing.c:422
 #, c-format
 msgid "Connected master [%u] with slave [%u]\n"
@@ -406,6 +682,15 @@ 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:837
+msgid "Stop logging\n"
+msgstr ""
+
+#: src/ats-tests/ats-testing-log.c:892
+#, fuzzy, c-format
+msgid "Start logging `%s'\n"
+msgstr "Iniciando descarga «%s».\n"
+
 #: src/ats-tests/gnunet-ats-sim.c:90
 #, c-format
 msgid ""
@@ -413,18 +698,6 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
-#: src/ats-tests/gnunet-solver-eval.c:939
-#: src/ats/gnunet-ats-solver-eval.c:3294
-#, fuzzy
-msgid "solver to use"
-msgstr "valor a establecer"
-
-#: src/ats-tests/gnunet-solver-eval.c:945
-#: src/ats-tests/gnunet-solver-eval.c:950
-#: src/ats/gnunet-ats-solver-eval.c:3299
-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
@@ -519,190 +792,45 @@ msgstr "conectar a un par"
 msgid "do not resolve IP addresses to hostnames"
 msgstr "no resuelve direcciones IP a nombres de máquina"
 
-# Miguel: Aquí he dejado monitorización porque esto es
-# del servicio de traducción de direcciones.
-#: src/ats-tool/gnunet-ats.c:969
-msgid "monitor mode"
-msgstr "modo de monitorización"
-
-#: src/ats-tool/gnunet-ats.c:974
-msgid "set preference for the given peer"
-msgstr "establece las preferencias para el par dado"
-
-#: src/ats-tool/gnunet-ats.c:979
-msgid "print all configured quotas"
-msgstr "imprime todas las cuotas configuradas"
-
-# Miguel: He preferido extender id a identificación por claridad.
-#: src/ats-tool/gnunet-ats.c:984
-msgid "peer id"
-msgstr "identificación del par"
-
-# Miguel: No me he encontrado esta opción todavía,
-# pero creo que son palabras clave.
-#: src/ats-tool/gnunet-ats.c:990
-msgid "preference type to set: latency | bandwidth"
-msgstr ""
-"tipo de preferencia a modificar: latency (latencia) | bandwidth (ancho de "
-"banda)"
-
-#: src/ats-tool/gnunet-ats.c:996
-msgid "preference value"
-msgstr "valor de preferencia"
-
-# Miguel: ¿Algo menos forzado que "salida prolija"?
-#: src/ats-tool/gnunet-ats.c:1001
-msgid "verbose output (include ATS address properties)"
-msgstr "salida prolija (incluye las propiedades de direcciones del ATS)"
-
-#: src/ats-tool/gnunet-ats.c:1011
-msgid "Print information about ATS state"
-msgstr "Imprime información acerca del estado del ATS"
-
-#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
-#, 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:2799
-#, 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:2840
-#, 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:3306
-#, fuzzy
-msgid "print logging"
-msgstr "Iniciando descarga «%s».\n"
-
-#: src/ats/gnunet-ats-solver-eval.c:3311
-msgid "save logging to disk"
-msgstr "guarda protocolo al fichero en disco"
-
-#: src/ats/gnunet-ats-solver-eval.c:3316
-msgid "disable normalization"
-msgstr "deshabilita normalización"
-
-#: src/ats/gnunet-service-ats-new.c:733
-#: src/ats/gnunet-service-ats_plugins.c:451
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "¡No se puede inicializar el resolvedor!\n"
-
-#: src/ats/gnunet-service-ats_plugins.c:304
-#, 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:314
-#, 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:359
-#, 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/plugin_ats2_common.c:90
-#, 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"
-
-#: src/ats/plugin_ats_mlp.c:1274
-msgid "Problem size too large, cannot allocate memory!\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1870
-#, fuzzy, c-format
-msgid "Adding address for peer `%s' multiple times\n"
-msgstr "Añadiendo «%s» sin direcciones para el par «%s»\n"
-
-#: src/ats/plugin_ats_mlp.c:1914
-#, fuzzy, c-format
-msgid "Updating address property for peer `%s' %p not added before\n"
-msgstr "Añadiendo «%s» sin direcciones para el par «%s»\n"
-
-#: src/ats/plugin_ats_mlp.c:2476
-msgid ""
-"MLP solver is not optimizing for anything, changing to feasibility check\n"
-msgstr ""
+# Miguel: Aquí he dejado monitorización porque esto es
+# del servicio de traducción de direcciones.
+#: src/ats-tool/gnunet-ats.c:969
+msgid "monitor mode"
+msgstr "modo de monitorización"
 
-#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
-#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
-#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
-#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
-#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
-#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
-#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "Se produjo un fallo al cargar la configuración de %s\n"
+#: src/ats-tool/gnunet-ats.c:974
+msgid "set preference for the given peer"
+msgstr "establece las preferencias para el par dado"
 
-#: src/ats/plugin_ats_mlp.c:2671
-#, fuzzy, c-format
-msgid ""
-"Adjusting inconsistent outbound quota configuration for network `%s', is %"
-"llu must be at least %llu\n"
-msgstr ""
-"No hay configurada una cuota de salida para la red «%s», asignando el ancho "
-"de banda predeterminado %llu\n"
+#: src/ats-tool/gnunet-ats.c:979
+msgid "print all configured quotas"
+msgstr "imprime todas las cuotas configuradas"
 
-#: src/ats/plugin_ats_mlp.c:2680
-#, fuzzy, c-format
-msgid ""
-"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
-"must be at least %llu\n"
+# Miguel: He preferido extender id a identificación por claridad.
+#: src/ats-tool/gnunet-ats.c:984
+msgid "peer id"
+msgstr "identificación del par"
+
+# Miguel: No me he encontrado esta opción todavía,
+# pero creo que son palabras clave.
+#: src/ats-tool/gnunet-ats.c:990
+msgid "preference type to set: latency | bandwidth"
 msgstr ""
-"No hay configuración de cuota de entrada para la red '%s', asignando el "
-"ancho de banda predeterminado (%llu)\n"
+"tipo de preferencia a modificar: latency (latencia) | bandwidth (ancho de "
+"banda)"
 
-# Miguel: "Outbound" lo he traducido como salida en todo el texto.
-#: src/ats/plugin_ats_mlp.c:2690
-#, fuzzy, c-format
-msgid ""
-"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
-msgstr "La cuota de salida configurada para la red «%s» es %llu\n"
+#: src/ats-tool/gnunet-ats.c:996
+msgid "preference value"
+msgstr "valor de preferencia"
 
-# Miguel: "Outbound" lo he traducido como salida en todo el texto.
-#: src/ats/plugin_ats_mlp.c:2699
-#, fuzzy, c-format
-msgid ""
-"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
-msgstr "La cuota de salida configurada para la red «%s» es %llu\n"
+# Miguel: ¿Algo menos forzado que "salida prolija"?
+#: src/ats-tool/gnunet-ats.c:1001
+msgid "verbose output (include ATS address properties)"
+msgstr "salida prolija (incluye las propiedades de direcciones del ATS)"
 
-#: src/ats/plugin_ats_proportional.c:1164
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f\n"
-msgstr "Se produjo un fallo al cargar la configuración de %s\n"
+#: src/ats-tool/gnunet-ats.c:1011
+msgid "Print information about ATS state"
+msgstr "Imprime información acerca del estado del ATS"
 
 #: src/auction/gnunet-auction-create.c:163
 msgid "description of the item to be sold"
@@ -841,28 +969,6 @@ 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:145
-#, 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:216
-#, 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:277
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1121,8 +1227,30 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-playback-gst.c:361
+#: 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:145
+#, 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:216
+#, 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:622
+#: src/conversation/gnunet-helper-audio-playback-gst.c:361
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1435,7 +1563,7 @@ msgid "# valid ephemeral keys received"
 msgstr "# mapas de tipos recibidos"
 
 #: src/core/gnunet-service-core_kx.c:1180
-#: src/transport/gnunet-service-transport_validation.c:1128
+#: src/transport/gnunet-service-transport_validation.c:1129
 msgid "# PING messages received"
 msgstr "# mensajes PING recibidos"
 
@@ -1457,7 +1585,7 @@ msgid "# keepalive messages sent"
 msgstr "# mensajes «keepalive» enviados"
 
 #: src/core/gnunet-service-core_kx.c:1351
-#: src/transport/gnunet-service-transport_validation.c:1461
+#: src/transport/gnunet-service-transport_validation.c:1462
 msgid "# PONG messages received"
 msgstr "# mensajes PONG recibidos"
 
@@ -1556,131 +1684,6 @@ msgstr "# mapas de tipos recibidos"
 msgid "# updates to my type map"
 msgstr "# actualizaciones de mi mapa de tipos"
 
-#: src/credential/credential_misc.c:88
-#, fuzzy, c-format
-msgid "Unable to parse CRED record string `%s'\n"
-msgstr "No se pudo procesar la cadena de registro VPN «%s»\n"
-
-#: src/credential/gnunet-credential.c:264 src/namestore/gnunet-namestore.c:994
-#, fuzzy, c-format
-msgid "Ego `%s' not known to identity service\n"
-msgstr "'%s': servicio desconocido: %s\n"
-
-#: src/credential/gnunet-credential.c:280
-#: src/credential/gnunet-credential.c:434
-#, fuzzy, c-format
-msgid "Issuer public key `%s' is not well-formed\n"
-msgstr "El bloque del tipo %u está mal formado\n"
-
-#: src/credential/gnunet-credential.c:361
-#: src/credential/gnunet-credential.c:423
-#, fuzzy, c-format
-msgid "Issuer public key not well-formed\n"
-msgstr "El bloque del tipo %u está mal formado\n"
-
-#: src/credential/gnunet-credential.c:372
-#: src/credential/gnunet-credential.c:444
-#, fuzzy, c-format
-msgid "Failed to connect to CREDENTIAL\n"
-msgstr "Se produjo un fallo al conectar con GNS\n"
-
-#: src/credential/gnunet-credential.c:379
-#, c-format
-msgid "You must provide issuer the attribute\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:387
-#, fuzzy, c-format
-msgid "ego required\n"
-msgstr "Tipo requerido\n"
-
-#: src/credential/gnunet-credential.c:403
-#, c-format
-msgid "Subject public key needed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:414
-#, fuzzy, c-format
-msgid "Subject public key `%s' is not well-formed\n"
-msgstr "El bloque del tipo %u está mal formado\n"
-
-#: src/credential/gnunet-credential.c:451
-#, c-format
-msgid "You must provide issuer and subject attributes\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:504
-#, fuzzy, c-format
-msgid "Issuer ego required\n"
-msgstr "Tipo requerido\n"
-
-#: src/credential/gnunet-credential.c:516
-#, c-format
-msgid "Please specify name to lookup, subject key and issuer key!\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:536
-msgid "create credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:540
-msgid "verify credential against attribute"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:545
-#, fuzzy
-msgid "The public key of the subject to lookup the credential for"
-msgstr "Especificar el tipo del registro a buscar"
-
-#: src/credential/gnunet-credential.c:550
-msgid "The name of the credential presented by the subject"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:555
-#, fuzzy
-msgid "The public key of the authority to verify the credential against"
-msgstr "Especificar el tipo del registro a buscar"
-
-#: src/credential/gnunet-credential.c:560
-#, fuzzy
-msgid "The ego to use"
-msgstr "tamaño del mensaje"
-
-#: src/credential/gnunet-credential.c:565
-msgid "The issuer attribute to verify against or to issue"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:570
-msgid "The time to live for the credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:574
-msgid "collect credentials"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:588
-#, fuzzy
-msgid "GNUnet credential resolver tool"
-msgstr "Herramienta de acceso GNUnet GNS"
-
-#: src/credential/gnunet-service-credential.c:1138
-#: src/gns/gnunet-gns-helper-service-w32.c:727 src/gns/gnunet-gns.c:185
-#, c-format
-msgid "Failed to connect to GNS\n"
-msgstr "Se produjo un fallo al conectar con GNS\n"
-
-#: src/credential/gnunet-service-credential.c:1144
-#: src/namestore/gnunet-namestore-fcfsd.c:1138
-#: src/namestore/gnunet-namestore.c:1019
-#, c-format
-msgid "Failed to connect to namestore\n"
-msgstr "Se produjo un fallo al conectar con el almacén de nombres\n"
-
-#: src/credential/plugin_gnsrecord_credential.c:186
-#, fuzzy, c-format
-msgid "Unable to parse ATTR record string `%s'\n"
-msgstr "No se pudo procesar la cadena de registro TLSA «%s»\n"
-
 #: src/datacache/datacache.c:119 src/datacache/datacache.c:311
 #: src/datastore/gnunet-service-datastore.c:757
 msgid "# bytes stored"
@@ -1732,14 +1735,12 @@ msgstr "Caché de datos de montículo (heap) 
ejecutándose\n"
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_sqlite.c:53
 #: src/peerstore/plugin_peerstore_sqlite.c:52
-#: src/psycstore/plugin_psycstore_mysql.c:62
-#: src/reclaim/plugin_reclaim_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:56
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:53
 #: src/util/crypto_ecc_setup.c:41 src/util/crypto_mpi.c:39
-#: src/include/gnunet_common.h:818 src/include/gnunet_common.h:827
+#: src/include/gnunet_common.h:840 src/include/gnunet_common.h:849
 #: src/scalarproduct/scalarproduct.h:35
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
@@ -1749,7 +1750,6 @@ msgstr "«%s» falló en %s: %d con el error: %s\n"
 #: src/datastore/plugin_datastore_sqlite.c:508
 #: src/namecache/plugin_namecache_sqlite.c:229
 #: src/namestore/plugin_namestore_sqlite.c:265
-#: src/reclaim/plugin_reclaim_sqlite.c:336
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 "Se intentó cerrar sqlite sin finalizar todas las sentencias preparadas.\n"
@@ -2068,21 +2068,19 @@ msgid "`%s' for `%s' failed at %s:%d with error: %s\n"
 msgstr "«%s» para «%s» falló en %s: %d con error: %s\n"
 
 #: src/datastore/plugin_datastore_mysql.c:1180
-#: src/psycstore/plugin_psycstore_mysql.c:1936
 msgid "Mysql database running\n"
 msgstr "Base de datos Mysql ejecutándose\n"
 
-#: src/datastore/plugin_datastore_postgres.c:276
-#: src/datastore/plugin_datastore_postgres.c:893
+#: src/datastore/plugin_datastore_postgres.c:280
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:854
+#: 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:952
-#: src/psycstore/plugin_psycstore_postgres.c:1506
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr "Base de datos Postgres ejecutándose\n"
 
@@ -2098,8 +2096,6 @@ msgstr "«%s» falló en %s:%u con el error: %s"
 #: src/namecache/plugin_namecache_sqlite.c:173
 #: src/namestore/plugin_namestore_sqlite.c:206
 #: src/peerstore/plugin_peerstore_sqlite.c:535
-#: src/psycstore/plugin_psycstore_sqlite.c:325
-#: src/reclaim/plugin_reclaim_sqlite.c:212
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "Imposible inicializar SQLite: %s.\n"
@@ -2126,8 +2122,7 @@ msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:1405
 #: src/namecache/plugin_namecache_sqlite.c:557
-#: src/namestore/plugin_namestore_sqlite.c:750
-#: src/reclaim/plugin_reclaim_sqlite.c:711
+#: src/namestore/plugin_namestore_sqlite.c:751
 msgid "Sqlite database running\n"
 msgstr "Base de datos sqlite ejecutándose\n"
 
@@ -2181,27 +2176,76 @@ msgstr "el tipo de datos a buscar"
 msgid "how long to execute this query before giving up?"
 msgstr "¿cuánto tiempo se debe ejecutar esta consulta antes de abandonar?"
 
-#: src/dht/gnunet-dht-get.c:267 src/dht/gnunet-dht-put.c:202
-msgid "use DHT's demultiplex everywhere option"
-msgstr "opción para usar el demultiplexado de la DHT siempre"
+#: src/dht/gnunet-dht-get.c:267 src/dht/gnunet-dht-put.c:202
+msgid "use DHT's demultiplex everywhere option"
+msgstr "opción para usar el demultiplexado de la DHT siempre"
+
+#: src/dht/gnunet-dht-get.c:280
+msgid "Issue a GET request to the GNUnet DHT, prints results."
+msgstr ""
+"Iniciando una peticion «GET» a la DHT de GNUnet, imprimiendo resultados."
+
+#: src/dht/gnunet-dht-monitor.c:319
+msgid "how long should the monitor command run"
+msgstr "cuanto tiempo debe ejecutarse el comando de monitorización"
+
+#: src/dht/gnunet-dht-monitor.c:324 src/fs/gnunet-download.c:372
+#: src/nse/gnunet-nse-profiler.c:878
+msgid "be verbose (print progress information)"
+msgstr "ser prolijo (imprime información de progreso)"
+
+#: src/dht/gnunet-dht-monitor.c:337
+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:916 src/testbed/gnunet-testbed-profiler.c:253
+#, 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:949 src/rps/gnunet-rps-profiler.c:3083
+msgid "number of peers to start"
+msgstr "número de pares para empezar"
+
+#: src/dht/gnunet_dht_profiler.c:954
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
+#: src/testbed/gnunet-testbed-profiler.c:300
+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:964
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:969
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:974
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
 
-#: src/dht/gnunet-dht-get.c:280
-msgid "Issue a GET request to the GNUnet DHT, prints results."
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "replication degree for DHT PUTs"
 msgstr ""
-"Iniciando una peticion «GET» a la DHT de GNUnet, imprimiendo resultados."
 
-#: src/dht/gnunet-dht-monitor.c:319
-msgid "how long should the monitor command run"
-msgstr "cuanto tiempo debe ejecutarse el comando de monitorización"
+#: src/dht/gnunet_dht_profiler.c:984
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
 
-#: src/dht/gnunet-dht-monitor.c:324 src/fs/gnunet-download.c:372
-#: src/nse/gnunet-nse-profiler.c:878
-msgid "be verbose (print progress information)"
-msgstr "ser prolijo (imprime información de progreso)"
+#: src/dht/gnunet_dht_profiler.c:989
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
 
-#: src/dht/gnunet-dht-monitor.c:337
-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:1009
+#, 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:134
 msgid "Must provide KEY and DATA for DHT put!\n"
@@ -2467,55 +2511,6 @@ 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:916 src/testbed/gnunet-testbed-profiler.c:253
-#, 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:949 src/rps/gnunet-rps-profiler.c:2953
-msgid "number of peers to start"
-msgstr "número de pares para empezar"
-
-#: src/dht/gnunet_dht_profiler.c:954
-msgid "number of PUTs to perform per peer"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
-#: src/testbed/gnunet-testbed-profiler.c:304
-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:964
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:969
-msgid "delay to start doing PUTs (default: 1 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:974
-msgid "delay to start doing GETs (default: 5 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "replication degree for DHT PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:984
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:989
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1009
-#, 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"
@@ -2600,11 +2595,6 @@ msgstr "se necesita una dirección IPv4 o IPv6 válida\n"
 msgid "`%s' must be installed SUID, will not run DNS interceptor\n"
 msgstr "«%s» debe ser instalado con SUID, se niega a arrancar\n"
 
-#: src/dv/gnunet-dv.c:175
-#, fuzzy
-msgid "Print information about DV state"
-msgstr "Imprime información acerca del estado del ATS"
-
 #: src/exit/gnunet-daemon-exit.c:960
 msgid "# TCP packets sent via TUN"
 msgstr "# Paquetes TCP enviados vía TUN"
@@ -2760,8 +2750,8 @@ msgstr ""
 #, c-format
 msgid "No addresses found for hostname `%s' of service `%s'!\n"
 msgstr ""
-"¡No se encontraron direcciones para el nombre de máquina «%s» del servicio «%"
-"s»!\n"
+"¡No se encontraron direcciones para el nombre de máquina «%s» del servicio "
+"«%s»!\n"
 
 #: src/exit/gnunet-daemon-exit.c:3332 src/exit/gnunet-daemon-exit.c:3345
 #, c-format
@@ -2908,8 +2898,8 @@ msgstr "Se produjo un fallo al retomar la operación de 
publicación «%s»: %s\
 #, c-format
 msgid "Failure while resuming unindexing operation `%s': %s\n"
 msgstr ""
-"Se produjo un fallo mientras se retomaba la operación de publicación «%s»: %"
-"s\n"
+"Se produjo un fallo mientras se retomaba la operación de publicación «%s»: "
+"%s\n"
 
 #: src/fs/fs_api.c:2332
 #, c-format
@@ -2949,8 +2939,8 @@ msgstr ""
 #, c-format
 msgid "Failure while resuming download operation `%s': %s\n"
 msgstr ""
-"Se produjo un fallo mientras se retomaba de la operación de descarga «%s»: %"
-"s\n"
+"Se produjo un fallo mientras se retomaba de la operación de descarga «%s»: "
+"%s\n"
 
 #: src/fs/fs_directory.c:213
 msgid "MAGIC mismatch.  This is not a GNUnet directory.\n"
@@ -2974,8 +2964,8 @@ msgstr ""
 msgid ""
 "Failed to access full directroy contents of `%s' for recursive download\n"
 msgstr ""
-"Se produjo un fallo al crear el directorio para la descarga recursiva de «%"
-"s»\n"
+"Se produjo un fallo al crear el directorio para la descarga recursiva de "
+"«%s»\n"
 
 #: src/fs/fs_download.c:534 src/fs/fs_download.c:546
 #, c-format
@@ -2986,8 +2976,8 @@ msgstr "Se produjo un fallo al abrir «%s» para escritura"
 #, c-format
 msgid "Failed to create directory for recursive download of `%s'\n"
 msgstr ""
-"Se produjo un fallo al crear el directorio para la descarga recursiva de «%"
-"s»\n"
+"Se produjo un fallo al crear el directorio para la descarga recursiva de "
+"«%s»\n"
 
 #: src/fs/fs_download.c:1047
 #, c-format
@@ -3017,8 +3007,8 @@ msgstr ""
 #, c-format
 msgid "Failed to write block of %u bytes at offset %llu in file `%s': %s"
 msgstr ""
-"Se produjo un fallo al escribir el bloque de %u bytes en el desplazamiento %"
-"llu del fichero «%s»: %s"
+"Se produjo un fallo al escribir el bloque de %u bytes en el desplazamiento "
+"%llu del fichero «%s»: %s"
 
 #: src/fs/fs_download.c:1220
 msgid "internal error decoding tree"
@@ -3079,61 +3069,66 @@ msgstr "Se produjo un fallo al conectar con el almacén 
de datos."
 msgid "Publishing failed: %s"
 msgstr "Publicación fallida: %s"
 
-#: src/fs/fs_publish.c:724 src/fs/fs_publish.c:778 src/fs/fs_publish.c:823
-#: src/fs/fs_publish.c:844 src/fs/fs_publish.c:874 src/fs/fs_publish.c:1140
+#: src/fs/fs_publish.c:725
+#, fuzzy, c-format
+msgid "Can not index file `%s': %s.\n"
+msgstr "Imposible abrir el fichero de configuración '%s'.\n"
+
+#: src/fs/fs_publish.c:782 src/fs/fs_publish.c:827 src/fs/fs_publish.c:848
+#: src/fs/fs_publish.c:878 src/fs/fs_publish.c:1144
 #, c-format
 msgid "Can not index file `%s': %s.  Will try to insert instead.\n"
 msgstr "No se pudo indexar el fichero «%s»: %s.  Se intentará insertar.\n"
 
-#: src/fs/fs_publish.c:780
+#: src/fs/fs_publish.c:784
 #, fuzzy
 msgid "error on index-start request to `fs' service"
 msgstr ""
 "expiración del plazo en la petición de inicio de indexado (index-start) al "
 "servicio «fs»"
 
-#: src/fs/fs_publish.c:825
+#: src/fs/fs_publish.c:829
 msgid "failed to compute hash"
 msgstr "se produjo un fallo al calcular el hash"
 
-#: src/fs/fs_publish.c:845
+#: src/fs/fs_publish.c:849
 msgid "filename too long"
 msgstr "nombre de fichero demasiado largo"
 
-#: src/fs/fs_publish.c:876
+#: src/fs/fs_publish.c:880
 msgid "could not connect to `fs' service"
 msgstr "no se pudo conectar con el servicio «fs»"
 
-#: src/fs/fs_publish.c:902
+#: src/fs/fs_publish.c:906
 #, c-format
 msgid "Failed to get file identifiers for `%s'\n"
 msgstr ""
 "Se produjo un fallo al obtener los identificadores de fichero para «%s»\n"
 
-#: src/fs/fs_publish.c:991 src/fs/fs_publish.c:1027
+#: src/fs/fs_publish.c:995 src/fs/fs_publish.c:1031
 msgid "Can not create LOC URI. Will continue with CHK instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:1094
+#: src/fs/fs_publish.c:1098
 #, c-format
 msgid "Recursive upload failed at `%s': %s"
 msgstr "La subida recursiva falló en «%s»: %s"
 
-#: src/fs/fs_publish.c:1102
+#: src/fs/fs_publish.c:1106
 #, c-format
 msgid "Recursive upload failed: %s"
 msgstr "Subida recursiva fallida: %s"
 
-#: src/fs/fs_publish.c:1142
+#: src/fs/fs_publish.c:1146
 msgid "needs to be an actual file"
 msgstr "tiene que ser un fichero de verdad"
 
-#: src/fs/fs_publish.c:1381
+#: src/fs/fs_publish.c:1385
 #, fuzzy, c-format
 msgid "Datastore failure: %s"
 msgstr "# «PUT» en el almacén de datos fallidos"
 
-#: src/fs/fs_publish.c:1472
+#: src/fs/fs_publish.c:1476
 #, c-format
 msgid "Reserving space for %u entries and %llu bytes for publication\n"
 msgstr "Reservando espacio para %u entradas y %llu bytes para publicación\n"
@@ -3205,108 +3200,108 @@ msgid "Failed to compute hash of file."
 msgstr "Se produjo un fallo al calcular el hash del fichero."
 
 # Cadena erronea, corregida en SVN.
-#: src/fs/fs_uri.c:234
+#: src/fs/fs_uri.c:236
 #, fuzzy, no-c-format
 msgid "Malformed KSK URI (`%' must be followed by HEX number)"
 msgstr "'%' debe ser seguido por un número hexadecimal"
 
-#: src/fs/fs_uri.c:293
+#: src/fs/fs_uri.c:295
 msgid "Malformed KSK URI (must not begin or end with `+')"
 msgstr "URI KSK mal formada (no debe empezar ni terminar con «+»)"
 
-#: src/fs/fs_uri.c:311
+#: src/fs/fs_uri.c:313
 #, fuzzy
 msgid "Malformed KSK URI (`++' not allowed)"
 msgstr "URI KSK mal formada (no debe empezar ni terminar con «+»)"
 
-#: src/fs/fs_uri.c:318
+#: src/fs/fs_uri.c:320
 #, fuzzy
 msgid "Malformed KSK URI (quotes not balanced)"
 msgstr "URI KSK mal formada (no debe empezar ni terminar con «+»)"
 
-#: src/fs/fs_uri.c:388
+#: src/fs/fs_uri.c:390
 #, fuzzy
 msgid "Malformed SKS URI (wrong syntax)"
 msgstr "URI SKS mal formada"
 
-#: src/fs/fs_uri.c:429
+#: src/fs/fs_uri.c:431
 #, fuzzy
 msgid "Malformed CHK URI (wrong syntax)"
 msgstr "URI CHK mal formada"
 
-#: src/fs/fs_uri.c:444
+#: src/fs/fs_uri.c:446
 msgid "Malformed CHK URI (failed to decode CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:523
+#: src/fs/fs_uri.c:525
 #, fuzzy
 msgid "LOC URI malformed (wrong syntax)"
 msgstr "URI SKS mal formada"
 
-#: src/fs/fs_uri.c:538
+#: src/fs/fs_uri.c:540
 #, fuzzy
 msgid "LOC URI malformed (no CHK)"
 msgstr "URI SKS mal formada"
 
-#: src/fs/fs_uri.c:548
+#: src/fs/fs_uri.c:550
 #, fuzzy
 msgid "LOC URI malformed (missing LOC)"
 msgstr "URI SKS mal formada"
 
-#: src/fs/fs_uri.c:556
+#: src/fs/fs_uri.c:558
 #, fuzzy
 msgid "LOC URI malformed (wrong syntax for public key)"
 msgstr "URI SKS mal formada (no se pudo decodificar la clave pública)"
 
-#: src/fs/fs_uri.c:564
+#: src/fs/fs_uri.c:566
 #, fuzzy
 msgid "LOC URI malformed (could not decode public key)"
 msgstr "URI SKS mal formada (no se pudo decodificar la clave pública)"
 
-#: src/fs/fs_uri.c:570
+#: src/fs/fs_uri.c:572
 #, fuzzy
 msgid "LOC URI malformed (could not find signature)"
 msgstr "URI SKS mal formada (no se pudo encontrar la firma)"
 
-#: src/fs/fs_uri.c:576
+#: src/fs/fs_uri.c:578
 #, fuzzy
 msgid "LOC URI malformed (wrong syntax for signature)"
 msgstr "URI SKS mal formada (no se pudo encontrar la firma)"
 
-#: src/fs/fs_uri.c:585
+#: src/fs/fs_uri.c:587
 #, fuzzy
 msgid "LOC URI malformed (could not decode signature)"
 msgstr "URI SKS mal formada (no se pudo decodificar la firma)"
 
-#: src/fs/fs_uri.c:591
+#: src/fs/fs_uri.c:593
 #, fuzzy
 msgid "LOC URI malformed (wrong syntax for expiration time)"
 msgstr "URI SKS mal formada (no se encuentra el tiempo de expiración)"
 
-#: src/fs/fs_uri.c:597
+#: src/fs/fs_uri.c:599
 #, fuzzy
 msgid "LOC URI malformed (could not parse expiration time)"
 msgstr "URI SKS mal formada (no se encuentra el tiempo de expiración)"
 
-#: src/fs/fs_uri.c:609
+#: src/fs/fs_uri.c:611
 #, fuzzy
 msgid "LOC URI malformed (signature failed validation)"
 msgstr "URI SKS mal formada (se produjo un fallo al validar la firma)"
 
-#: src/fs/fs_uri.c:643
+#: src/fs/fs_uri.c:645
 #, fuzzy
 msgid "invalid argument"
 msgstr "Parámetro no válido «%s»\n"
 
-#: src/fs/fs_uri.c:655
+#: src/fs/fs_uri.c:657
 msgid "Unrecognized URI type"
 msgstr "Tipo de URI no reconocido"
 
-#: src/fs/fs_uri.c:1059 src/fs/fs_uri.c:1086
+#: src/fs/fs_uri.c:1061 src/fs/fs_uri.c:1088
 msgid "No keywords specified!\n"
 msgstr "¡Ninguna palabra clave especificada!\n"
 
-#: src/fs/fs_uri.c:1092
+#: src/fs/fs_uri.c:1094
 msgid "Number of double-quotes not balanced!\n"
 msgstr "¡Número de comillas dobles no balanceado!\n"
 
@@ -3348,12 +3343,12 @@ msgstr ""
 msgid "set the desired LEVEL of sender-anonymity"
 msgstr "establece el nivel LEVEL deseado de anonimato del emisor"
 
-#: src/fs/gnunet-auto-share.c:772 src/fs/gnunet-publish.c:907
+#: src/fs/gnunet-auto-share.c:772
 msgid "disable adding the creation time to the metadata of the uploaded file"
 msgstr ""
 "deshabilitar añadir tiempo de creación a los metadatos del fichero subido"
 
-#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:912
+#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:907
 msgid "do not use libextractor to add keywords or metadata"
 msgstr "no usar libextractor para añadir palabras clave o metadatos"
 
@@ -3435,7 +3430,7 @@ msgid "Downloading `%s' done (%s/s).\n"
 msgstr "Finalizada descarga «%s» (%s/s).\n"
 
 #: src/fs/gnunet-download.c:216 src/fs/gnunet-publish.c:295
-#: src/fs/gnunet-search.c:212 src/fs/gnunet-unindex.c:107
+#: src/fs/gnunet-search.c:215 src/fs/gnunet-unindex.c:107
 #, c-format
 msgid "Unexpected status: %d\n"
 msgstr "Estado inesperado: %d\n"
@@ -3458,12 +3453,12 @@ msgid "Target filename must be specified.\n"
 msgstr "El nombre de fichero de destino debe ser especificado.\n"
 
 #: src/fs/gnunet-download.c:291 src/fs/gnunet-publish.c:872
-#: src/fs/gnunet-search.c:270 src/fs/gnunet-unindex.c:139
+#: src/fs/gnunet-search.c:273 src/fs/gnunet-unindex.c:139
 #, c-format
 msgid "Could not initialize `%s' subsystem.\n"
 msgstr "No se pudo inicializar el subsistema «%s».\n"
 
-#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:312
+#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:315
 msgid "set the desired LEVEL of receiver-anonymity"
 msgstr "establece el nivel LEVEL deseado de anonimato del receptor"
 
@@ -3471,7 +3466,7 @@ msgstr "establece el nivel LEVEL deseado de anonimato del 
receptor"
 msgid "delete incomplete downloads (when aborted with CTRL-C)"
 msgstr "borra descargas incompletas (cuando fueron abortadas con CTRL-C="
 
-#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:316
+#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:319
 msgid "only search the local peer (no P2P network search)"
 msgstr "únicamente buscar en el par local (no buscar en la red P2P)"
 
@@ -3499,6 +3494,14 @@ msgstr ""
 "Descargar ficheros de GNUnet usando una URI GNUnet CHK o LOC (gnunet://fs/"
 "chk/...)"
 
+#: src/fs/gnunet-fs.c:119
+msgid "print a list of all indexed files"
+msgstr "imprimir una lista de todos los ficheros indexados"
+
+#: src/fs/gnunet-fs.c:130
+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"
@@ -3519,14 +3522,6 @@ msgstr ""
 "ejecuta una batería de pruebas para medir el rendimiento de la compartición "
 "de ficheros"
 
-#: src/fs/gnunet-fs.c:119
-msgid "print a list of all indexed files"
-msgstr "imprimir una lista de todos los ficheros indexados"
-
-#: src/fs/gnunet-fs.c:130
-msgid "Special file-sharing operations"
-msgstr "Operaciones especiales de compartición de ficheros"
-
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:231
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3615,7 +3610,7 @@ msgstr "La extracción de metadatos ha finalizado.\n"
 
 #: src/fs/gnunet-publish.c:687
 #, fuzzy
-msgid "Internal error scanning directory.\n"
+msgid "Error scanning directory.\n"
 msgstr "Error interno escaneando directorio.\n"
 
 #: src/fs/gnunet-publish.c:715
@@ -3662,6 +3657,12 @@ msgstr "La opción «%s» es obligatoria cuando se usa la 
opción «%s».\n"
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr "La opción «%s» no tiene sentido sin la opción «%s».\n"
 
+#: src/fs/gnunet-publish.c:911
+#, fuzzy
+msgid "enable adding the creation time to the metadata of the uploaded file"
+msgstr ""
+"deshabilitar añadir tiempo de creación a los metadatos del fichero subido"
+
 #: src/fs/gnunet-publish.c:916
 msgid ""
 "print list of extracted keywords that would be used, but do not perform "
@@ -3738,32 +3739,32 @@ msgstr ""
 "Se produjo un fallo al escribir el directorio con los resultados de búsqueda "
 "de «%s»\n"
 
-#: src/fs/gnunet-search.c:204
+#: src/fs/gnunet-search.c:207
 #, c-format
 msgid "Error searching: %s.\n"
 msgstr "Error buscando: %s.\n"
 
-#: src/fs/gnunet-search.c:260
+#: src/fs/gnunet-search.c:263
 msgid "Could not create keyword URI from arguments.\n"
 msgstr "No se pudo crear URI de palabra clave a partir de los parámetros.\n"
 
-#: src/fs/gnunet-search.c:284
+#: src/fs/gnunet-search.c:287
 msgid "Could not start searching.\n"
 msgstr "No se pudo empezar a buscar.\n"
 
-#: src/fs/gnunet-search.c:321
+#: src/fs/gnunet-search.c:324
 msgid "write search results to file starting with PREFIX"
 msgstr "escribir resultados de búsqueda al fichero que empiecen por «PREFIX»"
 
-#: src/fs/gnunet-search.c:326
+#: src/fs/gnunet-search.c:329
 msgid "automatically terminate search after DELAY"
 msgstr "terminar búsqueda automáticamente después de «DELAY»"
 
-#: src/fs/gnunet-search.c:332
+#: src/fs/gnunet-search.c:335
 msgid "automatically terminate search after VALUE results are found"
 msgstr "terminar búsqueda después de «VALUE» resultados encontrados"
 
-#: src/fs/gnunet-search.c:348
+#: src/fs/gnunet-search.c:351
 msgid "Search GNUnet for files that were published on GNUnet"
 msgstr "Buscar en GNUnet ficheros que han sido publicados en GNUnet"
 
@@ -3945,8 +3946,8 @@ msgstr "# bloques de índice eliminados: fichero original 
inaccesible"
 #, c-format
 msgid "Could not access indexed file `%s' (%s) at offset %llu: %s\n"
 msgstr ""
-"No se pudo acceder al fichero indexado «%s» (%s) en el desplazamiento %llu: %"
-"s\n"
+"No se pudo acceder al fichero indexado «%s» (%s) en el desplazamiento %llu: "
+"%s\n"
 
 #: src/fs/gnunet-service-fs_indexing.c:361
 msgid "not indexed"
@@ -4166,43 +4167,43 @@ msgstr ""
 msgid "GNUnet HTTP server to create business cards"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:203
+#: src/gns/gnunet-dns2gns.c:214
 msgid "Failed to pack DNS response into UDP packet!\n"
 msgstr ""
 "¡Se produjo un fallo al empaquetar una respuesta DNS en un paquete UDP!\n"
 
-#: src/gns/gnunet-dns2gns.c:405
+#: src/gns/gnunet-dns2gns.c:416
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr "No se puede procesar la petición DNS de %s\n"
 
-#: src/gns/gnunet-dns2gns.c:421
+#: src/gns/gnunet-dns2gns.c:432
 #, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr "Recibida petición DNS mal formada de %s\n"
 
-#: src/gns/gnunet-dns2gns.c:429
+#: src/gns/gnunet-dns2gns.c:440
 #, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr "Recibida petición DNS no soportada de %s\n"
 
-#: src/gns/gnunet-dns2gns.c:588
+#: src/gns/gnunet-dns2gns.c:600
 #, fuzzy
 msgid "No DNS server specified!\n"
 msgstr "¡Ninguna palabra clave especificada!\n"
 
-#: src/gns/gnunet-dns2gns.c:688
+#: src/gns/gnunet-dns2gns.c:748
 msgid "IP of recursive DNS resolver to use (required)"
 msgstr "IP del resolvedor recursivo DNS a usar (requerido)"
 
-#: src/gns/gnunet-dns2gns.c:693
+#: src/gns/gnunet-dns2gns.c:753
 #, fuzzy
 msgid "UDP port to listen on for inbound DNS requests; default: 2853"
 msgstr ""
 "Puerto UDP en el que escuchar para peticiones DNS entrantes; predeterminado: "
 "53"
 
-#: src/gns/gnunet-dns2gns.c:710
+#: src/gns/gnunet-dns2gns.c:770
 msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
 msgstr "Pasarela GNUnet DNS-a-GNS (un servidor DNS)"
 
@@ -4219,6 +4220,28 @@ msgstr "¿cuánto tiempo se debe ejecutar? 0 = para 
siempre"
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:199
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:233
+msgid "Lookup a record for the given name"
+msgstr "Buscar el registro para el nombre dado"
+
+#: src/gns/gnunet-gns.c:238
+msgid "Specify the type of the record to lookup"
+msgstr "Especificar el tipo del registro a buscar"
+
+#: src/gns/gnunet-gns.c:242
+msgid "No unneeded output"
+msgstr "Sin salida innecesaria"
+
+#: src/gns/gnunet-gns.c:258
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "Herramienta de acceso GNUnet GNS"
+
 #: src/gns/gnunet-gns-helper-service-w32.c:602
 msgid "Not ready to process requests, lacking ego data\n"
 msgstr ""
@@ -4253,129 +4276,107 @@ msgstr ""
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr "%s falló en %s:%d: «%s».\n"
 
-#: src/gns/gnunet-gns-proxy.c:980
+#: src/gns/gnunet-gns-proxy.c:989
 #, fuzzy, c-format
 msgid "Unsupported CURL TLS backend %d\n"
 msgstr "Tipo de bloque %u no soportado\n"
 
-#: src/gns/gnunet-gns-proxy.c:1005
+#: src/gns/gnunet-gns-proxy.c:1014
 #, fuzzy, c-format
 msgid "Failed to fetch CN from cert: %s\n"
 msgstr "Se produjo un fallo al mandar la petición DNS a %s\n"
 
-#: src/gns/gnunet-gns-proxy.c:1026
+#: src/gns/gnunet-gns-proxy.c:1035
 #, fuzzy, c-format
 msgid "Failed to initialize DANE: %s\n"
 msgstr "¡No se puede inicializar el resolvedor!\n"
 
-#: src/gns/gnunet-gns-proxy.c:1041
+#: src/gns/gnunet-gns-proxy.c:1050
 #, fuzzy, c-format
 msgid "Failed to parse DANE record: %s\n"
 msgstr "Se produjo un fallo al procesar la petición DNS.  Omitiendo.\n"
 
-#: src/gns/gnunet-gns-proxy.c:1056
+#: src/gns/gnunet-gns-proxy.c:1065
 #, fuzzy, c-format
 msgid "Failed to verify TLS connection using DANE: %s\n"
 msgstr "Se produjo un fallo al borrar el fichero de configuración %s\n"
 
-#: src/gns/gnunet-gns-proxy.c:1066
+#: src/gns/gnunet-gns-proxy.c:1075
 #, c-format
 msgid "Failed DANE verification failed with GnuTLS verify status code: %u\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1090
+#: src/gns/gnunet-gns-proxy.c:1099
 #, c-format
 msgid "TLS certificate subject name (%s) does not match `%s': %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1221
+#: src/gns/gnunet-gns-proxy.c:1230
 #, c-format
 msgid "Cookie domain `%s' supplied by server is invalid\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2121
+#: src/gns/gnunet-gns-proxy.c:2131
 #, fuzzy, c-format
 msgid "Unsupported HTTP method `%s'\n"
 msgstr "Tipo no soportado «%s»\n"
 
-#: src/gns/gnunet-gns-proxy.c:2642
+#: src/gns/gnunet-gns-proxy.c:2652
 #, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "No se pudo importar la clave privada del fichero «%s»\n"
 
-#: src/gns/gnunet-gns-proxy.c:2674
+#: src/gns/gnunet-gns-proxy.c:2684
 #, fuzzy, c-format
 msgid "Unable to import certificate from `%s'\n"
 msgstr "No se pudo importar el certificado %s\n"
 
-#: src/gns/gnunet-gns-proxy.c:2875
+#: src/gns/gnunet-gns-proxy.c:2885
 #, fuzzy, c-format
 msgid "Failed to start HTTPS server for `%s'\n"
 msgstr "Se produjo un fallo al iniciar el servidor HTTP\n"
 
-#: src/gns/gnunet-gns-proxy.c:2897 src/rest/gnunet-rest-server.c:658
+#: src/gns/gnunet-gns-proxy.c:2907 src/rest/gnunet-rest-server.c:668
 #, fuzzy
 msgid "Failed to pass client to MHD\n"
 msgstr "Se produjo un fallo al conectar con GNS\n"
 
-#: src/gns/gnunet-gns-proxy.c:3233
+#: src/gns/gnunet-gns-proxy.c:3243
 #, fuzzy, c-format
 msgid "Unsupported socks version %d\n"
 msgstr "Tipo de bloque %u no soportado\n"
 
-#: src/gns/gnunet-gns-proxy.c:3262
+#: src/gns/gnunet-gns-proxy.c:3272
 #, fuzzy, c-format
 msgid "Unsupported socks command %d\n"
 msgstr "Tipo de bloque %u no soportado\n"
 
-#: src/gns/gnunet-gns-proxy.c:3345
+#: src/gns/gnunet-gns-proxy.c:3355
 #, fuzzy, c-format
 msgid "Unsupported socks address type %d\n"
 msgstr "Tipo de bloque %u no soportado\n"
 
-#: src/gns/gnunet-gns-proxy.c:3635
+#: src/gns/gnunet-gns-proxy.c:3693
 #, fuzzy, c-format
 msgid "Failed to load X.509 key and certificate from `%s'\n"
 msgstr "Se produjo un fallo al leer la lista de amigos de «%s»\n"
 
-#: src/gns/gnunet-gns-proxy.c:3763
+#: src/gns/gnunet-gns-proxy.c:3821
 msgid "listen on specified port (default: 7777)"
 msgstr "escuchar en el puerto especificado (predeterminado: 7777)"
 
-#: src/gns/gnunet-gns-proxy.c:3768
+#: src/gns/gnunet-gns-proxy.c:3826
 msgid "pem file to use as CA"
 msgstr "fichero pem para usar como autoridad de certificación (CA)"
 
-#: src/gns/gnunet-gns-proxy.c:3772
+#: src/gns/gnunet-gns-proxy.c:3830
 msgid "disable use of IPv6"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3798
+#: src/gns/gnunet-gns-proxy.c:3856
 msgid "GNUnet GNS proxy"
 msgstr "Proxy GNUnet GNS"
 
-#: src/gns/gnunet-gns.c:199
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:233
-msgid "Lookup a record for the given name"
-msgstr "Buscar el registro para el nombre dado"
-
-#: src/gns/gnunet-gns.c:238
-msgid "Specify the type of the record to lookup"
-msgstr "Especificar el tipo del registro a buscar"
-
-#: src/gns/gnunet-gns.c:242
-msgid "No unneeded output"
-msgstr "Sin salida innecesaria"
-
-#: src/gns/gnunet-gns.c:258
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "Herramienta de acceso GNUnet GNS"
-
 #: src/gns/gnunet-service-gns.c:506
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4387,8 +4388,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:561
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #: src/zonemaster/gnunet-service-zonemaster.c:875
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 msgid "Could not connect to DHT!\n"
 msgstr "¡No se pudo conectar a la DHT!\n"
 
@@ -4483,6 +4484,11 @@ msgstr "No se pudo procesar la cadena de registro VPN 
«%s»\n"
 msgid "Unable to parse BOX record string `%s'\n"
 msgstr "No se pudo procesar la cadena de registro VPN «%s»\n"
 
+#: src/gns/plugin_rest_gns.c:452
+#, fuzzy
+msgid "Gns REST API initialized\n"
+msgstr "Conexión fallida\n"
+
 #: src/gnsrecord/plugin_gnsrecord_dns.c:359
 #, c-format
 msgid "Unable to parse IPv4 address `%s'\n"
@@ -4898,7 +4904,7 @@ msgid "# hostlist advertisements send"
 msgstr "# anuncios de listas de máquinas enviados"
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:679
-#: src/transport/gnunet-service-transport.c:2814
+#: src/transport/gnunet-service-transport.c:2827
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 "No se pudo acceder al servicio de información de pares (PEERINFO).  "
@@ -5039,15 +5045,16 @@ msgstr "Se produjo un fallo al borrar el fichero de 
configuración %s\n"
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "Se produjo un fallo al leer el directorio «%s»\n"
 
+#: src/identity/plugin_rest_identity.c:1297
+#, fuzzy
+msgid "Identity REST API initialized\n"
+msgstr "Conexión fallida\n"
+
 #: src/json/json.c:123
 #, fuzzy, c-format
 msgid "Failed to parse JSON in option `%s': %s (%s)\n"
 msgstr "Se produjo un fallo al procesar «HELLO» en el fichero «%s»\n"
 
-#: src/multicast/gnunet-multicast.c:48 src/multicast/gnunet-multicast.c:72
-msgid "This command doesn't do anything yet."
-msgstr ""
-
 #: src/my/my.c:196 src/my/my.c:215
 #, fuzzy, c-format
 msgid "%s failed at %s:%d with error: %s\n"
@@ -5093,126 +5100,61 @@ msgid "name of the record to add/delete/display"
 msgstr "nombre del registro a añadir/borrar/mostrar"
 
 #: src/namecache/gnunet-namecache.c:238
-#, fuzzy
-msgid "spezifies the public key of the zone to look in"
-msgstr "Especificar el tipo del registro a buscar"
-
-#: src/namecache/gnunet-namecache.c:250 src/namestore/gnunet-namestore.c:1632
-msgid "GNUnet zone manipulation tool"
-msgstr "Herramienta de manipulación de zona de GNUnet"
-
-#: src/namecache/namecache_api.c:296
-#, fuzzy
-msgid "Namecache failed to cache block"
-msgstr "El almacén de nombres no pudo añadir el registro"
-
-# Miguel: ¿Conectar y conexión?
-#: src/namecache/namecache_api.c:383
-#, fuzzy
-msgid "Error communicating with namecache service"
-msgstr "Error al comunicar con el servicio ARM.\n"
-
-#: src/namecache/plugin_namecache_flat.c:121
-#: src/namecache/plugin_namecache_flat.c:255
-#: src/namestore/plugin_namestore_heap.c:148
-#: src/namestore/plugin_namestore_heap.c:395
-#: src/peerstore/plugin_peerstore_flat.c:379
-#: src/peerstore/plugin_peerstore_flat.c:538
-#, fuzzy, c-format
-msgid "Unable to initialize file: %s.\n"
-msgstr "Imposible inicializar SQLite: %s.\n"
-
-#: src/namecache/plugin_namecache_flat.c:132
-#: src/namestore/plugin_namestore_heap.c:159
-#: src/peerstore/plugin_peerstore_flat.c:394
-#, fuzzy, c-format
-msgid "Unable to get filesize: %s.\n"
-msgstr "Se produjo un fallo al crear los índices\n"
-
-#: src/namecache/plugin_namecache_flat.c:151
-#: src/namestore/plugin_namestore_heap.c:172
-#: src/peerstore/plugin_peerstore_flat.c:406
-#, fuzzy, c-format
-msgid "Unable to read file: %s.\n"
-msgstr "Se produjo un fallo al crear los índices\n"
-
-#: src/namecache/plugin_namecache_flat.c:410
-#, fuzzy
-msgid "flat plugin running\n"
-msgstr "Base de datos sqlite ejecutándose\n"
-
-#: src/namecache/plugin_namecache_sqlite.c:183
-#: src/namecache/plugin_namecache_sqlite.c:197
-#: src/namestore/plugin_namestore_sqlite.c:219
-#: src/namestore/plugin_namestore_sqlite.c:230
-#, fuzzy, c-format
-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:549
-#, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr "Forma de valor no soportada «%s»\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:576
-#, 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:597
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:629
-#, 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:689
-#, 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:777
-#, 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:796
-#, 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:832
-msgid "Domain name must not contain `.'\n"
-msgstr "El nombre de dominio no puede contener «.»\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:841
-msgid "Domain name must not contain `+'\n"
-msgstr "El nombre de dominio no puede contener «+»\n"
+#, fuzzy
+msgid "spezifies the public key of the zone to look in"
+msgstr "Especificar el tipo del registro a buscar"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1071
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
+#: src/namecache/gnunet-namecache.c:250 src/namestore/gnunet-namestore.c:1632
+msgid "GNUnet zone manipulation tool"
+msgstr "Herramienta de manipulación de zona de GNUnet"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1099
-msgid "Failed to start HTTP server\n"
-msgstr "Se produjo un fallo al iniciar el servidor HTTP\n"
+#: src/namecache/namecache_api.c:296
+#, fuzzy
+msgid "Namecache failed to cache block"
+msgstr "El almacén de nombres no pudo añadir el registro"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1147
+# Miguel: ¿Conectar y conexión?
+#: src/namecache/namecache_api.c:383
 #, fuzzy
-msgid "Failed to connect to identity\n"
-msgstr "Se produjo un fallo al conectar con GNS\n"
+msgid "Error communicating with namecache service"
+msgstr "Error al comunicar con el servicio ARM.\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1173
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
+#: src/namecache/plugin_namecache_flat.c:121
+#: src/namecache/plugin_namecache_flat.c:255
+#: src/namestore/plugin_namestore_heap.c:179
+#: src/namestore/plugin_namestore_heap.c:412
+#: src/peerstore/plugin_peerstore_flat.c:379
+#: src/peerstore/plugin_peerstore_flat.c:538
+#, fuzzy, c-format
+msgid "Unable to initialize file: %s.\n"
+msgstr "Imposible inicializar SQLite: %s.\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1192
+#: src/namecache/plugin_namecache_flat.c:132
+#: src/namestore/plugin_namestore_heap.c:190
+#: src/peerstore/plugin_peerstore_flat.c:394
+#, fuzzy, c-format
+msgid "Unable to get filesize: %s.\n"
+msgstr "Se produjo un fallo al crear los índices\n"
+
+#: src/namecache/plugin_namecache_flat.c:151
+#: src/namestore/plugin_namestore_heap.c:203
+#: src/peerstore/plugin_peerstore_flat.c:406
+#, fuzzy, c-format
+msgid "Unable to read file: %s.\n"
+msgstr "Se produjo un fallo al crear los índices\n"
+
+#: src/namecache/plugin_namecache_flat.c:410
 #, fuzzy
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr "Servicio de registro GNUnet GNS primero en llegar, primero en servirse"
+msgid "flat plugin running\n"
+msgstr "Base de datos sqlite ejecutándose\n"
+
+#: src/namecache/plugin_namecache_sqlite.c:183
+#: src/namecache/plugin_namecache_sqlite.c:197
+#: src/namestore/plugin_namestore_sqlite.c:219
+#: src/namestore/plugin_namestore_sqlite.c:230
+#, fuzzy, c-format
+msgid "Failed to setup database at `%s'\n"
+msgstr "Se produjo un fallo al inciar «%s» en «%s»\n"
 
 #: src/namestore/gnunet-namestore.c:341
 #, c-format
@@ -5424,6 +5366,71 @@ 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:549
+#, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr "Forma de valor no soportada «%s»\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:576
+#, 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:597
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:629
+#, 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:689
+#, 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:777
+#, 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:796
+#, 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:832
+msgid "Domain name must not contain `.'\n"
+msgstr "El nombre de dominio no puede contener «.»\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:841
+msgid "Domain name must not contain `+'\n"
+msgstr "El nombre de dominio no puede contener «+»\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1071
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1099
+msgid "Failed to start HTTP server\n"
+msgstr "Se produjo un fallo al iniciar el servidor HTTP\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1147
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "Se produjo un fallo al conectar con GNS\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1173
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1192
+#, 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:900
 #, fuzzy, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5442,11 +5449,16 @@ msgstr ""
 msgid "Namestore failed to store record\n"
 msgstr "El almacén de nombres no pudo añadir el registro\n"
 
-#: src/namestore/plugin_namestore_heap.c:778
+#: src/namestore/plugin_namestore_heap.c:773
 #, fuzzy
 msgid "heap file database running\n"
 msgstr "Base de datos de plantilla ejecutándose\n"
 
+#: src/namestore/plugin_rest_namestore.c:1079
+#, fuzzy
+msgid "Namestore REST API initialized\n"
+msgstr "Conexión fallida\n"
+
 #: src/nat-auto/gnunet-nat-auto.c:193
 #, fuzzy
 msgid "Suggested configuration changes:\n"
@@ -5742,6 +5754,11 @@ msgstr "comando «external-ip» no encontrado\n"
 msgid "`upnpc' command not found\n"
 msgstr "comando «upnpc» no encontrado\n"
 
+#: src/nse/gnunet-nse.c:122
+#, fuzzy
+msgid "Show network size estimates from NSE service."
+msgstr "# Estimaciones del tamaño de red recibidas"
+
 #: src/nse/gnunet-nse-profiler.c:849
 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"
@@ -5767,16 +5784,70 @@ 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-nse.c:122
-#, fuzzy
-msgid "Show network size estimates from NSE service."
-msgstr "# Estimaciones del tamaño de red recibidas"
-
 #: src/nse/gnunet-service-nse.c:1534
 #: src/revocation/gnunet-service-revocation.c:843 src/util/gnunet-scrypt.c:276
 msgid "Value is too large.\n"
 msgstr ""
 
+#: src/peerinfo/gnunet-service-peerinfo.c:178
+#, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr "Eliminando dirección de transporte «%s»\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:313
+#, 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:334
+#: src/peerinfo/gnunet-service-peerinfo.c:365
+#, 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:449
+msgid "# peers known"
+msgstr "# pares conocidos"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:492
+#, 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:659
+#, fuzzy, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "Escaneando directorio «%s».\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:667
+#, 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:1100
+#, fuzzy, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr "Escaneando directorio «%s».\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1438
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr "Importando HELLO de «%s»\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1451
+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:220
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+"No se obtuvo respuesta del servicio de información de pares (PEERINFO)."
+
 #: src/peerinfo-tool/gnunet-peerinfo.c:239
 #, fuzzy, c-format
 msgid "%sPeer `%s'\n"
@@ -5788,7 +5859,7 @@ msgid "\tExpires: %s \t %s\n"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:299
-#: src/rest-plugins/plugin_rest_peerinfo.c:501
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:501
 #, fuzzy, c-format
 msgid "Failure: Cannot convert address to string for peer `%s'\n"
 msgstr "Se produjo un fallo al resolver la dirección para el par «%s»\n"
@@ -5867,64 +5938,10 @@ msgstr "Cargando el módulo de transporte «%s»\n"
 msgid "Failed to load transport plugin for `%s'\n"
 msgstr "Se produjo un fallo al cargar el módulo del transporte para «%s»\n"
 
-#: src/peerinfo/gnunet-service-peerinfo.c:178
-#, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr "Eliminando dirección de transporte «%s»\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:313
-#, 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:334
-#: src/peerinfo/gnunet-service-peerinfo.c:365
-#, 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:449
-msgid "# peers known"
-msgstr "# pares conocidos"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:492
-#, 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:659
-#, fuzzy, c-format
-msgid "Scanning directory `%s'\n"
-msgstr "Escaneando directorio «%s».\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:667
-#, 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:1100
-#, fuzzy, c-format
-msgid "Cleaning up directory `%s'\n"
-msgstr "Escaneando directorio «%s».\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1438
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr "Importando HELLO de «%s»\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1451
-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:220
-msgid "Failed to receive response from `PEERINFO' service."
-msgstr ""
-"No se obtuvo respuesta del servicio de información de pares (PEERINFO)."
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:796
+#, fuzzy
+msgid "Peerinfo REST API initialized\n"
+msgstr "Conexión fallida\n"
 
 #: src/peerstore/gnunet-peerstore.c:91
 msgid "peerstore"
@@ -5935,22 +5952,21 @@ msgstr ""
 msgid "Could not load database backend `%s'\n"
 msgstr "No se pudo leer el fichero de la lista negra «%s»\n"
 
-#: src/peerstore/peerstore_api.c:532 src/peerstore/peerstore_api.c:581
+#: src/peerstore/peerstore_api.c:605 src/peerstore/peerstore_api.c:657
 #, fuzzy
 msgid "Unexpected iteration response, this should not happen.\n"
 msgstr "El formato de salida es desconocido, ésto no debería pasar.\n"
 
-#: src/peerstore/peerstore_api.c:595
+#: src/peerstore/peerstore_api.c:671
 #, fuzzy
 msgid "Received a malformed response from service."
 msgstr "Recibida petición DNS mal formada de %s\n"
 
-#: src/peerstore/peerstore_api.c:731
+#: src/peerstore/peerstore_api.c:807
 msgid "Received a watch result for a non existing watch.\n"
 msgstr ""
 
 #: src/peerstore/plugin_peerstore_sqlite.c:453
-#: src/psycstore/plugin_psycstore_sqlite.c:282
 #, fuzzy, c-format
 msgid ""
 "Error executing SQL query: %s\n"
@@ -5958,8 +5974,6 @@ msgid ""
 msgstr "Error abriendo fichero «%s»: %s\n"
 
 #: src/peerstore/plugin_peerstore_sqlite.c:488
-#: src/psycstore/plugin_psycstore_mysql.c:250
-#: src/psycstore/plugin_psycstore_sqlite.c:259
 #, fuzzy, c-format
 msgid ""
 "Error preparing SQL query: %s\n"
@@ -5976,114 +5990,6 @@ msgstr "Se produjo un fallo al crear los índices\n"
 msgid "PQprepare (`%s' as `%s') failed with error: %s\n"
 msgstr "«%s» para «%s» falló en %s: %d con error: %s\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:249
-#, fuzzy
-msgid "Failed to store membership information!\n"
-msgstr "Se produjo un fallo al retomar la operación de publicación «%s»: %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:271
-#, fuzzy
-msgid "Failed to test membership!\n"
-msgstr "¡Se produjo un fallo al configurar el túnel mesh!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:300
-#, fuzzy
-msgid "Dropping invalid fragment\n"
-msgstr "Parámetro no válido «%s»\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:311
-#, fuzzy
-msgid "Failed to store fragment\n"
-msgstr "Se produjo un fallo al iniciar el demonio: %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:368
-#, fuzzy
-msgid "Failed to get fragment!\n"
-msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:434
-#, fuzzy
-msgid "Failed to get message!\n"
-msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:464
-#, fuzzy
-msgid "Failed to get message fragment!\n"
-msgstr "Se produjo un fallo al procesar un mensaje «HELLO»: mal formado\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:494
-#, fuzzy
-msgid "Failed to get master counters!\n"
-msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:675
-#, fuzzy, c-format
-msgid "Failed to begin modifying state: %d\n"
-msgstr "Se produjo un fallo al cargar el estado: %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:685
-#, fuzzy, c-format
-msgid "Failed to modify state: %d\n"
-msgstr "Se produjo un fallo al cargar el estado: %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:693
-#, fuzzy
-msgid "Failed to end modifying state!\n"
-msgstr "Se produjo un fallo al cargar el estado: %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:730
-#, fuzzy
-msgid "Tried to set invalid state variable name!\n"
-msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:744
-#, fuzzy
-msgid "Failed to begin synchronizing state!\n"
-msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:761
-#, fuzzy
-msgid "Failed to end synchronizing state!\n"
-msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:779
-#: src/psycstore/gnunet-service-psycstore.c:795
-#, fuzzy
-msgid "Failed to reset state!\n"
-msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:824
-#: src/psycstore/gnunet-service-psycstore.c:881
-#, fuzzy
-msgid "Tried to get invalid state variable name!\n"
-msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:851
-#: src/psycstore/gnunet-service-psycstore.c:896
-#, fuzzy
-msgid "Failed to get state variable!\n"
-msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:281
-#, fuzzy
-msgid "Unable to initialize Mysql.\n"
-msgstr "Imposible inicializar SQLite: %s.\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:291
-#, fuzzy, c-format
-msgid "Failed to run SQL statement `%s'\n"
-msgstr "Se produjo un fallo al preparar la sentencia «%s»\n"
-
-#: src/psycstore/plugin_psycstore_sqlite.c:61
-#, fuzzy, c-format
-msgid "`%s' failed at %s:%d with error: %s (%d)\n"
-msgstr "«%s» falló en %s: %d con el error: %s\n"
-
-#: src/psycstore/plugin_psycstore_sqlite.c:1924
-#, fuzzy
-msgid "SQLite database running\n"
-msgstr "Base de datos sqlite ejecutándose\n"
-
 #: src/pt/gnunet-daemon-pt.c:423
 msgid "Failed to pack DNS request.  Dropping.\n"
 msgstr "Se produjo un fallo al empaquetar la petición DNS.  Omitiendo.\n"
@@ -6141,61 +6047,80 @@ msgid "Daemon to run to perform IP protocol translation 
to GNUnet"
 msgstr ""
 "Demonio a ejecutar para realizar la traducción de protocolo IP a GNUnet"
 
-#: src/reclaim/gnunet-reclaim.c:467
+#: src/reclaim/gnunet-reclaim.c:495
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "Las opción «%s» o «%s» es necesaria.\n"
 
-#: src/reclaim/gnunet-reclaim.c:475
+#: src/reclaim/gnunet-reclaim.c:501
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:483
+#: src/reclaim/gnunet-reclaim.c:507
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "el parámetro --section es necesario\n"
 
-#: src/reclaim/gnunet-reclaim.c:506
-msgid "Add attribute"
+#: src/reclaim/gnunet-reclaim.c:524
+msgid "Add an attribute NAME"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:512
-msgid "Attribute value"
+#: src/reclaim/gnunet-reclaim.c:527
+msgid "Add an attribute with ID"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:517
-msgid "Ego"
+#: src/reclaim/gnunet-reclaim.c:530
+msgid "The attribute VALUE"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:522
-msgid "Audience (relying party)"
+#: src/reclaim/gnunet-reclaim.c:533
+#, fuzzy
+msgid "The EGO to use"
+msgstr "tamaño del mensaje"
+
+#: src/reclaim/gnunet-reclaim.c:535
+msgid "Specify the relying party for issue"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:526
-msgid "List attributes for Ego"
+#: src/reclaim/gnunet-reclaim.c:538
+msgid "List attributes for EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:531
-msgid "Issue a ticket"
+#: src/reclaim/gnunet-reclaim.c:542
+msgid "Issue a ticket for a set of attributes separated by comma"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:536
+#: src/reclaim/gnunet-reclaim.c:545
 msgid "Consume a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:541
+#: src/reclaim/gnunet-reclaim.c:548
 msgid "Revoke a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:546
+#: src/reclaim/gnunet-reclaim.c:551
 msgid "Type of attribute"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:551
+#: src/reclaim/gnunet-reclaim.c:553
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:556
 msgid "Expiration interval of the attribute"
 msgstr ""
 
+#: src/reclaim/gnunet-reclaim.c:560
+msgid "re:claimID command line tool"
+msgstr ""
+
+#: src/reclaim/plugin_rest_openid_connect.c:2051
+#: src/reclaim/plugin_rest_reclaim.c:1018
+#, fuzzy
+msgid "Identity Provider REST API initialized\n"
+msgstr "Conexión fallida\n"
+
 #: src/reclaim/reclaim_api.c:436
 #, fuzzy
 msgid "failed to store record\n"
@@ -6296,52 +6221,21 @@ msgstr "El servicio «%s» no está ejecutandose\n"
 msgid "Search string `%s' is too long!\n"
 msgstr "El servicio «%s» no está ejecutandose\n"
 
-#: src/rest-plugins/plugin_rest_copying.c:209
-#, fuzzy
-msgid "COPYING REST API initialized\n"
-msgstr "Conexión fallida\n"
-
-#: src/rest-plugins/plugin_rest_credential.c:1128
-#, fuzzy
-msgid "GNS REST API initialized\n"
-msgstr "Conexión fallida\n"
-
-#: src/rest-plugins/plugin_rest_gns.c:452
-#, fuzzy
-msgid "Gns REST API initialized\n"
-msgstr "Conexión fallida\n"
-
-#: src/rest-plugins/plugin_rest_identity.c:1297
-#, fuzzy
-msgid "Identity REST API initialized\n"
-msgstr "Conexión fallida\n"
-
-#: src/rest-plugins/plugin_rest_namestore.c:1079
-#, fuzzy
-msgid "Namestore REST API initialized\n"
-msgstr "Conexión fallida\n"
-
-#: src/rest-plugins/plugin_rest_openid_connect.c:2245
-#: src/rest-plugins/plugin_rest_reclaim.c:1079
-#, fuzzy
-msgid "Identity Provider REST API initialized\n"
-msgstr "Conexión fallida\n"
-
-#: src/rest-plugins/plugin_rest_peerinfo.c:796
-#, fuzzy
-msgid "Peerinfo REST API initialized\n"
-msgstr "Conexión fallida\n"
-
-#: src/rest/gnunet-rest-server.c:927
+#: src/rest/gnunet-rest-server.c:986
 #, fuzzy
 msgid "listen on specified port (default: 7776)"
 msgstr "escuchar en el puerto especificado (predeterminado: 7777)"
 
-#: src/rest/gnunet-rest-server.c:944
+#: src/rest/gnunet-rest-server.c:1003
 #, fuzzy
 msgid "GNUnet REST server"
 msgstr "Herramienta de acceso GNUnet GNS"
 
+#: src/rest/plugin_rest_copying.c:209
+#, fuzzy
+msgid "COPYING REST API initialized\n"
+msgstr "Conexión fallida\n"
+
 #: src/revocation/gnunet-revocation.c:129
 #, fuzzy, c-format
 msgid "Key `%s' is valid\n"
@@ -6405,7 +6299,7 @@ msgstr ""
 msgid "Revocation certificate not ready, calculating proof of work\n"
 msgstr ""
 
-#: src/revocation/gnunet-revocation.c:437 src/social/gnunet-social.c:1180
+#: src/revocation/gnunet-revocation.c:437
 #, fuzzy, c-format
 msgid "Public key `%s' malformed\n"
 msgstr "El bloque del tipo %u está mal formado\n"
@@ -6482,39 +6376,39 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "No se pudo conectar con el almacén de datos."
 
-#: src/rps/gnunet-rps-profiler.c:2959
+#: src/rps/gnunet-rps.c:260
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:264
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:268
+msgid "Get peers from biased stream"
+msgstr ""
+
+#: src/rps/gnunet-rps-profiler.c:3088
 #, fuzzy
 msgid "duration of the profiling"
 msgstr ""
 "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar '%s'!\n"
 
-#: src/rps/gnunet-rps-profiler.c:2965
+#: src/rps/gnunet-rps-profiler.c:3093
 #, fuzzy
 msgid "timeout for the profiling"
 msgstr "Especificar el tipo del registro a buscar"
 
-#: src/rps/gnunet-rps-profiler.c:2971
+#: src/rps/gnunet-rps-profiler.c:3098
 #, fuzzy
 msgid "number of PeerIDs to request"
 msgstr "número de pares para empezar"
 
-#: src/rps/gnunet-rps-profiler.c:2986
+#: src/rps/gnunet-rps-profiler.c:3114
 #, fuzzy
 msgid "Measure quality and performance of the RPS service."
 msgstr "Medir la calidad y rendimiento del servicio NSE."
 
-#: src/rps/gnunet-rps.c:260
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:264
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:268
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/scalarproduct/gnunet-scalarproduct.c:220
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6570,10 +6464,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1401
 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1345
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr "Conexión fallida (¿bug?)\n"
@@ -6598,7 +6492,7 @@ msgstr ""
 msgid "also profile decryption"
 msgstr ""
 
-#: src/set/gnunet-service-set.c:2005
+#: src/set/gnunet-service-set.c:2008
 #, fuzzy
 msgid "Could not connect to CADET service\n"
 msgstr "¡No se pudo conectar al servicio %s!\n"
@@ -6646,134 +6540,6 @@ msgstr ""
 msgid "element size"
 msgstr ""
 
-#: src/social/gnunet-social.c:1166
-#, fuzzy
-msgid "--place missing or invalid.\n"
-msgstr "Parámetro no válido «%s»\n"
-
-#: src/social/gnunet-social.c:1217
-msgid "assign --name in state to --data"
-msgstr ""
-
-#: src/social/gnunet-social.c:1222
-msgid "say good-bye and leave somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1227
-msgid "create a place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1232
-msgid "destroy a place we were hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1237
-msgid "enter somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1243
-msgid "find state matching name prefix"
-msgstr ""
-
-#: src/social/gnunet-social.c:1248
-msgid "replay history of messages up to the given --limit"
-msgstr ""
-
-#: src/social/gnunet-social.c:1253
-msgid "reconnect to a previously created place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1258
-msgid "publish something to a place we are hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1263
-msgid "reconnect to a previously entered place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1268
-msgid "search for state matching exact name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1273
-msgid "submit something to somebody's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1278
-msgid "list of egos and subscribed places"
-msgstr ""
-
-#: src/social/gnunet-social.c:1283
-msgid "extract and replay history between message IDs --start and --until"
-msgstr ""
-
-#: src/social/gnunet-social.c:1292
-msgid "application ID to use when connecting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1298
-msgid "message body or state value"
-msgstr ""
-
-#: src/social/gnunet-social.c:1304
-#, fuzzy
-msgid "name or public key of ego"
-msgstr "Parámetro no válido «%s»\n"
-
-#: src/social/gnunet-social.c:1309
-#, fuzzy
-msgid "wait for incoming messages"
-msgstr "Falló al entregar el mensaje '%s'.\n"
-
-#: src/social/gnunet-social.c:1315
-#, fuzzy
-msgid "GNS name"
-msgstr "Mostrar el _nombre"
-
-#: src/social/gnunet-social.c:1321
-msgid "peer ID for --guest-enter"
-msgstr ""
-
-#: src/social/gnunet-social.c:1327
-msgid "name (key) to query from state"
-msgstr ""
-
-#: src/social/gnunet-social.c:1333
-#, fuzzy
-msgid "method name"
-msgstr "Mostrar el _nombre"
-
-#: src/social/gnunet-social.c:1339
-#, fuzzy
-msgid "number of messages to replay from history"
-msgstr "número de mensajes a usar por iteración"
-
-#: src/social/gnunet-social.c:1345
-msgid "key address of place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1351
-msgid "start message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1356
-msgid "respond to entry requests by admitting all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1362
-msgid "end message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1367
-msgid "respond to entry requests by refusing all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1377
-msgid ""
-"gnunet-social - Interact with the social service: enter/leave, send/receive "
-"messages, access history and state.\n"
-msgstr ""
-
 #: src/sq/sq.c:54
 #, c-format
 msgid "Failure to bind %u-th SQL parameter\n"
@@ -6937,7 +6703,7 @@ msgid "Invalid argument `%s'; expecting unsigned int\n"
 msgstr "Argumento no válido para '%s' en %s:%d.\n"
 
 #: src/testbed/generate-underlay-topology.c:342
-#: src/testbed/gnunet-testbed-profiler.c:283
+#: src/testbed/gnunet-testbed-profiler.c:282
 msgid "create COUNT number of peers"
 msgstr "crea «COUNT» número de pares"
 
@@ -7050,17 +6816,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-profiler.c:289
-msgid "tolerate COUNT number of continious timeout failures"
-msgstr "tolerar un número «COUNT» de continuas expiraciones de plazo"
-
-#: src/testbed/gnunet-testbed-profiler.c:294
-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:118
 #, fuzzy
 msgid "Waiting for child to exit.\n"
@@ -7071,6 +6826,17 @@ msgstr "Esperando a los pares para conectar (%u ciclos 
restantes)...\n"
 msgid "Spawning process `%s'\n"
 msgstr "Iniciando el proceso auxiliar (HELPER) «%s»\n"
 
+#: src/testbed/gnunet-testbed-profiler.c:287
+msgid "tolerate COUNT number of continious timeout failures"
+msgstr "tolerar un número «COUNT» de continuas expiraciones de plazo"
+
+#: src/testbed/gnunet-testbed-profiler.c:291
+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:410
 #, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -7258,7 +7024,7 @@ msgstr "El número de clave %u no existe\n"
 
 # Miguel: "testbed" lo he traducido como batería de pruebas, pero
 # no es una traducción muy literal.
-#: src/testing/testing.c:1159
+#: src/testing/testing.c:1161
 #, c-format
 msgid ""
 "You attempted to create a testbed with more than %u hosts.  Please "
@@ -7267,47 +7033,47 @@ msgstr ""
 "Se ha intentado crear una batería de pruebas con más de %u máquinas.  Por "
 "favor, pre-compute más claves de máquinas primero.\n"
 
-#: src/testing/testing.c:1168
+#: src/testing/testing.c:1170
 #, c-format
 msgid "Failed to initialize hostkey for peer %u\n"
 msgstr ""
 "Se produjo un fallo al inicializar la clave de la máquina desde el par %u\n"
 
-#: src/testing/testing.c:1178
+#: src/testing/testing.c:1180
 #, fuzzy
 msgid "PRIVATE_KEY option in PEER section missing in configuration\n"
 msgstr "¡Falta la opción «%s» en la sección «%s» de la configuración!\n"
 
-#: src/testing/testing.c:1191
+#: src/testing/testing.c:1193
 msgid "Failed to create configuration for peer (not enough free ports?)\n"
 msgstr ""
 "Se produjo un fallo al crear la configuración para el par (¿no hay "
 "suficientes puertos libres?)\n"
 
-#: src/testing/testing.c:1205
+#: src/testing/testing.c:1207
 #, fuzzy, c-format
 msgid "Cannot open hostkey file `%s': %s\n"
 msgstr "No se pudo abrir el fichero de claves de máquina: %s\n"
 
-#: src/testing/testing.c:1217
+#: src/testing/testing.c:1219
 #, c-format
 msgid "Failed to write hostkey file for peer %u: %s\n"
 msgstr ""
 "Se produjo un fallo al escribir la clave de la máquina para el par %u: %s\n"
 
-#: src/testing/testing.c:1242
+#: src/testing/testing.c:1244
 #, c-format
 msgid "Failed to write configuration file `%s' for peer %u: %s\n"
 msgstr ""
 "Se produjo un fallo al escribir el fichero de configuración «%s» para el par "
 "%u: %s\n"
 
-#: src/testing/testing.c:1344
+#: src/testing/testing.c:1346
 #, c-format
 msgid "Failed to start `%s': %s\n"
 msgstr "Se produjo un fallo al arrancar «%s»: %s\n"
 
-#: src/testing/testing.c:1647
+#: src/testing/testing.c:1649
 #, c-format
 msgid "Failed to load configuration from %s\n"
 msgstr "Se produjo un fallo al cargar la configuración de %s\n"
@@ -7391,22 +7157,22 @@ msgstr "# mensajes «HELLO» recibidos"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:2329
-#: src/transport/gnunet-communicator-udp.c:2883
-#: src/transport/gnunet-service-tng.c:4679
-#: src/transport/gnunet-service-transport.c:2782
+#: src/transport/gnunet-communicator-tcp.c:2334
+#: src/transport/gnunet-communicator-udp.c:2938
+#: src/transport/gnunet-service-tng.c:7070
+#: src/transport/gnunet-service-transport.c:2795
 #, 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:2393
+#: src/transport/gnunet-communicator-tcp.c:2398
 #, fuzzy
 msgid "GNUnet TCP communicator"
 msgstr "Configurador Gtk de GNUnet"
 
-#: src/transport/gnunet-communicator-udp.c:2954
+#: src/transport/gnunet-communicator-udp.c:3016
 #, fuzzy
 msgid "GNUnet UDP communicator"
 msgstr "Configurador Gtk de GNUnet"
@@ -7417,61 +7183,61 @@ msgid ""
 "Maximum number of UNIX connections exceeded, dropping incoming message\n"
 msgstr "El número máximo de conexiones es %u\n"
 
-#: src/transport/gnunet-communicator-unix.c:1073
+#: src/transport/gnunet-communicator-unix.c:1074
 #: src/transport/plugin_transport_unix.c:1403
 #, fuzzy, c-format
 msgid "Cannot create path to `%s'\n"
 msgstr "Se produjo un fallo al crear la página para «%s»\n"
 
-#: src/transport/gnunet-communicator-unix.c:1162
+#: src/transport/gnunet-communicator-unix.c:1163
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:448
+#: src/transport/gnunet-service-transport_ats.c:141
+msgid "# Addresses given to ATS"
+msgstr ""
+
+#: src/transport/gnunet-service-transport.c:452
 msgid "# messages dropped due to slow client"
 msgstr "# mensajes omitidos debido a un cliente lento"
 
-#: src/transport/gnunet-service-transport.c:817
+#: src/transport/gnunet-service-transport.c:826
 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:1550
+#: src/transport/gnunet-service-transport.c:1563
 #, 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:1710
+#: src/transport/gnunet-service-transport.c:1723
 msgid "# bytes total received"
 msgstr "# total de bytes recibidos"
 
-#: src/transport/gnunet-service-transport.c:1807
+#: src/transport/gnunet-service-transport.c:1820
 msgid "# bytes payload received"
 msgstr "# bytes de «payload» recibidos"
 
-#: src/transport/gnunet-service-transport.c:2124
-#: src/transport/gnunet-service-transport.c:2596
+#: src/transport/gnunet-service-transport.c:2137
+#: src/transport/gnunet-service-transport.c:2609
 msgid "# disconnects due to blacklist"
 msgstr "# desconexiones debido a la lista negra"
 
-#: src/transport/gnunet-service-transport.c:2600
+#: src/transport/gnunet-service-transport.c:2613
 #, 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:2708
+#: src/transport/gnunet-service-transport.c:2721
 #, 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:2717
+#: src/transport/gnunet-service-transport.c:2730
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:141
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr "# refrescos de mi «HELLO»"
@@ -7481,211 +7247,211 @@ msgstr "# refrescos de mi «HELLO»"
 msgid "# session creation failed"
 msgstr "# sesiones wlan creadas"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1052
+#: src/transport/gnunet-service-transport_neighbours.c:1053
 msgid "# DISCONNECT messages sent"
 msgstr "# Mensajes «DISCONNECT» enviados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1175
+#: src/transport/gnunet-service-transport_neighbours.c:1176
 msgid "# disconnects due to quota of 0"
 msgstr "# desconexiones debido a una cuota de 0"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1323
-#: src/transport/gnunet-service-transport_neighbours.c:1784
+#: src/transport/gnunet-service-transport_neighbours.c:1324
+#: src/transport/gnunet-service-transport_neighbours.c:1785
 msgid "# bytes in message queue for other peers"
 msgstr "# bytes en la cola de mensajes para otros pares"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1328
+#: src/transport/gnunet-service-transport_neighbours.c:1329
 msgid "# messages transmitted to other peers"
 msgstr "# mensajes transmitidos a otros pares"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1334
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 msgid "# transmission failures for messages to other peers"
 msgstr "# fallos de transmisión en mensajes a otros pares"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1394
+#: src/transport/gnunet-service-transport_neighbours.c:1395
 msgid "# messages timed out while in transport queue"
 msgstr "# mensajes expirados mientras estaban en la cola de transporte"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1478
+#: src/transport/gnunet-service-transport_neighbours.c:1479
 msgid "# KEEPALIVES sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1514
+#: src/transport/gnunet-service-transport_neighbours.c:1515
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "# Mensajes «KEEPALIVE» descartados (par desconocido)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1522
+#: src/transport/gnunet-service-transport_neighbours.c:1523
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "# mensajes «KEEPALIVE» descartados (no hay sesión)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1532
+#: src/transport/gnunet-service-transport_neighbours.c:1533
 msgid "# KEEPALIVES received in good order"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1577
+#: src/transport/gnunet-service-transport_neighbours.c:1578
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (not connected)"
 msgstr "# mensajes «KEEPALIVE_RESPONSE» descartados (no conectado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1586
+#: src/transport/gnunet-service-transport_neighbours.c:1587
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (not expected)"
 msgstr "# Mensajes «KEEPALIVE_RESPONSE» descartados (no esperado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1594
+#: src/transport/gnunet-service-transport_neighbours.c:1595
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (address changed)"
 msgstr "# mensajes «KEEPALIVE_RESPONSE» descartados (no conectado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1603
+#: src/transport/gnunet-service-transport_neighbours.c:1604
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (no nonce)"
 msgstr "# mensajes «KEEPALIVE_RESPONSE» descartados (no conectado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (bad nonce)"
 msgstr "# mensajes «KEEPALIVE_RESPONSE» descartados (no conectado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1614
+#: src/transport/gnunet-service-transport_neighbours.c:1615
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs received (OK)"
 msgstr "# mensajes «KEEPALIVE_RESPONSE» descartados (no conectado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1681
+#: src/transport/gnunet-service-transport_neighbours.c:1682
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "# mensajes descartados debido a la falta de registro vecinal"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1715
+#: src/transport/gnunet-service-transport_neighbours.c:1716
 msgid "# bandwidth quota violations by other peers"
 msgstr "# violaciones de la cuota de ancho de banda por otros pares"
 
 # throttling?
-#: src/transport/gnunet-service-transport_neighbours.c:1730
+#: src/transport/gnunet-service-transport_neighbours.c:1731
 msgid "# ms throttling suggested"
 msgstr "# ms de impulso sugeridos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1853
+#: src/transport/gnunet-service-transport_neighbours.c:1854
 #, fuzzy, c-format
 msgid "Failed to send SYN message to peer `%s'\n"
 msgstr ""
-"Se produjo un fallo al procesar el mensaje interno del programa auxiliar «%"
-"s»\n"
+"Se produjo un fallo al procesar el mensaje interno del programa auxiliar "
+"«%s»\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1873
+#: src/transport/gnunet-service-transport_neighbours.c:1874
 #, fuzzy
 msgid "# Failed attempts to switch addresses (failed to send SYN CONT)"
 msgstr "Se produjo un fallo al procesar la petición DNS.  Omitiendo.\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1912
+#: src/transport/gnunet-service-transport_neighbours.c:1913
 #, fuzzy
 msgid "# SYN messages sent"
 msgstr "# Mensajes «DISCONNECT» enviados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1929
+#: src/transport/gnunet-service-transport_neighbours.c:1930
 #, fuzzy, c-format
 msgid "Failed to transmit SYN message to %s\n"
 msgstr "Se produjo un fallo al transmitir un mensaje al servicio «%s».\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1959
+#: src/transport/gnunet-service-transport_neighbours.c:1960
 #, fuzzy
 msgid "# Failed attempts to switch addresses (failed to send SYN)"
 msgstr "Se produjo un fallo al procesar la petición DNS.  Omitiendo.\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2027
+#: src/transport/gnunet-service-transport_neighbours.c:2028
 #, fuzzy, c-format
 msgid "Failed to send SYN_ACK message to peer `%s' using address `%s'\n"
 msgstr "¡Se produjo un fallo al conectar al servicio de estadísticas!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2081
+#: src/transport/gnunet-service-transport_neighbours.c:2082
 #, fuzzy
 msgid "# SYN_ACK messages sent"
 msgstr "# Mensajes «DISCONNECT» enviados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2098
+#: src/transport/gnunet-service-transport_neighbours.c:2099
 #, fuzzy, c-format
 msgid "Failed to transmit SYN_ACK message to %s\n"
 msgstr "Se produjo un fallo al transmitir un mensaje al servicio «%s».\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2261
+#: src/transport/gnunet-service-transport_neighbours.c:2262
 #, fuzzy
 msgid "# SYN messages received"
 msgstr "# mensajes PING recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2266
+#: src/transport/gnunet-service-transport_neighbours.c:2267
 #, c-format
 msgid "SYN request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2653
+#: src/transport/gnunet-service-transport_neighbours.c:2654
 msgid "# Attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3138
+#: src/transport/gnunet-service-transport_neighbours.c:3139
 #, fuzzy
 msgid "# SYN_ACK messages received"
 msgstr "# mensajes SET QUOTA recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3146
+#: src/transport/gnunet-service-transport_neighbours.c:3147
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (no peer)"
 msgstr "# Mensajes «CONNECT_ACK» inesperados (sin par)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3164
-#: src/transport/gnunet-service-transport_neighbours.c:3188
+#: src/transport/gnunet-service-transport_neighbours.c:3165
+#: src/transport/gnunet-service-transport_neighbours.c:3189
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (not ready)"
 msgstr "# Mensajes «CONNECT_ACK» inesperados (no estaba preparado)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3200
+#: src/transport/gnunet-service-transport_neighbours.c:3201
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (waiting on ATS)"
 msgstr "# Mensajes «CONNECT_ACK» inesperados (esperando en el ATS)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3225
+#: src/transport/gnunet-service-transport_neighbours.c:3226
 msgid "# Successful attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3238
+#: src/transport/gnunet-service-transport_neighbours.c:3239
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (disconnecting)"
 msgstr "# Mensajes «CONNECT_ACK» inesperados (desconectando)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3411
+#: src/transport/gnunet-service-transport_neighbours.c:3412
 #, fuzzy
 msgid "# ACK messages received"
 msgstr "# mensajes «REQUEST CONNECT» recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3447
+#: src/transport/gnunet-service-transport_neighbours.c:3448
 #, fuzzy
 msgid "# unexpected ACK messages"
 msgstr "# Mensajes «SESSION ACK» inesperados"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3535
+#: src/transport/gnunet-service-transport_neighbours.c:3536
 #, fuzzy
 msgid "# quota messages ignored (malformed)"
 msgstr "# mensajes de desconexión ignorados (formato antiguo)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3542
+#: src/transport/gnunet-service-transport_neighbours.c:3543
 #, fuzzy
 msgid "# QUOTA messages received"
 msgstr "# Mensajes «GAP PUT» recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3582
+#: src/transport/gnunet-service-transport_neighbours.c:3583
 #, fuzzy
 msgid "# disconnect messages ignored (malformed)"
 msgstr "# mensajes de desconexión ignorados (formato antiguo)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3589
+#: src/transport/gnunet-service-transport_neighbours.c:3590
 #, fuzzy
 msgid "# DISCONNECT messages received"
 msgstr "# mensajes «REQUEST CONNECT» recibidos"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3600
+#: src/transport/gnunet-service-transport_neighbours.c:3601
 msgid "# disconnect messages ignored (timestamp)"
 msgstr "# mensajes de desconexión ignorados (marca temporal)"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3735
+#: src/transport/gnunet-service-transport_neighbours.c:3736
 msgid "# disconnected from peer upon explicit request"
 msgstr "# desconexiones del par debido a una petición explícita"
 
@@ -7721,7 +7487,7 @@ msgstr "# revalidaciones de direcciones iniciadas"
 #: src/transport/gnunet-service-transport_validation.c:491
 #: src/transport/gnunet-service-transport_validation.c:677
 #: src/transport/gnunet-service-transport_validation.c:997
-#: src/transport/gnunet-service-transport_validation.c:1609
+#: src/transport/gnunet-service-transport_validation.c:1610
 #, fuzzy
 msgid "# validations running"
 msgstr "Base de datos sqlite ejecutándose\n"
@@ -7749,31 +7515,31 @@ msgstr ""
 msgid "# address revalidations started"
 msgstr "# revalidaciones de direcciones iniciadas"
 
-#: src/transport/gnunet-service-transport_validation.c:1123
+#: src/transport/gnunet-service-transport_validation.c:1124
 msgid "# PING message for different peer received"
 msgstr "# Mensajes PING recibidos para un par diferente"
 
-#: src/transport/gnunet-service-transport_validation.c:1174
+#: src/transport/gnunet-service-transport_validation.c:1175
 #, fuzzy, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 "No confirmando el PING con dirección «%s» ya que no puedo confirmar tener "
 "esa dirección.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1187
+#: src/transport/gnunet-service-transport_validation.c:1188
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1190
+#: src/transport/gnunet-service-transport_validation.c:1191
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1198
+#: src/transport/gnunet-service-transport_validation.c:1199
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1211
+#: src/transport/gnunet-service-transport_validation.c:1212
 #, fuzzy, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
@@ -7782,75 +7548,36 @@ msgstr ""
 "No confirmando el PING con dirección «%s» ya que no puedo confirmar tener "
 "esa dirección.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1266
+#: src/transport/gnunet-service-transport_validation.c:1267
 #, fuzzy, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr "Se produjo un fallo al crear la página para «%s»\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1317
+#: src/transport/gnunet-service-transport_validation.c:1318
 msgid "# PONGs unicast via reliable transport"
 msgstr "# unicast de PONG vía transporte confiable"
 
-#: src/transport/gnunet-service-transport_validation.c:1326
+#: src/transport/gnunet-service-transport_validation.c:1327
 msgid "# PONGs multicast to all available addresses"
 msgstr "# multicast de PONG a todas las direcciones disponibles"
 
-#: src/transport/gnunet-service-transport_validation.c:1499
+#: src/transport/gnunet-service-transport_validation.c:1500
 msgid "# PONGs dropped, no matching pending validation"
 msgstr "# PONG omitidos, no hay una validación pendiente coincidente"
 
-#: src/transport/gnunet-service-transport_validation.c:1517
-msgid "# PONGs dropped, signature expired"
-msgstr "# Mensajes PONG omitidos, firma expirada"
-
-#: src/transport/gnunet-service-transport_validation.c:1572
-#, fuzzy
-msgid "# validations succeeded"
-msgstr "# revalidaciones de direcciones iniciadas"
-
-#: src/transport/gnunet-service-transport_validation.c:1627
-#, fuzzy
-msgid "# HELLOs given to peerinfo"
-msgstr "# «HELLO» obtenidos de «peerinfo»"
-
-#: src/transport/gnunet-transport-profiler.c:219
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:617
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:621
-#, fuzzy
-msgid "receive data from peer"
-msgstr "# respuestas recibidas de otros pares"
-
-#: src/transport/gnunet-transport-profiler.c:626
-#, fuzzy
-msgid "iterations"
-msgstr "Otras configuraciones"
-
-#: src/transport/gnunet-transport-profiler.c:631
-#, fuzzy
-msgid "number of messages to send"
-msgstr "número de mensajes a usar por iteración"
-
-#: src/transport/gnunet-transport-profiler.c:636
-#, fuzzy
-msgid "message size to use"
-msgstr "tamaño del mensaje"
+#: src/transport/gnunet-service-transport_validation.c:1518
+msgid "# PONGs dropped, signature expired"
+msgstr "# Mensajes PONG omitidos, firma expirada"
 
-#: src/transport/gnunet-transport-profiler.c:641
-#: src/transport/gnunet-transport.c:1462
-msgid "peer identity"
-msgstr "identidad del par"
+#: src/transport/gnunet-service-transport_validation.c:1573
+#, fuzzy
+msgid "# validations succeeded"
+msgstr "# revalidaciones de direcciones iniciadas"
 
-#: src/transport/gnunet-transport-profiler.c:652
-#: src/transport/gnunet-transport.c:1482
-msgid "Direct access to transport service."
-msgstr "Acceso directo al servicio de transporte."
+#: src/transport/gnunet-service-transport_validation.c:1628
+#, fuzzy
+msgid "# HELLOs given to peerinfo"
+msgstr "# «HELLO» obtenidos de «peerinfo»"
 
 #: src/transport/gnunet-transport.c:413
 #, c-format
@@ -7946,8 +7673,8 @@ msgstr ""
 msgid ""
 "No operation given. Please choose one operation: %s, %s, %s, %s, %s, %s, %s\n"
 msgstr ""
-"Ninguna operación introducida. Por favor, seleccione alguna operación: %s, %"
-"s, %s, %s, %s, %s\n"
+"Ninguna operación introducida. Por favor, seleccione alguna operación: %s, "
+"%s, %s, %s, %s, %s\n"
 
 #: src/transport/gnunet-transport.c:1294
 #, fuzzy
@@ -7996,6 +7723,11 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr "no resolver nombres de máquinas"
 
+#: src/transport/gnunet-transport.c:1462
+#: src/transport/gnunet-transport-profiler.c:641
+msgid "peer identity"
+msgstr "identidad del par"
+
 #: src/transport/gnunet-transport.c:1466
 #, fuzzy
 msgid "monitor plugin sessions"
@@ -8005,13 +7737,45 @@ 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:1482
+#: src/transport/gnunet-transport-profiler.c:652
+msgid "Direct access to transport service."
+msgstr "Acceso directo al servicio de transporte."
+
+#: src/transport/gnunet-transport-profiler.c:219
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:617
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:621
+#, fuzzy
+msgid "receive data from peer"
+msgstr "# respuestas recibidas de otros pares"
+
+#: src/transport/gnunet-transport-profiler.c:626
+#, fuzzy
+msgid "iterations"
+msgstr "Otras configuraciones"
+
+#: src/transport/gnunet-transport-profiler.c:631
+#, fuzzy
+msgid "number of messages to send"
+msgstr "número de mensajes a usar por iteración"
+
+#: src/transport/gnunet-transport-profiler.c:636
+#, fuzzy
+msgid "message size to use"
+msgstr "tamaño del mensaje"
+
 #: src/transport/plugin_transport_http_client.c:1474
 #: src/transport/plugin_transport_http_server.c:2312
 #: src/transport/plugin_transport_http_server.c:3530
-#: src/transport/plugin_transport_tcp.c:3895
-#: src/transport/plugin_transport_tcp.c:3902
-#: src/transport/plugin_transport_xt.c:3899
-#: src/transport/plugin_transport_xt.c:3906
+#: src/transport/plugin_transport_tcp.c:3901
+#: src/transport/plugin_transport_tcp.c:3908
 msgid "TCP_STEALTH not supported on this platform.\n"
 msgstr ""
 
@@ -8091,7 +7855,6 @@ msgstr "Encontradas %u direcciones para comunicar al 
servicio NAT\n"
 
 #: src/transport/plugin_transport_http_server.c:2905
 #: src/transport/plugin_transport_udp.c:3627
-#: src/transport/plugin_transport_xu.c:2049
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr "¡Deshabilitando IPv6 ya que no está soportado en este sistema!\n"
 
@@ -8197,127 +7960,118 @@ msgstr "# bytes enviados vía SMTP"
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# bytes omitidos por SMTP (salientes)"
 
-#: src/transport/plugin_transport_tcp.c:1551
-#: src/transport/plugin_transport_tcp.c:2877
-#: src/transport/plugin_transport_xt.c:1553
-#: src/transport/plugin_transport_xt.c:2879
+#: src/transport/plugin_transport_tcp.c:1557
+#: src/transport/plugin_transport_tcp.c:2883
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr "Longitud de dirección inesperada: %u bytes\n"
 
-#: src/transport/plugin_transport_tcp.c:1734
-#: src/transport/plugin_transport_tcp.c:1958
-#: src/transport/plugin_transport_tcp.c:3141
-#: src/transport/plugin_transport_tcp.c:4018
-#: src/transport/plugin_transport_xt.c:1736
-#: src/transport/plugin_transport_xt.c:1960
-#: src/transport/plugin_transport_xt.c:3143
+#: src/transport/plugin_transport_tcp.c:1740
+#: src/transport/plugin_transport_tcp.c:1964
+#: src/transport/plugin_transport_tcp.c:3147
+#: src/transport/plugin_transport_tcp.c:4024
 msgid "# TCP sessions active"
 msgstr "# Sesiones TCP activas"
 
-#: src/transport/plugin_transport_tcp.c:1776
-#: src/transport/plugin_transport_tcp.c:1940
-#: src/transport/plugin_transport_tcp.c:2064
-#: src/transport/plugin_transport_tcp.c:2137
-#: src/transport/plugin_transport_tcp.c:2237
-#: src/transport/plugin_transport_tcp.c:2262
-#: src/transport/plugin_transport_xt.c:1778
-#: src/transport/plugin_transport_xt.c:1942
-#: src/transport/plugin_transport_xt.c:2066
-#: src/transport/plugin_transport_xt.c:2139
-#: src/transport/plugin_transport_xt.c:2239
-#: src/transport/plugin_transport_xt.c:2264
+#: src/transport/plugin_transport_tcp.c:1782
+#: src/transport/plugin_transport_tcp.c:1946
+#: src/transport/plugin_transport_tcp.c:2070
+#: src/transport/plugin_transport_tcp.c:2143
+#: src/transport/plugin_transport_tcp.c:2243
+#: src/transport/plugin_transport_tcp.c:2268
 msgid "# bytes currently in TCP buffers"
 msgstr "# bytes actualmente en los buffer TCP"
 
-#: src/transport/plugin_transport_tcp.c:1779
-#: src/transport/plugin_transport_xt.c:1781
+#: src/transport/plugin_transport_tcp.c:1785
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# bytes descartados por TCP (desconectado)"
 
-#: src/transport/plugin_transport_tcp.c:2067
-#: src/transport/plugin_transport_xt.c:2069
+#: src/transport/plugin_transport_tcp.c:2073
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# bytes omitidos por TCP (expirados)"
 
-#: src/transport/plugin_transport_tcp.c:2141
-#: src/transport/plugin_transport_xt.c:2143
+#: src/transport/plugin_transport_tcp.c:2147
 msgid "# bytes transmitted via TCP"
 msgstr "# bytes recibidos vía TCP"
 
-#: src/transport/plugin_transport_tcp.c:2539
-#: src/transport/plugin_transport_xt.c:2541
+#: src/transport/plugin_transport_tcp.c:2545
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
-#: src/transport/plugin_transport_xt.c:2717
+#: src/transport/plugin_transport_tcp.c:2721
 msgid "# transport-service disconnect requests for TCP"
 msgstr "# peticiones de desconexión del servicio de transporte por TCP"
 
-#: src/transport/plugin_transport_tcp.c:3207
-#: src/transport/plugin_transport_xt.c:3209
+#: src/transport/plugin_transport_tcp.c:3213
 msgid "# TCP WELCOME messages received"
 msgstr "# Mensajes «WELCOME» TCP recibidos"
 
-#: src/transport/plugin_transport_tcp.c:3413
-#: src/transport/plugin_transport_xt.c:3415
+#: src/transport/plugin_transport_tcp.c:3419
 msgid "# bytes received via TCP"
 msgstr "# bytes recibidos vía TCP"
 
-#: src/transport/plugin_transport_tcp.c:3464
-#: src/transport/plugin_transport_tcp.c:3522
-#: src/transport/plugin_transport_xt.c:3466
-#: src/transport/plugin_transport_xt.c:3524
+#: src/transport/plugin_transport_tcp.c:3470
+#: src/transport/plugin_transport_tcp.c:3528
 #, fuzzy
 msgid "# TCP server connections active"
 msgstr "# conexiones «stream» activas"
 
-#: src/transport/plugin_transport_tcp.c:3468
-#: src/transport/plugin_transport_xt.c:3470
+#: src/transport/plugin_transport_tcp.c:3474
 #, fuzzy
 msgid "# TCP server connect events"
 msgstr "# Pares conectados"
 
-#: src/transport/plugin_transport_tcp.c:3474
-#: src/transport/plugin_transport_xt.c:3476
+#: src/transport/plugin_transport_tcp.c:3480
 msgid "TCP connection limit reached, suspending server\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3476
-#: src/transport/plugin_transport_xt.c:3478
+#: src/transport/plugin_transport_tcp.c:3482
 msgid "# TCP service suspended"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3516
-#: src/transport/plugin_transport_xt.c:3518
+#: src/transport/plugin_transport_tcp.c:3522
 msgid "# TCP service resumed"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3526
-#: src/transport/plugin_transport_xt.c:3528
+#: src/transport/plugin_transport_tcp.c:3532
 msgid "# network-level TCP disconnect events"
 msgstr "# eventos de desconexión TCP a nivel de red"
 
-#: src/transport/plugin_transport_tcp.c:3845
-#: src/transport/plugin_transport_xt.c:3849
+#: src/transport/plugin_transport_tcp.c:3851
 msgid "Failed to start service.\n"
 msgstr "Se produjo un fallo al iniciar el servicio.\n"
 
-#: src/transport/plugin_transport_tcp.c:4006
+#: src/transport/plugin_transport_tcp.c:4012
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr "Transporte TCP escuchando en el puerto %llu\n"
 
-#: src/transport/plugin_transport_tcp.c:4010
+#: src/transport/plugin_transport_tcp.c:4016
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr "Transporte TCP no escuchando en ningún puerto (únicamente cliente)\n"
 
-#: src/transport/plugin_transport_tcp.c:4014
+#: src/transport/plugin_transport_tcp.c:4020
 #, c-format
 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:168
+#, fuzzy
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr "# beacons HELLO multicast IPv6 recibidos vía UDP"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:548
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:565
+#, 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:3371
 #, c-format
 msgid ""
@@ -8344,7 +8098,6 @@ msgid "Failed to bind UDP socket to %s: %s\n"
 msgstr "Se produjo un fallo al abrir los «sockets» UDP\n"
 
 #: src/transport/plugin_transport_udp.c:3721
-#: src/transport/plugin_transport_xu.c:2143
 #, fuzzy
 msgid "Disabling IPv4 since it is not supported on this system!\n"
 msgstr "¡Deshabilitando IPv6 ya que no está soportado en este sistema!\n"
@@ -8355,19 +8108,15 @@ msgstr "Se produjo un fallo al abrir los «sockets» 
UDP\n"
 
 #: src/transport/plugin_transport_udp.c:3883
 #: src/transport/plugin_transport_udp.c:3897
-#: src/transport/plugin_transport_xu.c:2301
-#: src/transport/plugin_transport_xu.c:2315
 msgid "must be in [0,65535]"
 msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3929
-#: src/transport/plugin_transport_xu.c:2347
 #, fuzzy
 msgid "must be valid IPv4 address"
 msgstr "«%s» no es una dirección IP válida.\n"
 
 #: src/transport/plugin_transport_udp.c:3956
-#: src/transport/plugin_transport_xu.c:2374
 #, fuzzy
 msgid "must be valid IPv6 address"
 msgstr "«%s» no es una dirección IP válida.\n"
@@ -8377,23 +8126,6 @@ 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:168
-#, fuzzy
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr "# beacons HELLO multicast IPv6 recibidos vía UDP"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:548
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:565
-#, 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:1416
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -8474,61 +8206,6 @@ msgstr ""
 msgid "# sessions allocated"
 msgstr "# sesiones WLAN alojadas"
 
-#: src/transport/plugin_transport_xt.c:4010
-#, fuzzy, c-format
-msgid "XT transport listening on port %llu\n"
-msgstr "Transporte TCP escuchando en el puerto %llu\n"
-
-#: src/transport/plugin_transport_xt.c:4014
-#, fuzzy
-msgid "XT transport not listening on any port (client only)\n"
-msgstr "Transporte TCP no escuchando en ningún puerto (únicamente cliente)\n"
-
-#: src/transport/plugin_transport_xt.c:4018
-#, fuzzy, c-format
-msgid "XT 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_xt.c:4022
-#, fuzzy
-msgid "# XT sessions active"
-msgstr "# Sesiones TCP activas"
-
-#: src/transport/plugin_transport_xu.c:1237
-#, fuzzy, c-format
-msgid ""
-"XU could not transmit message to `%s': Network seems down, please check your "
-"network configuration\n"
-msgstr ""
-"UDP no pudo transmitir el mensaje a «%s»: La red parece caída, por favor, "
-"compruebe su configuración de red\n"
-
-#: src/transport/plugin_transport_xu.c:1251
-#, fuzzy
-msgid ""
-"XU 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 ""
-"UDP no pudo transmitir el mensaje a «%s». Por favor, compruebe su "
-"configuración de red y deshabilite IPv6 si su conexión carece de una "
-"dirección IPv6 global\n"
-
-#: src/transport/plugin_transport_xu.c:2125
-#: src/transport/plugin_transport_xu.c:2224
-#, fuzzy, c-format
-msgid "Failed to bind XU socket to %s: %s\n"
-msgstr "Se produjo un fallo al abrir los «sockets» UDP\n"
-
-#: src/transport/plugin_transport_xu.c:2234
-#, fuzzy
-msgid "Failed to open XU sockets\n"
-msgstr "Se produjo un fallo al abrir los «sockets» UDP\n"
-
-#: src/transport/plugin_transport_xu.c:2398
-#, fuzzy
-msgid "Failed to create XU network sockets\n"
-msgstr "Se produjo un fallo al crear una nueva firma"
-
 #: src/transport/tcp_connection_legacy.c:452
 #, c-format
 msgid "Access denied to `%s'\n"
@@ -8539,17 +8216,17 @@ msgstr "Acceso denegado a «%s»\n"
 msgid "Accepting connection from `%s': %p\n"
 msgstr "Aceptando conexión desde «%s»: %p\n"
 
-#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1111
+#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1624
 #, c-format
 msgid "`%s' failed for port %d (%s).\n"
 msgstr "«%s» falló para el puerto %d (%s).\n"
 
-#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1121
+#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1634
 #, c-format
 msgid "`%s' failed for port %d (%s): address already in use\n"
 msgstr "«%s» falló para el puerto %d (%s): dirección en uso actualmente\n"
 
-#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1127
+#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1640
 #, fuzzy, c-format
 msgid "`%s' failed for `%s': address already in use\n"
 msgstr "«%s» falló para «%.*s»: dirección en uso actualmente\n"
@@ -8563,7 +8240,7 @@ msgstr ""
 "El código de procesado para el mensaje del tipo %u no llamó a "
 "«GNUNET_SERVER_receive_done» después de %s\n"
 
-#: src/transport/tcp_service_legacy.c:339 src/util/service.c:2396
+#: src/transport/tcp_service_legacy.c:339 src/util/service.c:864
 #, c-format
 msgid "Unknown address family %d\n"
 msgstr "Familia de direcciones %d desconocida\n"
@@ -8573,29 +8250,29 @@ msgstr "Familia de direcciones %d desconocida\n"
 msgid "Access from `%s' denied to service `%s'\n"
 msgstr "Acceso denegado desde «%s» al servicio «%s»\n"
 
-#: src/transport/tcp_service_legacy.c:402 src/util/service.c:439
+#: src/transport/tcp_service_legacy.c:402 src/util/service.c:988
 #, c-format
 msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n"
 msgstr "No se pudo procesar la especificación de red IPv4 «%s» para «%s:%s»\n"
 
-#: src/transport/tcp_service_legacy.c:440 src/util/service.c:482
+#: src/transport/tcp_service_legacy.c:440 src/util/service.c:1031
 #, c-format
 msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n"
 msgstr "No se pudo procesar la especificación de red IPv6 «%s» para «%s:%s»\n"
 
-#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1042
+#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1555
 msgid "Could not access a pre-bound socket, will try to bind myself\n"
 msgstr ""
 "No se pudo acceder a un «socket» pre-ascociado, lo intentaré asociar yo "
 "mismo\n"
 
 #: src/transport/tcp_service_legacy.c:953
-#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1195
+#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1708
 #, c-format
 msgid "Specified value for `%s' of service `%s' is invalid\n"
 msgstr "El valor especificado «%s» para el servicio «%s» no es válido\n"
 
-#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1228
+#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1741
 #, c-format
 msgid "Could not access pre-bound socket %u, will try to bind myself\n"
 msgstr ""
@@ -8612,45 +8289,45 @@ msgstr "Se produjo un fallo al inciar «%s» en «%s»\n"
 msgid "Service `%s' runs at %s\n"
 msgstr "El servicio «%s» se ejecuta en %s\n"
 
-#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:1502
+#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:2015
 msgid "Service process failed to initialize\n"
 msgstr "No se pudo inicializar el proceso del servicio\n"
 
-#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1506
+#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:2019
 msgid "Service process could not initialize server function\n"
 msgstr ""
 "No se pudo inicializar la función del servidor en el proceso del servicio\n"
 
-#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:1510
+#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:2023
 msgid "Service process failed to report status\n"
 msgstr "El proceso del servicio no devolvió un estado\n"
 
-#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1525
-#: src/util/service.c:1380
+#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1535
+#: src/util/service.c:1893
 #, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "No se pudo obtener información acerca del usuario «%s»: %s\n"
 
-#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1382
+#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1895
 msgid "No such user"
 msgstr "No existe tal usuario"
 
-#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1401
+#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1914
 #, c-format
 msgid "Cannot change user/group to `%s': %s\n"
 msgstr "Imposible cambiar el usuario/grupo a «%s»: %s\n"
 
-#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:1762
+#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:2276
 msgid "do daemonize (detach from terminal)"
 msgstr "demonizar (desasociar del terminal)"
 
-#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:1826
-#: src/util/service.c:1841
+#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:2340
+#: src/util/service.c:2355
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
 msgstr "Se produjo un fallo al borrar el fichero de configuración %s\n"
 
-#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:1853
+#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:2367
 #, fuzzy
 msgid "Malformed configuration, exit ...\n"
 msgstr "Se produjo un fallo al borrar el fichero de configuración %s\n"
@@ -8693,11 +8370,11 @@ msgstr "Los metadatos serializados «%s» son mayores de 
lo permitido (%u>%u)"
 msgid "Metadata `%s' failed to deserialize"
 msgstr "Se produjo un fallo al deserializar los metadatos «%s»"
 
-#: src/util/client.c:734
+#: src/util/client.c:749
 msgid "not a valid filename"
 msgstr ""
 
-#: src/util/client.c:925
+#: src/util/client.c:941
 #, c-format
 msgid "Need a non-empty hostname for service `%s'.\n"
 msgstr "Se necesita un nombre de máquina no vacío para el servicio «%s».\n"
@@ -8744,16 +8421,16 @@ msgstr "NO VÁLIDO"
 msgid "unknown address"
 msgstr "dirección desconocida"
 
-#: src/util/common_logging.c:1500
+#: src/util/common_logging.c:1513
 msgid "invalid address"
 msgstr "dirección no válida"
 
-#: src/util/common_logging.c:1518
+#: src/util/common_logging.c:1531
 #, c-format
 msgid "Configuration fails to specify option `%s' in section `%s'!\n"
 msgstr "¡La configuración no especifica la opción «%s» en la sección «%s»!\n"
 
-#: src/util/common_logging.c:1539
+#: src/util/common_logging.c:1552
 #, c-format
 msgid ""
 "Configuration specifies invalid value for option `%s' in section `%s': %s\n"
@@ -8805,28 +8482,28 @@ msgstr ""
 #: src/util/container_bloomfilter.c:532
 #, c-format
 msgid ""
-"Size of file on disk is incorrect for this Bloom filter (want %llu, have %"
-"llu)\n"
+"Size of file on disk is incorrect for this Bloom filter (want %llu, have "
+"%llu)\n"
 msgstr ""
 "El tamaño del fichero en disco es incorrecto para este «Bloom "
 "filter» (esperado %llu, tiene %llu)\n"
 
-#: src/util/crypto_ecc.c:862
+#: src/util/crypto_ecc.c:887
 #, c-format
 msgid "ECC signing failed at %s:%d: %s\n"
 msgstr "El firmado ECC falló en %s:%d: %s\n"
 
-#: src/util/crypto_ecc.c:917
+#: src/util/crypto_ecc.c:946
 #, fuzzy, c-format
 msgid "EdDSA signing failed at %s:%d: %s\n"
 msgstr "El firmado ECC falló en %s:%d: %s\n"
 
-#: src/util/crypto_ecc.c:996
+#: src/util/crypto_ecc.c:1025
 #, fuzzy, c-format
 msgid "ECDSA signature verification failed at %s:%d: %s\n"
 msgstr "La verificación de la firma RSA fallo en %s:%d: %s\n"
 
-#: src/util/crypto_ecc.c:1057
+#: src/util/crypto_ecc.c:1086
 #, fuzzy, c-format
 msgid "EdDSA signature verification failed at %s:%d: %s\n"
 msgstr "La verificación de la firma RSA fallo en %s:%d: %s\n"
@@ -8881,19 +8558,19 @@ msgstr "El firmado ECC falló en %s:%d: %s\n"
 msgid "RSA signature verification failed at %s:%d: %s\n"
 msgstr "La verificación de la firma RSA fallo en %s:%d: %s\n"
 
-#: src/util/disk.c:1255
+#: src/util/disk.c:1265
 #, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "¡Se esperaba que «%s» fuera un directorio!\n"
 
-#: src/util/dnsparser.c:260
+#: src/util/dnsparser.c:264
 #, 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/util/dnsparser.c:950
+#: src/util/dnsparser.c:954
 #, c-format
 msgid "Failed to convert UTF-8 name `%s' to DNS IDNA format: %s\n"
 msgstr ""
@@ -9001,7 +8678,7 @@ msgstr ""
 msgid "print this help"
 msgstr "imprime esta ayuda"
 
-#: src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:282 src/util/gnunet-qr.c:300
 msgid "be verbose"
 msgstr ""
 
@@ -9049,54 +8726,54 @@ msgstr "Tienes que introducir un número en la opción 
«%s».\n"
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:160
+#: src/util/gnunet-config.c:161
 #, fuzzy, c-format
 msgid "failed to load configuration defaults"
 msgstr "Se produjo un fallo al cargar la configuración de %s\n"
 
-#: src/util/gnunet-config.c:173
+#: src/util/gnunet-config.c:174
 #, fuzzy, c-format
 msgid "%s or %s argument is required\n"
 msgstr "el parámetro --section es necesario\n"
 
-#: src/util/gnunet-config.c:181
+#: src/util/gnunet-config.c:182
 #, c-format
 msgid "The following sections are available:\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:232
+#: src/util/gnunet-config.c:234
 #, c-format
 msgid "--option argument required to set value\n"
 msgstr "el parámetro --option es necesario para establecer un valor\n"
 
-#: src/util/gnunet-config.c:286
+#: src/util/gnunet-config.c:288
 #, fuzzy
-msgid "obtain option of value as a filename (with $-expansion)"
+msgid "interpret option value as a filename (with $-expansion)"
 msgstr ""
 "obtener la opción del valor como un nombre de fichero (con expansión del $)"
 
-#: src/util/gnunet-config.c:291
+#: src/util/gnunet-config.c:293
 msgid "name of the section to access"
 msgstr "nombre de la sección a la que acceder"
 
-#: src/util/gnunet-config.c:296
+#: src/util/gnunet-config.c:298
 msgid "name of the option to access"
 msgstr "nombre de la opción a la que acceder"
 
-#: src/util/gnunet-config.c:301
+#: src/util/gnunet-config.c:303
 msgid "value to set"
 msgstr "valor a establecer"
 
-#: src/util/gnunet-config.c:305
+#: src/util/gnunet-config.c:307
 #, fuzzy
 msgid "print available configuration sections"
 msgstr "Falta configuración sobre las opciones de claves.\n"
 
-#: src/util/gnunet-config.c:309
+#: src/util/gnunet-config.c:311
 msgid "write configuration file that only contains delta to defaults"
 msgstr ""
 
-#: src/util/gnunet-config.c:322
+#: src/util/gnunet-config.c:324
 msgid "Manipulate GNUnet configuration files"
 msgstr "Manipular ficheros de configuración de GNUnet"
 
@@ -9191,6 +8868,33 @@ msgstr ""
 msgid "Manipulate GNUnet private ECC key files"
 msgstr "Manipular los ficheros de clave privada ECC de GNUnet"
 
+#: src/util/gnunet-qr.c:108 src/util/gnunet-uri.c:91
+#, c-format
+msgid "Invalid URI: does not start with `%s'\n"
+msgstr "URI no válida: no comienza con «%s»\n"
+
+#: src/util/gnunet-qr.c:116 src/util/gnunet-uri.c:98
+#, c-format
+msgid "Invalid URI: fails to specify subsystem\n"
+msgstr "URI no válida: falla al especificar el subsistema\n"
+
+#: src/util/gnunet-qr.c:127 src/util/gnunet-uri.c:108
+#, c-format
+msgid "No handler known for subsystem `%s'\n"
+msgstr "No hay un manejador conocido para el subsistema «%s»\n"
+
+#: src/util/gnunet-qr.c:297
+msgid "use video-device DEVICE (default: /dev/video0"
+msgstr ""
+
+#: src/util/gnunet-qr.c:303
+msgid "do not show preview windows"
+msgstr ""
+
+#: src/util/gnunet-qr.c:311
+msgid "Scan a QR code using a video device and import the uri read"
+msgstr ""
+
 #: src/util/gnunet-resolver.c:168
 msgid "perform a reverse lookup"
 msgstr "realizar una búsqueda inversa"
@@ -9225,7 +8929,7 @@ msgstr ""
 msgid "Manipulate GNUnet proof of work files"
 msgstr "Manipular los ficheros de clave privada ECC de GNUnet"
 
-#: src/util/gnunet-service-resolver.c:1443
+#: src/util/gnunet-service-resolver.c:1424
 msgid "No DNS server available. DNS resolution will not be possible.\n"
 msgstr ""
 
@@ -9234,21 +8938,6 @@ msgstr ""
 msgid "No URI specified on command line\n"
 msgstr "No se ha especificado una URI en la línea de comandos. Saliendo.\n"
 
-#: src/util/gnunet-uri.c:91
-#, c-format
-msgid "Invalid URI: does not start with `%s'\n"
-msgstr "URI no válida: no comienza con «%s»\n"
-
-#: src/util/gnunet-uri.c:98
-#, c-format
-msgid "Invalid URI: fails to specify subsystem\n"
-msgstr "URI no válida: falla al especificar el subsistema\n"
-
-#: src/util/gnunet-uri.c:108
-#, c-format
-msgid "No handler known for subsystem `%s'\n"
-msgstr "No hay un manejador conocido para el subsistema «%s»\n"
-
 #: src/util/gnunet-uri.c:170
 msgid "Perform default-actions for GNUnet URIs"
 msgstr "Realizar las acciones predeterminadas para URI de GNUnet"
@@ -9262,20 +8951,20 @@ msgstr "Error leyendo de «%s»: %s\n"
 #, c-format
 msgid "Failed to parse inbound message from helper `%s'\n"
 msgstr ""
-"Se produjo un fallo al procesar el mensaje interno del programa auxiliar «%"
-"s»\n"
+"Se produjo un fallo al procesar el mensaje interno del programa auxiliar "
+"«%s»\n"
 
 #: src/util/helper.c:606
 #, c-format
 msgid "Error writing to `%s': %s\n"
 msgstr "Error escribiendo a «%s»: %s\n"
 
-#: src/util/network.c:136
+#: src/util/network.c:176
 #, c-format
 msgid "Unable to shorten unix path `%s' while keeping name unique\n"
 msgstr "Imposible acortar la ruta unix «%s» manteniendo el nombre único\n"
 
-#: src/util/network.c:1795 src/util/network.c:1979
+#: src/util/network.c:1835 src/util/network.c:2019
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -9391,12 +9080,7 @@ msgid "Could not resolve our FQDN: %s\n"
 msgstr ""
 "No se pudo resolver nuestro nombre de dominio cualificado (FQDN) : %s\n"
 
-#: src/util/service.c:1307
-msgid ""
-"Could not bind to any of the ports I was supposed to, refusing to run!\n"
-msgstr ""
-
-#: src/util/service.c:2141
+#: src/util/service.c:668
 #, fuzzy, c-format
 msgid ""
 "Processing code for message of type %u did not call "
@@ -9405,6 +9089,11 @@ msgstr ""
 "El código de procesado para el mensaje del tipo %u no llamó a "
 "«GNUNET_SERVER_receive_done» después de %s\n"
 
+#: src/util/service.c:1820
+msgid ""
+"Could not bind to any of the ports I was supposed to, refusing to run!\n"
+msgstr ""
+
 #: src/util/signal.c:89
 #, c-format
 msgid "signal (%d, %p) returned %d.\n"
@@ -9540,14 +9229,14 @@ msgstr "Formato «%s» erroneo para máscara de red\n"
 msgid "Wrong format `%s' for network\n"
 msgstr "Formato «%s» erroneo para red\n"
 
-#: src/util/time.c:828 src/util/time.c:860
+#: src/util/time.c:844 src/util/time.c:876
 #, fuzzy, c-format
 msgid "Failed to map `%s', cannot assure monotonic time!\n"
 msgstr ""
 "Se produjo un fallo al recuperar el espacio de nombres «%s», no se pudo "
 "retomar la operación de publicación.\n"
 
-#: src/util/time.c:866
+#: src/util/time.c:882
 #, c-format
 msgid ""
 "Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
@@ -9729,76 +9418,98 @@ 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-monitor.c:416
 #: src/zonemaster/gnunet-service-zonemaster.c:838
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 msgid "Failed to connect to the namestore!\n"
 msgstr "¡Se produjo un fallo al conectar con el almacén de nombres!\n"
 
-#: src/include/gnunet_common.h:772 src/include/gnunet_common.h:779
-#: src/include/gnunet_common.h:789
+#: src/include/gnunet_common.h:794 src/include/gnunet_common.h:801
+#: src/include/gnunet_common.h:811
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d. Aborting.\n"
 msgstr "Aserción fallida en %s:%d.\n"
 
-#: src/include/gnunet_common.h:797
+#: src/include/gnunet_common.h:819
 #, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr "Aserción fallida en %s:%d.\n"
 
-#: src/include/gnunet_common.h:809
+#: src/include/gnunet_common.h:831
 #, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr "Violación externa del protocolo detectada en %s:%d.\n"
 
-#: src/include/gnunet_common.h:836 src/include/gnunet_common.h:845
+#: src/include/gnunet_common.h:858 src/include/gnunet_common.h:867
 #, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr "«%s» falló en el fichero «%s» en %s:%d con el error: %s\n"
 
 #, fuzzy
-#~ msgid "`%s' is not SUID or the path is invalid, EXIT will not work\n"
-#~ msgstr "«%s» debe ser instalado con SUID, se niega a arrancar\n"
+#~ msgid "Failed to connect to CREDENTIAL\n"
+#~ msgstr "Se produjo un fallo al conectar con GNS\n"
 
 #, fuzzy
-#~ msgid "Can not index file `%s': %s.\n"
-#~ msgstr "Imposible abrir el fichero de configuración '%s'.\n"
+#~ msgid "GNUnet credential resolver tool"
+#~ msgstr "Herramienta de acceso GNUnet GNS"
+
+#, fuzzy
+#~ msgid "Unable to parse CRED record string `%s'\n"
+#~ msgstr "No se pudo procesar la cadena de registro VPN «%s»\n"
+
+#, fuzzy
+#~ msgid "Issuer ego required\n"
+#~ msgstr "Tipo requerido\n"
+
+#, fuzzy
+#~ msgid "XT transport listening on port %llu\n"
+#~ msgstr "Transporte TCP escuchando en el puerto %llu\n"
 
 #, fuzzy
-#~ msgid "enable adding the creation time to the metadata of the uploaded file"
+#~ msgid "XT transport not listening on any port (client only)\n"
 #~ msgstr ""
-#~ "deshabilitar añadir tiempo de creación a los metadatos del fichero subido"
+#~ "Transporte TCP no escuchando en ningún puerto (únicamente cliente)\n"
 
 #, fuzzy
-#~ msgid "`%s' is not a valid domain name\n"
-#~ msgstr "«%s» no es una dirección IP válida.\n"
+#~ msgid "XT transport advertises itself as being on port %llu\n"
+#~ msgstr "El transporte TCP anuncia que está en el puerto %llu\n"
 
 #, fuzzy
-#~ msgid "Specify a timeout for the lookup"
-#~ msgstr "Especificar el tipo del registro a buscar"
+#~ msgid "# XT sessions active"
+#~ msgstr "# Sesiones TCP activas"
 
 #, fuzzy
-#~ msgid "Unable to parse CAA record string `%s'\n"
-#~ msgstr "No se pudo procesar la cadena de registro VPN «%s»\n"
+#~ msgid ""
+#~ "XU could not transmit message to `%s': Network seems down, please check "
+#~ "your network configuration\n"
+#~ msgstr ""
+#~ "UDP no pudo transmitir el mensaje a «%s»: La red parece caída, por favor, "
+#~ "compruebe su configuración de red\n"
 
 #, fuzzy
-#~ msgid "reduce output"
-#~ msgstr "Sin salida innecesaria"
+#~ msgid ""
+#~ "XU 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 ""
+#~ "UDP no pudo transmitir el mensaje a «%s». Por favor, compruebe su "
+#~ "configuración de red y deshabilite IPv6 si su conexión carece de una "
+#~ "dirección IPv6 global\n"
 
 #, fuzzy
-#~ msgid "The EGO to use"
-#~ msgstr "tamaño del mensaje"
+#~ msgid "Failed to bind XU socket to %s: %s\n"
+#~ msgstr "Se produjo un fallo al abrir los «sockets» UDP\n"
 
 #, fuzzy
-#~ msgid "OpenID Connect REST API initialized\n"
-#~ msgstr "Conexión fallida\n"
+#~ msgid "Failed to open XU sockets\n"
+#~ msgstr "Se produjo un fallo al abrir los «sockets» UDP\n"
 
 #, fuzzy
-#~ msgid "CONFIG REST API initialized\n"
-#~ msgstr "Conexión fallida\n"
+#~ msgid "Failed to create XU network sockets\n"
+#~ msgstr "Se produjo un fallo al crear una nueva firma"
 
 #, fuzzy
-#~ msgid "Option `%s' can't be used with other options.\n"
-#~ msgstr "La opción «%s» no tiene sentido sin la opción «%s».\n"
+#~ msgid "Print information about DV state"
+#~ msgstr "Imprime información acerca del estado del ATS"
 
 #, fuzzy
 #~ msgid "Invalid tunnel owner `%s'\n"
@@ -9808,6 +9519,107 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #~ msgid "Provide information about a particular tunnel"
 #~ msgstr "proveer información acerca de un túnel en particular"
 
+#, fuzzy
+#~ msgid "Failed to store membership information!\n"
+#~ msgstr ""
+#~ "Se produjo un fallo al retomar la operación de publicación «%s»: %s\n"
+
+#, fuzzy
+#~ msgid "Failed to test membership!\n"
+#~ msgstr "¡Se produjo un fallo al configurar el túnel mesh!\n"
+
+#, fuzzy
+#~ msgid "Dropping invalid fragment\n"
+#~ msgstr "Parámetro no válido «%s»\n"
+
+#, fuzzy
+#~ msgid "Failed to store fragment\n"
+#~ msgstr "Se produjo un fallo al iniciar el demonio: %s\n"
+
+#, fuzzy
+#~ msgid "Failed to get fragment!\n"
+#~ msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
+
+#, fuzzy
+#~ msgid "Failed to get message!\n"
+#~ msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
+
+#, fuzzy
+#~ msgid "Failed to get message fragment!\n"
+#~ msgstr "Se produjo un fallo al procesar un mensaje «HELLO»: mal formado\n"
+
+#, fuzzy
+#~ msgid "Failed to get master counters!\n"
+#~ msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
+
+#, fuzzy
+#~ msgid "Failed to begin modifying state: %d\n"
+#~ msgstr "Se produjo un fallo al cargar el estado: %s\n"
+
+#, fuzzy
+#~ msgid "Failed to modify state: %d\n"
+#~ msgstr "Se produjo un fallo al cargar el estado: %s\n"
+
+#, fuzzy
+#~ msgid "Failed to end modifying state!\n"
+#~ msgstr "Se produjo un fallo al cargar el estado: %s\n"
+
+#, fuzzy
+#~ msgid "Failed to begin synchronizing state!\n"
+#~ msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
+
+#, fuzzy
+#~ msgid "Failed to end synchronizing state!\n"
+#~ msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
+
+#, fuzzy
+#~ msgid "Failed to reset state!\n"
+#~ msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
+
+#, fuzzy
+#~ msgid "Failed to get state variable!\n"
+#~ msgstr "¡Se produjo un fallo al obtener la clave de máquina!\n"
+
+#, fuzzy
+#~ msgid "Unable to initialize Mysql.\n"
+#~ msgstr "Imposible inicializar SQLite: %s.\n"
+
+#, fuzzy
+#~ msgid "Failed to run SQL statement `%s'\n"
+#~ msgstr "Se produjo un fallo al preparar la sentencia «%s»\n"
+
+#, fuzzy
+#~ msgid "`%s' failed at %s:%d with error: %s (%d)\n"
+#~ msgstr "«%s» falló en %s: %d con el error: %s\n"
+
+#, fuzzy
+#~ msgid "SQLite database running\n"
+#~ msgstr "Base de datos sqlite ejecutándose\n"
+
+#, fuzzy
+#~ msgid "--place missing or invalid.\n"
+#~ msgstr "Parámetro no válido «%s»\n"
+
+#, fuzzy
+#~ msgid "name or public key of ego"
+#~ msgstr "Parámetro no válido «%s»\n"
+
+#, fuzzy
+#~ msgid "wait for incoming messages"
+#~ msgstr "Falló al entregar el mensaje '%s'.\n"
+
+#, fuzzy
+#~ msgid "GNS name"
+#~ msgstr "Mostrar el _nombre"
+
+#, fuzzy
+#~ msgid "method name"
+#~ msgstr "Mostrar el _nombre"
+
+#, fuzzy
+#~ msgid "number of messages to replay from history"
+#~ msgstr "número de mensajes a usar por iteración"
+
 #~ msgid "Could not resolve `%s' (%s): %s\n"
 #~ msgstr "No se pudo resolver «%s» (%s): %s\n"
 
@@ -9932,8 +9744,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #, fuzzy
 #~ msgid "Failed to run upnp client for port %u\n"
 #~ msgstr ""
-#~ "Se produjo un fallo al inicializar la clave de la máquina desde el par %"
-#~ "u\n"
+#~ "Se produjo un fallo al inicializar la clave de la máquina desde el par "
+#~ "%u\n"
 
 #~ msgid "malformed"
 #~ msgstr "mal formado"
@@ -10566,6 +10378,9 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #~ msgid "Template datacache running\n"
 #~ msgstr "Caché de datos de plantilla en ejecución\n"
 
+#~ msgid "`%s' must be installed SUID, refusing to run\n"
+#~ msgstr "«%s» debe ser instalado con SUID, se niega a arrancar\n"
+
 # Miguel: "Outbound" lo he traducido como salida en todo el texto.
 #~ msgid "Outbound quota configure for network `%s' is %llu\n"
 #~ msgstr "La cuota de salida configurada para la red «%s» es %llu\n"
@@ -11008,8 +10823,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #~ msgstr "Imprimir información acerca de tuneles mesh y pares."
 
 #~ msgid ""
-#~ "%s service is lacking key configuration settings (%s). Using default (%"
-#~ "u).\n"
+#~ "%s service is lacking key configuration settings (%s). Using default "
+#~ "(%u).\n"
 #~ msgstr ""
 #~ "El servicio %s carece de opciones de configuración de clave (%s). Usando "
 #~ "predeterminada (%u).\n"
@@ -11085,15 +10900,15 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #~ msgid ""
 #~ "Syntax error in topology specification at offset %llu, skipping bytes.\n"
 #~ msgstr ""
-#~ "Error de sintaxis en la especificación de topología en el desplazamiento %"
-#~ "llu, omitiendo bytes.\n"
+#~ "Error de sintaxis en la especificación de topología en el desplazamiento "
+#~ "%llu, omitiendo bytes.\n"
 
 #~ msgid ""
-#~ "Syntax error in topology specification at offset %llu, skipping bytes `%"
-#~ "s'.\n"
+#~ "Syntax error in topology specification at offset %llu, skipping bytes `"
+#~ "%s'.\n"
 #~ msgstr ""
-#~ "Error de sintaxis en la especificación de topología en el desplazamiento %"
-#~ "llu, omitiendo bytes «%s».\n"
+#~ "Error de sintaxis en la especificación de topología en el desplazamiento "
+#~ "%llu, omitiendo bytes «%s».\n"
 
 #~ msgid "ECC signature verification failed at %s:%d: %s\n"
 #~ msgstr "La verificación de firma ECC falló en %s:%d: %s\n"
@@ -11333,8 +11148,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #~ "File `%s' does not contain a valid private key (too long, %llu bytes).  "
 #~ "Deleting it.\n"
 #~ msgstr ""
-#~ "El fichero «%s» no contiene una clave privada válida (demasiado grande, %"
-#~ "llu bytes).  Borrándolo.\n"
+#~ "El fichero «%s» no contiene una clave privada válida (demasiado grande, "
+#~ "%llu bytes).  Borrándolo.\n"
 
 #~ msgid ""
 #~ "File `%s' does not contain a valid private key (failed decode, %llu "
@@ -11357,8 +11172,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #~ "File `%s' does not contain a valid private key (too long, %llu bytes).  "
 #~ "Renaming it.\n"
 #~ msgstr ""
-#~ "El fichero «%s» no contiene una clave privada válida (demasiado grande, %"
-#~ "llu bytes).  Renombrándolo.\n"
+#~ "El fichero «%s» no contiene una clave privada válida (demasiado grande, "
+#~ "%llu bytes).  Renombrándolo.\n"
 
 #~ msgid "gnunet-rsa failed"
 #~ msgstr "«gnunet-rsa» falló"
@@ -11459,13 +11274,13 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 
 #~ msgid "Syntax error in blacklist file at offset %llu, giving up!\n"
 #~ msgstr ""
-#~ "¡Error de sintaxis en el fichero de la lista negra en el desplazamiento %"
-#~ "llu, rindiendose!\n"
+#~ "¡Error de sintaxis en el fichero de la lista negra en el desplazamiento "
+#~ "%llu, rindiendose!\n"
 
 #~ msgid "Syntax error in blacklist file at offset %llu, skipping bytes.\n"
 #~ msgstr ""
-#~ "Error de sintaxis en el fichero de la lista negra en el desplazamiento %"
-#~ "llu, omitiendo bytes.\n"
+#~ "Error de sintaxis en el fichero de la lista negra en el desplazamiento "
+#~ "%llu, omitiendo bytes.\n"
 
 #~ msgid "Found myself `%s' in blacklist (useless, ignored)\n"
 #~ msgstr "Me he encontrado «%s» en mi lista negra (inútil, ignorado)\n"
@@ -11529,8 +11344,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 
 #~ msgid "Failed to open named pipe `%s' for writing: %s\n"
 #~ msgstr ""
-#~ "Se produjo un fallo al abrir el fichero (tubería) «%s» para escritura: %"
-#~ "s\n"
+#~ "Se produjo un fallo al abrir el fichero (tubería) «%s» para escritura: "
+#~ "%s\n"
 
 #~ msgid "session identifier"
 #~ msgstr "identificador de sesión"
@@ -11593,8 +11408,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 
 #~ msgid "Error receiving response to `%s' request from ARM for service `%s'\n"
 #~ msgstr ""
-#~ "Error recibiendo respuesta a la petición «%s» del ARM para el servicio «%"
-#~ "s»\n"
+#~ "Error recibiendo respuesta a la petición «%s» del ARM para el servicio "
+#~ "«%s»\n"
 
 #~ msgid "Requesting termination of service `%s'.\n"
 #~ msgstr "Solicitando finalización del servicio «%s».\n"
@@ -11691,8 +11506,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 
 #, fuzzy
 #~ msgid ""
-#~ "(%s) `%s' was confirmed that you and only you received from him or her: %"
-#~ "s\n"
+#~ "(%s) `%s' was confirmed that you and only you received from him or her: "
+#~ "%s\n"
 #~ msgstr ""
 #~ "(%s) «%s» confirmó que usted y sólo usted recibió de él o ella: %s\n"
 
@@ -12018,8 +11833,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #~ "Invalid value `%s' for option `%s' in section `%s': got %f, needed value "
 #~ "greater than 0\n"
 #~ msgstr ""
-#~ "Valor «%s» no válido para la opción «%s» en la sección «%s»: se obtuvo %"
-#~ "f, se necesitaba un valor mayor que 0\n"
+#~ "Valor «%s» no válido para la opción «%s» en la sección «%s»: se obtuvo "
+#~ "%f, se necesitaba un valor mayor que 0\n"
 
 #~ msgid "Connecting nodes in 2d torus topology: %u rows %u columns\n"
 #~ msgstr ""
@@ -12825,8 +12640,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #, fuzzy
 #~ msgid "Configuration unchanged, no need to save.\n"
 #~ msgstr ""
-#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar '%"
-#~ "s'!\n"
+#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar "
+#~ "'%s'!\n"
 
 #, fuzzy
 #~ msgid "Do you wish to save your new configuration?"
@@ -12857,8 +12672,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #, fuzzy
 #~ msgid "Configuration changed. Save?"
 #~ msgstr ""
-#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar '%"
-#~ "s'!\n"
+#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar "
+#~ "'%s'!\n"
 
 #, fuzzy
 #~ msgid "Error saving configuration."
@@ -12915,8 +12730,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #, fuzzy
 #~ msgid "Configuration was unchanged, no need to save.\n"
 #~ msgstr ""
-#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar '%"
-#~ "s'!\n"
+#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar "
+#~ "'%s'!\n"
 
 #~ msgid "Can't open Service Control Manager"
 #~ msgstr "Imposible abrir el Service Control Manager"
@@ -13176,8 +12991,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #, fuzzy
 #~ msgid "Existing key in file `%s' failed format check, creating new key.\n"
 #~ msgstr ""
-#~ "Se produjo un fallo al comprobar la clave local existente en el fichero '%"
-#~ "s', creando nueva clave local.\n"
+#~ "Se produjo un fallo al comprobar la clave local existente en el fichero "
+#~ "'%s', creando nueva clave local.\n"
 
 #, fuzzy
 #~ msgid "Creating new key for this nickname (this may take a while).\n"
@@ -13228,8 +13043,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #~ msgid ""
 #~ "Existing hostkey in file `%s' failed format check, creating new hostkey.\n"
 #~ msgstr ""
-#~ "Se produjo un fallo al comprobar la clave local existente en el fichero '%"
-#~ "s', creando nueva clave local.\n"
+#~ "Se produjo un fallo al comprobar la clave local existente en el fichero "
+#~ "'%s', creando nueva clave local.\n"
 
 #~ msgid "Done creating hostkey.\n"
 #~ msgstr "Correcto al crear la clave local.\n"
@@ -13461,8 +13276,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #~ "Unindexing of `%s' complete, %llu bytes took %llu seconds (%8.3f KiB/s).\n"
 #~ msgstr ""
 #~ "\n"
-#~ "El desindexado de '%s' se completó, %llu bytes tomaron %llu segundos (%"
-#~ "8.3f kbps).\n"
+#~ "El desindexado de '%s' se completó, %llu bytes tomaron %llu segundos "
+#~ "(%8.3f kbps).\n"
 
 #, fuzzy
 #~ msgid "Not enough arguments. You must specify a filename.\n"
@@ -13487,8 +13302,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #, fuzzy
 #~ msgid "Download of file `%s' complete.  Speed was %8.3f KiB per second.\n"
 #~ msgstr ""
-#~ "Descarga del fichero '%s' completada. La velocidad media fue %"
-#~ "8.3fkilobytes por segundo.\n"
+#~ "Descarga del fichero '%s' completada. La velocidad media fue "
+#~ "%8.3fkilobytes por segundo.\n"
 
 #~ msgid "Not enough arguments. You must specify a GNUnet file URI\n"
 #~ msgstr ""
@@ -13696,8 +13511,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 
 #~ msgid "Configuration or GNUnet version changed.  You need to run `%s'!\n"
 #~ msgstr ""
-#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar '%"
-#~ "s'!\n"
+#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar "
+#~ "'%s'!\n"
 
 #~ msgid "The `%s' request received from client is malformed.\n"
 #~ msgstr "La petición '%s' recibida del cliente esta mal formada.\n"
@@ -13859,14 +13674,14 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 #, fuzzy
 #~ msgid "Configuration file that specifies the MySQL username and password"
 #~ msgstr ""
-#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar '%"
-#~ "s'!\n"
+#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar "
+#~ "'%s'!\n"
 
 #, fuzzy
 #~ msgid "Configuration of the MySQL database"
 #~ msgstr ""
-#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar '%"
-#~ "s'!\n"
+#~ "La configuración o la versión de GNUnet cambiaron.  ¡Debes ejecutar "
+#~ "'%s'!\n"
 
 #, fuzzy
 #~ msgid "MB of diskspace GNUnet can use for anonymous file sharing"
@@ -14564,8 +14379,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 
 #~ msgid "%s: Rejected connection from blacklisted address %u.%u.%u.%u.\n"
 #~ msgstr ""
-#~ "%s: Conexión rechazada de una dirección de la \"lista negra\" %u.%u.%u.%"
-#~ "u.\n"
+#~ "%s: Conexión rechazada de una dirección de la \"lista negra\" %u.%u.%u."
+#~ "%u.\n"
 
 #~ msgid "Unexpected reply to `%s' operation.\n"
 #~ msgstr "Respuesta inesperada a la operación '%s'.\n"
@@ -14887,8 +14702,8 @@ msgstr "«%s» falló en el fichero «%s» en %s:%d con el 
error: %s\n"
 
 #~ msgid "gnunet-setup must have write-access to the configuration file `%s'\n"
 #~ msgstr ""
-#~ "gnunet-setup debe tener acceso de escritura al fichero de configuración '%"
-#~ "s'\n"
+#~ "gnunet-setup debe tener acceso de escritura al fichero de configuración "
+#~ "'%s'\n"
 
 #, fuzzy
 #~ msgid ""
diff --git a/po/fr.po b/po/fr.po
index acc22f286..24d653fb8 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,14 +7,149 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-02-09 22:07+0000\n"
+"POT-Creation-Date: 2019-10-07 11:45+0200\n"
 "PO-Revision-Date: 2015-12-24 01:20+0100\n"
 "Last-Translator: Stéphane  Aulery <address@hidden>\n"
 "Language-Team: French <address@hidden>\n"
+"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
+
+#: src/abd/gnunet-abd.c:394 src/namestore/gnunet-namestore.c:994
+#, c-format
+msgid "Ego `%s' not known to identity service\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:410 src/abd/gnunet-abd.c:875
+#, c-format
+msgid "Issuer public key `%s' is not well-formed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:549 src/abd/gnunet-service-abd.c:1723
+#: src/namestore/gnunet-namestore.c:1019
+#: src/namestore/gnunet-namestore-fcfsd.c:1138
+#, c-format
+msgid "Failed to connect to namestore\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:814 src/abd/gnunet-abd.c:865
+#, c-format
+msgid "Issuer public key not well-formed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:823 src/abd/gnunet-abd.c:884
+#, fuzzy, c-format
+msgid "Failed to connect to ABD\n"
+msgstr "Impossible d’ouvrir « %s ».\n"
+
+#: src/abd/gnunet-abd.c:829
+#, c-format
+msgid "You must provide issuer the attribute\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:836
+#, c-format
+msgid "ego required\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:846
+#, c-format
+msgid "Subject public key needed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:855
+#, c-format
+msgid "Subject public key `%s' is not well-formed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:890
+#, c-format
+msgid "You must provide issuer and subject attributes\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:946
+#, c-format
+msgid "Please specify name to lookup, subject key and issuer key!\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:967
+msgid "verify credential against attribute"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:974
+msgid ""
+"The public key of the subject to lookup thecredential for, or for issuer "
+"side storage: subject and its attributes"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:981
+msgid "The private, signed delegate presented by the subject"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:988
+msgid "The public key of the authority to verify the credential against"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:993
+msgid "The ego/zone name to use"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:999
+msgid "The issuer attribute to verify against or to issue"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1005
+msgid ""
+"The time to live for the credential.e.g. 5m, 6h, \"1990-12-30 12:00:00\""
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1010
+msgid "collect credentials"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1015
+msgid "Create and issue a credential issuer side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1020
+msgid "Issue a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1025
+msgid "Create, sign and return a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1032
+msgid "Import signed credentials that should be issued to a zone/ego"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1036
+msgid "Create private record entry."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1042 src/abd/gnunet-abd.c:1048
+msgid "Indicates that the collect/verify process is done via forward search."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1061
+msgid "GNUnet abd resolver tool"
+msgstr ""
+
+#: src/abd/gnunet-service-abd.c:1718 src/gns/gnunet-gns.c:185
+#: src/gns/gnunet-gns-helper-service-w32.c:727
+#, c-format
+msgid "Failed to connect to GNS\n"
+msgstr ""
+
+#: src/abd/plugin_gnsrecord_abd.c:182
+#, fuzzy, c-format
+msgid "Unable to parse ATTR record string `%s'\n"
+msgstr "Résolution de « %s » échouée\n"
+
+#: src/abd/plugin_rest_abd.c:1128 src/abd/plugin_rest_credential.c:1128
+msgid "GNS REST API initialized\n"
+msgstr ""
 
 #: src/arm/gnunet-arm.c:156
 #, c-format
@@ -221,8 +356,7 @@ msgid "Control services and the Automated Restart Manager 
(ARM)"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:388 src/transport/plugin_transport_tcp.c:1120
-#: src/transport/plugin_transport_xt.c:1120
-#: src/transport/tcp_service_legacy.c:557 src/util/service.c:612
+#: src/transport/tcp_service_legacy.c:557
 #, c-format
 msgid ""
 "Disabling IPv6 support for service `%s', failed to create IPv6 socket: %s\n"
@@ -231,36 +365,30 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:412 src/arm/gnunet-service-arm.c:418
 #: src/transport/plugin_transport_tcp.c:1139
 #: src/transport/plugin_transport_tcp.c:1145
-#: src/transport/plugin_transport_tcp.c:3829
-#: src/transport/plugin_transport_xt.c:1139
-#: src/transport/plugin_transport_xt.c:1145
-#: src/transport/plugin_transport_xt.c:3833
+#: src/transport/plugin_transport_tcp.c:3835
 #: src/transport/tcp_service_legacy.c:576
-#: src/transport/tcp_service_legacy.c:582 src/util/service.c:637
-#: src/util/service.c:643
+#: src/transport/tcp_service_legacy.c:582 src/util/service.c:1150
+#: src/util/service.c:1156
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:457 src/transport/plugin_transport_tcp.c:1176
-#: src/transport/plugin_transport_xt.c:1176
-#: src/transport/tcp_service_legacy.c:613 src/util/client.c:506
-#: src/util/service.c:682
+#: src/transport/tcp_service_legacy.c:613 src/util/client.c:521
+#: src/util/service.c:1195
 #, c-format
 msgid "UNIXPATH `%s' too long, maximum length is %llu\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:462 src/transport/plugin_transport_tcp.c:1180
-#: src/transport/plugin_transport_xt.c:1180
-#: src/transport/tcp_service_legacy.c:617 src/util/client.c:511
-#: src/util/service.c:687
+#: src/transport/tcp_service_legacy.c:617 src/util/client.c:526
+#: src/util/service.c:1200
 #, c-format
 msgid "Using `%s' instead\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:495 src/transport/plugin_transport_tcp.c:1211
-#: src/transport/plugin_transport_xt.c:1211
-#: src/transport/tcp_service_legacy.c:648 src/util/service.c:723
+#: src/transport/tcp_service_legacy.c:648 src/util/service.c:1236
 #, c-format
 msgid ""
 "Disabling UNIX domain socket support for service `%s', failed to create UNIX "
@@ -268,8 +396,7 @@ msgid ""
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:517 src/transport/plugin_transport_tcp.c:1228
-#: src/transport/plugin_transport_xt.c:1228
-#: src/transport/tcp_service_legacy.c:665 src/util/service.c:741
+#: src/transport/tcp_service_legacy.c:665 src/util/service.c:1254
 #, c-format
 msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"
 msgstr ""
@@ -277,8 +404,7 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:556
 #: src/transport/plugin_transport_http_server.c:2688
 #: src/transport/plugin_transport_tcp.c:1259
-#: src/transport/plugin_transport_xt.c:1259
-#: src/transport/tcp_service_legacy.c:696 src/util/service.c:782
+#: src/transport/tcp_service_legacy.c:696 src/util/service.c:1295
 #, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "Résolution de « %s » échouée : %s\n"
@@ -286,8 +412,7 @@ msgstr "Résolution de « %s » échouée : %s\n"
 #: src/arm/gnunet-service-arm.c:575
 #: src/transport/plugin_transport_http_server.c:2706
 #: src/transport/plugin_transport_tcp.c:1278
-#: src/transport/plugin_transport_xt.c:1278
-#: src/transport/tcp_service_legacy.c:715 src/util/service.c:802
+#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1315
 #, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr ""
@@ -358,14 +483,139 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:837
-msgid "Stop logging\n"
-msgstr "Arrêter la journalisation\n"
+#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:892
+#: src/ats/gnunet-ats-solver-eval.c:2799
 #, c-format
-msgid "Start logging `%s'\n"
-msgstr "Démarrer la journalisation « %s »\n"
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:2840
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3294 src/ats-tests/gnunet-solver-eval.c:939
+msgid "solver to use"
+msgstr "solveur utilisé"
+
+#: src/ats/gnunet-ats-solver-eval.c:3299 src/ats-tests/gnunet-solver-eval.c:945
+#: src/ats-tests/gnunet-solver-eval.c:950
+msgid "experiment to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3306
+msgid "print logging"
+msgstr "afficher le journal"
+
+#: src/ats/gnunet-ats-solver-eval.c:3311
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3316
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats-new.c:756
+#: src/ats/gnunet-service-ats_plugins.c:451
+#, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:304
+#, 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:314
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:359
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats2_common.c:90
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s': `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1274
+msgid "Problem size too large, cannot allocate memory!\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1870
+#, c-format
+msgid "Adding address for peer `%s' multiple times\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1914
+#, c-format
+msgid "Updating address property for peer `%s' %p not added before\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2476
+msgid ""
+"MLP solver is not optimizing for anything, changing to feasibility check\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
+#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
+#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
+#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
+#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
+#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
+#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "fornat invalide : « %s »\n"
+
+#: src/ats/plugin_ats_mlp.c:2671
+#, c-format
+msgid ""
+"Adjusting inconsistent outbound quota configuration for network `%s', is "
+"%llu must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2680
+#, c-format
+msgid ""
+"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
+"must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2690
+#, c-format
+msgid ""
+"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2699
+#, c-format
+msgid ""
+"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_proportional.c:1164
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr "fornat invalide : « %s »\n"
 
 #: src/ats-tests/ats-testing.c:422
 #, c-format
@@ -377,6 +627,15 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr ""
 
+#: src/ats-tests/ats-testing-log.c:837
+msgid "Stop logging\n"
+msgstr "Arrêter la journalisation\n"
+
+#: src/ats-tests/ats-testing-log.c:892
+#, c-format
+msgid "Start logging `%s'\n"
+msgstr "Démarrer la journalisation « %s »\n"
+
 #: src/ats-tests/gnunet-ats-sim.c:90
 #, c-format
 msgid ""
@@ -384,17 +643,6 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
-#: src/ats-tests/gnunet-solver-eval.c:939
-#: src/ats/gnunet-ats-solver-eval.c:3294
-msgid "solver to use"
-msgstr "solveur utilisé"
-
-#: src/ats-tests/gnunet-solver-eval.c:945
-#: src/ats-tests/gnunet-solver-eval.c:950
-#: src/ats/gnunet-ats-solver-eval.c:3299
-msgid "experiment to use"
-msgstr ""
-
 #: src/ats-tool/gnunet-ats.c:307
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -510,131 +758,6 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr ""
 
-#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2799
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2840
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3306
-msgid "print logging"
-msgstr "afficher le journal"
-
-#: src/ats/gnunet-ats-solver-eval.c:3311
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3316
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats-new.c:733
-#: src/ats/gnunet-service-ats_plugins.c:451
-#, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:304
-#, 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:314
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:359
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats2_common.c:90
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s': `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1274
-msgid "Problem size too large, cannot allocate memory!\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1870
-#, c-format
-msgid "Adding address for peer `%s' multiple times\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1914
-#, c-format
-msgid "Updating address property for peer `%s' %p not added before\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2476
-msgid ""
-"MLP solver is not optimizing for anything, changing to feasibility check\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
-#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
-#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
-#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
-#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
-#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
-#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "fornat invalide : « %s »\n"
-
-#: src/ats/plugin_ats_mlp.c:2671
-#, c-format
-msgid ""
-"Adjusting inconsistent outbound quota configuration for network `%s', is %"
-"llu must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2680
-#, c-format
-msgid ""
-"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
-"must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2690
-#, c-format
-msgid ""
-"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2699
-#, c-format
-msgid ""
-"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_proportional.c:1164
-#, 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 ""
@@ -760,28 +883,6 @@ 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:145
-#, 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:216
-#, 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:277
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1027,16 +1128,38 @@ msgstr ""
 msgid "sets the NAME of the ego to use for the caller ID"
 msgstr ""
 
-#: src/conversation/gnunet-conversation.c:1307
-msgid "sets the LINE to use for the phone"
+#: src/conversation/gnunet-conversation.c:1307
+msgid "sets the LINE to use for the phone"
+msgstr ""
+
+#: src/conversation/gnunet-conversation.c:1336
+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:145
+#, 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.c:1336
-msgid "Enables having a conversation with other GNUnet users."
+#: src/conversation/gnunet-conversation-test.c:216
+#, 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-helper-audio-playback-gst.c:361
 #: src/conversation/gnunet_gst.c:622
+#: src/conversation/gnunet-helper-audio-playback-gst.c:361
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1323,7 +1446,7 @@ msgid "# valid ephemeral keys received"
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1180
-#: src/transport/gnunet-service-transport_validation.c:1128
+#: src/transport/gnunet-service-transport_validation.c:1129
 msgid "# PING messages received"
 msgstr ""
 
@@ -1344,7 +1467,7 @@ msgid "# keepalive messages sent"
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1351
-#: src/transport/gnunet-service-transport_validation.c:1461
+#: src/transport/gnunet-service-transport_validation.c:1462
 msgid "# PONG messages received"
 msgstr ""
 
@@ -1436,127 +1559,6 @@ msgstr ""
 msgid "# updates to my type map"
 msgstr ""
 
-#: src/credential/credential_misc.c:88
-#, c-format
-msgid "Unable to parse CRED record string `%s'\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:264 src/namestore/gnunet-namestore.c:994
-#, c-format
-msgid "Ego `%s' not known to identity service\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:280
-#: src/credential/gnunet-credential.c:434
-#, c-format
-msgid "Issuer public key `%s' is not well-formed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:361
-#: src/credential/gnunet-credential.c:423
-#, c-format
-msgid "Issuer public key not well-formed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:372
-#: src/credential/gnunet-credential.c:444
-#, fuzzy, c-format
-msgid "Failed to connect to CREDENTIAL\n"
-msgstr "Impossible d’ouvrir « %s ».\n"
-
-#: src/credential/gnunet-credential.c:379
-#, c-format
-msgid "You must provide issuer the attribute\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:387
-#, c-format
-msgid "ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:403
-#, c-format
-msgid "Subject public key needed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:414
-#, c-format
-msgid "Subject public key `%s' is not well-formed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:451
-#, c-format
-msgid "You must provide issuer and subject attributes\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:504
-#, c-format
-msgid "Issuer ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:516
-#, c-format
-msgid "Please specify name to lookup, subject key and issuer key!\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:536
-msgid "create credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:540
-msgid "verify credential against attribute"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:545
-msgid "The public key of the subject to lookup the credential for"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:550
-msgid "The name of the credential presented by the subject"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:555
-msgid "The public key of the authority to verify the credential against"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:560
-msgid "The ego to use"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:565
-msgid "The issuer attribute to verify against or to issue"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:570
-msgid "The time to live for the credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:574
-msgid "collect credentials"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:588
-msgid "GNUnet credential resolver tool"
-msgstr ""
-
-#: src/credential/gnunet-service-credential.c:1138
-#: src/gns/gnunet-gns-helper-service-w32.c:727 src/gns/gnunet-gns.c:185
-#, c-format
-msgid "Failed to connect to GNS\n"
-msgstr ""
-
-#: src/credential/gnunet-service-credential.c:1144
-#: src/namestore/gnunet-namestore-fcfsd.c:1138
-#: src/namestore/gnunet-namestore.c:1019
-#, c-format
-msgid "Failed to connect to namestore\n"
-msgstr ""
-
-#: src/credential/plugin_gnsrecord_credential.c:186
-#, fuzzy, c-format
-msgid "Unable to parse ATTR record string `%s'\n"
-msgstr "Résolution de « %s » échouée\n"
-
 #: src/datacache/datacache.c:119 src/datacache/datacache.c:311
 #: src/datastore/gnunet-service-datastore.c:757
 msgid "# bytes stored"
@@ -1605,14 +1607,12 @@ msgstr ""
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_sqlite.c:53
 #: src/peerstore/plugin_peerstore_sqlite.c:52
-#: src/psycstore/plugin_psycstore_mysql.c:62
-#: src/reclaim/plugin_reclaim_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:56
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:53
 #: src/util/crypto_ecc_setup.c:41 src/util/crypto_mpi.c:39
-#: src/include/gnunet_common.h:818 src/include/gnunet_common.h:827
+#: src/include/gnunet_common.h:840 src/include/gnunet_common.h:849
 #: src/scalarproduct/scalarproduct.h:35
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
@@ -1622,7 +1622,6 @@ msgstr ""
 #: src/datastore/plugin_datastore_sqlite.c:508
 #: src/namecache/plugin_namecache_sqlite.c:229
 #: src/namestore/plugin_namestore_sqlite.c:265
-#: src/reclaim/plugin_reclaim_sqlite.c:336
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -1918,21 +1917,19 @@ msgid "`%s' for `%s' failed at %s:%d with error: %s\n"
 msgstr ""
 
 #: src/datastore/plugin_datastore_mysql.c:1180
-#: src/psycstore/plugin_psycstore_mysql.c:1936
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:276
-#: src/datastore/plugin_datastore_postgres.c:893
+#: src/datastore/plugin_datastore_postgres.c:280
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:854
+#: src/datastore/plugin_datastore_postgres.c:858
 msgid "Failed to drop table from database.\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:952
-#: src/psycstore/plugin_psycstore_postgres.c:1506
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -1948,8 +1945,6 @@ msgstr ""
 #: src/namecache/plugin_namecache_sqlite.c:173
 #: src/namestore/plugin_namestore_sqlite.c:206
 #: src/peerstore/plugin_peerstore_sqlite.c:535
-#: src/psycstore/plugin_psycstore_sqlite.c:325
-#: src/reclaim/plugin_reclaim_sqlite.c:212
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr ""
@@ -1971,8 +1966,7 @@ msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:1405
 #: src/namecache/plugin_namecache_sqlite.c:557
-#: src/namestore/plugin_namestore_sqlite.c:750
-#: src/reclaim/plugin_reclaim_sqlite.c:711
+#: src/namestore/plugin_namestore_sqlite.c:751
 msgid "Sqlite database running\n"
 msgstr ""
 
@@ -2046,6 +2040,53 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
+#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
+#, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:949 src/rps/gnunet-rps-profiler.c:3083
+#, fuzzy
+msgid "number of peers to start"
+msgstr "nombre de valeurs"
+
+#: src/dht/gnunet_dht_profiler.c:954
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
+#: src/testbed/gnunet-testbed-profiler.c:300
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:964
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:969
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:974
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:984
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:989
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1009
+msgid "Measure quality and performance of the DHT service."
+msgstr ""
+
 #: src/dht/gnunet-dht-put.c:134
 msgid "Must provide KEY and DATA for DHT put!\n"
 msgstr ""
@@ -2291,53 +2332,6 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
-#, c-format
-msgid "Exiting as the number of peers is %u\n"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:949 src/rps/gnunet-rps-profiler.c:2953
-#, fuzzy
-msgid "number of peers to start"
-msgstr "nombre de valeurs"
-
-#: src/dht/gnunet_dht_profiler.c:954
-msgid "number of PUTs to perform per peer"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
-#: src/testbed/gnunet-testbed-profiler.c:304
-msgid "name of the file with the login information for the testbed"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:964
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:969
-msgid "delay to start doing PUTs (default: 1 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:974
-msgid "delay to start doing GETs (default: 5 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "replication degree for DHT PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:984
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:989
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1009
-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"
@@ -2422,10 +2416,6 @@ msgstr ""
 msgid "`%s' must be installed SUID, will not run DNS interceptor\n"
 msgstr ""
 
-#: src/dv/gnunet-dv.c:175
-msgid "Print information about DV state"
-msgstr ""
-
 #: src/exit/gnunet-daemon-exit.c:960
 msgid "# TCP packets sent via TUN"
 msgstr ""
@@ -2849,57 +2839,62 @@ msgstr ""
 msgid "Publishing failed: %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:724 src/fs/fs_publish.c:778 src/fs/fs_publish.c:823
-#: src/fs/fs_publish.c:844 src/fs/fs_publish.c:874 src/fs/fs_publish.c:1140
+#: src/fs/fs_publish.c:725
+#, fuzzy, c-format
+msgid "Can not index file `%s': %s.\n"
+msgstr "Résolution de « %s » échouée : %s\n"
+
+#: src/fs/fs_publish.c:782 src/fs/fs_publish.c:827 src/fs/fs_publish.c:848
+#: src/fs/fs_publish.c:878 src/fs/fs_publish.c:1144
 #, c-format
 msgid "Can not index file `%s': %s.  Will try to insert instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:780
+#: src/fs/fs_publish.c:784
 msgid "error on index-start request to `fs' service"
 msgstr ""
 
-#: src/fs/fs_publish.c:825
+#: src/fs/fs_publish.c:829
 msgid "failed to compute hash"
 msgstr ""
 
-#: src/fs/fs_publish.c:845
+#: src/fs/fs_publish.c:849
 msgid "filename too long"
 msgstr ""
 
-#: src/fs/fs_publish.c:876
+#: src/fs/fs_publish.c:880
 msgid "could not connect to `fs' service"
 msgstr ""
 
-#: src/fs/fs_publish.c:902
+#: src/fs/fs_publish.c:906
 #, c-format
 msgid "Failed to get file identifiers for `%s'\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:991 src/fs/fs_publish.c:1027
+#: src/fs/fs_publish.c:995 src/fs/fs_publish.c:1031
 msgid "Can not create LOC URI. Will continue with CHK instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:1094
+#: src/fs/fs_publish.c:1098
 #, c-format
 msgid "Recursive upload failed at `%s': %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:1102
+#: src/fs/fs_publish.c:1106
 #, c-format
 msgid "Recursive upload failed: %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:1142
+#: src/fs/fs_publish.c:1146
 msgid "needs to be an actual file"
 msgstr ""
 
-#: src/fs/fs_publish.c:1381
+#: src/fs/fs_publish.c:1385
 #, fuzzy, c-format
 msgid "Datastore failure: %s"
 msgstr "pa_stream_new() échoué : %s\n"
 
-#: src/fs/fs_publish.c:1472
+#: src/fs/fs_publish.c:1476
 #, c-format
 msgid "Reserving space for %u entries and %llu bytes for publication\n"
 msgstr ""
@@ -2964,93 +2959,93 @@ msgstr ""
 msgid "Failed to compute hash of file."
 msgstr ""
 
-#: src/fs/fs_uri.c:234
+#: src/fs/fs_uri.c:236
 #, no-c-format
 msgid "Malformed KSK URI (`%' must be followed by HEX number)"
 msgstr ""
 
-#: src/fs/fs_uri.c:293
+#: src/fs/fs_uri.c:295
 msgid "Malformed KSK URI (must not begin or end with `+')"
 msgstr ""
 
-#: src/fs/fs_uri.c:311
+#: src/fs/fs_uri.c:313
 msgid "Malformed KSK URI (`++' not allowed)"
 msgstr ""
 
-#: src/fs/fs_uri.c:318
+#: src/fs/fs_uri.c:320
 msgid "Malformed KSK URI (quotes not balanced)"
 msgstr ""
 
-#: src/fs/fs_uri.c:388
+#: src/fs/fs_uri.c:390
 msgid "Malformed SKS URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:429
+#: src/fs/fs_uri.c:431
 msgid "Malformed CHK URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:444
+#: src/fs/fs_uri.c:446
 msgid "Malformed CHK URI (failed to decode CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:523
+#: src/fs/fs_uri.c:525
 msgid "LOC URI malformed (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:538
+#: src/fs/fs_uri.c:540
 msgid "LOC URI malformed (no CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:548
+#: src/fs/fs_uri.c:550
 msgid "LOC URI malformed (missing LOC)"
 msgstr ""
 
-#: src/fs/fs_uri.c:556
+#: src/fs/fs_uri.c:558
 msgid "LOC URI malformed (wrong syntax for public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:564
+#: src/fs/fs_uri.c:566
 msgid "LOC URI malformed (could not decode public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:570
+#: src/fs/fs_uri.c:572
 msgid "LOC URI malformed (could not find signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:576
+#: src/fs/fs_uri.c:578
 msgid "LOC URI malformed (wrong syntax for signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:585
+#: src/fs/fs_uri.c:587
 msgid "LOC URI malformed (could not decode signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:591
+#: src/fs/fs_uri.c:593
 msgid "LOC URI malformed (wrong syntax for expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:597
+#: src/fs/fs_uri.c:599
 msgid "LOC URI malformed (could not parse expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:609
+#: src/fs/fs_uri.c:611
 msgid "LOC URI malformed (signature failed validation)"
 msgstr ""
 
-#: src/fs/fs_uri.c:643
+#: src/fs/fs_uri.c:645
 #, fuzzy
 msgid "invalid argument"
 msgstr "Argument invalide « %s »\n"
 
-#: src/fs/fs_uri.c:655
+#: src/fs/fs_uri.c:657
 msgid "Unrecognized URI type"
 msgstr "Type d’URI non reconnu"
 
-#: src/fs/fs_uri.c:1059 src/fs/fs_uri.c:1086
+#: src/fs/fs_uri.c:1061 src/fs/fs_uri.c:1088
 msgid "No keywords specified!\n"
 msgstr ""
 
-#: src/fs/fs_uri.c:1092
+#: src/fs/fs_uri.c:1094
 msgid "Number of double-quotes not balanced!\n"
 msgstr ""
 
@@ -3090,11 +3085,11 @@ msgstr ""
 msgid "set the desired LEVEL of sender-anonymity"
 msgstr ""
 
-#: src/fs/gnunet-auto-share.c:772 src/fs/gnunet-publish.c:907
+#: src/fs/gnunet-auto-share.c:772
 msgid "disable adding the creation time to the metadata of the uploaded file"
 msgstr ""
 
-#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:912
+#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:907
 msgid "do not use libextractor to add keywords or metadata"
 msgstr ""
 
@@ -3174,7 +3169,7 @@ msgid "Downloading `%s' done (%s/s).\n"
 msgstr ""
 
 #: src/fs/gnunet-download.c:216 src/fs/gnunet-publish.c:295
-#: src/fs/gnunet-search.c:212 src/fs/gnunet-unindex.c:107
+#: src/fs/gnunet-search.c:215 src/fs/gnunet-unindex.c:107
 #, c-format
 msgid "Unexpected status: %d\n"
 msgstr ""
@@ -3197,12 +3192,12 @@ msgid "Target filename must be specified.\n"
 msgstr ""
 
 #: src/fs/gnunet-download.c:291 src/fs/gnunet-publish.c:872
-#: src/fs/gnunet-search.c:270 src/fs/gnunet-unindex.c:139
+#: src/fs/gnunet-search.c:273 src/fs/gnunet-unindex.c:139
 #, c-format
 msgid "Could not initialize `%s' subsystem.\n"
 msgstr ""
 
-#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:312
+#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:315
 msgid "set the desired LEVEL of receiver-anonymity"
 msgstr ""
 
@@ -3210,7 +3205,7 @@ msgstr ""
 msgid "delete incomplete downloads (when aborted with CTRL-C)"
 msgstr ""
 
-#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:316
+#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:319
 msgid "only search the local peer (no P2P network search)"
 msgstr ""
 
@@ -3236,6 +3231,14 @@ msgid ""
 "chk/...)"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:119
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:130
+msgid "Special file-sharing operations"
+msgstr ""
+
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr ""
@@ -3252,14 +3255,6 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:119
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:130
-msgid "Special file-sharing operations"
-msgstr ""
-
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:231
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3344,9 +3339,8 @@ msgid "Meta data extraction has finished.\n"
 msgstr ""
 
 #: src/fs/gnunet-publish.c:687
-#, fuzzy
-msgid "Internal error scanning directory.\n"
-msgstr "Erreur interne."
+msgid "Error scanning directory.\n"
+msgstr ""
 
 #: src/fs/gnunet-publish.c:715
 #, c-format
@@ -3390,6 +3384,10 @@ msgstr ""
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr ""
 
+#: src/fs/gnunet-publish.c:911
+msgid "enable adding the creation time to the metadata of the uploaded file"
+msgstr ""
+
 #: src/fs/gnunet-publish.c:916
 msgid ""
 "print list of extracted keywords that would be used, but do not perform "
@@ -3448,32 +3446,32 @@ msgstr ""
 msgid "Failed to write directory with search results to `%s'\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:204
+#: src/fs/gnunet-search.c:207
 #, c-format
 msgid "Error searching: %s.\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:260
+#: src/fs/gnunet-search.c:263
 msgid "Could not create keyword URI from arguments.\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:284
+#: src/fs/gnunet-search.c:287
 msgid "Could not start searching.\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:321
+#: src/fs/gnunet-search.c:324
 msgid "write search results to file starting with PREFIX"
 msgstr ""
 
-#: src/fs/gnunet-search.c:326
+#: src/fs/gnunet-search.c:329
 msgid "automatically terminate search after DELAY"
 msgstr ""
 
-#: src/fs/gnunet-search.c:332
+#: src/fs/gnunet-search.c:335
 msgid "automatically terminate search after VALUE results are found"
 msgstr ""
 
-#: src/fs/gnunet-search.c:348
+#: src/fs/gnunet-search.c:351
 msgid "Search GNUnet for files that were published on GNUnet"
 msgstr ""
 
@@ -3855,38 +3853,38 @@ msgstr ""
 msgid "GNUnet HTTP server to create business cards"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:203
+#: src/gns/gnunet-dns2gns.c:214
 msgid "Failed to pack DNS response into UDP packet!\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:405
+#: src/gns/gnunet-dns2gns.c:416
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:421
+#: src/gns/gnunet-dns2gns.c:432
 #, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:429
+#: src/gns/gnunet-dns2gns.c:440
 #, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:588
+#: src/gns/gnunet-dns2gns.c:600
 msgid "No DNS server specified!\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:688
+#: src/gns/gnunet-dns2gns.c:748
 msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:693
+#: src/gns/gnunet-dns2gns.c:753
 msgid "UDP port to listen on for inbound DNS requests; default: 2853"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:710
+#: src/gns/gnunet-dns2gns.c:770
 msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
 msgstr ""
 
@@ -3902,6 +3900,27 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:199
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:233
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:238
+msgid "Specify the type of the record to lookup"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:242
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:258
+msgid "GNUnet GNS resolver tool"
+msgstr ""
+
 #: src/gns/gnunet-gns-helper-service-w32.c:602
 msgid "Not ready to process requests, lacking ego data\n"
 msgstr ""
@@ -3936,125 +3955,104 @@ msgstr ""
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:980
+#: src/gns/gnunet-gns-proxy.c:989
 #, c-format
 msgid "Unsupported CURL TLS backend %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1005
+#: src/gns/gnunet-gns-proxy.c:1014
 #, c-format
 msgid "Failed to fetch CN from cert: %s\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1026
+#: src/gns/gnunet-gns-proxy.c:1035
 #, c-format
 msgid "Failed to initialize DANE: %s\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1041
+#: src/gns/gnunet-gns-proxy.c:1050
 #, c-format
 msgid "Failed to parse DANE record: %s\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1056
+#: src/gns/gnunet-gns-proxy.c:1065
 #, c-format
 msgid "Failed to verify TLS connection using DANE: %s\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1066
+#: src/gns/gnunet-gns-proxy.c:1075
 #, c-format
 msgid "Failed DANE verification failed with GnuTLS verify status code: %u\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1090
+#: src/gns/gnunet-gns-proxy.c:1099
 #, c-format
 msgid "TLS certificate subject name (%s) does not match `%s': %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1221
+#: src/gns/gnunet-gns-proxy.c:1230
 #, c-format
 msgid "Cookie domain `%s' supplied by server is invalid\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2121
+#: src/gns/gnunet-gns-proxy.c:2131
 #, c-format
 msgid "Unsupported HTTP method `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2642
+#: src/gns/gnunet-gns-proxy.c:2652
 #, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2674
+#: src/gns/gnunet-gns-proxy.c:2684
 #, c-format
 msgid "Unable to import certificate from `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2875
+#: src/gns/gnunet-gns-proxy.c:2885
 #, c-format
 msgid "Failed to start HTTPS server for `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2897 src/rest/gnunet-rest-server.c:658
+#: src/gns/gnunet-gns-proxy.c:2907 src/rest/gnunet-rest-server.c:668
 msgid "Failed to pass client to MHD\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3233
+#: src/gns/gnunet-gns-proxy.c:3243
 #, c-format
 msgid "Unsupported socks version %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3262
+#: src/gns/gnunet-gns-proxy.c:3272
 #, c-format
 msgid "Unsupported socks command %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3345
+#: src/gns/gnunet-gns-proxy.c:3355
 #, c-format
 msgid "Unsupported socks address type %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3635
-#, c-format
-msgid "Failed to load X.509 key and certificate from `%s'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns-proxy.c:3763
-msgid "listen on specified port (default: 7777)"
-msgstr ""
-
-#: src/gns/gnunet-gns-proxy.c:3768
-msgid "pem file to use as CA"
-msgstr ""
-
-#: src/gns/gnunet-gns-proxy.c:3772
-msgid "disable use of IPv6"
-msgstr ""
-
-#: src/gns/gnunet-gns-proxy.c:3798
-msgid "GNUnet GNS proxy"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:199
+#: src/gns/gnunet-gns-proxy.c:3693
 #, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
+msgid "Failed to load X.509 key and certificate from `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:233
-msgid "Lookup a record for the given name"
+#: src/gns/gnunet-gns-proxy.c:3821
+msgid "listen on specified port (default: 7777)"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:238
-msgid "Specify the type of the record to lookup"
+#: src/gns/gnunet-gns-proxy.c:3826
+msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:242
-msgid "No unneeded output"
+#: src/gns/gnunet-gns-proxy.c:3830
+msgid "disable use of IPv6"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:258
-msgid "GNUnet GNS resolver tool"
+#: src/gns/gnunet-gns-proxy.c:3856
+msgid "GNUnet GNS proxy"
 msgstr ""
 
 #: src/gns/gnunet-service-gns.c:506
@@ -4066,8 +4064,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr ""
 
 #: src/gns/gnunet-service-gns.c:561
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #: src/zonemaster/gnunet-service-zonemaster.c:875
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 msgid "Could not connect to DHT!\n"
 msgstr ""
 
@@ -4157,6 +4155,10 @@ msgstr ""
 msgid "Unable to parse BOX record string `%s'\n"
 msgstr ""
 
+#: src/gns/plugin_rest_gns.c:452
+msgid "Gns REST API initialized\n"
+msgstr ""
+
 #: src/gnsrecord/plugin_gnsrecord_dns.c:359
 #, c-format
 msgid "Unable to parse IPv4 address `%s'\n"
@@ -4534,7 +4536,7 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:679
-#: src/transport/gnunet-service-transport.c:2814
+#: src/transport/gnunet-service-transport.c:2827
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 
@@ -4663,15 +4665,15 @@ msgstr ""
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr ""
 
+#: src/identity/plugin_rest_identity.c:1297
+msgid "Identity REST API initialized\n"
+msgstr ""
+
 #: src/json/json.c:123
 #, fuzzy, c-format
 msgid "Failed to parse JSON in option `%s': %s (%s)\n"
 msgstr "Résolution de « %s » échouée : %s\n"
 
-#: src/multicast/gnunet-multicast.c:48 src/multicast/gnunet-multicast.c:72
-msgid "This command doesn't do anything yet."
-msgstr ""
-
 #: src/my/my.c:196 src/my/my.c:215
 #, c-format
 msgid "%s failed at %s:%d with error: %s\n"
@@ -4734,8 +4736,8 @@ msgstr ""
 
 #: src/namecache/plugin_namecache_flat.c:121
 #: src/namecache/plugin_namecache_flat.c:255
-#: src/namestore/plugin_namestore_heap.c:148
-#: src/namestore/plugin_namestore_heap.c:395
+#: src/namestore/plugin_namestore_heap.c:179
+#: src/namestore/plugin_namestore_heap.c:412
 #: src/peerstore/plugin_peerstore_flat.c:379
 #: src/peerstore/plugin_peerstore_flat.c:538
 #, c-format
@@ -4743,14 +4745,14 @@ msgid "Unable to initialize file: %s.\n"
 msgstr ""
 
 #: src/namecache/plugin_namecache_flat.c:132
-#: src/namestore/plugin_namestore_heap.c:159
+#: src/namestore/plugin_namestore_heap.c:190
 #: src/peerstore/plugin_peerstore_flat.c:394
 #, c-format
 msgid "Unable to get filesize: %s.\n"
 msgstr ""
 
 #: src/namecache/plugin_namecache_flat.c:151
-#: src/namestore/plugin_namestore_heap.c:172
+#: src/namestore/plugin_namestore_heap.c:203
 #: src/peerstore/plugin_peerstore_flat.c:406
 #, fuzzy, c-format
 msgid "Unable to read file: %s.\n"
@@ -4768,68 +4770,6 @@ msgstr ""
 msgid "Failed to setup database at `%s'\n"
 msgstr "Échec du démarrage de %s\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:549
-#, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:576
-#, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:597
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:629
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:689
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:777
-#, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:796
-#, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:832
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:841
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1071
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1099
-msgid "Failed to start HTTP server\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1147
-msgid "Failed to connect to identity\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1173
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1192
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-namestore.c:341
 #, c-format
 msgid "Adding record failed: %s\n"
@@ -5034,6 +4974,68 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
+#: src/namestore/gnunet-namestore-fcfsd.c:549
+#, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:576
+#, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:597
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:629
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:689
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:777
+#, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:796
+#, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:832
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:841
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1071
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1099
+msgid "Failed to start HTTP server\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1147
+msgid "Failed to connect to identity\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1173
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1192
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-service-namestore.c:900
 #, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5051,10 +5053,14 @@ msgstr ""
 msgid "Namestore failed to store record\n"
 msgstr ""
 
-#: src/namestore/plugin_namestore_heap.c:778
+#: src/namestore/plugin_namestore_heap.c:773
 msgid "heap file database running\n"
 msgstr ""
 
+#: src/namestore/plugin_rest_namestore.c:1079
+msgid "Namestore REST API initialized\n"
+msgstr ""
+
 #: src/nat-auto/gnunet-nat-auto.c:193
 msgid "Suggested configuration changes:\n"
 msgstr ""
@@ -5326,6 +5332,10 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
+#: src/nse/gnunet-nse.c:122
+msgid "Show network size estimates from NSE service."
+msgstr ""
+
 #: src/nse/gnunet-nse-profiler.c:849
 msgid "limit to the number of connections to NSE services, 0 for none"
 msgstr ""
@@ -5350,15 +5360,65 @@ msgstr ""
 msgid "Measure quality and performance of the NSE service."
 msgstr ""
 
-#: src/nse/gnunet-nse.c:122
-msgid "Show network size estimates from NSE service."
-msgstr ""
-
 #: src/nse/gnunet-service-nse.c:1534
 #: src/revocation/gnunet-service-revocation.c:843 src/util/gnunet-scrypt.c:276
 msgid "Value is too large.\n"
 msgstr ""
 
+#: src/peerinfo/gnunet-service-peerinfo.c:178
+#, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:313
+#, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:334
+#: src/peerinfo/gnunet-service-peerinfo.c:365
+#, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:449
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:492
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:659
+#, c-format
+msgid "Scanning directory `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:667
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1100
+#, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1438
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1451
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:220
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+
 #: src/peerinfo-tool/gnunet-peerinfo.c:239
 #, c-format
 msgid "%sPeer `%s'\n"
@@ -5370,7 +5430,7 @@ msgid "\tExpires: %s \t %s\n"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:299
-#: src/rest-plugins/plugin_rest_peerinfo.c:501
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:501
 #, c-format
 msgid "Failure: Cannot convert address to string for peer `%s'\n"
 msgstr ""
@@ -5408,99 +5468,49 @@ msgid "include friend-only information"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:857
-msgid "output our own identity only"
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:862
-msgid "list all known peers"
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:868
-msgid "dump hello to file"
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:873
-msgid "also output HELLO uri(s)"
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:879
-msgid "add given HELLO uri to the database"
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo.c:897
-msgid "Print information about peers."
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:105
-#: src/transport/gnunet-service-transport_plugins.c:168
-#, c-format
-msgid "Starting transport plugins `%s'\n"
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:109
-#: src/transport/gnunet-service-transport_plugins.c:173
-#, c-format
-msgid "Loading `%s' transport plugin\n"
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:129
-#: src/transport/gnunet-service-transport_plugins.c:208
-#, c-format
-msgid "Failed to load transport plugin for `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:178
-#, c-format
-msgid "Removing expired address of transport `%s'\n"
+msgid "output our own identity only"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:313
-#, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
+#: src/peerinfo-tool/gnunet-peerinfo.c:862
+msgid "list all known peers"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:334
-#: src/peerinfo/gnunet-service-peerinfo.c:365
-#, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
+#: src/peerinfo-tool/gnunet-peerinfo.c:868
+msgid "dump hello to file"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:449
-msgid "# peers known"
+#: src/peerinfo-tool/gnunet-peerinfo.c:873
+msgid "also output HELLO uri(s)"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:492
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+#: src/peerinfo-tool/gnunet-peerinfo.c:879
+msgid "add given HELLO uri to the database"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:659
-#, c-format
-msgid "Scanning directory `%s'\n"
+#: src/peerinfo-tool/gnunet-peerinfo.c:897
+msgid "Print information about peers."
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:667
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:105
+#: src/transport/gnunet-service-transport_plugins.c:168
 #, c-format
-msgid "Still no peers found in `%s'!\n"
+msgid "Starting transport plugins `%s'\n"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1100
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:109
+#: src/transport/gnunet-service-transport_plugins.c:173
 #, c-format
-msgid "Cleaning up directory `%s'\n"
+msgid "Loading `%s' transport plugin\n"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1438
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:129
+#: src/transport/gnunet-service-transport_plugins.c:208
 #, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1451
-msgid "Skipping import of included HELLOs\n"
+msgid "Failed to load transport plugin for `%s'\n"
 msgstr ""
 
-#: src/peerinfo/peerinfo_api.c:220
-msgid "Failed to receive response from `PEERINFO' service."
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:796
+msgid "Peerinfo REST API initialized\n"
 msgstr ""
 
 #: src/peerstore/gnunet-peerstore.c:91
@@ -5512,20 +5522,19 @@ msgstr ""
 msgid "Could not load database backend `%s'\n"
 msgstr "Impossible d’ouvrir « %s ».\n"
 
-#: src/peerstore/peerstore_api.c:532 src/peerstore/peerstore_api.c:581
+#: src/peerstore/peerstore_api.c:605 src/peerstore/peerstore_api.c:657
 msgid "Unexpected iteration response, this should not happen.\n"
 msgstr ""
 
-#: src/peerstore/peerstore_api.c:595
+#: src/peerstore/peerstore_api.c:671
 msgid "Received a malformed response from service."
 msgstr ""
 
-#: src/peerstore/peerstore_api.c:731
+#: src/peerstore/peerstore_api.c:807
 msgid "Received a watch result for a non existing watch.\n"
 msgstr ""
 
 #: src/peerstore/plugin_peerstore_sqlite.c:453
-#: src/psycstore/plugin_psycstore_sqlite.c:282
 #, c-format
 msgid ""
 "Error executing SQL query: %s\n"
@@ -5533,8 +5542,6 @@ msgid ""
 msgstr ""
 
 #: src/peerstore/plugin_peerstore_sqlite.c:488
-#: src/psycstore/plugin_psycstore_mysql.c:250
-#: src/psycstore/plugin_psycstore_sqlite.c:259
 #, c-format
 msgid ""
 "Error preparing SQL query: %s\n"
@@ -5551,111 +5558,6 @@ msgstr ""
 msgid "PQprepare (`%s' as `%s') failed with error: %s\n"
 msgstr ""
 
-#: src/psycstore/gnunet-service-psycstore.c:249
-#, fuzzy
-msgid "Failed to store membership information!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:271
-#, fuzzy
-msgid "Failed to test membership!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:300
-#, fuzzy
-msgid "Dropping invalid fragment\n"
-msgstr "Argument invalide « %s »\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:311
-#, fuzzy
-msgid "Failed to store fragment\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:368
-#, fuzzy
-msgid "Failed to get fragment!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:434
-#, fuzzy
-msgid "Failed to get message!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:464
-#, fuzzy
-msgid "Failed to get message fragment!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:494
-#, fuzzy
-msgid "Failed to get master counters!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:675
-#, fuzzy, c-format
-msgid "Failed to begin modifying state: %d\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:685
-#, fuzzy, c-format
-msgid "Failed to modify state: %d\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:693
-#, fuzzy
-msgid "Failed to end modifying state!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:730
-msgid "Tried to set invalid state variable name!\n"
-msgstr ""
-
-#: src/psycstore/gnunet-service-psycstore.c:744
-#, fuzzy
-msgid "Failed to begin synchronizing state!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:761
-#, fuzzy
-msgid "Failed to end synchronizing state!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:779
-#: src/psycstore/gnunet-service-psycstore.c:795
-#, fuzzy
-msgid "Failed to reset state!\n"
-msgstr "Résolution de « %s » échouée\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:824
-#: src/psycstore/gnunet-service-psycstore.c:881
-msgid "Tried to get invalid state variable name!\n"
-msgstr ""
-
-#: src/psycstore/gnunet-service-psycstore.c:851
-#: src/psycstore/gnunet-service-psycstore.c:896
-#, fuzzy
-msgid "Failed to get state variable!\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:281
-#, fuzzy
-msgid "Unable to initialize Mysql.\n"
-msgstr "Résolution de « %s » échouée\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:291
-#, fuzzy, c-format
-msgid "Failed to run SQL statement `%s'\n"
-msgstr "Échec du démarrage de %s\n"
-
-#: src/psycstore/plugin_psycstore_sqlite.c:61
-#, c-format
-msgid "`%s' failed at %s:%d with error: %s (%d)\n"
-msgstr ""
-
-#: src/psycstore/plugin_psycstore_sqlite.c:1924
-msgid "SQLite database running\n"
-msgstr ""
-
 #: src/pt/gnunet-daemon-pt.c:423
 msgid "Failed to pack DNS request.  Dropping.\n"
 msgstr ""
@@ -5711,61 +5613,78 @@ msgstr ""
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:467
+#: src/reclaim/gnunet-reclaim.c:495
 #, c-format
 msgid "Ego is required\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:475
+#: src/reclaim/gnunet-reclaim.c:501
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:483
+#: src/reclaim/gnunet-reclaim.c:507
 #, c-format
 msgid "Requesting party key is required!\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:506
-msgid "Add attribute"
+#: src/reclaim/gnunet-reclaim.c:524
+msgid "Add an attribute NAME"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:527
+msgid "Add an attribute with ID"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:512
-msgid "Attribute value"
+#: src/reclaim/gnunet-reclaim.c:530
+msgid "The attribute VALUE"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:517
-msgid "Ego"
+#: src/reclaim/gnunet-reclaim.c:533
+msgid "The EGO to use"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:522
-msgid "Audience (relying party)"
+#: src/reclaim/gnunet-reclaim.c:535
+msgid "Specify the relying party for issue"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:526
-msgid "List attributes for Ego"
+#: src/reclaim/gnunet-reclaim.c:538
+msgid "List attributes for EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:531
-msgid "Issue a ticket"
+#: src/reclaim/gnunet-reclaim.c:542
+msgid "Issue a ticket for a set of attributes separated by comma"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:536
+#: src/reclaim/gnunet-reclaim.c:545
 msgid "Consume a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:541
+#: src/reclaim/gnunet-reclaim.c:548
 msgid "Revoke a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:546
+#: src/reclaim/gnunet-reclaim.c:551
 msgid "Type of attribute"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:551
+#: src/reclaim/gnunet-reclaim.c:553
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:556
 msgid "Expiration interval of the attribute"
 msgstr ""
 
+#: src/reclaim/gnunet-reclaim.c:560
+msgid "re:claimID command line tool"
+msgstr ""
+
+#: src/reclaim/plugin_rest_openid_connect.c:2051
+#: src/reclaim/plugin_rest_reclaim.c:1018
+msgid "Identity Provider REST API initialized\n"
+msgstr ""
+
 #: src/reclaim/reclaim_api.c:436
 #, fuzzy
 msgid "failed to store record\n"
@@ -5855,43 +5774,18 @@ msgstr ""
 msgid "Search string `%s' is too long!\n"
 msgstr ""
 
-#: src/rest-plugins/plugin_rest_copying.c:209
-msgid "COPYING REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_credential.c:1128
-msgid "GNS REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_gns.c:452
-msgid "Gns REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_identity.c:1297
-msgid "Identity REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_namestore.c:1079
-msgid "Namestore REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_openid_connect.c:2245
-#: src/rest-plugins/plugin_rest_reclaim.c:1079
-msgid "Identity Provider REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_peerinfo.c:796
-msgid "Peerinfo REST API initialized\n"
-msgstr ""
-
-#: src/rest/gnunet-rest-server.c:927
+#: src/rest/gnunet-rest-server.c:986
 msgid "listen on specified port (default: 7776)"
 msgstr ""
 
-#: src/rest/gnunet-rest-server.c:944
+#: src/rest/gnunet-rest-server.c:1003
 msgid "GNUnet REST server"
 msgstr ""
 
+#: src/rest/plugin_rest_copying.c:209
+msgid "COPYING REST API initialized\n"
+msgstr ""
+
 #: src/revocation/gnunet-revocation.c:129
 #, c-format
 msgid "Key `%s' is valid\n"
@@ -5951,7 +5845,7 @@ msgstr ""
 msgid "Revocation certificate not ready, calculating proof of work\n"
 msgstr ""
 
-#: src/revocation/gnunet-revocation.c:437 src/social/gnunet-social.c:1180
+#: src/revocation/gnunet-revocation.c:437
 #, c-format
 msgid "Public key `%s' malformed\n"
 msgstr ""
@@ -6021,35 +5915,35 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2959
+#: src/rps/gnunet-rps.c:260
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:264
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:268
+msgid "Get peers from biased stream"
+msgstr ""
+
+#: src/rps/gnunet-rps-profiler.c:3088
 msgid "duration of the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2965
+#: src/rps/gnunet-rps-profiler.c:3093
 msgid "timeout for the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2971
+#: src/rps/gnunet-rps-profiler.c:3098
 #, fuzzy
 msgid "number of PeerIDs to request"
 msgstr "nombre de valeurs"
 
-#: src/rps/gnunet-rps-profiler.c:2986
+#: src/rps/gnunet-rps-profiler.c:3114
 msgid "Measure quality and performance of the RPS service."
 msgstr ""
 
-#: src/rps/gnunet-rps.c:260
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:264
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:268
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/scalarproduct/gnunet-scalarproduct.c:220
 msgid "You must specify at least one message ID to check!\n"
 msgstr ""
@@ -6104,10 +5998,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1401
 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1345
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 msgid "Connect to CADET failed\n"
 msgstr ""
 
@@ -6127,176 +6021,53 @@ msgstr ""
 msgid "threshold"
 msgstr "threshold"
 
-#: src/secretsharing/gnunet-secretsharing-profiler.c:633
-msgid "also profile decryption"
-msgstr ""
-
-#: src/set/gnunet-service-set.c:2005
-#, fuzzy
-msgid "Could not connect to CADET service\n"
-msgstr "Impossible d’ouvrir « %s ».\n"
-
-#: src/set/gnunet-set-ibf-profiler.c:252
-msgid "number of element in set A-B"
-msgstr ""
-
-#: src/set/gnunet-set-ibf-profiler.c:258
-msgid "number of element in set B-A"
-msgstr ""
-
-#: src/set/gnunet-set-ibf-profiler.c:264
-msgid "number of common elements in A and B"
-msgstr ""
-
-#: src/set/gnunet-set-ibf-profiler.c:270
-msgid "hash num"
-msgstr "numéro de hash"
-
-#: src/set/gnunet-set-ibf-profiler.c:276
-msgid "ibf size"
-msgstr "taille ibz"
-
-#: src/set/gnunet-set-profiler.c:444
-msgid "use byzantine mode"
-msgstr ""
-
-#: src/set/gnunet-set-profiler.c:450
-msgid "force sending full set"
-msgstr ""
-
-#: src/set/gnunet-set-profiler.c:456
-msgid "number delta operation"
-msgstr ""
-
-#: src/set/gnunet-set-profiler.c:468
-msgid "operation to execute"
-msgstr ""
-
-#: src/set/gnunet-set-profiler.c:474
-msgid "element size"
-msgstr ""
-
-#: src/social/gnunet-social.c:1166
-msgid "--place missing or invalid.\n"
-msgstr ""
-
-#: src/social/gnunet-social.c:1217
-msgid "assign --name in state to --data"
-msgstr ""
-
-#: src/social/gnunet-social.c:1222
-msgid "say good-bye and leave somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1227
-msgid "create a place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1232
-msgid "destroy a place we were hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1237
-msgid "enter somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1243
-msgid "find state matching name prefix"
-msgstr ""
-
-#: src/social/gnunet-social.c:1248
-msgid "replay history of messages up to the given --limit"
-msgstr ""
-
-#: src/social/gnunet-social.c:1253
-msgid "reconnect to a previously created place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1258
-msgid "publish something to a place we are hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1263
-msgid "reconnect to a previously entered place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1268
-msgid "search for state matching exact name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1273
-msgid "submit something to somebody's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1278
-msgid "list of egos and subscribed places"
-msgstr ""
-
-#: src/social/gnunet-social.c:1283
-msgid "extract and replay history between message IDs --start and --until"
-msgstr ""
-
-#: src/social/gnunet-social.c:1292
-msgid "application ID to use when connecting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1298
-msgid "message body or state value"
-msgstr ""
-
-#: src/social/gnunet-social.c:1304
-msgid "name or public key of ego"
-msgstr ""
-
-#: src/social/gnunet-social.c:1309
-msgid "wait for incoming messages"
+#: src/secretsharing/gnunet-secretsharing-profiler.c:633
+msgid "also profile decryption"
 msgstr ""
 
-#: src/social/gnunet-social.c:1315
-msgid "GNS name"
-msgstr ""
+#: src/set/gnunet-service-set.c:2008
+#, fuzzy
+msgid "Could not connect to CADET service\n"
+msgstr "Impossible d’ouvrir « %s ».\n"
 
-#: src/social/gnunet-social.c:1321
-msgid "peer ID for --guest-enter"
+#: src/set/gnunet-set-ibf-profiler.c:252
+msgid "number of element in set A-B"
 msgstr ""
 
-#: src/social/gnunet-social.c:1327
-msgid "name (key) to query from state"
+#: src/set/gnunet-set-ibf-profiler.c:258
+msgid "number of element in set B-A"
 msgstr ""
 
-#: src/social/gnunet-social.c:1333
-msgid "method name"
+#: src/set/gnunet-set-ibf-profiler.c:264
+msgid "number of common elements in A and B"
 msgstr ""
 
-#: src/social/gnunet-social.c:1339
-#, fuzzy
-msgid "number of messages to replay from history"
-msgstr "nombre de valeurs"
+#: src/set/gnunet-set-ibf-profiler.c:270
+msgid "hash num"
+msgstr "numéro de hash"
 
-#: src/social/gnunet-social.c:1345
-msgid "key address of place"
-msgstr ""
+#: src/set/gnunet-set-ibf-profiler.c:276
+msgid "ibf size"
+msgstr "taille ibz"
 
-#: src/social/gnunet-social.c:1351
-msgid "start message ID for history replay"
+#: src/set/gnunet-set-profiler.c:444
+msgid "use byzantine mode"
 msgstr ""
 
-#: src/social/gnunet-social.c:1356
-msgid "respond to entry requests by admitting all guests"
+#: src/set/gnunet-set-profiler.c:450
+msgid "force sending full set"
 msgstr ""
 
-#: src/social/gnunet-social.c:1362
-msgid "end message ID for history replay"
+#: src/set/gnunet-set-profiler.c:456
+msgid "number delta operation"
 msgstr ""
 
-#: src/social/gnunet-social.c:1367
-msgid "respond to entry requests by refusing all guests"
+#: src/set/gnunet-set-profiler.c:468
+msgid "operation to execute"
 msgstr ""
 
-#: src/social/gnunet-social.c:1377
-msgid ""
-"gnunet-social - Interact with the social service: enter/leave, send/receive "
-"messages, access history and state.\n"
+#: src/set/gnunet-set-profiler.c:474
+msgid "element size"
 msgstr ""
 
 #: src/sq/sq.c:54
@@ -6459,7 +6230,7 @@ msgid "Invalid argument `%s'; expecting unsigned int\n"
 msgstr ""
 
 #: src/testbed/generate-underlay-topology.c:342
-#: src/testbed/gnunet-testbed-profiler.c:283
+#: src/testbed/gnunet-testbed-profiler.c:282
 msgid "create COUNT number of peers"
 msgstr ""
 
@@ -6568,17 +6339,6 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr "%.s Code d'erreur inconnu"
 
-#: src/testbed/gnunet-testbed-profiler.c:289
-msgid "tolerate COUNT number of continious timeout failures"
-msgstr ""
-
-#: src/testbed/gnunet-testbed-profiler.c:294
-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:118
 msgid "Waiting for child to exit.\n"
 msgstr ""
@@ -6588,6 +6348,17 @@ msgstr ""
 msgid "Spawning process `%s'\n"
 msgstr ""
 
+#: src/testbed/gnunet-testbed-profiler.c:287
+msgid "tolerate COUNT number of continious timeout failures"
+msgstr ""
+
+#: src/testbed/gnunet-testbed-profiler.c:291
+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:410
 #, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -6761,47 +6532,47 @@ msgstr ""
 msgid "Key number %u does not exist\n"
 msgstr ""
 
-#: src/testing/testing.c:1159
+#: src/testing/testing.c:1161
 #, c-format
 msgid ""
 "You attempted to create a testbed with more than %u hosts.  Please "
 "precompute more hostkeys first.\n"
 msgstr ""
 
-#: src/testing/testing.c:1168
+#: src/testing/testing.c:1170
 #, c-format
 msgid "Failed to initialize hostkey for peer %u\n"
 msgstr ""
 
-#: src/testing/testing.c:1178
+#: src/testing/testing.c:1180
 msgid "PRIVATE_KEY option in PEER section missing in configuration\n"
 msgstr ""
 
-#: src/testing/testing.c:1191
+#: src/testing/testing.c:1193
 msgid "Failed to create configuration for peer (not enough free ports?)\n"
 msgstr ""
 
-#: src/testing/testing.c:1205
+#: src/testing/testing.c:1207
 #, c-format
 msgid "Cannot open hostkey file `%s': %s\n"
 msgstr ""
 
-#: src/testing/testing.c:1217
+#: src/testing/testing.c:1219
 #, c-format
 msgid "Failed to write hostkey file for peer %u: %s\n"
 msgstr ""
 
-#: src/testing/testing.c:1242
+#: src/testing/testing.c:1244
 #, c-format
 msgid "Failed to write configuration file `%s' for peer %u: %s\n"
 msgstr ""
 
-#: src/testing/testing.c:1344
+#: src/testing/testing.c:1346
 #, c-format
 msgid "Failed to start `%s': %s\n"
 msgstr ""
 
-#: src/testing/testing.c:1647
+#: src/testing/testing.c:1649
 #, c-format
 msgid "Failed to load configuration from %s\n"
 msgstr ""
@@ -6875,18 +6646,18 @@ msgstr ""
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:2329
-#: src/transport/gnunet-communicator-udp.c:2883
-#: src/transport/gnunet-service-tng.c:4679
-#: src/transport/gnunet-service-transport.c:2782
+#: src/transport/gnunet-communicator-tcp.c:2334
+#: src/transport/gnunet-communicator-udp.c:2938
+#: src/transport/gnunet-service-tng.c:7070
+#: src/transport/gnunet-service-transport.c:2795
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:2393
+#: src/transport/gnunet-communicator-tcp.c:2398
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2954
+#: src/transport/gnunet-communicator-udp.c:3016
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -6895,60 +6666,60 @@ msgid ""
 "Maximum number of UNIX connections exceeded, dropping incoming message\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-unix.c:1073
+#: src/transport/gnunet-communicator-unix.c:1074
 #: src/transport/plugin_transport_unix.c:1403
 #, c-format
 msgid "Cannot create path to `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-unix.c:1162
+#: src/transport/gnunet-communicator-unix.c:1163
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:448
+#: src/transport/gnunet-service-transport_ats.c:141
+msgid "# Addresses given to ATS"
+msgstr ""
+
+#: src/transport/gnunet-service-transport.c:452
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:817
+#: src/transport/gnunet-service-transport.c:826
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1550
+#: src/transport/gnunet-service-transport.c:1563
 msgid "# bytes payload discarded due to not connected peer"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1710
+#: src/transport/gnunet-service-transport.c:1723
 msgid "# bytes total received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1807
+#: src/transport/gnunet-service-transport.c:1820
 msgid "# bytes payload received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2124
-#: src/transport/gnunet-service-transport.c:2596
+#: src/transport/gnunet-service-transport.c:2137
+#: src/transport/gnunet-service-transport.c:2609
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2600
+#: src/transport/gnunet-service-transport.c:2613
 #, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2708
+#: src/transport/gnunet-service-transport.c:2721
 #, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2717
+#: src/transport/gnunet-service-transport.c:2730
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:141
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -6958,186 +6729,186 @@ msgstr ""
 msgid "# session creation failed"
 msgstr "# Session TCP active"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1052
+#: src/transport/gnunet-service-transport_neighbours.c:1053
 msgid "# DISCONNECT messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1175
+#: src/transport/gnunet-service-transport_neighbours.c:1176
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1323
-#: src/transport/gnunet-service-transport_neighbours.c:1784
+#: src/transport/gnunet-service-transport_neighbours.c:1324
+#: src/transport/gnunet-service-transport_neighbours.c:1785
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1328
+#: src/transport/gnunet-service-transport_neighbours.c:1329
 msgid "# messages transmitted to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1334
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 msgid "# transmission failures for messages to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1394
+#: src/transport/gnunet-service-transport_neighbours.c:1395
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1478
+#: src/transport/gnunet-service-transport_neighbours.c:1479
 msgid "# KEEPALIVES sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1514
+#: src/transport/gnunet-service-transport_neighbours.c:1515
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1522
+#: src/transport/gnunet-service-transport_neighbours.c:1523
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1532
+#: src/transport/gnunet-service-transport_neighbours.c:1533
 msgid "# KEEPALIVES received in good order"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1577
+#: src/transport/gnunet-service-transport_neighbours.c:1578
 msgid "# KEEPALIVE_RESPONSEs discarded (not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1586
+#: src/transport/gnunet-service-transport_neighbours.c:1587
 msgid "# KEEPALIVE_RESPONSEs discarded (not expected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1594
+#: src/transport/gnunet-service-transport_neighbours.c:1595
 msgid "# KEEPALIVE_RESPONSEs discarded (address changed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1603
+#: src/transport/gnunet-service-transport_neighbours.c:1604
 msgid "# KEEPALIVE_RESPONSEs discarded (no nonce)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 msgid "# KEEPALIVE_RESPONSEs discarded (bad nonce)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1614
+#: src/transport/gnunet-service-transport_neighbours.c:1615
 msgid "# KEEPALIVE_RESPONSEs received (OK)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1681
+#: src/transport/gnunet-service-transport_neighbours.c:1682
 msgid "# messages discarded due to lack of neighbour record"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1715
+#: src/transport/gnunet-service-transport_neighbours.c:1716
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1730
+#: src/transport/gnunet-service-transport_neighbours.c:1731
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1853
+#: src/transport/gnunet-service-transport_neighbours.c:1854
 #, fuzzy, c-format
 msgid "Failed to send SYN message to peer `%s'\n"
 msgstr "Résolution de « %s » échouée\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1873
+#: src/transport/gnunet-service-transport_neighbours.c:1874
 msgid "# Failed attempts to switch addresses (failed to send SYN CONT)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1912
+#: src/transport/gnunet-service-transport_neighbours.c:1913
 msgid "# SYN messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1929
+#: src/transport/gnunet-service-transport_neighbours.c:1930
 #, fuzzy, c-format
 msgid "Failed to transmit SYN message to %s\n"
 msgstr "Échec du démarrage de %s\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1959
+#: src/transport/gnunet-service-transport_neighbours.c:1960
 msgid "# Failed attempts to switch addresses (failed to send SYN)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2027
+#: src/transport/gnunet-service-transport_neighbours.c:2028
 #, c-format
 msgid "Failed to send SYN_ACK message to peer `%s' using address `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2081
+#: src/transport/gnunet-service-transport_neighbours.c:2082
 msgid "# SYN_ACK messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2098
+#: src/transport/gnunet-service-transport_neighbours.c:2099
 #, fuzzy, c-format
 msgid "Failed to transmit SYN_ACK message to %s\n"
 msgstr "Échec du démarrage de %s\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2261
+#: src/transport/gnunet-service-transport_neighbours.c:2262
 msgid "# SYN messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2266
+#: src/transport/gnunet-service-transport_neighbours.c:2267
 #, c-format
 msgid "SYN request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2653
+#: src/transport/gnunet-service-transport_neighbours.c:2654
 msgid "# Attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3138
+#: src/transport/gnunet-service-transport_neighbours.c:3139
 msgid "# SYN_ACK messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3146
+#: src/transport/gnunet-service-transport_neighbours.c:3147
 msgid "# unexpected SYN_ACK messages (no peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3164
-#: src/transport/gnunet-service-transport_neighbours.c:3188
+#: src/transport/gnunet-service-transport_neighbours.c:3165
+#: src/transport/gnunet-service-transport_neighbours.c:3189
 msgid "# unexpected SYN_ACK messages (not ready)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3200
+#: src/transport/gnunet-service-transport_neighbours.c:3201
 msgid "# unexpected SYN_ACK messages (waiting on ATS)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3225
+#: src/transport/gnunet-service-transport_neighbours.c:3226
 msgid "# Successful attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3238
+#: src/transport/gnunet-service-transport_neighbours.c:3239
 msgid "# unexpected SYN_ACK messages (disconnecting)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3411
+#: src/transport/gnunet-service-transport_neighbours.c:3412
 msgid "# ACK messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3447
+#: src/transport/gnunet-service-transport_neighbours.c:3448
 msgid "# unexpected ACK messages"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3535
+#: src/transport/gnunet-service-transport_neighbours.c:3536
 msgid "# quota messages ignored (malformed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3542
+#: src/transport/gnunet-service-transport_neighbours.c:3543
 msgid "# QUOTA messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3582
+#: src/transport/gnunet-service-transport_neighbours.c:3583
 msgid "# disconnect messages ignored (malformed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3589
+#: src/transport/gnunet-service-transport_neighbours.c:3590
 msgid "# DISCONNECT messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3600
+#: src/transport/gnunet-service-transport_neighbours.c:3601
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3735
+#: src/transport/gnunet-service-transport_neighbours.c:3736
 msgid "# disconnected from peer upon explicit request"
 msgstr ""
 
@@ -7172,7 +6943,7 @@ msgstr ""
 #: src/transport/gnunet-service-transport_validation.c:491
 #: src/transport/gnunet-service-transport_validation.c:677
 #: src/transport/gnunet-service-transport_validation.c:997
-#: src/transport/gnunet-service-transport_validation.c:1609
+#: src/transport/gnunet-service-transport_validation.c:1610
 msgid "# validations running"
 msgstr ""
 
@@ -7196,100 +6967,64 @@ msgstr ""
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1123
+#: src/transport/gnunet-service-transport_validation.c:1124
 msgid "# PING message for different peer received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1174
+#: src/transport/gnunet-service-transport_validation.c:1175
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1187
+#: src/transport/gnunet-service-transport_validation.c:1188
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1190
+#: src/transport/gnunet-service-transport_validation.c:1191
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1198
+#: src/transport/gnunet-service-transport_validation.c:1199
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1211
+#: src/transport/gnunet-service-transport_validation.c:1212
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1266
+#: src/transport/gnunet-service-transport_validation.c:1267
 #, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1317
+#: src/transport/gnunet-service-transport_validation.c:1318
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1326
+#: src/transport/gnunet-service-transport_validation.c:1327
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1499
+#: src/transport/gnunet-service-transport_validation.c:1500
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1517
+#: src/transport/gnunet-service-transport_validation.c:1518
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1572
+#: src/transport/gnunet-service-transport_validation.c:1573
 msgid "# validations succeeded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1627
+#: src/transport/gnunet-service-transport_validation.c:1628
 msgid "# HELLOs given to peerinfo"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:219
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:617
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:621
-msgid "receive data from peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:626
-msgid "iterations"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:631
-#, fuzzy
-msgid "number of messages to send"
-msgstr "nombre de valeurs"
-
-#: src/transport/gnunet-transport-profiler.c:636
-msgid "message size to use"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:641
-#: src/transport/gnunet-transport.c:1462
-msgid "peer identity"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:652
-#: src/transport/gnunet-transport.c:1482
-msgid "Direct access to transport service."
-msgstr ""
-
 #: src/transport/gnunet-transport.c:413
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7419,6 +7154,11 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr ""
 
+#: src/transport/gnunet-transport.c:1462
+#: src/transport/gnunet-transport-profiler.c:641
+msgid "peer identity"
+msgstr ""
+
 #: src/transport/gnunet-transport.c:1466
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7427,13 +7167,42 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
+#: src/transport/gnunet-transport.c:1482
+#: src/transport/gnunet-transport-profiler.c:652
+msgid "Direct access to transport service."
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:219
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:617
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:621
+msgid "receive data from peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:626
+msgid "iterations"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:631
+#, fuzzy
+msgid "number of messages to send"
+msgstr "nombre de valeurs"
+
+#: src/transport/gnunet-transport-profiler.c:636
+msgid "message size to use"
+msgstr ""
+
 #: src/transport/plugin_transport_http_client.c:1474
 #: src/transport/plugin_transport_http_server.c:2312
 #: src/transport/plugin_transport_http_server.c:3530
-#: src/transport/plugin_transport_tcp.c:3895
-#: src/transport/plugin_transport_tcp.c:3902
-#: src/transport/plugin_transport_xt.c:3899
-#: src/transport/plugin_transport_xt.c:3906
+#: src/transport/plugin_transport_tcp.c:3901
+#: src/transport/plugin_transport_tcp.c:3908
 msgid "TCP_STEALTH not supported on this platform.\n"
 msgstr ""
 
@@ -7503,7 +7272,6 @@ msgstr ""
 
 #: src/transport/plugin_transport_http_server.c:2905
 #: src/transport/plugin_transport_udp.c:3627
-#: src/transport/plugin_transport_xu.c:2049
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
@@ -7601,126 +7369,114 @@ msgstr ""
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1551
-#: src/transport/plugin_transport_tcp.c:2877
-#: src/transport/plugin_transport_xt.c:1553
-#: src/transport/plugin_transport_xt.c:2879
+#: src/transport/plugin_transport_tcp.c:1557
+#: src/transport/plugin_transport_tcp.c:2883
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1734
-#: src/transport/plugin_transport_tcp.c:1958
-#: src/transport/plugin_transport_tcp.c:3141
-#: src/transport/plugin_transport_tcp.c:4018
-#: src/transport/plugin_transport_xt.c:1736
-#: src/transport/plugin_transport_xt.c:1960
-#: src/transport/plugin_transport_xt.c:3143
+#: src/transport/plugin_transport_tcp.c:1740
+#: src/transport/plugin_transport_tcp.c:1964
+#: src/transport/plugin_transport_tcp.c:3147
+#: src/transport/plugin_transport_tcp.c:4024
 msgid "# TCP sessions active"
 msgstr "# Session TCP active"
 
-#: src/transport/plugin_transport_tcp.c:1776
-#: src/transport/plugin_transport_tcp.c:1940
-#: src/transport/plugin_transport_tcp.c:2064
-#: src/transport/plugin_transport_tcp.c:2137
-#: src/transport/plugin_transport_tcp.c:2237
-#: src/transport/plugin_transport_tcp.c:2262
-#: src/transport/plugin_transport_xt.c:1778
-#: src/transport/plugin_transport_xt.c:1942
-#: src/transport/plugin_transport_xt.c:2066
-#: src/transport/plugin_transport_xt.c:2139
-#: src/transport/plugin_transport_xt.c:2239
-#: src/transport/plugin_transport_xt.c:2264
+#: src/transport/plugin_transport_tcp.c:1782
+#: src/transport/plugin_transport_tcp.c:1946
+#: src/transport/plugin_transport_tcp.c:2070
+#: src/transport/plugin_transport_tcp.c:2143
+#: src/transport/plugin_transport_tcp.c:2243
+#: src/transport/plugin_transport_tcp.c:2268
 msgid "# bytes currently in TCP buffers"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1779
-#: src/transport/plugin_transport_xt.c:1781
+#: src/transport/plugin_transport_tcp.c:1785
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2067
-#: src/transport/plugin_transport_xt.c:2069
+#: src/transport/plugin_transport_tcp.c:2073
 msgid "# bytes discarded by TCP (timeout)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2141
-#: src/transport/plugin_transport_xt.c:2143
+#: src/transport/plugin_transport_tcp.c:2147
 msgid "# bytes transmitted via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2539
-#: src/transport/plugin_transport_xt.c:2541
+#: src/transport/plugin_transport_tcp.c:2545
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
-#: src/transport/plugin_transport_xt.c:2717
+#: src/transport/plugin_transport_tcp.c:2721
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3207
-#: src/transport/plugin_transport_xt.c:3209
+#: src/transport/plugin_transport_tcp.c:3213
 msgid "# TCP WELCOME messages received"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3413
-#: src/transport/plugin_transport_xt.c:3415
+#: src/transport/plugin_transport_tcp.c:3419
 msgid "# bytes received via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3464
-#: src/transport/plugin_transport_tcp.c:3522
-#: src/transport/plugin_transport_xt.c:3466
-#: src/transport/plugin_transport_xt.c:3524
+#: src/transport/plugin_transport_tcp.c:3470
+#: src/transport/plugin_transport_tcp.c:3528
 #, fuzzy
 msgid "# TCP server connections active"
 msgstr "# Session TCP active"
 
-#: src/transport/plugin_transport_tcp.c:3468
-#: src/transport/plugin_transport_xt.c:3470
+#: src/transport/plugin_transport_tcp.c:3474
 msgid "# TCP server connect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3474
-#: src/transport/plugin_transport_xt.c:3476
+#: src/transport/plugin_transport_tcp.c:3480
 msgid "TCP connection limit reached, suspending server\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3476
-#: src/transport/plugin_transport_xt.c:3478
+#: src/transport/plugin_transport_tcp.c:3482
 msgid "# TCP service suspended"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3516
-#: src/transport/plugin_transport_xt.c:3518
+#: src/transport/plugin_transport_tcp.c:3522
 msgid "# TCP service resumed"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3526
-#: src/transport/plugin_transport_xt.c:3528
+#: src/transport/plugin_transport_tcp.c:3532
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3845
-#: src/transport/plugin_transport_xt.c:3849
+#: src/transport/plugin_transport_tcp.c:3851
 msgid "Failed to start service.\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4006
+#: src/transport/plugin_transport_tcp.c:4012
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4010
+#: src/transport/plugin_transport_tcp.c:4016
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4014
+#: src/transport/plugin_transport_tcp.c:4020
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
+#: src/transport/plugin_transport_udp_broadcasting.c:168
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:548
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:565
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_udp.c:3371
 #, c-format
 msgid ""
@@ -7741,7 +7497,6 @@ msgid "Failed to bind UDP socket to %s: %s\n"
 msgstr "Résolution de « %s » échouée : %s\n"
 
 #: src/transport/plugin_transport_udp.c:3721
-#: src/transport/plugin_transport_xu.c:2143
 msgid "Disabling IPv4 since it is not supported on this system!\n"
 msgstr ""
 
@@ -7751,19 +7506,15 @@ msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3883
 #: src/transport/plugin_transport_udp.c:3897
-#: src/transport/plugin_transport_xu.c:2301
-#: src/transport/plugin_transport_xu.c:2315
 msgid "must be in [0,65535]"
 msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3929
-#: src/transport/plugin_transport_xu.c:2347
 #, fuzzy
 msgid "must be valid IPv4 address"
 msgstr "adresse invalide"
 
 #: src/transport/plugin_transport_udp.c:3956
-#: src/transport/plugin_transport_xu.c:2374
 #, fuzzy
 msgid "must be valid IPv6 address"
 msgstr "adresse invalide"
@@ -7772,20 +7523,6 @@ msgstr "adresse invalide"
 msgid "Failed to create UDP network sockets\n"
 msgstr ""
 
-#: src/transport/plugin_transport_udp_broadcasting.c:168
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:548
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:565
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-
 #: src/transport/plugin_transport_unix.c:1416
 #, c-format
 msgid "Cannot bind to `%s'\n"
@@ -7853,54 +7590,6 @@ msgstr ""
 msgid "# sessions allocated"
 msgstr "# Session TCP active"
 
-#: src/transport/plugin_transport_xt.c:4010
-#, c-format
-msgid "XT transport listening on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4014
-msgid "XT transport not listening on any port (client only)\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4018
-#, c-format
-msgid "XT transport advertises itself as being on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4022
-#, fuzzy
-msgid "# XT sessions active"
-msgstr "# Session TCP active"
-
-#: src/transport/plugin_transport_xu.c:1237
-#, c-format
-msgid ""
-"XU could not transmit message to `%s': Network seems down, please check your "
-"network configuration\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xu.c:1251
-msgid ""
-"XU 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 ""
-
-#: src/transport/plugin_transport_xu.c:2125
-#: src/transport/plugin_transport_xu.c:2224
-#, fuzzy, c-format
-msgid "Failed to bind XU socket to %s: %s\n"
-msgstr "Résolution de « %s » échouée : %s\n"
-
-#: src/transport/plugin_transport_xu.c:2234
-#, fuzzy
-msgid "Failed to open XU sockets\n"
-msgstr "Résolution de « %s » échouée : %s\n"
-
-#: src/transport/plugin_transport_xu.c:2398
-#, fuzzy
-msgid "Failed to create XU network sockets\n"
-msgstr "Résolution de « %s » échouée : %s\n"
-
 #: src/transport/tcp_connection_legacy.c:452
 #, c-format
 msgid "Access denied to `%s'\n"
@@ -7911,17 +7600,17 @@ msgstr ""
 msgid "Accepting connection from `%s': %p\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1111
+#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1624
 #, c-format
 msgid "`%s' failed for port %d (%s).\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1121
+#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1634
 #, c-format
 msgid "`%s' failed for port %d (%s): address already in use\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1127
+#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1640
 #, c-format
 msgid "`%s' failed for `%s': address already in use\n"
 msgstr ""
@@ -7933,7 +7622,7 @@ msgid ""
 "`GNUNET_SERVER_receive_done' after %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:339 src/util/service.c:2396
+#: src/transport/tcp_service_legacy.c:339 src/util/service.c:864
 #, c-format
 msgid "Unknown address family %d\n"
 msgstr ""
@@ -7943,27 +7632,27 @@ msgstr ""
 msgid "Access from `%s' denied to service `%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:402 src/util/service.c:439
+#: src/transport/tcp_service_legacy.c:402 src/util/service.c:988
 #, c-format
 msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:440 src/util/service.c:482
+#: src/transport/tcp_service_legacy.c:440 src/util/service.c:1031
 #, c-format
 msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1042
+#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1555
 msgid "Could not access a pre-bound socket, will try to bind myself\n"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:953
-#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1195
+#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1708
 #, c-format
 msgid "Specified value for `%s' of service `%s' is invalid\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1228
+#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1741
 #, c-format
 msgid "Could not access pre-bound socket %u, will try to bind myself\n"
 msgstr ""
@@ -7978,44 +7667,44 @@ msgstr ""
 msgid "Service `%s' runs at %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:1502
+#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:2015
 msgid "Service process failed to initialize\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1506
+#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:2019
 msgid "Service process could not initialize server function\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:1510
+#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:2023
 msgid "Service process failed to report status\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1525
-#: src/util/service.c:1380
+#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1535
+#: src/util/service.c:1893
 #, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1382
+#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1895
 msgid "No such user"
 msgstr "Aucun utilisateur trouvé"
 
-#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1401
+#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1914
 #, c-format
 msgid "Cannot change user/group to `%s': %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:1762
+#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:2276
 msgid "do daemonize (detach from terminal)"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:1826
-#: src/util/service.c:1841
+#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:2340
+#: src/util/service.c:2355
 #, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:1853
+#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:2367
 msgid "Malformed configuration, exit ...\n"
 msgstr ""
 
@@ -8057,11 +7746,11 @@ msgstr ""
 msgid "Metadata `%s' failed to deserialize"
 msgstr ""
 
-#: src/util/client.c:734
+#: src/util/client.c:749
 msgid "not a valid filename"
 msgstr ""
 
-#: src/util/client.c:925
+#: src/util/client.c:941
 #, c-format
 msgid "Need a non-empty hostname for service `%s'.\n"
 msgstr ""
@@ -8108,16 +7797,16 @@ msgstr "INVALIDE"
 msgid "unknown address"
 msgstr "adresse inconnue"
 
-#: src/util/common_logging.c:1500
+#: src/util/common_logging.c:1513
 msgid "invalid address"
 msgstr "adresse invalide"
 
-#: src/util/common_logging.c:1518
+#: src/util/common_logging.c:1531
 #, c-format
 msgid "Configuration fails to specify option `%s' in section `%s'!\n"
 msgstr ""
 
-#: src/util/common_logging.c:1539
+#: src/util/common_logging.c:1552
 #, c-format
 msgid ""
 "Configuration specifies invalid value for option `%s' in section `%s': %s\n"
@@ -8164,26 +7853,26 @@ msgstr ""
 #: src/util/container_bloomfilter.c:532
 #, c-format
 msgid ""
-"Size of file on disk is incorrect for this Bloom filter (want %llu, have %"
-"llu)\n"
+"Size of file on disk is incorrect for this Bloom filter (want %llu, have "
+"%llu)\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:862
+#: src/util/crypto_ecc.c:887
 #, c-format
 msgid "ECC signing failed at %s:%d: %s\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:917
+#: src/util/crypto_ecc.c:946
 #, c-format
 msgid "EdDSA signing failed at %s:%d: %s\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:996
+#: src/util/crypto_ecc.c:1025
 #, c-format
 msgid "ECDSA signature verification failed at %s:%d: %s\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:1057
+#: src/util/crypto_ecc.c:1086
 #, c-format
 msgid "EdDSA signature verification failed at %s:%d: %s\n"
 msgstr ""
@@ -8231,17 +7920,17 @@ msgstr ""
 msgid "RSA signature verification failed at %s:%d: %s\n"
 msgstr ""
 
-#: src/util/disk.c:1255
+#: src/util/disk.c:1265
 #, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr ""
 
-#: src/util/dnsparser.c:260
+#: src/util/dnsparser.c:264
 #, c-format
 msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
 msgstr ""
 
-#: src/util/dnsparser.c:950
+#: src/util/dnsparser.c:954
 #, c-format
 msgid "Failed to convert UTF-8 name `%s' to DNS IDNA format: %s\n"
 msgstr ""
@@ -8345,7 +8034,7 @@ msgstr ""
 msgid "print this help"
 msgstr ""
 
-#: src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:282 src/util/gnunet-qr.c:300
 msgid "be verbose"
 msgstr ""
 
@@ -8393,51 +8082,51 @@ msgstr ""
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:160
+#: src/util/gnunet-config.c:161
 #, fuzzy, c-format
 msgid "failed to load configuration defaults"
 msgstr "fornat invalide : « %s »\n"
 
-#: src/util/gnunet-config.c:173
+#: src/util/gnunet-config.c:174
 #, c-format
 msgid "%s or %s argument is required\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:181
+#: src/util/gnunet-config.c:182
 #, c-format
 msgid "The following sections are available:\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:232
+#: src/util/gnunet-config.c:234
 #, c-format
 msgid "--option argument required to set value\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:286
-msgid "obtain option of value as a filename (with $-expansion)"
+#: src/util/gnunet-config.c:288
+msgid "interpret option value as a filename (with $-expansion)"
 msgstr ""
 
-#: src/util/gnunet-config.c:291
+#: src/util/gnunet-config.c:293
 msgid "name of the section to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:296
+#: src/util/gnunet-config.c:298
 msgid "name of the option to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:301
+#: src/util/gnunet-config.c:303
 msgid "value to set"
 msgstr ""
 
-#: src/util/gnunet-config.c:305
+#: src/util/gnunet-config.c:307
 msgid "print available configuration sections"
 msgstr ""
 
-#: src/util/gnunet-config.c:309
+#: src/util/gnunet-config.c:311
 msgid "write configuration file that only contains delta to defaults"
 msgstr ""
 
-#: src/util/gnunet-config.c:322
+#: src/util/gnunet-config.c:324
 msgid "Manipulate GNUnet configuration files"
 msgstr ""
 
@@ -8530,6 +8219,33 @@ msgstr ""
 msgid "Manipulate GNUnet private ECC key files"
 msgstr ""
 
+#: src/util/gnunet-qr.c:108 src/util/gnunet-uri.c:91
+#, c-format
+msgid "Invalid URI: does not start with `%s'\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:116 src/util/gnunet-uri.c:98
+#, c-format
+msgid "Invalid URI: fails to specify subsystem\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:127 src/util/gnunet-uri.c:108
+#, c-format
+msgid "No handler known for subsystem `%s'\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:297
+msgid "use video-device DEVICE (default: /dev/video0"
+msgstr ""
+
+#: src/util/gnunet-qr.c:303
+msgid "do not show preview windows"
+msgstr ""
+
+#: src/util/gnunet-qr.c:311
+msgid "Scan a QR code using a video device and import the uri read"
+msgstr ""
+
 #: src/util/gnunet-resolver.c:168
 msgid "perform a reverse lookup"
 msgstr ""
@@ -8563,7 +8279,7 @@ msgstr ""
 msgid "Manipulate GNUnet proof of work files"
 msgstr ""
 
-#: src/util/gnunet-service-resolver.c:1443
+#: src/util/gnunet-service-resolver.c:1424
 msgid "No DNS server available. DNS resolution will not be possible.\n"
 msgstr ""
 
@@ -8572,21 +8288,6 @@ msgstr ""
 msgid "No URI specified on command line\n"
 msgstr ""
 
-#: src/util/gnunet-uri.c:91
-#, c-format
-msgid "Invalid URI: does not start with `%s'\n"
-msgstr ""
-
-#: src/util/gnunet-uri.c:98
-#, c-format
-msgid "Invalid URI: fails to specify subsystem\n"
-msgstr ""
-
-#: src/util/gnunet-uri.c:108
-#, c-format
-msgid "No handler known for subsystem `%s'\n"
-msgstr ""
-
 #: src/util/gnunet-uri.c:170
 msgid "Perform default-actions for GNUnet URIs"
 msgstr ""
@@ -8606,12 +8307,12 @@ msgstr ""
 msgid "Error writing to `%s': %s\n"
 msgstr ""
 
-#: src/util/network.c:136
+#: src/util/network.c:176
 #, c-format
 msgid "Unable to shorten unix path `%s' while keeping name unique\n"
 msgstr ""
 
-#: src/util/network.c:1795 src/util/network.c:1979
+#: src/util/network.c:1835 src/util/network.c:2019
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -8716,18 +8417,18 @@ msgstr ""
 msgid "Could not resolve our FQDN: %s\n"
 msgstr "Résolution de « %s » échouée : %s\n"
 
-#: src/util/service.c:1307
-msgid ""
-"Could not bind to any of the ports I was supposed to, refusing to run!\n"
-msgstr ""
-
-#: src/util/service.c:2141
+#: src/util/service.c:668
 #, c-format
 msgid ""
 "Processing code for message of type %u did not call "
 "`GNUNET_SERVICE_client_continue' after %s\n"
 msgstr ""
 
+#: src/util/service.c:1820
+msgid ""
+"Could not bind to any of the ports I was supposed to, refusing to run!\n"
+msgstr ""
+
 #: src/util/signal.c:89
 #, c-format
 msgid "signal (%d, %p) returned %d.\n"
@@ -8857,12 +8558,12 @@ msgstr ""
 msgid "Wrong format `%s' for network\n"
 msgstr ""
 
-#: src/util/time.c:828 src/util/time.c:860
+#: src/util/time.c:844 src/util/time.c:876
 #, c-format
 msgid "Failed to map `%s', cannot assure monotonic time!\n"
 msgstr ""
 
-#: src/util/time.c:866
+#: src/util/time.c:882
 #, c-format
 msgid ""
 "Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
@@ -9032,43 +8733,75 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr "Configurer des tunnels via VPN."
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #: src/zonemaster/gnunet-service-zonemaster.c:838
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 msgid "Failed to connect to the namestore!\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:772 src/include/gnunet_common.h:779
-#: src/include/gnunet_common.h:789
+#: src/include/gnunet_common.h:794 src/include/gnunet_common.h:801
+#: src/include/gnunet_common.h:811
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d. Aborting.\n"
 msgstr "opus_encode_float() échoué : %s. Annulation\n"
 
-#: src/include/gnunet_common.h:797
+#: src/include/gnunet_common.h:819
 #, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:809
+#: src/include/gnunet_common.h:831
 #, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:836 src/include/gnunet_common.h:845
+#: src/include/gnunet_common.h:858 src/include/gnunet_common.h:867
 #, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr ""
 
 #, fuzzy
-#~ msgid "Can not index file `%s': %s.\n"
+#~ msgid "# XT sessions active"
+#~ msgstr "# Session TCP active"
+
+#, fuzzy
+#~ msgid "Failed to bind XU socket to %s: %s\n"
 #~ msgstr "Résolution de « %s » échouée : %s\n"
 
 #, fuzzy
-#~ msgid "Unable to parse CAA record string `%s'\n"
+#~ msgid "Failed to open XU sockets\n"
+#~ msgstr "Résolution de « %s » échouée : %s\n"
+
+#, fuzzy
+#~ msgid "Failed to create XU network sockets\n"
+#~ msgstr "Résolution de « %s » échouée : %s\n"
+
+#, fuzzy
+#~ msgid "Dropping invalid fragment\n"
+#~ msgstr "Argument invalide « %s »\n"
+
+#, fuzzy
+#~ msgid "Failed to store fragment\n"
+#~ msgstr "Échec du démarrage de %s\n"
+
+#, fuzzy
+#~ msgid "Failed to begin modifying state: %d\n"
+#~ msgstr "Échec du démarrage de %s\n"
+
+#, fuzzy
+#~ msgid "Failed to modify state: %d\n"
+#~ msgstr "Échec du démarrage de %s\n"
+
+#, fuzzy
+#~ msgid "Unable to initialize Mysql.\n"
 #~ msgstr "Résolution de « %s » échouée\n"
 
 #, fuzzy
-#~ msgid "reduce output"
-#~ msgstr "sortie verbeuse"
+#~ msgid "Failed to run SQL statement `%s'\n"
+#~ msgstr "Échec du démarrage de %s\n"
+
+#, fuzzy
+#~ msgid "number of messages to replay from history"
+#~ msgstr "nombre de valeurs"
 
 #, fuzzy
 #~ msgid "Unable to connect to Postgres database '%s': %s\n"
@@ -9141,9 +8874,16 @@ msgstr ""
 #~ "\n"
 #~ "SUPU %s, %s, %d,my_identity = %s"
 
+#~ msgid "verbose output"
+#~ msgstr "sortie verbeuse"
+
 #~ msgid "malformed"
 #~ msgstr "malformé"
 
+#, fuzzy
+#~ msgid "Failed to start resolver!\n"
+#~ msgstr "Échec du démarrage de %s\n"
+
 #~ msgid "Benchmarking done\n"
 #~ msgstr "Benchmark terminé\n"
 
@@ -9153,3 +8893,7 @@ msgstr ""
 
 #~ msgid "unknown error"
 #~ msgstr "erreur unconnue."
+
+#, fuzzy
+#~ msgid "Failed to setup cadet channel!\n"
+#~ msgstr "Échec du démarrage de %s\n"
diff --git a/po/it.po b/po/it.po
index cbadc2375..25a5fd446 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,25 +1,160 @@
 # Italian translations for GNUnet package.
 # Copyright (C) 2018 Free Software Foundation, Inc.
 # This file is distributed under the same license as the GNUnet package.
-#
-# Sebastiano Pistore <address@hidden>, 2018-2019.
+# Sebastiano Pistore <address@hidden>, 2018.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.10.1\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-02-09 22:07+0000\n"
-"PO-Revision-Date: 2019-04-23 20:58+0200\n"
+"POT-Creation-Date: 2019-10-07 11:45+0200\n"
+"PO-Revision-Date: 2018-08-29 13:48+0200\n"
 "Last-Translator: Sebastiano Pistore <address@hidden>\n"
 "Language-Team: Italian <address@hidden>\n"
+"Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: it\n"
 "X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 2.2.1\n"
+"\n"
+"X-Generator: Poedit 2.0.7\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+#: src/abd/gnunet-abd.c:394 src/namestore/gnunet-namestore.c:994
+#, c-format
+msgid "Ego `%s' not known to identity service\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:410 src/abd/gnunet-abd.c:875
+#, c-format
+msgid "Issuer public key `%s' is not well-formed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:549 src/abd/gnunet-service-abd.c:1723
+#: src/namestore/gnunet-namestore.c:1019
+#: src/namestore/gnunet-namestore-fcfsd.c:1138
+#, c-format
+msgid "Failed to connect to namestore\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:814 src/abd/gnunet-abd.c:865
+#, c-format
+msgid "Issuer public key not well-formed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:823 src/abd/gnunet-abd.c:884
+#, fuzzy, c-format
+msgid "Failed to connect to ABD\n"
+msgstr "# connessioni attive"
+
+#: src/abd/gnunet-abd.c:829
+#, c-format
+msgid "You must provide issuer the attribute\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:836
+#, c-format
+msgid "ego required\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:846
+#, c-format
+msgid "Subject public key needed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:855
+#, c-format
+msgid "Subject public key `%s' is not well-formed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:890
+#, c-format
+msgid "You must provide issuer and subject attributes\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:946
+#, c-format
+msgid "Please specify name to lookup, subject key and issuer key!\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:967
+msgid "verify credential against attribute"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:974
+msgid ""
+"The public key of the subject to lookup thecredential for, or for issuer "
+"side storage: subject and its attributes"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:981
+msgid "The private, signed delegate presented by the subject"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:988
+msgid "The public key of the authority to verify the credential against"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:993
+msgid "The ego/zone name to use"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:999
+msgid "The issuer attribute to verify against or to issue"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1005
+msgid ""
+"The time to live for the credential.e.g. 5m, 6h, \"1990-12-30 12:00:00\""
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1010
+msgid "collect credentials"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1015
+msgid "Create and issue a credential issuer side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1020
+msgid "Issue a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1025
+msgid "Create, sign and return a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1032
+msgid "Import signed credentials that should be issued to a zone/ego"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1036
+msgid "Create private record entry."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1042 src/abd/gnunet-abd.c:1048
+msgid "Indicates that the collect/verify process is done via forward search."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1061
+msgid "GNUnet abd resolver tool"
+msgstr ""
+
+#: src/abd/gnunet-service-abd.c:1718 src/gns/gnunet-gns.c:185
+#: src/gns/gnunet-gns-helper-service-w32.c:727
+#, c-format
+msgid "Failed to connect to GNS\n"
+msgstr ""
+
+#: src/abd/plugin_gnsrecord_abd.c:182
+#, c-format
+msgid "Unable to parse ATTR record string `%s'\n"
+msgstr ""
+
+#: src/abd/plugin_rest_abd.c:1128 src/abd/plugin_rest_credential.c:1128
+msgid "GNS REST API initialized\n"
+msgstr ""
+
 #: src/arm/gnunet-arm.c:156
 #, c-format
 msgid "Failed to remove configuration file %s\n"
@@ -52,27 +187,24 @@ msgid "is starting"
 msgstr ""
 
 #: src/arm/gnunet-arm.c:246
-#, fuzzy
 msgid "is stopping"
-msgstr "# elementi memorizzati"
+msgstr ""
 
 #: src/arm/gnunet-arm.c:248
 msgid "is starting already"
 msgstr ""
 
 #: src/arm/gnunet-arm.c:250
-#, fuzzy
 msgid "is stopping already"
-msgstr "# elementi memorizzati"
+msgstr ""
 
 #: src/arm/gnunet-arm.c:252
 msgid "is started already"
 msgstr ""
 
 #: src/arm/gnunet-arm.c:254
-#, fuzzy
 msgid "is stopped already"
-msgstr "# elementi memorizzati"
+msgstr ""
 
 #: src/arm/gnunet-arm.c:256
 msgid "service is not known to ARM"
@@ -87,9 +219,8 @@ msgid "service cannot be manipulated because ARM is shutting 
down"
 msgstr ""
 
 #: src/arm/gnunet-arm.c:262
-#, fuzzy
 msgid "Unknown result code."
-msgstr "Comando `%s' sconosciuto.\n"
+msgstr ""
 
 #: src/arm/gnunet-arm.c:295
 msgid "Fatal error initializing ARM API.\n"
@@ -111,9 +242,9 @@ msgid "Failed to stop the ARM service: %s\n"
 msgstr ""
 
 #: src/arm/gnunet-arm.c:419
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to send a request to start the `%s' service: %s\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
 
 #: src/arm/gnunet-arm.c:429
 #, c-format
@@ -221,8 +352,7 @@ msgid "Control services and the Automated Restart Manager 
(ARM)"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:388 src/transport/plugin_transport_tcp.c:1120
-#: src/transport/plugin_transport_xt.c:1120
-#: src/transport/tcp_service_legacy.c:557 src/util/service.c:612
+#: src/transport/tcp_service_legacy.c:557
 #, c-format
 msgid ""
 "Disabling IPv6 support for service `%s', failed to create IPv6 socket: %s\n"
@@ -231,36 +361,30 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:412 src/arm/gnunet-service-arm.c:418
 #: src/transport/plugin_transport_tcp.c:1139
 #: src/transport/plugin_transport_tcp.c:1145
-#: src/transport/plugin_transport_tcp.c:3829
-#: src/transport/plugin_transport_xt.c:1139
-#: src/transport/plugin_transport_xt.c:1145
-#: src/transport/plugin_transport_xt.c:3833
+#: src/transport/plugin_transport_tcp.c:3835
 #: src/transport/tcp_service_legacy.c:576
-#: src/transport/tcp_service_legacy.c:582 src/util/service.c:637
-#: src/util/service.c:643
+#: src/transport/tcp_service_legacy.c:582 src/util/service.c:1150
+#: src/util/service.c:1156
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:457 src/transport/plugin_transport_tcp.c:1176
-#: src/transport/plugin_transport_xt.c:1176
-#: src/transport/tcp_service_legacy.c:613 src/util/client.c:506
-#: src/util/service.c:682
+#: src/transport/tcp_service_legacy.c:613 src/util/client.c:521
+#: src/util/service.c:1195
 #, c-format
 msgid "UNIXPATH `%s' too long, maximum length is %llu\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:462 src/transport/plugin_transport_tcp.c:1180
-#: src/transport/plugin_transport_xt.c:1180
-#: src/transport/tcp_service_legacy.c:617 src/util/client.c:511
-#: src/util/service.c:687
+#: src/transport/tcp_service_legacy.c:617 src/util/client.c:526
+#: src/util/service.c:1200
 #, c-format
 msgid "Using `%s' instead\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:495 src/transport/plugin_transport_tcp.c:1211
-#: src/transport/plugin_transport_xt.c:1211
-#: src/transport/tcp_service_legacy.c:648 src/util/service.c:723
+#: src/transport/tcp_service_legacy.c:648 src/util/service.c:1236
 #, c-format
 msgid ""
 "Disabling UNIX domain socket support for service `%s', failed to create UNIX "
@@ -268,8 +392,7 @@ msgid ""
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:517 src/transport/plugin_transport_tcp.c:1228
-#: src/transport/plugin_transport_xt.c:1228
-#: src/transport/tcp_service_legacy.c:665 src/util/service.c:741
+#: src/transport/tcp_service_legacy.c:665 src/util/service.c:1254
 #, c-format
 msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"
 msgstr ""
@@ -277,8 +400,7 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:556
 #: src/transport/plugin_transport_http_server.c:2688
 #: src/transport/plugin_transport_tcp.c:1259
-#: src/transport/plugin_transport_xt.c:1259
-#: src/transport/tcp_service_legacy.c:696 src/util/service.c:782
+#: src/transport/tcp_service_legacy.c:696 src/util/service.c:1295
 #, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr ""
@@ -286,8 +408,7 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:575
 #: src/transport/plugin_transport_http_server.c:2706
 #: src/transport/plugin_transport_tcp.c:1278
-#: src/transport/plugin_transport_xt.c:1278
-#: src/transport/tcp_service_legacy.c:715 src/util/service.c:802
+#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1315
 #, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr ""
@@ -295,7 +416,7 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:986
 #, c-format
 msgid "Failed to start service `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
 
 #: src/arm/gnunet-service-arm.c:997
 #, c-format
@@ -358,13 +479,138 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:837
-msgid "Stop logging\n"
+#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:892
+#: src/ats/gnunet-ats-solver-eval.c:2799
 #, c-format
-msgid "Start logging `%s'\n"
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:2840
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3294 src/ats-tests/gnunet-solver-eval.c:939
+msgid "solver to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3299 src/ats-tests/gnunet-solver-eval.c:945
+#: src/ats-tests/gnunet-solver-eval.c:950
+msgid "experiment to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3306
+msgid "print logging"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3311
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3316
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats-new.c:756
+#: src/ats/gnunet-service-ats_plugins.c:451
+#, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:304
+#, 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:314
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:359
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats2_common.c:90
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s': `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1274
+msgid "Problem size too large, cannot allocate memory!\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1870
+#, c-format
+msgid "Adding address for peer `%s' multiple times\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1914
+#, c-format
+msgid "Updating address property for peer `%s' %p not added before\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2476
+msgid ""
+"MLP solver is not optimizing for anything, changing to feasibility check\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
+#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
+#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
+#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
+#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
+#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
+#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
+#, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2671
+#, c-format
+msgid ""
+"Adjusting inconsistent outbound quota configuration for network `%s', is "
+"%llu must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2680
+#, c-format
+msgid ""
+"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
+"must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2690
+#, c-format
+msgid ""
+"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2699
+#, c-format
+msgid ""
+"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_proportional.c:1164
+#, c-format
+msgid "Invalid %s configuration %f\n"
 msgstr ""
 
 #: src/ats-tests/ats-testing.c:422
@@ -377,6 +623,15 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr ""
 
+#: src/ats-tests/ats-testing-log.c:837
+msgid "Stop logging\n"
+msgstr ""
+
+#: src/ats-tests/ats-testing-log.c:892
+#, c-format
+msgid "Start logging `%s'\n"
+msgstr ""
+
 #: src/ats-tests/gnunet-ats-sim.c:90
 #, c-format
 msgid ""
@@ -384,17 +639,6 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
-#: src/ats-tests/gnunet-solver-eval.c:939
-#: src/ats/gnunet-ats-solver-eval.c:3294
-msgid "solver to use"
-msgstr ""
-
-#: src/ats-tests/gnunet-solver-eval.c:945
-#: src/ats-tests/gnunet-solver-eval.c:950
-#: src/ats/gnunet-ats-solver-eval.c:3299
-msgid "experiment to use"
-msgstr ""
-
 #: src/ats-tool/gnunet-ats.c:307
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -413,13 +657,12 @@ msgid ""
 msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:402
-#, fuzzy
 msgid "active "
-msgstr "non attivo"
+msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:402
 msgid "inactive "
-msgstr "non attivo"
+msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:512
 #, c-format
@@ -471,9 +714,8 @@ msgid "get list of all active addresses"
 msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:960
-#, fuzzy
 msgid "connect to PEER"
-msgstr "# amici connessi"
+msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:964
 msgid "do not resolve IP addresses to hostnames"
@@ -481,7 +723,7 @@ msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:969
 msgid "monitor mode"
-msgstr "modalità monitor"
+msgstr ""
 
 #: src/ats-tool/gnunet-ats.c:974
 msgid "set preference for the given peer"
@@ -506,134 +748,9 @@ msgstr ""
 #: src/ats-tool/gnunet-ats.c:1001
 msgid "verbose output (include ATS address properties)"
 msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:1011
-msgid "Print information about ATS state"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2799
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2840
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3306
-msgid "print logging"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3311
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3316
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats-new.c:733
-#: src/ats/gnunet-service-ats_plugins.c:451
-#, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:304
-#, 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:314
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:359
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats2_common.c:90
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s': `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1274
-msgid "Problem size too large, cannot allocate memory!\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1870
-#, c-format
-msgid "Adding address for peer `%s' multiple times\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1914
-#, c-format
-msgid "Updating address property for peer `%s' %p not added before\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2476
-msgid ""
-"MLP solver is not optimizing for anything, changing to feasibility check\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
-#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
-#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
-#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
-#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
-#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
-#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
-#, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2671
-#, c-format
-msgid ""
-"Adjusting inconsistent outbound quota configuration for network `%s', is %"
-"llu must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2680
-#, c-format
-msgid ""
-"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
-"must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2690
-#, c-format
-msgid ""
-"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2699
-#, c-format
-msgid ""
-"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_proportional.c:1164
-#, c-format
-msgid "Invalid %s configuration %f\n"
+
+#: src/ats-tool/gnunet-ats.c:1011
+msgid "Print information about ATS state"
 msgstr ""
 
 #: src/auction/gnunet-auction-create.c:163
@@ -761,28 +878,6 @@ 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:145
-#, 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:216
-#, 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:277
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1036,8 +1131,30 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-playback-gst.c:361
+#: 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:145
+#, 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:216
+#, 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:622
+#: src/conversation/gnunet-helper-audio-playback-gst.c:361
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1157,9 +1274,9 @@ msgid "ogg_stream_init() failed.\n"
 msgstr ""
 
 #: src/conversation/gnunet-helper-audio-record.c:740
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to allocate %u bytes for second packet\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
 #: src/conversation/gnunet-service-conversation.c:1305
 #, c-format
@@ -1188,37 +1305,37 @@ msgstr ""
 #: src/core/gnunet-core.c:90
 #, fuzzy
 msgid "fresh connection"
-msgstr "# amici connessi"
+msgstr "# connessioni attive"
 
 #: src/core/gnunet-core.c:93
 msgid "key sent"
 msgstr ""
 
 #: src/core/gnunet-core.c:96
-#, fuzzy
 msgid "key received"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/core/gnunet-core.c:99
+#, fuzzy
 msgid "connection established"
-msgstr "connessione stabilita"
+msgstr "Connessione stabilita con `%s'\n"
 
 #: src/core/gnunet-core.c:102
 msgid "rekeying"
 msgstr ""
 
 #: src/core/gnunet-core.c:105
-#, fuzzy
 msgid "disconnected"
-msgstr "# amici connessi"
+msgstr ""
 
 #: src/core/gnunet-core.c:112
 msgid "Connection to CORE service lost (reconnecting)"
 msgstr ""
 
 #: src/core/gnunet-core.c:115
+#, fuzzy
 msgid "unknown state"
-msgstr "stato sconosciuto"
+msgstr "indirizzo sconosciuto"
 
 #: src/core/gnunet-core.c:120
 #, c-format
@@ -1294,22 +1411,21 @@ msgid "# key exchanges stopped"
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:925
+#, fuzzy
 msgid "# PING messages transmitted"
-msgstr "# Messaggi PING trasmessi"
+msgstr "# messaggi PONG ricevuti"
 
 #: src/core/gnunet-service-core_kx.c:992
 msgid "# old ephemeral keys ignored"
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1005
-#, fuzzy
 msgid "# duplicate ephemeral keys ignored"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1040
-#, fuzzy
 msgid "# EPHEMERAL_KEYs rejected (bad signature)"
-msgstr "# messaggi SYN ricevuti"
+msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1054
 #, c-format
@@ -1319,9 +1435,8 @@ msgid ""
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1060
-#, fuzzy
 msgid "# EPHEMERAL_KEY messages rejected due to time"
-msgstr "# messaggi SYN ricevuti"
+msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1080
 #, fuzzy
@@ -1329,7 +1444,7 @@ msgid "# valid ephemeral keys received"
 msgstr "# messaggi PONG ricevuti"
 
 #: src/core/gnunet-service-core_kx.c:1180
-#: src/transport/gnunet-service-transport_validation.c:1128
+#: src/transport/gnunet-service-transport_validation.c:1129
 msgid "# PING messages received"
 msgstr ""
 
@@ -1350,7 +1465,7 @@ msgid "# keepalive messages sent"
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1351
-#: src/transport/gnunet-service-transport_validation.c:1461
+#: src/transport/gnunet-service-transport_validation.c:1462
 msgid "# PONG messages received"
 msgstr "# messaggi PONG ricevuti"
 
@@ -1442,127 +1557,6 @@ msgstr ""
 msgid "# updates to my type map"
 msgstr ""
 
-#: src/credential/credential_misc.c:88
-#, fuzzy, c-format
-msgid "Unable to parse CRED record string `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
-
-#: src/credential/gnunet-credential.c:264 src/namestore/gnunet-namestore.c:994
-#, c-format
-msgid "Ego `%s' not known to identity service\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:280
-#: src/credential/gnunet-credential.c:434
-#, c-format
-msgid "Issuer public key `%s' is not well-formed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:361
-#: src/credential/gnunet-credential.c:423
-#, c-format
-msgid "Issuer public key not well-formed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:372
-#: src/credential/gnunet-credential.c:444
-#, fuzzy, c-format
-msgid "Failed to connect to CREDENTIAL\n"
-msgstr "Impossibile avviare il servizio.\n"
-
-#: src/credential/gnunet-credential.c:379
-#, c-format
-msgid "You must provide issuer the attribute\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:387
-#, c-format
-msgid "ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:403
-#, c-format
-msgid "Subject public key needed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:414
-#, c-format
-msgid "Subject public key `%s' is not well-formed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:451
-#, c-format
-msgid "You must provide issuer and subject attributes\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:504
-#, c-format
-msgid "Issuer ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:516
-#, c-format
-msgid "Please specify name to lookup, subject key and issuer key!\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:536
-msgid "create credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:540
-msgid "verify credential against attribute"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:545
-msgid "The public key of the subject to lookup the credential for"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:550
-msgid "The name of the credential presented by the subject"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:555
-msgid "The public key of the authority to verify the credential against"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:560
-msgid "The ego to use"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:565
-msgid "The issuer attribute to verify against or to issue"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:570
-msgid "The time to live for the credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:574
-msgid "collect credentials"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:588
-msgid "GNUnet credential resolver tool"
-msgstr ""
-
-#: src/credential/gnunet-service-credential.c:1138
-#: src/gns/gnunet-gns-helper-service-w32.c:727 src/gns/gnunet-gns.c:185
-#, c-format
-msgid "Failed to connect to GNS\n"
-msgstr ""
-
-#: src/credential/gnunet-service-credential.c:1144
-#: src/namestore/gnunet-namestore-fcfsd.c:1138
-#: src/namestore/gnunet-namestore.c:1019
-#, c-format
-msgid "Failed to connect to namestore\n"
-msgstr ""
-
-#: src/credential/plugin_gnsrecord_credential.c:186
-#, fuzzy, c-format
-msgid "Unable to parse ATTR record string `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
-
 #: src/datacache/datacache.c:119 src/datacache/datacache.c:311
 #: src/datastore/gnunet-service-datastore.c:757
 msgid "# bytes stored"
@@ -1591,14 +1585,12 @@ msgid "# requests filtered by bloom filter"
 msgstr ""
 
 #: src/datacache/datacache.c:385
-#, fuzzy
 msgid "# requests for random value received"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/datacache/datacache.c:417
-#, fuzzy
 msgid "# proximity search requests received"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/datacache/plugin_datacache_heap.c:553
 msgid "Heap datacache running\n"
@@ -1613,14 +1605,12 @@ msgstr ""
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_sqlite.c:53
 #: src/peerstore/plugin_peerstore_sqlite.c:52
-#: src/psycstore/plugin_psycstore_mysql.c:62
-#: src/reclaim/plugin_reclaim_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:56
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:53
 #: src/util/crypto_ecc_setup.c:41 src/util/crypto_mpi.c:39
-#: src/include/gnunet_common.h:818 src/include/gnunet_common.h:827
+#: src/include/gnunet_common.h:840 src/include/gnunet_common.h:849
 #: src/scalarproduct/scalarproduct.h:35
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
@@ -1630,7 +1620,6 @@ msgstr ""
 #: src/datastore/plugin_datastore_sqlite.c:508
 #: src/namecache/plugin_namecache_sqlite.c:229
 #: src/namestore/plugin_namestore_sqlite.c:265
-#: src/reclaim/plugin_reclaim_sqlite.c:336
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -1705,9 +1694,9 @@ msgid "Error queueing datastore GET operation\n"
 msgstr ""
 
 #: src/datastore/gnunet-datastore.c:287 src/datastore/gnunet-datastore.c:412
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to open dump file: %s\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
 #: src/datastore/gnunet-datastore.c:326
 #, c-format
@@ -1733,9 +1722,8 @@ msgid "Input file is not of a supported format\n"
 msgstr ""
 
 #: src/datastore/gnunet-datastore.c:458
-#, fuzzy
 msgid "Failed connecting to the datastore.\n"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
 #: src/datastore/gnunet-datastore.c:470
 #, c-format
@@ -1747,9 +1735,8 @@ msgid "Dump all records from the datastore"
 msgstr ""
 
 #: src/datastore/gnunet-datastore.c:497
-#, fuzzy
 msgid "Insert records into the datastore"
-msgstr "# byte inviati via SMTP"
+msgstr ""
 
 #: src/datastore/gnunet-datastore.c:502
 msgid "File to dump or insert"
@@ -1927,21 +1914,19 @@ msgid "`%s' for `%s' failed at %s:%d with error: %s\n"
 msgstr ""
 
 #: src/datastore/plugin_datastore_mysql.c:1180
-#: src/psycstore/plugin_psycstore_mysql.c:1936
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:276
-#: src/datastore/plugin_datastore_postgres.c:893
+#: src/datastore/plugin_datastore_postgres.c:280
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:854
+#: src/datastore/plugin_datastore_postgres.c:858
 msgid "Failed to drop table from database.\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:952
-#: src/psycstore/plugin_psycstore_postgres.c:1506
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -1957,8 +1942,6 @@ msgstr ""
 #: src/namecache/plugin_namecache_sqlite.c:173
 #: src/namestore/plugin_namestore_sqlite.c:206
 #: src/peerstore/plugin_peerstore_sqlite.c:535
-#: src/psycstore/plugin_psycstore_sqlite.c:325
-#: src/reclaim/plugin_reclaim_sqlite.c:212
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr ""
@@ -1980,8 +1963,7 @@ msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:1405
 #: src/namecache/plugin_namecache_sqlite.c:557
-#: src/namestore/plugin_namestore_sqlite.c:750
-#: src/reclaim/plugin_reclaim_sqlite.c:711
+#: src/namestore/plugin_namestore_sqlite.c:751
 msgid "Sqlite database running\n"
 msgstr ""
 
@@ -2051,14 +2033,59 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
+#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
+#, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:949 src/rps/gnunet-rps-profiler.c:3083
+msgid "number of peers to start"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:954
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
+#: src/testbed/gnunet-testbed-profiler.c:300
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:964
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:969
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:974
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:984
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:989
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1009
+msgid "Measure quality and performance of the DHT service."
+msgstr ""
+
 #: src/dht/gnunet-dht-put.c:134
 msgid "Must provide KEY and DATA for DHT put!\n"
 msgstr ""
 
 #: src/dht/gnunet-dht-put.c:142
-#, fuzzy
 msgid "Could not connect to DHT service!\n"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
 #: src/dht/gnunet-dht-put.c:153
 #, c-format
@@ -2257,89 +2284,43 @@ msgid "# P2P RESULTS received"
 msgstr ""
 
 #: src/dht/gnunet-service-dht_neighbours.c:2371
-msgid "# P2P RESULT bytes received"
-msgstr ""
-
-#: src/dht/gnunet-service-dht_nse.c:59
-msgid "# Network size estimates received"
-msgstr ""
-
-#: src/dht/gnunet-service-dht_routing.c:223
-msgid "# Good REPLIES matched against routing table"
-msgstr ""
-
-#: src/dht/gnunet-service-dht_routing.c:237
-msgid "# Duplicate REPLIES matched against routing table"
-msgstr ""
-
-#: src/dht/gnunet-service-dht_routing.c:243
-msgid "# Invalid REPLIES matched against routing table"
-msgstr ""
-
-#: src/dht/gnunet-service-dht_routing.c:249
-msgid "# Irrelevant REPLIES matched against routing table"
-msgstr ""
-
-#: src/dht/gnunet-service-dht_routing.c:261
-msgid "# Unsupported REPLIES matched against routing table"
-msgstr ""
-
-#: src/dht/gnunet-service-dht_routing.c:339
-msgid "# Entries removed from routing table"
-msgstr ""
-
-#: src/dht/gnunet-service-dht_routing.c:415
-msgid "# Entries added to routing table"
-msgstr ""
-
-#: src/dht/gnunet-service-dht_routing.c:437
-msgid "# DHT requests combined"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
-#, c-format
-msgid "Exiting as the number of peers is %u\n"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:949 src/rps/gnunet-rps-profiler.c:2953
-msgid "number of peers to start"
+msgid "# P2P RESULT bytes received"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:954
-msgid "number of PUTs to perform per peer"
+#: src/dht/gnunet-service-dht_nse.c:59
+msgid "# Network size estimates received"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
-#: src/testbed/gnunet-testbed-profiler.c:304
-msgid "name of the file with the login information for the testbed"
+#: src/dht/gnunet-service-dht_routing.c:223
+msgid "# Good REPLIES matched against routing table"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:964
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
+#: src/dht/gnunet-service-dht_routing.c:237
+msgid "# Duplicate REPLIES matched against routing table"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:969
-msgid "delay to start doing PUTs (default: 1 sec)"
+#: src/dht/gnunet-service-dht_routing.c:243
+msgid "# Invalid REPLIES matched against routing table"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:974
-msgid "delay to start doing GETs (default: 5 min)"
+#: src/dht/gnunet-service-dht_routing.c:249
+msgid "# Irrelevant REPLIES matched against routing table"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "replication degree for DHT PUTs"
+#: src/dht/gnunet-service-dht_routing.c:261
+msgid "# Unsupported REPLIES matched against routing table"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:984
-msgid "chance that a peer is selected at random for PUTs"
+#: src/dht/gnunet-service-dht_routing.c:339
+msgid "# Entries removed from routing table"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:989
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+#: src/dht/gnunet-service-dht_routing.c:415
+msgid "# Entries added to routing table"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:1009
-msgid "Measure quality and performance of the DHT service."
+#: src/dht/gnunet-service-dht_routing.c:437
+msgid "# DHT requests combined"
 msgstr ""
 
 #: src/dht/plugin_block_dht.c:189
@@ -2426,10 +2407,6 @@ msgstr ""
 msgid "`%s' must be installed SUID, will not run DNS interceptor\n"
 msgstr ""
 
-#: src/dv/gnunet-dv.c:175
-msgid "Print information about DV state"
-msgstr ""
-
 #: src/exit/gnunet-daemon-exit.c:960
 msgid "# TCP packets sent via TUN"
 msgstr ""
@@ -2450,38 +2427,32 @@ msgid "# Bytes received from CADET"
 msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:1467
-#, fuzzy
 msgid "# UDP IP-exit requests received via cadet"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:1575
-#, fuzzy
 msgid "# UDP service requests received via cadet"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:1615
-#, fuzzy
 msgid "# TCP service creation requests received via cadet"
-msgstr "# connessioni attive"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:1704
-#, fuzzy
 msgid "# TCP IP-exit creation requests received via cadet"
-msgstr "# connessioni attive"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:1788
 msgid "# TCP DATA requests dropped (no session)"
 msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:1825
-#, fuzzy
 msgid "# TCP data requests received via cadet"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:1956
-#, fuzzy
 msgid "# ICMP IP-exit requests received via cadet"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:2022 src/exit/gnunet-daemon-exit.c:2279
 #: src/exit/gnunet-daemon-exit.c:2634 src/vpn/gnunet-service-vpn.c:828
@@ -2496,9 +2467,8 @@ msgid "# ICMPv6 packets dropped (type not allowed)"
 msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:2210
-#, fuzzy
 msgid "# ICMP service requests received via cadet"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:2264 src/vpn/gnunet-service-vpn.c:985
 #: src/vpn/gnunet-service-vpn.c:2096
@@ -2511,9 +2481,8 @@ msgid "# ICMPv6 packets dropped (impossible PT to v4)"
 msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:2402 src/exit/gnunet-daemon-exit.c:3068
-#, fuzzy
 msgid "# Inbound CADET channels created"
-msgstr "# messaggi PONG decrittati"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:2522
 #, c-format
@@ -2521,9 +2490,8 @@ msgid "Got duplicate service records for `%s:%u'\n"
 msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:2541
-#, fuzzy
 msgid "# Messages transmitted via cadet channels"
-msgstr "# Messaggi PING trasmessi"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:2719
 msgid "# ICMP packets dropped (not allowed)"
@@ -2619,7 +2587,7 @@ msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:3690
 msgid "Must be a number"
-msgstr "Deve essere un numero"
+msgstr ""
 
 #: src/exit/gnunet-daemon-exit.c:3805
 #, c-format
@@ -2824,9 +2792,9 @@ msgid ""
 msgstr ""
 
 #: src/fs/fs_list_indexed.c:152
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to receive response from `%s' service.\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
 #: src/fs/fs_list_indexed.c:196
 #, c-format
@@ -2862,58 +2830,62 @@ msgstr ""
 msgid "Publishing failed: %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:724 src/fs/fs_publish.c:778 src/fs/fs_publish.c:823
-#: src/fs/fs_publish.c:844 src/fs/fs_publish.c:874 src/fs/fs_publish.c:1140
+#: src/fs/fs_publish.c:725
+#, fuzzy, c-format
+msgid "Can not index file `%s': %s.\n"
+msgstr "Connessione stabilita con `%s'\n"
+
+#: src/fs/fs_publish.c:782 src/fs/fs_publish.c:827 src/fs/fs_publish.c:848
+#: src/fs/fs_publish.c:878 src/fs/fs_publish.c:1144
 #, c-format
 msgid "Can not index file `%s': %s.  Will try to insert instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:780
-#, fuzzy
+#: src/fs/fs_publish.c:784
 msgid "error on index-start request to `fs' service"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
-#: src/fs/fs_publish.c:825
+#: src/fs/fs_publish.c:829
 msgid "failed to compute hash"
-msgstr "impossibile calcolare l'hash"
+msgstr ""
 
-#: src/fs/fs_publish.c:845
+#: src/fs/fs_publish.c:849
 msgid "filename too long"
-msgstr "nome file troppo lungo"
+msgstr ""
 
-#: src/fs/fs_publish.c:876
+#: src/fs/fs_publish.c:880
 msgid "could not connect to `fs' service"
 msgstr ""
 
-#: src/fs/fs_publish.c:902
+#: src/fs/fs_publish.c:906
 #, c-format
 msgid "Failed to get file identifiers for `%s'\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:991 src/fs/fs_publish.c:1027
+#: src/fs/fs_publish.c:995 src/fs/fs_publish.c:1031
 msgid "Can not create LOC URI. Will continue with CHK instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:1094
+#: src/fs/fs_publish.c:1098
 #, c-format
 msgid "Recursive upload failed at `%s': %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:1102
+#: src/fs/fs_publish.c:1106
 #, c-format
 msgid "Recursive upload failed: %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:1142
+#: src/fs/fs_publish.c:1146
 msgid "needs to be an actual file"
 msgstr ""
 
-#: src/fs/fs_publish.c:1381
+#: src/fs/fs_publish.c:1385
 #, c-format
 msgid "Datastore failure: %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:1472
+#: src/fs/fs_publish.c:1476
 #, c-format
 msgid "Reserving space for %u entries and %llu bytes for publication\n"
 msgstr ""
@@ -2924,7 +2896,7 @@ msgstr ""
 
 #: src/fs/fs_publish_ublock.c:241
 msgid "Internal error."
-msgstr "Errore interno."
+msgstr ""
 
 #: src/fs/fs_search.c:822 src/fs/fs_search.c:892
 #, c-format
@@ -2942,7 +2914,7 @@ msgstr ""
 
 #: src/fs/fs_unindex.c:68
 msgid "Failed to read file"
-msgstr "Impossibile leggere il file"
+msgstr ""
 
 #: src/fs/fs_unindex.c:275
 msgid "Error communicating with `fs' service."
@@ -2976,94 +2948,94 @@ msgstr ""
 
 #: src/fs/fs_unindex.c:704
 msgid "Failed to compute hash of file."
-msgstr "Impossibile calcolare l'hash del file."
+msgstr ""
 
-#: src/fs/fs_uri.c:234
+#: src/fs/fs_uri.c:236
 #, no-c-format
 msgid "Malformed KSK URI (`%' must be followed by HEX number)"
 msgstr ""
 
-#: src/fs/fs_uri.c:293
+#: src/fs/fs_uri.c:295
 msgid "Malformed KSK URI (must not begin or end with `+')"
 msgstr ""
 
-#: src/fs/fs_uri.c:311
+#: src/fs/fs_uri.c:313
 msgid "Malformed KSK URI (`++' not allowed)"
 msgstr ""
 
-#: src/fs/fs_uri.c:318
+#: src/fs/fs_uri.c:320
 msgid "Malformed KSK URI (quotes not balanced)"
 msgstr ""
 
-#: src/fs/fs_uri.c:388
+#: src/fs/fs_uri.c:390
 msgid "Malformed SKS URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:429
+#: src/fs/fs_uri.c:431
 msgid "Malformed CHK URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:444
+#: src/fs/fs_uri.c:446
 msgid "Malformed CHK URI (failed to decode CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:523
+#: src/fs/fs_uri.c:525
 msgid "LOC URI malformed (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:538
+#: src/fs/fs_uri.c:540
 msgid "LOC URI malformed (no CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:548
+#: src/fs/fs_uri.c:550
 msgid "LOC URI malformed (missing LOC)"
 msgstr ""
 
-#: src/fs/fs_uri.c:556
+#: src/fs/fs_uri.c:558
 msgid "LOC URI malformed (wrong syntax for public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:564
+#: src/fs/fs_uri.c:566
 msgid "LOC URI malformed (could not decode public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:570
+#: src/fs/fs_uri.c:572
 msgid "LOC URI malformed (could not find signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:576
+#: src/fs/fs_uri.c:578
 msgid "LOC URI malformed (wrong syntax for signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:585
+#: src/fs/fs_uri.c:587
 msgid "LOC URI malformed (could not decode signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:591
+#: src/fs/fs_uri.c:593
 msgid "LOC URI malformed (wrong syntax for expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:597
+#: src/fs/fs_uri.c:599
 msgid "LOC URI malformed (could not parse expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:609
+#: src/fs/fs_uri.c:611
 msgid "LOC URI malformed (signature failed validation)"
 msgstr ""
 
-#: src/fs/fs_uri.c:643
+#: src/fs/fs_uri.c:645
 msgid "invalid argument"
-msgstr "argomento non valido"
+msgstr ""
 
-#: src/fs/fs_uri.c:655
+#: src/fs/fs_uri.c:657
 msgid "Unrecognized URI type"
 msgstr ""
 
-#: src/fs/fs_uri.c:1059 src/fs/fs_uri.c:1086
+#: src/fs/fs_uri.c:1061 src/fs/fs_uri.c:1088
 msgid "No keywords specified!\n"
 msgstr ""
 
-#: src/fs/fs_uri.c:1092
+#: src/fs/fs_uri.c:1094
 msgid "Number of double-quotes not balanced!\n"
 msgstr ""
 
@@ -3103,11 +3075,11 @@ msgstr ""
 msgid "set the desired LEVEL of sender-anonymity"
 msgstr ""
 
-#: src/fs/gnunet-auto-share.c:772 src/fs/gnunet-publish.c:907
+#: src/fs/gnunet-auto-share.c:772
 msgid "disable adding the creation time to the metadata of the uploaded file"
 msgstr ""
 
-#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:912
+#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:907
 msgid "do not use libextractor to add keywords or metadata"
 msgstr ""
 
@@ -3187,7 +3159,7 @@ msgid "Downloading `%s' done (%s/s).\n"
 msgstr ""
 
 #: src/fs/gnunet-download.c:216 src/fs/gnunet-publish.c:295
-#: src/fs/gnunet-search.c:212 src/fs/gnunet-unindex.c:107
+#: src/fs/gnunet-search.c:215 src/fs/gnunet-unindex.c:107
 #, c-format
 msgid "Unexpected status: %d\n"
 msgstr ""
@@ -3210,12 +3182,12 @@ msgid "Target filename must be specified.\n"
 msgstr ""
 
 #: src/fs/gnunet-download.c:291 src/fs/gnunet-publish.c:872
-#: src/fs/gnunet-search.c:270 src/fs/gnunet-unindex.c:139
+#: src/fs/gnunet-search.c:273 src/fs/gnunet-unindex.c:139
 #, c-format
 msgid "Could not initialize `%s' subsystem.\n"
 msgstr ""
 
-#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:312
+#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:315
 msgid "set the desired LEVEL of receiver-anonymity"
 msgstr ""
 
@@ -3223,7 +3195,7 @@ msgstr ""
 msgid "delete incomplete downloads (when aborted with CTRL-C)"
 msgstr ""
 
-#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:316
+#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:319
 msgid "only search the local peer (no P2P network search)"
 msgstr ""
 
@@ -3249,6 +3221,14 @@ msgid ""
 "chk/...)"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:119
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:130
+msgid "Special file-sharing operations"
+msgstr ""
+
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr ""
@@ -3265,14 +3245,6 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:119
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:130
-msgid "Special file-sharing operations"
-msgstr ""
-
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:231
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3361,9 +3333,8 @@ msgid "Meta data extraction has finished.\n"
 msgstr ""
 
 #: src/fs/gnunet-publish.c:687
-#, fuzzy
-msgid "Internal error scanning directory.\n"
-msgstr "Errore interno."
+msgid "Error scanning directory.\n"
+msgstr ""
 
 #: src/fs/gnunet-publish.c:715
 #, c-format
@@ -3407,6 +3378,10 @@ msgstr ""
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr ""
 
+#: src/fs/gnunet-publish.c:911
+msgid "enable adding the creation time to the metadata of the uploaded file"
+msgstr ""
+
 #: src/fs/gnunet-publish.c:916
 msgid ""
 "print list of extracted keywords that would be used, but do not perform "
@@ -3465,32 +3440,32 @@ msgstr ""
 msgid "Failed to write directory with search results to `%s'\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:204
+#: src/fs/gnunet-search.c:207
 #, c-format
 msgid "Error searching: %s.\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:260
+#: src/fs/gnunet-search.c:263
 msgid "Could not create keyword URI from arguments.\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:284
+#: src/fs/gnunet-search.c:287
 msgid "Could not start searching.\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:321
+#: src/fs/gnunet-search.c:324
 msgid "write search results to file starting with PREFIX"
 msgstr ""
 
-#: src/fs/gnunet-search.c:326
+#: src/fs/gnunet-search.c:329
 msgid "automatically terminate search after DELAY"
 msgstr ""
 
-#: src/fs/gnunet-search.c:332
+#: src/fs/gnunet-search.c:335
 msgid "automatically terminate search after VALUE results are found"
 msgstr ""
 
-#: src/fs/gnunet-search.c:348
+#: src/fs/gnunet-search.c:351
 msgid "Search GNUnet for files that were published on GNUnet"
 msgstr ""
 
@@ -3534,14 +3509,12 @@ msgid "Failed to connect to `%s' service.\n"
 msgstr ""
 
 #: src/fs/gnunet-service-fs_cadet_client.c:370
-#, fuzzy
 msgid "# replies received via cadet"
-msgstr "# ACK ricevuti"
+msgstr ""
 
 #: src/fs/gnunet-service-fs_cadet_client.c:384
-#, fuzzy
 msgid "# replies received via cadet dropped"
-msgstr "# ACK ricevuti"
+msgstr ""
 
 #: src/fs/gnunet-service-fs_cadet_server.c:265
 msgid "# queries received via CADET not answered"
@@ -3552,9 +3525,8 @@ msgid "# Blocks transferred via cadet"
 msgstr ""
 
 #: src/fs/gnunet-service-fs_cadet_server.c:346
-#, fuzzy
 msgid "# queries received via cadet"
-msgstr "# ACK ricevuti"
+msgstr ""
 
 #: src/fs/gnunet-service-fs_cadet_server.c:388
 #, fuzzy
@@ -3649,7 +3621,7 @@ msgstr ""
 #: src/fs/gnunet-service-fs_indexing.c:151
 #, c-format
 msgid "Error writing `%s'.\n"
-msgstr "Errore durante la scrittura di `%s'.\n"
+msgstr ""
 
 #: src/fs/gnunet-service-fs_indexing.c:253
 #, c-format
@@ -3876,38 +3848,38 @@ msgstr ""
 msgid "GNUnet HTTP server to create business cards"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:203
+#: src/gns/gnunet-dns2gns.c:214
 msgid "Failed to pack DNS response into UDP packet!\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:405
+#: src/gns/gnunet-dns2gns.c:416
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:421
+#: src/gns/gnunet-dns2gns.c:432
 #, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:429
+#: src/gns/gnunet-dns2gns.c:440
 #, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:588
+#: src/gns/gnunet-dns2gns.c:600
 msgid "No DNS server specified!\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:688
+#: src/gns/gnunet-dns2gns.c:748
 msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:693
+#: src/gns/gnunet-dns2gns.c:753
 msgid "UDP port to listen on for inbound DNS requests; default: 2853"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:710
+#: src/gns/gnunet-dns2gns.c:770
 msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
 msgstr ""
 
@@ -3923,6 +3895,27 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:199
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:233
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:238
+msgid "Specify the type of the record to lookup"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:242
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:258
+msgid "GNUnet GNS resolver tool"
+msgstr ""
+
 #: src/gns/gnunet-gns-helper-service-w32.c:602
 msgid "Not ready to process requests, lacking ego data\n"
 msgstr ""
@@ -3957,139 +3950,117 @@ msgstr ""
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:980
+#: src/gns/gnunet-gns-proxy.c:989
 #, c-format
 msgid "Unsupported CURL TLS backend %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1005
+#: src/gns/gnunet-gns-proxy.c:1014
 #, c-format
 msgid "Failed to fetch CN from cert: %s\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1026
+#: src/gns/gnunet-gns-proxy.c:1035
 #, c-format
 msgid "Failed to initialize DANE: %s\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1041
+#: src/gns/gnunet-gns-proxy.c:1050
 #, c-format
 msgid "Failed to parse DANE record: %s\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1056
+#: src/gns/gnunet-gns-proxy.c:1065
 #, c-format
 msgid "Failed to verify TLS connection using DANE: %s\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1066
+#: src/gns/gnunet-gns-proxy.c:1075
 #, c-format
 msgid "Failed DANE verification failed with GnuTLS verify status code: %u\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1090
+#: src/gns/gnunet-gns-proxy.c:1099
 #, c-format
 msgid "TLS certificate subject name (%s) does not match `%s': %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1221
+#: src/gns/gnunet-gns-proxy.c:1230
 #, c-format
 msgid "Cookie domain `%s' supplied by server is invalid\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2121
+#: src/gns/gnunet-gns-proxy.c:2131
 #, c-format
 msgid "Unsupported HTTP method `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2642
+#: src/gns/gnunet-gns-proxy.c:2652
 #, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2674
-#, fuzzy, c-format
+#: src/gns/gnunet-gns-proxy.c:2684
+#, c-format
 msgid "Unable to import certificate from `%s'\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2875
+#: src/gns/gnunet-gns-proxy.c:2885
 #, c-format
 msgid "Failed to start HTTPS server for `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2897 src/rest/gnunet-rest-server.c:658
+#: src/gns/gnunet-gns-proxy.c:2907 src/rest/gnunet-rest-server.c:668
 msgid "Failed to pass client to MHD\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3233
+#: src/gns/gnunet-gns-proxy.c:3243
 #, c-format
 msgid "Unsupported socks version %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3262
+#: src/gns/gnunet-gns-proxy.c:3272
 #, c-format
 msgid "Unsupported socks command %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3345
+#: src/gns/gnunet-gns-proxy.c:3355
 #, c-format
 msgid "Unsupported socks address type %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3635
+#: src/gns/gnunet-gns-proxy.c:3693
 #, c-format
 msgid "Failed to load X.509 key and certificate from `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3763
+#: src/gns/gnunet-gns-proxy.c:3821
 msgid "listen on specified port (default: 7777)"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3768
+#: src/gns/gnunet-gns-proxy.c:3826
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3772
+#: src/gns/gnunet-gns-proxy.c:3830
 msgid "disable use of IPv6"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3798
+#: src/gns/gnunet-gns-proxy.c:3856
 msgid "GNUnet GNS proxy"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:199
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:233
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:238
-msgid "Specify the type of the record to lookup"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:242
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:258
-msgid "GNUnet GNS resolver tool"
-msgstr ""
-
 #: src/gns/gnunet-service-gns.c:506
-#, fuzzy
 msgid "Properly base32-encoded public key required"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/gns/gnunet-service-gns.c:542
 msgid "Failed to connect to the namecache!\n"
 msgstr ""
 
 #: src/gns/gnunet-service-gns.c:561
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #: src/zonemaster/gnunet-service-zonemaster.c:875
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 msgid "Could not connect to DHT!\n"
 msgstr ""
 
@@ -4175,9 +4146,13 @@ msgid "Unable to parse VPN record string `%s'\n"
 msgstr ""
 
 #: src/gns/plugin_gnsrecord_gns.c:294
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to parse BOX record string `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
+
+#: src/gns/plugin_rest_gns.c:452
+msgid "Gns REST API initialized\n"
+msgstr ""
 
 #: src/gnsrecord/plugin_gnsrecord_dns.c:359
 #, c-format
@@ -4225,14 +4200,14 @@ msgid "Failed to serialize MX record with hostname 
`%s'\n"
 msgstr ""
 
 #: src/gnsrecord/plugin_gnsrecord_dns.c:630
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to parse SRV record `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
 
 #: src/gnsrecord/plugin_gnsrecord_dns.c:646
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to serialize SRV record with target `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
 
 #: src/gnsrecord/plugin_gnsrecord_dns.c:663
 #, c-format
@@ -4556,7 +4531,7 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:679
-#: src/transport/gnunet-service-transport.c:2814
+#: src/transport/gnunet-service-transport.c:2827
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 
@@ -4576,14 +4551,12 @@ msgid "Address to obtain hostlist: `%s'\n"
 msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:731
-#, fuzzy
 msgid "BINDTOIP does not a valid IPv4 address! Ignoring BINDTOIPV4.\n"
-msgstr "`%s' non è un indirizzo IP valido.\n"
+msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:748
-#, fuzzy
 msgid "BINDTOIP does not a valid IPv4 address! Ignoring BINDTOIPV6.\n"
-msgstr "`%s' non è un indirizzo IP valido.\n"
+msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:769
 #, fuzzy, c-format
@@ -4687,13 +4660,13 @@ msgstr ""
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr ""
 
+#: src/identity/plugin_rest_identity.c:1297
+msgid "Identity REST API initialized\n"
+msgstr ""
+
 #: src/json/json.c:123
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to parse JSON in option `%s': %s (%s)\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
-
-#: src/multicast/gnunet-multicast.c:48 src/multicast/gnunet-multicast.c:72
-msgid "This command doesn't do anything yet."
 msgstr ""
 
 #: src/my/my.c:196 src/my/my.c:215
@@ -4727,9 +4700,9 @@ msgid "You must specify which zone should be accessed\n"
 msgstr ""
 
 #: src/namecache/gnunet-namecache.c:193
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid public key for zone `%s'\n"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/namecache/gnunet-namecache.c:201
 #, c-format
@@ -4758,27 +4731,27 @@ msgstr ""
 
 #: src/namecache/plugin_namecache_flat.c:121
 #: src/namecache/plugin_namecache_flat.c:255
-#: src/namestore/plugin_namestore_heap.c:148
-#: src/namestore/plugin_namestore_heap.c:395
+#: src/namestore/plugin_namestore_heap.c:179
+#: src/namestore/plugin_namestore_heap.c:412
 #: src/peerstore/plugin_peerstore_flat.c:379
 #: src/peerstore/plugin_peerstore_flat.c:538
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to initialize file: %s.\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
 #: src/namecache/plugin_namecache_flat.c:132
-#: src/namestore/plugin_namestore_heap.c:159
+#: src/namestore/plugin_namestore_heap.c:190
 #: src/peerstore/plugin_peerstore_flat.c:394
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to get filesize: %s.\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
 #: src/namecache/plugin_namecache_flat.c:151
-#: src/namestore/plugin_namestore_heap.c:172
+#: src/namestore/plugin_namestore_heap.c:203
 #: src/peerstore/plugin_peerstore_flat.c:406
-#, fuzzy, c-format
+#, c-format
 msgid "Unable to read file: %s.\n"
-msgstr "Impossibile leggere il file"
+msgstr ""
 
 #: src/namecache/plugin_namecache_flat.c:410
 msgid "flat plugin running\n"
@@ -4788,70 +4761,8 @@ msgstr ""
 #: src/namecache/plugin_namecache_sqlite.c:197
 #: src/namestore/plugin_namestore_sqlite.c:219
 #: src/namestore/plugin_namestore_sqlite.c:230
-#, fuzzy, c-format
-msgid "Failed to setup database at `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:549
-#, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:576
-#, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:597
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:629
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:689
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:777
-#, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:796
 #, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:832
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:841
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1071
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1099
-msgid "Failed to start HTTP server\n"
-msgstr "Impossibile avviare il server HTTP\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1147
-msgid "Failed to connect to identity\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1173
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1192
-msgid "GNU Name System First Come First Serve name registration service"
+msgid "Failed to setup database at `%s'\n"
 msgstr ""
 
 #: src/namestore/gnunet-namestore.c:341
@@ -4897,9 +4808,9 @@ msgid ""
 msgstr ""
 
 #: src/namestore/gnunet-namestore.c:965
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to replace records: %s\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
 
 #: src/namestore/gnunet-namestore.c:1009
 #, c-format
@@ -4993,9 +4904,9 @@ msgid "Unknown record type `%s'\n"
 msgstr "Comando `%s' sconosciuto.\n"
 
 #: src/namestore/gnunet-namestore.c:1484
-#, fuzzy, c-format
+#, c-format
 msgid "Invalid record data for type %s: `%s'.\n"
-msgstr "deve essere un indirizzo IPv6 valido"
+msgstr ""
 
 #: src/namestore/gnunet-namestore.c:1548
 msgid "add record"
@@ -5058,6 +4969,68 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
+#: src/namestore/gnunet-namestore-fcfsd.c:549
+#, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:576
+#, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:597
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:629
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:689
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:777
+#, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:796
+#, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:832
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:841
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1071
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1099
+msgid "Failed to start HTTP server\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1147
+msgid "Failed to connect to identity\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1173
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1192
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-service-namestore.c:900
 #, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5075,18 +5048,22 @@ msgstr ""
 msgid "Namestore failed to store record\n"
 msgstr ""
 
-#: src/namestore/plugin_namestore_heap.c:778
+#: src/namestore/plugin_namestore_heap.c:773
 msgid "heap file database running\n"
 msgstr ""
 
+#: src/namestore/plugin_rest_namestore.c:1079
+msgid "Namestore REST API initialized\n"
+msgstr ""
+
 #: src/nat-auto/gnunet-nat-auto.c:193
 msgid "Suggested configuration changes:\n"
 msgstr ""
 
 #: src/nat-auto/gnunet-nat-auto.c:219
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to write configuration to `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
 
 #: src/nat-auto/gnunet-nat-auto.c:226
 #, c-format
@@ -5130,9 +5107,8 @@ msgstr ""
 
 #: src/nat-auto/gnunet-nat-auto_legacy.c:568
 #: src/nat-auto/nat_auto_api_test.c:575
-#, fuzzy
 msgid "NAT test failed to start NAT library\n"
-msgstr "Impossibile avviare il server HTTP\n"
+msgstr ""
 
 #: src/nat-auto/gnunet-service-nat-auto.c:342
 msgid "UPnP client `upnpc` command not found, disabling UPnP\n"
@@ -5272,9 +5248,9 @@ msgid "Failed to find valid PORT in section `%s'\n"
 msgstr ""
 
 #: src/nat-auto/nat_auto_api_test.c:526
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create socket bound to `%s' for NAT test: %s\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
 #: src/nat/gnunet-nat.c:437
 msgid "which IP and port are we locally using to bind/listen to"
@@ -5350,6 +5326,10 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
+#: src/nse/gnunet-nse.c:122
+msgid "Show network size estimates from NSE service."
+msgstr ""
+
 #: src/nse/gnunet-nse-profiler.c:849
 msgid "limit to the number of connections to NSE services, 0 for none"
 msgstr ""
@@ -5374,15 +5354,65 @@ msgstr ""
 msgid "Measure quality and performance of the NSE service."
 msgstr ""
 
-#: src/nse/gnunet-nse.c:122
-msgid "Show network size estimates from NSE service."
-msgstr ""
-
 #: src/nse/gnunet-service-nse.c:1534
 #: src/revocation/gnunet-service-revocation.c:843 src/util/gnunet-scrypt.c:276
 msgid "Value is too large.\n"
 msgstr ""
 
+#: src/peerinfo/gnunet-service-peerinfo.c:178
+#, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:313
+#, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:334
+#: src/peerinfo/gnunet-service-peerinfo.c:365
+#, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:449
+msgid "# peers known"
+msgstr "# peer conosciuti"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:492
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:659
+#, c-format
+msgid "Scanning directory `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:667
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1100
+#, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1438
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1451
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:220
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+
 #: src/peerinfo-tool/gnunet-peerinfo.c:239
 #, c-format
 msgid "%sPeer `%s'\n"
@@ -5394,10 +5424,10 @@ msgid "\tExpires: %s \t %s\n"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:299
-#: src/rest-plugins/plugin_rest_peerinfo.c:501
-#, fuzzy, c-format
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:501
+#, c-format
 msgid "Failure: Cannot convert address to string for peer `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:466
 #, c-format
@@ -5473,58 +5503,8 @@ msgstr ""
 msgid "Failed to load transport plugin for `%s'\n"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:178
-#, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:313
-#, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:334
-#: src/peerinfo/gnunet-service-peerinfo.c:365
-#, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:449
-msgid "# peers known"
-msgstr "# peer conosciuti"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:492
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:659
-#, c-format
-msgid "Scanning directory `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:667
-#, c-format
-msgid "Still no peers found in `%s'!\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1100
-#, c-format
-msgid "Cleaning up directory `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1438
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1451
-msgid "Skipping import of included HELLOs\n"
-msgstr ""
-
-#: src/peerinfo/peerinfo_api.c:220
-msgid "Failed to receive response from `PEERINFO' service."
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:796
+msgid "Peerinfo REST API initialized\n"
 msgstr ""
 
 #: src/peerstore/gnunet-peerstore.c:91
@@ -5536,150 +5516,40 @@ msgstr ""
 msgid "Could not load database backend `%s'\n"
 msgstr ""
 
-#: src/peerstore/peerstore_api.c:532 src/peerstore/peerstore_api.c:581
+#: src/peerstore/peerstore_api.c:605 src/peerstore/peerstore_api.c:657
 msgid "Unexpected iteration response, this should not happen.\n"
 msgstr ""
 
-#: src/peerstore/peerstore_api.c:595
-msgid "Received a malformed response from service."
-msgstr ""
-
-#: src/peerstore/peerstore_api.c:731
-msgid "Received a watch result for a non existing watch.\n"
-msgstr ""
-
-#: src/peerstore/plugin_peerstore_sqlite.c:453
-#: src/psycstore/plugin_psycstore_sqlite.c:282
-#, c-format
-msgid ""
-"Error executing SQL query: %s\n"
-"  %s\n"
-msgstr ""
-
-#: src/peerstore/plugin_peerstore_sqlite.c:488
-#: src/psycstore/plugin_psycstore_mysql.c:250
-#: src/psycstore/plugin_psycstore_sqlite.c:259
-#, c-format
-msgid ""
-"Error preparing SQL query: %s\n"
-"  %s\n"
-msgstr ""
-
-#: src/peerstore/plugin_peerstore_sqlite.c:570
-#, fuzzy, c-format
-msgid "Unable to create indices: %s.\n"
-msgstr "Generazione statistiche fallita\n"
-
-#: src/pq/pq_prepare.c:84
-#, c-format
-msgid "PQprepare (`%s' as `%s') failed with error: %s\n"
-msgstr ""
-
-#: src/psycstore/gnunet-service-psycstore.c:249
-#, fuzzy
-msgid "Failed to store membership information!\n"
-msgstr "Impossibile avviare il servizio.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:271
-#, fuzzy
-msgid "Failed to test membership!\n"
-msgstr "Impossibile avviare il servizio.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:300
-#, fuzzy
-msgid "Dropping invalid fragment\n"
-msgstr "argomento non valido"
-
-#: src/psycstore/gnunet-service-psycstore.c:311
-#, fuzzy
-msgid "Failed to store fragment\n"
-msgstr "Impossibile avviare il servizio.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:368
-#, fuzzy
-msgid "Failed to get fragment!\n"
-msgstr "Impossibile avviare il servizio.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:434
-#, fuzzy
-msgid "Failed to get message!\n"
-msgstr "Impossibile leggere il file"
-
-#: src/psycstore/gnunet-service-psycstore.c:464
-#, fuzzy
-msgid "Failed to get message fragment!\n"
-msgstr "Impossibile avviare il servizio.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:494
-#, fuzzy
-msgid "Failed to get master counters!\n"
-msgstr "Impossibile avviare il servizio.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:675
-#, fuzzy, c-format
-msgid "Failed to begin modifying state: %d\n"
-msgstr "Impossibile leggere il file"
-
-#: src/psycstore/gnunet-service-psycstore.c:685
-#, fuzzy, c-format
-msgid "Failed to modify state: %d\n"
-msgstr "Impossibile leggere il file"
-
-#: src/psycstore/gnunet-service-psycstore.c:693
-#, fuzzy
-msgid "Failed to end modifying state!\n"
-msgstr "Impossibile leggere il file"
-
-#: src/psycstore/gnunet-service-psycstore.c:730
-#, fuzzy
-msgid "Tried to set invalid state variable name!\n"
-msgstr "Impossibile avviare il servizio.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:744
-#, fuzzy
-msgid "Failed to begin synchronizing state!\n"
-msgstr "Impossibile leggere il file"
-
-#: src/psycstore/gnunet-service-psycstore.c:761
-#, fuzzy
-msgid "Failed to end synchronizing state!\n"
-msgstr "Impossibile leggere il file"
-
-#: src/psycstore/gnunet-service-psycstore.c:779
-#: src/psycstore/gnunet-service-psycstore.c:795
-#, fuzzy
-msgid "Failed to reset state!\n"
-msgstr "Impossibile leggere il file"
-
-#: src/psycstore/gnunet-service-psycstore.c:824
-#: src/psycstore/gnunet-service-psycstore.c:881
-#, fuzzy
-msgid "Tried to get invalid state variable name!\n"
-msgstr "Impossibile avviare il servizio.\n"
+#: src/peerstore/peerstore_api.c:671
+msgid "Received a malformed response from service."
+msgstr ""
 
-#: src/psycstore/gnunet-service-psycstore.c:851
-#: src/psycstore/gnunet-service-psycstore.c:896
-#, fuzzy
-msgid "Failed to get state variable!\n"
-msgstr "Impossibile avviare il servizio.\n"
+#: src/peerstore/peerstore_api.c:807
+msgid "Received a watch result for a non existing watch.\n"
+msgstr ""
 
-#: src/psycstore/plugin_psycstore_mysql.c:281
-#, fuzzy
-msgid "Unable to initialize Mysql.\n"
-msgstr "Generazione statistiche fallita\n"
+#: src/peerstore/plugin_peerstore_sqlite.c:453
+#, c-format
+msgid ""
+"Error executing SQL query: %s\n"
+"  %s\n"
+msgstr ""
 
-#: src/psycstore/plugin_psycstore_mysql.c:291
-#, fuzzy, c-format
-msgid "Failed to run SQL statement `%s'\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+#: src/peerstore/plugin_peerstore_sqlite.c:488
+#, c-format
+msgid ""
+"Error preparing SQL query: %s\n"
+"  %s\n"
+msgstr ""
 
-#: src/psycstore/plugin_psycstore_sqlite.c:61
+#: src/peerstore/plugin_peerstore_sqlite.c:570
 #, c-format
-msgid "`%s' failed at %s:%d with error: %s (%d)\n"
+msgid "Unable to create indices: %s.\n"
 msgstr ""
 
-#: src/psycstore/plugin_psycstore_sqlite.c:1924
-msgid "SQLite database running\n"
+#: src/pq/pq_prepare.c:84
+#, c-format
+msgid "PQprepare (`%s' as `%s') failed with error: %s\n"
 msgstr ""
 
 #: src/pt/gnunet-daemon-pt.c:423
@@ -5737,65 +5607,81 @@ msgstr ""
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:467
+#: src/reclaim/gnunet-reclaim.c:495
 #, c-format
 msgid "Ego is required\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:475
+#: src/reclaim/gnunet-reclaim.c:501
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:483
+#: src/reclaim/gnunet-reclaim.c:507
 #, c-format
 msgid "Requesting party key is required!\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:506
-msgid "Add attribute"
+#: src/reclaim/gnunet-reclaim.c:524
+msgid "Add an attribute NAME"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:527
+msgid "Add an attribute with ID"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:512
-msgid "Attribute value"
+#: src/reclaim/gnunet-reclaim.c:530
+msgid "The attribute VALUE"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:517
-msgid "Ego"
+#: src/reclaim/gnunet-reclaim.c:533
+msgid "The EGO to use"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:522
-msgid "Audience (relying party)"
+#: src/reclaim/gnunet-reclaim.c:535
+msgid "Specify the relying party for issue"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:526
-msgid "List attributes for Ego"
+#: src/reclaim/gnunet-reclaim.c:538
+msgid "List attributes for EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:531
-msgid "Issue a ticket"
+#: src/reclaim/gnunet-reclaim.c:542
+msgid "Issue a ticket for a set of attributes separated by comma"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:536
+#: src/reclaim/gnunet-reclaim.c:545
 msgid "Consume a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:541
+#: src/reclaim/gnunet-reclaim.c:548
 msgid "Revoke a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:546
+#: src/reclaim/gnunet-reclaim.c:551
 msgid "Type of attribute"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:551
+#: src/reclaim/gnunet-reclaim.c:553
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:556
 msgid "Expiration interval of the attribute"
 msgstr ""
 
+#: src/reclaim/gnunet-reclaim.c:560
+msgid "re:claimID command line tool"
+msgstr ""
+
+#: src/reclaim/plugin_rest_openid_connect.c:2051
+#: src/reclaim/plugin_rest_reclaim.c:1018
+msgid "Identity Provider REST API initialized\n"
+msgstr ""
+
 #: src/reclaim/reclaim_api.c:436
-#, fuzzy
 msgid "failed to store record\n"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
 #: src/regex/gnunet-daemon-regexprofiler.c:267
 #, c-format
@@ -5881,43 +5767,18 @@ msgstr ""
 msgid "Search string `%s' is too long!\n"
 msgstr ""
 
-#: src/rest-plugins/plugin_rest_copying.c:209
-msgid "COPYING REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_credential.c:1128
-msgid "GNS REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_gns.c:452
-msgid "Gns REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_identity.c:1297
-msgid "Identity REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_namestore.c:1079
-msgid "Namestore REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_openid_connect.c:2245
-#: src/rest-plugins/plugin_rest_reclaim.c:1079
-msgid "Identity Provider REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_peerinfo.c:796
-msgid "Peerinfo REST API initialized\n"
-msgstr ""
-
-#: src/rest/gnunet-rest-server.c:927
+#: src/rest/gnunet-rest-server.c:986
 msgid "listen on specified port (default: 7776)"
 msgstr ""
 
-#: src/rest/gnunet-rest-server.c:944
+#: src/rest/gnunet-rest-server.c:1003
 msgid "GNUnet REST server"
 msgstr ""
 
+#: src/rest/plugin_rest_copying.c:209
+msgid "COPYING REST API initialized\n"
+msgstr ""
+
 #: src/revocation/gnunet-revocation.c:129
 #, c-format
 msgid "Key `%s' is valid\n"
@@ -5977,7 +5838,7 @@ msgstr ""
 msgid "Revocation certificate not ready, calculating proof of work\n"
 msgstr ""
 
-#: src/revocation/gnunet-revocation.c:437 src/social/gnunet-social.c:1180
+#: src/revocation/gnunet-revocation.c:437
 #, c-format
 msgid "Public key `%s' malformed\n"
 msgstr ""
@@ -6023,9 +5884,8 @@ msgid "# unsupported revocations received via set union"
 msgstr ""
 
 #: src/revocation/gnunet-service-revocation.c:468
-#, fuzzy
 msgid "# revocation messages received via set union"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/revocation/gnunet-service-revocation.c:473
 #, c-format
@@ -6048,32 +5908,32 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2959
-msgid "duration of the profiling"
+#: src/rps/gnunet-rps.c:260
+msgid "Seed a PeerID"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2965
-msgid "timeout for the profiling"
+#: src/rps/gnunet-rps.c:264
+msgid "Get updates of view (0 for infinite updates)"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2971
-msgid "number of PeerIDs to request"
+#: src/rps/gnunet-rps.c:268
+msgid "Get peers from biased stream"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2986
-msgid "Measure quality and performance of the RPS service."
+#: src/rps/gnunet-rps-profiler.c:3088
+msgid "duration of the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps.c:260
-msgid "Seed a PeerID"
+#: src/rps/gnunet-rps-profiler.c:3093
+msgid "timeout for the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps.c:264
-msgid "Get updates of view (0 for infinite updates)"
+#: src/rps/gnunet-rps-profiler.c:3098
+msgid "number of PeerIDs to request"
 msgstr ""
 
-#: src/rps/gnunet-rps.c:268
-msgid "Get peers from biased stream"
+#: src/rps/gnunet-rps-profiler.c:3114
+msgid "Measure quality and performance of the RPS service."
 msgstr ""
 
 #: src/scalarproduct/gnunet-scalarproduct.c:220
@@ -6130,10 +5990,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1401
 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1345
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 msgid "Connect to CADET failed\n"
 msgstr ""
 
@@ -6157,10 +6017,9 @@ msgstr ""
 msgid "also profile decryption"
 msgstr ""
 
-#: src/set/gnunet-service-set.c:2005
-#, fuzzy
+#: src/set/gnunet-service-set.c:2008
 msgid "Could not connect to CADET service\n"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
 #: src/set/gnunet-set-ibf-profiler.c:252
 msgid "number of element in set A-B"
@@ -6202,128 +6061,6 @@ msgstr ""
 msgid "element size"
 msgstr ""
 
-#: src/social/gnunet-social.c:1166
-msgid "--place missing or invalid.\n"
-msgstr ""
-
-#: src/social/gnunet-social.c:1217
-msgid "assign --name in state to --data"
-msgstr ""
-
-#: src/social/gnunet-social.c:1222
-msgid "say good-bye and leave somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1227
-msgid "create a place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1232
-msgid "destroy a place we were hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1237
-msgid "enter somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1243
-msgid "find state matching name prefix"
-msgstr ""
-
-#: src/social/gnunet-social.c:1248
-msgid "replay history of messages up to the given --limit"
-msgstr ""
-
-#: src/social/gnunet-social.c:1253
-msgid "reconnect to a previously created place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1258
-msgid "publish something to a place we are hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1263
-msgid "reconnect to a previously entered place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1268
-msgid "search for state matching exact name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1273
-msgid "submit something to somebody's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1278
-msgid "list of egos and subscribed places"
-msgstr ""
-
-#: src/social/gnunet-social.c:1283
-msgid "extract and replay history between message IDs --start and --until"
-msgstr ""
-
-#: src/social/gnunet-social.c:1292
-msgid "application ID to use when connecting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1298
-msgid "message body or state value"
-msgstr ""
-
-#: src/social/gnunet-social.c:1304
-msgid "name or public key of ego"
-msgstr ""
-
-#: src/social/gnunet-social.c:1309
-msgid "wait for incoming messages"
-msgstr ""
-
-#: src/social/gnunet-social.c:1315
-msgid "GNS name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1321
-msgid "peer ID for --guest-enter"
-msgstr ""
-
-#: src/social/gnunet-social.c:1327
-msgid "name (key) to query from state"
-msgstr ""
-
-#: src/social/gnunet-social.c:1333
-msgid "method name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1339
-msgid "number of messages to replay from history"
-msgstr ""
-
-#: src/social/gnunet-social.c:1345
-msgid "key address of place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1351
-msgid "start message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1356
-msgid "respond to entry requests by admitting all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1362
-msgid "end message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1367
-msgid "respond to entry requests by refusing all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1377
-msgid ""
-"gnunet-social - Interact with the social service: enter/leave, send/receive "
-"messages, access history and state.\n"
-msgstr ""
-
 #: src/sq/sq.c:54
 #, c-format
 msgid "Failure to bind %u-th SQL parameter\n"
@@ -6334,9 +6071,9 @@ msgid "Failure in sqlite3_reset (!)\n"
 msgstr ""
 
 #: src/sq/sq.c:139
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to reset sqlite statement with error: %s\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
 
 #: src/statistics/gnunet-service-statistics.c:338
 #, c-format
@@ -6442,9 +6179,8 @@ msgid "Could not save some persistent statistics\n"
 msgstr ""
 
 #: src/testbed/generate-underlay-topology.c:225
-#, fuzzy
 msgid "Need at least 2 arguments\n"
-msgstr "Impossibile leggere il file"
+msgstr ""
 
 #: src/testbed/generate-underlay-topology.c:230
 msgid "Database filename missing\n"
@@ -6485,7 +6221,7 @@ msgid "Invalid argument `%s'; expecting unsigned int\n"
 msgstr ""
 
 #: src/testbed/generate-underlay-topology.c:342
-#: src/testbed/gnunet-testbed-profiler.c:283
+#: src/testbed/gnunet-testbed-profiler.c:282
 msgid "create COUNT number of peers"
 msgstr ""
 
@@ -6594,17 +6330,6 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr ""
 
-#: src/testbed/gnunet-testbed-profiler.c:289
-msgid "tolerate COUNT number of continious timeout failures"
-msgstr ""
-
-#: src/testbed/gnunet-testbed-profiler.c:294
-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:118
 msgid "Waiting for child to exit.\n"
 msgstr ""
@@ -6614,6 +6339,17 @@ msgstr ""
 msgid "Spawning process `%s'\n"
 msgstr ""
 
+#: src/testbed/gnunet-testbed-profiler.c:287
+msgid "tolerate COUNT number of continious timeout failures"
+msgstr ""
+
+#: src/testbed/gnunet-testbed-profiler.c:291
+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:410
 #, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -6787,47 +6523,47 @@ msgstr ""
 msgid "Key number %u does not exist\n"
 msgstr ""
 
-#: src/testing/testing.c:1159
+#: src/testing/testing.c:1161
 #, c-format
 msgid ""
 "You attempted to create a testbed with more than %u hosts.  Please "
 "precompute more hostkeys first.\n"
 msgstr ""
 
-#: src/testing/testing.c:1168
+#: src/testing/testing.c:1170
 #, c-format
 msgid "Failed to initialize hostkey for peer %u\n"
 msgstr ""
 
-#: src/testing/testing.c:1178
+#: src/testing/testing.c:1180
 msgid "PRIVATE_KEY option in PEER section missing in configuration\n"
 msgstr ""
 
-#: src/testing/testing.c:1191
+#: src/testing/testing.c:1193
 msgid "Failed to create configuration for peer (not enough free ports?)\n"
 msgstr ""
 
-#: src/testing/testing.c:1205
+#: src/testing/testing.c:1207
 #, c-format
 msgid "Cannot open hostkey file `%s': %s\n"
 msgstr ""
 
-#: src/testing/testing.c:1217
+#: src/testing/testing.c:1219
 #, c-format
 msgid "Failed to write hostkey file for peer %u: %s\n"
 msgstr ""
 
-#: src/testing/testing.c:1242
+#: src/testing/testing.c:1244
 #, c-format
 msgid "Failed to write configuration file `%s' for peer %u: %s\n"
 msgstr ""
 
-#: src/testing/testing.c:1344
+#: src/testing/testing.c:1346
 #, c-format
 msgid "Failed to start `%s': %s\n"
 msgstr ""
 
-#: src/testing/testing.c:1647
+#: src/testing/testing.c:1649
 #, c-format
 msgid "Failed to load configuration from %s\n"
 msgstr ""
@@ -6844,7 +6580,7 @@ msgstr ""
 
 #: src/topology/gnunet-daemon-topology.c:230
 msgid "# peers blacklisted"
-msgstr "# nodi in blacklist"
+msgstr ""
 
 #: src/topology/gnunet-daemon-topology.c:344
 msgid "# connect requests issued to ATS"
@@ -6857,7 +6593,7 @@ msgstr ""
 #: src/topology/gnunet-daemon-topology.c:640
 #: src/topology/gnunet-daemon-topology.c:726
 msgid "# friends connected"
-msgstr "# amici connessi"
+msgstr ""
 
 #: src/topology/gnunet-daemon-topology.c:923
 msgid "Failed to connect to core service, can not manage topology!\n"
@@ -6901,18 +6637,18 @@ msgstr ""
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:2329
-#: src/transport/gnunet-communicator-udp.c:2883
-#: src/transport/gnunet-service-tng.c:4679
-#: src/transport/gnunet-service-transport.c:2782
+#: src/transport/gnunet-communicator-tcp.c:2334
+#: src/transport/gnunet-communicator-udp.c:2938
+#: src/transport/gnunet-service-tng.c:7070
+#: src/transport/gnunet-service-transport.c:2795
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:2393
+#: src/transport/gnunet-communicator-tcp.c:2398
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2954
+#: src/transport/gnunet-communicator-udp.c:3016
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -6921,261 +6657,254 @@ msgid ""
 "Maximum number of UNIX connections exceeded, dropping incoming message\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-unix.c:1073
+#: src/transport/gnunet-communicator-unix.c:1074
 #: src/transport/plugin_transport_unix.c:1403
 #, c-format
 msgid "Cannot create path to `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-communicator-unix.c:1162
+#: src/transport/gnunet-communicator-unix.c:1163
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:448
+#: src/transport/gnunet-service-transport_ats.c:141
+msgid "# Addresses given to ATS"
+msgstr ""
+
+#: src/transport/gnunet-service-transport.c:452
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:817
+#: src/transport/gnunet-service-transport.c:826
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1550
+#: src/transport/gnunet-service-transport.c:1563
 msgid "# bytes payload discarded due to not connected peer"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1710
+#: src/transport/gnunet-service-transport.c:1723
 msgid "# bytes total received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1807
+#: src/transport/gnunet-service-transport.c:1820
 msgid "# bytes payload received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2124
-#: src/transport/gnunet-service-transport.c:2596
+#: src/transport/gnunet-service-transport.c:2137
+#: src/transport/gnunet-service-transport.c:2609
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2600
+#: src/transport/gnunet-service-transport.c:2613
 #, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2708
+#: src/transport/gnunet-service-transport.c:2721
 #, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2717
+#: src/transport/gnunet-service-transport.c:2730
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:141
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
 
 #: src/transport/gnunet-service-transport_neighbours.c:805
-#, fuzzy
 msgid "# session creation failed"
-msgstr "# connessioni attive"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1052
+#: src/transport/gnunet-service-transport_neighbours.c:1053
 msgid "# DISCONNECT messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1175
+#: src/transport/gnunet-service-transport_neighbours.c:1176
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1323
-#: src/transport/gnunet-service-transport_neighbours.c:1784
+#: src/transport/gnunet-service-transport_neighbours.c:1324
+#: src/transport/gnunet-service-transport_neighbours.c:1785
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1328
+#: src/transport/gnunet-service-transport_neighbours.c:1329
 msgid "# messages transmitted to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1334
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 msgid "# transmission failures for messages to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1394
+#: src/transport/gnunet-service-transport_neighbours.c:1395
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1478
+#: src/transport/gnunet-service-transport_neighbours.c:1479
 msgid "# KEEPALIVES sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1514
+#: src/transport/gnunet-service-transport_neighbours.c:1515
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1522
+#: src/transport/gnunet-service-transport_neighbours.c:1523
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1532
+#: src/transport/gnunet-service-transport_neighbours.c:1533
 msgid "# KEEPALIVES received in good order"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1577
+#: src/transport/gnunet-service-transport_neighbours.c:1578
 msgid "# KEEPALIVE_RESPONSEs discarded (not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1586
+#: src/transport/gnunet-service-transport_neighbours.c:1587
 msgid "# KEEPALIVE_RESPONSEs discarded (not expected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1594
+#: src/transport/gnunet-service-transport_neighbours.c:1595
 msgid "# KEEPALIVE_RESPONSEs discarded (address changed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1603
+#: src/transport/gnunet-service-transport_neighbours.c:1604
 msgid "# KEEPALIVE_RESPONSEs discarded (no nonce)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 msgid "# KEEPALIVE_RESPONSEs discarded (bad nonce)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1614
+#: src/transport/gnunet-service-transport_neighbours.c:1615
 msgid "# KEEPALIVE_RESPONSEs received (OK)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1681
+#: src/transport/gnunet-service-transport_neighbours.c:1682
 msgid "# messages discarded due to lack of neighbour record"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1715
+#: src/transport/gnunet-service-transport_neighbours.c:1716
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1730
+#: src/transport/gnunet-service-transport_neighbours.c:1731
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1853
-#, fuzzy, c-format
+#: src/transport/gnunet-service-transport_neighbours.c:1854
+#, c-format
 msgid "Failed to send SYN message to peer `%s'\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1873
+#: src/transport/gnunet-service-transport_neighbours.c:1874
 msgid "# Failed attempts to switch addresses (failed to send SYN CONT)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1912
+#: src/transport/gnunet-service-transport_neighbours.c:1913
 #, fuzzy
 msgid "# SYN messages sent"
 msgstr "# messaggi PONG decrittati"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1929
-#, fuzzy, c-format
+#: src/transport/gnunet-service-transport_neighbours.c:1930
+#, c-format
 msgid "Failed to transmit SYN message to %s\n"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1959
+#: src/transport/gnunet-service-transport_neighbours.c:1960
 msgid "# Failed attempts to switch addresses (failed to send SYN)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2027
-#, fuzzy, c-format
+#: src/transport/gnunet-service-transport_neighbours.c:2028
+#, c-format
 msgid "Failed to send SYN_ACK message to peer `%s' using address `%s'\n"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2081
+#: src/transport/gnunet-service-transport_neighbours.c:2082
 #, fuzzy
 msgid "# SYN_ACK messages sent"
 msgstr "# messaggi PONG decrittati"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2098
-#, fuzzy, c-format
+#: src/transport/gnunet-service-transport_neighbours.c:2099
+#, c-format
 msgid "Failed to transmit SYN_ACK message to %s\n"
-msgstr "Impossibile avviare il servizio ' %s'\n"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2261
+#: src/transport/gnunet-service-transport_neighbours.c:2262
 #, fuzzy
 msgid "# SYN messages received"
 msgstr "# messaggi PONG ricevuti"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2266
+#: src/transport/gnunet-service-transport_neighbours.c:2267
 #, c-format
 msgid "SYN request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2653
+#: src/transport/gnunet-service-transport_neighbours.c:2654
 msgid "# Attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3138
+#: src/transport/gnunet-service-transport_neighbours.c:3139
 #, fuzzy
 msgid "# SYN_ACK messages received"
 msgstr "# messaggi PONG ricevuti"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3146
-#, fuzzy
+#: src/transport/gnunet-service-transport_neighbours.c:3147
 msgid "# unexpected SYN_ACK messages (no peer)"
-msgstr "# messaggi PONG decrittati"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3164
-#: src/transport/gnunet-service-transport_neighbours.c:3188
-#, fuzzy
+#: src/transport/gnunet-service-transport_neighbours.c:3165
+#: src/transport/gnunet-service-transport_neighbours.c:3189
 msgid "# unexpected SYN_ACK messages (not ready)"
-msgstr "# messaggi PONG decrittati"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3200
-#, fuzzy
+#: src/transport/gnunet-service-transport_neighbours.c:3201
 msgid "# unexpected SYN_ACK messages (waiting on ATS)"
-msgstr "# messaggi PONG decrittati"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3225
+#: src/transport/gnunet-service-transport_neighbours.c:3226
 msgid "# Successful attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3238
-#, fuzzy
+#: src/transport/gnunet-service-transport_neighbours.c:3239
 msgid "# unexpected SYN_ACK messages (disconnecting)"
-msgstr "# messaggi PONG decrittati"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3411
+#: src/transport/gnunet-service-transport_neighbours.c:3412
 #, fuzzy
 msgid "# ACK messages received"
 msgstr "# messaggi PONG ricevuti"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3447
-#, fuzzy
+#: src/transport/gnunet-service-transport_neighbours.c:3448
 msgid "# unexpected ACK messages"
-msgstr "# messaggi PONG decrittati"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3535
-#, fuzzy
+#: src/transport/gnunet-service-transport_neighbours.c:3536
 msgid "# quota messages ignored (malformed)"
-msgstr "# messaggi PONG decrittati"
+msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3542
+#: src/transport/gnunet-service-transport_neighbours.c:3543
 #, fuzzy
 msgid "# QUOTA messages received"
 msgstr "# messaggi PONG ricevuti"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3582
+#: src/transport/gnunet-service-transport_neighbours.c:3583
 msgid "# disconnect messages ignored (malformed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3589
+#: src/transport/gnunet-service-transport_neighbours.c:3590
 msgid "# DISCONNECT messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3600
+#: src/transport/gnunet-service-transport_neighbours.c:3601
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3735
+#: src/transport/gnunet-service-transport_neighbours.c:3736
 msgid "# disconnected from peer upon explicit request"
 msgstr ""
 
@@ -7210,7 +6939,7 @@ msgstr ""
 #: src/transport/gnunet-service-transport_validation.c:491
 #: src/transport/gnunet-service-transport_validation.c:677
 #: src/transport/gnunet-service-transport_validation.c:997
-#: src/transport/gnunet-service-transport_validation.c:1609
+#: src/transport/gnunet-service-transport_validation.c:1610
 msgid "# validations running"
 msgstr ""
 
@@ -7234,99 +6963,64 @@ msgstr ""
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1123
+#: src/transport/gnunet-service-transport_validation.c:1124
 msgid "# PING message for different peer received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1174
+#: src/transport/gnunet-service-transport_validation.c:1175
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1187
+#: src/transport/gnunet-service-transport_validation.c:1188
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1190
+#: src/transport/gnunet-service-transport_validation.c:1191
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1198
+#: src/transport/gnunet-service-transport_validation.c:1199
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1211
+#: src/transport/gnunet-service-transport_validation.c:1212
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1266
+#: src/transport/gnunet-service-transport_validation.c:1267
 #, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1317
+#: src/transport/gnunet-service-transport_validation.c:1318
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1326
+#: src/transport/gnunet-service-transport_validation.c:1327
 msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1499
+#: src/transport/gnunet-service-transport_validation.c:1500
 msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1517
+#: src/transport/gnunet-service-transport_validation.c:1518
 msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1572
+#: src/transport/gnunet-service-transport_validation.c:1573
 msgid "# validations succeeded"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1627
-msgid "# HELLOs given to peerinfo"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:219
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:617
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:621
-msgid "receive data from peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:626
-msgid "iterations"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:631
-msgid "number of messages to send"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:636
-msgid "message size to use"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:641
-#: src/transport/gnunet-transport.c:1462
-msgid "peer identity"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:652
-#: src/transport/gnunet-transport.c:1482
-msgid "Direct access to transport service."
-msgstr ""
-
+#: src/transport/gnunet-service-transport_validation.c:1628
+msgid "# HELLOs given to peerinfo"
+msgstr ""
+
 #: src/transport/gnunet-transport.c:413
 #, c-format
 msgid "Transmitted %llu bytes/s (%llu bytes in %s)\n"
@@ -7353,9 +7047,9 @@ msgid "Failed to list connections, timeout occurred\n"
 msgstr "# connessioni attive"
 
 #: src/transport/gnunet-transport.c:527
-#, fuzzy, c-format
+#, c-format
 msgid "Transmitting %u bytes\n"
-msgstr "Avvio del servizio '%s' in corso\n"
+msgstr ""
 
 #: src/transport/gnunet-transport.c:561
 #, c-format
@@ -7398,9 +7092,8 @@ msgid "Peer `%s': %s %s\n"
 msgstr ""
 
 #: src/transport/gnunet-transport.c:1144
-#, fuzzy
 msgid "Monitor disconnected from transport service. Reconnecting.\n"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
 #: src/transport/gnunet-transport.c:1251
 #, c-format
@@ -7416,9 +7109,8 @@ msgid ""
 msgstr ""
 
 #: src/transport/gnunet-transport.c:1294
-#, fuzzy
 msgid "Failed to connect to transport service for disconnection\n"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
 #: src/transport/gnunet-transport.c:1300
 msgid "Blacklisting request in place, stop with CTRL-C\n"
@@ -7442,9 +7134,8 @@ msgid "measure how fast we are receiving data from all 
peers (until CTRL-C)"
 msgstr ""
 
 #: src/transport/gnunet-transport.c:1441
-#, fuzzy
 msgid "disconnect from a peer"
-msgstr "# amici connessi"
+msgstr ""
 
 #: src/transport/gnunet-transport.c:1445
 msgid "provide information about all current connections (once)"
@@ -7459,6 +7150,11 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr ""
 
+#: src/transport/gnunet-transport.c:1462
+#: src/transport/gnunet-transport-profiler.c:641
+msgid "peer identity"
+msgstr ""
+
 #: src/transport/gnunet-transport.c:1466
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7467,13 +7163,41 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
+#: src/transport/gnunet-transport.c:1482
+#: src/transport/gnunet-transport-profiler.c:652
+msgid "Direct access to transport service."
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:219
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:617
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:621
+msgid "receive data from peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:626
+msgid "iterations"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:631
+msgid "number of messages to send"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:636
+msgid "message size to use"
+msgstr ""
+
 #: src/transport/plugin_transport_http_client.c:1474
 #: src/transport/plugin_transport_http_server.c:2312
 #: src/transport/plugin_transport_http_server.c:3530
-#: src/transport/plugin_transport_tcp.c:3895
-#: src/transport/plugin_transport_tcp.c:3902
-#: src/transport/plugin_transport_xt.c:3899
-#: src/transport/plugin_transport_xt.c:3906
+#: src/transport/plugin_transport_tcp.c:3901
+#: src/transport/plugin_transport_tcp.c:3908
 msgid "TCP_STEALTH not supported on this platform.\n"
 msgstr ""
 
@@ -7543,7 +7267,6 @@ msgstr ""
 
 #: src/transport/plugin_transport_http_server.c:2905
 #: src/transport/plugin_transport_udp.c:3627
-#: src/transport/plugin_transport_xu.c:2049
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
@@ -7641,126 +7364,114 @@ msgstr "# byte inviati via SMTP"
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1551
-#: src/transport/plugin_transport_tcp.c:2877
-#: src/transport/plugin_transport_xt.c:1553
-#: src/transport/plugin_transport_xt.c:2879
+#: src/transport/plugin_transport_tcp.c:1557
+#: src/transport/plugin_transport_tcp.c:2883
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1734
-#: src/transport/plugin_transport_tcp.c:1958
-#: src/transport/plugin_transport_tcp.c:3141
-#: src/transport/plugin_transport_tcp.c:4018
-#: src/transport/plugin_transport_xt.c:1736
-#: src/transport/plugin_transport_xt.c:1960
-#: src/transport/plugin_transport_xt.c:3143
+#: src/transport/plugin_transport_tcp.c:1740
+#: src/transport/plugin_transport_tcp.c:1964
+#: src/transport/plugin_transport_tcp.c:3147
+#: src/transport/plugin_transport_tcp.c:4024
 msgid "# TCP sessions active"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1776
-#: src/transport/plugin_transport_tcp.c:1940
-#: src/transport/plugin_transport_tcp.c:2064
-#: src/transport/plugin_transport_tcp.c:2137
-#: src/transport/plugin_transport_tcp.c:2237
-#: src/transport/plugin_transport_tcp.c:2262
-#: src/transport/plugin_transport_xt.c:1778
-#: src/transport/plugin_transport_xt.c:1942
-#: src/transport/plugin_transport_xt.c:2066
-#: src/transport/plugin_transport_xt.c:2139
-#: src/transport/plugin_transport_xt.c:2239
-#: src/transport/plugin_transport_xt.c:2264
+#: src/transport/plugin_transport_tcp.c:1782
+#: src/transport/plugin_transport_tcp.c:1946
+#: src/transport/plugin_transport_tcp.c:2070
+#: src/transport/plugin_transport_tcp.c:2143
+#: src/transport/plugin_transport_tcp.c:2243
+#: src/transport/plugin_transport_tcp.c:2268
 msgid "# bytes currently in TCP buffers"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1779
-#: src/transport/plugin_transport_xt.c:1781
+#: src/transport/plugin_transport_tcp.c:1785
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2067
-#: src/transport/plugin_transport_xt.c:2069
+#: src/transport/plugin_transport_tcp.c:2073
 msgid "# bytes discarded by TCP (timeout)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2141
-#: src/transport/plugin_transport_xt.c:2143
+#: src/transport/plugin_transport_tcp.c:2147
 msgid "# bytes transmitted via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2539
-#: src/transport/plugin_transport_xt.c:2541
+#: src/transport/plugin_transport_tcp.c:2545
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
-#: src/transport/plugin_transport_xt.c:2717
+#: src/transport/plugin_transport_tcp.c:2721
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3207
-#: src/transport/plugin_transport_xt.c:3209
+#: src/transport/plugin_transport_tcp.c:3213
 msgid "# TCP WELCOME messages received"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3413
-#: src/transport/plugin_transport_xt.c:3415
+#: src/transport/plugin_transport_tcp.c:3419
 msgid "# bytes received via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3464
-#: src/transport/plugin_transport_tcp.c:3522
-#: src/transport/plugin_transport_xt.c:3466
-#: src/transport/plugin_transport_xt.c:3524
+#: src/transport/plugin_transport_tcp.c:3470
+#: src/transport/plugin_transport_tcp.c:3528
 #, fuzzy
 msgid "# TCP server connections active"
 msgstr "# connessioni attive"
 
-#: src/transport/plugin_transport_tcp.c:3468
-#: src/transport/plugin_transport_xt.c:3470
+#: src/transport/plugin_transport_tcp.c:3474
 msgid "# TCP server connect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3474
-#: src/transport/plugin_transport_xt.c:3476
+#: src/transport/plugin_transport_tcp.c:3480
 msgid "TCP connection limit reached, suspending server\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3476
-#: src/transport/plugin_transport_xt.c:3478
+#: src/transport/plugin_transport_tcp.c:3482
 msgid "# TCP service suspended"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3516
-#: src/transport/plugin_transport_xt.c:3518
+#: src/transport/plugin_transport_tcp.c:3522
 msgid "# TCP service resumed"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3526
-#: src/transport/plugin_transport_xt.c:3528
+#: src/transport/plugin_transport_tcp.c:3532
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3845
-#: src/transport/plugin_transport_xt.c:3849
+#: src/transport/plugin_transport_tcp.c:3851
 msgid "Failed to start service.\n"
-msgstr "Impossibile avviare il servizio.\n"
+msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4006
+#: src/transport/plugin_transport_tcp.c:4012
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4010
+#: src/transport/plugin_transport_tcp.c:4016
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4014
+#: src/transport/plugin_transport_tcp.c:4020
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
+#: src/transport/plugin_transport_udp_broadcasting.c:168
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:548
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:565
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_udp.c:3371
 #, c-format
 msgid ""
@@ -7776,12 +7487,11 @@ msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3703
 #: src/transport/plugin_transport_udp.c:3802
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to bind UDP socket to %s: %s\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3721
-#: src/transport/plugin_transport_xu.c:2143
 msgid "Disabling IPv4 since it is not supported on this system!\n"
 msgstr ""
 
@@ -7791,40 +7501,21 @@ msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3883
 #: src/transport/plugin_transport_udp.c:3897
-#: src/transport/plugin_transport_xu.c:2301
-#: src/transport/plugin_transport_xu.c:2315
 msgid "must be in [0,65535]"
 msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3929
-#: src/transport/plugin_transport_xu.c:2347
+#, fuzzy
 msgid "must be valid IPv4 address"
-msgstr "deve essere un indirizzo IPv4 valido"
+msgstr "`%s' non è un indirizzo IP valido.\n"
 
 #: src/transport/plugin_transport_udp.c:3956
-#: src/transport/plugin_transport_xu.c:2374
 #, fuzzy
 msgid "must be valid IPv6 address"
-msgstr "deve essere un indirizzo IPv4 valido"
+msgstr "`%s' non è un indirizzo IP valido.\n"
 
 #: src/transport/plugin_transport_udp.c:4020
-#, fuzzy
 msgid "Failed to create UDP network sockets\n"
-msgstr "Generazione statistiche fallita\n"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:168
-#, fuzzy
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr "# messaggi PONG ricevuti"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:548
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:565
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
 msgstr ""
 
 #: src/transport/plugin_transport_unix.c:1416
@@ -7837,9 +7528,8 @@ msgid "Failed to open UNIX listen socket\n"
 msgstr ""
 
 #: src/transport/plugin_transport_wlan.c:768
-#, fuzzy
 msgid "# ACKs sent"
-msgstr "# messaggi PONG decrittati"
+msgstr ""
 
 #: src/transport/plugin_transport_wlan.c:788
 #, fuzzy
@@ -7852,9 +7542,8 @@ msgid "# Sessions allocated"
 msgstr ""
 
 #: src/transport/plugin_transport_wlan.c:1035
-#, fuzzy
 msgid "# message fragments sent"
-msgstr "# messaggi SYN inviati"
+msgstr ""
 
 #: src/transport/plugin_transport_wlan.c:1064
 msgid "# messages pending (with fragmentation)"
@@ -7869,17 +7558,15 @@ msgstr ""
 #: src/transport/plugin_transport_wlan.c:1567
 #, fuzzy
 msgid "# ACKs received"
-msgstr "# ACK ricevuti"
+msgstr "# messaggi PONG ricevuti"
 
 #: src/transport/plugin_transport_wlan.c:1636
-#, fuzzy
 msgid "# DATA messages discarded due to CRC32 error"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/transport/plugin_transport_wlan.c:1740
-#, fuzzy
 msgid "# HELLO beacons sent"
-msgstr "# byte inviati via SMTP"
+msgstr ""
 
 #: src/transport/plugin_transport_wlan.c:1856
 #, fuzzy
@@ -7900,54 +7587,6 @@ msgstr ""
 msgid "# sessions allocated"
 msgstr ""
 
-#: src/transport/plugin_transport_xt.c:4010
-#, c-format
-msgid "XT transport listening on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4014
-msgid "XT transport not listening on any port (client only)\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4018
-#, c-format
-msgid "XT transport advertises itself as being on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4022
-#, fuzzy
-msgid "# XT sessions active"
-msgstr "# connessioni attive"
-
-#: src/transport/plugin_transport_xu.c:1237
-#, c-format
-msgid ""
-"XU could not transmit message to `%s': Network seems down, please check your "
-"network configuration\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xu.c:1251
-msgid ""
-"XU 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 ""
-
-#: src/transport/plugin_transport_xu.c:2125
-#: src/transport/plugin_transport_xu.c:2224
-#, fuzzy, c-format
-msgid "Failed to bind XU socket to %s: %s\n"
-msgstr "Generazione statistiche fallita\n"
-
-#: src/transport/plugin_transport_xu.c:2234
-#, fuzzy
-msgid "Failed to open XU sockets\n"
-msgstr "Generazione statistiche fallita\n"
-
-#: src/transport/plugin_transport_xu.c:2398
-#, fuzzy
-msgid "Failed to create XU network sockets\n"
-msgstr "Generazione statistiche fallita\n"
-
 #: src/transport/tcp_connection_legacy.c:452
 #, c-format
 msgid "Access denied to `%s'\n"
@@ -7958,17 +7597,17 @@ msgstr ""
 msgid "Accepting connection from `%s': %p\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1111
+#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1624
 #, c-format
 msgid "`%s' failed for port %d (%s).\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1121
+#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1634
 #, c-format
 msgid "`%s' failed for port %d (%s): address already in use\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1127
+#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1640
 #, c-format
 msgid "`%s' failed for `%s': address already in use\n"
 msgstr ""
@@ -7980,7 +7619,7 @@ msgid ""
 "`GNUNET_SERVER_receive_done' after %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:339 src/util/service.c:2396
+#: src/transport/tcp_service_legacy.c:339 src/util/service.c:864
 #, c-format
 msgid "Unknown address family %d\n"
 msgstr ""
@@ -7990,27 +7629,27 @@ msgstr ""
 msgid "Access from `%s' denied to service `%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:402 src/util/service.c:439
+#: src/transport/tcp_service_legacy.c:402 src/util/service.c:988
 #, c-format
 msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:440 src/util/service.c:482
+#: src/transport/tcp_service_legacy.c:440 src/util/service.c:1031
 #, c-format
 msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1042
+#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1555
 msgid "Could not access a pre-bound socket, will try to bind myself\n"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:953
-#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1195
+#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1708
 #, c-format
 msgid "Specified value for `%s' of service `%s' is invalid\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1228
+#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1741
 #, c-format
 msgid "Could not access pre-bound socket %u, will try to bind myself\n"
 msgstr ""
@@ -8025,44 +7664,44 @@ msgstr ""
 msgid "Service `%s' runs at %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:1502
+#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:2015
 msgid "Service process failed to initialize\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1506
+#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:2019
 msgid "Service process could not initialize server function\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:1510
+#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:2023
 msgid "Service process failed to report status\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1525
-#: src/util/service.c:1380
+#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1535
+#: src/util/service.c:1893
 #, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1382
+#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1895
 msgid "No such user"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1401
+#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1914
 #, c-format
 msgid "Cannot change user/group to `%s': %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:1762
+#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:2276
 msgid "do daemonize (detach from terminal)"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:1826
-#: src/util/service.c:1841
+#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:2340
+#: src/util/service.c:2355
 #, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:1853
+#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:2367
 msgid "Malformed configuration, exit ...\n"
 msgstr ""
 
@@ -8104,11 +7743,11 @@ msgstr ""
 msgid "Metadata `%s' failed to deserialize"
 msgstr ""
 
-#: src/util/client.c:734
+#: src/util/client.c:749
 msgid "not a valid filename"
 msgstr ""
 
-#: src/util/client.c:925
+#: src/util/client.c:941
 #, c-format
 msgid "Need a non-empty hostname for service `%s'.\n"
 msgstr ""
@@ -8119,7 +7758,7 @@ msgstr "DEBUG"
 
 #: src/util/common_logging.c:261 src/util/common_logging.c:1160
 msgid "INFO"
-msgstr "INFO"
+msgstr ""
 
 #: src/util/common_logging.c:263 src/util/common_logging.c:1158
 msgid "MESSAGE"
@@ -8155,16 +7794,16 @@ msgstr "NON VALIDO"
 msgid "unknown address"
 msgstr "indirizzo sconosciuto"
 
-#: src/util/common_logging.c:1500
+#: src/util/common_logging.c:1513
 msgid "invalid address"
-msgstr "indirizzo non valido"
+msgstr ""
 
-#: src/util/common_logging.c:1518
+#: src/util/common_logging.c:1531
 #, c-format
 msgid "Configuration fails to specify option `%s' in section `%s'!\n"
 msgstr ""
 
-#: src/util/common_logging.c:1539
+#: src/util/common_logging.c:1552
 #, c-format
 msgid ""
 "Configuration specifies invalid value for option `%s' in section `%s': %s\n"
@@ -8178,7 +7817,7 @@ msgstr ""
 #: src/util/configuration.c:398
 #, c-format
 msgid "Error while reading file `%s'\n"
-msgstr "Errore di lettura del file `%s'\n"
+msgstr ""
 
 #: src/util/configuration.c:1016
 msgid "Not a valid relative time specification"
@@ -8211,26 +7850,26 @@ msgstr ""
 #: src/util/container_bloomfilter.c:532
 #, c-format
 msgid ""
-"Size of file on disk is incorrect for this Bloom filter (want %llu, have %"
-"llu)\n"
+"Size of file on disk is incorrect for this Bloom filter (want %llu, have "
+"%llu)\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:862
+#: src/util/crypto_ecc.c:887
 #, c-format
 msgid "ECC signing failed at %s:%d: %s\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:917
+#: src/util/crypto_ecc.c:946
 #, c-format
 msgid "EdDSA signing failed at %s:%d: %s\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:996
+#: src/util/crypto_ecc.c:1025
 #, c-format
 msgid "ECDSA signature verification failed at %s:%d: %s\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:1057
+#: src/util/crypto_ecc.c:1086
 #, c-format
 msgid "EdDSA signature verification failed at %s:%d: %s\n"
 msgstr ""
@@ -8278,17 +7917,17 @@ msgstr ""
 msgid "RSA signature verification failed at %s:%d: %s\n"
 msgstr ""
 
-#: src/util/disk.c:1255
+#: src/util/disk.c:1265
 #, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr ""
 
-#: src/util/dnsparser.c:260
+#: src/util/dnsparser.c:264
 #, c-format
 msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
 msgstr ""
 
-#: src/util/dnsparser.c:950
+#: src/util/dnsparser.c:954
 #, c-format
 msgid "Failed to convert UTF-8 name `%s' to DNS IDNA format: %s\n"
 msgstr ""
@@ -8304,9 +7943,9 @@ msgid "Received DNS response that is too small (%u bytes)"
 msgstr ""
 
 #: src/util/dnsstub.c:509
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to send DNS request to %s: %s\n"
-msgstr "Generazione statistiche fallita\n"
+msgstr ""
 
 #: src/util/dnsstub.c:515
 #, c-format
@@ -8392,7 +8031,7 @@ msgstr ""
 msgid "print this help"
 msgstr ""
 
-#: src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:282 src/util/gnunet-qr.c:300
 msgid "be verbose"
 msgstr ""
 
@@ -8439,51 +8078,51 @@ msgstr ""
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:160
+#: src/util/gnunet-config.c:161
 #, c-format
 msgid "failed to load configuration defaults"
 msgstr ""
 
-#: src/util/gnunet-config.c:173
+#: src/util/gnunet-config.c:174
 #, c-format
 msgid "%s or %s argument is required\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:181
+#: src/util/gnunet-config.c:182
 #, c-format
 msgid "The following sections are available:\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:232
+#: src/util/gnunet-config.c:234
 #, c-format
 msgid "--option argument required to set value\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:286
-msgid "obtain option of value as a filename (with $-expansion)"
+#: src/util/gnunet-config.c:288
+msgid "interpret option value as a filename (with $-expansion)"
 msgstr ""
 
-#: src/util/gnunet-config.c:291
+#: src/util/gnunet-config.c:293
 msgid "name of the section to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:296
+#: src/util/gnunet-config.c:298
 msgid "name of the option to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:301
+#: src/util/gnunet-config.c:303
 msgid "value to set"
 msgstr ""
 
-#: src/util/gnunet-config.c:305
+#: src/util/gnunet-config.c:307
 msgid "print available configuration sections"
 msgstr ""
 
-#: src/util/gnunet-config.c:309
+#: src/util/gnunet-config.c:311
 msgid "write configuration file that only contains delta to defaults"
 msgstr ""
 
-#: src/util/gnunet-config.c:322
+#: src/util/gnunet-config.c:324
 msgid "Manipulate GNUnet configuration files"
 msgstr ""
 
@@ -8576,6 +8215,33 @@ msgstr ""
 msgid "Manipulate GNUnet private ECC key files"
 msgstr ""
 
+#: src/util/gnunet-qr.c:108 src/util/gnunet-uri.c:91
+#, c-format
+msgid "Invalid URI: does not start with `%s'\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:116 src/util/gnunet-uri.c:98
+#, c-format
+msgid "Invalid URI: fails to specify subsystem\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:127 src/util/gnunet-uri.c:108
+#, c-format
+msgid "No handler known for subsystem `%s'\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:297
+msgid "use video-device DEVICE (default: /dev/video0"
+msgstr ""
+
+#: src/util/gnunet-qr.c:303
+msgid "do not show preview windows"
+msgstr ""
+
+#: src/util/gnunet-qr.c:311
+msgid "Scan a QR code using a video device and import the uri read"
+msgstr ""
+
 #: src/util/gnunet-resolver.c:168
 msgid "perform a reverse lookup"
 msgstr ""
@@ -8609,7 +8275,7 @@ msgstr ""
 msgid "Manipulate GNUnet proof of work files"
 msgstr ""
 
-#: src/util/gnunet-service-resolver.c:1443
+#: src/util/gnunet-service-resolver.c:1424
 msgid "No DNS server available. DNS resolution will not be possible.\n"
 msgstr ""
 
@@ -8618,21 +8284,6 @@ msgstr ""
 msgid "No URI specified on command line\n"
 msgstr ""
 
-#: src/util/gnunet-uri.c:91
-#, c-format
-msgid "Invalid URI: does not start with `%s'\n"
-msgstr ""
-
-#: src/util/gnunet-uri.c:98
-#, c-format
-msgid "Invalid URI: fails to specify subsystem\n"
-msgstr ""
-
-#: src/util/gnunet-uri.c:108
-#, c-format
-msgid "No handler known for subsystem `%s'\n"
-msgstr ""
-
 #: src/util/gnunet-uri.c:170
 msgid "Perform default-actions for GNUnet URIs"
 msgstr ""
@@ -8640,7 +8291,7 @@ msgstr ""
 #: src/util/helper.c:335
 #, c-format
 msgid "Error reading from `%s': %s\n"
-msgstr "Errore di lettura da '%s': %s\n"
+msgstr ""
 
 #: src/util/helper.c:386
 #, c-format
@@ -8652,12 +8303,12 @@ msgstr ""
 msgid "Error writing to `%s': %s\n"
 msgstr ""
 
-#: src/util/network.c:136
+#: src/util/network.c:176
 #, c-format
 msgid "Unable to shorten unix path `%s' while keeping name unique\n"
 msgstr ""
 
-#: src/util/network.c:1795 src/util/network.c:1979
+#: src/util/network.c:1835 src/util/network.c:2019
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -8761,18 +8412,18 @@ msgstr ""
 msgid "Could not resolve our FQDN: %s\n"
 msgstr ""
 
-#: src/util/service.c:1307
-msgid ""
-"Could not bind to any of the ports I was supposed to, refusing to run!\n"
-msgstr ""
-
-#: src/util/service.c:2141
+#: src/util/service.c:668
 #, c-format
 msgid ""
 "Processing code for message of type %u did not call "
 "`GNUNET_SERVICE_client_continue' after %s\n"
 msgstr ""
 
+#: src/util/service.c:1820
+msgid ""
+"Could not bind to any of the ports I was supposed to, refusing to run!\n"
+msgstr ""
+
 #: src/util/signal.c:89
 #, c-format
 msgid "signal (%d, %p) returned %d.\n"
@@ -8902,12 +8553,12 @@ msgstr ""
 msgid "Wrong format `%s' for network\n"
 msgstr ""
 
-#: src/util/time.c:828 src/util/time.c:860
+#: src/util/time.c:844 src/util/time.c:876
 #, c-format
 msgid "Failed to map `%s', cannot assure monotonic time!\n"
 msgstr ""
 
-#: src/util/time.c:866
+#: src/util/time.c:882
 #, c-format
 msgid ""
 "Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
@@ -8922,24 +8573,20 @@ msgid "# Messages dropped in cadet queue (overflow)"
 msgstr ""
 
 #: src/vpn/gnunet-service-vpn.c:753
-#, fuzzy
 msgid "# ICMP packets received from cadet"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/vpn/gnunet-service-vpn.c:1096
-#, fuzzy
 msgid "# UDP packets received from cadet"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/vpn/gnunet-service-vpn.c:1255
-#, fuzzy
 msgid "# TCP packets received from cadet"
-msgstr "# messaggi PONG ricevuti"
+msgstr ""
 
 #: src/vpn/gnunet-service-vpn.c:1467
-#, fuzzy
 msgid "# Cadet channels created"
-msgstr "# messaggi PONG decrittati"
+msgstr ""
 
 #: src/vpn/gnunet-service-vpn.c:1687
 #, c-format
@@ -9081,209 +8728,34 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #: src/zonemaster/gnunet-service-zonemaster.c:838
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 msgid "Failed to connect to the namestore!\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:772 src/include/gnunet_common.h:779
-#: src/include/gnunet_common.h:789
+#: src/include/gnunet_common.h:794 src/include/gnunet_common.h:801
+#: src/include/gnunet_common.h:811
 #, c-format
 msgid "Assertion failed at %s:%d. Aborting.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:797
+#: src/include/gnunet_common.h:819
 #, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:809
+#: src/include/gnunet_common.h:831
 #, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:836 src/include/gnunet_common.h:845
+#: src/include/gnunet_common.h:858 src/include/gnunet_common.h:867
 #, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr ""
 
-#, fuzzy
-#~ msgid "Can not index file `%s': %s.\n"
-#~ msgstr "Connessione stabilita con `%s'\n"
-
-#, fuzzy
-#~ msgid "`%s' is not a valid domain name\n"
-#~ msgstr "`%s' non è un indirizzo IP valido.\n"
-
-#, fuzzy
-#~ msgid "Unable to parse CAA record string `%s'\n"
-#~ msgstr "Impossibile avviare il servizio ' %s'\n"
-
-#~ msgid "Request timed out"
-#~ msgstr "Richiesta scaduta"
-
-#, fuzzy
-#~| msgid "Starting service `%s'\n"
-#~ msgid "Starting default services `%s'\n"
-#~ msgstr "Avvio del servizio '%s' in corso\n"
-
-#, fuzzy
-#~| msgid "Failed to start HTTP server\n"
-#~ msgid "Failed to initialize solver!\n"
-#~ msgstr "Impossibile avviare il server HTTP\n"
-
 #~ msgid "Benchmarking done\n"
 #~ msgstr "Benchmark completato\n"
 
-#, fuzzy
-#~| msgid "Failed to create statistics!\n"
-#~ msgid "Failed to connect peer 0 and %u\n"
-#~ msgstr "Generazione statistiche fallita\n"
-
 #~ msgid "Peer `%s'\n"
 #~ msgstr "Peer `%s'\n"
-
-#, fuzzy
-#~| msgid "Failed to create statistics!\n"
-#~ msgid "Failed to transmit request to drop database.\n"
-#~ msgstr "Generazione statistiche fallita\n"
-
-#, fuzzy
-#~| msgid "Request timed out"
-#~ msgid "# queue entry timeouts"
-#~ msgstr "Richiesta scaduta"
-
-#, fuzzy
-#~| msgid "Error reading from `%s': %s\n"
-#~ msgid "Error reading response from datastore service"
-#~ msgstr "Errore di lettura da '%s': %s\n"
-
-#, fuzzy
-#~| msgid "# PONG messages received"
-#~ msgid "# UPDATE requests executed"
-#~ msgstr "# messaggi PONG ricevuti"
-
-#, fuzzy
-#~| msgid "Failed to create statistics!\n"
-#~ msgid "Failed to create statistics!\n"
-#~ msgstr "Generazione statistiche fallita\n"
-
-#, fuzzy
-#~| msgid "Connection established to `%s'\n"
-#~ msgid "Connected to peer %s\n"
-#~ msgstr "Connessione stabilita con `%s'\n"
-
-#, fuzzy
-#~| msgid "unknown"
-#~ msgid "unknown error"
-#~ msgstr "sconosciuto"
-
-#, fuzzy
-#~| msgid "`%s' is not a valid IP address.\n"
-#~ msgid "`%s' is not a valid IP address! Ignoring BINDTOIP.\n"
-#~ msgstr "`%s' non è un indirizzo IP valido.\n"
-
-#, fuzzy
-#~| msgid "Failed to start service.\n"
-#~ msgid "failed to transmit request (service down?)"
-#~ msgstr "Impossibile avviare il servizio.\n"
-
-#, fuzzy
-#~| msgid "Failed to create statistics!\n"
-#~ msgid "Failure: Did not receive %s\n"
-#~ msgstr "Generazione statistiche fallita\n"
-
-#, fuzzy
-#~| msgid "Unknown command `%s'\n"
-#~ msgid "Unknown operator: %c\n"
-#~ msgstr "Comando `%s' sconosciuto.\n"
-
-#, fuzzy
-#~| msgid "# SYN messages received"
-#~ msgid "# SUC responder result messages received"
-#~ msgstr "# messaggi SYN ricevuti"
-
-#, fuzzy
-#~| msgid "# bytes encrypted"
-#~ msgid "# bytes sent to scalarproduct"
-#~ msgstr "# byte crittografati"
-
-#, fuzzy
-#~| msgid "Failed to start service.\n"
-#~ msgid "Failed to connect to the scalarproduct service\n"
-#~ msgstr "Impossibile avviare il servizio.\n"
-
-#, fuzzy
-#~| msgid "Failed to start service.\n"
-#~ msgid "Failed to send a message to the scalarproduct service\n"
-#~ msgstr "Impossibile avviare il servizio.\n"
-
-#, fuzzy
-#~| msgid "# PONG messages received"
-#~ msgid "# REQUEST CONNECT messages received"
-#~ msgstr "# messaggi PONG ricevuti"
-
-#, fuzzy
-#~| msgid "# PONG messages received"
-#~ msgid "# REQUEST DISCONNECT messages received"
-#~ msgstr "# messaggi PONG ricevuti"
-
-#, fuzzy
-#~| msgid "# SYN messages sent"
-#~ msgid "# keepalives sent"
-#~ msgstr "# messaggi SYN inviati"
-
-#, fuzzy
-#~| msgid "# PONG messages decrypted"
-#~ msgid "# SESSION_CONNECT messages sent"
-#~ msgstr "# messaggi PONG decrittati"
-
-#, fuzzy
-#~| msgid "# PONG messages received"
-#~ msgid "# CONNECT messages received"
-#~ msgstr "# messaggi PONG ricevuti"
-
-#, fuzzy
-#~| msgid "# PONG messages received"
-#~ msgid "# SET QUOTA messages ignored (no such peer)"
-#~ msgstr "# messaggi PONG ricevuti"
-
-#, fuzzy
-#~| msgid "# SYN messages sent"
-#~ msgid "# PING without HELLO messages sent"
-#~ msgstr "# messaggi SYN inviati"
-
-#, fuzzy
-#~| msgid "Peer `%s'\n"
-#~ msgid "Peer `%s' %s `%s' \n"
-#~ msgstr "Peer `%s'\n"
-
-#, fuzzy
-#~| msgid "Failed to start service.\n"
-#~ msgid "Failed to send connect request to transport service\n"
-#~ msgstr "Impossibile avviare il servizio.\n"
-
-#, fuzzy
-#~| msgid "# PONG messages decrypted"
-#~ msgid "# Bluetooth message fragments sent"
-#~ msgstr "# messaggi PONG decrittati"
-
-#, fuzzy
-#~| msgid "# PONG messages received"
-#~ msgid "# HELLO messages received via Bluetooth"
-#~ msgstr "# messaggi PONG ricevuti"
-
-#, fuzzy
-#~| msgid "# PONG messages received"
-#~ msgid "# Bluetooth DATA messages processed"
-#~ msgstr "# messaggi PONG ricevuti"
-
-#, fuzzy
-#~| msgid "Failed to create statistics!\n"
-#~ msgid "Failed to create network sockets, plugin failed\n"
-#~ msgstr "Generazione statistiche fallita\n"
-
-#, fuzzy
-#~| msgid "Failed to create statistics!\n"
-#~ msgid "Failed to setup mesh channel!\n"
-#~ msgstr "Generazione statistiche fallita\n"
diff --git a/po/sv.po b/po/sv.po
index 8603e31d9..2819a23b4 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,14 +7,154 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNUnet 0.7.0b\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-02-09 22:07+0000\n"
+"POT-Creation-Date: 2019-10-07 11:45+0200\n"
 "PO-Revision-Date: 2006-01-21 17:16+0100\n"
 "Last-Translator: Daniel Nylander <address@hidden>\n"
 "Language-Team: Swedish <address@hidden>\n"
+"Language: sv\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: sv\n"
+
+#: src/abd/gnunet-abd.c:394 src/namestore/gnunet-namestore.c:994
+#, fuzzy, c-format
+msgid "Ego `%s' not known to identity service\n"
+msgstr "\"%s\": okänd tjänst: %s\n"
+
+#: src/abd/gnunet-abd.c:410 src/abd/gnunet-abd.c:875
+#, fuzzy, c-format
+msgid "Issuer public key `%s' is not well-formed\n"
+msgstr "Ogiltigt argument: \"%s\"\n"
+
+#: src/abd/gnunet-abd.c:549 src/abd/gnunet-service-abd.c:1723
+#: src/namestore/gnunet-namestore.c:1019
+#: src/namestore/gnunet-namestore-fcfsd.c:1138
+#, fuzzy, c-format
+msgid "Failed to connect to namestore\n"
+msgstr "Misslyckades att ansluta till gnunetd.\n"
+
+#: src/abd/gnunet-abd.c:814 src/abd/gnunet-abd.c:865
+#, fuzzy, c-format
+msgid "Issuer public key not well-formed\n"
+msgstr "Ogiltigt argument: \"%s\"\n"
+
+#: src/abd/gnunet-abd.c:823 src/abd/gnunet-abd.c:884
+#, fuzzy, c-format
+msgid "Failed to connect to ABD\n"
+msgstr "Misslyckades att ansluta till gnunetd.\n"
+
+#: src/abd/gnunet-abd.c:829
+#, c-format
+msgid "You must provide issuer the attribute\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:836
+#, c-format
+msgid "ego required\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:846
+#, c-format
+msgid "Subject public key needed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:855
+#, fuzzy, c-format
+msgid "Subject public key `%s' is not well-formed\n"
+msgstr "Ogiltigt argument: \"%s\"\n"
+
+#: src/abd/gnunet-abd.c:890
+#, c-format
+msgid "You must provide issuer and subject attributes\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:946
+#, c-format
+msgid "Please specify name to lookup, subject key and issuer key!\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:967
+msgid "verify credential against attribute"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:974
+#, fuzzy
+msgid ""
+"The public key of the subject to lookup thecredential for, or for issuer "
+"side storage: subject and its attributes"
+msgstr "ange prioritet för innehållet"
+
+#: src/abd/gnunet-abd.c:981
+msgid "The private, signed delegate presented by the subject"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:988
+#, fuzzy
+msgid "The public key of the authority to verify the credential against"
+msgstr "ange prioritet för innehållet"
+
+#: src/abd/gnunet-abd.c:993
+#, fuzzy
+msgid "The ego/zone name to use"
+msgstr "meddelandestorlek"
+
+#: src/abd/gnunet-abd.c:999
+msgid "The issuer attribute to verify against or to issue"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1005
+msgid ""
+"The time to live for the credential.e.g. 5m, 6h, \"1990-12-30 12:00:00\""
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1010
+msgid "collect credentials"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1015
+msgid "Create and issue a credential issuer side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1020
+msgid "Issue a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1025
+msgid "Create, sign and return a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1032
+msgid "Import signed credentials that should be issued to a zone/ego"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1036
+msgid "Create private record entry."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1042 src/abd/gnunet-abd.c:1048
+msgid "Indicates that the collect/verify process is done via forward search."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1061
+#, fuzzy
+msgid "GNUnet abd resolver tool"
+msgstr "Spåra GNUnets nätverkstopologi."
+
+#: src/abd/gnunet-service-abd.c:1718 src/gns/gnunet-gns.c:185
+#: src/gns/gnunet-gns-helper-service-w32.c:727
+#, fuzzy, c-format
+msgid "Failed to connect to GNS\n"
+msgstr "Misslyckades att ansluta till gnunetd.\n"
+
+#: src/abd/plugin_gnsrecord_abd.c:182
+#, fuzzy, c-format
+msgid "Unable to parse ATTR record string `%s'\n"
+msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#: src/abd/plugin_rest_abd.c:1128 src/abd/plugin_rest_credential.c:1128
+#, fuzzy
+msgid "GNS REST API initialized\n"
+msgstr " Anslutning misslyckades\n"
 
 #: src/arm/gnunet-arm.c:156
 #, fuzzy, c-format
@@ -227,8 +367,7 @@ msgid "Control services and the Automated Restart Manager 
(ARM)"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:388 src/transport/plugin_transport_tcp.c:1120
-#: src/transport/plugin_transport_xt.c:1120
-#: src/transport/tcp_service_legacy.c:557 src/util/service.c:612
+#: src/transport/tcp_service_legacy.c:557
 #, c-format
 msgid ""
 "Disabling IPv6 support for service `%s', failed to create IPv6 socket: %s\n"
@@ -237,36 +376,30 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:412 src/arm/gnunet-service-arm.c:418
 #: src/transport/plugin_transport_tcp.c:1139
 #: src/transport/plugin_transport_tcp.c:1145
-#: src/transport/plugin_transport_tcp.c:3829
-#: src/transport/plugin_transport_xt.c:1139
-#: src/transport/plugin_transport_xt.c:1145
-#: src/transport/plugin_transport_xt.c:3833
+#: src/transport/plugin_transport_tcp.c:3835
 #: src/transport/tcp_service_legacy.c:576
-#: src/transport/tcp_service_legacy.c:582 src/util/service.c:637
-#: src/util/service.c:643
+#: src/transport/tcp_service_legacy.c:582 src/util/service.c:1150
+#: src/util/service.c:1156
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:457 src/transport/plugin_transport_tcp.c:1176
-#: src/transport/plugin_transport_xt.c:1176
-#: src/transport/tcp_service_legacy.c:613 src/util/client.c:506
-#: src/util/service.c:682
+#: src/transport/tcp_service_legacy.c:613 src/util/client.c:521
+#: src/util/service.c:1195
 #, c-format
 msgid "UNIXPATH `%s' too long, maximum length is %llu\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:462 src/transport/plugin_transport_tcp.c:1180
-#: src/transport/plugin_transport_xt.c:1180
-#: src/transport/tcp_service_legacy.c:617 src/util/client.c:511
-#: src/util/service.c:687
+#: src/transport/tcp_service_legacy.c:617 src/util/client.c:526
+#: src/util/service.c:1200
 #, fuzzy, c-format
 msgid "Using `%s' instead\n"
 msgstr "%s: flagga \"%s\" är tvetydig\n"
 
 #: src/arm/gnunet-service-arm.c:495 src/transport/plugin_transport_tcp.c:1211
-#: src/transport/plugin_transport_xt.c:1211
-#: src/transport/tcp_service_legacy.c:648 src/util/service.c:723
+#: src/transport/tcp_service_legacy.c:648 src/util/service.c:1236
 #, c-format
 msgid ""
 "Disabling UNIX domain socket support for service `%s', failed to create UNIX "
@@ -274,8 +407,7 @@ msgid ""
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:517 src/transport/plugin_transport_tcp.c:1228
-#: src/transport/plugin_transport_xt.c:1228
-#: src/transport/tcp_service_legacy.c:665 src/util/service.c:741
+#: src/transport/tcp_service_legacy.c:665 src/util/service.c:1254
 #, c-format
 msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"
 msgstr ""
@@ -283,8 +415,7 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:556
 #: src/transport/plugin_transport_http_server.c:2688
 #: src/transport/plugin_transport_tcp.c:1259
-#: src/transport/plugin_transport_xt.c:1259
-#: src/transport/tcp_service_legacy.c:696 src/util/service.c:782
+#: src/transport/tcp_service_legacy.c:696 src/util/service.c:1295
 #, fuzzy, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
@@ -292,8 +423,7 @@ msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
 #: src/arm/gnunet-service-arm.c:575
 #: src/transport/plugin_transport_http_server.c:2706
 #: src/transport/plugin_transport_tcp.c:1278
-#: src/transport/plugin_transport_xt.c:1278
-#: src/transport/tcp_service_legacy.c:715 src/util/service.c:802
+#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1315
 #, fuzzy, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "Misslyckades att binda till UDP-port %d.\n"
@@ -365,15 +495,141 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:837
-msgid "Stop logging\n"
+#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:892
-#, fuzzy, c-format
-msgid "Start logging `%s'\n"
+#: src/ats/gnunet-ats-solver-eval.c:2799
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:2840
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3294 src/ats-tests/gnunet-solver-eval.c:939
+msgid "solver to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3299 src/ats-tests/gnunet-solver-eval.c:945
+#: src/ats-tests/gnunet-solver-eval.c:950
+msgid "experiment to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3306
+#, fuzzy
+msgid "print logging"
 msgstr "Startade samling \"%s\".\n"
 
+#: src/ats/gnunet-ats-solver-eval.c:3311
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3316
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats-new.c:756
+#: src/ats/gnunet-service-ats_plugins.c:451
+#, fuzzy, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "Kunde inte initiera SQLite.\n"
+
+#: src/ats/gnunet-service-ats_plugins.c:304
+#, 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:314
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:359
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats2_common.c:90
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s': `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1274
+msgid "Problem size too large, cannot allocate memory!\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1870
+#, fuzzy, c-format
+msgid "Adding address for peer `%s' multiple times\n"
+msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n"
+
+#: src/ats/plugin_ats_mlp.c:1914
+#, fuzzy, c-format
+msgid "Updating address property for peer `%s' %p not added before\n"
+msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n"
+
+#: src/ats/plugin_ats_mlp.c:2476
+msgid ""
+"MLP solver is not optimizing for anything, changing to feasibility check\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
+#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
+#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
+#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
+#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
+#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
+#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "Kunde inte spara konfigurationsfil \"%s\":"
+
+#: src/ats/plugin_ats_mlp.c:2671
+#, c-format
+msgid ""
+"Adjusting inconsistent outbound quota configuration for network `%s', is "
+"%llu must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2680
+#, c-format
+msgid ""
+"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
+"must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2690
+#, c-format
+msgid ""
+"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2699
+#, c-format
+msgid ""
+"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_proportional.c:1164
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr "Kunde inte spara konfigurationsfil \"%s\":"
+
 #: src/ats-tests/ats-testing.c:422
 #, c-format
 msgid "Connected master [%u] with slave [%u]\n"
@@ -384,6 +640,15 @@ 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:837
+msgid "Stop logging\n"
+msgstr ""
+
+#: src/ats-tests/ats-testing-log.c:892
+#, fuzzy, c-format
+msgid "Start logging `%s'\n"
+msgstr "Startade samling \"%s\".\n"
+
 #: src/ats-tests/gnunet-ats-sim.c:90
 #, c-format
 msgid ""
@@ -391,17 +656,6 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
-#: src/ats-tests/gnunet-solver-eval.c:939
-#: src/ats/gnunet-ats-solver-eval.c:3294
-msgid "solver to use"
-msgstr ""
-
-#: src/ats-tests/gnunet-solver-eval.c:945
-#: src/ats-tests/gnunet-solver-eval.c:950
-#: src/ats/gnunet-ats-solver-eval.c:3299
-msgid "experiment to use"
-msgstr ""
-
 #: src/ats-tool/gnunet-ats.c:307
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -523,138 +777,12 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr "Skriv ut information om GNUnets motparter."
 
-#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth %"
-"llu\n"
+#: src/auction/gnunet-auction-create.c:163
+msgid "description of the item to be sold"
 msgstr ""
 
-#: src/ats/gnunet-ats-solver-eval.c:2799
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2840
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3306
-#, fuzzy
-msgid "print logging"
-msgstr "Startade samling \"%s\".\n"
-
-#: src/ats/gnunet-ats-solver-eval.c:3311
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3316
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats-new.c:733
-#: src/ats/gnunet-service-ats_plugins.c:451
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "Kunde inte initiera SQLite.\n"
-
-#: src/ats/gnunet-service-ats_plugins.c:304
-#, 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:314
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:359
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats2_common.c:90
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s': `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1274
-msgid "Problem size too large, cannot allocate memory!\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1870
-#, fuzzy, c-format
-msgid "Adding address for peer `%s' multiple times\n"
-msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n"
-
-#: src/ats/plugin_ats_mlp.c:1914
-#, fuzzy, c-format
-msgid "Updating address property for peer `%s' %p not added before\n"
-msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n"
-
-#: src/ats/plugin_ats_mlp.c:2476
-msgid ""
-"MLP solver is not optimizing for anything, changing to feasibility check\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
-#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
-#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
-#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
-#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
-#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
-#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "Kunde inte spara konfigurationsfil \"%s\":"
-
-#: src/ats/plugin_ats_mlp.c:2671
-#, c-format
-msgid ""
-"Adjusting inconsistent outbound quota configuration for network `%s', is %"
-"llu must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2680
-#, c-format
-msgid ""
-"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
-"must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2690
-#, c-format
-msgid ""
-"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2699
-#, c-format
-msgid ""
-"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_proportional.c:1164
-#, 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 ""
-
-#: src/auction/gnunet-auction-create.c:169
-msgid "mapping of possible prices"
+#: src/auction/gnunet-auction-create.c:169
+msgid "mapping of possible prices"
 msgstr ""
 
 #: src/auction/gnunet-auction-create.c:175
@@ -783,28 +911,6 @@ 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:145
-#, 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:216
-#, 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:277
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1062,8 +1168,30 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-playback-gst.c:361
+#: 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:145
+#, 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:216
+#, 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:622
+#: src/conversation/gnunet-helper-audio-playback-gst.c:361
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1374,7 +1502,7 @@ msgid "# valid ephemeral keys received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
 #: src/core/gnunet-service-core_kx.c:1180
-#: src/transport/gnunet-service-transport_validation.c:1128
+#: src/transport/gnunet-service-transport_validation.c:1129
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# PING-meddelanden skapade"
@@ -1400,7 +1528,7 @@ msgid "# keepalive messages sent"
 msgstr "# PING-meddelanden i klartext skickade"
 
 #: src/core/gnunet-service-core_kx.c:1351
-#: src/transport/gnunet-service-transport_validation.c:1461
+#: src/transport/gnunet-service-transport_validation.c:1462
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
@@ -1509,131 +1637,6 @@ msgstr "# krypterade PONG-meddelanden mottagna"
 msgid "# updates to my type map"
 msgstr ""
 
-#: src/credential/credential_misc.c:88
-#, fuzzy, c-format
-msgid "Unable to parse CRED record string `%s'\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/credential/gnunet-credential.c:264 src/namestore/gnunet-namestore.c:994
-#, fuzzy, c-format
-msgid "Ego `%s' not known to identity service\n"
-msgstr "\"%s\": okänd tjänst: %s\n"
-
-#: src/credential/gnunet-credential.c:280
-#: src/credential/gnunet-credential.c:434
-#, fuzzy, c-format
-msgid "Issuer public key `%s' is not well-formed\n"
-msgstr "Ogiltigt argument: \"%s\"\n"
-
-#: src/credential/gnunet-credential.c:361
-#: src/credential/gnunet-credential.c:423
-#, fuzzy, c-format
-msgid "Issuer public key not well-formed\n"
-msgstr "Ogiltigt argument: \"%s\"\n"
-
-#: src/credential/gnunet-credential.c:372
-#: src/credential/gnunet-credential.c:444
-#, fuzzy, c-format
-msgid "Failed to connect to CREDENTIAL\n"
-msgstr "Misslyckades att ansluta till gnunetd.\n"
-
-#: src/credential/gnunet-credential.c:379
-#, c-format
-msgid "You must provide issuer the attribute\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:387
-#, c-format
-msgid "ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:403
-#, c-format
-msgid "Subject public key needed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:414
-#, fuzzy, c-format
-msgid "Subject public key `%s' is not well-formed\n"
-msgstr "Ogiltigt argument: \"%s\"\n"
-
-#: src/credential/gnunet-credential.c:451
-#, c-format
-msgid "You must provide issuer and subject attributes\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:504
-#, c-format
-msgid "Issuer ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:516
-#, c-format
-msgid "Please specify name to lookup, subject key and issuer key!\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:536
-msgid "create credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:540
-msgid "verify credential against attribute"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:545
-#, fuzzy
-msgid "The public key of the subject to lookup the credential for"
-msgstr "ange prioritet för innehållet"
-
-#: src/credential/gnunet-credential.c:550
-msgid "The name of the credential presented by the subject"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:555
-#, fuzzy
-msgid "The public key of the authority to verify the credential against"
-msgstr "ange prioritet för innehållet"
-
-#: src/credential/gnunet-credential.c:560
-#, fuzzy
-msgid "The ego to use"
-msgstr "meddelandestorlek"
-
-#: src/credential/gnunet-credential.c:565
-msgid "The issuer attribute to verify against or to issue"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:570
-msgid "The time to live for the credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:574
-msgid "collect credentials"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:588
-#, fuzzy
-msgid "GNUnet credential resolver tool"
-msgstr "Spåra GNUnets nätverkstopologi."
-
-#: src/credential/gnunet-service-credential.c:1138
-#: src/gns/gnunet-gns-helper-service-w32.c:727 src/gns/gnunet-gns.c:185
-#, fuzzy, c-format
-msgid "Failed to connect to GNS\n"
-msgstr "Misslyckades att ansluta till gnunetd.\n"
-
-#: src/credential/gnunet-service-credential.c:1144
-#: src/namestore/gnunet-namestore-fcfsd.c:1138
-#: src/namestore/gnunet-namestore.c:1019
-#, fuzzy, c-format
-msgid "Failed to connect to namestore\n"
-msgstr "Misslyckades att ansluta till gnunetd.\n"
-
-#: src/credential/plugin_gnsrecord_credential.c:186
-#, fuzzy, c-format
-msgid "Unable to parse ATTR record string `%s'\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
 #: src/datacache/datacache.c:119 src/datacache/datacache.c:311
 #: src/datastore/gnunet-service-datastore.c:757
 #, fuzzy
@@ -1687,14 +1690,12 @@ msgstr ""
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_sqlite.c:53
 #: src/peerstore/plugin_peerstore_sqlite.c:52
-#: src/psycstore/plugin_psycstore_mysql.c:62
-#: src/reclaim/plugin_reclaim_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:56
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:53
 #: src/util/crypto_ecc_setup.c:41 src/util/crypto_mpi.c:39
-#: src/include/gnunet_common.h:818 src/include/gnunet_common.h:827
+#: src/include/gnunet_common.h:840 src/include/gnunet_common.h:849
 #: src/scalarproduct/scalarproduct.h:35
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
@@ -1704,7 +1705,6 @@ msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
 #: src/datastore/plugin_datastore_sqlite.c:508
 #: src/namecache/plugin_namecache_sqlite.c:229
 #: src/namestore/plugin_namestore_sqlite.c:265
-#: src/reclaim/plugin_reclaim_sqlite.c:336
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -2017,22 +2017,20 @@ msgid "`%s' for `%s' failed at %s:%d with error: %s\n"
 msgstr "\"%s\" till \"%s\" misslyckades vid %s:%d med fel: %s\n"
 
 #: src/datastore/plugin_datastore_mysql.c:1180
-#: src/psycstore/plugin_psycstore_mysql.c:1936
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:276
-#: src/datastore/plugin_datastore_postgres.c:893
+#: src/datastore/plugin_datastore_postgres.c:280
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:854
+#: 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:952
-#: src/psycstore/plugin_psycstore_postgres.c:1506
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -2048,8 +2046,6 @@ msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
 #: src/namecache/plugin_namecache_sqlite.c:173
 #: src/namestore/plugin_namestore_sqlite.c:206
 #: src/peerstore/plugin_peerstore_sqlite.c:535
-#: src/psycstore/plugin_psycstore_sqlite.c:325
-#: src/reclaim/plugin_reclaim_sqlite.c:212
 #, fuzzy, c-format
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "Kunde inte initiera SQLite.\n"
@@ -2071,8 +2067,7 @@ msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:1405
 #: src/namecache/plugin_namecache_sqlite.c:557
-#: src/namestore/plugin_namestore_sqlite.c:750
-#: src/reclaim/plugin_reclaim_sqlite.c:711
+#: src/namestore/plugin_namestore_sqlite.c:751
 msgid "Sqlite database running\n"
 msgstr ""
 
@@ -2143,17 +2138,65 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
-#: src/dht/gnunet-dht-put.c:134
-msgid "Must provide KEY and DATA for DHT put!\n"
-msgstr ""
+#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
+#, 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:142
+#: src/dht/gnunet_dht_profiler.c:949 src/rps/gnunet-rps-profiler.c:3083
 #, fuzzy
-msgid "Could not connect to DHT service!\n"
-msgstr "Kunde inte ansluta till gnunetd.\n"
+msgid "number of peers to start"
+msgstr "antal iterationer"
 
-#: src/dht/gnunet-dht-put.c:153
-#, c-format
+#: src/dht/gnunet_dht_profiler.c:954
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
+#: src/testbed/gnunet-testbed-profiler.c:300
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:964
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:969
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:974
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:984
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:989
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1009
+#, fuzzy
+msgid "Measure quality and performance of the DHT service."
+msgstr "Kan inte tillgå tjänsten"
+
+#: src/dht/gnunet-dht-put.c:134
+msgid "Must provide KEY and DATA for DHT put!\n"
+msgstr ""
+
+#: src/dht/gnunet-dht-put.c:142
+#, fuzzy
+msgid "Could not connect to DHT service!\n"
+msgstr "Kunde inte ansluta till gnunetd.\n"
+
+#: src/dht/gnunet-dht-put.c:153
+#, c-format
 msgid "Issuing put request for `%s' with data `%s'!\n"
 msgstr ""
 
@@ -2413,54 +2456,6 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr "# byte mottogs via TCP"
 
-#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
-#, 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:949 src/rps/gnunet-rps-profiler.c:2953
-#, fuzzy
-msgid "number of peers to start"
-msgstr "antal iterationer"
-
-#: src/dht/gnunet_dht_profiler.c:954
-msgid "number of PUTs to perform per peer"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
-#: src/testbed/gnunet-testbed-profiler.c:304
-msgid "name of the file with the login information for the testbed"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:964
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:969
-msgid "delay to start doing PUTs (default: 1 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:974
-msgid "delay to start doing GETs (default: 5 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "replication degree for DHT PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:984
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:989
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1009
-#, 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"
@@ -2547,11 +2542,6 @@ msgstr "Ogiltigt svar på \"%s\".\n"
 msgid "`%s' must be installed SUID, will not run DNS interceptor\n"
 msgstr ""
 
-#: src/dv/gnunet-dv.c:175
-#, fuzzy
-msgid "Print information about DV state"
-msgstr "Skriv ut information om GNUnets motparter."
-
 #: src/exit/gnunet-daemon-exit.c:960
 #, fuzzy
 msgid "# TCP packets sent via TUN"
@@ -3003,61 +2993,66 @@ msgstr ""
 "\n"
 "Fel vid uppladdning av fil: %s\n"
 
-#: src/fs/fs_publish.c:724 src/fs/fs_publish.c:778 src/fs/fs_publish.c:823
-#: src/fs/fs_publish.c:844 src/fs/fs_publish.c:874 src/fs/fs_publish.c:1140
+#: src/fs/fs_publish.c:725
+#, fuzzy, c-format
+msgid "Can not index file `%s': %s.\n"
+msgstr "Kan inte öppna konfigurationsfil \"%s\".\n"
+
+#: src/fs/fs_publish.c:782 src/fs/fs_publish.c:827 src/fs/fs_publish.c:848
+#: src/fs/fs_publish.c:878 src/fs/fs_publish.c:1144
 #, fuzzy, c-format
 msgid "Can not index file `%s': %s.  Will try to insert instead.\n"
 msgstr "Indexering av fil \"%s\" misslyckades. Försöker att infoga fil...\n"
 
-#: src/fs/fs_publish.c:780
+#: src/fs/fs_publish.c:784
 #, fuzzy
 msgid "error on index-start request to `fs' service"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/fs/fs_publish.c:825
+#: src/fs/fs_publish.c:829
 msgid "failed to compute hash"
 msgstr ""
 
-#: src/fs/fs_publish.c:845
+#: src/fs/fs_publish.c:849
 msgid "filename too long"
 msgstr ""
 
-#: src/fs/fs_publish.c:876
+#: src/fs/fs_publish.c:880
 #, fuzzy
 msgid "could not connect to `fs' service"
 msgstr "Kunde inte ansluta till gnunetd.\n"
 
-#: src/fs/fs_publish.c:902
+#: src/fs/fs_publish.c:906
 #, fuzzy, c-format
 msgid "Failed to get file identifiers for `%s'\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/fs/fs_publish.c:991 src/fs/fs_publish.c:1027
+#: src/fs/fs_publish.c:995 src/fs/fs_publish.c:1031
 msgid "Can not create LOC URI. Will continue with CHK instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:1094
+#: src/fs/fs_publish.c:1098
 #, fuzzy, c-format
 msgid "Recursive upload failed at `%s': %s"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
-#: src/fs/fs_publish.c:1102
+#: src/fs/fs_publish.c:1106
 #, fuzzy, c-format
 msgid "Recursive upload failed: %s"
 msgstr ""
 "\n"
 "Fel vid uppladdning av fil: %s\n"
 
-#: src/fs/fs_publish.c:1142
+#: src/fs/fs_publish.c:1146
 msgid "needs to be an actual file"
 msgstr ""
 
-#: src/fs/fs_publish.c:1381
+#: src/fs/fs_publish.c:1385
 #, fuzzy, c-format
 msgid "Datastore failure: %s"
 msgstr " Anslutning misslyckades (fel?)\n"
 
-#: src/fs/fs_publish.c:1472
+#: src/fs/fs_publish.c:1476
 #, c-format
 msgid "Reserving space for %u entries and %llu bytes for publication\n"
 msgstr ""
@@ -3131,96 +3126,96 @@ msgstr "Misslyckades att ansluta till gnunetd.\n"
 msgid "Failed to compute hash of file."
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/fs/fs_uri.c:234
+#: src/fs/fs_uri.c:236
 #, fuzzy, no-c-format
 msgid "Malformed KSK URI (`%' must be followed by HEX number)"
 msgstr "Ogiltig URL \"%s\" (måste börja med \"%s\")\n"
 
-#: src/fs/fs_uri.c:293
+#: src/fs/fs_uri.c:295
 #, fuzzy
 msgid "Malformed KSK URI (must not begin or end with `+')"
 msgstr "Ogiltig URL \"%s\" (måste börja med \"%s\")\n"
 
-#: src/fs/fs_uri.c:311
+#: src/fs/fs_uri.c:313
 #, fuzzy
 msgid "Malformed KSK URI (`++' not allowed)"
 msgstr "Ogiltig URL \"%s\" (måste börja med \"%s\")\n"
 
-#: src/fs/fs_uri.c:318
+#: src/fs/fs_uri.c:320
 #, fuzzy
 msgid "Malformed KSK URI (quotes not balanced)"
 msgstr "Ogiltig URL \"%s\" (måste börja med \"%s\")\n"
 
-#: src/fs/fs_uri.c:388
+#: src/fs/fs_uri.c:390
 msgid "Malformed SKS URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:429
+#: src/fs/fs_uri.c:431
 msgid "Malformed CHK URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:444
+#: src/fs/fs_uri.c:446
 msgid "Malformed CHK URI (failed to decode CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:523
+#: src/fs/fs_uri.c:525
 msgid "LOC URI malformed (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:538
+#: src/fs/fs_uri.c:540
 msgid "LOC URI malformed (no CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:548
+#: src/fs/fs_uri.c:550
 msgid "LOC URI malformed (missing LOC)"
 msgstr ""
 
-#: src/fs/fs_uri.c:556
+#: src/fs/fs_uri.c:558
 msgid "LOC URI malformed (wrong syntax for public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:564
+#: src/fs/fs_uri.c:566
 msgid "LOC URI malformed (could not decode public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:570
+#: src/fs/fs_uri.c:572
 msgid "LOC URI malformed (could not find signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:576
+#: src/fs/fs_uri.c:578
 msgid "LOC URI malformed (wrong syntax for signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:585
+#: src/fs/fs_uri.c:587
 msgid "LOC URI malformed (could not decode signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:591
+#: src/fs/fs_uri.c:593
 msgid "LOC URI malformed (wrong syntax for expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:597
+#: src/fs/fs_uri.c:599
 msgid "LOC URI malformed (could not parse expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:609
+#: src/fs/fs_uri.c:611
 msgid "LOC URI malformed (signature failed validation)"
 msgstr ""
 
-#: src/fs/fs_uri.c:643
+#: src/fs/fs_uri.c:645
 #, fuzzy
 msgid "invalid argument"
 msgstr "Ogiltigt argument: \"%s\"\n"
 
-#: src/fs/fs_uri.c:655
+#: src/fs/fs_uri.c:657
 msgid "Unrecognized URI type"
 msgstr ""
 
-#: src/fs/fs_uri.c:1059 src/fs/fs_uri.c:1086
+#: src/fs/fs_uri.c:1061 src/fs/fs_uri.c:1088
 msgid "No keywords specified!\n"
 msgstr "Inga nyckelord angivna!\n"
 
-#: src/fs/fs_uri.c:1092
+#: src/fs/fs_uri.c:1094
 msgid "Number of double-quotes not balanced!\n"
 msgstr ""
 
@@ -3262,11 +3257,11 @@ msgstr "Du måste ange en och endast en fil att 
avindexera.\n"
 msgid "set the desired LEVEL of sender-anonymity"
 msgstr ""
 
-#: src/fs/gnunet-auto-share.c:772 src/fs/gnunet-publish.c:907
+#: src/fs/gnunet-auto-share.c:772
 msgid "disable adding the creation time to the metadata of the uploaded file"
 msgstr ""
 
-#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:912
+#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:907
 msgid "do not use libextractor to add keywords or metadata"
 msgstr ""
 
@@ -3349,7 +3344,7 @@ msgid "Downloading `%s' done (%s/s).\n"
 msgstr "Uppladdning vägrades!"
 
 #: src/fs/gnunet-download.c:216 src/fs/gnunet-publish.c:295
-#: src/fs/gnunet-search.c:212 src/fs/gnunet-unindex.c:107
+#: src/fs/gnunet-search.c:215 src/fs/gnunet-unindex.c:107
 #, c-format
 msgid "Unexpected status: %d\n"
 msgstr ""
@@ -3373,12 +3368,12 @@ msgid "Target filename must be specified.\n"
 msgstr ""
 
 #: src/fs/gnunet-download.c:291 src/fs/gnunet-publish.c:872
-#: src/fs/gnunet-search.c:270 src/fs/gnunet-unindex.c:139
+#: src/fs/gnunet-search.c:273 src/fs/gnunet-unindex.c:139
 #, fuzzy, c-format
 msgid "Could not initialize `%s' subsystem.\n"
 msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
 
-#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:312
+#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:315
 msgid "set the desired LEVEL of receiver-anonymity"
 msgstr ""
 
@@ -3386,7 +3381,7 @@ msgstr ""
 msgid "delete incomplete downloads (when aborted with CTRL-C)"
 msgstr ""
 
-#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:316
+#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:319
 msgid "only search the local peer (no P2P network search)"
 msgstr ""
 
@@ -3412,6 +3407,15 @@ msgid ""
 "chk/...)"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:119
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:130
+#, 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 ""
@@ -3428,15 +3432,6 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:119
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:130
-#, fuzzy
-msgid "Special file-sharing operations"
-msgstr "Visa alla alternativ"
-
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:231
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3528,7 +3523,7 @@ msgstr ""
 
 #: src/fs/gnunet-publish.c:687
 #, fuzzy
-msgid "Internal error scanning directory.\n"
+msgid "Error scanning directory.\n"
 msgstr "=\tFel vid läsning av katalog.\n"
 
 #: src/fs/gnunet-publish.c:715
@@ -3573,6 +3568,10 @@ msgstr "Kommando \"%s\" kräver ett argument (\"%s\").\n"
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr ""
 
+#: src/fs/gnunet-publish.c:911
+msgid "enable adding the creation time to the metadata of the uploaded file"
+msgstr ""
+
 #: src/fs/gnunet-publish.c:916
 msgid ""
 "print list of extracted keywords that would be used, but do not perform "
@@ -3631,34 +3630,34 @@ msgstr ""
 msgid "Failed to write directory with search results to `%s'\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:204
+#: src/fs/gnunet-search.c:207
 #, fuzzy, c-format
 msgid "Error searching: %s.\n"
 msgstr "Fel vid lämning av DHT.\n"
 
-#: src/fs/gnunet-search.c:260
+#: src/fs/gnunet-search.c:263
 #, fuzzy
 msgid "Could not create keyword URI from arguments.\n"
 msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
-#: src/fs/gnunet-search.c:284
+#: src/fs/gnunet-search.c:287
 #, fuzzy
 msgid "Could not start searching.\n"
 msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
-#: src/fs/gnunet-search.c:321
+#: src/fs/gnunet-search.c:324
 msgid "write search results to file starting with PREFIX"
 msgstr ""
 
-#: src/fs/gnunet-search.c:326
+#: src/fs/gnunet-search.c:329
 msgid "automatically terminate search after DELAY"
 msgstr ""
 
-#: src/fs/gnunet-search.c:332
+#: src/fs/gnunet-search.c:335
 msgid "automatically terminate search after VALUE results are found"
 msgstr ""
 
-#: src/fs/gnunet-search.c:348
+#: src/fs/gnunet-search.c:351
 msgid "Search GNUnet for files that were published on GNUnet"
 msgstr ""
 
@@ -4070,40 +4069,40 @@ msgstr ""
 msgid "GNUnet HTTP server to create business cards"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:203
+#: src/gns/gnunet-dns2gns.c:214
 #, fuzzy
 msgid "Failed to pack DNS response into UDP packet!\n"
 msgstr "Misslyckades att skicka HTTP-begäran till värd \"%s\": %s\n"
 
-#: src/gns/gnunet-dns2gns.c:405
+#: src/gns/gnunet-dns2gns.c:416
 #, fuzzy, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr "Misslyckades att skicka HTTP-begäran till värd \"%s\": %s\n"
 
-#: src/gns/gnunet-dns2gns.c:421
+#: src/gns/gnunet-dns2gns.c:432
 #, fuzzy, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr "Mottog ogiltig \"%s\" begäran (storlek %d)\n"
 
-#: src/gns/gnunet-dns2gns.c:429
+#: src/gns/gnunet-dns2gns.c:440
 #, fuzzy, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr "Mottog okänd typ av begäran %d vid %s:%d\n"
 
-#: src/gns/gnunet-dns2gns.c:588
+#: src/gns/gnunet-dns2gns.c:600
 #, fuzzy
 msgid "No DNS server specified!\n"
 msgstr "Inga nyckelord angivna!\n"
 
-#: src/gns/gnunet-dns2gns.c:688
+#: src/gns/gnunet-dns2gns.c:748
 msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:693
+#: src/gns/gnunet-dns2gns.c:753
 msgid "UDP port to listen on for inbound DNS requests; default: 2853"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:710
+#: src/gns/gnunet-dns2gns.c:770
 msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
 msgstr ""
 
@@ -4119,6 +4118,29 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:199
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:233
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:238
+#, fuzzy
+msgid "Specify the type of the record to lookup"
+msgstr "ange prioritet för innehållet"
+
+#: src/gns/gnunet-gns.c:242
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:258
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "Spåra GNUnets nätverkstopologi."
+
 #: src/gns/gnunet-gns-helper-service-w32.c:602
 msgid "Not ready to process requests, lacking ego data\n"
 msgstr ""
@@ -4153,130 +4175,107 @@ msgstr ""
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
-#: src/gns/gnunet-gns-proxy.c:980
+#: src/gns/gnunet-gns-proxy.c:989
 #, fuzzy, c-format
 msgid "Unsupported CURL TLS backend %d\n"
 msgstr "Kommando \"%s\" stöds ej.  Avbryter.\n"
 
-#: src/gns/gnunet-gns-proxy.c:1005
+#: src/gns/gnunet-gns-proxy.c:1014
 #, fuzzy, c-format
 msgid "Failed to fetch CN from cert: %s\n"
 msgstr "Misslyckades att skicka HTTP-begäran till värd \"%s\": %s\n"
 
-#: src/gns/gnunet-gns-proxy.c:1026
+#: src/gns/gnunet-gns-proxy.c:1035
 #, fuzzy, c-format
 msgid "Failed to initialize DANE: %s\n"
 msgstr "Kunde inte initiera SQLite.\n"
 
-#: src/gns/gnunet-gns-proxy.c:1041
+#: src/gns/gnunet-gns-proxy.c:1050
 #, fuzzy, c-format
 msgid "Failed to parse DANE record: %s\n"
 msgstr "Misslyckades att skicka HTTP-begäran till värd \"%s\": %s\n"
 
-#: src/gns/gnunet-gns-proxy.c:1056
+#: src/gns/gnunet-gns-proxy.c:1065
 #, fuzzy, c-format
 msgid "Failed to verify TLS connection using DANE: %s\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 
-#: src/gns/gnunet-gns-proxy.c:1066
+#: src/gns/gnunet-gns-proxy.c:1075
 #, c-format
 msgid "Failed DANE verification failed with GnuTLS verify status code: %u\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1090
+#: src/gns/gnunet-gns-proxy.c:1099
 #, c-format
 msgid "TLS certificate subject name (%s) does not match `%s': %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1221
+#: src/gns/gnunet-gns-proxy.c:1230
 #, c-format
 msgid "Cookie domain `%s' supplied by server is invalid\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2121
+#: src/gns/gnunet-gns-proxy.c:2131
 #, fuzzy, c-format
 msgid "Unsupported HTTP method `%s'\n"
 msgstr "Kommando \"%s\" stöds ej.  Avbryter.\n"
 
-#: src/gns/gnunet-gns-proxy.c:2642
+#: src/gns/gnunet-gns-proxy.c:2652
 #, fuzzy, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "Kunde inte skapa användarkonto:"
 
-#: src/gns/gnunet-gns-proxy.c:2674
+#: src/gns/gnunet-gns-proxy.c:2684
 #, fuzzy, c-format
 msgid "Unable to import certificate from `%s'\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 
-#: src/gns/gnunet-gns-proxy.c:2875
+#: src/gns/gnunet-gns-proxy.c:2885
 #, fuzzy, c-format
 msgid "Failed to start HTTPS server for `%s'\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/gns/gnunet-gns-proxy.c:2897 src/rest/gnunet-rest-server.c:658
+#: src/gns/gnunet-gns-proxy.c:2907 src/rest/gnunet-rest-server.c:668
 #, fuzzy
 msgid "Failed to pass client to MHD\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3233
+#: src/gns/gnunet-gns-proxy.c:3243
 #, fuzzy, c-format
 msgid "Unsupported socks version %d\n"
 msgstr "Kommando \"%s\" stöds ej.  Avbryter.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3262
+#: src/gns/gnunet-gns-proxy.c:3272
 #, fuzzy, c-format
 msgid "Unsupported socks command %d\n"
 msgstr "Kommando \"%s\" stöds ej.  Avbryter.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3345
+#: src/gns/gnunet-gns-proxy.c:3355
 #, fuzzy, c-format
 msgid "Unsupported socks address type %d\n"
 msgstr "Kommando \"%s\" stöds ej.  Avbryter.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3635
+#: src/gns/gnunet-gns-proxy.c:3693
 #, fuzzy, c-format
 msgid "Failed to load X.509 key and certificate from `%s'\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/gns/gnunet-gns-proxy.c:3763
+#: src/gns/gnunet-gns-proxy.c:3821
 msgid "listen on specified port (default: 7777)"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3768
+#: src/gns/gnunet-gns-proxy.c:3826
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3772
+#: src/gns/gnunet-gns-proxy.c:3830
 msgid "disable use of IPv6"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3798
+#: src/gns/gnunet-gns-proxy.c:3856
 msgid "GNUnet GNS proxy"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:199
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:233
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:238
-#, fuzzy
-msgid "Specify the type of the record to lookup"
-msgstr "ange prioritet för innehållet"
-
-#: src/gns/gnunet-gns.c:242
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:258
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "Spåra GNUnets nätverkstopologi."
-
 #: src/gns/gnunet-service-gns.c:506
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4288,8 +4287,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
 #: src/gns/gnunet-service-gns.c:561
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #: src/zonemaster/gnunet-service-zonemaster.c:875
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "Kunde inte ansluta till gnunetd.\n"
@@ -4382,6 +4381,11 @@ msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 msgid "Unable to parse BOX record string `%s'\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
+#: src/gns/plugin_rest_gns.c:452
+#, fuzzy
+msgid "Gns REST API initialized\n"
+msgstr " Anslutning misslyckades\n"
+
 #: src/gnsrecord/plugin_gnsrecord_dns.c:359
 #, fuzzy, c-format
 msgid "Unable to parse IPv4 address `%s'\n"
@@ -4767,7 +4771,7 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:679
-#: src/transport/gnunet-service-transport.c:2814
+#: src/transport/gnunet-service-transport.c:2827
 #, fuzzy
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr "Kunde inte komma åt namnrymdsinformation.\n"
@@ -4899,15 +4903,16 @@ msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
+#: src/identity/plugin_rest_identity.c:1297
+#, fuzzy
+msgid "Identity REST API initialized\n"
+msgstr " Anslutning misslyckades\n"
+
 #: src/json/json.c:123
 #, fuzzy, c-format
 msgid "Failed to parse JSON in option `%s': %s (%s)\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/multicast/gnunet-multicast.c:48 src/multicast/gnunet-multicast.c:72
-msgid "This command doesn't do anything yet."
-msgstr ""
-
 #: src/my/my.c:196 src/my/my.c:215
 #, fuzzy, c-format
 msgid "%s failed at %s:%d with error: %s\n"
@@ -4973,8 +4978,8 @@ msgstr "Skriv ut information om GNUnets motparter."
 
 #: src/namecache/plugin_namecache_flat.c:121
 #: src/namecache/plugin_namecache_flat.c:255
-#: src/namestore/plugin_namestore_heap.c:148
-#: src/namestore/plugin_namestore_heap.c:395
+#: src/namestore/plugin_namestore_heap.c:179
+#: src/namestore/plugin_namestore_heap.c:412
 #: src/peerstore/plugin_peerstore_flat.c:379
 #: src/peerstore/plugin_peerstore_flat.c:538
 #, fuzzy, c-format
@@ -4982,14 +4987,14 @@ msgid "Unable to initialize file: %s.\n"
 msgstr "Kunde inte initiera SQLite.\n"
 
 #: src/namecache/plugin_namecache_flat.c:132
-#: src/namestore/plugin_namestore_heap.c:159
+#: src/namestore/plugin_namestore_heap.c:190
 #: src/peerstore/plugin_peerstore_flat.c:394
 #, fuzzy, c-format
 msgid "Unable to get filesize: %s.\n"
 msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
 #: src/namecache/plugin_namecache_flat.c:151
-#: src/namestore/plugin_namestore_heap.c:172
+#: src/namestore/plugin_namestore_heap.c:203
 #: src/peerstore/plugin_peerstore_flat.c:406
 #, fuzzy, c-format
 msgid "Unable to read file: %s.\n"
@@ -5007,70 +5012,6 @@ msgstr ""
 msgid "Failed to setup database at `%s'\n"
 msgstr "Fel vid %s:%d.\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:549
-#, fuzzy, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr "Kommando \"%s\" stöds ej.  Avbryter.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:576
-#, 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:597
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:629
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:689
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:777
-#, 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:796
-#, 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:832
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:841
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1071
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1099
-#, fuzzy
-msgid "Failed to start HTTP server\n"
-msgstr "Misslyckades att starta samling.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1147
-#, fuzzy
-msgid "Failed to connect to identity\n"
-msgstr "Misslyckades att ansluta till gnunetd.\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1173
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1192
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-namestore.c:341
 #, fuzzy, c-format
 msgid "Adding record failed: %s\n"
@@ -5285,6 +5226,70 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr "Visa värde av alternativet"
 
+#: src/namestore/gnunet-namestore-fcfsd.c:549
+#, fuzzy, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr "Kommando \"%s\" stöds ej.  Avbryter.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:576
+#, 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:597
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:629
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:689
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:777
+#, 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:796
+#, 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:832
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:841
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1071
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1099
+#, fuzzy
+msgid "Failed to start HTTP server\n"
+msgstr "Misslyckades att starta samling.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1147
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "Misslyckades att ansluta till gnunetd.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1173
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1192
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-service-namestore.c:900
 #, fuzzy, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5302,10 +5307,15 @@ msgstr ""
 msgid "Namestore failed to store record\n"
 msgstr ""
 
-#: src/namestore/plugin_namestore_heap.c:778
+#: src/namestore/plugin_namestore_heap.c:773
 msgid "heap file database running\n"
 msgstr ""
 
+#: src/namestore/plugin_rest_namestore.c:1079
+#, fuzzy
+msgid "Namestore REST API initialized\n"
+msgstr " Anslutning misslyckades\n"
+
 #: src/nat-auto/gnunet-nat-auto.c:193
 #, fuzzy
 msgid "Suggested configuration changes:\n"
@@ -5592,6 +5602,11 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
+#: src/nse/gnunet-nse.c:122
+#, fuzzy
+msgid "Show network size estimates from NSE service."
+msgstr "# byte mottogs via TCP"
+
 #: src/nse/gnunet-nse-profiler.c:849
 #, fuzzy
 msgid "limit to the number of connections to NSE services, 0 for none"
@@ -5618,16 +5633,66 @@ msgstr ""
 msgid "Measure quality and performance of the NSE service."
 msgstr "Kan inte tillgå tjänsten"
 
-#: src/nse/gnunet-nse.c:122
-#, fuzzy
-msgid "Show network size estimates from NSE service."
-msgstr "# byte mottogs via TCP"
-
 #: src/nse/gnunet-service-nse.c:1534
 #: src/revocation/gnunet-service-revocation.c:843 src/util/gnunet-scrypt.c:276
 msgid "Value is too large.\n"
 msgstr ""
 
+#: src/peerinfo/gnunet-service-peerinfo.c:178
+#, fuzzy, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr "Tillgängliga transport(er): %s\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:313
+#, 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:334
+#: src/peerinfo/gnunet-service-peerinfo.c:365
+#, 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:449
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:492
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:659
+#, fuzzy, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:667
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1100
+#, 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:1438
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1451
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:220
+#, 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:239
 #, fuzzy, c-format
 msgid "%sPeer `%s'\n"
@@ -5639,7 +5704,7 @@ msgid "\tExpires: %s \t %s\n"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:299
-#: src/rest-plugins/plugin_rest_peerinfo.c:501
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:501
 #, fuzzy, c-format
 msgid "Failure: Cannot convert address to string for peer `%s'\n"
 msgstr "Misslyckades att binda till UDP-port %d.\n"
@@ -5710,226 +5775,66 @@ msgstr "Testar transport(er) %s\n"
 #: src/peerinfo-tool/gnunet-peerinfo_plugins.c:109
 #: src/transport/gnunet-service-transport_plugins.c:173
 #, fuzzy, c-format
-msgid "Loading `%s' transport plugin\n"
-msgstr "Testar transport(er) %s\n"
-
-#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:129
-#: src/transport/gnunet-service-transport_plugins.c:208
-#, fuzzy, c-format
-msgid "Failed to load transport plugin for `%s'\n"
-msgstr "Kunde inte slå upp \"%s\": %s\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:178
-#, fuzzy, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr "Tillgängliga transport(er): %s\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:313
-#, 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:334
-#: src/peerinfo/gnunet-service-peerinfo.c:365
-#, 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:449
-msgid "# peers known"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:492
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:659
-#, fuzzy, c-format
-msgid "Scanning directory `%s'\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:667
-#, c-format
-msgid "Still no peers found in `%s'!\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1100
-#, 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:1438
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1451
-msgid "Skipping import of included HELLOs\n"
-msgstr ""
-
-#: src/peerinfo/peerinfo_api.c:220
-#, 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:91
-msgid "peerstore"
-msgstr ""
-
-#: src/peerstore/gnunet-service-peerstore.c:598
-#, fuzzy, c-format
-msgid "Could not load database backend `%s'\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/peerstore/peerstore_api.c:532 src/peerstore/peerstore_api.c:581
-#, fuzzy
-msgid "Unexpected iteration response, this should not happen.\n"
-msgstr "Utdataformat är inte känt, detta bör inte hända.\n"
-
-#: src/peerstore/peerstore_api.c:595
-#, fuzzy
-msgid "Received a malformed response from service."
-msgstr "Mottog ogiltig \"%s\" begäran (storlek %d)\n"
-
-#: src/peerstore/peerstore_api.c:731
-msgid "Received a watch result for a non existing watch.\n"
-msgstr ""
-
-#: src/peerstore/plugin_peerstore_sqlite.c:453
-#: src/psycstore/plugin_psycstore_sqlite.c:282
-#, fuzzy, c-format
-msgid ""
-"Error executing SQL query: %s\n"
-"  %s\n"
-msgstr "Fel vid skapandet av användare"
-
-#: src/peerstore/plugin_peerstore_sqlite.c:488
-#: src/psycstore/plugin_psycstore_mysql.c:250
-#: src/psycstore/plugin_psycstore_sqlite.c:259
-#, fuzzy, c-format
-msgid ""
-"Error preparing SQL query: %s\n"
-"  %s\n"
-msgstr "Fel vid skapandet av användare"
-
-#: src/peerstore/plugin_peerstore_sqlite.c:570
-#, fuzzy, c-format
-msgid "Unable to create indices: %s.\n"
-msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
-
-#: src/pq/pq_prepare.c:84
-#, fuzzy, c-format
-msgid "PQprepare (`%s' as `%s') failed with error: %s\n"
-msgstr "\"%s\" till \"%s\" misslyckades vid %s:%d med fel: %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:249
-#, fuzzy
-msgid "Failed to store membership information!\n"
-msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:271
-#, fuzzy
-msgid "Failed to test membership!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:300
-#, fuzzy
-msgid "Dropping invalid fragment\n"
-msgstr "Ogiltigt argument: \"%s\"\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:311
-#, fuzzy
-msgid "Failed to store fragment\n"
-msgstr "Misslyckades att starta samling.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:368
-#, fuzzy
-msgid "Failed to get fragment!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:434
-#, fuzzy
-msgid "Failed to get message!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:464
-#, fuzzy
-msgid "Failed to get message fragment!\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:494
-#, fuzzy
-msgid "Failed to get master counters!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:675
-#, fuzzy, c-format
-msgid "Failed to begin modifying state: %d\n"
-msgstr "Misslyckades att starta samling.\n"
+msgid "Loading `%s' transport plugin\n"
+msgstr "Testar transport(er) %s\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:685
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:129
+#: src/transport/gnunet-service-transport_plugins.c:208
 #, fuzzy, c-format
-msgid "Failed to modify state: %d\n"
-msgstr "Misslyckades att starta samling.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:693
-#, fuzzy
-msgid "Failed to end modifying state!\n"
-msgstr "Misslyckades att starta samling.\n"
+msgid "Failed to load transport plugin for `%s'\n"
+msgstr "Kunde inte slå upp \"%s\": %s\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:730
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:796
 #, fuzzy
-msgid "Tried to set invalid state variable name!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
+msgid "Peerinfo REST API initialized\n"
+msgstr " Anslutning misslyckades\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:744
-#, fuzzy
-msgid "Failed to begin synchronizing state!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
+#: src/peerstore/gnunet-peerstore.c:91
+msgid "peerstore"
+msgstr ""
 
-#: src/psycstore/gnunet-service-psycstore.c:761
-#, fuzzy
-msgid "Failed to end synchronizing state!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
+#: src/peerstore/gnunet-service-peerstore.c:598
+#, fuzzy, c-format
+msgid "Could not load database backend `%s'\n"
+msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:779
-#: src/psycstore/gnunet-service-psycstore.c:795
+#: src/peerstore/peerstore_api.c:605 src/peerstore/peerstore_api.c:657
 #, fuzzy
-msgid "Failed to reset state!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
+msgid "Unexpected iteration response, this should not happen.\n"
+msgstr "Utdataformat är inte känt, detta bör inte hända.\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:824
-#: src/psycstore/gnunet-service-psycstore.c:881
+#: src/peerstore/peerstore_api.c:671
 #, fuzzy
-msgid "Tried to get invalid state variable name!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
+msgid "Received a malformed response from service."
+msgstr "Mottog ogiltig \"%s\" begäran (storlek %d)\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:851
-#: src/psycstore/gnunet-service-psycstore.c:896
-#, fuzzy
-msgid "Failed to get state variable!\n"
-msgstr "Kunde inte skapa värdnyckel!\n"
+#: src/peerstore/peerstore_api.c:807
+msgid "Received a watch result for a non existing watch.\n"
+msgstr ""
 
-#: src/psycstore/plugin_psycstore_mysql.c:281
-#, fuzzy
-msgid "Unable to initialize Mysql.\n"
-msgstr "Kunde inte initiera SQLite.\n"
+#: src/peerstore/plugin_peerstore_sqlite.c:453
+#, fuzzy, c-format
+msgid ""
+"Error executing SQL query: %s\n"
+"  %s\n"
+msgstr "Fel vid skapandet av användare"
 
-#: src/psycstore/plugin_psycstore_mysql.c:291
+#: src/peerstore/plugin_peerstore_sqlite.c:488
 #, fuzzy, c-format
-msgid "Failed to run SQL statement `%s'\n"
-msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+msgid ""
+"Error preparing SQL query: %s\n"
+"  %s\n"
+msgstr "Fel vid skapandet av användare"
 
-#: src/psycstore/plugin_psycstore_sqlite.c:61
+#: src/peerstore/plugin_peerstore_sqlite.c:570
 #, fuzzy, c-format
-msgid "`%s' failed at %s:%d with error: %s (%d)\n"
-msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
+msgid "Unable to create indices: %s.\n"
+msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
-#: src/psycstore/plugin_psycstore_sqlite.c:1924
-msgid "SQLite database running\n"
-msgstr ""
+#: src/pq/pq_prepare.c:84
+#, fuzzy, c-format
+msgid "PQprepare (`%s' as `%s') failed with error: %s\n"
+msgstr "\"%s\" till \"%s\" misslyckades vid %s:%d med fel: %s\n"
 
 #: src/pt/gnunet-daemon-pt.c:423
 #, fuzzy
@@ -5995,61 +5900,80 @@ msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:467
+#: src/reclaim/gnunet-reclaim.c:495
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "%s: flagga \"%s\" är tvetydig\n"
 
-#: src/reclaim/gnunet-reclaim.c:475
+#: src/reclaim/gnunet-reclaim.c:501
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:483
+#: src/reclaim/gnunet-reclaim.c:507
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "%s: flagga \"%s\" är tvetydig\n"
 
-#: src/reclaim/gnunet-reclaim.c:506
-msgid "Add attribute"
+#: src/reclaim/gnunet-reclaim.c:524
+msgid "Add an attribute NAME"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:512
-msgid "Attribute value"
+#: src/reclaim/gnunet-reclaim.c:527
+msgid "Add an attribute with ID"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:517
-msgid "Ego"
+#: src/reclaim/gnunet-reclaim.c:530
+msgid "The attribute VALUE"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:522
-msgid "Audience (relying party)"
+#: src/reclaim/gnunet-reclaim.c:533
+#, fuzzy
+msgid "The EGO to use"
+msgstr "meddelandestorlek"
+
+#: src/reclaim/gnunet-reclaim.c:535
+msgid "Specify the relying party for issue"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:526
-msgid "List attributes for Ego"
+#: src/reclaim/gnunet-reclaim.c:538
+msgid "List attributes for EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:531
-msgid "Issue a ticket"
+#: src/reclaim/gnunet-reclaim.c:542
+msgid "Issue a ticket for a set of attributes separated by comma"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:536
+#: src/reclaim/gnunet-reclaim.c:545
 msgid "Consume a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:541
+#: src/reclaim/gnunet-reclaim.c:548
 msgid "Revoke a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:546
+#: src/reclaim/gnunet-reclaim.c:551
 msgid "Type of attribute"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:551
+#: src/reclaim/gnunet-reclaim.c:553
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:556
 msgid "Expiration interval of the attribute"
 msgstr ""
 
+#: src/reclaim/gnunet-reclaim.c:560
+msgid "re:claimID command line tool"
+msgstr ""
+
+#: src/reclaim/plugin_rest_openid_connect.c:2051
+#: src/reclaim/plugin_rest_reclaim.c:1018
+#, fuzzy
+msgid "Identity Provider REST API initialized\n"
+msgstr " Anslutning misslyckades\n"
+
 #: src/reclaim/reclaim_api.c:436
 #, fuzzy
 msgid "failed to store record\n"
@@ -6145,51 +6069,20 @@ msgstr "\"%s\" är inte en fil.\n"
 msgid "Search string `%s' is too long!\n"
 msgstr "\"%s\" är inte en fil.\n"
 
-#: src/rest-plugins/plugin_rest_copying.c:209
-#, fuzzy
-msgid "COPYING REST API initialized\n"
-msgstr " Anslutning misslyckades\n"
-
-#: src/rest-plugins/plugin_rest_credential.c:1128
-#, fuzzy
-msgid "GNS REST API initialized\n"
-msgstr " Anslutning misslyckades\n"
-
-#: src/rest-plugins/plugin_rest_gns.c:452
-#, fuzzy
-msgid "Gns REST API initialized\n"
-msgstr " Anslutning misslyckades\n"
-
-#: src/rest-plugins/plugin_rest_identity.c:1297
-#, fuzzy
-msgid "Identity REST API initialized\n"
-msgstr " Anslutning misslyckades\n"
-
-#: src/rest-plugins/plugin_rest_namestore.c:1079
-#, fuzzy
-msgid "Namestore REST API initialized\n"
-msgstr " Anslutning misslyckades\n"
-
-#: src/rest-plugins/plugin_rest_openid_connect.c:2245
-#: src/rest-plugins/plugin_rest_reclaim.c:1079
-#, fuzzy
-msgid "Identity Provider REST API initialized\n"
-msgstr " Anslutning misslyckades\n"
-
-#: src/rest-plugins/plugin_rest_peerinfo.c:796
-#, fuzzy
-msgid "Peerinfo REST API initialized\n"
-msgstr " Anslutning misslyckades\n"
-
-#: src/rest/gnunet-rest-server.c:927
+#: src/rest/gnunet-rest-server.c:986
 msgid "listen on specified port (default: 7776)"
 msgstr ""
 
-#: src/rest/gnunet-rest-server.c:944
+#: src/rest/gnunet-rest-server.c:1003
 #, fuzzy
 msgid "GNUnet REST server"
 msgstr "Spåra GNUnets nätverkstopologi."
 
+#: src/rest/plugin_rest_copying.c:209
+#, fuzzy
+msgid "COPYING REST API initialized\n"
+msgstr " Anslutning misslyckades\n"
+
 #: src/revocation/gnunet-revocation.c:129
 #, fuzzy, c-format
 msgid "Key `%s' is valid\n"
@@ -6251,7 +6144,7 @@ msgstr ""
 msgid "Revocation certificate not ready, calculating proof of work\n"
 msgstr ""
 
-#: src/revocation/gnunet-revocation.c:437 src/social/gnunet-social.c:1180
+#: src/revocation/gnunet-revocation.c:437
 #, fuzzy, c-format
 msgid "Public key `%s' malformed\n"
 msgstr "Ogiltigt argument: \"%s\"\n"
@@ -6328,37 +6221,37 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "Kunde inte ansluta till gnunetd.\n"
 
-#: src/rps/gnunet-rps-profiler.c:2959
+#: src/rps/gnunet-rps.c:260
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:264
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:268
+msgid "Get peers from biased stream"
+msgstr ""
+
+#: src/rps/gnunet-rps-profiler.c:3088
 msgid "duration of the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2965
+#: src/rps/gnunet-rps-profiler.c:3093
 #, fuzzy
 msgid "timeout for the profiling"
 msgstr "ange prioritet för innehållet"
 
-#: src/rps/gnunet-rps-profiler.c:2971
+#: src/rps/gnunet-rps-profiler.c:3098
 #, fuzzy
 msgid "number of PeerIDs to request"
 msgstr "antal iterationer"
 
-#: src/rps/gnunet-rps-profiler.c:2986
+#: src/rps/gnunet-rps-profiler.c:3114
 #, fuzzy
 msgid "Measure quality and performance of the RPS service."
 msgstr "Kan inte tillgå tjänsten"
 
-#: src/rps/gnunet-rps.c:260
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:264
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:268
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/scalarproduct/gnunet-scalarproduct.c:220
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6414,10 +6307,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1401
 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1345
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr " Anslutning misslyckades (fel?)\n"
@@ -6442,7 +6335,7 @@ msgstr ""
 msgid "also profile decryption"
 msgstr ""
 
-#: src/set/gnunet-service-set.c:2005
+#: src/set/gnunet-service-set.c:2008
 #, fuzzy
 msgid "Could not connect to CADET service\n"
 msgstr "Kunde inte ansluta till gnunetd.\n"
@@ -6489,134 +6382,6 @@ msgstr ""
 msgid "element size"
 msgstr ""
 
-#: src/social/gnunet-social.c:1166
-#, fuzzy
-msgid "--place missing or invalid.\n"
-msgstr "Ogiltigt argument: \"%s\"\n"
-
-#: src/social/gnunet-social.c:1217
-msgid "assign --name in state to --data"
-msgstr ""
-
-#: src/social/gnunet-social.c:1222
-msgid "say good-bye and leave somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1227
-msgid "create a place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1232
-msgid "destroy a place we were hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1237
-msgid "enter somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1243
-msgid "find state matching name prefix"
-msgstr ""
-
-#: src/social/gnunet-social.c:1248
-msgid "replay history of messages up to the given --limit"
-msgstr ""
-
-#: src/social/gnunet-social.c:1253
-msgid "reconnect to a previously created place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1258
-msgid "publish something to a place we are hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1263
-msgid "reconnect to a previously entered place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1268
-msgid "search for state matching exact name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1273
-msgid "submit something to somebody's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1278
-msgid "list of egos and subscribed places"
-msgstr ""
-
-#: src/social/gnunet-social.c:1283
-msgid "extract and replay history between message IDs --start and --until"
-msgstr ""
-
-#: src/social/gnunet-social.c:1292
-msgid "application ID to use when connecting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1298
-msgid "message body or state value"
-msgstr ""
-
-#: src/social/gnunet-social.c:1304
-#, fuzzy
-msgid "name or public key of ego"
-msgstr "Ogiltigt argument: \"%s\"\n"
-
-#: src/social/gnunet-social.c:1309
-#, fuzzy
-msgid "wait for incoming messages"
-msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
-
-#: src/social/gnunet-social.c:1315
-#, fuzzy
-msgid "GNS name"
-msgstr "Visa _namn"
-
-#: src/social/gnunet-social.c:1321
-msgid "peer ID for --guest-enter"
-msgstr ""
-
-#: src/social/gnunet-social.c:1327
-msgid "name (key) to query from state"
-msgstr ""
-
-#: src/social/gnunet-social.c:1333
-#, fuzzy
-msgid "method name"
-msgstr "Visa _namn"
-
-#: src/social/gnunet-social.c:1339
-#, fuzzy
-msgid "number of messages to replay from history"
-msgstr "antal meddelanden att använda per iteration"
-
-#: src/social/gnunet-social.c:1345
-msgid "key address of place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1351
-msgid "start message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1356
-msgid "respond to entry requests by admitting all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1362
-msgid "end message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1367
-msgid "respond to entry requests by refusing all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1377
-msgid ""
-"gnunet-social - Interact with the social service: enter/leave, send/receive "
-"messages, access history and state.\n"
-msgstr ""
-
 #: src/sq/sq.c:54
 #, c-format
 msgid "Failure to bind %u-th SQL parameter\n"
@@ -6780,7 +6545,7 @@ msgid "Invalid argument `%s'; expecting unsigned int\n"
 msgstr "Ogiltigt argument: \"%s\"\n"
 
 #: src/testbed/generate-underlay-topology.c:342
-#: src/testbed/gnunet-testbed-profiler.c:283
+#: src/testbed/gnunet-testbed-profiler.c:282
 msgid "create COUNT number of peers"
 msgstr ""
 
@@ -6889,17 +6654,6 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr ""
 
-#: src/testbed/gnunet-testbed-profiler.c:289
-msgid "tolerate COUNT number of continious timeout failures"
-msgstr ""
-
-#: src/testbed/gnunet-testbed-profiler.c:294
-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:118
 #, fuzzy
 msgid "Waiting for child to exit.\n"
@@ -6910,6 +6664,17 @@ msgstr "Väntar på att motparter ska ansluta (%u 
iterationer kvar)...\n"
 msgid "Spawning process `%s'\n"
 msgstr "Startade samling \"%s\".\n"
 
+#: src/testbed/gnunet-testbed-profiler.c:287
+msgid "tolerate COUNT number of continious timeout failures"
+msgstr ""
+
+#: src/testbed/gnunet-testbed-profiler.c:291
+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:410
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -7086,49 +6851,49 @@ msgstr ""
 msgid "Key number %u does not exist\n"
 msgstr "antal meddelanden att använda per iteration"
 
-#: src/testing/testing.c:1159
+#: src/testing/testing.c:1161
 #, c-format
 msgid ""
 "You attempted to create a testbed with more than %u hosts.  Please "
 "precompute more hostkeys first.\n"
 msgstr ""
 
-#: src/testing/testing.c:1168
+#: src/testing/testing.c:1170
 #, fuzzy, c-format
 msgid "Failed to initialize hostkey for peer %u\n"
 msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
 
-#: src/testing/testing.c:1178
+#: src/testing/testing.c:1180
 #, fuzzy
 msgid "PRIVATE_KEY option in PEER section missing in configuration\n"
 msgstr "Inga applikationer definierade i konfiguration!\n"
 
-#: src/testing/testing.c:1191
+#: src/testing/testing.c:1193
 #, fuzzy
 msgid "Failed to create configuration for peer (not enough free ports?)\n"
 msgstr "Kunde inte komma åt namnrymdsinformation.\n"
 
-#: src/testing/testing.c:1205
+#: src/testing/testing.c:1207
 #, fuzzy, c-format
 msgid "Cannot open hostkey file `%s': %s\n"
 msgstr "Kunde inte skapa värdnyckel!\n"
 
-#: src/testing/testing.c:1217
+#: src/testing/testing.c:1219
 #, fuzzy, c-format
 msgid "Failed to write hostkey file for peer %u: %s\n"
 msgstr "Kunde inte skapa användarkonto:"
 
-#: src/testing/testing.c:1242
+#: src/testing/testing.c:1244
 #, fuzzy, c-format
 msgid "Failed to write configuration file `%s' for peer %u: %s\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 
-#: src/testing/testing.c:1344
+#: src/testing/testing.c:1346
 #, fuzzy, c-format
 msgid "Failed to start `%s': %s\n"
 msgstr "Fel vid %s:%d.\n"
 
-#: src/testing/testing.c:1647
+#: src/testing/testing.c:1649
 #, fuzzy, c-format
 msgid "Failed to load configuration from %s\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
@@ -7206,19 +6971,19 @@ msgstr "# krypterade PONG-meddelanden mottagna"
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:2329
-#: src/transport/gnunet-communicator-udp.c:2883
-#: src/transport/gnunet-service-tng.c:4679
-#: src/transport/gnunet-service-transport.c:2782
+#: src/transport/gnunet-communicator-tcp.c:2334
+#: src/transport/gnunet-communicator-udp.c:2938
+#: src/transport/gnunet-service-tng.c:7070
+#: src/transport/gnunet-service-transport.c:2795
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "GNUnet-konfiguration"
 
-#: src/transport/gnunet-communicator-tcp.c:2393
+#: src/transport/gnunet-communicator-tcp.c:2398
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2954
+#: src/transport/gnunet-communicator-udp.c:3016
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7228,63 +6993,63 @@ msgid ""
 "Maximum number of UNIX connections exceeded, dropping incoming message\n"
 msgstr "Maximalt antal chattklienter uppnått.\n"
 
-#: src/transport/gnunet-communicator-unix.c:1073
+#: src/transport/gnunet-communicator-unix.c:1074
 #: src/transport/plugin_transport_unix.c:1403
 #, fuzzy, c-format
 msgid "Cannot create path to `%s'\n"
 msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
-#: src/transport/gnunet-communicator-unix.c:1162
+#: src/transport/gnunet-communicator-unix.c:1163
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:448
+#: src/transport/gnunet-service-transport_ats.c:141
+msgid "# Addresses given to ATS"
+msgstr ""
+
+#: src/transport/gnunet-service-transport.c:452
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:817
+#: src/transport/gnunet-service-transport.c:826
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1550
+#: src/transport/gnunet-service-transport.c:1563
 #, fuzzy
 msgid "# bytes payload discarded due to not connected peer"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport.c:1710
+#: src/transport/gnunet-service-transport.c:1723
 #, fuzzy
 msgid "# bytes total received"
 msgstr "# byte krypterade"
 
-#: src/transport/gnunet-service-transport.c:1807
+#: src/transport/gnunet-service-transport.c:1820
 #, fuzzy
 msgid "# bytes payload received"
 msgstr "# byte dekrypterade"
 
-#: src/transport/gnunet-service-transport.c:2124
-#: src/transport/gnunet-service-transport.c:2596
+#: src/transport/gnunet-service-transport.c:2137
+#: src/transport/gnunet-service-transport.c:2609
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2600
+#: src/transport/gnunet-service-transport.c:2613
 #, 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:2708
+#: src/transport/gnunet-service-transport.c:2721
 #, 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:2717
+#: src/transport/gnunet-service-transport.c:2730
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:141
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7294,213 +7059,213 @@ msgstr ""
 msgid "# session creation failed"
 msgstr "# sessionsnycklar accepterade"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1052
+#: src/transport/gnunet-service-transport_neighbours.c:1053
 #, fuzzy
 msgid "# DISCONNECT messages sent"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1175
+#: src/transport/gnunet-service-transport_neighbours.c:1176
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1323
-#: src/transport/gnunet-service-transport_neighbours.c:1784
+#: src/transport/gnunet-service-transport_neighbours.c:1324
+#: src/transport/gnunet-service-transport_neighbours.c:1785
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1328
+#: src/transport/gnunet-service-transport_neighbours.c:1329
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# byte skickade av typen %d"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1334
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 #, fuzzy
 msgid "# transmission failures for messages to other peers"
 msgstr "# byte skickade av typen %d"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1394
+#: src/transport/gnunet-service-transport_neighbours.c:1395
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1478
+#: src/transport/gnunet-service-transport_neighbours.c:1479
 msgid "# KEEPALIVES sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1514
+#: src/transport/gnunet-service-transport_neighbours.c:1515
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1522
+#: src/transport/gnunet-service-transport_neighbours.c:1523
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1532
+#: src/transport/gnunet-service-transport_neighbours.c:1533
 msgid "# KEEPALIVES received in good order"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1577
+#: src/transport/gnunet-service-transport_neighbours.c:1578
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (not connected)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1586
+#: src/transport/gnunet-service-transport_neighbours.c:1587
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (not expected)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1594
+#: src/transport/gnunet-service-transport_neighbours.c:1595
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (address changed)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1603
+#: src/transport/gnunet-service-transport_neighbours.c:1604
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (no nonce)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (bad nonce)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1614
+#: src/transport/gnunet-service-transport_neighbours.c:1615
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs received (OK)"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1681
+#: src/transport/gnunet-service-transport_neighbours.c:1682
 #, fuzzy
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "Nätverksannonsering avstängd i konfigurationen!\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1715
+#: src/transport/gnunet-service-transport_neighbours.c:1716
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1730
+#: src/transport/gnunet-service-transport_neighbours.c:1731
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1853
+#: src/transport/gnunet-service-transport_neighbours.c:1854
 #, fuzzy, c-format
 msgid "Failed to send SYN message to peer `%s'\n"
 msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1873
+#: src/transport/gnunet-service-transport_neighbours.c:1874
 #, fuzzy
 msgid "# Failed attempts to switch addresses (failed to send SYN CONT)"
 msgstr "Misslyckades att skicka HTTP-begäran till värd \"%s\": %s\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1912
+#: src/transport/gnunet-service-transport_neighbours.c:1913
 #, fuzzy
 msgid "# SYN messages sent"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1929
+#: src/transport/gnunet-service-transport_neighbours.c:1930
 #, fuzzy, c-format
 msgid "Failed to transmit SYN message to %s\n"
 msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1959
+#: src/transport/gnunet-service-transport_neighbours.c:1960
 #, fuzzy
 msgid "# Failed attempts to switch addresses (failed to send SYN)"
 msgstr "Misslyckades att skicka HTTP-begäran till värd \"%s\": %s\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2027
+#: src/transport/gnunet-service-transport_neighbours.c:2028
 #, fuzzy, c-format
 msgid "Failed to send SYN_ACK message to peer `%s' using address `%s'\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2081
+#: src/transport/gnunet-service-transport_neighbours.c:2082
 #, fuzzy
 msgid "# SYN_ACK messages sent"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2098
+#: src/transport/gnunet-service-transport_neighbours.c:2099
 #, fuzzy, c-format
 msgid "Failed to transmit SYN_ACK message to %s\n"
 msgstr "Misslyckades att initiera tjänsten \"%s\".\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2261
+#: src/transport/gnunet-service-transport_neighbours.c:2262
 #, fuzzy
 msgid "# SYN messages received"
 msgstr "# PING-meddelanden skapade"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2266
+#: src/transport/gnunet-service-transport_neighbours.c:2267
 #, c-format
 msgid "SYN request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2653
+#: src/transport/gnunet-service-transport_neighbours.c:2654
 msgid "# Attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3138
+#: src/transport/gnunet-service-transport_neighbours.c:3139
 #, fuzzy
 msgid "# SYN_ACK messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3146
+#: src/transport/gnunet-service-transport_neighbours.c:3147
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (no peer)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3164
-#: src/transport/gnunet-service-transport_neighbours.c:3188
+#: src/transport/gnunet-service-transport_neighbours.c:3165
+#: src/transport/gnunet-service-transport_neighbours.c:3189
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (not ready)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3200
+#: src/transport/gnunet-service-transport_neighbours.c:3201
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (waiting on ATS)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3225
+#: src/transport/gnunet-service-transport_neighbours.c:3226
 msgid "# Successful attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3238
+#: src/transport/gnunet-service-transport_neighbours.c:3239
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (disconnecting)"
 msgstr "skicka ANTAL meddelanden"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3411
+#: src/transport/gnunet-service-transport_neighbours.c:3412
 #, fuzzy
 msgid "# ACK messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3447
+#: src/transport/gnunet-service-transport_neighbours.c:3448
 #, fuzzy
 msgid "# unexpected ACK messages"
 msgstr "# krypterade PONG-meddelanden skickade"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3535
+#: src/transport/gnunet-service-transport_neighbours.c:3536
 #, fuzzy
 msgid "# quota messages ignored (malformed)"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3542
+#: src/transport/gnunet-service-transport_neighbours.c:3543
 #, fuzzy
 msgid "# QUOTA messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3582
+#: src/transport/gnunet-service-transport_neighbours.c:3583
 msgid "# disconnect messages ignored (malformed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3589
+#: src/transport/gnunet-service-transport_neighbours.c:3590
 #, fuzzy
 msgid "# DISCONNECT messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3600
+#: src/transport/gnunet-service-transport_neighbours.c:3601
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3735
+#: src/transport/gnunet-service-transport_neighbours.c:3736
 #, fuzzy
 msgid "# disconnected from peer upon explicit request"
 msgstr "# av anslutna parter"
@@ -7536,7 +7301,7 @@ msgstr ""
 #: src/transport/gnunet-service-transport_validation.c:491
 #: src/transport/gnunet-service-transport_validation.c:677
 #: src/transport/gnunet-service-transport_validation.c:997
-#: src/transport/gnunet-service-transport_validation.c:1609
+#: src/transport/gnunet-service-transport_validation.c:1610
 msgid "# validations running"
 msgstr ""
 
@@ -7561,105 +7326,65 @@ msgstr ""
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1123
+#: src/transport/gnunet-service-transport_validation.c:1124
 #, fuzzy
 msgid "# PING message for different peer received"
 msgstr "# PING-meddelanden skapade"
 
-#: src/transport/gnunet-service-transport_validation.c:1174
+#: src/transport/gnunet-service-transport_validation.c:1175
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1187
+#: src/transport/gnunet-service-transport_validation.c:1188
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1190
+#: src/transport/gnunet-service-transport_validation.c:1191
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1198
+#: src/transport/gnunet-service-transport_validation.c:1199
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1211
+#: src/transport/gnunet-service-transport_validation.c:1212
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1266
+#: src/transport/gnunet-service-transport_validation.c:1267
 #, fuzzy, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
-msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
-
-#: src/transport/gnunet-service-transport_validation.c:1317
-msgid "# PONGs unicast via reliable transport"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1326
-msgid "# PONGs multicast to all available addresses"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1499
-msgid "# PONGs dropped, no matching pending validation"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1517
-msgid "# PONGs dropped, signature expired"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1572
-msgid "# validations succeeded"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1627
-#, fuzzy
-msgid "# HELLOs given to peerinfo"
-msgstr "Meddelande mottaget från klient är ogiltig.\n"
-
-#: src/transport/gnunet-transport-profiler.c:219
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:617
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:621
-#, fuzzy
-msgid "receive data from peer"
-msgstr "# byte mottagna av typen %d"
+msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
-#: src/transport/gnunet-transport-profiler.c:626
-#, fuzzy
-msgid "iterations"
-msgstr "Visa alla alternativ"
+#: src/transport/gnunet-service-transport_validation.c:1318
+msgid "# PONGs unicast via reliable transport"
+msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:631
-#, fuzzy
-msgid "number of messages to send"
-msgstr "antal meddelanden att använda per iteration"
+#: src/transport/gnunet-service-transport_validation.c:1327
+msgid "# PONGs multicast to all available addresses"
+msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:636
-#, fuzzy
-msgid "message size to use"
-msgstr "meddelandestorlek"
+#: src/transport/gnunet-service-transport_validation.c:1500
+msgid "# PONGs dropped, no matching pending validation"
+msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:641
-#: src/transport/gnunet-transport.c:1462
-msgid "peer identity"
+#: src/transport/gnunet-service-transport_validation.c:1518
+msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:652
-#: src/transport/gnunet-transport.c:1482
+#: src/transport/gnunet-service-transport_validation.c:1573
+msgid "# validations succeeded"
+msgstr ""
+
+#: src/transport/gnunet-service-transport_validation.c:1628
 #, fuzzy
-msgid "Direct access to transport service."
-msgstr "Misslyckades att ansluta till gnunetd.\n"
+msgid "# HELLOs given to peerinfo"
+msgstr "Meddelande mottaget från klient är ogiltig.\n"
 
 #: src/transport/gnunet-transport.c:413
 #, fuzzy, c-format
@@ -7800,6 +7525,11 @@ 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:1462
+#: src/transport/gnunet-transport-profiler.c:641
+msgid "peer identity"
+msgstr ""
+
 #: src/transport/gnunet-transport.c:1466
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7808,13 +7538,46 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
+#: src/transport/gnunet-transport.c:1482
+#: src/transport/gnunet-transport-profiler.c:652
+#, fuzzy
+msgid "Direct access to transport service."
+msgstr "Misslyckades att ansluta till gnunetd.\n"
+
+#: src/transport/gnunet-transport-profiler.c:219
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:617
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:621
+#, fuzzy
+msgid "receive data from peer"
+msgstr "# byte mottagna av typen %d"
+
+#: src/transport/gnunet-transport-profiler.c:626
+#, fuzzy
+msgid "iterations"
+msgstr "Visa alla alternativ"
+
+#: src/transport/gnunet-transport-profiler.c:631
+#, fuzzy
+msgid "number of messages to send"
+msgstr "antal meddelanden att använda per iteration"
+
+#: src/transport/gnunet-transport-profiler.c:636
+#, fuzzy
+msgid "message size to use"
+msgstr "meddelandestorlek"
+
 #: src/transport/plugin_transport_http_client.c:1474
 #: src/transport/plugin_transport_http_server.c:2312
 #: src/transport/plugin_transport_http_server.c:3530
-#: src/transport/plugin_transport_tcp.c:3895
-#: src/transport/plugin_transport_tcp.c:3902
-#: src/transport/plugin_transport_xt.c:3899
-#: src/transport/plugin_transport_xt.c:3906
+#: src/transport/plugin_transport_tcp.c:3901
+#: src/transport/plugin_transport_tcp.c:3908
 msgid "TCP_STEALTH not supported on this platform.\n"
 msgstr ""
 
@@ -7886,7 +7649,6 @@ msgstr ""
 
 #: src/transport/plugin_transport_http_server.c:2905
 #: src/transport/plugin_transport_udp.c:3627
-#: src/transport/plugin_transport_xu.c:2049
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
@@ -7996,134 +7758,123 @@ msgstr "# byte skickades via TCP"
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# byte kastade via TCP (utgående)"
 
-#: src/transport/plugin_transport_tcp.c:1551
-#: src/transport/plugin_transport_tcp.c:2877
-#: src/transport/plugin_transport_xt.c:1553
-#: src/transport/plugin_transport_xt.c:2879
+#: src/transport/plugin_transport_tcp.c:1557
+#: src/transport/plugin_transport_tcp.c:2883
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1734
-#: src/transport/plugin_transport_tcp.c:1958
-#: src/transport/plugin_transport_tcp.c:3141
-#: src/transport/plugin_transport_tcp.c:4018
-#: src/transport/plugin_transport_xt.c:1736
-#: src/transport/plugin_transport_xt.c:1960
-#: src/transport/plugin_transport_xt.c:3143
+#: src/transport/plugin_transport_tcp.c:1740
+#: src/transport/plugin_transport_tcp.c:1964
+#: src/transport/plugin_transport_tcp.c:3147
+#: src/transport/plugin_transport_tcp.c:4024
 #, fuzzy
 msgid "# TCP sessions active"
 msgstr "# sessionsnycklar accepterade"
 
-#: src/transport/plugin_transport_tcp.c:1776
-#: src/transport/plugin_transport_tcp.c:1940
-#: src/transport/plugin_transport_tcp.c:2064
-#: src/transport/plugin_transport_tcp.c:2137
-#: src/transport/plugin_transport_tcp.c:2237
-#: src/transport/plugin_transport_tcp.c:2262
-#: src/transport/plugin_transport_xt.c:1778
-#: src/transport/plugin_transport_xt.c:1942
-#: src/transport/plugin_transport_xt.c:2066
-#: src/transport/plugin_transport_xt.c:2139
-#: src/transport/plugin_transport_xt.c:2239
-#: src/transport/plugin_transport_xt.c:2264
+#: src/transport/plugin_transport_tcp.c:1782
+#: src/transport/plugin_transport_tcp.c:1946
+#: src/transport/plugin_transport_tcp.c:2070
+#: src/transport/plugin_transport_tcp.c:2143
+#: src/transport/plugin_transport_tcp.c:2243
+#: src/transport/plugin_transport_tcp.c:2268
 #, fuzzy
 msgid "# bytes currently in TCP buffers"
 msgstr "# byte skickades via TCP"
 
-#: src/transport/plugin_transport_tcp.c:1779
-#: src/transport/plugin_transport_xt.c:1781
+#: src/transport/plugin_transport_tcp.c:1785
 #, fuzzy
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# byte kastade via TCP (utgående)"
 
-#: src/transport/plugin_transport_tcp.c:2067
-#: src/transport/plugin_transport_xt.c:2069
+#: src/transport/plugin_transport_tcp.c:2073
 #, fuzzy
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# byte kastade via TCP (utgående)"
 
-#: src/transport/plugin_transport_tcp.c:2141
-#: src/transport/plugin_transport_xt.c:2143
+#: src/transport/plugin_transport_tcp.c:2147
 #, fuzzy
 msgid "# bytes transmitted via TCP"
 msgstr "# byte skickade av typen %d"
 
-#: src/transport/plugin_transport_tcp.c:2539
-#: src/transport/plugin_transport_xt.c:2541
+#: src/transport/plugin_transport_tcp.c:2545
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
-#: src/transport/plugin_transport_xt.c:2717
+#: src/transport/plugin_transport_tcp.c:2721
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3207
-#: src/transport/plugin_transport_xt.c:3209
+#: src/transport/plugin_transport_tcp.c:3213
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# krypterade PONG-meddelanden mottagna"
 
-#: src/transport/plugin_transport_tcp.c:3413
-#: src/transport/plugin_transport_xt.c:3415
+#: src/transport/plugin_transport_tcp.c:3419
 msgid "# bytes received via TCP"
 msgstr "# byte mottogs via TCP"
 
-#: src/transport/plugin_transport_tcp.c:3464
-#: src/transport/plugin_transport_tcp.c:3522
-#: src/transport/plugin_transport_xt.c:3466
-#: src/transport/plugin_transport_xt.c:3524
+#: src/transport/plugin_transport_tcp.c:3470
+#: src/transport/plugin_transport_tcp.c:3528
 #, fuzzy
 msgid "# TCP server connections active"
 msgstr "Nätverksanslutning"
 
-#: src/transport/plugin_transport_tcp.c:3468
-#: src/transport/plugin_transport_xt.c:3470
+#: src/transport/plugin_transport_tcp.c:3474
 #, fuzzy
 msgid "# TCP server connect events"
 msgstr "# av anslutna parter"
 
-#: src/transport/plugin_transport_tcp.c:3474
-#: src/transport/plugin_transport_xt.c:3476
+#: src/transport/plugin_transport_tcp.c:3480
 msgid "TCP connection limit reached, suspending server\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3476
-#: src/transport/plugin_transport_xt.c:3478
+#: src/transport/plugin_transport_tcp.c:3482
 msgid "# TCP service suspended"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3516
-#: src/transport/plugin_transport_xt.c:3518
+#: src/transport/plugin_transport_tcp.c:3522
 msgid "# TCP service resumed"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3526
-#: src/transport/plugin_transport_xt.c:3528
+#: src/transport/plugin_transport_tcp.c:3532
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3845
-#: src/transport/plugin_transport_xt.c:3849
+#: src/transport/plugin_transport_tcp.c:3851
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "Misslyckades att starta samling.\n"
 
-#: src/transport/plugin_transport_tcp.c:4006
+#: src/transport/plugin_transport_tcp.c:4012
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4010
+#: src/transport/plugin_transport_tcp.c:4016
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4014
+#: src/transport/plugin_transport_tcp.c:4020
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
+#: src/transport/plugin_transport_udp_broadcasting.c:168
+#, fuzzy
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr "# krypterade PONG-meddelanden mottagna"
+
+#: src/transport/plugin_transport_udp_broadcasting.c:548
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:565
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_udp.c:3371
 #, c-format
 msgid ""
@@ -8144,7 +7895,6 @@ msgid "Failed to bind UDP socket to %s: %s\n"
 msgstr "Misslyckades att binda till UDP6-port %d.\n"
 
 #: src/transport/plugin_transport_udp.c:3721
-#: src/transport/plugin_transport_xu.c:2143
 msgid "Disabling IPv4 since it is not supported on this system!\n"
 msgstr ""
 
@@ -8155,19 +7905,15 @@ msgstr "Misslyckades att binda till UDP6-port %d.\n"
 
 #: src/transport/plugin_transport_udp.c:3883
 #: src/transport/plugin_transport_udp.c:3897
-#: src/transport/plugin_transport_xu.c:2301
-#: src/transport/plugin_transport_xu.c:2315
 msgid "must be in [0,65535]"
 msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3929
-#: src/transport/plugin_transport_xu.c:2347
 #, fuzzy
 msgid "must be valid IPv4 address"
 msgstr "\"%s\" är inte tillgänglig."
 
 #: src/transport/plugin_transport_udp.c:3956
-#: src/transport/plugin_transport_xu.c:2374
 #, fuzzy
 msgid "must be valid IPv6 address"
 msgstr "\"%s\" är inte tillgänglig."
@@ -8177,21 +7923,6 @@ 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:168
-#, fuzzy
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr "# krypterade PONG-meddelanden mottagna"
-
-#: src/transport/plugin_transport_udp_broadcasting.c:548
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:565
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-
 #: src/transport/plugin_transport_unix.c:1416
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -8269,54 +8000,6 @@ msgstr ""
 msgid "# sessions allocated"
 msgstr "# sessionsnycklar accepterade"
 
-#: src/transport/plugin_transport_xt.c:4010
-#, c-format
-msgid "XT transport listening on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4014
-msgid "XT transport not listening on any port (client only)\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4018
-#, c-format
-msgid "XT transport advertises itself as being on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4022
-#, fuzzy
-msgid "# XT sessions active"
-msgstr "# sessionsnycklar accepterade"
-
-#: src/transport/plugin_transport_xu.c:1237
-#, c-format
-msgid ""
-"XU could not transmit message to `%s': Network seems down, please check your "
-"network configuration\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xu.c:1251
-msgid ""
-"XU 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 ""
-
-#: src/transport/plugin_transport_xu.c:2125
-#: src/transport/plugin_transport_xu.c:2224
-#, fuzzy, c-format
-msgid "Failed to bind XU socket to %s: %s\n"
-msgstr "Misslyckades att binda till UDP6-port %d.\n"
-
-#: src/transport/plugin_transport_xu.c:2234
-#, fuzzy
-msgid "Failed to open XU sockets\n"
-msgstr "Misslyckades att binda till UDP6-port %d.\n"
-
-#: src/transport/plugin_transport_xu.c:2398
-#, fuzzy
-msgid "Failed to create XU network sockets\n"
-msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
-
 #: src/transport/tcp_connection_legacy.c:452
 #, fuzzy, c-format
 msgid "Access denied to `%s'\n"
@@ -8328,17 +8011,17 @@ msgid "Accepting connection from `%s': %p\n"
 msgstr ""
 
 # drive = hard drive ?
-#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1111
+#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1624
 #, fuzzy, c-format
 msgid "`%s' failed for port %d (%s).\n"
 msgstr "\"%s\" misslyckades för enhet %s: %u\n"
 
-#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1121
+#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1634
 #, fuzzy, c-format
 msgid "`%s' failed for port %d (%s): address already in use\n"
 msgstr "\"%s\" misslyckades för port %d: %s. Körs verkligen gnunetd?\n"
 
-#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1127
+#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1640
 #, fuzzy, c-format
 msgid "`%s' failed for `%s': address already in use\n"
 msgstr "\"%s\" misslyckades för port %d: %s. Körs verkligen gnunetd?\n"
@@ -8350,7 +8033,7 @@ msgid ""
 "`GNUNET_SERVER_receive_done' after %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:339 src/util/service.c:2396
+#: src/transport/tcp_service_legacy.c:339 src/util/service.c:864
 #, fuzzy, c-format
 msgid "Unknown address family %d\n"
 msgstr "Okänd operation \"%s\"\n"
@@ -8360,27 +8043,27 @@ msgstr "Okänd operation \"%s\"\n"
 msgid "Access from `%s' denied to service `%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:402 src/util/service.c:439
+#: src/transport/tcp_service_legacy.c:402 src/util/service.c:988
 #, c-format
 msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:440 src/util/service.c:482
+#: src/transport/tcp_service_legacy.c:440 src/util/service.c:1031
 #, c-format
 msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1042
+#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1555
 msgid "Could not access a pre-bound socket, will try to bind myself\n"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:953
-#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1195
+#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1708
 #, c-format
 msgid "Specified value for `%s' of service `%s' is invalid\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1228
+#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1741
 #, c-format
 msgid "Could not access pre-bound socket %u, will try to bind myself\n"
 msgstr ""
@@ -8395,44 +8078,44 @@ msgstr "Fel vid %s:%d.\n"
 msgid "Service `%s' runs at %s\n"
 msgstr "Motpart \"%s\" med pålitlighet %8u och adress \"%s\"\n"
 
-#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:1502
+#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:2015
 msgid "Service process failed to initialize\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1506
+#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:2019
 msgid "Service process could not initialize server function\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:1510
+#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:2023
 msgid "Service process failed to report status\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1525
-#: src/util/service.c:1380
+#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1535
+#: src/util/service.c:1893
 #, fuzzy, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "Kan inte öppna konfigurationsfil \"%s\".\n"
 
-#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1382
+#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1895
 msgid "No such user"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1401
+#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1914
 #, c-format
 msgid "Cannot change user/group to `%s': %s\n"
 msgstr "Kan inte ändra användare/grupp till \"%s\": %s\n"
 
-#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:1762
+#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:2276
 msgid "do daemonize (detach from terminal)"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:1826
-#: src/util/service.c:1841
+#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:2340
+#: src/util/service.c:2355
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 
-#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:1853
+#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:2367
 #, fuzzy
 msgid "Malformed configuration, exit ...\n"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
@@ -8476,11 +8159,11 @@ msgstr ""
 msgid "Metadata `%s' failed to deserialize"
 msgstr ""
 
-#: src/util/client.c:734
+#: src/util/client.c:749
 msgid "not a valid filename"
 msgstr ""
 
-#: src/util/client.c:925
+#: src/util/client.c:941
 #, c-format
 msgid "Need a non-empty hostname for service `%s'.\n"
 msgstr ""
@@ -8527,16 +8210,16 @@ msgstr ""
 msgid "unknown address"
 msgstr ""
 
-#: src/util/common_logging.c:1500
+#: src/util/common_logging.c:1513
 msgid "invalid address"
 msgstr ""
 
-#: src/util/common_logging.c:1518
+#: src/util/common_logging.c:1531
 #, fuzzy, c-format
 msgid "Configuration fails to specify option `%s' in section `%s'!\n"
 msgstr "Konfigurationsfil \"%s\" skapad.\n"
 
-#: src/util/common_logging.c:1539
+#: src/util/common_logging.c:1552
 #, fuzzy, c-format
 msgid ""
 "Configuration specifies invalid value for option `%s' in section `%s': %s\n"
@@ -8584,26 +8267,26 @@ msgstr ""
 #: src/util/container_bloomfilter.c:532
 #, c-format
 msgid ""
-"Size of file on disk is incorrect for this Bloom filter (want %llu, have %"
-"llu)\n"
+"Size of file on disk is incorrect for this Bloom filter (want %llu, have "
+"%llu)\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:862
+#: src/util/crypto_ecc.c:887
 #, fuzzy, c-format
 msgid "ECC signing failed at %s:%d: %s\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
-#: src/util/crypto_ecc.c:917
+#: src/util/crypto_ecc.c:946
 #, fuzzy, c-format
 msgid "EdDSA signing failed at %s:%d: %s\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
-#: src/util/crypto_ecc.c:996
+#: src/util/crypto_ecc.c:1025
 #, fuzzy, c-format
 msgid "ECDSA signature verification failed at %s:%d: %s\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
-#: src/util/crypto_ecc.c:1057
+#: src/util/crypto_ecc.c:1086
 #, fuzzy, c-format
 msgid "EdDSA signature verification failed at %s:%d: %s\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
@@ -8653,17 +8336,17 @@ msgstr "\"%s\" misslyckades vid %s:%d med fel: 
\"%s\".\n"
 msgid "RSA signature verification failed at %s:%d: %s\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
-#: src/util/disk.c:1255
+#: src/util/disk.c:1265
 #, fuzzy, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "\"%s\" förväntade att \"%s\" skulle vara en katalog!\n"
 
-#: src/util/dnsparser.c:260
+#: src/util/dnsparser.c:264
 #, fuzzy, c-format
 msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
 
-#: src/util/dnsparser.c:950
+#: src/util/dnsparser.c:954
 #, fuzzy, c-format
 msgid "Failed to convert UTF-8 name `%s' to DNS IDNA format: %s\n"
 msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
@@ -8769,7 +8452,7 @@ msgstr ""
 msgid "print this help"
 msgstr "skriv ut denna hjälp"
 
-#: src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:282 src/util/gnunet-qr.c:300
 msgid "be verbose"
 msgstr "var informativ"
 
@@ -8817,53 +8500,53 @@ msgstr "Du måste skicka med ett nummer till flaggan 
\"%s\".\n"
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:160
+#: src/util/gnunet-config.c:161
 #, fuzzy, c-format
 msgid "failed to load configuration defaults"
 msgstr "Kunde inte spara konfigurationsfil \"%s\":"
 
-#: src/util/gnunet-config.c:173
+#: src/util/gnunet-config.c:174
 #, fuzzy, c-format
 msgid "%s or %s argument is required\n"
 msgstr "%s: flagga \"%s\" är tvetydig\n"
 
-#: src/util/gnunet-config.c:181
+#: src/util/gnunet-config.c:182
 #, c-format
 msgid "The following sections are available:\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:232
+#: src/util/gnunet-config.c:234
 #, c-format
 msgid "--option argument required to set value\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:286
-msgid "obtain option of value as a filename (with $-expansion)"
+#: src/util/gnunet-config.c:288
+msgid "interpret option value as a filename (with $-expansion)"
 msgstr ""
 
-#: src/util/gnunet-config.c:291
+#: src/util/gnunet-config.c:293
 msgid "name of the section to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:296
+#: src/util/gnunet-config.c:298
 #, fuzzy
 msgid "name of the option to access"
 msgstr "Visa värde av alternativet"
 
-#: src/util/gnunet-config.c:301
+#: src/util/gnunet-config.c:303
 msgid "value to set"
 msgstr ""
 
-#: src/util/gnunet-config.c:305
+#: src/util/gnunet-config.c:307
 #, fuzzy
 msgid "print available configuration sections"
 msgstr "GNUnet-konfiguration"
 
-#: src/util/gnunet-config.c:309
+#: src/util/gnunet-config.c:311
 msgid "write configuration file that only contains delta to defaults"
 msgstr ""
 
-#: src/util/gnunet-config.c:322
+#: src/util/gnunet-config.c:324
 #, fuzzy
 msgid "Manipulate GNUnet configuration files"
 msgstr "skriv ut ett värde från konfigurationsfilen till standard ut"
@@ -8956,6 +8639,33 @@ msgstr ""
 msgid "Manipulate GNUnet private ECC key files"
 msgstr "skriv ut ett värde från konfigurationsfilen till standard ut"
 
+#: src/util/gnunet-qr.c:108 src/util/gnunet-uri.c:91
+#, fuzzy, c-format
+msgid "Invalid URI: does not start with `%s'\n"
+msgstr "Ogiltig nätverksnotation (slutar inte med \";\": \"%s\")\n"
+
+#: src/util/gnunet-qr.c:116 src/util/gnunet-uri.c:98
+#, c-format
+msgid "Invalid URI: fails to specify subsystem\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:127 src/util/gnunet-uri.c:108
+#, c-format
+msgid "No handler known for subsystem `%s'\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:297
+msgid "use video-device DEVICE (default: /dev/video0"
+msgstr ""
+
+#: src/util/gnunet-qr.c:303
+msgid "do not show preview windows"
+msgstr ""
+
+#: src/util/gnunet-qr.c:311
+msgid "Scan a QR code using a video device and import the uri read"
+msgstr ""
+
 #: src/util/gnunet-resolver.c:168
 msgid "perform a reverse lookup"
 msgstr ""
@@ -8990,7 +8700,7 @@ msgstr ""
 msgid "Manipulate GNUnet proof of work files"
 msgstr "skriv ut ett värde från konfigurationsfilen till standard ut"
 
-#: src/util/gnunet-service-resolver.c:1443
+#: src/util/gnunet-service-resolver.c:1424
 msgid "No DNS server available. DNS resolution will not be possible.\n"
 msgstr ""
 
@@ -8999,21 +8709,6 @@ msgstr ""
 msgid "No URI specified on command line\n"
 msgstr ""
 
-#: src/util/gnunet-uri.c:91
-#, fuzzy, c-format
-msgid "Invalid URI: does not start with `%s'\n"
-msgstr "Ogiltig nätverksnotation (slutar inte med \";\": \"%s\")\n"
-
-#: src/util/gnunet-uri.c:98
-#, c-format
-msgid "Invalid URI: fails to specify subsystem\n"
-msgstr ""
-
-#: src/util/gnunet-uri.c:108
-#, c-format
-msgid "No handler known for subsystem `%s'\n"
-msgstr ""
-
 #: src/util/gnunet-uri.c:170
 msgid "Perform default-actions for GNUnet URIs"
 msgstr ""
@@ -9033,12 +8728,12 @@ msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 msgid "Error writing to `%s': %s\n"
 msgstr "Fel vid skapandet av användare"
 
-#: src/util/network.c:136
+#: src/util/network.c:176
 #, c-format
 msgid "Unable to shorten unix path `%s' while keeping name unique\n"
 msgstr ""
 
-#: src/util/network.c:1795 src/util/network.c:1979
+#: src/util/network.c:1835 src/util/network.c:2019
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -9147,18 +8842,18 @@ msgstr ""
 msgid "Could not resolve our FQDN: %s\n"
 msgstr "Kunde inte slå upp \"%s\": %s\n"
 
-#: src/util/service.c:1307
-msgid ""
-"Could not bind to any of the ports I was supposed to, refusing to run!\n"
-msgstr ""
-
-#: src/util/service.c:2141
+#: src/util/service.c:668
 #, c-format
 msgid ""
 "Processing code for message of type %u did not call "
 "`GNUNET_SERVICE_client_continue' after %s\n"
 msgstr ""
 
+#: src/util/service.c:1820
+msgid ""
+"Could not bind to any of the ports I was supposed to, refusing to run!\n"
+msgstr ""
+
 #: src/util/signal.c:89
 #, fuzzy, c-format
 msgid "signal (%d, %p) returned %d.\n"
@@ -9290,12 +8985,12 @@ msgstr "Fel format \"%s\" för nätmask: %s\n"
 msgid "Wrong format `%s' for network\n"
 msgstr "Fel format \"%s\" för nätverk: %s\n"
 
-#: src/util/time.c:828 src/util/time.c:860
+#: src/util/time.c:844 src/util/time.c:876
 #, c-format
 msgid "Failed to map `%s', cannot assure monotonic time!\n"
 msgstr ""
 
-#: src/util/time.c:866
+#: src/util/time.c:882
 #, c-format
 msgid ""
 "Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
@@ -9479,64 +9174,64 @@ msgstr "# byte mottagna via UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #: src/zonemaster/gnunet-service-zonemaster.c:838
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "Misslyckades att ansluta till gnunetd.\n"
 
-#: src/include/gnunet_common.h:772 src/include/gnunet_common.h:779
-#: src/include/gnunet_common.h:789
+#: src/include/gnunet_common.h:794 src/include/gnunet_common.h:801
+#: src/include/gnunet_common.h:811
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d. Aborting.\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
-#: src/include/gnunet_common.h:797
+#: src/include/gnunet_common.h:819
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr "\"%s\" misslyckades vid %s:%d med fel: \"%s\".\n"
 
-#: src/include/gnunet_common.h:809
+#: src/include/gnunet_common.h:831
 #, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:836 src/include/gnunet_common.h:845
+#: src/include/gnunet_common.h:858 src/include/gnunet_common.h:867
 #, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d med fel: %s\n"
 
 #, fuzzy
-#~ msgid "Can not index file `%s': %s.\n"
-#~ msgstr "Kan inte öppna konfigurationsfil \"%s\".\n"
+#~ msgid "Failed to connect to CREDENTIAL\n"
+#~ msgstr "Misslyckades att ansluta till gnunetd.\n"
 
 #, fuzzy
-#~ msgid "`%s' is not a valid domain name\n"
-#~ msgstr "\"%s\" är inte tillgänglig."
+#~ msgid "GNUnet credential resolver tool"
+#~ msgstr "Spåra GNUnets nätverkstopologi."
 
 #, fuzzy
-#~ msgid "Specify a timeout for the lookup"
-#~ msgstr "ange prioritet för innehållet"
+#~ msgid "Unable to parse CRED record string `%s'\n"
+#~ msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
 
 #, fuzzy
-#~ msgid "Unable to parse CAA record string `%s'\n"
-#~ msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+#~ msgid "# XT sessions active"
+#~ msgstr "# sessionsnycklar accepterade"
 
 #, fuzzy
-#~ msgid "The EGO to use"
-#~ msgstr "meddelandestorlek"
+#~ msgid "Failed to bind XU socket to %s: %s\n"
+#~ msgstr "Misslyckades att binda till UDP6-port %d.\n"
 
 #, fuzzy
-#~ msgid "OpenID Connect REST API initialized\n"
-#~ msgstr " Anslutning misslyckades\n"
+#~ msgid "Failed to open XU sockets\n"
+#~ msgstr "Misslyckades att binda till UDP6-port %d.\n"
 
 #, fuzzy
-#~ msgid "CONFIG REST API initialized\n"
-#~ msgstr " Anslutning misslyckades\n"
+#~ msgid "Failed to create XU network sockets\n"
+#~ msgstr "Kunde inte skapa namnrymd \"%s\" (existerar?).\n"
 
 #, fuzzy
-#~ msgid "Option `%s' can't be used with other options.\n"
-#~ msgstr "Kommando \"%s\" kräver ett argument (\"%s\").\n"
+#~ msgid "Print information about DV state"
+#~ msgstr "Skriv ut information om GNUnets motparter."
 
 #, fuzzy
 #~ msgid "Invalid tunnel owner `%s'\n"
@@ -9546,6 +9241,102 @@ msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d 
med fel: %s\n"
 #~ msgid "Provide information about a particular tunnel"
 #~ msgstr "Skriv ut information om GNUnets motparter."
 
+#, fuzzy
+#~ msgid "Failed to store membership information!\n"
+#~ msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
+
+#, fuzzy
+#~ msgid "Failed to test membership!\n"
+#~ msgstr "Kunde inte skapa värdnyckel!\n"
+
+#, fuzzy
+#~ msgid "Dropping invalid fragment\n"
+#~ msgstr "Ogiltigt argument: \"%s\"\n"
+
+#, fuzzy
+#~ msgid "Failed to store fragment\n"
+#~ msgstr "Misslyckades att starta samling.\n"
+
+#, fuzzy
+#~ msgid "Failed to get fragment!\n"
+#~ msgstr "Kunde inte skapa värdnyckel!\n"
+
+#, fuzzy
+#~ msgid "Failed to get message!\n"
+#~ msgstr "Kunde inte skapa värdnyckel!\n"
+
+#, fuzzy
+#~ msgid "Failed to get message fragment!\n"
+#~ msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#, fuzzy
+#~ msgid "Failed to get master counters!\n"
+#~ msgstr "Kunde inte skapa värdnyckel!\n"
+
+#, fuzzy
+#~ msgid "Failed to begin modifying state: %d\n"
+#~ msgstr "Misslyckades att starta samling.\n"
+
+#, fuzzy
+#~ msgid "Failed to modify state: %d\n"
+#~ msgstr "Misslyckades att starta samling.\n"
+
+#, fuzzy
+#~ msgid "Failed to end modifying state!\n"
+#~ msgstr "Misslyckades att starta samling.\n"
+
+#, fuzzy
+#~ msgid "Failed to begin synchronizing state!\n"
+#~ msgstr "Kunde inte skapa värdnyckel!\n"
+
+#, fuzzy
+#~ msgid "Failed to end synchronizing state!\n"
+#~ msgstr "Kunde inte skapa värdnyckel!\n"
+
+#, fuzzy
+#~ msgid "Failed to reset state!\n"
+#~ msgstr "Kunde inte skapa värdnyckel!\n"
+
+#, fuzzy
+#~ msgid "Failed to get state variable!\n"
+#~ msgstr "Kunde inte skapa värdnyckel!\n"
+
+#, fuzzy
+#~ msgid "Unable to initialize Mysql.\n"
+#~ msgstr "Kunde inte initiera SQLite.\n"
+
+#, fuzzy
+#~ msgid "Failed to run SQL statement `%s'\n"
+#~ msgstr "Misslyckades att läsa kompislista från \"%s\"\n"
+
+#, fuzzy
+#~ msgid "`%s' failed at %s:%d with error: %s (%d)\n"
+#~ msgstr "\"%s\" misslyckades vid %s:%d med fel: %s\n"
+
+#, fuzzy
+#~ msgid "--place missing or invalid.\n"
+#~ msgstr "Ogiltigt argument: \"%s\"\n"
+
+#, fuzzy
+#~ msgid "name or public key of ego"
+#~ msgstr "Ogiltigt argument: \"%s\"\n"
+
+#, fuzzy
+#~ msgid "wait for incoming messages"
+#~ msgstr "Misslyckades att leverera \"%s\" meddelande.\n"
+
+#, fuzzy
+#~ msgid "GNS name"
+#~ msgstr "Visa _namn"
+
+#, fuzzy
+#~ msgid "method name"
+#~ msgstr "Visa _namn"
+
+#, fuzzy
+#~ msgid "number of messages to replay from history"
+#~ msgstr "antal meddelanden att använda per iteration"
+
 #, fuzzy
 #~ msgid "Could not resolve `%s' (%s): %s\n"
 #~ msgstr "Kunde inte slå upp \"%s\": %s\n"
@@ -10393,8 +10184,8 @@ msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d 
med fel: %s\n"
 
 #, fuzzy
 #~ msgid ""
-#~ "%s service is lacking key configuration settings (%s). Using default (%"
-#~ "u).\n"
+#~ "%s service is lacking key configuration settings (%s). Using default "
+#~ "(%u).\n"
 #~ msgstr "GNUnet-konfiguration"
 
 #, fuzzy
@@ -11267,8 +11058,8 @@ msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d 
med fel: %s\n"
 #, fuzzy
 #~ msgid "No interface specified in section `%s' under `%s'!\n"
 #~ msgstr ""
-#~ "Inga nätverksgränssnitt angivna i konfigurationssektionen \"%s\" under \"%"
-#~ "s\"!\n"
+#~ "Inga nätverksgränssnitt angivna i konfigurationssektionen \"%s\" under "
+#~ "\"%s\"!\n"
 
 #, fuzzy
 #~ msgid "`%s' returned with error code %u"
@@ -11286,8 +11077,8 @@ msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d 
med fel: %s\n"
 #~ msgid ""
 #~ "No network interfaces defined in configuration section `%s' under `%s'!\n"
 #~ msgstr ""
-#~ "Inga nätverksgränssnitt angivna i konfigurationssektionen \"%s\" under \"%"
-#~ "s\"!\n"
+#~ "Inga nätverksgränssnitt angivna i konfigurationssektionen \"%s\" under "
+#~ "\"%s\"!\n"
 
 #, fuzzy
 #~ msgid "Command `%s' failed with error code %u\n"
@@ -12149,8 +11940,8 @@ msgstr "\"%s\" misslyckades för fil \"%s\" vid %s:%d 
med fel: %s\n"
 #~ msgstr "Kunde inte slå upp namnet för SMTP-server \"%s\": %s"
 
 #~ msgid ""
-#~ "You must specify the name of a pipe for the SMTP transport in section `%"
-#~ "s' under `%s'.\n"
+#~ "You must specify the name of a pipe for the SMTP transport in section `"
+#~ "%s' under `%s'.\n"
 #~ msgstr ""
 #~ "Du måste ange ett namn på röret för SMTP-transporten i sektion \"%s\" "
 #~ "under \"%s\".\n"
diff --git a/po/vi.po b/po/vi.po
index 58f55cebb..bb4c46bb1 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,17 +8,157 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet 0.8.0a\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-02-09 22:07+0000\n"
+"POT-Creation-Date: 2019-10-07 11:45+0200\n"
 "PO-Revision-Date: 2008-09-10 22:05+0930\n"
 "Last-Translator: Clytie Siddall <address@hidden>\n"
 "Language-Team: Vietnamese <address@hidden>\n"
+"Language: vi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: vi\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 "X-Generator: LocFactoryEditor 1.7b3\n"
 
+#: src/abd/gnunet-abd.c:394 src/namestore/gnunet-namestore.c:994
+#, c-format
+msgid "Ego `%s' not known to identity service\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:410 src/abd/gnunet-abd.c:875
+#, fuzzy, c-format
+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:549 src/abd/gnunet-service-abd.c:1723
+#: src/namestore/gnunet-namestore.c:1019
+#: src/namestore/gnunet-namestore-fcfsd.c:1138
+#, fuzzy, c-format
+msgid "Failed to connect to namestore\n"
+msgstr "Không kết nối được đến trình nền gnunetd."
+
+#: src/abd/gnunet-abd.c:814 src/abd/gnunet-abd.c:865
+#, fuzzy, c-format
+msgid "Issuer public key not well-formed\n"
+msgstr "Đối số không hợp lệ cho « %s ».\n"
+
+#: src/abd/gnunet-abd.c:823 src/abd/gnunet-abd.c:884
+#, fuzzy, c-format
+msgid "Failed to connect to ABD\n"
+msgstr "Lỗi kết nối đến gnunetd.\n"
+
+#: src/abd/gnunet-abd.c:829
+#, c-format
+msgid "You must provide issuer the attribute\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:836
+#, c-format
+msgid "ego required\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:846
+#, c-format
+msgid "Subject public key needed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:855
+#, fuzzy, c-format
+msgid "Subject public key `%s' is not well-formed\n"
+msgstr "Đối số không hợp lệ cho « %s ».\n"
+
+#: src/abd/gnunet-abd.c:890
+#, c-format
+msgid "You must provide issuer and subject attributes\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:946
+#, c-format
+msgid "Please specify name to lookup, subject key and issuer key!\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:967
+msgid "verify credential against attribute"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:974
+#, fuzzy
+msgid ""
+"The public key of the subject to lookup thecredential for, or for issuer "
+"side storage: subject and its attributes"
+msgstr "xác định mức ưu tiên của nội dung"
+
+#: src/abd/gnunet-abd.c:981
+msgid "The private, signed delegate presented by the subject"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:988
+#, fuzzy
+msgid "The public key of the authority to verify the credential against"
+msgstr "xác định mức ưu tiên của nội dung"
+
+#: src/abd/gnunet-abd.c:993
+#, fuzzy
+msgid "The ego/zone name to use"
+msgstr "kích cỡ tin nhắn"
+
+#: src/abd/gnunet-abd.c:999
+msgid "The issuer attribute to verify against or to issue"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1005
+msgid ""
+"The time to live for the credential.e.g. 5m, 6h, \"1990-12-30 12:00:00\""
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1010
+msgid "collect credentials"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1015
+msgid "Create and issue a credential issuer side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1020
+msgid "Issue a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1025
+msgid "Create, sign and return a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1032
+msgid "Import signed credentials that should be issued to a zone/ego"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1036
+msgid "Create private record entry."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1042 src/abd/gnunet-abd.c:1048
+msgid "Indicates that the collect/verify process is done via forward search."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1061
+#, fuzzy
+msgid "GNUnet abd resolver tool"
+msgstr "Bản ghi lỗi GNUnet"
+
+#: src/abd/gnunet-service-abd.c:1718 src/gns/gnunet-gns.c:185
+#: src/gns/gnunet-gns-helper-service-w32.c:727
+#, fuzzy, c-format
+msgid "Failed to connect to GNS\n"
+msgstr "Lỗi kết nối đến gnunetd.\n"
+
+#: src/abd/plugin_gnsrecord_abd.c:182
+#, fuzzy, c-format
+msgid "Unable to parse ATTR record string `%s'\n"
+msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
+
+#: src/abd/plugin_rest_abd.c:1128 src/abd/plugin_rest_credential.c:1128
+#, fuzzy
+msgid "GNS REST API initialized\n"
+msgstr "Lỗi sơ khởi lõi.\n"
+
 #: src/arm/gnunet-arm.c:156
 #, fuzzy, c-format
 msgid "Failed to remove configuration file %s\n"
@@ -234,8 +374,7 @@ msgid "Control services and the Automated Restart Manager 
(ARM)"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:388 src/transport/plugin_transport_tcp.c:1120
-#: src/transport/plugin_transport_xt.c:1120
-#: src/transport/tcp_service_legacy.c:557 src/util/service.c:612
+#: src/transport/tcp_service_legacy.c:557
 #, c-format
 msgid ""
 "Disabling IPv6 support for service `%s', failed to create IPv6 socket: %s\n"
@@ -244,36 +383,30 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:412 src/arm/gnunet-service-arm.c:418
 #: src/transport/plugin_transport_tcp.c:1139
 #: src/transport/plugin_transport_tcp.c:1145
-#: src/transport/plugin_transport_tcp.c:3829
-#: src/transport/plugin_transport_xt.c:1139
-#: src/transport/plugin_transport_xt.c:1145
-#: src/transport/plugin_transport_xt.c:3833
+#: src/transport/plugin_transport_tcp.c:3835
 #: src/transport/tcp_service_legacy.c:576
-#: src/transport/tcp_service_legacy.c:582 src/util/service.c:637
-#: src/util/service.c:643
+#: src/transport/tcp_service_legacy.c:582 src/util/service.c:1150
+#: src/util/service.c:1156
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:457 src/transport/plugin_transport_tcp.c:1176
-#: src/transport/plugin_transport_xt.c:1176
-#: src/transport/tcp_service_legacy.c:613 src/util/client.c:506
-#: src/util/service.c:682
+#: src/transport/tcp_service_legacy.c:613 src/util/client.c:521
+#: src/util/service.c:1195
 #, c-format
 msgid "UNIXPATH `%s' too long, maximum length is %llu\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:462 src/transport/plugin_transport_tcp.c:1180
-#: src/transport/plugin_transport_xt.c:1180
-#: src/transport/tcp_service_legacy.c:617 src/util/client.c:511
-#: src/util/service.c:687
+#: src/transport/tcp_service_legacy.c:617 src/util/client.c:526
+#: src/util/service.c:1200
 #, fuzzy, c-format
 msgid "Using `%s' instead\n"
 msgstr "%s: tùy chọn « %s » là mơ hồ\n"
 
 #: src/arm/gnunet-service-arm.c:495 src/transport/plugin_transport_tcp.c:1211
-#: src/transport/plugin_transport_xt.c:1211
-#: src/transport/tcp_service_legacy.c:648 src/util/service.c:723
+#: src/transport/tcp_service_legacy.c:648 src/util/service.c:1236
 #, c-format
 msgid ""
 "Disabling UNIX domain socket support for service `%s', failed to create UNIX "
@@ -281,8 +414,7 @@ msgid ""
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:517 src/transport/plugin_transport_tcp.c:1228
-#: src/transport/plugin_transport_xt.c:1228
-#: src/transport/tcp_service_legacy.c:665 src/util/service.c:741
+#: src/transport/tcp_service_legacy.c:665 src/util/service.c:1254
 #, c-format
 msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"
 msgstr ""
@@ -290,8 +422,7 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:556
 #: src/transport/plugin_transport_http_server.c:2688
 #: src/transport/plugin_transport_tcp.c:1259
-#: src/transport/plugin_transport_xt.c:1259
-#: src/transport/tcp_service_legacy.c:696 src/util/service.c:782
+#: src/transport/tcp_service_legacy.c:696 src/util/service.c:1295
 #, fuzzy, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
@@ -299,8 +430,7 @@ msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 #: src/arm/gnunet-service-arm.c:575
 #: src/transport/plugin_transport_http_server.c:2706
 #: src/transport/plugin_transport_tcp.c:1278
-#: src/transport/plugin_transport_xt.c:1278
-#: src/transport/tcp_service_legacy.c:715 src/util/service.c:802
+#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1315
 #, fuzzy, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "Lỗi đóng kết đến cổng %s %d.\n"
@@ -372,15 +502,140 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:837
+#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:2799
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:2840
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3294 src/ats-tests/gnunet-solver-eval.c:939
+msgid "solver to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3299 src/ats-tests/gnunet-solver-eval.c:945
+#: src/ats-tests/gnunet-solver-eval.c:950
+msgid "experiment to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3306
 #, fuzzy
-msgid "Stop logging\n"
+msgid "print logging"
 msgstr "Theo dõi"
 
-#: src/ats-tests/ats-testing-log.c:892
+#: src/ats/gnunet-ats-solver-eval.c:3311
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3316
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats-new.c:756
+#: src/ats/gnunet-service-ats_plugins.c:451
 #, fuzzy, c-format
-msgid "Start logging `%s'\n"
-msgstr "Đang bắt đầu tài về « %s »\n"
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "Không thể sơ khởi SQLite: %s.\n"
+
+#: src/ats/gnunet-service-ats_plugins.c:304
+#, 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:314
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:359
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats2_common.c:90
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s': `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1274
+msgid "Problem size too large, cannot allocate memory!\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1870
+#, fuzzy, c-format
+msgid "Adding address for peer `%s' multiple times\n"
+msgstr "Không thể lấy địa chỉ của đồng đẳng « %s ».\n"
+
+#: src/ats/plugin_ats_mlp.c:1914
+#, fuzzy, c-format
+msgid "Updating address property for peer `%s' %p not added before\n"
+msgstr "Không thể lấy địa chỉ của đồng đẳng « %s ».\n"
+
+#: src/ats/plugin_ats_mlp.c:2476
+msgid ""
+"MLP solver is not optimizing for anything, changing to feasibility check\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
+#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
+#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
+#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
+#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
+#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
+#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
+#, 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_mlp.c:2671
+#, c-format
+msgid ""
+"Adjusting inconsistent outbound quota configuration for network `%s', is "
+"%llu must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2680
+#, c-format
+msgid ""
+"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
+"must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2690
+#, c-format
+msgid ""
+"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2699
+#, c-format
+msgid ""
+"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_proportional.c:1164
+#, 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-tests/ats-testing.c:422
 #, c-format
@@ -392,6 +647,16 @@ 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:837
+#, fuzzy
+msgid "Stop logging\n"
+msgstr "Theo dõi"
+
+#: src/ats-tests/ats-testing-log.c:892
+#, 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:90
 #, c-format
 msgid ""
@@ -399,17 +664,6 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
-#: src/ats-tests/gnunet-solver-eval.c:939
-#: src/ats/gnunet-ats-solver-eval.c:3294
-msgid "solver to use"
-msgstr ""
-
-#: src/ats-tests/gnunet-solver-eval.c:945
-#: src/ats-tests/gnunet-solver-eval.c:950
-#: src/ats/gnunet-ats-solver-eval.c:3299
-msgid "experiment to use"
-msgstr ""
-
 #: src/ats-tool/gnunet-ats.c:307
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -476,187 +730,61 @@ msgstr "In ra thông tin về các đồng đẳng GNUnet."
 msgid "No peer given!\n"
 msgstr "chưa đưa ra tên"
 
-#: src/ats-tool/gnunet-ats.c:887
-msgid "Valid type required\n"
-msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:950
-msgid "get list of active addresses currently used"
-msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:954
-msgid "get list of all active addresses"
-msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:960
-#, fuzzy
-msgid "connect to PEER"
-msgstr "Lỗi kết nối đến gnunetd.\n"
-
-#: src/ats-tool/gnunet-ats.c:964
-#, fuzzy
-msgid "do not resolve IP addresses to hostnames"
-msgstr "không quyết định các tên máy"
-
-#: src/ats-tool/gnunet-ats.c:969
-msgid "monitor mode"
-msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:974
-#, fuzzy
-msgid "set preference for the given peer"
-msgstr "In ra thông tin về các đồng đẳng GNUnet."
-
-#: src/ats-tool/gnunet-ats.c:979
-msgid "print all configured quotas"
-msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:984
-msgid "peer id"
-msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:990
-msgid "preference type to set: latency | bandwidth"
-msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:996
-msgid "preference value"
-msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:1001
-msgid "verbose output (include ATS address properties)"
-msgstr ""
-
-#: src/ats-tool/gnunet-ats.c:1011
-#, fuzzy
-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:2781 src/ats/gnunet-ats-solver-eval.c:2822
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2799
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2840
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3306
-#, fuzzy
-msgid "print logging"
-msgstr "Theo dõi"
-
-#: src/ats/gnunet-ats-solver-eval.c:3311
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3316
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats-new.c:733
-#: src/ats/gnunet-service-ats_plugins.c:451
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "Không thể sơ khởi SQLite: %s.\n"
-
-#: src/ats/gnunet-service-ats_plugins.c:304
-#, 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:314
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:359
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+#: src/ats-tool/gnunet-ats.c:887
+msgid "Valid type required\n"
 msgstr ""
 
-#: src/ats/plugin_ats2_common.c:90
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s': `%s', assigning default bandwidth %"
-"llu\n"
+#: src/ats-tool/gnunet-ats.c:950
+msgid "get list of active addresses currently used"
 msgstr ""
 
-#: src/ats/plugin_ats_mlp.c:1274
-msgid "Problem size too large, cannot allocate memory!\n"
+#: src/ats-tool/gnunet-ats.c:954
+msgid "get list of all active addresses"
 msgstr ""
 
-#: src/ats/plugin_ats_mlp.c:1870
-#, fuzzy, c-format
-msgid "Adding address for peer `%s' multiple times\n"
-msgstr "Không thể lấy địa chỉ của đồng đẳng « %s ».\n"
+#: src/ats-tool/gnunet-ats.c:960
+#, fuzzy
+msgid "connect to PEER"
+msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/ats/plugin_ats_mlp.c:1914
-#, fuzzy, c-format
-msgid "Updating address property for peer `%s' %p not added before\n"
-msgstr "Không thể lấy địa chỉ của đồng đẳng « %s ».\n"
+#: src/ats-tool/gnunet-ats.c:964
+#, fuzzy
+msgid "do not resolve IP addresses to hostnames"
+msgstr "không quyết định các tên máy"
 
-#: src/ats/plugin_ats_mlp.c:2476
-msgid ""
-"MLP solver is not optimizing for anything, changing to feasibility check\n"
+#: src/ats-tool/gnunet-ats.c:969
+msgid "monitor mode"
 msgstr ""
 
-#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
-#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
-#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
-#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
-#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
-#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
-#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
-#, 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-tool/gnunet-ats.c:974
+#, fuzzy
+msgid "set preference for the given peer"
+msgstr "In ra thông tin về các đồng đẳng GNUnet."
 
-#: src/ats/plugin_ats_mlp.c:2671
-#, c-format
-msgid ""
-"Adjusting inconsistent outbound quota configuration for network `%s', is %"
-"llu must be at least %llu\n"
+#: src/ats-tool/gnunet-ats.c:979
+msgid "print all configured quotas"
 msgstr ""
 
-#: src/ats/plugin_ats_mlp.c:2680
-#, c-format
-msgid ""
-"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
-"must be at least %llu\n"
+#: src/ats-tool/gnunet-ats.c:984
+msgid "peer id"
 msgstr ""
 
-#: src/ats/plugin_ats_mlp.c:2690
-#, c-format
-msgid ""
-"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
+#: src/ats-tool/gnunet-ats.c:990
+msgid "preference type to set: latency | bandwidth"
 msgstr ""
 
-#: src/ats/plugin_ats_mlp.c:2699
-#, c-format
-msgid ""
-"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
+#: src/ats-tool/gnunet-ats.c:996
+msgid "preference value"
 msgstr ""
 
-#: src/ats/plugin_ats_proportional.c:1164
-#, 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-tool/gnunet-ats.c:1001
+msgid "verbose output (include ATS address properties)"
+msgstr ""
+
+#: src/ats-tool/gnunet-ats.c:1011
+#, fuzzy
+msgid "Print information about ATS state"
+msgstr "In ra thông tin về các đồng đẳng GNUnet."
 
 #: src/auction/gnunet-auction-create.c:163
 msgid "description of the item to be sold"
@@ -792,28 +920,6 @@ 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:145
-#, 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:216
-#, 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:277
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1071,8 +1177,30 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-playback-gst.c:361
+#: 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:145
+#, 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:216
+#, 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:622
+#: src/conversation/gnunet-helper-audio-playback-gst.c:361
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1382,7 +1510,7 @@ msgid "# valid ephemeral keys received"
 msgstr "# các thông báo phát hiện dht được nhận"
 
 #: src/core/gnunet-service-core_kx.c:1180
-#: src/transport/gnunet-service-transport_validation.c:1128
+#: src/transport/gnunet-service-transport_validation.c:1129
 #, fuzzy
 msgid "# PING messages received"
 msgstr "# các thông báo PING được tạo"
@@ -1408,7 +1536,7 @@ msgid "# keepalive messages sent"
 msgstr "# các thông báo PING nhập thô được gửi"
 
 #: src/core/gnunet-service-core_kx.c:1351
-#: src/transport/gnunet-service-transport_validation.c:1461
+#: src/transport/gnunet-service-transport_validation.c:1462
 #, fuzzy
 msgid "# PONG messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
@@ -1518,131 +1646,6 @@ msgstr "# các thông báo phát hiện dht được nhận"
 msgid "# updates to my type map"
 msgstr ""
 
-#: src/credential/credential_misc.c:88
-#, fuzzy, c-format
-msgid "Unable to parse CRED record string `%s'\n"
-msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
-
-#: src/credential/gnunet-credential.c:264 src/namestore/gnunet-namestore.c:994
-#, c-format
-msgid "Ego `%s' not known to identity service\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:280
-#: src/credential/gnunet-credential.c:434
-#, fuzzy, c-format
-msgid "Issuer public key `%s' is not well-formed\n"
-msgstr "Đối số không hợp lệ cho « %s ».\n"
-
-#: src/credential/gnunet-credential.c:361
-#: src/credential/gnunet-credential.c:423
-#, fuzzy, c-format
-msgid "Issuer public key not well-formed\n"
-msgstr "Đối số không hợp lệ cho « %s ».\n"
-
-#: src/credential/gnunet-credential.c:372
-#: src/credential/gnunet-credential.c:444
-#, fuzzy, c-format
-msgid "Failed to connect to CREDENTIAL\n"
-msgstr "Lỗi kết nối đến gnunetd.\n"
-
-#: src/credential/gnunet-credential.c:379
-#, c-format
-msgid "You must provide issuer the attribute\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:387
-#, c-format
-msgid "ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:403
-#, c-format
-msgid "Subject public key needed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:414
-#, fuzzy, c-format
-msgid "Subject public key `%s' is not well-formed\n"
-msgstr "Đối số không hợp lệ cho « %s ».\n"
-
-#: src/credential/gnunet-credential.c:451
-#, c-format
-msgid "You must provide issuer and subject attributes\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:504
-#, c-format
-msgid "Issuer ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:516
-#, c-format
-msgid "Please specify name to lookup, subject key and issuer key!\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:536
-msgid "create credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:540
-msgid "verify credential against attribute"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:545
-#, fuzzy
-msgid "The public key of the subject to lookup the credential for"
-msgstr "xác định mức ưu tiên của nội dung"
-
-#: src/credential/gnunet-credential.c:550
-msgid "The name of the credential presented by the subject"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:555
-#, fuzzy
-msgid "The public key of the authority to verify the credential against"
-msgstr "xác định mức ưu tiên của nội dung"
-
-#: src/credential/gnunet-credential.c:560
-#, fuzzy
-msgid "The ego to use"
-msgstr "kích cỡ tin nhắn"
-
-#: src/credential/gnunet-credential.c:565
-msgid "The issuer attribute to verify against or to issue"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:570
-msgid "The time to live for the credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:574
-msgid "collect credentials"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:588
-#, fuzzy
-msgid "GNUnet credential resolver tool"
-msgstr "Bản ghi lỗi GNUnet"
-
-#: src/credential/gnunet-service-credential.c:1138
-#: src/gns/gnunet-gns-helper-service-w32.c:727 src/gns/gnunet-gns.c:185
-#, fuzzy, c-format
-msgid "Failed to connect to GNS\n"
-msgstr "Lỗi kết nối đến gnunetd.\n"
-
-#: src/credential/gnunet-service-credential.c:1144
-#: src/namestore/gnunet-namestore-fcfsd.c:1138
-#: src/namestore/gnunet-namestore.c:1019
-#, fuzzy, c-format
-msgid "Failed to connect to namestore\n"
-msgstr "Không kết nối được đến trình nền gnunetd."
-
-#: src/credential/plugin_gnsrecord_credential.c:186
-#, fuzzy, c-format
-msgid "Unable to parse ATTR record string `%s'\n"
-msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
-
 #: src/datacache/datacache.c:119 src/datacache/datacache.c:311
 #: src/datastore/gnunet-service-datastore.c:757
 #, fuzzy
@@ -1697,14 +1700,12 @@ msgstr "kho dữ liệu sqlite"
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_sqlite.c:53
 #: src/peerstore/plugin_peerstore_sqlite.c:52
-#: src/psycstore/plugin_psycstore_mysql.c:62
-#: src/reclaim/plugin_reclaim_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:56
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:53
 #: src/util/crypto_ecc_setup.c:41 src/util/crypto_mpi.c:39
-#: src/include/gnunet_common.h:818 src/include/gnunet_common.h:827
+#: src/include/gnunet_common.h:840 src/include/gnunet_common.h:849
 #: src/scalarproduct/scalarproduct.h:35
 #, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
@@ -1714,7 +1715,6 @@ msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
 #: src/datastore/plugin_datastore_sqlite.c:508
 #: src/namecache/plugin_namecache_sqlite.c:229
 #: src/namestore/plugin_namestore_sqlite.c:265
-#: src/reclaim/plugin_reclaim_sqlite.c:336
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -2036,24 +2036,22 @@ msgid "`%s' for `%s' failed at %s:%d with error: %s\n"
 msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
 
 #: src/datastore/plugin_datastore_mysql.c:1180
-#: src/psycstore/plugin_psycstore_mysql.c:1936
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:276
-#: src/datastore/plugin_datastore_postgres.c:893
+#: src/datastore/plugin_datastore_postgres.c:280
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:854
+#: 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:952
-#: src/psycstore/plugin_psycstore_postgres.c:1506
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -2069,8 +2067,6 @@ msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s"
 #: src/namecache/plugin_namecache_sqlite.c:173
 #: src/namestore/plugin_namestore_sqlite.c:206
 #: src/peerstore/plugin_peerstore_sqlite.c:535
-#: src/psycstore/plugin_psycstore_sqlite.c:325
-#: src/reclaim/plugin_reclaim_sqlite.c:212
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "Không thể sơ khởi SQLite: %s.\n"
@@ -2092,8 +2088,7 @@ msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:1405
 #: src/namecache/plugin_namecache_sqlite.c:557
-#: src/namestore/plugin_namestore_sqlite.c:750
-#: src/reclaim/plugin_reclaim_sqlite.c:711
+#: src/namestore/plugin_namestore_sqlite.c:751
 #, fuzzy
 msgid "Sqlite database running\n"
 msgstr "kho dữ liệu sqlite"
@@ -2144,27 +2139,75 @@ msgstr ""
 msgid "how long to execute this query before giving up?"
 msgstr ""
 
-#: src/dht/gnunet-dht-get.c:267 src/dht/gnunet-dht-put.c:202
-msgid "use DHT's demultiplex everywhere option"
+#: src/dht/gnunet-dht-get.c:267 src/dht/gnunet-dht-put.c:202
+msgid "use DHT's demultiplex everywhere option"
+msgstr ""
+
+#: src/dht/gnunet-dht-get.c:280
+msgid "Issue a GET request to the GNUnet DHT, prints results."
+msgstr ""
+
+#: src/dht/gnunet-dht-monitor.c:319
+msgid "how long should the monitor command run"
+msgstr ""
+
+#: src/dht/gnunet-dht-monitor.c:324 src/fs/gnunet-download.c:372
+#: src/nse/gnunet-nse-profiler.c:878
+msgid "be verbose (print progress information)"
+msgstr ""
+
+#: src/dht/gnunet-dht-monitor.c:337
+msgid "Prints all packets that go through the DHT."
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
+#, 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:949 src/rps/gnunet-rps-profiler.c:3083
+#, fuzzy
+msgid "number of peers to start"
+msgstr "số lần lặp lại"
+
+#: src/dht/gnunet_dht_profiler.c:954
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
+#: src/testbed/gnunet-testbed-profiler.c:300
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:964
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:969
+msgid "delay to start doing PUTs (default: 1 sec)"
 msgstr ""
 
-#: src/dht/gnunet-dht-get.c:280
-msgid "Issue a GET request to the GNUnet DHT, prints results."
+#: src/dht/gnunet_dht_profiler.c:974
+msgid "delay to start doing GETs (default: 5 min)"
 msgstr ""
 
-#: src/dht/gnunet-dht-monitor.c:319
-msgid "how long should the monitor command run"
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "replication degree for DHT PUTs"
 msgstr ""
 
-#: src/dht/gnunet-dht-monitor.c:324 src/fs/gnunet-download.c:372
-#: src/nse/gnunet-nse-profiler.c:878
-msgid "be verbose (print progress information)"
+#: src/dht/gnunet_dht_profiler.c:984
+msgid "chance that a peer is selected at random for PUTs"
 msgstr ""
 
-#: src/dht/gnunet-dht-monitor.c:337
-msgid "Prints all packets that go through the DHT."
+#: src/dht/gnunet_dht_profiler.c:989
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
 msgstr ""
 
+#: src/dht/gnunet_dht_profiler.c:1009
+#, 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:134
 msgid "Must provide KEY and DATA for DHT put!\n"
 msgstr ""
@@ -2436,54 +2479,6 @@ 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:916 src/testbed/gnunet-testbed-profiler.c:253
-#, 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:949 src/rps/gnunet-rps-profiler.c:2953
-#, fuzzy
-msgid "number of peers to start"
-msgstr "số lần lặp lại"
-
-#: src/dht/gnunet_dht_profiler.c:954
-msgid "number of PUTs to perform per peer"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
-#: src/testbed/gnunet-testbed-profiler.c:304
-msgid "name of the file with the login information for the testbed"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:964
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:969
-msgid "delay to start doing PUTs (default: 1 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:974
-msgid "delay to start doing GETs (default: 5 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "replication degree for DHT PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:984
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:989
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1009
-#, 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"
@@ -2570,11 +2565,6 @@ msgstr "Mức ưu tiên tiến trình không hợp lê « %s ».\n"
 msgid "`%s' must be installed SUID, will not run DNS interceptor\n"
 msgstr ""
 
-#: src/dv/gnunet-dv.c:175
-#, fuzzy
-msgid "Print information about DV state"
-msgstr "In ra thông tin về các đồng đẳng GNUnet."
-
 #: src/exit/gnunet-daemon-exit.c:960
 #, fuzzy
 msgid "# TCP packets sent via TUN"
@@ -3029,59 +3019,64 @@ msgstr "Không kết nối được đến trình nền gnunetd."
 msgid "Publishing failed: %s"
 msgstr "Gặp lỗi khi tải lên tập tin: %s\n"
 
-#: src/fs/fs_publish.c:724 src/fs/fs_publish.c:778 src/fs/fs_publish.c:823
-#: src/fs/fs_publish.c:844 src/fs/fs_publish.c:874 src/fs/fs_publish.c:1140
+#: src/fs/fs_publish.c:725
+#, fuzzy, c-format
+msgid "Can not index file `%s': %s.\n"
+msgstr "Không thể mở tập tin « %s »: « %s »"
+
+#: src/fs/fs_publish.c:782 src/fs/fs_publish.c:827 src/fs/fs_publish.c:848
+#: src/fs/fs_publish.c:878 src/fs/fs_publish.c:1144
 #, fuzzy, c-format
 msgid "Can not index file `%s': %s.  Will try to insert instead.\n"
 msgstr "Lỗi đánh chỉ mục tập tin « %s ». Đề nghị: thử chèn tập tin.\n"
 
-#: src/fs/fs_publish.c:780
+#: src/fs/fs_publish.c:784
 #, fuzzy
 msgid "error on index-start request to `fs' service"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/fs/fs_publish.c:825
+#: src/fs/fs_publish.c:829
 msgid "failed to compute hash"
 msgstr ""
 
-#: src/fs/fs_publish.c:845
+#: src/fs/fs_publish.c:849
 #, fuzzy
 msgid "filename too long"
 msgstr "tên tập tin"
 
-#: src/fs/fs_publish.c:876
+#: src/fs/fs_publish.c:880
 msgid "could not connect to `fs' service"
 msgstr ""
 
-#: src/fs/fs_publish.c:902
+#: src/fs/fs_publish.c:906
 #, fuzzy, c-format
 msgid "Failed to get file identifiers for `%s'\n"
 msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 
-#: src/fs/fs_publish.c:991 src/fs/fs_publish.c:1027
+#: src/fs/fs_publish.c:995 src/fs/fs_publish.c:1031
 msgid "Can not create LOC URI. Will continue with CHK instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:1094
+#: src/fs/fs_publish.c:1098
 #, fuzzy, c-format
 msgid "Recursive upload failed at `%s': %s"
 msgstr "%s bị lỗi tại %s:%d: « %s »\n"
 
-#: src/fs/fs_publish.c:1102
+#: src/fs/fs_publish.c:1106
 #, fuzzy, c-format
 msgid "Recursive upload failed: %s"
 msgstr "Gặp lỗi khi tải lên tập tin: %s\n"
 
-#: src/fs/fs_publish.c:1142
+#: src/fs/fs_publish.c:1146
 msgid "needs to be an actual file"
 msgstr ""
 
-#: src/fs/fs_publish.c:1381
+#: src/fs/fs_publish.c:1385
 #, fuzzy, c-format
 msgid "Datastore failure: %s"
 msgstr "Kho dữ liệu đầy.\n"
 
-#: src/fs/fs_publish.c:1472
+#: src/fs/fs_publish.c:1476
 #, c-format
 msgid "Reserving space for %u entries and %llu bytes for publication\n"
 msgstr ""
@@ -3155,93 +3150,93 @@ msgstr "Không kết nối được đến trình nền gnunetd."
 msgid "Failed to compute hash of file."
 msgstr "Không kết nối được đến trình nền gnunetd."
 
-#: src/fs/fs_uri.c:234
+#: src/fs/fs_uri.c:236
 #, no-c-format
 msgid "Malformed KSK URI (`%' must be followed by HEX number)"
 msgstr ""
 
-#: src/fs/fs_uri.c:293
+#: src/fs/fs_uri.c:295
 msgid "Malformed KSK URI (must not begin or end with `+')"
 msgstr ""
 
-#: src/fs/fs_uri.c:311
+#: src/fs/fs_uri.c:313
 msgid "Malformed KSK URI (`++' not allowed)"
 msgstr ""
 
-#: src/fs/fs_uri.c:318
+#: src/fs/fs_uri.c:320
 msgid "Malformed KSK URI (quotes not balanced)"
 msgstr ""
 
-#: src/fs/fs_uri.c:388
+#: src/fs/fs_uri.c:390
 msgid "Malformed SKS URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:429
+#: src/fs/fs_uri.c:431
 msgid "Malformed CHK URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:444
+#: src/fs/fs_uri.c:446
 msgid "Malformed CHK URI (failed to decode CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:523
+#: src/fs/fs_uri.c:525
 msgid "LOC URI malformed (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:538
+#: src/fs/fs_uri.c:540
 msgid "LOC URI malformed (no CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:548
+#: src/fs/fs_uri.c:550
 msgid "LOC URI malformed (missing LOC)"
 msgstr ""
 
-#: src/fs/fs_uri.c:556
+#: src/fs/fs_uri.c:558
 msgid "LOC URI malformed (wrong syntax for public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:564
+#: src/fs/fs_uri.c:566
 msgid "LOC URI malformed (could not decode public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:570
+#: src/fs/fs_uri.c:572
 msgid "LOC URI malformed (could not find signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:576
+#: src/fs/fs_uri.c:578
 msgid "LOC URI malformed (wrong syntax for signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:585
+#: src/fs/fs_uri.c:587
 msgid "LOC URI malformed (could not decode signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:591
+#: src/fs/fs_uri.c:593
 msgid "LOC URI malformed (wrong syntax for expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:597
+#: src/fs/fs_uri.c:599
 msgid "LOC URI malformed (could not parse expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:609
+#: src/fs/fs_uri.c:611
 msgid "LOC URI malformed (signature failed validation)"
 msgstr ""
 
-#: src/fs/fs_uri.c:643
+#: src/fs/fs_uri.c:645
 #, fuzzy
 msgid "invalid argument"
 msgstr "Đối số không hợp lệ cho « %s ».\n"
 
-#: src/fs/fs_uri.c:655
+#: src/fs/fs_uri.c:657
 msgid "Unrecognized URI type"
 msgstr ""
 
-#: src/fs/fs_uri.c:1059 src/fs/fs_uri.c:1086
+#: src/fs/fs_uri.c:1061 src/fs/fs_uri.c:1088
 msgid "No keywords specified!\n"
 msgstr "Chưa ghi rõ từ khoá.\n"
 
-#: src/fs/fs_uri.c:1092
+#: src/fs/fs_uri.c:1094
 msgid "Number of double-quotes not balanced!\n"
 msgstr "Có dấu nháy kép thừa hay thiếu.\n"
 
@@ -3281,11 +3276,11 @@ msgstr "Phải ghi rõ chỉ một tên tập tin để chèn.\n"
 msgid "set the desired LEVEL of sender-anonymity"
 msgstr "đặt CẤP mong muốn của tình trạng nặc danh của người gửi"
 
-#: src/fs/gnunet-auto-share.c:772 src/fs/gnunet-publish.c:907
+#: src/fs/gnunet-auto-share.c:772
 msgid "disable adding the creation time to the metadata of the uploaded file"
 msgstr "tắt thêm giờ tạo vào siêu dữ liệu của tập tin đã tải lên"
 
-#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:912
+#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:907
 msgid "do not use libextractor to add keywords or metadata"
 msgstr ""
 
@@ -3369,7 +3364,7 @@ msgid "Downloading `%s' done (%s/s).\n"
 msgstr "Tiến trình tải lên « %s » đã tiếp tục lại.\n"
 
 #: src/fs/gnunet-download.c:216 src/fs/gnunet-publish.c:295
-#: src/fs/gnunet-search.c:212 src/fs/gnunet-unindex.c:107
+#: src/fs/gnunet-search.c:215 src/fs/gnunet-unindex.c:107
 #, fuzzy, c-format
 msgid "Unexpected status: %d\n"
 msgstr "Gặp sự kiện bất thường: %d\n"
@@ -3393,12 +3388,12 @@ msgid "Target filename must be specified.\n"
 msgstr ""
 
 #: src/fs/gnunet-download.c:291 src/fs/gnunet-publish.c:872
-#: src/fs/gnunet-search.c:270 src/fs/gnunet-unindex.c:139
+#: src/fs/gnunet-search.c:273 src/fs/gnunet-unindex.c:139
 #, fuzzy, c-format
 msgid "Could not initialize `%s' subsystem.\n"
 msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
 
-#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:312
+#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:315
 #, fuzzy
 msgid "set the desired LEVEL of receiver-anonymity"
 msgstr "đặt CẤP mong muốn của tình trạng nặc danh của người gửi"
@@ -3407,7 +3402,7 @@ msgstr "đặt CẤP mong muốn của tình trạng nặc danh của 
người g
 msgid "delete incomplete downloads (when aborted with CTRL-C)"
 msgstr "xoá việc tải về không hoàn thành (khi hủy bở dùng CTRL-C)"
 
-#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:316
+#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:319
 msgid "only search the local peer (no P2P network search)"
 msgstr ""
 
@@ -3435,6 +3430,15 @@ msgid ""
 "chk/...)"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:119
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:130
+#, 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 ""
@@ -3451,15 +3455,6 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:119
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:130
-#, 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:231
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3550,7 +3545,7 @@ msgstr ""
 
 #: src/fs/gnunet-publish.c:687
 #, fuzzy
-msgid "Internal error scanning directory.\n"
+msgid "Error scanning directory.\n"
 msgstr "=\tLỗi đọc thư mục.\n"
 
 #: src/fs/gnunet-publish.c:715
@@ -3595,6 +3590,11 @@ msgstr "Tùy chọn « %s » cần thiết khi dùng tùy chọn « %s 
».\n"
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr "Tùy chọn « %s » không có nghĩa khi không có tùy chọn « %s ».\n"
 
+#: src/fs/gnunet-publish.c:911
+#, fuzzy
+msgid "enable adding the creation time to the metadata of the uploaded file"
+msgstr "tắt thêm giờ tạo vào siêu dữ liệu của tập tin đã tải lên"
+
 #: src/fs/gnunet-publish.c:916
 msgid ""
 "print list of extracted keywords that would be used, but do not perform "
@@ -3667,34 +3667,34 @@ msgstr ""
 msgid "Failed to write directory with search results to `%s'\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:204
+#: src/fs/gnunet-search.c:207
 #, fuzzy, c-format
 msgid "Error searching: %s.\n"
 msgstr "Gặp lỗi khi tải xuống: %s\n"
 
-#: src/fs/gnunet-search.c:260
+#: src/fs/gnunet-search.c:263
 #, fuzzy
 msgid "Could not create keyword URI from arguments.\n"
 msgstr "Không thể tạo miền tên.\n"
 
-#: src/fs/gnunet-search.c:284
+#: src/fs/gnunet-search.c:287
 #, fuzzy
 msgid "Could not start searching.\n"
 msgstr "Không thể tạo miền tên.\n"
 
-#: src/fs/gnunet-search.c:321
+#: src/fs/gnunet-search.c:324
 msgid "write search results to file starting with PREFIX"
 msgstr ""
 
-#: src/fs/gnunet-search.c:326
+#: src/fs/gnunet-search.c:329
 msgid "automatically terminate search after DELAY"
 msgstr ""
 
-#: src/fs/gnunet-search.c:332
+#: src/fs/gnunet-search.c:335
 msgid "automatically terminate search after VALUE results are found"
 msgstr ""
 
-#: src/fs/gnunet-search.c:348
+#: src/fs/gnunet-search.c:351
 #, fuzzy
 msgid "Search GNUnet for files that were published on GNUnet"
 msgstr "Không hiển thị kết quả tìm kiếm cho tập tin được chúng ta tải lên"
@@ -4116,40 +4116,40 @@ msgstr ""
 msgid "GNUnet HTTP server to create business cards"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:203
+#: src/gns/gnunet-dns2gns.c:214
 #, fuzzy
 msgid "Failed to pack DNS response into UDP packet!\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
-#: src/gns/gnunet-dns2gns.c:405
+#: src/gns/gnunet-dns2gns.c:416
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:421
+#: src/gns/gnunet-dns2gns.c:432
 #, fuzzy, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr "Nhận yêu cầu định tuyến\n"
 
-#: src/gns/gnunet-dns2gns.c:429
+#: src/gns/gnunet-dns2gns.c:440
 #, fuzzy, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr "Nhận yêu cầu định tuyến\n"
 
-#: src/gns/gnunet-dns2gns.c:588
+#: src/gns/gnunet-dns2gns.c:600
 #, fuzzy
 msgid "No DNS server specified!\n"
 msgstr "Chưa ghi rõ từ khoá.\n"
 
-#: src/gns/gnunet-dns2gns.c:688
+#: src/gns/gnunet-dns2gns.c:748
 msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:693
+#: src/gns/gnunet-dns2gns.c:753
 msgid "UDP port to listen on for inbound DNS requests; default: 2853"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:710
+#: src/gns/gnunet-dns2gns.c:770
 msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
 msgstr ""
 
@@ -4165,6 +4165,29 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:199
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:233
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:238
+#, 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:242
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:258
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "Bản ghi lỗi GNUnet"
+
 #: src/gns/gnunet-gns-helper-service-w32.c:602
 msgid "Not ready to process requests, lacking ego data\n"
 msgstr ""
@@ -4199,130 +4222,107 @@ msgstr ""
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr "%s bị lỗi tại %s:%d: « %s »\n"
 
-#: src/gns/gnunet-gns-proxy.c:980
+#: src/gns/gnunet-gns-proxy.c:989
 #, fuzzy, c-format
 msgid "Unsupported CURL TLS backend %d\n"
 msgstr "Lệnh không được hỗ trợ « %s ». Đang hủy bỏ.\n"
 
-#: src/gns/gnunet-gns-proxy.c:1005
+#: src/gns/gnunet-gns-proxy.c:1014
 #, fuzzy, c-format
 msgid "Failed to fetch CN from cert: %s\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
-#: src/gns/gnunet-gns-proxy.c:1026
+#: src/gns/gnunet-gns-proxy.c:1035
 #, fuzzy, c-format
 msgid "Failed to initialize DANE: %s\n"
 msgstr "Không thể sơ khởi SQLite: %s.\n"
 
-#: src/gns/gnunet-gns-proxy.c:1041
+#: src/gns/gnunet-gns-proxy.c:1050
 #, fuzzy, c-format
 msgid "Failed to parse DANE record: %s\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
-#: src/gns/gnunet-gns-proxy.c:1056
+#: src/gns/gnunet-gns-proxy.c:1065
 #, fuzzy, c-format
 msgid "Failed to verify TLS connection using DANE: %s\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
 
-#: src/gns/gnunet-gns-proxy.c:1066
+#: src/gns/gnunet-gns-proxy.c:1075
 #, c-format
 msgid "Failed DANE verification failed with GnuTLS verify status code: %u\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1090
+#: src/gns/gnunet-gns-proxy.c:1099
 #, c-format
 msgid "TLS certificate subject name (%s) does not match `%s': %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1221
+#: src/gns/gnunet-gns-proxy.c:1230
 #, c-format
 msgid "Cookie domain `%s' supplied by server is invalid\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2121
+#: src/gns/gnunet-gns-proxy.c:2131
 #, fuzzy, c-format
 msgid "Unsupported HTTP method `%s'\n"
 msgstr "Lệnh không được hỗ trợ « %s ». Đang hủy bỏ.\n"
 
-#: src/gns/gnunet-gns-proxy.c:2642
+#: src/gns/gnunet-gns-proxy.c:2652
 #, fuzzy, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "Không thể tạo tài khoản người dùng:"
 
-#: src/gns/gnunet-gns-proxy.c:2674
+#: src/gns/gnunet-gns-proxy.c:2684
 #, fuzzy, c-format
 msgid "Unable to import certificate from `%s'\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
 
-#: src/gns/gnunet-gns-proxy.c:2875
+#: src/gns/gnunet-gns-proxy.c:2885
 #, fuzzy, c-format
 msgid "Failed to start HTTPS server for `%s'\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/gns/gnunet-gns-proxy.c:2897 src/rest/gnunet-rest-server.c:658
+#: src/gns/gnunet-gns-proxy.c:2907 src/rest/gnunet-rest-server.c:668
 #, fuzzy
 msgid "Failed to pass client to MHD\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3233
+#: src/gns/gnunet-gns-proxy.c:3243
 #, fuzzy, c-format
 msgid "Unsupported socks version %d\n"
 msgstr "Lệnh không được hỗ trợ « %s ». Đang hủy bỏ.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3262
+#: src/gns/gnunet-gns-proxy.c:3272
 #, fuzzy, c-format
 msgid "Unsupported socks command %d\n"
 msgstr "Lệnh không được hỗ trợ « %s ». Đang hủy bỏ.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3345
+#: src/gns/gnunet-gns-proxy.c:3355
 #, fuzzy, c-format
 msgid "Unsupported socks address type %d\n"
 msgstr "Lệnh không được hỗ trợ « %s ». Đang hủy bỏ.\n"
 
-#: src/gns/gnunet-gns-proxy.c:3635
+#: src/gns/gnunet-gns-proxy.c:3693
 #, fuzzy, c-format
 msgid "Failed to load X.509 key and certificate from `%s'\n"
 msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 
-#: src/gns/gnunet-gns-proxy.c:3763
+#: src/gns/gnunet-gns-proxy.c:3821
 msgid "listen on specified port (default: 7777)"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3768
+#: src/gns/gnunet-gns-proxy.c:3826
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3772
+#: src/gns/gnunet-gns-proxy.c:3830
 msgid "disable use of IPv6"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3798
+#: src/gns/gnunet-gns-proxy.c:3856
 msgid "GNUnet GNS proxy"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:199
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:233
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:238
-#, 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:242
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:258
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "Bản ghi lỗi GNUnet"
-
 #: src/gns/gnunet-service-gns.c:506
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4334,8 +4334,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:561
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #: src/zonemaster/gnunet-service-zonemaster.c:875
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "Không thể kết nối tới %s:%u: %s\n"
@@ -4429,6 +4429,11 @@ msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 msgid "Unable to parse BOX record string `%s'\n"
 msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 
+#: src/gns/plugin_rest_gns.c:452
+#, fuzzy
+msgid "Gns REST API initialized\n"
+msgstr "Lỗi sơ khởi lõi.\n"
+
 #: src/gnsrecord/plugin_gnsrecord_dns.c:359
 #, fuzzy, c-format
 msgid "Unable to parse IPv4 address `%s'\n"
@@ -4826,7 +4831,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:679
-#: src/transport/gnunet-service-transport.c:2814
+#: src/transport/gnunet-service-transport.c:2827
 #, 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"
@@ -4958,15 +4963,16 @@ msgstr "Không thể lưu tập tin cấu hình « %s »:"
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 
+#: src/identity/plugin_rest_identity.c:1297
+#, fuzzy
+msgid "Identity REST API initialized\n"
+msgstr "Lỗi sơ khởi lõi.\n"
+
 #: src/json/json.c:123
 #, fuzzy, c-format
 msgid "Failed to parse JSON in option `%s': %s (%s)\n"
 msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 
-#: src/multicast/gnunet-multicast.c:48 src/multicast/gnunet-multicast.c:72
-msgid "This command doesn't do anything yet."
-msgstr ""
-
 #: src/my/my.c:196 src/my/my.c:215
 #, fuzzy, c-format
 msgid "%s failed at %s:%d with error: %s\n"
@@ -5005,131 +5011,67 @@ msgstr "Đối số không hợp lệ cho « %s ».\n"
 #: src/namecache/gnunet-namecache.c:201
 #, fuzzy, c-format
 msgid "You must specify a name\n"
-msgstr "Phải ghi rõ tên hiệu\n"
-
-#: src/namecache/gnunet-namecache.c:232 src/namestore/gnunet-namestore.c:1575
-msgid "name of the record to add/delete/display"
-msgstr ""
-
-#: src/namecache/gnunet-namecache.c:238
-#, fuzzy
-msgid "spezifies the public key of the zone to look in"
-msgstr "xác định mức ưu tiên của nội dung"
-
-#: src/namecache/gnunet-namecache.c:250 src/namestore/gnunet-namestore.c:1632
-#, fuzzy
-msgid "GNUnet zone manipulation tool"
-msgstr "Cấu hình GNUnet"
-
-#: src/namecache/namecache_api.c:296
-msgid "Namecache failed to cache block"
-msgstr ""
-
-#: src/namecache/namecache_api.c:383
-#, fuzzy
-msgid "Error communicating with namecache service"
-msgstr "Cổng để liên lạc với giao diện người dùng GNUnet"
-
-#: src/namecache/plugin_namecache_flat.c:121
-#: src/namecache/plugin_namecache_flat.c:255
-#: src/namestore/plugin_namestore_heap.c:148
-#: src/namestore/plugin_namestore_heap.c:395
-#: src/peerstore/plugin_peerstore_flat.c:379
-#: src/peerstore/plugin_peerstore_flat.c:538
-#, fuzzy, c-format
-msgid "Unable to initialize file: %s.\n"
-msgstr "Không thể sơ khởi SQLite: %s.\n"
-
-#: src/namecache/plugin_namecache_flat.c:132
-#: src/namestore/plugin_namestore_heap.c:159
-#: src/peerstore/plugin_peerstore_flat.c:394
-#, fuzzy, c-format
-msgid "Unable to get filesize: %s.\n"
-msgstr "Không thể tạo miền tên.\n"
-
-#: src/namecache/plugin_namecache_flat.c:151
-#: src/namestore/plugin_namestore_heap.c:172
-#: src/peerstore/plugin_peerstore_flat.c:406
-#, fuzzy, c-format
-msgid "Unable to read file: %s.\n"
-msgstr "Không thể tạo miền tên.\n"
-
-#: src/namecache/plugin_namecache_flat.c:410
-#, fuzzy
-msgid "flat plugin running\n"
-msgstr "kho dữ liệu sqlite"
-
-#: src/namecache/plugin_namecache_sqlite.c:183
-#: src/namecache/plugin_namecache_sqlite.c:197
-#: src/namestore/plugin_namestore_sqlite.c:219
-#: src/namestore/plugin_namestore_sqlite.c:230
-#, fuzzy, c-format
-msgid "Failed to setup database at `%s'\n"
-msgstr "Lỗi chạy %s: %s %d\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:549
-#, 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:576
-#, 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:597
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:629
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:689
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:777
-#, 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:796
-#, 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:832
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:841
-msgid "Domain name must not contain `+'\n"
-msgstr ""
+msgstr "Phải ghi rõ tên hiệu\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1071
-msgid "No ego configured for `fcfsd` subsystem\n"
+#: src/namecache/gnunet-namecache.c:232 src/namestore/gnunet-namestore.c:1575
+msgid "name of the record to add/delete/display"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1099
+#: src/namecache/gnunet-namecache.c:238
 #, fuzzy
-msgid "Failed to start HTTP server\n"
-msgstr "Lỗi bắt đầu thu thập.\n"
+msgid "spezifies the public key of the zone to look in"
+msgstr "xác định mức ưu tiên của nội dung"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1147
+#: src/namecache/gnunet-namecache.c:250 src/namestore/gnunet-namestore.c:1632
 #, fuzzy
-msgid "Failed to connect to identity\n"
-msgstr "Lỗi kết nối đến gnunetd.\n"
+msgid "GNUnet zone manipulation tool"
+msgstr "Cấu hình GNUnet"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1173
-msgid "name of the zone that is to be managed by FCFSD"
+#: src/namecache/namecache_api.c:296
+msgid "Namecache failed to cache block"
 msgstr ""
 
-#: src/namestore/gnunet-namestore-fcfsd.c:1192
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
+#: src/namecache/namecache_api.c:383
+#, fuzzy
+msgid "Error communicating with namecache service"
+msgstr "Cổng để liên lạc với giao diện người dùng GNUnet"
+
+#: src/namecache/plugin_namecache_flat.c:121
+#: src/namecache/plugin_namecache_flat.c:255
+#: src/namestore/plugin_namestore_heap.c:179
+#: src/namestore/plugin_namestore_heap.c:412
+#: src/peerstore/plugin_peerstore_flat.c:379
+#: src/peerstore/plugin_peerstore_flat.c:538
+#, fuzzy, c-format
+msgid "Unable to initialize file: %s.\n"
+msgstr "Không thể sơ khởi SQLite: %s.\n"
+
+#: src/namecache/plugin_namecache_flat.c:132
+#: src/namestore/plugin_namestore_heap.c:190
+#: src/peerstore/plugin_peerstore_flat.c:394
+#, fuzzy, c-format
+msgid "Unable to get filesize: %s.\n"
+msgstr "Không thể tạo miền tên.\n"
+
+#: src/namecache/plugin_namecache_flat.c:151
+#: src/namestore/plugin_namestore_heap.c:203
+#: src/peerstore/plugin_peerstore_flat.c:406
+#, fuzzy, c-format
+msgid "Unable to read file: %s.\n"
+msgstr "Không thể tạo miền tên.\n"
+
+#: src/namecache/plugin_namecache_flat.c:410
+#, fuzzy
+msgid "flat plugin running\n"
+msgstr "kho dữ liệu sqlite"
+
+#: src/namecache/plugin_namecache_sqlite.c:183
+#: src/namecache/plugin_namecache_sqlite.c:197
+#: src/namestore/plugin_namestore_sqlite.c:219
+#: src/namestore/plugin_namestore_sqlite.c:230
+#, fuzzy, c-format
+msgid "Failed to setup database at `%s'\n"
+msgstr "Lỗi chạy %s: %s %d\n"
 
 #: src/namestore/gnunet-namestore.c:341
 #, fuzzy, c-format
@@ -5338,6 +5280,70 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
+#: src/namestore/gnunet-namestore-fcfsd.c:549
+#, 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:576
+#, 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:597
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:629
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:689
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:777
+#, 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:796
+#, 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:832
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:841
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1071
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1099
+#, fuzzy
+msgid "Failed to start HTTP server\n"
+msgstr "Lỗi bắt đầu thu thập.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1147
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "Lỗi kết nối đến gnunetd.\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1173
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1192
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-service-namestore.c:900
 #, fuzzy, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5355,11 +5361,16 @@ msgstr ""
 msgid "Namestore failed to store record\n"
 msgstr ""
 
-#: src/namestore/plugin_namestore_heap.c:778
+#: src/namestore/plugin_namestore_heap.c:773
 #, fuzzy
 msgid "heap file database running\n"
 msgstr "kho dữ liệu sqlite"
 
+#: src/namestore/plugin_rest_namestore.c:1079
+#, fuzzy
+msgid "Namestore REST API initialized\n"
+msgstr "Lỗi sơ khởi lõi.\n"
+
 #: src/nat-auto/gnunet-nat-auto.c:193
 #, fuzzy
 msgid "Suggested configuration changes:\n"
@@ -5642,6 +5653,11 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
+#: src/nse/gnunet-nse.c:122
+#, 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:849
 #, fuzzy
 msgid "limit to the number of connections to NSE services, 0 for none"
@@ -5668,17 +5684,71 @@ msgstr ""
 msgid "Measure quality and performance of the NSE service."
 msgstr "Không thể truy cập đến dịch vụ"
 
-#: src/nse/gnunet-nse.c:122
-#, 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-service-nse.c:1534
 #: src/revocation/gnunet-service-revocation.c:843 src/util/gnunet-scrypt.c:276
 #, 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:178
+#, 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:313
+#, 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:334
+#: src/peerinfo/gnunet-service-peerinfo.c:365
+#, 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:449
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:492
+#, 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:659
+#, 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:667
+#, 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:1100
+#, 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:1438
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1451
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:220
+#, fuzzy
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+"\n"
+"Không nhận được đáp ứng từ gnunetd.\n"
+
 #: src/peerinfo-tool/gnunet-peerinfo.c:239
 #, fuzzy, c-format
 msgid "%sPeer `%s'\n"
@@ -5690,7 +5760,7 @@ msgid "\tExpires: %s \t %s\n"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:299
-#: src/rest-plugins/plugin_rest_peerinfo.c:501
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:501
 #, fuzzy, c-format
 msgid "Failure: Cannot convert address to string for peer `%s'\n"
 msgstr "Lỗi đóng kết đến cổng %s %d.\n"
@@ -5771,64 +5841,10 @@ msgstr "Đang nạp các truyền tải « %s »\n"
 msgid "Failed to load transport plugin for `%s'\n"
 msgstr "Không thể nạp phần bổ sung truyền tải « %s »\n"
 
-#: src/peerinfo/gnunet-service-peerinfo.c:178
-#, 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:313
-#, 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:334
-#: src/peerinfo/gnunet-service-peerinfo.c:365
-#, 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:449
-msgid "# peers known"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:492
-#, 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:659
-#, 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:667
-#, 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:1100
-#, 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:1438
-#, c-format
-msgid "Importing HELLOs from `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1451
-msgid "Skipping import of included HELLOs\n"
-msgstr ""
-
-#: src/peerinfo/peerinfo_api.c:220
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:796
 #, fuzzy
-msgid "Failed to receive response from `PEERINFO' service."
-msgstr ""
-"\n"
-"Không nhận được đáp ứng từ gnunetd.\n"
+msgid "Peerinfo REST API initialized\n"
+msgstr "Lỗi sơ khởi lõi.\n"
 
 #: src/peerstore/gnunet-peerstore.c:91
 msgid "peerstore"
@@ -5839,22 +5855,21 @@ msgstr ""
 msgid "Could not load database backend `%s'\n"
 msgstr "Không thể đọc danh sách bạn bè « %s »\n"
 
-#: src/peerstore/peerstore_api.c:532 src/peerstore/peerstore_api.c:581
+#: src/peerstore/peerstore_api.c:605 src/peerstore/peerstore_api.c:657
 #, fuzzy
 msgid "Unexpected iteration response, this should not happen.\n"
 msgstr "Định dạng kết xuất không rõ, điều này không nên xảy ra.\n"
 
-#: src/peerstore/peerstore_api.c:595
+#: src/peerstore/peerstore_api.c:671
 #, fuzzy
 msgid "Received a malformed response from service."
 msgstr "Nhận yêu cầu định tuyến\n"
 
-#: src/peerstore/peerstore_api.c:731
+#: src/peerstore/peerstore_api.c:807
 msgid "Received a watch result for a non existing watch.\n"
 msgstr ""
 
 #: src/peerstore/plugin_peerstore_sqlite.c:453
-#: src/psycstore/plugin_psycstore_sqlite.c:282
 #, fuzzy, c-format
 msgid ""
 "Error executing SQL query: %s\n"
@@ -5862,8 +5877,6 @@ msgid ""
 msgstr "Gặp lỗi khi tạo người dùng"
 
 #: src/peerstore/plugin_peerstore_sqlite.c:488
-#: src/psycstore/plugin_psycstore_mysql.c:250
-#: src/psycstore/plugin_psycstore_sqlite.c:259
 #, fuzzy, c-format
 msgid ""
 "Error preparing SQL query: %s\n"
@@ -5880,114 +5893,6 @@ msgstr "Không thể tạo miền tên.\n"
 msgid "PQprepare (`%s' as `%s') failed with error: %s\n"
 msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:249
-#, fuzzy
-msgid "Failed to store membership information!\n"
-msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:271
-#, fuzzy
-msgid "Failed to test membership!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:300
-#, fuzzy
-msgid "Dropping invalid fragment\n"
-msgstr "Đối số không hợp lệ cho « %s ».\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:311
-#, fuzzy
-msgid "Failed to store fragment\n"
-msgstr "Lỗi bắt đầu thu thập.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:368
-#, fuzzy
-msgid "Failed to get fragment!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:434
-#, fuzzy
-msgid "Failed to get message!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:464
-#, fuzzy
-msgid "Failed to get message fragment!\n"
-msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:494
-#, fuzzy
-msgid "Failed to get master counters!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:675
-#, fuzzy, c-format
-msgid "Failed to begin modifying state: %d\n"
-msgstr "Lỗi bắt đầu thu thập.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:685
-#, fuzzy, c-format
-msgid "Failed to modify state: %d\n"
-msgstr "Lỗi bắt đầu thu thập.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:693
-#, fuzzy
-msgid "Failed to end modifying state!\n"
-msgstr "Lỗi bắt đầu thu thập.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:730
-#, fuzzy
-msgid "Tried to set invalid state variable name!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:744
-#, fuzzy
-msgid "Failed to begin synchronizing state!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:761
-#, fuzzy
-msgid "Failed to end synchronizing state!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:779
-#: src/psycstore/gnunet-service-psycstore.c:795
-#, fuzzy
-msgid "Failed to reset state!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:824
-#: src/psycstore/gnunet-service-psycstore.c:881
-#, fuzzy
-msgid "Tried to get invalid state variable name!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:851
-#: src/psycstore/gnunet-service-psycstore.c:896
-#, fuzzy
-msgid "Failed to get state variable!\n"
-msgstr "Lỗi lấy thông kê về truyền tải.\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:281
-#, fuzzy
-msgid "Unable to initialize Mysql.\n"
-msgstr "Không thể sơ khởi SQLite: %s.\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:291
-#, fuzzy, c-format
-msgid "Failed to run SQL statement `%s'\n"
-msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
-
-#: src/psycstore/plugin_psycstore_sqlite.c:61
-#, fuzzy, c-format
-msgid "`%s' failed at %s:%d with error: %s (%d)\n"
-msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
-
-#: src/psycstore/plugin_psycstore_sqlite.c:1924
-#, fuzzy
-msgid "SQLite database running\n"
-msgstr "kho dữ liệu sqlite"
-
 #: src/pt/gnunet-daemon-pt.c:423
 msgid "Failed to pack DNS request.  Dropping.\n"
 msgstr ""
@@ -6051,61 +5956,80 @@ msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:467
+#: src/reclaim/gnunet-reclaim.c:495
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "Bị từ chối đặt tùy chọn « %s » trong phần « %s » thành « %s ».\n"
 
-#: src/reclaim/gnunet-reclaim.c:475
+#: src/reclaim/gnunet-reclaim.c:501
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:483
+#: src/reclaim/gnunet-reclaim.c:507
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "đặt tên hiệu cần dùng (cần thiết)"
 
-#: src/reclaim/gnunet-reclaim.c:506
-msgid "Add attribute"
+#: src/reclaim/gnunet-reclaim.c:524
+msgid "Add an attribute NAME"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:512
-msgid "Attribute value"
+#: src/reclaim/gnunet-reclaim.c:527
+msgid "Add an attribute with ID"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:517
-msgid "Ego"
+#: src/reclaim/gnunet-reclaim.c:530
+msgid "The attribute VALUE"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:522
-msgid "Audience (relying party)"
+#: src/reclaim/gnunet-reclaim.c:533
+#, fuzzy
+msgid "The EGO to use"
+msgstr "kích cỡ tin nhắn"
+
+#: src/reclaim/gnunet-reclaim.c:535
+msgid "Specify the relying party for issue"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:526
-msgid "List attributes for Ego"
+#: src/reclaim/gnunet-reclaim.c:538
+msgid "List attributes for EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:531
-msgid "Issue a ticket"
+#: src/reclaim/gnunet-reclaim.c:542
+msgid "Issue a ticket for a set of attributes separated by comma"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:536
+#: src/reclaim/gnunet-reclaim.c:545
 msgid "Consume a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:541
+#: src/reclaim/gnunet-reclaim.c:548
 msgid "Revoke a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:546
+#: src/reclaim/gnunet-reclaim.c:551
 msgid "Type of attribute"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:551
+#: src/reclaim/gnunet-reclaim.c:553
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:556
 msgid "Expiration interval of the attribute"
 msgstr ""
 
+#: src/reclaim/gnunet-reclaim.c:560
+msgid "re:claimID command line tool"
+msgstr ""
+
+#: src/reclaim/plugin_rest_openid_connect.c:2051
+#: src/reclaim/plugin_rest_reclaim.c:1018
+#, fuzzy
+msgid "Identity Provider REST API initialized\n"
+msgstr "Lỗi sơ khởi lõi.\n"
+
 #: src/reclaim/reclaim_api.c:436
 #, fuzzy
 msgid "failed to store record\n"
@@ -6200,51 +6124,20 @@ msgstr "« %s » không phải là một tập tin.\n"
 msgid "Search string `%s' is too long!\n"
 msgstr "« %s » không phải là một tập tin.\n"
 
-#: src/rest-plugins/plugin_rest_copying.c:209
-#, fuzzy
-msgid "COPYING REST API initialized\n"
-msgstr "Lỗi sơ khởi lõi.\n"
-
-#: src/rest-plugins/plugin_rest_credential.c:1128
-#, fuzzy
-msgid "GNS REST API initialized\n"
-msgstr "Lỗi sơ khởi lõi.\n"
-
-#: src/rest-plugins/plugin_rest_gns.c:452
-#, fuzzy
-msgid "Gns REST API initialized\n"
-msgstr "Lỗi sơ khởi lõi.\n"
-
-#: src/rest-plugins/plugin_rest_identity.c:1297
-#, fuzzy
-msgid "Identity REST API initialized\n"
-msgstr "Lỗi sơ khởi lõi.\n"
-
-#: src/rest-plugins/plugin_rest_namestore.c:1079
-#, fuzzy
-msgid "Namestore REST API initialized\n"
-msgstr "Lỗi sơ khởi lõi.\n"
-
-#: src/rest-plugins/plugin_rest_openid_connect.c:2245
-#: src/rest-plugins/plugin_rest_reclaim.c:1079
-#, fuzzy
-msgid "Identity Provider REST API initialized\n"
-msgstr "Lỗi sơ khởi lõi.\n"
-
-#: src/rest-plugins/plugin_rest_peerinfo.c:796
-#, fuzzy
-msgid "Peerinfo REST API initialized\n"
-msgstr "Lỗi sơ khởi lõi.\n"
-
-#: src/rest/gnunet-rest-server.c:927
+#: src/rest/gnunet-rest-server.c:986
 msgid "listen on specified port (default: 7776)"
 msgstr ""
 
-#: src/rest/gnunet-rest-server.c:944
+#: src/rest/gnunet-rest-server.c:1003
 #, fuzzy
 msgid "GNUnet REST server"
 msgstr "Bản ghi lỗi GNUnet"
 
+#: src/rest/plugin_rest_copying.c:209
+#, fuzzy
+msgid "COPYING REST API initialized\n"
+msgstr "Lỗi sơ khởi lõi.\n"
+
 #: src/revocation/gnunet-revocation.c:129
 #, fuzzy, c-format
 msgid "Key `%s' is valid\n"
@@ -6306,7 +6199,7 @@ msgstr ""
 msgid "Revocation certificate not ready, calculating proof of work\n"
 msgstr ""
 
-#: src/revocation/gnunet-revocation.c:437 src/social/gnunet-social.c:1180
+#: src/revocation/gnunet-revocation.c:437
 #, fuzzy, c-format
 msgid "Public key `%s' malformed\n"
 msgstr "Đối số không hợp lệ cho « %s ».\n"
@@ -6383,37 +6276,37 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "« %s »: Không thể kết nối.\n"
 
-#: src/rps/gnunet-rps-profiler.c:2959
+#: src/rps/gnunet-rps.c:260
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:264
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:268
+msgid "Get peers from biased stream"
+msgstr ""
+
+#: src/rps/gnunet-rps-profiler.c:3088
 msgid "duration of the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2965
+#: src/rps/gnunet-rps-profiler.c:3093
 #, fuzzy
 msgid "timeout for the profiling"
 msgstr "xác định mức ưu tiên của nội dung"
 
-#: src/rps/gnunet-rps-profiler.c:2971
+#: src/rps/gnunet-rps-profiler.c:3098
 #, fuzzy
 msgid "number of PeerIDs to request"
 msgstr "số lần lặp lại"
 
-#: src/rps/gnunet-rps-profiler.c:2986
+#: src/rps/gnunet-rps-profiler.c:3114
 #, fuzzy
 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:260
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:264
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:268
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/scalarproduct/gnunet-scalarproduct.c:220
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6469,10 +6362,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1401
 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1345
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr " Không kết nối được (lỗi ?)\n"
@@ -6497,7 +6390,7 @@ msgstr ""
 msgid "also profile decryption"
 msgstr ""
 
-#: src/set/gnunet-service-set.c:2005
+#: src/set/gnunet-service-set.c:2008
 #, fuzzy
 msgid "Could not connect to CADET service\n"
 msgstr "Không thể kết nối tới %s:%u: %s\n"
@@ -6544,132 +6437,6 @@ msgstr ""
 msgid "element size"
 msgstr ""
 
-#: src/social/gnunet-social.c:1166
-#, fuzzy
-msgid "--place missing or invalid.\n"
-msgstr "Đối số không hợp lệ cho « %s ».\n"
-
-#: src/social/gnunet-social.c:1217
-msgid "assign --name in state to --data"
-msgstr ""
-
-#: src/social/gnunet-social.c:1222
-msgid "say good-bye and leave somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1227
-msgid "create a place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1232
-msgid "destroy a place we were hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1237
-msgid "enter somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1243
-msgid "find state matching name prefix"
-msgstr ""
-
-#: src/social/gnunet-social.c:1248
-msgid "replay history of messages up to the given --limit"
-msgstr ""
-
-#: src/social/gnunet-social.c:1253
-msgid "reconnect to a previously created place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1258
-msgid "publish something to a place we are hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1263
-msgid "reconnect to a previously entered place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1268
-msgid "search for state matching exact name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1273
-msgid "submit something to somebody's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1278
-msgid "list of egos and subscribed places"
-msgstr ""
-
-#: src/social/gnunet-social.c:1283
-msgid "extract and replay history between message IDs --start and --until"
-msgstr ""
-
-#: src/social/gnunet-social.c:1292
-msgid "application ID to use when connecting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1298
-msgid "message body or state value"
-msgstr ""
-
-#: src/social/gnunet-social.c:1304
-#, fuzzy
-msgid "name or public key of ego"
-msgstr "Đối số không hợp lệ cho « %s ».\n"
-
-#: src/social/gnunet-social.c:1309
-#, fuzzy
-msgid "wait for incoming messages"
-msgstr "Lỗi gửi tin nhẳn.\n"
-
-#: src/social/gnunet-social.c:1315
-msgid "GNS name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1321
-msgid "peer ID for --guest-enter"
-msgstr ""
-
-#: src/social/gnunet-social.c:1327
-msgid "name (key) to query from state"
-msgstr ""
-
-#: src/social/gnunet-social.c:1333
-msgid "method name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1339
-#, fuzzy
-msgid "number of messages to replay from history"
-msgstr "số tin nhắn cần dùng mỗi lần lặp"
-
-#: src/social/gnunet-social.c:1345
-msgid "key address of place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1351
-msgid "start message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1356
-msgid "respond to entry requests by admitting all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1362
-msgid "end message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1367
-msgid "respond to entry requests by refusing all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1377
-msgid ""
-"gnunet-social - Interact with the social service: enter/leave, send/receive "
-"messages, access history and state.\n"
-msgstr ""
-
 #: src/sq/sq.c:54
 #, c-format
 msgid "Failure to bind %u-th SQL parameter\n"
@@ -6833,7 +6600,7 @@ msgid "Invalid argument `%s'; expecting unsigned int\n"
 msgstr "Đối số không hợp lệ cho « %s ».\n"
 
 #: src/testbed/generate-underlay-topology.c:342
-#: src/testbed/gnunet-testbed-profiler.c:283
+#: src/testbed/gnunet-testbed-profiler.c:282
 msgid "create COUNT number of peers"
 msgstr ""
 
@@ -6942,17 +6709,6 @@ msgstr "« %s » đang tắt.\n"
 msgid "%.s Unknown result code."
 msgstr ""
 
-#: src/testbed/gnunet-testbed-profiler.c:289
-msgid "tolerate COUNT number of continious timeout failures"
-msgstr ""
-
-#: src/testbed/gnunet-testbed-profiler.c:294
-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:118
 #, fuzzy
 msgid "Waiting for child to exit.\n"
@@ -6963,6 +6719,17 @@ msgstr "Đang đợi các đồng đẳng kết nối"
 msgid "Spawning process `%s'\n"
 msgstr "Đang bắt đầu tài về « %s »\n"
 
+#: src/testbed/gnunet-testbed-profiler.c:287
+msgid "tolerate COUNT number of continious timeout failures"
+msgstr ""
+
+#: src/testbed/gnunet-testbed-profiler.c:291
+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:410
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -7139,48 +6906,48 @@ msgstr ""
 msgid "Key number %u does not exist\n"
 msgstr "đặt số trình nền cần khởi chạy"
 
-#: src/testing/testing.c:1159
+#: src/testing/testing.c:1161
 #, c-format
 msgid ""
 "You attempted to create a testbed with more than %u hosts.  Please "
 "precompute more hostkeys first.\n"
 msgstr ""
 
-#: src/testing/testing.c:1168
+#: src/testing/testing.c:1170
 #, fuzzy, c-format
 msgid "Failed to initialize hostkey for peer %u\n"
 msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
 
-#: src/testing/testing.c:1178
+#: src/testing/testing.c:1180
 msgid "PRIVATE_KEY option in PEER section missing in configuration\n"
 msgstr ""
 
-#: src/testing/testing.c:1191
+#: src/testing/testing.c:1193
 #, fuzzy
 msgid "Failed to create configuration for peer (not enough free ports?)\n"
 msgstr "Không thể truy cập đến thông tin về không gian tên.\n"
 
-#: src/testing/testing.c:1205
+#: src/testing/testing.c:1207
 #, fuzzy, c-format
 msgid "Cannot open hostkey file `%s': %s\n"
 msgstr "Không thể đọc danh sách bạn bè « %s »\n"
 
-#: src/testing/testing.c:1217
+#: src/testing/testing.c:1219
 #, fuzzy, c-format
 msgid "Failed to write hostkey file for peer %u: %s\n"
 msgstr "Lỗi tạo thư mục tạm thời."
 
-#: src/testing/testing.c:1242
+#: src/testing/testing.c:1244
 #, fuzzy, c-format
 msgid "Failed to write configuration file `%s' for peer %u: %s\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
 
-#: src/testing/testing.c:1344
+#: src/testing/testing.c:1346
 #, fuzzy, c-format
 msgid "Failed to start `%s': %s\n"
 msgstr "Lỗi chạy %s: %s %d\n"
 
-#: src/testing/testing.c:1647
+#: src/testing/testing.c:1649
 #, fuzzy, c-format
 msgid "Failed to load configuration from %s\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
@@ -7265,19 +7032,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:2329
-#: src/transport/gnunet-communicator-udp.c:2883
-#: src/transport/gnunet-service-tng.c:4679
-#: src/transport/gnunet-service-transport.c:2782
+#: src/transport/gnunet-communicator-tcp.c:2334
+#: src/transport/gnunet-communicator-udp.c:2938
+#: src/transport/gnunet-service-tng.c:7070
+#: src/transport/gnunet-service-transport.c:2795
 #, 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:2393
+#: src/transport/gnunet-communicator-tcp.c:2398
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2954
+#: src/transport/gnunet-communicator-udp.c:3016
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7287,64 +7054,64 @@ msgid ""
 "Maximum number of UNIX connections exceeded, dropping incoming message\n"
 msgstr "tăng sổ tối đa các kết nối TCP/IP"
 
-#: src/transport/gnunet-communicator-unix.c:1073
+#: src/transport/gnunet-communicator-unix.c:1074
 #: src/transport/plugin_transport_unix.c:1403
 #, fuzzy, c-format
 msgid "Cannot create path to `%s'\n"
 msgstr "Không thể tạo miền tên.\n"
 
-#: src/transport/gnunet-communicator-unix.c:1162
+#: src/transport/gnunet-communicator-unix.c:1163
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:448
+#: src/transport/gnunet-service-transport_ats.c:141
+msgid "# Addresses given to ATS"
+msgstr ""
+
+#: src/transport/gnunet-service-transport.c:452
 #, 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:817
+#: src/transport/gnunet-service-transport.c:826
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1550
+#: src/transport/gnunet-service-transport.c:1563
 #, 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:1710
+#: src/transport/gnunet-service-transport.c:1723
 #, fuzzy
 msgid "# bytes total received"
 msgstr "# tổng số nội dung lỗ hổng được nhận"
 
-#: src/transport/gnunet-service-transport.c:1807
+#: src/transport/gnunet-service-transport.c:1820
 #, fuzzy
 msgid "# bytes payload received"
 msgstr "# các byte đã giải mã"
 
-#: src/transport/gnunet-service-transport.c:2124
-#: src/transport/gnunet-service-transport.c:2596
+#: src/transport/gnunet-service-transport.c:2137
+#: src/transport/gnunet-service-transport.c:2609
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2600
+#: src/transport/gnunet-service-transport.c:2613
 #, 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:2708
+#: src/transport/gnunet-service-transport.c:2721
 #, 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:2717
+#: src/transport/gnunet-service-transport.c:2730
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:141
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7354,215 +7121,215 @@ msgstr ""
 msgid "# session creation failed"
 msgstr "# các khoá phiên chạy được chấp nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1052
+#: src/transport/gnunet-service-transport_neighbours.c:1053
 #, fuzzy
 msgid "# DISCONNECT messages sent"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1175
+#: src/transport/gnunet-service-transport_neighbours.c:1176
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1323
-#: src/transport/gnunet-service-transport_neighbours.c:1784
+#: src/transport/gnunet-service-transport_neighbours.c:1324
+#: src/transport/gnunet-service-transport_neighbours.c:1785
 #, fuzzy
 msgid "# bytes in message queue for other peers"
 msgstr "# các byte thông báo gửi đi bị loại bỏ"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1328
+#: src/transport/gnunet-service-transport_neighbours.c:1329
 #, fuzzy
 msgid "# messages transmitted to other peers"
 msgstr "# các byte kiểu %d được gửi "
 
-#: src/transport/gnunet-service-transport_neighbours.c:1334
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 #, fuzzy
 msgid "# transmission failures for messages to other peers"
 msgstr "# các byte thông báo gửi đi bị loại bỏ"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1394
+#: src/transport/gnunet-service-transport_neighbours.c:1395
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1478
+#: src/transport/gnunet-service-transport_neighbours.c:1479
 msgid "# KEEPALIVES sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1514
+#: src/transport/gnunet-service-transport_neighbours.c:1515
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1522
+#: src/transport/gnunet-service-transport_neighbours.c:1523
 #, fuzzy
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1532
+#: src/transport/gnunet-service-transport_neighbours.c:1533
 msgid "# KEEPALIVES received in good order"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1577
+#: src/transport/gnunet-service-transport_neighbours.c:1578
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (not connected)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1586
+#: src/transport/gnunet-service-transport_neighbours.c:1587
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (not expected)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1594
+#: src/transport/gnunet-service-transport_neighbours.c:1595
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (address changed)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1603
+#: src/transport/gnunet-service-transport_neighbours.c:1604
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (no nonce)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs discarded (bad nonce)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1614
+#: src/transport/gnunet-service-transport_neighbours.c:1615
 #, fuzzy
 msgid "# KEEPALIVE_RESPONSEs received (OK)"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1681
+#: src/transport/gnunet-service-transport_neighbours.c:1682
 #, fuzzy
 msgid "# messages discarded due to lack of neighbour record"
 msgstr "# các thông báo được chắp liền"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1715
+#: src/transport/gnunet-service-transport_neighbours.c:1716
 #, fuzzy
 msgid "# bandwidth quota violations by other peers"
 msgstr "theo dõi gnunetd sử dụng dải thông"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1730
+#: src/transport/gnunet-service-transport_neighbours.c:1731
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1853
+#: src/transport/gnunet-service-transport_neighbours.c:1854
 #, fuzzy, c-format
 msgid "Failed to send SYN message to peer `%s'\n"
 msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1873
+#: src/transport/gnunet-service-transport_neighbours.c:1874
 #, fuzzy
 msgid "# Failed attempts to switch addresses (failed to send SYN CONT)"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1912
+#: src/transport/gnunet-service-transport_neighbours.c:1913
 #, fuzzy
 msgid "# SYN messages sent"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1929
+#: src/transport/gnunet-service-transport_neighbours.c:1930
 #, fuzzy, c-format
 msgid "Failed to transmit SYN message to %s\n"
 msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1959
+#: src/transport/gnunet-service-transport_neighbours.c:1960
 #, fuzzy
 msgid "# Failed attempts to switch addresses (failed to send SYN)"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2027
+#: src/transport/gnunet-service-transport_neighbours.c:2028
 #, fuzzy, c-format
 msgid "Failed to send SYN_ACK message to peer `%s' using address `%s'\n"
 msgstr "Lỗi kết nối đến gnunetd.\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2081
+#: src/transport/gnunet-service-transport_neighbours.c:2082
 #, fuzzy
 msgid "# SYN_ACK messages sent"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2098
+#: src/transport/gnunet-service-transport_neighbours.c:2099
 #, fuzzy, c-format
 msgid "Failed to transmit SYN_ACK message to %s\n"
 msgstr "Lỗi sơ khởi dịch vụ « %s ».\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2261
+#: src/transport/gnunet-service-transport_neighbours.c:2262
 #, fuzzy
 msgid "# SYN messages received"
 msgstr "# các thông báo PING được tạo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2266
+#: src/transport/gnunet-service-transport_neighbours.c:2267
 #, c-format
 msgid "SYN request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2653
+#: src/transport/gnunet-service-transport_neighbours.c:2654
 msgid "# Attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3138
+#: src/transport/gnunet-service-transport_neighbours.c:3139
 #, fuzzy
 msgid "# SYN_ACK messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3146
+#: src/transport/gnunet-service-transport_neighbours.c:3147
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (no peer)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3164
-#: src/transport/gnunet-service-transport_neighbours.c:3188
+#: src/transport/gnunet-service-transport_neighbours.c:3165
+#: src/transport/gnunet-service-transport_neighbours.c:3189
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (not ready)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3200
+#: src/transport/gnunet-service-transport_neighbours.c:3201
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (waiting on ATS)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3225
+#: src/transport/gnunet-service-transport_neighbours.c:3226
 msgid "# Successful attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3238
+#: src/transport/gnunet-service-transport_neighbours.c:3239
 #, fuzzy
 msgid "# unexpected SYN_ACK messages (disconnecting)"
 msgstr "gửi ĐẾM thông báo"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3411
+#: src/transport/gnunet-service-transport_neighbours.c:3412
 #, fuzzy
 msgid "# ACK messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3447
+#: src/transport/gnunet-service-transport_neighbours.c:3448
 #, fuzzy
 msgid "# unexpected ACK messages"
 msgstr "# các thông báo PONG đã mật mã được gửi"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3535
+#: src/transport/gnunet-service-transport_neighbours.c:3536
 #, fuzzy
 msgid "# quota messages ignored (malformed)"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3542
+#: src/transport/gnunet-service-transport_neighbours.c:3543
 #, fuzzy
 msgid "# QUOTA messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3582
+#: src/transport/gnunet-service-transport_neighbours.c:3583
 msgid "# disconnect messages ignored (malformed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3589
+#: src/transport/gnunet-service-transport_neighbours.c:3590
 #, fuzzy
 msgid "# DISCONNECT messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/gnunet-service-transport_neighbours.c:3600
+#: src/transport/gnunet-service-transport_neighbours.c:3601
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3735
+#: src/transport/gnunet-service-transport_neighbours.c:3736
 #, fuzzy
 msgid "# disconnected from peer upon explicit request"
 msgstr "# các yêu cầu lỗ hổng bị bỏ do trọng tải"
@@ -7598,7 +7365,7 @@ msgstr ""
 #: src/transport/gnunet-service-transport_validation.c:491
 #: src/transport/gnunet-service-transport_validation.c:677
 #: src/transport/gnunet-service-transport_validation.c:997
-#: src/transport/gnunet-service-transport_validation.c:1609
+#: src/transport/gnunet-service-transport_validation.c:1610
 #, fuzzy
 msgid "# validations running"
 msgstr "kho dữ liệu sqlite"
@@ -7624,105 +7391,65 @@ msgstr ""
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1123
+#: src/transport/gnunet-service-transport_validation.c:1124
 #, fuzzy
 msgid "# PING message for different peer received"
 msgstr "# các thông báo PING được tạo"
 
-#: src/transport/gnunet-service-transport_validation.c:1174
+#: src/transport/gnunet-service-transport_validation.c:1175
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1187
+#: src/transport/gnunet-service-transport_validation.c:1188
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1190
+#: src/transport/gnunet-service-transport_validation.c:1191
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1198
+#: src/transport/gnunet-service-transport_validation.c:1199
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1211
+#: src/transport/gnunet-service-transport_validation.c:1212
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1266
+#: src/transport/gnunet-service-transport_validation.c:1267
 #, fuzzy, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr "Không thể tạo miền tên.\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1317
-msgid "# PONGs unicast via reliable transport"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1326
-msgid "# PONGs multicast to all available addresses"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1499
-msgid "# PONGs dropped, no matching pending validation"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1517
-msgid "# PONGs dropped, signature expired"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1572
-msgid "# validations succeeded"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1627
-#, fuzzy
-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:219
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:617
-msgid "send data to peer"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:621
-#, fuzzy
-msgid "receive data from peer"
-msgstr "Yêu cầu cấp %d từ đồng đẳng %d\n"
+#: src/transport/gnunet-service-transport_validation.c:1318
+msgid "# PONGs unicast via reliable transport"
+msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:626
-#, fuzzy
-msgid "iterations"
-msgstr "Tùy chọn chung"
+#: src/transport/gnunet-service-transport_validation.c:1327
+msgid "# PONGs multicast to all available addresses"
+msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:631
-#, 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-service-transport_validation.c:1500
+msgid "# PONGs dropped, no matching pending validation"
+msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:636
-#, fuzzy
-msgid "message size to use"
-msgstr "kích cỡ tin nhắn"
+#: src/transport/gnunet-service-transport_validation.c:1518
+msgid "# PONGs dropped, signature expired"
+msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:641
-#: src/transport/gnunet-transport.c:1462
-msgid "peer identity"
+#: src/transport/gnunet-service-transport_validation.c:1573
+msgid "# validations succeeded"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:652
-#: src/transport/gnunet-transport.c:1482
+#: src/transport/gnunet-service-transport_validation.c:1628
 #, fuzzy
-msgid "Direct access to transport service."
-msgstr "Lỗi kết nối đến gnunetd.\n"
+msgid "# HELLOs given to peerinfo"
+msgstr "Nhận được thông báo « %s » sai từ đồng đẳng « %s ».\n"
 
 #: src/transport/gnunet-transport.c:413
 #, fuzzy, c-format
@@ -7863,6 +7590,11 @@ 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:1462
+#: src/transport/gnunet-transport-profiler.c:641
+msgid "peer identity"
+msgstr ""
+
 #: src/transport/gnunet-transport.c:1466
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7871,13 +7603,46 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
+#: src/transport/gnunet-transport.c:1482
+#: src/transport/gnunet-transport-profiler.c:652
+#, fuzzy
+msgid "Direct access to transport service."
+msgstr "Lỗi kết nối đến gnunetd.\n"
+
+#: src/transport/gnunet-transport-profiler.c:219
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:617
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:621
+#, 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:626
+#, fuzzy
+msgid "iterations"
+msgstr "Tùy chọn chung"
+
+#: src/transport/gnunet-transport-profiler.c:631
+#, 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:636
+#, fuzzy
+msgid "message size to use"
+msgstr "kích cỡ tin nhắn"
+
 #: src/transport/plugin_transport_http_client.c:1474
 #: src/transport/plugin_transport_http_server.c:2312
 #: src/transport/plugin_transport_http_server.c:3530
-#: src/transport/plugin_transport_tcp.c:3895
-#: src/transport/plugin_transport_tcp.c:3902
-#: src/transport/plugin_transport_xt.c:3899
-#: src/transport/plugin_transport_xt.c:3906
+#: src/transport/plugin_transport_tcp.c:3901
+#: src/transport/plugin_transport_tcp.c:3908
 msgid "TCP_STEALTH not supported on this platform.\n"
 msgstr ""
 
@@ -7948,7 +7713,6 @@ msgstr ""
 
 #: src/transport/plugin_transport_http_server.c:2905
 #: src/transport/plugin_transport_udp.c:3627
-#: src/transport/plugin_transport_xu.c:2049
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
@@ -8050,134 +7814,123 @@ msgstr "# các byte đã gửi qua SMTP"
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr "# các byte loại đi bởi SMTP (đi ra)"
 
-#: src/transport/plugin_transport_tcp.c:1551
-#: src/transport/plugin_transport_tcp.c:2877
-#: src/transport/plugin_transport_xt.c:1553
-#: src/transport/plugin_transport_xt.c:2879
+#: src/transport/plugin_transport_tcp.c:1557
+#: src/transport/plugin_transport_tcp.c:2883
 #, fuzzy, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr "Gặp sự kiện bất thường: %d\n"
 
-#: src/transport/plugin_transport_tcp.c:1734
-#: src/transport/plugin_transport_tcp.c:1958
-#: src/transport/plugin_transport_tcp.c:3141
-#: src/transport/plugin_transport_tcp.c:4018
-#: src/transport/plugin_transport_xt.c:1736
-#: src/transport/plugin_transport_xt.c:1960
-#: src/transport/plugin_transport_xt.c:3143
+#: src/transport/plugin_transport_tcp.c:1740
+#: src/transport/plugin_transport_tcp.c:1964
+#: src/transport/plugin_transport_tcp.c:3147
+#: src/transport/plugin_transport_tcp.c:4024
 #, fuzzy
 msgid "# TCP sessions active"
 msgstr "# các khoá phiên chạy được chấp nhận"
 
-#: src/transport/plugin_transport_tcp.c:1776
-#: src/transport/plugin_transport_tcp.c:1940
-#: src/transport/plugin_transport_tcp.c:2064
-#: src/transport/plugin_transport_tcp.c:2137
-#: src/transport/plugin_transport_tcp.c:2237
-#: src/transport/plugin_transport_tcp.c:2262
-#: src/transport/plugin_transport_xt.c:1778
-#: src/transport/plugin_transport_xt.c:1942
-#: src/transport/plugin_transport_xt.c:2066
-#: src/transport/plugin_transport_xt.c:2139
-#: src/transport/plugin_transport_xt.c:2239
-#: src/transport/plugin_transport_xt.c:2264
+#: src/transport/plugin_transport_tcp.c:1782
+#: src/transport/plugin_transport_tcp.c:1946
+#: src/transport/plugin_transport_tcp.c:2070
+#: src/transport/plugin_transport_tcp.c:2143
+#: src/transport/plugin_transport_tcp.c:2243
+#: src/transport/plugin_transport_tcp.c:2268
 #, fuzzy
 msgid "# bytes currently in TCP buffers"
 msgstr "# các byte đã gừi qua TCP"
 
-#: src/transport/plugin_transport_tcp.c:1779
-#: src/transport/plugin_transport_xt.c:1781
+#: src/transport/plugin_transport_tcp.c:1785
 #, fuzzy
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr "# các byte loại đi bởi TCP (đi ra)"
 
-#: src/transport/plugin_transport_tcp.c:2067
-#: src/transport/plugin_transport_xt.c:2069
+#: src/transport/plugin_transport_tcp.c:2073
 #, fuzzy
 msgid "# bytes discarded by TCP (timeout)"
 msgstr "# các byte loại đi bởi TCP (đi ra)"
 
-#: src/transport/plugin_transport_tcp.c:2141
-#: src/transport/plugin_transport_xt.c:2143
+#: src/transport/plugin_transport_tcp.c:2147
 #, fuzzy
 msgid "# bytes transmitted via TCP"
 msgstr "# các byte được gửi"
 
-#: src/transport/plugin_transport_tcp.c:2539
-#: src/transport/plugin_transport_xt.c:2541
+#: src/transport/plugin_transport_tcp.c:2545
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
-#: src/transport/plugin_transport_xt.c:2717
+#: src/transport/plugin_transport_tcp.c:2721
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3207
-#: src/transport/plugin_transport_xt.c:3209
+#: src/transport/plugin_transport_tcp.c:3213
 #, fuzzy
 msgid "# TCP WELCOME messages received"
 msgstr "# các thông báo PONG đã mật mã được nhận"
 
-#: src/transport/plugin_transport_tcp.c:3413
-#: src/transport/plugin_transport_xt.c:3415
+#: src/transport/plugin_transport_tcp.c:3419
 msgid "# bytes received via TCP"
 msgstr "# các byte đã nhận qua TCP"
 
-#: src/transport/plugin_transport_tcp.c:3464
-#: src/transport/plugin_transport_tcp.c:3522
-#: src/transport/plugin_transport_xt.c:3466
-#: src/transport/plugin_transport_xt.c:3524
+#: src/transport/plugin_transport_tcp.c:3470
+#: src/transport/plugin_transport_tcp.c:3528
 #, fuzzy
 msgid "# TCP server connections active"
 msgstr "# các kết nối dht"
 
-#: src/transport/plugin_transport_tcp.c:3468
-#: src/transport/plugin_transport_xt.c:3470
+#: src/transport/plugin_transport_tcp.c:3474
 #, fuzzy
 msgid "# TCP server connect events"
 msgstr "# của các đồng đẳng đã kết nối"
 
-#: src/transport/plugin_transport_tcp.c:3474
-#: src/transport/plugin_transport_xt.c:3476
+#: src/transport/plugin_transport_tcp.c:3480
 msgid "TCP connection limit reached, suspending server\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3476
-#: src/transport/plugin_transport_xt.c:3478
+#: src/transport/plugin_transport_tcp.c:3482
 msgid "# TCP service suspended"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3516
-#: src/transport/plugin_transport_xt.c:3518
+#: src/transport/plugin_transport_tcp.c:3522
 msgid "# TCP service resumed"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3526
-#: src/transport/plugin_transport_xt.c:3528
+#: src/transport/plugin_transport_tcp.c:3532
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3845
-#: src/transport/plugin_transport_xt.c:3849
+#: src/transport/plugin_transport_tcp.c:3851
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "Lỗi bắt đầu thu thập.\n"
 
-#: src/transport/plugin_transport_tcp.c:4006
+#: src/transport/plugin_transport_tcp.c:4012
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4010
+#: src/transport/plugin_transport_tcp.c:4016
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4014
+#: src/transport/plugin_transport_tcp.c:4020
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
+#: src/transport/plugin_transport_udp_broadcasting.c:168
+#, 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:548
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:565
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_udp.c:3371
 #, c-format
 msgid ""
@@ -8198,7 +7951,6 @@ msgid "Failed to bind UDP socket to %s: %s\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
 #: src/transport/plugin_transport_udp.c:3721
-#: src/transport/plugin_transport_xu.c:2143
 msgid "Disabling IPv4 since it is not supported on this system!\n"
 msgstr ""
 
@@ -8209,19 +7961,15 @@ msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
 #: src/transport/plugin_transport_udp.c:3883
 #: src/transport/plugin_transport_udp.c:3897
-#: src/transport/plugin_transport_xu.c:2301
-#: src/transport/plugin_transport_xu.c:2315
 msgid "must be in [0,65535]"
 msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3929
-#: src/transport/plugin_transport_xu.c:2347
 #, fuzzy
 msgid "must be valid IPv4 address"
 msgstr "« %s » không sẵn sàng.\n"
 
 #: src/transport/plugin_transport_udp.c:3956
-#: src/transport/plugin_transport_xu.c:2374
 #, fuzzy
 msgid "must be valid IPv6 address"
 msgstr "« %s » không sẵn sàng.\n"
@@ -8231,21 +7979,6 @@ 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:168
-#, 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:548
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:565
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-
 #: src/transport/plugin_transport_unix.c:1416
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -8323,54 +8056,6 @@ msgstr ""
 msgid "# sessions allocated"
 msgstr "# các khoá phiên chạy được chấp nhận"
 
-#: src/transport/plugin_transport_xt.c:4010
-#, c-format
-msgid "XT transport listening on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4014
-msgid "XT transport not listening on any port (client only)\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4018
-#, c-format
-msgid "XT transport advertises itself as being on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4022
-#, fuzzy
-msgid "# XT sessions active"
-msgstr "# các khoá phiên chạy được chấp nhận"
-
-#: src/transport/plugin_transport_xu.c:1237
-#, c-format
-msgid ""
-"XU could not transmit message to `%s': Network seems down, please check your "
-"network configuration\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xu.c:1251
-msgid ""
-"XU 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 ""
-
-#: src/transport/plugin_transport_xu.c:2125
-#: src/transport/plugin_transport_xu.c:2224
-#, fuzzy, c-format
-msgid "Failed to bind XU socket to %s: %s\n"
-msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
-
-#: src/transport/plugin_transport_xu.c:2234
-#, fuzzy
-msgid "Failed to open XU sockets\n"
-msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
-
-#: src/transport/plugin_transport_xu.c:2398
-#, fuzzy
-msgid "Failed to create XU network sockets\n"
-msgstr "Không thể tạo miền tên.\n"
-
 #: src/transport/tcp_connection_legacy.c:452
 #, fuzzy, c-format
 msgid "Access denied to `%s'\n"
@@ -8381,17 +8066,17 @@ msgstr "Không đủ quyền cho « %s ».\n"
 msgid "Accepting connection from `%s': %p\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1111
+#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1624
 #, fuzzy, c-format
 msgid "`%s' failed for port %d (%s).\n"
 msgstr "« %s » thất bại cho ổ đĩa « %s »: %u\n"
 
-#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1121
+#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1634
 #, fuzzy, c-format
 msgid "`%s' failed for port %d (%s): address already in use\n"
 msgstr "« %s » bị lỗi cho cổng %d. Trình gnunetd có chạy chưa?\n"
 
-#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1127
+#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1640
 #, fuzzy, c-format
 msgid "`%s' failed for `%s': address already in use\n"
 msgstr "« %s » bị lỗi cho cổng %d. Trình gnunetd có chạy chưa?\n"
@@ -8403,7 +8088,7 @@ msgid ""
 "`GNUNET_SERVER_receive_done' after %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:339 src/util/service.c:2396
+#: src/transport/tcp_service_legacy.c:339 src/util/service.c:864
 #, fuzzy, c-format
 msgid "Unknown address family %d\n"
 msgstr "\tKhông rõ miền tên « %s »\n"
@@ -8413,27 +8098,27 @@ msgstr "\tKhông rõ miền tên « %s »\n"
 msgid "Access from `%s' denied to service `%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:402 src/util/service.c:439
+#: src/transport/tcp_service_legacy.c:402 src/util/service.c:988
 #, c-format
 msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:440 src/util/service.c:482
+#: src/transport/tcp_service_legacy.c:440 src/util/service.c:1031
 #, c-format
 msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1042
+#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1555
 msgid "Could not access a pre-bound socket, will try to bind myself\n"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:953
-#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1195
+#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1708
 #, c-format
 msgid "Specified value for `%s' of service `%s' is invalid\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1228
+#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1741
 #, c-format
 msgid "Could not access pre-bound socket %u, will try to bind myself\n"
 msgstr ""
@@ -8448,44 +8133,44 @@ msgstr "Lỗi chạy %s: %s %d\n"
 msgid "Service `%s' runs at %s\n"
 msgstr "Đồng đẳng « %s » có mức tin cậy %8u\n"
 
-#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:1502
+#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:2015
 msgid "Service process failed to initialize\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1506
+#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:2019
 msgid "Service process could not initialize server function\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:1510
+#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:2023
 msgid "Service process failed to report status\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1525
-#: src/util/service.c:1380
+#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1535
+#: src/util/service.c:1893
 #, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "Không thể lấy thông tin về người dùng « %s »: %s\n"
 
-#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1382
+#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1895
 msgid "No such user"
 msgstr "Không có người dùng như vậy"
 
-#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1401
+#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1914
 #, c-format
 msgid "Cannot change user/group to `%s': %s\n"
 msgstr "Không thể thay đổi người dùng/nhóm thành « %s »: %s\n"
 
-#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:1762
+#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:2276
 msgid "do daemonize (detach from terminal)"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:1826
-#: src/util/service.c:1841
+#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:2340
+#: src/util/service.c:2355
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
 
-#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:1853
+#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:2367
 #, fuzzy
 msgid "Malformed configuration, exit ...\n"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
@@ -8528,11 +8213,11 @@ msgstr ""
 msgid "Metadata `%s' failed to deserialize"
 msgstr ""
 
-#: src/util/client.c:734
+#: src/util/client.c:749
 msgid "not a valid filename"
 msgstr ""
 
-#: src/util/client.c:925
+#: src/util/client.c:941
 #, c-format
 msgid "Need a non-empty hostname for service `%s'.\n"
 msgstr ""
@@ -8579,17 +8264,17 @@ msgstr ""
 msgid "unknown address"
 msgstr ""
 
-#: src/util/common_logging.c:1500
+#: src/util/common_logging.c:1513
 msgid "invalid address"
 msgstr ""
 
-#: src/util/common_logging.c:1518
+#: src/util/common_logging.c:1531
 #, fuzzy, c-format
 msgid "Configuration fails to specify option `%s' in section `%s'!\n"
 msgstr ""
 "Cấu hình không thỏa mãn các ràng buộc của tập tin đặc tả cấu hình « %s ».\n"
 
-#: src/util/common_logging.c:1539
+#: src/util/common_logging.c:1552
 #, fuzzy, c-format
 msgid ""
 "Configuration specifies invalid value for option `%s' in section `%s': %s\n"
@@ -8640,26 +8325,26 @@ msgstr ""
 #: src/util/container_bloomfilter.c:532
 #, c-format
 msgid ""
-"Size of file on disk is incorrect for this Bloom filter (want %llu, have %"
-"llu)\n"
+"Size of file on disk is incorrect for this Bloom filter (want %llu, have "
+"%llu)\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:862
+#: src/util/crypto_ecc.c:887
 #, fuzzy, c-format
 msgid "ECC signing failed at %s:%d: %s\n"
 msgstr "%s bị lỗi tại %s:%d: « %s »\n"
 
-#: src/util/crypto_ecc.c:917
+#: src/util/crypto_ecc.c:946
 #, fuzzy, c-format
 msgid "EdDSA signing failed at %s:%d: %s\n"
 msgstr "%s bị lỗi tại %s:%d: « %s »\n"
 
-#: src/util/crypto_ecc.c:996
+#: src/util/crypto_ecc.c:1025
 #, fuzzy, c-format
 msgid "ECDSA signature verification failed at %s:%d: %s\n"
 msgstr "Lỗi thẩm tra chữ ký RSA tại %s:%d: %s\n"
 
-#: src/util/crypto_ecc.c:1057
+#: src/util/crypto_ecc.c:1086
 #, fuzzy, c-format
 msgid "EdDSA signature verification failed at %s:%d: %s\n"
 msgstr "Lỗi thẩm tra chữ ký RSA tại %s:%d: %s\n"
@@ -8709,17 +8394,17 @@ msgstr "%s bị lỗi tại %s:%d: « %s »\n"
 msgid "RSA signature verification failed at %s:%d: %s\n"
 msgstr "Lỗi thẩm tra chữ ký RSA tại %s:%d: %s\n"
 
-#: src/util/disk.c:1255
+#: src/util/disk.c:1265
 #, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "Mong đợi « %s » là một thư mục.\n"
 
-#: src/util/dnsparser.c:260
+#: src/util/dnsparser.c:264
 #, 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/util/dnsparser.c:950
+#: src/util/dnsparser.c:954
 #, fuzzy, c-format
 msgid "Failed to convert UTF-8 name `%s' to DNS IDNA format: %s\n"
 msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
@@ -8826,7 +8511,7 @@ msgstr ""
 msgid "print this help"
 msgstr "hiển thị trợ giúp này"
 
-#: src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:282 src/util/gnunet-qr.c:300
 msgid "be verbose"
 msgstr "xuất chi tiết"
 
@@ -8875,52 +8560,52 @@ msgstr "Phải gửi một con số cho tùy chọn « %s ».\n"
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:160
+#: src/util/gnunet-config.c:161
 #, fuzzy, c-format
 msgid "failed to load configuration defaults"
 msgstr "Không thể lưu tập tin cấu hình « %s »:"
 
-#: src/util/gnunet-config.c:173
+#: src/util/gnunet-config.c:174
 #, fuzzy, c-format
 msgid "%s or %s argument is required\n"
 msgstr "đặt tên hiệu cần dùng (cần thiết)"
 
-#: src/util/gnunet-config.c:181
+#: src/util/gnunet-config.c:182
 #, c-format
 msgid "The following sections are available:\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:232
+#: src/util/gnunet-config.c:234
 #, c-format
 msgid "--option argument required to set value\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:286
-msgid "obtain option of value as a filename (with $-expansion)"
+#: src/util/gnunet-config.c:288
+msgid "interpret option value as a filename (with $-expansion)"
 msgstr ""
 
-#: src/util/gnunet-config.c:291
+#: src/util/gnunet-config.c:293
 msgid "name of the section to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:296
+#: src/util/gnunet-config.c:298
 msgid "name of the option to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:301
+#: src/util/gnunet-config.c:303
 msgid "value to set"
 msgstr ""
 
-#: src/util/gnunet-config.c:305
+#: src/util/gnunet-config.c:307
 #, fuzzy
 msgid "print available configuration sections"
 msgstr "Lưu cấu hình ngay bây giờ không?"
 
-#: src/util/gnunet-config.c:309
+#: src/util/gnunet-config.c:311
 msgid "write configuration file that only contains delta to defaults"
 msgstr ""
 
-#: src/util/gnunet-config.c:322
+#: src/util/gnunet-config.c:324
 #, fuzzy
 msgid "Manipulate GNUnet configuration files"
 msgstr "cập nhật một giá trị trong tập tin cấu hình"
@@ -9013,6 +8698,33 @@ msgstr ""
 msgid "Manipulate GNUnet private ECC key files"
 msgstr "cập nhật một giá trị trong tập tin cấu hình"
 
+#: src/util/gnunet-qr.c:108 src/util/gnunet-uri.c:91
+#, fuzzy, c-format
+msgid "Invalid URI: does not start with `%s'\n"
+msgstr "Ký hiệu mạng sai (không kết thúc với « ; »: « %s »)\n"
+
+#: src/util/gnunet-qr.c:116 src/util/gnunet-uri.c:98
+#, c-format
+msgid "Invalid URI: fails to specify subsystem\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:127 src/util/gnunet-uri.c:108
+#, c-format
+msgid "No handler known for subsystem `%s'\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:297
+msgid "use video-device DEVICE (default: /dev/video0"
+msgstr ""
+
+#: src/util/gnunet-qr.c:303
+msgid "do not show preview windows"
+msgstr ""
+
+#: src/util/gnunet-qr.c:311
+msgid "Scan a QR code using a video device and import the uri read"
+msgstr ""
+
 #: src/util/gnunet-resolver.c:168
 msgid "perform a reverse lookup"
 msgstr ""
@@ -9047,7 +8759,7 @@ msgstr ""
 msgid "Manipulate GNUnet proof of work files"
 msgstr "cập nhật một giá trị trong tập tin cấu hình"
 
-#: src/util/gnunet-service-resolver.c:1443
+#: src/util/gnunet-service-resolver.c:1424
 msgid "No DNS server available. DNS resolution will not be possible.\n"
 msgstr ""
 
@@ -9056,21 +8768,6 @@ msgstr ""
 msgid "No URI specified on command line\n"
 msgstr ""
 
-#: src/util/gnunet-uri.c:91
-#, fuzzy, c-format
-msgid "Invalid URI: does not start with `%s'\n"
-msgstr "Ký hiệu mạng sai (không kết thúc với « ; »: « %s »)\n"
-
-#: src/util/gnunet-uri.c:98
-#, c-format
-msgid "Invalid URI: fails to specify subsystem\n"
-msgstr ""
-
-#: src/util/gnunet-uri.c:108
-#, c-format
-msgid "No handler known for subsystem `%s'\n"
-msgstr ""
-
 #: src/util/gnunet-uri.c:170
 msgid "Perform default-actions for GNUnet URIs"
 msgstr ""
@@ -9090,12 +8787,12 @@ msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 msgid "Error writing to `%s': %s\n"
 msgstr "Gặp lỗi khi tạo người dùng"
 
-#: src/util/network.c:136
+#: src/util/network.c:176
 #, c-format
 msgid "Unable to shorten unix path `%s' while keeping name unique\n"
 msgstr ""
 
-#: src/util/network.c:1795 src/util/network.c:1979
+#: src/util/network.c:1835 src/util/network.c:2019
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -9201,18 +8898,18 @@ msgstr ""
 msgid "Could not resolve our FQDN: %s\n"
 msgstr "Không thể giải quyết « %s » (%s): %s\n"
 
-#: src/util/service.c:1307
-msgid ""
-"Could not bind to any of the ports I was supposed to, refusing to run!\n"
-msgstr ""
-
-#: src/util/service.c:2141
+#: src/util/service.c:668
 #, c-format
 msgid ""
 "Processing code for message of type %u did not call "
 "`GNUNET_SERVICE_client_continue' after %s\n"
 msgstr ""
 
+#: src/util/service.c:1820
+msgid ""
+"Could not bind to any of the ports I was supposed to, refusing to run!\n"
+msgstr ""
+
 #: src/util/signal.c:89
 #, c-format
 msgid "signal (%d, %p) returned %d.\n"
@@ -9345,12 +9042,12 @@ msgstr "Mặt nạ mạng có định dạng sai « %s »: %s\n"
 msgid "Wrong format `%s' for network\n"
 msgstr "Mạng có định dạng sai « %s »: %s\n"
 
-#: src/util/time.c:828 src/util/time.c:860
+#: src/util/time.c:844 src/util/time.c:876
 #, c-format
 msgid "Failed to map `%s', cannot assure monotonic time!\n"
 msgstr ""
 
-#: src/util/time.c:866
+#: src/util/time.c:882
 #, c-format
 msgid ""
 "Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
@@ -9534,72 +9231,64 @@ msgstr "# các byte đã nhận qua UDP"
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #: src/zonemaster/gnunet-service-zonemaster.c:838
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "Không kết nối được đến trình nền gnunetd."
 
-#: src/include/gnunet_common.h:772 src/include/gnunet_common.h:779
-#: src/include/gnunet_common.h:789
+#: src/include/gnunet_common.h:794 src/include/gnunet_common.h:801
+#: src/include/gnunet_common.h:811
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d. Aborting.\n"
 msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
 
-#: src/include/gnunet_common.h:797
+#: src/include/gnunet_common.h:819
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
 
-#: src/include/gnunet_common.h:809
+#: src/include/gnunet_common.h:831
 #, fuzzy, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr "Lỗi nội bộ : khẳng định không thành công tại %s:%d.\n"
 
-#: src/include/gnunet_common.h:836 src/include/gnunet_common.h:845
+#: src/include/gnunet_common.h:858 src/include/gnunet_common.h:867
 #, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với lỗi: %s\n"
 
 #, fuzzy
-#~ msgid "Can not index file `%s': %s.\n"
-#~ msgstr "Không thể mở tập tin « %s »: « %s »"
-
-#, fuzzy
-#~ msgid "enable adding the creation time to the metadata of the uploaded file"
-#~ msgstr "tắt thêm giờ tạo vào siêu dữ liệu của tập tin đã tải lên"
-
-#, fuzzy
-#~ msgid "`%s' is not a valid domain name\n"
-#~ msgstr "« %s » không sẵn sàng.\n"
+#~ msgid "Failed to connect to CREDENTIAL\n"
+#~ msgstr "Lỗi kết nối đến gnunetd.\n"
 
 #, fuzzy
-#~ msgid "Specify a timeout for the lookup"
-#~ msgstr "xác định mức ưu tiên của nội dung"
+#~ msgid "GNUnet credential resolver tool"
+#~ msgstr "Bản ghi lỗi GNUnet"
 
 #, fuzzy
-#~ msgid "Unable to parse CAA record string `%s'\n"
+#~ msgid "Unable to parse CRED record string `%s'\n"
 #~ msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
 
 #, fuzzy
-#~ msgid "display private keys as well"
-#~ msgstr "hiển thị giá trị tổng kiểm của tập tin"
+#~ msgid "# XT sessions active"
+#~ msgstr "# các khoá phiên chạy được chấp nhận"
 
 #, fuzzy
-#~ msgid "The EGO to use"
-#~ msgstr "kích cỡ tin nhắn"
+#~ msgid "Failed to bind XU socket to %s: %s\n"
+#~ msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
 #, fuzzy
-#~ msgid "OpenID Connect REST API initialized\n"
-#~ msgstr "Lỗi sơ khởi lõi.\n"
+#~ msgid "Failed to open XU sockets\n"
+#~ msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
 
 #, fuzzy
-#~ msgid "CONFIG REST API initialized\n"
-#~ msgstr "Lỗi sơ khởi lõi.\n"
+#~ msgid "Failed to create XU network sockets\n"
+#~ msgstr "Không thể tạo miền tên.\n"
 
 #, fuzzy
-#~ msgid "Option `%s' can't be used with other options.\n"
-#~ msgstr "Tùy chọn « %s » không có nghĩa khi không có tùy chọn « %s ».\n"
+#~ msgid "Print information about DV state"
+#~ msgstr "In ra thông tin về các đồng đẳng GNUnet."
 
 #, fuzzy
 #~ msgid "Invalid tunnel owner `%s'\n"
@@ -9609,6 +9298,98 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 #~ msgid "Provide information about a particular tunnel"
 #~ msgstr "In ra thông tin về các đồng đẳng GNUnet."
 
+#, fuzzy
+#~ msgid "Failed to store membership information!\n"
+#~ msgstr "Lỗi mở tập tin ghi sự kiện « %s »: %s\n"
+
+#, fuzzy
+#~ msgid "Failed to test membership!\n"
+#~ msgstr "Lỗi lấy thông kê về truyền tải.\n"
+
+#, fuzzy
+#~ msgid "Dropping invalid fragment\n"
+#~ msgstr "Đối số không hợp lệ cho « %s ».\n"
+
+#, fuzzy
+#~ msgid "Failed to store fragment\n"
+#~ msgstr "Lỗi bắt đầu thu thập.\n"
+
+#, fuzzy
+#~ msgid "Failed to get fragment!\n"
+#~ msgstr "Lỗi lấy thông kê về truyền tải.\n"
+
+#, fuzzy
+#~ msgid "Failed to get message!\n"
+#~ msgstr "Lỗi lấy thông kê về truyền tải.\n"
+
+#, fuzzy
+#~ msgid "Failed to get message fragment!\n"
+#~ msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
+
+#, fuzzy
+#~ msgid "Failed to get master counters!\n"
+#~ msgstr "Lỗi lấy thông kê về truyền tải.\n"
+
+#, fuzzy
+#~ msgid "Failed to begin modifying state: %d\n"
+#~ msgstr "Lỗi bắt đầu thu thập.\n"
+
+#, fuzzy
+#~ msgid "Failed to modify state: %d\n"
+#~ msgstr "Lỗi bắt đầu thu thập.\n"
+
+#, fuzzy
+#~ msgid "Failed to end modifying state!\n"
+#~ msgstr "Lỗi bắt đầu thu thập.\n"
+
+#, fuzzy
+#~ msgid "Failed to begin synchronizing state!\n"
+#~ msgstr "Lỗi lấy thông kê về truyền tải.\n"
+
+#, fuzzy
+#~ msgid "Failed to end synchronizing state!\n"
+#~ msgstr "Lỗi lấy thông kê về truyền tải.\n"
+
+#, fuzzy
+#~ msgid "Failed to reset state!\n"
+#~ msgstr "Lỗi lấy thông kê về truyền tải.\n"
+
+#, fuzzy
+#~ msgid "Failed to get state variable!\n"
+#~ msgstr "Lỗi lấy thông kê về truyền tải.\n"
+
+#, fuzzy
+#~ msgid "Unable to initialize Mysql.\n"
+#~ msgstr "Không thể sơ khởi SQLite: %s.\n"
+
+#, fuzzy
+#~ msgid "Failed to run SQL statement `%s'\n"
+#~ msgstr "Lỗi đọc danh sách bạn bè từ « %s »\n"
+
+#, fuzzy
+#~ msgid "`%s' failed at %s:%d with error: %s (%d)\n"
+#~ msgstr "« %s » bị lỗi tại %s:%d với lỗi: %s\n"
+
+#, fuzzy
+#~ msgid "SQLite database running\n"
+#~ msgstr "kho dữ liệu sqlite"
+
+#, fuzzy
+#~ msgid "--place missing or invalid.\n"
+#~ msgstr "Đối số không hợp lệ cho « %s ».\n"
+
+#, fuzzy
+#~ msgid "name or public key of ego"
+#~ msgstr "Đối số không hợp lệ cho « %s ».\n"
+
+#, fuzzy
+#~ msgid "wait for incoming messages"
+#~ msgstr "Lỗi gửi tin nhẳn.\n"
+
+#, fuzzy
+#~ msgid "number of messages to replay from history"
+#~ msgstr "số tin nhắn cần dùng mỗi lần lặp"
+
 #~ msgid "Could not resolve `%s' (%s): %s\n"
 #~ msgstr "Không thể giải quyết « %s » (%s): %s\n"
 
@@ -10505,8 +10286,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 
 #, fuzzy
 #~ msgid ""
-#~ "%s service is lacking key configuration settings (%s). Using default (%"
-#~ "u).\n"
+#~ "%s service is lacking key configuration settings (%s). Using default "
+#~ "(%u).\n"
 #~ msgstr "Lưu cấu hình ngay bây giờ không?"
 
 #, fuzzy
@@ -10556,8 +10337,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 
 #, fuzzy
 #~ msgid ""
-#~ "Syntax error in topology specification at offset %llu, skipping bytes `%"
-#~ "s'.\n"
+#~ "Syntax error in topology specification at offset %llu, skipping bytes `"
+#~ "%s'.\n"
 #~ msgstr ""
 #~ "Lỗi cú pháp trong sự xác định địa hình học, đang bỏ qua các byte « %s ».\n"
 
@@ -10911,8 +10692,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 
 #, fuzzy
 #~ msgid ""
-#~ "(%s) `%s' was confirmed that you and only you received from him or her: %"
-#~ "s\n"
+#~ "(%s) `%s' was confirmed that you and only you received from him or her: "
+#~ "%s\n"
 #~ msgstr "« %s » xác nhận mà chỉ bạn đa nhận được từ họ : %s\n"
 
 #, fuzzy
@@ -11635,6 +11416,9 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 #~ msgid "install GNUnet as Windows service"
 #~ msgstr "cài đặt GNUnet như là một dịch vụ Windows"
 
+#~ msgid "display a file's hash value"
+#~ msgstr "hiển thị giá trị tổng kiểm của tập tin"
+
 #~ msgid "This version of Windows doesn't support services.\n"
 #~ msgstr "Phiên bản Windows này không hỗ trợ dịch vụ.\n"
 
@@ -11881,8 +11665,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 
 #~ msgid "No interface specified in section `%s' under `%s'!\n"
 #~ msgstr ""
-#~ "Không có giao diện mạng được xác định trong cấu hình phần « %s » dưới « %"
-#~ "s ».\n"
+#~ "Không có giao diện mạng được xác định trong cấu hình phần « %s » dưới « "
+#~ "%s ».\n"
 
 #~ msgid ""
 #~ "Could not find interface `%s' using `%s', trying to find another "
@@ -11933,8 +11717,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 #~ msgid ""
 #~ "No network interfaces defined in configuration section `%s' under `%s'!\n"
 #~ msgstr ""
-#~ "Không có giao diện mạng được xác định trong cấu hình phần « %s » dưới « %"
-#~ "s ».\n"
+#~ "Không có giao diện mạng được xác định trong cấu hình phần « %s » dưới « "
+#~ "%s ».\n"
 
 #~ msgid "Setting open descriptor limit not supported.\n"
 #~ msgstr "Không hỗ trợ chức năng đặt giới hạn bộ mô tả còn mở.\n"
@@ -12302,8 +12086,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 
 #~ msgid "setkey `%s' from `%s' fails CRC check (have: %u, want %u).\n"
 #~ msgstr ""
-#~ "Kiểm tra CRC setkey « %s » từ « %s » không thành công (có %u, còn muốn %"
-#~ "u).\n"
+#~ "Kiểm tra CRC setkey « %s » từ « %s » không thành công (có %u, còn muốn "
+#~ "%u).\n"
 
 #~ msgid ""
 #~ "Error parsing encrypted session key from `%s', given message part size is "
@@ -12446,8 +12230,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 #~ msgid ""
 #~ "%16llu of %16llu bytes inserted (estimating %6s to completion) - %s\n"
 #~ msgstr ""
-#~ "đã chèn %16llu trên %16llu byte (sẽ hoàn thành trong khoảng %6s giây) - %"
-#~ "s\n"
+#~ "đã chèn %16llu trên %16llu byte (sẽ hoàn thành trong khoảng %6s giây) - "
+#~ "%s\n"
 
 #~ msgid ""
 #~ "Upload of `%s' complete, %llu bytes took %llu seconds (%8.3f KiB/s).\n"
@@ -12598,8 +12382,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 #~ "`%s' registering client handlers %d %d %d %d %d %d %d %d and P2P handlers "
 #~ "%d %d\n"
 #~ msgstr ""
-#~ "« %s » đang đăng ký các trình điều khiển kiểu ứng dụng khách %d %d %d %d %"
-#~ "d %d %d %d và kiểu P2P %d %d\n"
+#~ "« %s » đang đăng ký các trình điều khiển kiểu ứng dụng khách %d %d %d %d "
+#~ "%d %d %d %d và kiểu P2P %d %d\n"
 
 #~ msgid "enables (anonymous) file-sharing"
 #~ msgstr "hiệu lực chia sẻ tập tin (nặc danh)"
@@ -13085,8 +12869,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 #~ "`%s' transport OK.  It took %ums to transmit %llu messages of %llu bytes "
 #~ "each.\n"
 #~ msgstr ""
-#~ "« %s » truyền tải OK.  Cần %u miligiây để truyền đi %llu thông báo với %"
-#~ "llu byte mỗi cái.\n"
+#~ "« %s » truyền tải OK.  Cần %u miligiây để truyền đi %llu thông báo với "
+#~ "%llu byte mỗi cái.\n"
 
 #~ msgid " Transport %d is not being tested\n"
 #~ msgstr " Truyền tải %d không đang thử\n"
@@ -13139,8 +12923,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 
 #~ msgid "%s failed for url `%s' and post-data `%s' at %s:%d: `%s'\n"
 #~ msgstr ""
-#~ "%s bị lỗi đối với địa chỉ URL « %s » và dữ liệu cuối « %s » tại %s:%d: « %"
-#~ "s »\n"
+#~ "%s bị lỗi đối với địa chỉ URL « %s » và dữ liệu cuối « %s » tại %s:%d: « "
+#~ "%s »\n"
 
 #~ msgid "upnp: NAT Returned IP: %s\n"
 #~ msgstr "upnp: địa chỉ IP được NAT trả về: %s\n"
@@ -14325,8 +14109,8 @@ msgstr "« %s » thất bại ở tập tin « %s » tại %s:%d với 
lỗi: %s
 #~ "insert sử dụng libextractor để trích các từ khoá khỏi tập tin. "
 #~ "libextractor cũng có thể mở rộng động để quản lý định dạng tập tin bổ "
 #~ "sung. Muốn sử dụng bộ trích bên ngoài tập hợp mặc định thì ghi rõ ở đây "
-#~ "những thư viện trích bổ sung. Định dạng là « [[-]tên_thư_viện[:[-]"
-#~ "tên_thư_viện]*] ».\n"
+#~ "những thư viện trích bổ sung. Định dạng là « [[-]tên_thư_viện[:"
+#~ "[-]tên_thư_viện]*] ».\n"
 #~ "\n"
 #~ "Mặc định là dùng tên tập tin, và ngắt từ lớn ở dấu cách, dấu gạch dưới v."
 #~ "v. Đây nên ổn cho phần lớn người dùng. Dấu gạch nối « - » đằng trước một "
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 9a33b90d1..8f566cd25 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,14 +7,151 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gnunet-0.8.1\n"
 "Report-Msgid-Bugs-To: address@hidden\n"
-"POT-Creation-Date: 2019-02-09 22:07+0000\n"
+"POT-Creation-Date: 2019-10-07 11:45+0200\n"
 "PO-Revision-Date: 2011-07-09 12:12+0800\n"
 "Last-Translator: Wylmer Wang <address@hidden>\n"
 "Language-Team: Chinese (simplified) <address@hidden>\n"
+"Language: zh_CN\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: zh_CN\n"
+
+#: src/abd/gnunet-abd.c:394 src/namestore/gnunet-namestore.c:994
+#, c-format
+msgid "Ego `%s' not known to identity service\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:410 src/abd/gnunet-abd.c:875
+#, fuzzy, c-format
+msgid "Issuer public key `%s' is not well-formed\n"
+msgstr "“%s”的参数无效。\n"
+
+#: src/abd/gnunet-abd.c:549 src/abd/gnunet-service-abd.c:1723
+#: src/namestore/gnunet-namestore.c:1019
+#: src/namestore/gnunet-namestore-fcfsd.c:1138
+#, fuzzy, c-format
+msgid "Failed to connect to namestore\n"
+msgstr "初始化“%s”服务失败。\n"
+
+#: src/abd/gnunet-abd.c:814 src/abd/gnunet-abd.c:865
+#, fuzzy, c-format
+msgid "Issuer public key not well-formed\n"
+msgstr "“%s”的参数无效。\n"
+
+#: src/abd/gnunet-abd.c:823 src/abd/gnunet-abd.c:884
+#, fuzzy, c-format
+msgid "Failed to connect to ABD\n"
+msgstr "初始化“%s”服务失败。\n"
+
+#: src/abd/gnunet-abd.c:829
+#, c-format
+msgid "You must provide issuer the attribute\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:836
+#, c-format
+msgid "ego required\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:846
+#, c-format
+msgid "Subject public key needed\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:855
+#, fuzzy, c-format
+msgid "Subject public key `%s' is not well-formed\n"
+msgstr "“%s”的参数无效。\n"
+
+#: src/abd/gnunet-abd.c:890
+#, c-format
+msgid "You must provide issuer and subject attributes\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:946
+#, c-format
+msgid "Please specify name to lookup, subject key and issuer key!\n"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:967
+msgid "verify credential against attribute"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:974
+msgid ""
+"The public key of the subject to lookup thecredential for, or for issuer "
+"side storage: subject and its attributes"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:981
+msgid "The private, signed delegate presented by the subject"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:988
+msgid "The public key of the authority to verify the credential against"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:993
+#, fuzzy
+msgid "The ego/zone name to use"
+msgstr "消息尺寸"
+
+#: src/abd/gnunet-abd.c:999
+msgid "The issuer attribute to verify against or to issue"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1005
+msgid ""
+"The time to live for the credential.e.g. 5m, 6h, \"1990-12-30 12:00:00\""
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1010
+msgid "collect credentials"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1015
+msgid "Create and issue a credential issuer side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1020
+msgid "Issue a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1025
+msgid "Create, sign and return a credential subject side."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1032
+msgid "Import signed credentials that should be issued to a zone/ego"
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1036
+msgid "Create private record entry."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1042 src/abd/gnunet-abd.c:1048
+msgid "Indicates that the collect/verify process is done via forward search."
+msgstr ""
+
+#: src/abd/gnunet-abd.c:1061
+#, fuzzy
+msgid "GNUnet abd resolver tool"
+msgstr "GNUnet 错误日志"
+
+#: src/abd/gnunet-service-abd.c:1718 src/gns/gnunet-gns.c:185
+#: src/gns/gnunet-gns-helper-service-w32.c:727
+#, fuzzy, c-format
+msgid "Failed to connect to GNS\n"
+msgstr "初始化“%s”服务失败。\n"
+
+#: src/abd/plugin_gnsrecord_abd.c:182
+#, fuzzy, c-format
+msgid "Unable to parse ATTR record string `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/abd/plugin_rest_abd.c:1128 src/abd/plugin_rest_credential.c:1128
+msgid "GNS REST API initialized\n"
+msgstr ""
 
 #: src/arm/gnunet-arm.c:156
 #, fuzzy, c-format
@@ -221,8 +358,7 @@ msgid "Control services and the Automated Restart Manager 
(ARM)"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:388 src/transport/plugin_transport_tcp.c:1120
-#: src/transport/plugin_transport_xt.c:1120
-#: src/transport/tcp_service_legacy.c:557 src/util/service.c:612
+#: src/transport/tcp_service_legacy.c:557
 #, c-format
 msgid ""
 "Disabling IPv6 support for service `%s', failed to create IPv6 socket: %s\n"
@@ -231,36 +367,30 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:412 src/arm/gnunet-service-arm.c:418
 #: src/transport/plugin_transport_tcp.c:1139
 #: src/transport/plugin_transport_tcp.c:1145
-#: src/transport/plugin_transport_tcp.c:3829
-#: src/transport/plugin_transport_xt.c:1139
-#: src/transport/plugin_transport_xt.c:1145
-#: src/transport/plugin_transport_xt.c:3833
+#: src/transport/plugin_transport_tcp.c:3835
 #: src/transport/tcp_service_legacy.c:576
-#: src/transport/tcp_service_legacy.c:582 src/util/service.c:637
-#: src/util/service.c:643
+#: src/transport/tcp_service_legacy.c:582 src/util/service.c:1150
+#: src/util/service.c:1156
 #, c-format
 msgid "Require valid port number for service `%s' in configuration!\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:457 src/transport/plugin_transport_tcp.c:1176
-#: src/transport/plugin_transport_xt.c:1176
-#: src/transport/tcp_service_legacy.c:613 src/util/client.c:506
-#: src/util/service.c:682
+#: src/transport/tcp_service_legacy.c:613 src/util/client.c:521
+#: src/util/service.c:1195
 #, c-format
 msgid "UNIXPATH `%s' too long, maximum length is %llu\n"
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:462 src/transport/plugin_transport_tcp.c:1180
-#: src/transport/plugin_transport_xt.c:1180
-#: src/transport/tcp_service_legacy.c:617 src/util/client.c:511
-#: src/util/service.c:687
+#: src/transport/tcp_service_legacy.c:617 src/util/client.c:526
+#: src/util/service.c:1200
 #, fuzzy, c-format
 msgid "Using `%s' instead\n"
 msgstr "%s:选项“%s”有歧义\n"
 
 #: src/arm/gnunet-service-arm.c:495 src/transport/plugin_transport_tcp.c:1211
-#: src/transport/plugin_transport_xt.c:1211
-#: src/transport/tcp_service_legacy.c:648 src/util/service.c:723
+#: src/transport/tcp_service_legacy.c:648 src/util/service.c:1236
 #, c-format
 msgid ""
 "Disabling UNIX domain socket support for service `%s', failed to create UNIX "
@@ -268,8 +398,7 @@ msgid ""
 msgstr ""
 
 #: src/arm/gnunet-service-arm.c:517 src/transport/plugin_transport_tcp.c:1228
-#: src/transport/plugin_transport_xt.c:1228
-#: src/transport/tcp_service_legacy.c:665 src/util/service.c:741
+#: src/transport/tcp_service_legacy.c:665 src/util/service.c:1254
 #, c-format
 msgid "Have neither PORT nor UNIXPATH for service `%s', but one is required\n"
 msgstr ""
@@ -277,8 +406,7 @@ msgstr ""
 #: src/arm/gnunet-service-arm.c:556
 #: src/transport/plugin_transport_http_server.c:2688
 #: src/transport/plugin_transport_tcp.c:1259
-#: src/transport/plugin_transport_xt.c:1259
-#: src/transport/tcp_service_legacy.c:696 src/util/service.c:782
+#: src/transport/tcp_service_legacy.c:696 src/util/service.c:1295
 #, fuzzy, c-format
 msgid "Failed to resolve `%s': %s\n"
 msgstr "打开日志文件“%s”失败:%s\n"
@@ -286,8 +414,7 @@ msgstr "打开日志文件“%s”失败:%s\n"
 #: src/arm/gnunet-service-arm.c:575
 #: src/transport/plugin_transport_http_server.c:2706
 #: src/transport/plugin_transport_tcp.c:1278
-#: src/transport/plugin_transport_xt.c:1278
-#: src/transport/tcp_service_legacy.c:715 src/util/service.c:802
+#: src/transport/tcp_service_legacy.c:715 src/util/service.c:1315
 #, fuzzy, c-format
 msgid "Failed to find %saddress for `%s'.\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
@@ -359,15 +486,141 @@ msgstr ""
 msgid "Initiating shutdown as requested by client.\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:837
-msgid "Stop logging\n"
+#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
+#, c-format
+msgid ""
+"Could not load quota for network `%s':  `%s', assigning default bandwidth "
+"%llu\n"
 msgstr ""
 
-#: src/ats-tests/ats-testing-log.c:892
-#, fuzzy, c-format
-msgid "Start logging `%s'\n"
+#: src/ats/gnunet-ats-solver-eval.c:2799
+#, c-format
+msgid ""
+"No outbound quota configured for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:2840
+#, c-format
+msgid ""
+"No outbound quota configure for network `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3294 src/ats-tests/gnunet-solver-eval.c:939
+msgid "solver to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3299 src/ats-tests/gnunet-solver-eval.c:945
+#: src/ats-tests/gnunet-solver-eval.c:950
+msgid "experiment to use"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3306
+#, fuzzy
+msgid "print logging"
 msgstr "未知的命令“%s”。\n"
 
+#: src/ats/gnunet-ats-solver-eval.c:3311
+msgid "save logging to disk"
+msgstr ""
+
+#: src/ats/gnunet-ats-solver-eval.c:3316
+msgid "disable normalization"
+msgstr ""
+
+#: src/ats/gnunet-service-ats-new.c:756
+#: src/ats/gnunet-service-ats_plugins.c:451
+#, fuzzy, c-format
+msgid "Failed to initialize solver `%s'!\n"
+msgstr "无法初始化 SQLite:%s。\n"
+
+#: src/ats/gnunet-service-ats_plugins.c:304
+#, 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:314
+#, c-format
+msgid "%s quota configured for network `%s' is %llu\n"
+msgstr ""
+
+#: src/ats/gnunet-service-ats_plugins.c:359
+#, c-format
+msgid ""
+"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats2_common.c:90
+#, c-format
+msgid ""
+"Could not load %s quota for network `%s': `%s', assigning default bandwidth "
+"%llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1274
+msgid "Problem size too large, cannot allocate memory!\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1870
+#, c-format
+msgid "Adding address for peer `%s' multiple times\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:1914
+#, c-format
+msgid "Updating address property for peer `%s' %p not added before\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2476
+msgid ""
+"MLP solver is not optimizing for anything, changing to feasibility check\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
+#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
+#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
+#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
+#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
+#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
+#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f \n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/ats/plugin_ats_mlp.c:2671
+#, c-format
+msgid ""
+"Adjusting inconsistent outbound quota configuration for network `%s', is "
+"%llu must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2680
+#, c-format
+msgid ""
+"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
+"must be at least %llu\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2690
+#, c-format
+msgid ""
+"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_mlp.c:2699
+#, c-format
+msgid ""
+"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
+msgstr ""
+
+#: src/ats/plugin_ats_proportional.c:1164
+#, fuzzy, c-format
+msgid "Invalid %s configuration %f\n"
+msgstr "解析配置文件“%s”失败\n"
+
 #: src/ats-tests/ats-testing.c:422
 #, c-format
 msgid "Connected master [%u] with slave [%u]\n"
@@ -378,6 +631,15 @@ msgstr ""
 msgid "Failed to connect master peer [%u] with slave [%u]\n"
 msgstr "初始化“%s”服务失败。\n"
 
+#: src/ats-tests/ats-testing-log.c:837
+msgid "Stop logging\n"
+msgstr ""
+
+#: src/ats-tests/ats-testing-log.c:892
+#, fuzzy, c-format
+msgid "Start logging `%s'\n"
+msgstr "未知的命令“%s”。\n"
+
 #: src/ats-tests/gnunet-ats-sim.c:90
 #, c-format
 msgid ""
@@ -385,17 +647,6 @@ msgid ""
 "= %u KiB/s\n"
 msgstr ""
 
-#: src/ats-tests/gnunet-solver-eval.c:939
-#: src/ats/gnunet-ats-solver-eval.c:3294
-msgid "solver to use"
-msgstr ""
-
-#: src/ats-tests/gnunet-solver-eval.c:945
-#: src/ats-tests/gnunet-solver-eval.c:950
-#: src/ats/gnunet-ats-solver-eval.c:3299
-msgid "experiment to use"
-msgstr ""
-
 #: src/ats-tool/gnunet-ats.c:307
 #, c-format
 msgid "%u address resolutions had a timeout\n"
@@ -517,132 +768,6 @@ msgstr ""
 msgid "Print information about ATS state"
 msgstr "无法获取有关用户“%s”的信息:%s\n"
 
-#: src/ats/gnunet-ats-solver-eval.c:2781 src/ats/gnunet-ats-solver-eval.c:2822
-#, c-format
-msgid ""
-"Could not load quota for network `%s':  `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2799
-#, c-format
-msgid ""
-"No outbound quota configured for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:2840
-#, c-format
-msgid ""
-"No outbound quota configure for network `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3306
-#, fuzzy
-msgid "print logging"
-msgstr "未知的命令“%s”。\n"
-
-#: src/ats/gnunet-ats-solver-eval.c:3311
-msgid "save logging to disk"
-msgstr ""
-
-#: src/ats/gnunet-ats-solver-eval.c:3316
-msgid "disable normalization"
-msgstr ""
-
-#: src/ats/gnunet-service-ats-new.c:733
-#: src/ats/gnunet-service-ats_plugins.c:451
-#, fuzzy, c-format
-msgid "Failed to initialize solver `%s'!\n"
-msgstr "无法初始化 SQLite:%s。\n"
-
-#: src/ats/gnunet-service-ats_plugins.c:304
-#, 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:314
-#, c-format
-msgid "%s quota configured for network `%s' is %llu\n"
-msgstr ""
-
-#: src/ats/gnunet-service-ats_plugins.c:359
-#, c-format
-msgid ""
-"No %s-quota configured for network `%s', assigning default bandwidth %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats2_common.c:90
-#, c-format
-msgid ""
-"Could not load %s quota for network `%s': `%s', assigning default bandwidth %"
-"llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1274
-msgid "Problem size too large, cannot allocate memory!\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1870
-#, c-format
-msgid "Adding address for peer `%s' multiple times\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:1914
-#, c-format
-msgid "Updating address property for peer `%s' %p not added before\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2476
-msgid ""
-"MLP solver is not optimizing for anything, changing to feasibility check\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2516 src/ats/plugin_ats_mlp.c:2533
-#: src/ats/plugin_ats_mlp.c:2565 src/ats/plugin_ats_mlp.c:2583
-#: src/ats/plugin_ats_mlp.c:2602 src/ats/plugin_ats_proportional.c:1141
-#: src/ats/plugin_ats_ril.c:2612 src/ats/plugin_ats_ril.c:2629
-#: src/ats/plugin_ats_ril.c:2646 src/ats/plugin_ats_ril.c:2663
-#: src/ats/plugin_ats_ril.c:2680 src/ats/plugin_ats_ril.c:2697
-#: src/ats/plugin_ats_ril.c:2714 src/ats/plugin_ats_ril.c:2731
-#, fuzzy, c-format
-msgid "Invalid %s configuration %f \n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/ats/plugin_ats_mlp.c:2671
-#, c-format
-msgid ""
-"Adjusting inconsistent outbound quota configuration for network `%s', is %"
-"llu must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2680
-#, c-format
-msgid ""
-"Adjusting inconsistent inbound quota configuration for network `%s', is %llu "
-"must be at least %llu\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2690
-#, c-format
-msgid ""
-"Adjusting outbound quota configuration for network `%s'from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_mlp.c:2699
-#, c-format
-msgid ""
-"Adjusting inbound quota configuration for network `%s' from %llu to %.0f\n"
-msgstr ""
-
-#: src/ats/plugin_ats_proportional.c:1164
-#, 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 ""
@@ -774,28 +899,6 @@ 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:145
-#, 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:216
-#, 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:277
 #, c-format
 msgid "Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"
@@ -1052,8 +1155,30 @@ msgstr ""
 msgid "Enables having a conversation with other GNUnet users."
 msgstr ""
 
-#: src/conversation/gnunet-helper-audio-playback-gst.c:361
+#: 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:145
+#, 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:216
+#, 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:622
+#: src/conversation/gnunet-helper-audio-playback-gst.c:361
 #, c-format
 msgid "Read error from STDIN: %d %s\n"
 msgstr ""
@@ -1351,7 +1476,7 @@ msgid "# valid ephemeral keys received"
 msgstr "保存配置失败。"
 
 #: src/core/gnunet-service-core_kx.c:1180
-#: src/transport/gnunet-service-transport_validation.c:1128
+#: src/transport/gnunet-service-transport_validation.c:1129
 msgid "# PING messages received"
 msgstr ""
 
@@ -1372,7 +1497,7 @@ msgid "# keepalive messages sent"
 msgstr ""
 
 #: src/core/gnunet-service-core_kx.c:1351
-#: src/transport/gnunet-service-transport_validation.c:1461
+#: src/transport/gnunet-service-transport_validation.c:1462
 msgid "# PONG messages received"
 msgstr ""
 
@@ -1466,129 +1591,6 @@ msgstr ""
 msgid "# updates to my type map"
 msgstr ""
 
-#: src/credential/credential_misc.c:88
-#, fuzzy, c-format
-msgid "Unable to parse CRED record string `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/credential/gnunet-credential.c:264 src/namestore/gnunet-namestore.c:994
-#, c-format
-msgid "Ego `%s' not known to identity service\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:280
-#: src/credential/gnunet-credential.c:434
-#, fuzzy, c-format
-msgid "Issuer public key `%s' is not well-formed\n"
-msgstr "“%s”的参数无效。\n"
-
-#: src/credential/gnunet-credential.c:361
-#: src/credential/gnunet-credential.c:423
-#, fuzzy, c-format
-msgid "Issuer public key not well-formed\n"
-msgstr "“%s”的参数无效。\n"
-
-#: src/credential/gnunet-credential.c:372
-#: src/credential/gnunet-credential.c:444
-#, fuzzy, c-format
-msgid "Failed to connect to CREDENTIAL\n"
-msgstr "初始化“%s”服务失败。\n"
-
-#: src/credential/gnunet-credential.c:379
-#, c-format
-msgid "You must provide issuer the attribute\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:387
-#, c-format
-msgid "ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:403
-#, c-format
-msgid "Subject public key needed\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:414
-#, fuzzy, c-format
-msgid "Subject public key `%s' is not well-formed\n"
-msgstr "“%s”的参数无效。\n"
-
-#: src/credential/gnunet-credential.c:451
-#, c-format
-msgid "You must provide issuer and subject attributes\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:504
-#, c-format
-msgid "Issuer ego required\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:516
-#, c-format
-msgid "Please specify name to lookup, subject key and issuer key!\n"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:536
-msgid "create credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:540
-msgid "verify credential against attribute"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:545
-msgid "The public key of the subject to lookup the credential for"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:550
-msgid "The name of the credential presented by the subject"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:555
-msgid "The public key of the authority to verify the credential against"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:560
-#, fuzzy
-msgid "The ego to use"
-msgstr "消息尺寸"
-
-#: src/credential/gnunet-credential.c:565
-msgid "The issuer attribute to verify against or to issue"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:570
-msgid "The time to live for the credential"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:574
-msgid "collect credentials"
-msgstr ""
-
-#: src/credential/gnunet-credential.c:588
-#, fuzzy
-msgid "GNUnet credential resolver tool"
-msgstr "GNUnet 错误日志"
-
-#: src/credential/gnunet-service-credential.c:1138
-#: src/gns/gnunet-gns-helper-service-w32.c:727 src/gns/gnunet-gns.c:185
-#, fuzzy, c-format
-msgid "Failed to connect to GNS\n"
-msgstr "初始化“%s”服务失败。\n"
-
-#: src/credential/gnunet-service-credential.c:1144
-#: src/namestore/gnunet-namestore-fcfsd.c:1138
-#: src/namestore/gnunet-namestore.c:1019
-#, fuzzy, c-format
-msgid "Failed to connect to namestore\n"
-msgstr "初始化“%s”服务失败。\n"
-
-#: src/credential/plugin_gnsrecord_credential.c:186
-#, fuzzy, c-format
-msgid "Unable to parse ATTR record string `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
 #: src/datacache/datacache.c:119 src/datacache/datacache.c:311
 #: src/datastore/gnunet-service-datastore.c:757
 msgid "# bytes stored"
@@ -1638,14 +1640,12 @@ msgstr "sqlite 数据仓库"
 #: src/namecache/plugin_namecache_sqlite.c:52
 #: src/namestore/plugin_namestore_sqlite.c:53
 #: src/peerstore/plugin_peerstore_sqlite.c:52
-#: src/psycstore/plugin_psycstore_mysql.c:62
-#: src/reclaim/plugin_reclaim_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:56
 #: src/testbed/testbed_api_hosts.c:69 src/util/crypto_ecc.c:53
 #: src/util/crypto_ecc_setup.c:41 src/util/crypto_mpi.c:39
-#: src/include/gnunet_common.h:818 src/include/gnunet_common.h:827
+#: src/include/gnunet_common.h:840 src/include/gnunet_common.h:849
 #: src/scalarproduct/scalarproduct.h:35
 #, fuzzy, c-format
 msgid "`%s' failed at %s:%d with error: %s\n"
@@ -1655,7 +1655,6 @@ msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
 #: src/datastore/plugin_datastore_sqlite.c:508
 #: src/namecache/plugin_namecache_sqlite.c:229
 #: src/namestore/plugin_namestore_sqlite.c:265
-#: src/reclaim/plugin_reclaim_sqlite.c:336
 msgid "Tried to close sqlite without finalizing all prepared statements.\n"
 msgstr ""
 
@@ -1959,22 +1958,20 @@ msgid "`%s' for `%s' failed at %s:%d with error: %s\n"
 msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
 
 #: src/datastore/plugin_datastore_mysql.c:1180
-#: src/psycstore/plugin_psycstore_mysql.c:1936
 msgid "Mysql database running\n"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:276
-#: src/datastore/plugin_datastore_postgres.c:893
+#: src/datastore/plugin_datastore_postgres.c:280
+#: src/datastore/plugin_datastore_postgres.c:897
 msgid "Postgress exec failure"
 msgstr ""
 
-#: src/datastore/plugin_datastore_postgres.c:854
+#: src/datastore/plugin_datastore_postgres.c:858
 #, fuzzy
 msgid "Failed to drop table from database.\n"
 msgstr "发送消息失败。\n"
 
-#: src/datastore/plugin_datastore_postgres.c:952
-#: src/psycstore/plugin_psycstore_postgres.c:1506
+#: src/datastore/plugin_datastore_postgres.c:956
 msgid "Postgres database running\n"
 msgstr ""
 
@@ -1990,8 +1987,6 @@ msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
 #: src/namecache/plugin_namecache_sqlite.c:173
 #: src/namestore/plugin_namestore_sqlite.c:206
 #: src/peerstore/plugin_peerstore_sqlite.c:535
-#: src/psycstore/plugin_psycstore_sqlite.c:325
-#: src/reclaim/plugin_reclaim_sqlite.c:212
 #, c-format
 msgid "Unable to initialize SQLite: %s.\n"
 msgstr "无法初始化 SQLite:%s。\n"
@@ -2013,8 +2008,7 @@ msgstr ""
 
 #: src/datastore/plugin_datastore_sqlite.c:1405
 #: src/namecache/plugin_namecache_sqlite.c:557
-#: src/namestore/plugin_namestore_sqlite.c:750
-#: src/reclaim/plugin_reclaim_sqlite.c:711
+#: src/namestore/plugin_namestore_sqlite.c:751
 #, fuzzy
 msgid "Sqlite database running\n"
 msgstr "sqlite 数据仓库"
@@ -2086,6 +2080,54 @@ msgstr ""
 msgid "Prints all packets that go through the DHT."
 msgstr ""
 
+#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
+#, fuzzy, c-format
+msgid "Exiting as the number of peers is %u\n"
+msgstr "增加 TCP/IP 的最大连接数"
+
+#: src/dht/gnunet_dht_profiler.c:949 src/rps/gnunet-rps-profiler.c:3083
+#, fuzzy
+msgid "number of peers to start"
+msgstr "迭代次数"
+
+#: src/dht/gnunet_dht_profiler.c:954
+msgid "number of PUTs to perform per peer"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
+#: src/testbed/gnunet-testbed-profiler.c:300
+msgid "name of the file with the login information for the testbed"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:964
+msgid "delay between rounds for collecting statistics (default: 30 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:969
+msgid "delay to start doing PUTs (default: 1 sec)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:974
+msgid "delay to start doing GETs (default: 5 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:979
+msgid "replication degree for DHT PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:984
+msgid "chance that a peer is selected at random for PUTs"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:989
+msgid "timeout for DHT PUT and GET requests (default: 1 min)"
+msgstr ""
+
+#: src/dht/gnunet_dht_profiler.c:1009
+#, fuzzy
+msgid "Measure quality and performance of the DHT service."
+msgstr "无法访问该服务"
+
 #: src/dht/gnunet-dht-put.c:134
 msgid "Must provide KEY and DATA for DHT put!\n"
 msgstr ""
@@ -2331,54 +2373,6 @@ msgstr ""
 msgid "# DHT requests combined"
 msgstr ""
 
-#: src/dht/gnunet_dht_profiler.c:916 src/testbed/gnunet-testbed-profiler.c:253
-#, fuzzy, c-format
-msgid "Exiting as the number of peers is %u\n"
-msgstr "增加 TCP/IP 的最大连接数"
-
-#: src/dht/gnunet_dht_profiler.c:949 src/rps/gnunet-rps-profiler.c:2953
-#, fuzzy
-msgid "number of peers to start"
-msgstr "迭代次数"
-
-#: src/dht/gnunet_dht_profiler.c:954
-msgid "number of PUTs to perform per peer"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:959 src/nse/gnunet-nse-profiler.c:860
-#: src/testbed/gnunet-testbed-profiler.c:304
-msgid "name of the file with the login information for the testbed"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:964
-msgid "delay between rounds for collecting statistics (default: 30 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:969
-msgid "delay to start doing PUTs (default: 1 sec)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:974
-msgid "delay to start doing GETs (default: 5 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:979
-msgid "replication degree for DHT PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:984
-msgid "chance that a peer is selected at random for PUTs"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:989
-msgid "timeout for DHT PUT and GET requests (default: 1 min)"
-msgstr ""
-
-#: src/dht/gnunet_dht_profiler.c:1009
-#, 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"
@@ -2464,11 +2458,6 @@ msgstr "无效的进程优先级“%s”\n"
 msgid "`%s' must be installed SUID, will not run DNS interceptor\n"
 msgstr ""
 
-#: src/dv/gnunet-dv.c:175
-#, fuzzy
-msgid "Print information about DV state"
-msgstr "无法获取有关用户“%s”的信息:%s\n"
-
 #: src/exit/gnunet-daemon-exit.c:960
 msgid "# TCP packets sent via TUN"
 msgstr ""
@@ -2900,58 +2889,63 @@ msgstr ""
 msgid "Publishing failed: %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:724 src/fs/fs_publish.c:778 src/fs/fs_publish.c:823
-#: src/fs/fs_publish.c:844 src/fs/fs_publish.c:874 src/fs/fs_publish.c:1140
+#: src/fs/fs_publish.c:725
+#, fuzzy, c-format
+msgid "Can not index file `%s': %s.\n"
+msgstr "找不到接口“%s”的一个 IP 地址。\n"
+
+#: src/fs/fs_publish.c:782 src/fs/fs_publish.c:827 src/fs/fs_publish.c:848
+#: src/fs/fs_publish.c:878 src/fs/fs_publish.c:1144
 #, c-format
 msgid "Can not index file `%s': %s.  Will try to insert instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:780
+#: src/fs/fs_publish.c:784
 #, fuzzy
 msgid "error on index-start request to `fs' service"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/fs/fs_publish.c:825
+#: src/fs/fs_publish.c:829
 msgid "failed to compute hash"
 msgstr ""
 
-#: src/fs/fs_publish.c:845
+#: src/fs/fs_publish.c:849
 msgid "filename too long"
 msgstr ""
 
-#: src/fs/fs_publish.c:876
+#: src/fs/fs_publish.c:880
 msgid "could not connect to `fs' service"
 msgstr ""
 
-#: src/fs/fs_publish.c:902
+#: src/fs/fs_publish.c:906
 #, fuzzy, c-format
 msgid "Failed to get file identifiers for `%s'\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/fs/fs_publish.c:991 src/fs/fs_publish.c:1027
+#: src/fs/fs_publish.c:995 src/fs/fs_publish.c:1031
 msgid "Can not create LOC URI. Will continue with CHK instead.\n"
 msgstr ""
 
-#: src/fs/fs_publish.c:1094
+#: src/fs/fs_publish.c:1098
 #, c-format
 msgid "Recursive upload failed at `%s': %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:1102
+#: src/fs/fs_publish.c:1106
 #, c-format
 msgid "Recursive upload failed: %s"
 msgstr ""
 
-#: src/fs/fs_publish.c:1142
+#: src/fs/fs_publish.c:1146
 msgid "needs to be an actual file"
 msgstr ""
 
-#: src/fs/fs_publish.c:1381
+#: src/fs/fs_publish.c:1385
 #, fuzzy, c-format
 msgid "Datastore failure: %s"
 msgstr "“%s”已连接到“%s”。\n"
 
-#: src/fs/fs_publish.c:1472
+#: src/fs/fs_publish.c:1476
 #, c-format
 msgid "Reserving space for %u entries and %llu bytes for publication\n"
 msgstr ""
@@ -3022,93 +3016,93 @@ msgstr "打开日志文件“%s”失败:%s\n"
 msgid "Failed to compute hash of file."
 msgstr ""
 
-#: src/fs/fs_uri.c:234
+#: src/fs/fs_uri.c:236
 #, no-c-format
 msgid "Malformed KSK URI (`%' must be followed by HEX number)"
 msgstr ""
 
-#: src/fs/fs_uri.c:293
+#: src/fs/fs_uri.c:295
 msgid "Malformed KSK URI (must not begin or end with `+')"
 msgstr ""
 
-#: src/fs/fs_uri.c:311
+#: src/fs/fs_uri.c:313
 msgid "Malformed KSK URI (`++' not allowed)"
 msgstr ""
 
-#: src/fs/fs_uri.c:318
+#: src/fs/fs_uri.c:320
 msgid "Malformed KSK URI (quotes not balanced)"
 msgstr ""
 
-#: src/fs/fs_uri.c:388
+#: src/fs/fs_uri.c:390
 msgid "Malformed SKS URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:429
+#: src/fs/fs_uri.c:431
 msgid "Malformed CHK URI (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:444
+#: src/fs/fs_uri.c:446
 msgid "Malformed CHK URI (failed to decode CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:523
+#: src/fs/fs_uri.c:525
 msgid "LOC URI malformed (wrong syntax)"
 msgstr ""
 
-#: src/fs/fs_uri.c:538
+#: src/fs/fs_uri.c:540
 msgid "LOC URI malformed (no CHK)"
 msgstr ""
 
-#: src/fs/fs_uri.c:548
+#: src/fs/fs_uri.c:550
 msgid "LOC URI malformed (missing LOC)"
 msgstr ""
 
-#: src/fs/fs_uri.c:556
+#: src/fs/fs_uri.c:558
 msgid "LOC URI malformed (wrong syntax for public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:564
+#: src/fs/fs_uri.c:566
 msgid "LOC URI malformed (could not decode public key)"
 msgstr ""
 
-#: src/fs/fs_uri.c:570
+#: src/fs/fs_uri.c:572
 msgid "LOC URI malformed (could not find signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:576
+#: src/fs/fs_uri.c:578
 msgid "LOC URI malformed (wrong syntax for signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:585
+#: src/fs/fs_uri.c:587
 msgid "LOC URI malformed (could not decode signature)"
 msgstr ""
 
-#: src/fs/fs_uri.c:591
+#: src/fs/fs_uri.c:593
 msgid "LOC URI malformed (wrong syntax for expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:597
+#: src/fs/fs_uri.c:599
 msgid "LOC URI malformed (could not parse expiration time)"
 msgstr ""
 
-#: src/fs/fs_uri.c:609
+#: src/fs/fs_uri.c:611
 msgid "LOC URI malformed (signature failed validation)"
 msgstr ""
 
-#: src/fs/fs_uri.c:643
+#: src/fs/fs_uri.c:645
 #, fuzzy
 msgid "invalid argument"
 msgstr "“%s”的参数无效。\n"
 
-#: src/fs/fs_uri.c:655
+#: src/fs/fs_uri.c:657
 msgid "Unrecognized URI type"
 msgstr ""
 
-#: src/fs/fs_uri.c:1059 src/fs/fs_uri.c:1086
+#: src/fs/fs_uri.c:1061 src/fs/fs_uri.c:1088
 msgid "No keywords specified!\n"
 msgstr ""
 
-#: src/fs/fs_uri.c:1092
+#: src/fs/fs_uri.c:1094
 msgid "Number of double-quotes not balanced!\n"
 msgstr ""
 
@@ -3148,11 +3142,11 @@ msgstr ""
 msgid "set the desired LEVEL of sender-anonymity"
 msgstr ""
 
-#: src/fs/gnunet-auto-share.c:772 src/fs/gnunet-publish.c:907
+#: src/fs/gnunet-auto-share.c:772
 msgid "disable adding the creation time to the metadata of the uploaded file"
 msgstr ""
 
-#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:912
+#: src/fs/gnunet-auto-share.c:777 src/fs/gnunet-publish.c:907
 msgid "do not use libextractor to add keywords or metadata"
 msgstr ""
 
@@ -3235,7 +3229,7 @@ msgid "Downloading `%s' done (%s/s).\n"
 msgstr ""
 
 #: src/fs/gnunet-download.c:216 src/fs/gnunet-publish.c:295
-#: src/fs/gnunet-search.c:212 src/fs/gnunet-unindex.c:107
+#: src/fs/gnunet-search.c:215 src/fs/gnunet-unindex.c:107
 #, c-format
 msgid "Unexpected status: %d\n"
 msgstr ""
@@ -3259,12 +3253,12 @@ msgid "Target filename must be specified.\n"
 msgstr ""
 
 #: src/fs/gnunet-download.c:291 src/fs/gnunet-publish.c:872
-#: src/fs/gnunet-search.c:270 src/fs/gnunet-unindex.c:139
+#: src/fs/gnunet-search.c:273 src/fs/gnunet-unindex.c:139
 #, fuzzy, c-format
 msgid "Could not initialize `%s' subsystem.\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:312
+#: src/fs/gnunet-download.c:339 src/fs/gnunet-search.c:315
 msgid "set the desired LEVEL of receiver-anonymity"
 msgstr ""
 
@@ -3272,7 +3266,7 @@ msgstr ""
 msgid "delete incomplete downloads (when aborted with CTRL-C)"
 msgstr ""
 
-#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:316
+#: src/fs/gnunet-download.c:349 src/fs/gnunet-search.c:319
 msgid "only search the local peer (no P2P network search)"
 msgstr ""
 
@@ -3298,6 +3292,14 @@ msgid ""
 "chk/...)"
 msgstr ""
 
+#: src/fs/gnunet-fs.c:119
+msgid "print a list of all indexed files"
+msgstr ""
+
+#: src/fs/gnunet-fs.c:130
+msgid "Special file-sharing operations"
+msgstr ""
+
 #: src/fs/gnunet-fs-profiler.c:211
 msgid "run the experiment with COUNT peers"
 msgstr ""
@@ -3314,14 +3316,6 @@ msgstr ""
 msgid "run a testbed to measure file-sharing performance"
 msgstr ""
 
-#: src/fs/gnunet-fs.c:119
-msgid "print a list of all indexed files"
-msgstr ""
-
-#: src/fs/gnunet-fs.c:130
-msgid "Special file-sharing operations"
-msgstr ""
-
 #: src/fs/gnunet-publish.c:219 src/fs/gnunet-publish.c:231
 #, c-format
 msgid "Publishing `%s' at %llu/%llu (%s remaining)\n"
@@ -3408,7 +3402,7 @@ msgstr ""
 
 #: src/fs/gnunet-publish.c:687
 #, fuzzy
-msgid "Internal error scanning directory.\n"
+msgid "Error scanning directory.\n"
 msgstr "未知错误。\n"
 
 #: src/fs/gnunet-publish.c:715
@@ -3453,6 +3447,10 @@ msgstr ""
 msgid "Option `%s' makes no sense without option `%s'.\n"
 msgstr ""
 
+#: src/fs/gnunet-publish.c:911
+msgid "enable adding the creation time to the metadata of the uploaded file"
+msgstr ""
+
 #: src/fs/gnunet-publish.c:916
 msgid ""
 "print list of extracted keywords that would be used, but do not perform "
@@ -3511,32 +3509,32 @@ msgstr ""
 msgid "Failed to write directory with search results to `%s'\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:204
+#: src/fs/gnunet-search.c:207
 #, fuzzy, c-format
 msgid "Error searching: %s.\n"
 msgstr "创建用户出错"
 
-#: src/fs/gnunet-search.c:260
+#: src/fs/gnunet-search.c:263
 msgid "Could not create keyword URI from arguments.\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:284
+#: src/fs/gnunet-search.c:287
 msgid "Could not start searching.\n"
 msgstr ""
 
-#: src/fs/gnunet-search.c:321
+#: src/fs/gnunet-search.c:324
 msgid "write search results to file starting with PREFIX"
 msgstr ""
 
-#: src/fs/gnunet-search.c:326
+#: src/fs/gnunet-search.c:329
 msgid "automatically terminate search after DELAY"
 msgstr ""
 
-#: src/fs/gnunet-search.c:332
+#: src/fs/gnunet-search.c:335
 msgid "automatically terminate search after VALUE results are found"
 msgstr ""
 
-#: src/fs/gnunet-search.c:348
+#: src/fs/gnunet-search.c:351
 msgid "Search GNUnet for files that were published on GNUnet"
 msgstr ""
 
@@ -3924,39 +3922,39 @@ msgstr ""
 msgid "GNUnet HTTP server to create business cards"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:203
+#: src/gns/gnunet-dns2gns.c:214
 #, fuzzy
 msgid "Failed to pack DNS response into UDP packet!\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/gns/gnunet-dns2gns.c:405
+#: src/gns/gnunet-dns2gns.c:416
 #, c-format
 msgid "Cannot parse DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:421
+#: src/gns/gnunet-dns2gns.c:432
 #, c-format
 msgid "Received malformed DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:429
+#: src/gns/gnunet-dns2gns.c:440
 #, c-format
 msgid "Received unsupported DNS request from %s\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:588
+#: src/gns/gnunet-dns2gns.c:600
 msgid "No DNS server specified!\n"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:688
+#: src/gns/gnunet-dns2gns.c:748
 msgid "IP of recursive DNS resolver to use (required)"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:693
+#: src/gns/gnunet-dns2gns.c:753
 msgid "UDP port to listen on for inbound DNS requests; default: 2853"
 msgstr ""
 
-#: src/gns/gnunet-dns2gns.c:710
+#: src/gns/gnunet-dns2gns.c:770
 msgid "GNUnet DNS-to-GNS proxy (a DNS server)"
 msgstr ""
 
@@ -3972,6 +3970,28 @@ msgstr ""
 msgid "look for GNS2DNS records instead of ANY"
 msgstr ""
 
+#: src/gns/gnunet-gns.c:199
+#, c-format
+msgid "Invalid typename specified, assuming `ANY'\n"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:233
+msgid "Lookup a record for the given name"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:238
+msgid "Specify the type of the record to lookup"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:242
+msgid "No unneeded output"
+msgstr ""
+
+#: src/gns/gnunet-gns.c:258
+#, fuzzy
+msgid "GNUnet GNS resolver tool"
+msgstr "GNUnet 错误日志"
+
 #: src/gns/gnunet-gns-helper-service-w32.c:602
 msgid "Not ready to process requests, lacking ego data\n"
 msgstr ""
@@ -4006,129 +4026,107 @@ msgstr ""
 msgid "%s failed at %s:%d: `%s'\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:980
+#: src/gns/gnunet-gns-proxy.c:989
 #, fuzzy, c-format
 msgid "Unsupported CURL TLS backend %d\n"
 msgstr "未知的命令“%s”。\n"
 
-#: src/gns/gnunet-gns-proxy.c:1005
+#: src/gns/gnunet-gns-proxy.c:1014
 #, fuzzy, c-format
 msgid "Failed to fetch CN from cert: %s\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/gns/gnunet-gns-proxy.c:1026
+#: src/gns/gnunet-gns-proxy.c:1035
 #, fuzzy, c-format
 msgid "Failed to initialize DANE: %s\n"
 msgstr "无法初始化 SQLite:%s。\n"
 
-#: src/gns/gnunet-gns-proxy.c:1041
+#: src/gns/gnunet-gns-proxy.c:1050
 #, fuzzy, c-format
 msgid "Failed to parse DANE record: %s\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/gns/gnunet-gns-proxy.c:1056
+#: src/gns/gnunet-gns-proxy.c:1065
 #, fuzzy, c-format
 msgid "Failed to verify TLS connection using DANE: %s\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/gns/gnunet-gns-proxy.c:1066
+#: src/gns/gnunet-gns-proxy.c:1075
 #, c-format
 msgid "Failed DANE verification failed with GnuTLS verify status code: %u\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1090
+#: src/gns/gnunet-gns-proxy.c:1099
 #, c-format
 msgid "TLS certificate subject name (%s) does not match `%s': %d\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:1221
+#: src/gns/gnunet-gns-proxy.c:1230
 #, c-format
 msgid "Cookie domain `%s' supplied by server is invalid\n"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:2121
+#: src/gns/gnunet-gns-proxy.c:2131
 #, fuzzy, c-format
 msgid "Unsupported HTTP method `%s'\n"
 msgstr "未知的命令“%s”。\n"
 
-#: src/gns/gnunet-gns-proxy.c:2642
+#: src/gns/gnunet-gns-proxy.c:2652
 #, fuzzy, c-format
 msgid "Unable to import private key from file `%s'\n"
 msgstr "无法创建用户账户:"
 
-#: src/gns/gnunet-gns-proxy.c:2674
+#: src/gns/gnunet-gns-proxy.c:2684
 #, fuzzy, c-format
 msgid "Unable to import certificate from `%s'\n"
 msgstr "无法保存配置文件“%s”:"
 
-#: src/gns/gnunet-gns-proxy.c:2875
+#: src/gns/gnunet-gns-proxy.c:2885
 #, fuzzy, c-format
 msgid "Failed to start HTTPS server for `%s'\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/gns/gnunet-gns-proxy.c:2897 src/rest/gnunet-rest-server.c:658
+#: src/gns/gnunet-gns-proxy.c:2907 src/rest/gnunet-rest-server.c:668
 #, fuzzy
 msgid "Failed to pass client to MHD\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/gns/gnunet-gns-proxy.c:3233
+#: src/gns/gnunet-gns-proxy.c:3243
 #, fuzzy, c-format
 msgid "Unsupported socks version %d\n"
 msgstr "未知的命令“%s”。\n"
 
-#: src/gns/gnunet-gns-proxy.c:3262
+#: src/gns/gnunet-gns-proxy.c:3272
 #, fuzzy, c-format
 msgid "Unsupported socks command %d\n"
 msgstr "未知的命令“%s”。\n"
 
-#: src/gns/gnunet-gns-proxy.c:3345
+#: src/gns/gnunet-gns-proxy.c:3355
 #, fuzzy, c-format
 msgid "Unsupported socks address type %d\n"
 msgstr "未知的命令“%s”。\n"
 
-#: src/gns/gnunet-gns-proxy.c:3635
+#: src/gns/gnunet-gns-proxy.c:3693
 #, fuzzy, c-format
 msgid "Failed to load X.509 key and certificate from `%s'\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/gns/gnunet-gns-proxy.c:3763
+#: src/gns/gnunet-gns-proxy.c:3821
 msgid "listen on specified port (default: 7777)"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3768
+#: src/gns/gnunet-gns-proxy.c:3826
 msgid "pem file to use as CA"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3772
+#: src/gns/gnunet-gns-proxy.c:3830
 msgid "disable use of IPv6"
 msgstr ""
 
-#: src/gns/gnunet-gns-proxy.c:3798
+#: src/gns/gnunet-gns-proxy.c:3856
 msgid "GNUnet GNS proxy"
 msgstr ""
 
-#: src/gns/gnunet-gns.c:199
-#, c-format
-msgid "Invalid typename specified, assuming `ANY'\n"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:233
-msgid "Lookup a record for the given name"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:238
-msgid "Specify the type of the record to lookup"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:242
-msgid "No unneeded output"
-msgstr ""
-
-#: src/gns/gnunet-gns.c:258
-#, fuzzy
-msgid "GNUnet GNS resolver tool"
-msgstr "GNUnet 错误日志"
-
 #: src/gns/gnunet-service-gns.c:506
 #, fuzzy
 msgid "Properly base32-encoded public key required"
@@ -4140,8 +4138,8 @@ msgid "Failed to connect to the namecache!\n"
 msgstr "初始化“%s”服务失败。\n"
 
 #: src/gns/gnunet-service-gns.c:561
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #: src/zonemaster/gnunet-service-zonemaster.c:875
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:440
 #, fuzzy
 msgid "Could not connect to DHT!\n"
 msgstr "无法连接到 %s:%u:%s\n"
@@ -4234,6 +4232,10 @@ msgstr "解析配置文件“%s”失败\n"
 msgid "Unable to parse BOX record string `%s'\n"
 msgstr "解析配置文件“%s”失败\n"
 
+#: src/gns/plugin_rest_gns.c:452
+msgid "Gns REST API initialized\n"
+msgstr ""
+
 #: src/gnsrecord/plugin_gnsrecord_dns.c:359
 #, fuzzy, c-format
 msgid "Unable to parse IPv4 address `%s'\n"
@@ -4614,7 +4616,7 @@ msgid "# hostlist advertisements send"
 msgstr ""
 
 #: src/hostlist/gnunet-daemon-hostlist_server.c:679
-#: src/transport/gnunet-service-transport.c:2814
+#: src/transport/gnunet-service-transport.c:2827
 msgid "Could not access PEERINFO service.  Exiting.\n"
 msgstr ""
 
@@ -4745,15 +4747,15 @@ msgstr "解析配置文件“%s”失败\n"
 msgid "Failed to create directory `%s' for storing egos\n"
 msgstr "解析配置文件“%s”失败\n"
 
+#: src/identity/plugin_rest_identity.c:1297
+msgid "Identity REST API initialized\n"
+msgstr ""
+
 #: src/json/json.c:123
 #, fuzzy, c-format
 msgid "Failed to parse JSON in option `%s': %s (%s)\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/multicast/gnunet-multicast.c:48 src/multicast/gnunet-multicast.c:72
-msgid "This command doesn't do anything yet."
-msgstr ""
-
 #: src/my/my.c:196 src/my/my.c:215
 #, fuzzy, c-format
 msgid "%s failed at %s:%d with error: %s\n"
@@ -4818,8 +4820,8 @@ msgstr "连接 %s:%u 出错。守护程序在运行吗?\n"
 
 #: src/namecache/plugin_namecache_flat.c:121
 #: src/namecache/plugin_namecache_flat.c:255
-#: src/namestore/plugin_namestore_heap.c:148
-#: src/namestore/plugin_namestore_heap.c:395
+#: src/namestore/plugin_namestore_heap.c:179
+#: src/namestore/plugin_namestore_heap.c:412
 #: src/peerstore/plugin_peerstore_flat.c:379
 #: src/peerstore/plugin_peerstore_flat.c:538
 #, fuzzy, c-format
@@ -4827,14 +4829,14 @@ msgid "Unable to initialize file: %s.\n"
 msgstr "无法初始化 SQLite:%s。\n"
 
 #: src/namecache/plugin_namecache_flat.c:132
-#: src/namestore/plugin_namestore_heap.c:159
+#: src/namestore/plugin_namestore_heap.c:190
 #: src/peerstore/plugin_peerstore_flat.c:394
 #, fuzzy, c-format
 msgid "Unable to get filesize: %s.\n"
 msgstr "发送消息失败。\n"
 
 #: src/namecache/plugin_namecache_flat.c:151
-#: src/namestore/plugin_namestore_heap.c:172
+#: src/namestore/plugin_namestore_heap.c:203
 #: src/peerstore/plugin_peerstore_flat.c:406
 #, fuzzy, c-format
 msgid "Unable to read file: %s.\n"
@@ -4853,70 +4855,6 @@ msgstr "sqlite 数据仓库"
 msgid "Failed to setup database at `%s'\n"
 msgstr "运行 %s失败:%s %d\n"
 
-#: src/namestore/gnunet-namestore-fcfsd.c:549
-#, fuzzy, c-format
-msgid "Unsupported form value `%s'\n"
-msgstr "未知的命令“%s”。\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:576
-#, fuzzy, c-format
-msgid "Failed to create record for domain `%s': %s\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:597
-msgid "Error when mapping zone to name\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:629
-#, c-format
-msgid "Found existing name `%s' for the given key\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:689
-#, c-format
-msgid "Found %u existing records for domain `%s'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:777
-#, fuzzy, c-format
-msgid "Failed to create page for `%s'\n"
-msgstr "发送消息失败。\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:796
-#, fuzzy, c-format
-msgid "Failed to setup post processor for `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:832
-msgid "Domain name must not contain `.'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:841
-msgid "Domain name must not contain `+'\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1071
-msgid "No ego configured for `fcfsd` subsystem\n"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1099
-#, fuzzy
-msgid "Failed to start HTTP server\n"
-msgstr "初始化“%s”服务失败。\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1147
-#, fuzzy
-msgid "Failed to connect to identity\n"
-msgstr "初始化“%s”服务失败。\n"
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1173
-msgid "name of the zone that is to be managed by FCFSD"
-msgstr ""
-
-#: src/namestore/gnunet-namestore-fcfsd.c:1192
-msgid "GNU Name System First Come First Serve name registration service"
-msgstr ""
-
 #: src/namestore/gnunet-namestore.c:341
 #, c-format
 msgid "Adding record failed: %s\n"
@@ -5124,6 +5062,70 @@ msgstr ""
 msgid "name of the ego controlling the zone"
 msgstr ""
 
+#: src/namestore/gnunet-namestore-fcfsd.c:549
+#, fuzzy, c-format
+msgid "Unsupported form value `%s'\n"
+msgstr "未知的命令“%s”。\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:576
+#, fuzzy, c-format
+msgid "Failed to create record for domain `%s': %s\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:597
+msgid "Error when mapping zone to name\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:629
+#, c-format
+msgid "Found existing name `%s' for the given key\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:689
+#, c-format
+msgid "Found %u existing records for domain `%s'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:777
+#, fuzzy, c-format
+msgid "Failed to create page for `%s'\n"
+msgstr "发送消息失败。\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:796
+#, fuzzy, c-format
+msgid "Failed to setup post processor for `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:832
+msgid "Domain name must not contain `.'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:841
+msgid "Domain name must not contain `+'\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1071
+msgid "No ego configured for `fcfsd` subsystem\n"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1099
+#, fuzzy
+msgid "Failed to start HTTP server\n"
+msgstr "初始化“%s”服务失败。\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1147
+#, fuzzy
+msgid "Failed to connect to identity\n"
+msgstr "初始化“%s”服务失败。\n"
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1173
+msgid "name of the zone that is to be managed by FCFSD"
+msgstr ""
+
+#: src/namestore/gnunet-namestore-fcfsd.c:1192
+msgid "GNU Name System First Come First Serve name registration service"
+msgstr ""
+
 #: src/namestore/gnunet-service-namestore.c:900
 #, fuzzy, c-format
 msgid "Failed to replicate block in namecache: %s\n"
@@ -5141,11 +5143,15 @@ msgstr ""
 msgid "Namestore failed to store record\n"
 msgstr ""
 
-#: src/namestore/plugin_namestore_heap.c:778
+#: src/namestore/plugin_namestore_heap.c:773
 #, fuzzy
 msgid "heap file database running\n"
 msgstr "sqlite 数据仓库"
 
+#: src/namestore/plugin_rest_namestore.c:1079
+msgid "Namestore REST API initialized\n"
+msgstr ""
+
 #: src/nat-auto/gnunet-nat-auto.c:193
 #, fuzzy
 msgid "Suggested configuration changes:\n"
@@ -5425,6 +5431,10 @@ msgstr ""
 msgid "`upnpc' command not found\n"
 msgstr ""
 
+#: src/nse/gnunet-nse.c:122
+msgid "Show network size estimates from NSE service."
+msgstr ""
+
 #: src/nse/gnunet-nse-profiler.c:849
 msgid "limit to the number of connections to NSE services, 0 for none"
 msgstr ""
@@ -5450,16 +5460,66 @@ msgstr ""
 msgid "Measure quality and performance of the NSE service."
 msgstr "无法访问该服务"
 
-#: src/nse/gnunet-nse.c:122
-msgid "Show network size estimates from NSE service."
-msgstr ""
-
 #: src/nse/gnunet-service-nse.c:1534
 #: src/revocation/gnunet-service-revocation.c:843 src/util/gnunet-scrypt.c:276
 #, fuzzy
 msgid "Value is too large.\n"
 msgstr "值不在合法范围内。"
 
+#: src/peerinfo/gnunet-service-peerinfo.c:178
+#, c-format
+msgid "Removing expired address of transport `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:313
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s': %s\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:334
+#: src/peerinfo/gnunet-service-peerinfo.c:365
+#, fuzzy, c-format
+msgid "Failed to parse HELLO in file `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:449
+msgid "# peers known"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:492
+#, c-format
+msgid ""
+"File `%s' in directory `%s' does not match naming convention. Removed.\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:659
+#, fuzzy, c-format
+msgid "Scanning directory `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:667
+#, c-format
+msgid "Still no peers found in `%s'!\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1100
+#, fuzzy, c-format
+msgid "Cleaning up directory `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1438
+#, c-format
+msgid "Importing HELLOs from `%s'\n"
+msgstr ""
+
+#: src/peerinfo/gnunet-service-peerinfo.c:1451
+msgid "Skipping import of included HELLOs\n"
+msgstr ""
+
+#: src/peerinfo/peerinfo_api.c:220
+msgid "Failed to receive response from `PEERINFO' service."
+msgstr ""
+
 #: src/peerinfo-tool/gnunet-peerinfo.c:239
 #, fuzzy, c-format
 msgid "%sPeer `%s'\n"
@@ -5471,7 +5531,7 @@ msgid "\tExpires: %s \t %s\n"
 msgstr ""
 
 #: src/peerinfo-tool/gnunet-peerinfo.c:299
-#: src/rest-plugins/plugin_rest_peerinfo.c:501
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:501
 #, fuzzy, c-format
 msgid "Failure: Cannot convert address to string for peer `%s'\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
@@ -5535,75 +5595,25 @@ msgid "Print information about peers."
 msgstr "无法获取有关用户“%s”的信息:%s\n"
 
 #: src/peerinfo-tool/gnunet-peerinfo_plugins.c:105
-#: src/transport/gnunet-service-transport_plugins.c:168
-#, c-format
-msgid "Starting transport plugins `%s'\n"
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:109
-#: src/transport/gnunet-service-transport_plugins.c:173
-#, c-format
-msgid "Loading `%s' transport plugin\n"
-msgstr ""
-
-#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:129
-#: src/transport/gnunet-service-transport_plugins.c:208
-#, fuzzy, c-format
-msgid "Failed to load transport plugin for `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:178
-#, c-format
-msgid "Removing expired address of transport `%s'\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:313
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s': %s\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:334
-#: src/peerinfo/gnunet-service-peerinfo.c:365
-#, fuzzy, c-format
-msgid "Failed to parse HELLO in file `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:449
-msgid "# peers known"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:492
-#, c-format
-msgid ""
-"File `%s' in directory `%s' does not match naming convention. Removed.\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:659
-#, fuzzy, c-format
-msgid "Scanning directory `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:667
-#, c-format
-msgid "Still no peers found in `%s'!\n"
-msgstr ""
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1100
-#, fuzzy, c-format
-msgid "Cleaning up directory `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/peerinfo/gnunet-service-peerinfo.c:1438
+#: src/transport/gnunet-service-transport_plugins.c:168
 #, c-format
-msgid "Importing HELLOs from `%s'\n"
+msgid "Starting transport plugins `%s'\n"
 msgstr ""
 
-#: src/peerinfo/gnunet-service-peerinfo.c:1451
-msgid "Skipping import of included HELLOs\n"
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:109
+#: src/transport/gnunet-service-transport_plugins.c:173
+#, c-format
+msgid "Loading `%s' transport plugin\n"
 msgstr ""
 
-#: src/peerinfo/peerinfo_api.c:220
-msgid "Failed to receive response from `PEERINFO' service."
+#: src/peerinfo-tool/gnunet-peerinfo_plugins.c:129
+#: src/transport/gnunet-service-transport_plugins.c:208
+#, fuzzy, c-format
+msgid "Failed to load transport plugin for `%s'\n"
+msgstr "解析配置文件“%s”失败\n"
+
+#: src/peerinfo-tool/plugin_rest_peerinfo.c:796
+msgid "Peerinfo REST API initialized\n"
 msgstr ""
 
 #: src/peerstore/gnunet-peerstore.c:91
@@ -5615,22 +5625,21 @@ msgstr ""
 msgid "Could not load database backend `%s'\n"
 msgstr "无法解析“%s”(%s):%s\n"
 
-#: src/peerstore/peerstore_api.c:532 src/peerstore/peerstore_api.c:581
+#: src/peerstore/peerstore_api.c:605 src/peerstore/peerstore_api.c:657
 #, fuzzy
 msgid "Unexpected iteration response, this should not happen.\n"
 msgstr "输出格式未知,不应出现这种情况。\n"
 
-#: src/peerstore/peerstore_api.c:595
+#: src/peerstore/peerstore_api.c:671
 #, fuzzy
 msgid "Received a malformed response from service."
 msgstr "“%s”的参数无效。\n"
 
-#: src/peerstore/peerstore_api.c:731
+#: src/peerstore/peerstore_api.c:807
 msgid "Received a watch result for a non existing watch.\n"
 msgstr ""
 
 #: src/peerstore/plugin_peerstore_sqlite.c:453
-#: src/psycstore/plugin_psycstore_sqlite.c:282
 #, fuzzy, c-format
 msgid ""
 "Error executing SQL query: %s\n"
@@ -5638,8 +5647,6 @@ msgid ""
 msgstr "创建用户出错"
 
 #: src/peerstore/plugin_peerstore_sqlite.c:488
-#: src/psycstore/plugin_psycstore_mysql.c:250
-#: src/psycstore/plugin_psycstore_sqlite.c:259
 #, fuzzy, c-format
 msgid ""
 "Error preparing SQL query: %s\n"
@@ -5656,114 +5663,6 @@ msgstr "发送消息失败。\n"
 msgid "PQprepare (`%s' as `%s') failed with error: %s\n"
 msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
 
-#: src/psycstore/gnunet-service-psycstore.c:249
-#, fuzzy
-msgid "Failed to store membership information!\n"
-msgstr "打开日志文件“%s”失败:%s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:271
-#, fuzzy
-msgid "Failed to test membership!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:300
-#, fuzzy
-msgid "Dropping invalid fragment\n"
-msgstr "“%s”的参数无效。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:311
-#, fuzzy
-msgid "Failed to store fragment\n"
-msgstr "运行 %s失败:%s %d\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:368
-#, fuzzy
-msgid "Failed to get fragment!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:434
-#, fuzzy
-msgid "Failed to get message!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:464
-#, fuzzy
-msgid "Failed to get message fragment!\n"
-msgstr "打开日志文件“%s”失败:%s\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:494
-#, fuzzy
-msgid "Failed to get master counters!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:675
-#, fuzzy, c-format
-msgid "Failed to begin modifying state: %d\n"
-msgstr "运行 %s失败:%s %d\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:685
-#, fuzzy, c-format
-msgid "Failed to modify state: %d\n"
-msgstr "运行 %s失败:%s %d\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:693
-#, fuzzy
-msgid "Failed to end modifying state!\n"
-msgstr "运行 %s失败:%s %d\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:730
-#, fuzzy
-msgid "Tried to set invalid state variable name!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:744
-#, fuzzy
-msgid "Failed to begin synchronizing state!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:761
-#, fuzzy
-msgid "Failed to end synchronizing state!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:779
-#: src/psycstore/gnunet-service-psycstore.c:795
-#, fuzzy
-msgid "Failed to reset state!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:824
-#: src/psycstore/gnunet-service-psycstore.c:881
-#, fuzzy
-msgid "Tried to get invalid state variable name!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/gnunet-service-psycstore.c:851
-#: src/psycstore/gnunet-service-psycstore.c:896
-#, fuzzy
-msgid "Failed to get state variable!\n"
-msgstr "发送消息失败。\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:281
-#, fuzzy
-msgid "Unable to initialize Mysql.\n"
-msgstr "无法初始化 SQLite:%s。\n"
-
-#: src/psycstore/plugin_psycstore_mysql.c:291
-#, fuzzy, c-format
-msgid "Failed to run SQL statement `%s'\n"
-msgstr "解析配置文件“%s”失败\n"
-
-#: src/psycstore/plugin_psycstore_sqlite.c:61
-#, fuzzy, c-format
-msgid "`%s' failed at %s:%d with error: %s (%d)\n"
-msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
-
-#: src/psycstore/plugin_psycstore_sqlite.c:1924
-#, fuzzy
-msgid "SQLite database running\n"
-msgstr "sqlite 数据仓库"
-
 #: src/pt/gnunet-daemon-pt.c:423
 msgid "Failed to pack DNS request.  Dropping.\n"
 msgstr ""
@@ -5819,61 +5718,79 @@ msgstr "初始化“%s”服务失败。\n"
 msgid "Daemon to run to perform IP protocol translation to GNUnet"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:467
+#: src/reclaim/gnunet-reclaim.c:495
 #, fuzzy, c-format
 msgid "Ego is required\n"
 msgstr "%s:选项“%s”有歧义\n"
 
-#: src/reclaim/gnunet-reclaim.c:475
+#: src/reclaim/gnunet-reclaim.c:501
 #, c-format
 msgid "Attribute value missing!\n"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:483
+#: src/reclaim/gnunet-reclaim.c:507
 #, fuzzy, c-format
 msgid "Requesting party key is required!\n"
 msgstr "设置要使用的昵称(必须)"
 
-#: src/reclaim/gnunet-reclaim.c:506
-msgid "Add attribute"
+#: src/reclaim/gnunet-reclaim.c:524
+msgid "Add an attribute NAME"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:512
-msgid "Attribute value"
+#: src/reclaim/gnunet-reclaim.c:527
+msgid "Add an attribute with ID"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:517
-msgid "Ego"
+#: src/reclaim/gnunet-reclaim.c:530
+msgid "The attribute VALUE"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:522
-msgid "Audience (relying party)"
+#: src/reclaim/gnunet-reclaim.c:533
+#, fuzzy
+msgid "The EGO to use"
+msgstr "消息尺寸"
+
+#: src/reclaim/gnunet-reclaim.c:535
+msgid "Specify the relying party for issue"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:526
-msgid "List attributes for Ego"
+#: src/reclaim/gnunet-reclaim.c:538
+msgid "List attributes for EGO"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:531
-msgid "Issue a ticket"
+#: src/reclaim/gnunet-reclaim.c:542
+msgid "Issue a ticket for a set of attributes separated by comma"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:536
+#: src/reclaim/gnunet-reclaim.c:545
 msgid "Consume a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:541
+#: src/reclaim/gnunet-reclaim.c:548
 msgid "Revoke a ticket"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:546
+#: src/reclaim/gnunet-reclaim.c:551
 msgid "Type of attribute"
 msgstr ""
 
-#: src/reclaim/gnunet-reclaim.c:551
+#: src/reclaim/gnunet-reclaim.c:553
+msgid "List tickets of ego"
+msgstr ""
+
+#: src/reclaim/gnunet-reclaim.c:556
 msgid "Expiration interval of the attribute"
 msgstr ""
 
+#: src/reclaim/gnunet-reclaim.c:560
+msgid "re:claimID command line tool"
+msgstr ""
+
+#: src/reclaim/plugin_rest_openid_connect.c:2051
+#: src/reclaim/plugin_rest_reclaim.c:1018
+msgid "Identity Provider REST API initialized\n"
+msgstr ""
+
 #: src/reclaim/reclaim_api.c:436
 #, fuzzy
 msgid "failed to store record\n"
@@ -5967,44 +5884,19 @@ msgstr "服务已删除。\n"
 msgid "Search string `%s' is too long!\n"
 msgstr "服务已删除。\n"
 
-#: src/rest-plugins/plugin_rest_copying.c:209
-msgid "COPYING REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_credential.c:1128
-msgid "GNS REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_gns.c:452
-msgid "Gns REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_identity.c:1297
-msgid "Identity REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_namestore.c:1079
-msgid "Namestore REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_openid_connect.c:2245
-#: src/rest-plugins/plugin_rest_reclaim.c:1079
-msgid "Identity Provider REST API initialized\n"
-msgstr ""
-
-#: src/rest-plugins/plugin_rest_peerinfo.c:796
-msgid "Peerinfo REST API initialized\n"
-msgstr ""
-
-#: src/rest/gnunet-rest-server.c:927
+#: src/rest/gnunet-rest-server.c:986
 msgid "listen on specified port (default: 7776)"
 msgstr ""
 
-#: src/rest/gnunet-rest-server.c:944
+#: src/rest/gnunet-rest-server.c:1003
 #, fuzzy
 msgid "GNUnet REST server"
 msgstr "GNUnet 错误日志"
 
+#: src/rest/plugin_rest_copying.c:209
+msgid "COPYING REST API initialized\n"
+msgstr ""
+
 #: src/revocation/gnunet-revocation.c:129
 #, c-format
 msgid "Key `%s' is valid\n"
@@ -6065,7 +5957,7 @@ msgstr ""
 msgid "Revocation certificate not ready, calculating proof of work\n"
 msgstr ""
 
-#: src/revocation/gnunet-revocation.c:437 src/social/gnunet-social.c:1180
+#: src/revocation/gnunet-revocation.c:437
 #, fuzzy, c-format
 msgid "Public key `%s' malformed\n"
 msgstr "“%s”的参数无效。\n"
@@ -6141,36 +6033,36 @@ msgstr ""
 msgid "Could not open revocation database file!"
 msgstr "无法连接到 %s:%u:%s\n"
 
-#: src/rps/gnunet-rps-profiler.c:2959
+#: src/rps/gnunet-rps.c:260
+msgid "Seed a PeerID"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:264
+msgid "Get updates of view (0 for infinite updates)"
+msgstr ""
+
+#: src/rps/gnunet-rps.c:268
+msgid "Get peers from biased stream"
+msgstr ""
+
+#: src/rps/gnunet-rps-profiler.c:3088
 msgid "duration of the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2965
+#: src/rps/gnunet-rps-profiler.c:3093
 msgid "timeout for the profiling"
 msgstr ""
 
-#: src/rps/gnunet-rps-profiler.c:2971
+#: src/rps/gnunet-rps-profiler.c:3098
 #, fuzzy
 msgid "number of PeerIDs to request"
 msgstr "迭代次数"
 
-#: src/rps/gnunet-rps-profiler.c:2986
+#: src/rps/gnunet-rps-profiler.c:3114
 #, fuzzy
 msgid "Measure quality and performance of the RPS service."
 msgstr "无法访问该服务"
 
-#: src/rps/gnunet-rps.c:260
-msgid "Seed a PeerID"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:264
-msgid "Get updates of view (0 for infinite updates)"
-msgstr ""
-
-#: src/rps/gnunet-rps.c:268
-msgid "Get peers from biased stream"
-msgstr ""
-
 #: src/scalarproduct/gnunet-scalarproduct.c:220
 #, fuzzy
 msgid "You must specify at least one message ID to check!\n"
@@ -6226,10 +6118,10 @@ msgstr ""
 msgid "Calculate the Vectorproduct with a GNUnet peer."
 msgstr ""
 
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
-#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #: src/scalarproduct/gnunet-service-scalarproduct_alice.c:1401
 #: src/scalarproduct/gnunet-service-scalarproduct_bob.c:1345
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_alice.c:1172
+#: src/scalarproduct/gnunet-service-scalarproduct-ecc_bob.c:1063
 #, fuzzy
 msgid "Connect to CADET failed\n"
 msgstr "“%s”已连接到“%s”。\n"
@@ -6254,7 +6146,7 @@ msgstr ""
 msgid "also profile decryption"
 msgstr ""
 
-#: src/set/gnunet-service-set.c:2005
+#: src/set/gnunet-service-set.c:2008
 #, fuzzy
 msgid "Could not connect to CADET service\n"
 msgstr "无法连接到 %s:%u:%s\n"
@@ -6301,132 +6193,6 @@ msgstr ""
 msgid "element size"
 msgstr ""
 
-#: src/social/gnunet-social.c:1166
-#, fuzzy
-msgid "--place missing or invalid.\n"
-msgstr "“%s”的参数无效。\n"
-
-#: src/social/gnunet-social.c:1217
-msgid "assign --name in state to --data"
-msgstr ""
-
-#: src/social/gnunet-social.c:1222
-msgid "say good-bye and leave somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1227
-msgid "create a place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1232
-msgid "destroy a place we were hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1237
-msgid "enter somebody else's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1243
-msgid "find state matching name prefix"
-msgstr ""
-
-#: src/social/gnunet-social.c:1248
-msgid "replay history of messages up to the given --limit"
-msgstr ""
-
-#: src/social/gnunet-social.c:1253
-msgid "reconnect to a previously created place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1258
-msgid "publish something to a place we are hosting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1263
-msgid "reconnect to a previously entered place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1268
-msgid "search for state matching exact name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1273
-msgid "submit something to somebody's place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1278
-msgid "list of egos and subscribed places"
-msgstr ""
-
-#: src/social/gnunet-social.c:1283
-msgid "extract and replay history between message IDs --start and --until"
-msgstr ""
-
-#: src/social/gnunet-social.c:1292
-msgid "application ID to use when connecting"
-msgstr ""
-
-#: src/social/gnunet-social.c:1298
-msgid "message body or state value"
-msgstr ""
-
-#: src/social/gnunet-social.c:1304
-#, fuzzy
-msgid "name or public key of ego"
-msgstr "“%s”的参数无效。\n"
-
-#: src/social/gnunet-social.c:1309
-#, fuzzy
-msgid "wait for incoming messages"
-msgstr "发送消息失败。\n"
-
-#: src/social/gnunet-social.c:1315
-msgid "GNS name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1321
-msgid "peer ID for --guest-enter"
-msgstr ""
-
-#: src/social/gnunet-social.c:1327
-msgid "name (key) to query from state"
-msgstr ""
-
-#: src/social/gnunet-social.c:1333
-msgid "method name"
-msgstr ""
-
-#: src/social/gnunet-social.c:1339
-#, fuzzy
-msgid "number of messages to replay from history"
-msgstr "每次迭代所使用的消息数量"
-
-#: src/social/gnunet-social.c:1345
-msgid "key address of place"
-msgstr ""
-
-#: src/social/gnunet-social.c:1351
-msgid "start message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1356
-msgid "respond to entry requests by admitting all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1362
-msgid "end message ID for history replay"
-msgstr ""
-
-#: src/social/gnunet-social.c:1367
-msgid "respond to entry requests by refusing all guests"
-msgstr ""
-
-#: src/social/gnunet-social.c:1377
-msgid ""
-"gnunet-social - Interact with the social service: enter/leave, send/receive "
-"messages, access history and state.\n"
-msgstr ""
-
 #: src/sq/sq.c:54
 #, c-format
 msgid "Failure to bind %u-th SQL parameter\n"
@@ -6590,7 +6356,7 @@ msgid "Invalid argument `%s'; expecting unsigned int\n"
 msgstr "“%s”的参数无效。\n"
 
 #: src/testbed/generate-underlay-topology.c:342
-#: src/testbed/gnunet-testbed-profiler.c:283
+#: src/testbed/gnunet-testbed-profiler.c:282
 msgid "create COUNT number of peers"
 msgstr ""
 
@@ -6699,17 +6465,6 @@ msgstr ""
 msgid "%.s Unknown result code."
 msgstr ""
 
-#: src/testbed/gnunet-testbed-profiler.c:289
-msgid "tolerate COUNT number of continious timeout failures"
-msgstr ""
-
-#: src/testbed/gnunet-testbed-profiler.c:294
-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:118
 msgid "Waiting for child to exit.\n"
 msgstr ""
@@ -6719,6 +6474,17 @@ msgstr ""
 msgid "Spawning process `%s'\n"
 msgstr "卸载 GNUnet 服务"
 
+#: src/testbed/gnunet-testbed-profiler.c:287
+msgid "tolerate COUNT number of continious timeout failures"
+msgstr ""
+
+#: src/testbed/gnunet-testbed-profiler.c:291
+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:410
 #, fuzzy, c-format
 msgid "Adding host %u failed with error: %s\n"
@@ -6895,48 +6661,48 @@ msgstr ""
 msgid "Key number %u does not exist\n"
 msgstr ""
 
-#: src/testing/testing.c:1159
+#: src/testing/testing.c:1161
 #, c-format
 msgid ""
 "You attempted to create a testbed with more than %u hosts.  Please "
 "precompute more hostkeys first.\n"
 msgstr ""
 
-#: src/testing/testing.c:1168
+#: src/testing/testing.c:1170
 #, fuzzy, c-format
 msgid "Failed to initialize hostkey for peer %u\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/testing/testing.c:1178
+#: src/testing/testing.c:1180
 msgid "PRIVATE_KEY option in PEER section missing in configuration\n"
 msgstr ""
 
-#: src/testing/testing.c:1191
+#: src/testing/testing.c:1193
 #, fuzzy
 msgid "Failed to create configuration for peer (not enough free ports?)\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/testing/testing.c:1205
+#: src/testing/testing.c:1207
 #, fuzzy, c-format
 msgid "Cannot open hostkey file `%s': %s\n"
 msgstr "找不到接口“%s”的一个 IP 地址。\n"
 
-#: src/testing/testing.c:1217
+#: src/testing/testing.c:1219
 #, fuzzy, c-format
 msgid "Failed to write hostkey file for peer %u: %s\n"
 msgstr "发送消息失败。\n"
 
-#: src/testing/testing.c:1242
+#: src/testing/testing.c:1244
 #, fuzzy, c-format
 msgid "Failed to write configuration file `%s' for peer %u: %s\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/testing/testing.c:1344
+#: src/testing/testing.c:1346
 #, fuzzy, c-format
 msgid "Failed to start `%s': %s\n"
 msgstr "运行 %s失败:%s %d\n"
 
-#: src/testing/testing.c:1647
+#: src/testing/testing.c:1649
 #, fuzzy, c-format
 msgid "Failed to load configuration from %s\n"
 msgstr "解析配置文件“%s”失败\n"
@@ -7015,19 +6781,19 @@ msgstr ""
 msgid "GNUnet topology control"
 msgstr ""
 
-#: src/transport/gnunet-communicator-tcp.c:2329
-#: src/transport/gnunet-communicator-udp.c:2883
-#: src/transport/gnunet-service-tng.c:4679
-#: src/transport/gnunet-service-transport.c:2782
+#: src/transport/gnunet-communicator-tcp.c:2334
+#: src/transport/gnunet-communicator-udp.c:2938
+#: src/transport/gnunet-service-tng.c:7070
+#: src/transport/gnunet-service-transport.c:2795
 #, fuzzy
 msgid "Transport service is lacking key configuration settings. Exiting.\n"
 msgstr "立即保存配置?"
 
-#: src/transport/gnunet-communicator-tcp.c:2393
+#: src/transport/gnunet-communicator-tcp.c:2398
 msgid "GNUnet TCP communicator"
 msgstr ""
 
-#: src/transport/gnunet-communicator-udp.c:2954
+#: src/transport/gnunet-communicator-udp.c:3016
 msgid "GNUnet UDP communicator"
 msgstr ""
 
@@ -7037,60 +6803,60 @@ msgid ""
 "Maximum number of UNIX connections exceeded, dropping incoming message\n"
 msgstr "增加 TCP/IP 的最大连接数"
 
-#: src/transport/gnunet-communicator-unix.c:1073
+#: src/transport/gnunet-communicator-unix.c:1074
 #: src/transport/plugin_transport_unix.c:1403
 #, fuzzy, c-format
 msgid "Cannot create path to `%s'\n"
 msgstr "发送消息失败。\n"
 
-#: src/transport/gnunet-communicator-unix.c:1162
+#: src/transport/gnunet-communicator-unix.c:1163
 msgid "GNUnet UNIX domain socket communicator"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:448
+#: src/transport/gnunet-service-transport_ats.c:141
+msgid "# Addresses given to ATS"
+msgstr ""
+
+#: src/transport/gnunet-service-transport.c:452
 msgid "# messages dropped due to slow client"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:817
+#: src/transport/gnunet-service-transport.c:826
 msgid "# bytes payload dropped (other peer was not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1550
+#: src/transport/gnunet-service-transport.c:1563
 msgid "# bytes payload discarded due to not connected peer"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1710
+#: src/transport/gnunet-service-transport.c:1723
 msgid "# bytes total received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:1807
+#: src/transport/gnunet-service-transport.c:1820
 msgid "# bytes payload received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2124
-#: src/transport/gnunet-service-transport.c:2596
+#: src/transport/gnunet-service-transport.c:2137
+#: src/transport/gnunet-service-transport.c:2609
 msgid "# disconnects due to blacklist"
 msgstr ""
 
-#: src/transport/gnunet-service-transport.c:2600
+#: src/transport/gnunet-service-transport.c:2613
 #, fuzzy, c-format
 msgid "Disallowing connection to peer `%s' on transport %s\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/transport/gnunet-service-transport.c:2708
+#: src/transport/gnunet-service-transport.c:2721
 #, fuzzy, c-format
 msgid "Adding blacklisting entry for peer `%s'\n"
 msgstr "卸载 GNUnet 服务"
 
-#: src/transport/gnunet-service-transport.c:2717
+#: src/transport/gnunet-service-transport.c:2730
 #, c-format
 msgid "Adding blacklisting entry for peer `%s':`%s'\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_ats.c:141
-msgid "# Addresses given to ATS"
-msgstr ""
-
 #: src/transport/gnunet-service-transport_hello.c:195
 msgid "# refreshed my HELLO"
 msgstr ""
@@ -7099,189 +6865,189 @@ msgstr ""
 msgid "# session creation failed"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1052
+#: src/transport/gnunet-service-transport_neighbours.c:1053
 msgid "# DISCONNECT messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1175
+#: src/transport/gnunet-service-transport_neighbours.c:1176
 msgid "# disconnects due to quota of 0"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1323
-#: src/transport/gnunet-service-transport_neighbours.c:1784
+#: src/transport/gnunet-service-transport_neighbours.c:1324
+#: src/transport/gnunet-service-transport_neighbours.c:1785
 msgid "# bytes in message queue for other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1328
+#: src/transport/gnunet-service-transport_neighbours.c:1329
 msgid "# messages transmitted to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1334
+#: src/transport/gnunet-service-transport_neighbours.c:1335
 msgid "# transmission failures for messages to other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1394
+#: src/transport/gnunet-service-transport_neighbours.c:1395
 msgid "# messages timed out while in transport queue"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1478
+#: src/transport/gnunet-service-transport_neighbours.c:1479
 msgid "# KEEPALIVES sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1514
+#: src/transport/gnunet-service-transport_neighbours.c:1515
 msgid "# KEEPALIVE messages discarded (peer unknown)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1522
+#: src/transport/gnunet-service-transport_neighbours.c:1523
 msgid "# KEEPALIVE messages discarded (no session)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1532
+#: src/transport/gnunet-service-transport_neighbours.c:1533
 msgid "# KEEPALIVES received in good order"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1577
+#: src/transport/gnunet-service-transport_neighbours.c:1578
 msgid "# KEEPALIVE_RESPONSEs discarded (not connected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1586
+#: src/transport/gnunet-service-transport_neighbours.c:1587
 msgid "# KEEPALIVE_RESPONSEs discarded (not expected)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1594
+#: src/transport/gnunet-service-transport_neighbours.c:1595
 msgid "# KEEPALIVE_RESPONSEs discarded (address changed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1603
+#: src/transport/gnunet-service-transport_neighbours.c:1604
 msgid "# KEEPALIVE_RESPONSEs discarded (no nonce)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1608
+#: src/transport/gnunet-service-transport_neighbours.c:1609
 msgid "# KEEPALIVE_RESPONSEs discarded (bad nonce)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1614
+#: src/transport/gnunet-service-transport_neighbours.c:1615
 msgid "# KEEPALIVE_RESPONSEs received (OK)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1681
+#: src/transport/gnunet-service-transport_neighbours.c:1682
 msgid "# messages discarded due to lack of neighbour record"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1715
+#: src/transport/gnunet-service-transport_neighbours.c:1716
 msgid "# bandwidth quota violations by other peers"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1730
+#: src/transport/gnunet-service-transport_neighbours.c:1731
 msgid "# ms throttling suggested"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:1853
+#: src/transport/gnunet-service-transport_neighbours.c:1854
 #, fuzzy, c-format
 msgid "Failed to send SYN message to peer `%s'\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1873
+#: src/transport/gnunet-service-transport_neighbours.c:1874
 #, fuzzy
 msgid "# Failed attempts to switch addresses (failed to send SYN CONT)"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1912
+#: src/transport/gnunet-service-transport_neighbours.c:1913
 #, fuzzy
 msgid "# SYN messages sent"
 msgstr "消息尺寸"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1929
+#: src/transport/gnunet-service-transport_neighbours.c:1930
 #, fuzzy, c-format
 msgid "Failed to transmit SYN message to %s\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:1959
+#: src/transport/gnunet-service-transport_neighbours.c:1960
 #, fuzzy
 msgid "# Failed attempts to switch addresses (failed to send SYN)"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2027
+#: src/transport/gnunet-service-transport_neighbours.c:2028
 #, fuzzy, c-format
 msgid "Failed to send SYN_ACK message to peer `%s' using address `%s'\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2081
+#: src/transport/gnunet-service-transport_neighbours.c:2082
 msgid "# SYN_ACK messages sent"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2098
+#: src/transport/gnunet-service-transport_neighbours.c:2099
 #, fuzzy, c-format
 msgid "Failed to transmit SYN_ACK message to %s\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/transport/gnunet-service-transport_neighbours.c:2261
+#: src/transport/gnunet-service-transport_neighbours.c:2262
 msgid "# SYN messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2266
+#: src/transport/gnunet-service-transport_neighbours.c:2267
 #, c-format
 msgid "SYN request from peer `%s' ignored due impending shutdown\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:2653
+#: src/transport/gnunet-service-transport_neighbours.c:2654
 msgid "# Attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3138
+#: src/transport/gnunet-service-transport_neighbours.c:3139
 msgid "# SYN_ACK messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3146
+#: src/transport/gnunet-service-transport_neighbours.c:3147
 msgid "# unexpected SYN_ACK messages (no peer)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3164
-#: src/transport/gnunet-service-transport_neighbours.c:3188
+#: src/transport/gnunet-service-transport_neighbours.c:3165
+#: src/transport/gnunet-service-transport_neighbours.c:3189
 msgid "# unexpected SYN_ACK messages (not ready)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3200
+#: src/transport/gnunet-service-transport_neighbours.c:3201
 msgid "# unexpected SYN_ACK messages (waiting on ATS)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3225
+#: src/transport/gnunet-service-transport_neighbours.c:3226
 msgid "# Successful attempts to switch addresses"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3238
+#: src/transport/gnunet-service-transport_neighbours.c:3239
 msgid "# unexpected SYN_ACK messages (disconnecting)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3411
+#: src/transport/gnunet-service-transport_neighbours.c:3412
 msgid "# ACK messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3447
+#: src/transport/gnunet-service-transport_neighbours.c:3448
 msgid "# unexpected ACK messages"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3535
+#: src/transport/gnunet-service-transport_neighbours.c:3536
 msgid "# quota messages ignored (malformed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3542
+#: src/transport/gnunet-service-transport_neighbours.c:3543
 msgid "# QUOTA messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3582
+#: src/transport/gnunet-service-transport_neighbours.c:3583
 msgid "# disconnect messages ignored (malformed)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3589
+#: src/transport/gnunet-service-transport_neighbours.c:3590
 msgid "# DISCONNECT messages received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3600
+#: src/transport/gnunet-service-transport_neighbours.c:3601
 msgid "# disconnect messages ignored (timestamp)"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_neighbours.c:3735
+#: src/transport/gnunet-service-transport_neighbours.c:3736
 msgid "# disconnected from peer upon explicit request"
 msgstr ""
 
@@ -7316,7 +7082,7 @@ msgstr ""
 #: src/transport/gnunet-service-transport_validation.c:491
 #: src/transport/gnunet-service-transport_validation.c:677
 #: src/transport/gnunet-service-transport_validation.c:997
-#: src/transport/gnunet-service-transport_validation.c:1609
+#: src/transport/gnunet-service-transport_validation.c:1610
 #, fuzzy
 msgid "# validations running"
 msgstr "sqlite 数据仓库"
@@ -7341,101 +7107,63 @@ msgstr ""
 msgid "# address revalidations started"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1123
+#: src/transport/gnunet-service-transport_validation.c:1124
 msgid "# PING message for different peer received"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1174
+#: src/transport/gnunet-service-transport_validation.c:1175
 #, c-format
 msgid "Plugin `%s' not available, cannot confirm having this address\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1187
+#: src/transport/gnunet-service-transport_validation.c:1188
 msgid "# failed address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1190
+#: src/transport/gnunet-service-transport_validation.c:1191
 #, c-format
 msgid "Address `%s' is not one of my addresses, not confirming PING\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1198
+#: src/transport/gnunet-service-transport_validation.c:1199
 msgid "# successful address checks during validation"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1211
+#: src/transport/gnunet-service-transport_validation.c:1212
 #, c-format
 msgid ""
 "Not confirming PING from peer `%s' with address `%s' since I cannot confirm "
 "having this address.\n"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1266
+#: src/transport/gnunet-service-transport_validation.c:1267
 #, fuzzy, c-format
 msgid "Failed to create PONG signature for peer `%s'\n"
 msgstr "发送消息失败。\n"
 
-#: src/transport/gnunet-service-transport_validation.c:1317
+#: src/transport/gnunet-service-transport_validation.c:1318
 msgid "# PONGs unicast via reliable transport"
 msgstr ""
 
-#: src/transport/gnunet-service-transport_validation.c:1326
-msgid "# PONGs multicast to all available addresses"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1499
-msgid "# PONGs dropped, no matching pending validation"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1517
-msgid "# PONGs dropped, signature expired"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1572
-msgid "# validations succeeded"
-msgstr ""
-
-#: src/transport/gnunet-service-transport_validation.c:1627
-msgid "# HELLOs given to peerinfo"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:219
-#, c-format
-msgid "%llu B in %llu ms == %.2f KB/s!\n"
-msgstr ""
-
-#: src/transport/gnunet-transport-profiler.c:617
-msgid "send data to peer"
+#: src/transport/gnunet-service-transport_validation.c:1327
+msgid "# PONGs multicast to all available addresses"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:621
-msgid "receive data from peer"
+#: src/transport/gnunet-service-transport_validation.c:1500
+msgid "# PONGs dropped, no matching pending validation"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:626
-msgid "iterations"
+#: src/transport/gnunet-service-transport_validation.c:1518
+msgid "# PONGs dropped, signature expired"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:631
-#, fuzzy
-msgid "number of messages to send"
-msgstr "每次迭代所使用的消息数量"
-
-#: src/transport/gnunet-transport-profiler.c:636
-#, fuzzy
-msgid "message size to use"
-msgstr "消息尺寸"
-
-#: src/transport/gnunet-transport-profiler.c:641
-#: src/transport/gnunet-transport.c:1462
-msgid "peer identity"
+#: src/transport/gnunet-service-transport_validation.c:1573
+msgid "# validations succeeded"
 msgstr ""
 
-#: src/transport/gnunet-transport-profiler.c:652
-#: src/transport/gnunet-transport.c:1482
-#, fuzzy
-msgid "Direct access to transport service."
-msgstr "初始化“%s”服务失败。\n"
+#: src/transport/gnunet-service-transport_validation.c:1628
+msgid "# HELLOs given to peerinfo"
+msgstr ""
 
 #: src/transport/gnunet-transport.c:413
 #, c-format
@@ -7573,6 +7301,11 @@ msgstr ""
 msgid "do not resolve hostnames"
 msgstr ""
 
+#: src/transport/gnunet-transport.c:1462
+#: src/transport/gnunet-transport-profiler.c:641
+msgid "peer identity"
+msgstr ""
+
 #: src/transport/gnunet-transport.c:1466
 msgid "monitor plugin sessions"
 msgstr ""
@@ -7581,13 +7314,44 @@ msgstr ""
 msgid "send data for benchmarking to the other peer (until CTRL-C)"
 msgstr ""
 
+#: src/transport/gnunet-transport.c:1482
+#: src/transport/gnunet-transport-profiler.c:652
+#, fuzzy
+msgid "Direct access to transport service."
+msgstr "初始化“%s”服务失败。\n"
+
+#: src/transport/gnunet-transport-profiler.c:219
+#, c-format
+msgid "%llu B in %llu ms == %.2f KB/s!\n"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:617
+msgid "send data to peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:621
+msgid "receive data from peer"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:626
+msgid "iterations"
+msgstr ""
+
+#: src/transport/gnunet-transport-profiler.c:631
+#, fuzzy
+msgid "number of messages to send"
+msgstr "每次迭代所使用的消息数量"
+
+#: src/transport/gnunet-transport-profiler.c:636
+#, fuzzy
+msgid "message size to use"
+msgstr "消息尺寸"
+
 #: src/transport/plugin_transport_http_client.c:1474
 #: src/transport/plugin_transport_http_server.c:2312
 #: src/transport/plugin_transport_http_server.c:3530
-#: src/transport/plugin_transport_tcp.c:3895
-#: src/transport/plugin_transport_tcp.c:3902
-#: src/transport/plugin_transport_xt.c:3899
-#: src/transport/plugin_transport_xt.c:3906
+#: src/transport/plugin_transport_tcp.c:3901
+#: src/transport/plugin_transport_tcp.c:3908
 msgid "TCP_STEALTH not supported on this platform.\n"
 msgstr ""
 
@@ -7658,7 +7422,6 @@ msgstr ""
 
 #: src/transport/plugin_transport_http_server.c:2905
 #: src/transport/plugin_transport_udp.c:3627
-#: src/transport/plugin_transport_xu.c:2049
 msgid "Disabling IPv6 since it is not supported on this system!\n"
 msgstr ""
 
@@ -7760,132 +7523,120 @@ msgstr ""
 msgid "# bytes dropped by SMTP (outgoing)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1551
-#: src/transport/plugin_transport_tcp.c:2877
-#: src/transport/plugin_transport_xt.c:1553
-#: src/transport/plugin_transport_xt.c:2879
+#: src/transport/plugin_transport_tcp.c:1557
+#: src/transport/plugin_transport_tcp.c:2883
 #, c-format
 msgid "Unexpected address length: %u bytes\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1734
-#: src/transport/plugin_transport_tcp.c:1958
-#: src/transport/plugin_transport_tcp.c:3141
-#: src/transport/plugin_transport_tcp.c:4018
-#: src/transport/plugin_transport_xt.c:1736
-#: src/transport/plugin_transport_xt.c:1960
-#: src/transport/plugin_transport_xt.c:3143
+#: src/transport/plugin_transport_tcp.c:1740
+#: src/transport/plugin_transport_tcp.c:1964
+#: src/transport/plugin_transport_tcp.c:3147
+#: src/transport/plugin_transport_tcp.c:4024
 msgid "# TCP sessions active"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1776
-#: src/transport/plugin_transport_tcp.c:1940
-#: src/transport/plugin_transport_tcp.c:2064
-#: src/transport/plugin_transport_tcp.c:2137
-#: src/transport/plugin_transport_tcp.c:2237
-#: src/transport/plugin_transport_tcp.c:2262
-#: src/transport/plugin_transport_xt.c:1778
-#: src/transport/plugin_transport_xt.c:1942
-#: src/transport/plugin_transport_xt.c:2066
-#: src/transport/plugin_transport_xt.c:2139
-#: src/transport/plugin_transport_xt.c:2239
-#: src/transport/plugin_transport_xt.c:2264
+#: src/transport/plugin_transport_tcp.c:1782
+#: src/transport/plugin_transport_tcp.c:1946
+#: src/transport/plugin_transport_tcp.c:2070
+#: src/transport/plugin_transport_tcp.c:2143
+#: src/transport/plugin_transport_tcp.c:2243
+#: src/transport/plugin_transport_tcp.c:2268
 msgid "# bytes currently in TCP buffers"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:1779
-#: src/transport/plugin_transport_xt.c:1781
+#: src/transport/plugin_transport_tcp.c:1785
 msgid "# bytes discarded by TCP (disconnect)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2067
-#: src/transport/plugin_transport_xt.c:2069
+#: src/transport/plugin_transport_tcp.c:2073
 msgid "# bytes discarded by TCP (timeout)"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2141
-#: src/transport/plugin_transport_xt.c:2143
+#: src/transport/plugin_transport_tcp.c:2147
 msgid "# bytes transmitted via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2539
-#: src/transport/plugin_transport_xt.c:2541
+#: src/transport/plugin_transport_tcp.c:2545
 msgid "# requests to create session with invalid address"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:2715
-#: src/transport/plugin_transport_xt.c:2717
+#: src/transport/plugin_transport_tcp.c:2721
 msgid "# transport-service disconnect requests for TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3207
-#: src/transport/plugin_transport_xt.c:3209
+#: src/transport/plugin_transport_tcp.c:3213
 msgid "# TCP WELCOME messages received"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3413
-#: src/transport/plugin_transport_xt.c:3415
+#: src/transport/plugin_transport_tcp.c:3419
 msgid "# bytes received via TCP"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3464
-#: src/transport/plugin_transport_tcp.c:3522
-#: src/transport/plugin_transport_xt.c:3466
-#: src/transport/plugin_transport_xt.c:3524
+#: src/transport/plugin_transport_tcp.c:3470
+#: src/transport/plugin_transport_tcp.c:3528
 #, fuzzy
 msgid "# TCP server connections active"
 msgstr ""
 "\n"
 "按任意键继续\n"
 
-#: src/transport/plugin_transport_tcp.c:3468
-#: src/transport/plugin_transport_xt.c:3470
+#: src/transport/plugin_transport_tcp.c:3474
 #, fuzzy
 msgid "# TCP server connect events"
 msgstr ""
 "\n"
 "按任意键继续\n"
 
-#: src/transport/plugin_transport_tcp.c:3474
-#: src/transport/plugin_transport_xt.c:3476
+#: src/transport/plugin_transport_tcp.c:3480
 msgid "TCP connection limit reached, suspending server\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3476
-#: src/transport/plugin_transport_xt.c:3478
+#: src/transport/plugin_transport_tcp.c:3482
 msgid "# TCP service suspended"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3516
-#: src/transport/plugin_transport_xt.c:3518
+#: src/transport/plugin_transport_tcp.c:3522
 msgid "# TCP service resumed"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3526
-#: src/transport/plugin_transport_xt.c:3528
+#: src/transport/plugin_transport_tcp.c:3532
 msgid "# network-level TCP disconnect events"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:3845
-#: src/transport/plugin_transport_xt.c:3849
+#: src/transport/plugin_transport_tcp.c:3851
 #, fuzzy
 msgid "Failed to start service.\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/transport/plugin_transport_tcp.c:4006
+#: src/transport/plugin_transport_tcp.c:4012
 #, c-format
 msgid "TCP transport listening on port %llu\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4010
+#: src/transport/plugin_transport_tcp.c:4016
 msgid "TCP transport not listening on any port (client only)\n"
 msgstr ""
 
-#: src/transport/plugin_transport_tcp.c:4014
+#: src/transport/plugin_transport_tcp.c:4020
 #, c-format
 msgid "TCP transport advertises itself as being on port %llu\n"
 msgstr ""
 
+#: src/transport/plugin_transport_udp_broadcasting.c:168
+msgid "# Multicast HELLO beacons received via UDP"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:548
+msgid ""
+"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
+msgstr ""
+
+#: src/transport/plugin_transport_udp_broadcasting.c:565
+#, c-format
+msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
+msgstr ""
+
 #: src/transport/plugin_transport_udp.c:3371
 #, c-format
 msgid ""
@@ -7906,7 +7657,6 @@ msgid "Failed to bind UDP socket to %s: %s\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
 #: src/transport/plugin_transport_udp.c:3721
-#: src/transport/plugin_transport_xu.c:2143
 msgid "Disabling IPv4 since it is not supported on this system!\n"
 msgstr ""
 
@@ -7917,19 +7667,15 @@ msgstr "打开日志文件“%s”失败:%s\n"
 
 #: src/transport/plugin_transport_udp.c:3883
 #: src/transport/plugin_transport_udp.c:3897
-#: src/transport/plugin_transport_xu.c:2301
-#: src/transport/plugin_transport_xu.c:2315
 msgid "must be in [0,65535]"
 msgstr ""
 
 #: src/transport/plugin_transport_udp.c:3929
-#: src/transport/plugin_transport_xu.c:2347
 #, fuzzy
 msgid "must be valid IPv4 address"
 msgstr "“%s”不可用。\n"
 
 #: src/transport/plugin_transport_udp.c:3956
-#: src/transport/plugin_transport_xu.c:2374
 #, fuzzy
 msgid "must be valid IPv6 address"
 msgstr "“%s”不可用。\n"
@@ -7939,20 +7685,6 @@ msgstr "“%s”不可用。\n"
 msgid "Failed to create UDP network sockets\n"
 msgstr "发送消息失败。\n"
 
-#: src/transport/plugin_transport_udp_broadcasting.c:168
-msgid "# Multicast HELLO beacons received via UDP"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:548
-msgid ""
-"Disabling HELLO broadcasting due to friend-to-friend only configuration!\n"
-msgstr ""
-
-#: src/transport/plugin_transport_udp_broadcasting.c:565
-#, c-format
-msgid "Failed to set IPv4 broadcast option for broadcast socket on port %d\n"
-msgstr ""
-
 #: src/transport/plugin_transport_unix.c:1416
 #, fuzzy, c-format
 msgid "Cannot bind to `%s'\n"
@@ -8020,56 +7752,6 @@ msgstr ""
 msgid "# sessions allocated"
 msgstr ""
 
-#: src/transport/plugin_transport_xt.c:4010
-#, c-format
-msgid "XT transport listening on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4014
-msgid "XT transport not listening on any port (client only)\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4018
-#, c-format
-msgid "XT transport advertises itself as being on port %llu\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xt.c:4022
-#, fuzzy
-msgid "# XT sessions active"
-msgstr ""
-"\n"
-"按任意键继续\n"
-
-#: src/transport/plugin_transport_xu.c:1237
-#, c-format
-msgid ""
-"XU could not transmit message to `%s': Network seems down, please check your "
-"network configuration\n"
-msgstr ""
-
-#: src/transport/plugin_transport_xu.c:1251
-msgid ""
-"XU 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 ""
-
-#: src/transport/plugin_transport_xu.c:2125
-#: src/transport/plugin_transport_xu.c:2224
-#, fuzzy, c-format
-msgid "Failed to bind XU socket to %s: %s\n"
-msgstr "打开日志文件“%s”失败:%s\n"
-
-#: src/transport/plugin_transport_xu.c:2234
-#, fuzzy
-msgid "Failed to open XU sockets\n"
-msgstr "打开日志文件“%s”失败:%s\n"
-
-#: src/transport/plugin_transport_xu.c:2398
-#, fuzzy
-msgid "Failed to create XU network sockets\n"
-msgstr "发送消息失败。\n"
-
 #: src/transport/tcp_connection_legacy.c:452
 #, fuzzy, c-format
 msgid "Access denied to `%s'\n"
@@ -8080,17 +7762,17 @@ msgstr "“%s”已连接到“%s”。\n"
 msgid "Accepting connection from `%s': %p\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1111
+#: src/transport/tcp_server_legacy.c:474 src/util/service.c:1624
 #, fuzzy, c-format
 msgid "`%s' failed for port %d (%s).\n"
 msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
 
-#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1121
+#: src/transport/tcp_server_legacy.c:484 src/util/service.c:1634
 #, c-format
 msgid "`%s' failed for port %d (%s): address already in use\n"
 msgstr ""
 
-#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1127
+#: src/transport/tcp_server_legacy.c:490 src/util/service.c:1640
 #, fuzzy, c-format
 msgid "`%s' failed for `%s': address already in use\n"
 msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
@@ -8102,7 +7784,7 @@ msgid ""
 "`GNUNET_SERVER_receive_done' after %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:339 src/util/service.c:2396
+#: src/transport/tcp_service_legacy.c:339 src/util/service.c:864
 #, c-format
 msgid "Unknown address family %d\n"
 msgstr ""
@@ -8112,27 +7794,27 @@ msgstr ""
 msgid "Access from `%s' denied to service `%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:402 src/util/service.c:439
+#: src/transport/tcp_service_legacy.c:402 src/util/service.c:988
 #, c-format
 msgid "Could not parse IPv4 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:440 src/util/service.c:482
+#: src/transport/tcp_service_legacy.c:440 src/util/service.c:1031
 #, c-format
 msgid "Could not parse IPv6 network specification `%s' for `%s:%s'\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1042
+#: src/transport/tcp_service_legacy.c:904 src/util/service.c:1555
 msgid "Could not access a pre-bound socket, will try to bind myself\n"
 msgstr ""
 
 #: src/transport/tcp_service_legacy.c:953
-#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1195
+#: src/transport/tcp_service_legacy.c:971 src/util/service.c:1708
 #, c-format
 msgid "Specified value for `%s' of service `%s' is invalid\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1228
+#: src/transport/tcp_service_legacy.c:996 src/util/service.c:1741
 #, c-format
 msgid "Could not access pre-bound socket %u, will try to bind myself\n"
 msgstr ""
@@ -8147,44 +7829,44 @@ msgstr "运行 %s失败:%s %d\n"
 msgid "Service `%s' runs at %s\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:1502
+#: src/transport/tcp_service_legacy.c:1251 src/util/service.c:2015
 msgid "Service process failed to initialize\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:1506
+#: src/transport/tcp_service_legacy.c:1255 src/util/service.c:2019
 msgid "Service process could not initialize server function\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:1510
+#: src/transport/tcp_service_legacy.c:1259 src/util/service.c:2023
 msgid "Service process failed to report status\n"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1525
-#: src/util/service.c:1380
+#: src/transport/tcp_service_legacy.c:1313 src/util/disk.c:1535
+#: src/util/service.c:1893
 #, c-format
 msgid "Cannot obtain information about user `%s': %s\n"
 msgstr "无法获取有关用户“%s”的信息:%s\n"
 
-#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1382
+#: src/transport/tcp_service_legacy.c:1314 src/util/service.c:1895
 msgid "No such user"
 msgstr "无此用户"
 
-#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1401
+#: src/transport/tcp_service_legacy.c:1327 src/util/service.c:1914
 #, c-format
 msgid "Cannot change user/group to `%s': %s\n"
 msgstr "无法更改用户/组为“%s”:%s\n"
 
-#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:1762
+#: src/transport/tcp_service_legacy.c:1398 src/util/service.c:2276
 msgid "do daemonize (detach from terminal)"
 msgstr ""
 
-#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:1826
-#: src/util/service.c:1841
+#: src/transport/tcp_service_legacy.c:1448 src/util/service.c:2340
+#: src/util/service.c:2355
 #, fuzzy, c-format
 msgid "Malformed configuration file `%s', exit ...\n"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:1853
+#: src/transport/tcp_service_legacy.c:1458 src/util/service.c:2367
 #, fuzzy
 msgid "Malformed configuration, exit ...\n"
 msgstr "解析配置文件“%s”失败\n"
@@ -8227,11 +7909,11 @@ msgstr ""
 msgid "Metadata `%s' failed to deserialize"
 msgstr ""
 
-#: src/util/client.c:734
+#: src/util/client.c:749
 msgid "not a valid filename"
 msgstr ""
 
-#: src/util/client.c:925
+#: src/util/client.c:941
 #, c-format
 msgid "Need a non-empty hostname for service `%s'.\n"
 msgstr ""
@@ -8278,16 +7960,16 @@ msgstr ""
 msgid "unknown address"
 msgstr ""
 
-#: src/util/common_logging.c:1500
+#: src/util/common_logging.c:1513
 msgid "invalid address"
 msgstr ""
 
-#: src/util/common_logging.c:1518
+#: src/util/common_logging.c:1531
 #, fuzzy, c-format
 msgid "Configuration fails to specify option `%s' in section `%s'!\n"
 msgstr "配置不满足配置规范文件“%s”的约束!\n"
 
-#: src/util/common_logging.c:1539
+#: src/util/common_logging.c:1552
 #, fuzzy, c-format
 msgid ""
 "Configuration specifies invalid value for option `%s' in section `%s': %s\n"
@@ -8335,26 +8017,26 @@ msgstr ""
 #: src/util/container_bloomfilter.c:532
 #, c-format
 msgid ""
-"Size of file on disk is incorrect for this Bloom filter (want %llu, have %"
-"llu)\n"
+"Size of file on disk is incorrect for this Bloom filter (want %llu, have "
+"%llu)\n"
 msgstr ""
 
-#: src/util/crypto_ecc.c:862
+#: src/util/crypto_ecc.c:887
 #, fuzzy, c-format
 msgid "ECC signing failed at %s:%d: %s\n"
 msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
 
-#: src/util/crypto_ecc.c:917
+#: src/util/crypto_ecc.c:946
 #, fuzzy, c-format
 msgid "EdDSA signing failed at %s:%d: %s\n"
 msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
 
-#: src/util/crypto_ecc.c:996
+#: src/util/crypto_ecc.c:1025
 #, fuzzy, c-format
 msgid "ECDSA signature verification failed at %s:%d: %s\n"
 msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
 
-#: src/util/crypto_ecc.c:1057
+#: src/util/crypto_ecc.c:1086
 #, fuzzy, c-format
 msgid "EdDSA signature verification failed at %s:%d: %s\n"
 msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
@@ -8404,17 +8086,17 @@ msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
 msgid "RSA signature verification failed at %s:%d: %s\n"
 msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
 
-#: src/util/disk.c:1255
+#: src/util/disk.c:1265
 #, c-format
 msgid "Expected `%s' to be a directory!\n"
 msgstr "“%s”应为目录!\n"
 
-#: src/util/dnsparser.c:260
+#: src/util/dnsparser.c:264
 #, fuzzy, c-format
 msgid "Failed to convert DNS IDNA name `%s' to UTF-8: %s\n"
 msgstr "打开日志文件“%s”失败:%s\n"
 
-#: src/util/dnsparser.c:950
+#: src/util/dnsparser.c:954
 #, fuzzy, c-format
 msgid "Failed to convert UTF-8 name `%s' to DNS IDNA format: %s\n"
 msgstr "打开日志文件“%s”失败:%s\n"
@@ -8518,7 +8200,7 @@ msgstr "长选项的必选参数对短选项也是必选的。\n"
 msgid "print this help"
 msgstr ""
 
-#: src/util/getopt_helpers.c:282
+#: src/util/getopt_helpers.c:282 src/util/gnunet-qr.c:300
 msgid "be verbose"
 msgstr ""
 
@@ -8566,52 +8248,52 @@ msgstr "您必须向“%s”选项传递一个数字。\n"
 msgid "Argument `%s' malformed. Expected base32 (Crockford) encoded value.\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:160
+#: src/util/gnunet-config.c:161
 #, fuzzy, c-format
 msgid "failed to load configuration defaults"
 msgstr "解析配置文件“%s”失败\n"
 
-#: src/util/gnunet-config.c:173
+#: src/util/gnunet-config.c:174
 #, fuzzy, c-format
 msgid "%s or %s argument is required\n"
 msgstr "设置要使用的昵称(必须)"
 
-#: src/util/gnunet-config.c:181
+#: src/util/gnunet-config.c:182
 #, c-format
 msgid "The following sections are available:\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:232
+#: src/util/gnunet-config.c:234
 #, c-format
 msgid "--option argument required to set value\n"
 msgstr ""
 
-#: src/util/gnunet-config.c:286
-msgid "obtain option of value as a filename (with $-expansion)"
+#: src/util/gnunet-config.c:288
+msgid "interpret option value as a filename (with $-expansion)"
 msgstr ""
 
-#: src/util/gnunet-config.c:291
+#: src/util/gnunet-config.c:293
 msgid "name of the section to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:296
+#: src/util/gnunet-config.c:298
 msgid "name of the option to access"
 msgstr ""
 
-#: src/util/gnunet-config.c:301
+#: src/util/gnunet-config.c:303
 msgid "value to set"
 msgstr ""
 
-#: src/util/gnunet-config.c:305
+#: src/util/gnunet-config.c:307
 #, fuzzy
 msgid "print available configuration sections"
 msgstr "立即保存配置?"
 
-#: src/util/gnunet-config.c:309
+#: src/util/gnunet-config.c:311
 msgid "write configuration file that only contains delta to defaults"
 msgstr ""
 
-#: src/util/gnunet-config.c:322
+#: src/util/gnunet-config.c:324
 #, fuzzy
 msgid "Manipulate GNUnet configuration files"
 msgstr "更改配置文件中的一个值"
@@ -8704,6 +8386,33 @@ msgstr ""
 msgid "Manipulate GNUnet private ECC key files"
 msgstr "更改配置文件中的一个值"
 
+#: src/util/gnunet-qr.c:108 src/util/gnunet-uri.c:91
+#, fuzzy, c-format
+msgid "Invalid URI: does not start with `%s'\n"
+msgstr "无效的网络表示法(没有以“;”结尾:“%s”)\n"
+
+#: src/util/gnunet-qr.c:116 src/util/gnunet-uri.c:98
+#, c-format
+msgid "Invalid URI: fails to specify subsystem\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:127 src/util/gnunet-uri.c:108
+#, c-format
+msgid "No handler known for subsystem `%s'\n"
+msgstr ""
+
+#: src/util/gnunet-qr.c:297
+msgid "use video-device DEVICE (default: /dev/video0"
+msgstr ""
+
+#: src/util/gnunet-qr.c:303
+msgid "do not show preview windows"
+msgstr ""
+
+#: src/util/gnunet-qr.c:311
+msgid "Scan a QR code using a video device and import the uri read"
+msgstr ""
+
 #: src/util/gnunet-resolver.c:168
 msgid "perform a reverse lookup"
 msgstr ""
@@ -8738,7 +8447,7 @@ msgstr ""
 msgid "Manipulate GNUnet proof of work files"
 msgstr "更改配置文件中的一个值"
 
-#: src/util/gnunet-service-resolver.c:1443
+#: src/util/gnunet-service-resolver.c:1424
 msgid "No DNS server available. DNS resolution will not be possible.\n"
 msgstr ""
 
@@ -8747,21 +8456,6 @@ msgstr ""
 msgid "No URI specified on command line\n"
 msgstr ""
 
-#: src/util/gnunet-uri.c:91
-#, fuzzy, c-format
-msgid "Invalid URI: does not start with `%s'\n"
-msgstr "无效的网络表示法(没有以“;”结尾:“%s”)\n"
-
-#: src/util/gnunet-uri.c:98
-#, c-format
-msgid "Invalid URI: fails to specify subsystem\n"
-msgstr ""
-
-#: src/util/gnunet-uri.c:108
-#, c-format
-msgid "No handler known for subsystem `%s'\n"
-msgstr ""
-
 #: src/util/gnunet-uri.c:170
 msgid "Perform default-actions for GNUnet URIs"
 msgstr ""
@@ -8781,12 +8475,12 @@ msgstr "打开日志文件“%s”失败:%s\n"
 msgid "Error writing to `%s': %s\n"
 msgstr "创建用户出错"
 
-#: src/util/network.c:136
+#: src/util/network.c:176
 #, c-format
 msgid "Unable to shorten unix path `%s' while keeping name unique\n"
 msgstr ""
 
-#: src/util/network.c:1795 src/util/network.c:1979
+#: src/util/network.c:1835 src/util/network.c:2019
 #, c-format
 msgid ""
 "Fatal internal logic error, process hangs in `%s' (abort with CTRL-C)!\n"
@@ -8892,18 +8586,18 @@ msgstr ""
 msgid "Could not resolve our FQDN: %s\n"
 msgstr "无法解析“%s”(%s):%s\n"
 
-#: src/util/service.c:1307
-msgid ""
-"Could not bind to any of the ports I was supposed to, refusing to run!\n"
-msgstr ""
-
-#: src/util/service.c:2141
+#: src/util/service.c:668
 #, c-format
 msgid ""
 "Processing code for message of type %u did not call "
 "`GNUNET_SERVICE_client_continue' after %s\n"
 msgstr ""
 
+#: src/util/service.c:1820
+msgid ""
+"Could not bind to any of the ports I was supposed to, refusing to run!\n"
+msgstr ""
+
 #: src/util/signal.c:89
 #, c-format
 msgid "signal (%d, %p) returned %d.\n"
@@ -9035,12 +8729,12 @@ msgstr "网络掩码的格式“%s”错误\n"
 msgid "Wrong format `%s' for network\n"
 msgstr "网络的格式“%s”错误\n"
 
-#: src/util/time.c:828 src/util/time.c:860
+#: src/util/time.c:844 src/util/time.c:876
 #, c-format
 msgid "Failed to map `%s', cannot assure monotonic time!\n"
 msgstr ""
 
-#: src/util/time.c:866
+#: src/util/time.c:882
 #, c-format
 msgid ""
 "Failed to setup monotonic time file `%s', cannot assure monotonic time!\n"
@@ -9216,52 +8910,66 @@ msgstr ""
 msgid "Setup tunnels via VPN."
 msgstr ""
 
-#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #: src/zonemaster/gnunet-service-zonemaster.c:838
+#: src/zonemaster/gnunet-service-zonemaster-monitor.c:416
 #, fuzzy
 msgid "Failed to connect to the namestore!\n"
 msgstr "初始化“%s”服务失败。\n"
 
-#: src/include/gnunet_common.h:772 src/include/gnunet_common.h:779
-#: src/include/gnunet_common.h:789
+#: src/include/gnunet_common.h:794 src/include/gnunet_common.h:801
+#: src/include/gnunet_common.h:811
 #, fuzzy, c-format
 msgid "Assertion failed at %s:%d. Aborting.\n"
 msgstr "对驱动器“%2$s”的“%1$s”操作失败:%3$u\n"
 
-#: src/include/gnunet_common.h:797
+#: src/include/gnunet_common.h:819
 #, c-format
 msgid "Assertion failed at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:809
+#: src/include/gnunet_common.h:831
 #, c-format
 msgid "External protocol violation detected at %s:%d.\n"
 msgstr ""
 
-#: src/include/gnunet_common.h:836 src/include/gnunet_common.h:845
+#: src/include/gnunet_common.h:858 src/include/gnunet_common.h:867
 #, c-format
 msgid "`%s' failed on file `%s' at %s:%d with error: %s\n"
 msgstr ""
 
 #, fuzzy
-#~ msgid "Can not index file `%s': %s.\n"
-#~ msgstr "找不到接口“%s”的一个 IP 地址。\n"
+#~ msgid "Failed to connect to CREDENTIAL\n"
+#~ msgstr "初始化“%s”服务失败。\n"
 
 #, fuzzy
-#~ msgid "`%s' is not a valid domain name\n"
-#~ msgstr "“%s”不可用。\n"
+#~ msgid "GNUnet credential resolver tool"
+#~ msgstr "GNUnet 错误日志"
 
 #, fuzzy
-#~ msgid "Unable to parse CAA record string `%s'\n"
+#~ msgid "Unable to parse CRED record string `%s'\n"
 #~ msgstr "解析配置文件“%s”失败\n"
 
 #, fuzzy
-#~ msgid "display private keys as well"
-#~ msgstr "显示一个文件的散列值"
+#~ msgid "# XT sessions active"
+#~ msgstr ""
+#~ "\n"
+#~ "按任意键继续\n"
 
 #, fuzzy
-#~ msgid "The EGO to use"
-#~ msgstr "消息尺寸"
+#~ msgid "Failed to bind XU socket to %s: %s\n"
+#~ msgstr "打开日志文件“%s”失败:%s\n"
+
+#, fuzzy
+#~ msgid "Failed to open XU sockets\n"
+#~ msgstr "打开日志文件“%s”失败:%s\n"
+
+#, fuzzy
+#~ msgid "Failed to create XU network sockets\n"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "Print information about DV state"
+#~ msgstr "无法获取有关用户“%s”的信息:%s\n"
 
 #, fuzzy
 #~ msgid "Invalid tunnel owner `%s'\n"
@@ -9271,6 +8979,98 @@ msgstr ""
 #~ msgid "Provide information about a particular tunnel"
 #~ msgstr "无法获取有关用户“%s”的信息:%s\n"
 
+#, fuzzy
+#~ msgid "Failed to store membership information!\n"
+#~ msgstr "打开日志文件“%s”失败:%s\n"
+
+#, fuzzy
+#~ msgid "Failed to test membership!\n"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "Dropping invalid fragment\n"
+#~ msgstr "“%s”的参数无效。\n"
+
+#, fuzzy
+#~ msgid "Failed to store fragment\n"
+#~ msgstr "运行 %s失败:%s %d\n"
+
+#, fuzzy
+#~ msgid "Failed to get fragment!\n"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "Failed to get message!\n"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "Failed to get message fragment!\n"
+#~ msgstr "打开日志文件“%s”失败:%s\n"
+
+#, fuzzy
+#~ msgid "Failed to get master counters!\n"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "Failed to begin modifying state: %d\n"
+#~ msgstr "运行 %s失败:%s %d\n"
+
+#, fuzzy
+#~ msgid "Failed to modify state: %d\n"
+#~ msgstr "运行 %s失败:%s %d\n"
+
+#, fuzzy
+#~ msgid "Failed to end modifying state!\n"
+#~ msgstr "运行 %s失败:%s %d\n"
+
+#, fuzzy
+#~ msgid "Failed to begin synchronizing state!\n"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "Failed to end synchronizing state!\n"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "Failed to reset state!\n"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "Failed to get state variable!\n"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "Unable to initialize Mysql.\n"
+#~ msgstr "无法初始化 SQLite:%s。\n"
+
+#, fuzzy
+#~ msgid "Failed to run SQL statement `%s'\n"
+#~ msgstr "解析配置文件“%s”失败\n"
+
+#, fuzzy
+#~ msgid "`%s' failed at %s:%d with error: %s (%d)\n"
+#~ msgstr "“%s”于 %s:%d 处失败,错误为:%s\n"
+
+#, fuzzy
+#~ msgid "SQLite database running\n"
+#~ msgstr "sqlite 数据仓库"
+
+#, fuzzy
+#~ msgid "--place missing or invalid.\n"
+#~ msgstr "“%s”的参数无效。\n"
+
+#, fuzzy
+#~ msgid "name or public key of ego"
+#~ msgstr "“%s”的参数无效。\n"
+
+#, fuzzy
+#~ msgid "wait for incoming messages"
+#~ msgstr "发送消息失败。\n"
+
+#, fuzzy
+#~ msgid "number of messages to replay from history"
+#~ msgstr "每次迭代所使用的消息数量"
+
 #~ msgid "Could not resolve `%s' (%s): %s\n"
 #~ msgstr "无法解析“%s”(%s):%s\n"
 
@@ -9822,8 +9622,8 @@ msgstr ""
 
 #, fuzzy
 #~ msgid ""
-#~ "%s service is lacking key configuration settings (%s). Using default (%"
-#~ "u).\n"
+#~ "%s service is lacking key configuration settings (%s). Using default "
+#~ "(%u).\n"
 #~ msgstr "立即保存配置?"
 
 #, fuzzy
@@ -10460,6 +10260,9 @@ msgstr ""
 #~ msgid "install GNUnet as Windows service"
 #~ msgstr "以 Windows 服务方式安装 GNUnet"
 
+#~ msgid "display a file's hash value"
+#~ msgstr "显示一个文件的散列值"
+
 #~ msgid "This version of Windows doesn't support services.\n"
 #~ msgstr "此版本的 Windows 不支持服务。\n"
 
diff --git a/src/Makefile.am b/src/Makefile.am
index 217aea54f..51bf2d63d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -12,7 +12,9 @@ endif
 if HAVE_EXPERIMENTAL
  EXP_DIR = \
   rps \
-  credential
+  abd \
+  reclaim-attribute \
+  reclaim
 if HAVE_ABE
  EXP_DIR += \
   abe
@@ -23,7 +25,6 @@ if HAVE_JSON
 endif
 endif
 
-if HAVE_MHD
 if HAVE_JSON
   JSON_DIR = json
 if HAVE_LIBGNURL
@@ -34,6 +35,13 @@ if HAVE_LIBCURL
 endif
 endif
 endif
+
+if BUILD_PULSE_HELPERS
+CONVERSATION_DIR = conversation
+else
+if BUILD_GST_HELPERS
+CONVERSATION_DIR = conversation
+endif
 endif
 
 if HAVE_SQLITE
@@ -51,7 +59,6 @@ endif
 if HAVE_MHD
 if HAVE_JSON
  REST_DIR = rest
- RECLAIM_DIR = reclaim-attribute reclaim
 endif
 endif
 
@@ -109,12 +116,11 @@ SUBDIRS = \
   vpn \
   gns \
   zonemaster \
-  conversation \
+  $(CONVERSATION_DIR) \
   fs \
   exit \
   pt \
   secretsharing \
-  $(RECLAIM_DIR) \
   $(EXP_DIR) \
   integration-tests
 
diff --git a/src/abd/Makefile.am b/src/abd/Makefile.am
new file mode 100644
index 000000000..34a0438f5
--- /dev/null
+++ b/src/abd/Makefile.am
@@ -0,0 +1,100 @@
+# This Makefile.am is in the public domain
+AM_CPPFLAGS = -I$(top_srcdir)/src/include
+
+EXTRA_DIST = \
+  test_abd_defaults.conf \
+  test_abd_lookup.conf
+
+
+if USE_COVERAGE
+  AM_CFLAGS = --coverage -O0
+endif
+
+pkgcfgdir = $(pkgdatadir)/config.d/
+
+libexecdir= $(pkglibdir)/libexec/
+
+plugindir = $(libdir)/gnunet
+
+pkgcfg_DATA = \
+  abd.conf
+
+
+# /usr/lib - compiles a layer which can be used to be communicagte with the 
service
+lib_LTLIBRARIES = \
+  libgnunetabd.la
+
+# /usr/lib/gnunet/libexec - Business logic . Separate process
+libexec_PROGRAMS = \
+  gnunet-service-abd
+
+bin_PROGRAMS = \
+  gnunet-abd
+
+plugin_LTLIBRARIES = \
+  libgnunet_plugin_gnsrecord_abd.la
+
+
+gnunet_abd_SOURCES = \
+ gnunet-abd.c
+gnunet_abd_LDADD = \
+  libgnunetabd.la \
+  $(top_builddir)/src/util/libgnunetutil.la \
+       $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la \
+  $(top_builddir)/src/identity/libgnunetidentity.la \
+  $(top_builddir)/src/namestore/libgnunetnamestore.la \
+  $(GN_LIBINTL)
+
+
+libgnunet_plugin_gnsrecord_abd_la_SOURCES = \
+  plugin_gnsrecord_abd.c
+libgnunet_plugin_gnsrecord_abd_la_LIBADD = \
+       libgnunetabd.la \
+  $(top_builddir)/src/util/libgnunetutil.la \
+  $(LTLIBINTL)
+libgnunet_plugin_gnsrecord_abd_la_LDFLAGS = \
+ $(GN_PLUGIN_LDFLAGS)
+
+
+
+gnunet_service_abd_SOURCES = \
+ gnunet-service-abd.c
+gnunet_service_abd_LDADD = \
+       libgnunetabd.la \
+  $(top_builddir)/src/util/libgnunetutil.la \
+       $(top_builddir)/src/gns/libgnunetgns.la \
+       $(top_builddir)/src/namestore/libgnunetnamestore.la \
+  $(top_builddir)/src/statistics/libgnunetstatistics.la \
+  $(GN_LIBINTL)
+
+
+libgnunetabd_la_SOURCES = \
+ abd_api.c abd.h\
+ abd_serialization.c \
+ abd_serialization.h \
+ delegate_misc.c \
+ delegate_misc.h
+libgnunetabd_la_LIBADD = \
+ $(top_builddir)/src/util/libgnunetutil.la $(XLIB)
+libgnunetabd_la_LDFLAGS = \
+  $(GN_LIB_LDFLAGS)
+
+
+
+check_SCRIPTS = \
+  test_abd_issue.sh \
+       test_abd_verify_simple.sh \
+       test_abd_verify.sh \
+       test_abd_verify_and.sh
+
+if ENABLE_TEST_RUN
+if HAVE_SQLITE
+ AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export 
PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;
+ TESTS = $(check_SCRIPTS)
+endif
+endif
+
+
+
+
+
diff --git a/src/abd/abd.conf.in b/src/abd/abd.conf.in
new file mode 100644
index 000000000..7baf95fc8
--- /dev/null
+++ b/src/abd/abd.conf.in
@@ -0,0 +1,5 @@
+[abd]
+BINARY = gnunet-service-abd
+UNIXPATH = $GNUNET_USER_RUNTIME_DIR/gnunet-service-abd.sock
+RUN_PER_USER = YES
+OPTIONS = -L DEBUG
diff --git a/src/credential/credential.h b/src/abd/abd.h
similarity index 67%
rename from src/credential/credential.h
rename to src/abd/abd.h
index 3d76bbf4f..854814832 100644
--- a/src/credential/credential.h
+++ b/src/abd/abd.h
@@ -11,21 +11,21 @@
       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
  */
 /**
- * @file credential/credential.h
- * @brief IPC messages between CREDENTIAL API and CREDENTIAL service
+ * @file abd/abd.h
+ * @brief IPC messages between ABD API and ABD service
  * @author Martin Schanzenbach
  */
-#ifndef CREDENTIAL_H
-#define CREDENTIAL_H
+#ifndef ABD_H
+#define ABD_H
 
-#include "gnunet_credential_service.h"
+#include "gnunet_abd_service.h"
 
 GNUNET_NETWORK_STRUCT_BEGIN
 
@@ -35,7 +35,7 @@ GNUNET_NETWORK_STRUCT_BEGIN
 struct CollectMessage
 {
   /**
-   * Header of type #GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY
+   * Header of type #GNUNET_MESSAGE_TYPE_ABD_VERIFY
    */
   struct GNUNET_MessageHeader header;
 
@@ -54,6 +54,11 @@ struct CollectMessage
    */
   uint16_t issuer_attribute_len;
 
+  /**
+   * Direction of the resolution algo
+   */
+  uint16_t resolution_algo;
+
   /**
    * Unique identifier for this request (for key collisions).
    */
@@ -69,7 +74,7 @@ struct CollectMessage
 struct VerifyMessage
 {
   /**
-   * Header of type #GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY
+   * Header of type #GNUNET_MESSAGE_TYPE_ABD_VERIFY
    */
   struct GNUNET_MessageHeader header;
 
@@ -84,15 +89,20 @@ struct VerifyMessage
   struct GNUNET_CRYPTO_EcdsaPublicKey issuer_key;
 
   /**
-   * Number of credentials
+   * Number of delegates
    */
-  uint32_t c_count;
+  uint32_t d_count;
 
   /**
    * Length of the issuer attribute
    */
   uint16_t issuer_attribute_len;
 
+  /**
+   * Direction of the resolution algo
+   */
+  uint16_t resolution_algo;
+
   /**
    * Unique identifier for this request (for key collisions).
    */
@@ -103,12 +113,12 @@ struct VerifyMessage
 
 
 /**
- * Message from CREDENTIAL service to client: new results.
+ * Message from ABD service to client: new results.
  */
 struct DelegationChainResultMessage
 {
   /**
-   * Header of type #GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY_RESULT
+    * Header of type #GNUNET_MESSAGE_TYPE_ABD_VERIFY_RESULT
    */
   struct GNUNET_MessageHeader header;
 
@@ -120,7 +130,7 @@ struct DelegationChainResultMessage
   /**
    * Indicates if credential has been found at all
    */
-  uint32_t cred_found GNUNET_PACKED;
+  uint32_t del_found GNUNET_PACKED;
 
   /**
    * The number of delegations in the response
@@ -132,7 +142,27 @@ struct DelegationChainResultMessage
    */
   uint32_t c_count GNUNET_PACKED;
 
-  /* followed by ad_count GNUNET_CREDENTIAL_RecordData structs*/
+  /* followed by ad_count GNUNET_ABD_RecordData structs*/
+};
+
+/**
+ * Message from ABD service to client: new results.
+ */
+struct DelegationChainIntermediateMessage
+{
+  /**
+    * Header of type #GNUNET_MESSAGE_TYPE_ABD_INTERMEDIATE_RESULT
+   */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * Unique identifier for this request (for key collisions).
+   */
+  uint32_t id GNUNET_PACKED;
+
+  uint16_t is_bw GNUNET_PACKED;
+
+  uint32_t size GNUNET_PACKED;
 };
 
 struct DelegationRecordData
@@ -175,6 +205,7 @@ struct ChainEntry
 
 struct CredentialEntry
 {
+
   /**
    * The signature for this credential by the issuer
    */
@@ -210,6 +241,49 @@ struct CredentialEntry
    */
 };
 
+struct DelegateEntry
+{
+
+  /**
+   * The signature for this credential by the issuer
+   */
+  struct GNUNET_CRYPTO_EcdsaSignature signature;
+
+  /**
+   * Signature meta
+   */
+  struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
+
+  /**
+   * Public key of the issuer
+   */
+  struct GNUNET_CRYPTO_EcdsaPublicKey issuer_key;
+
+  /**
+   * Public key of the subject this credential was issued to
+   */
+  struct GNUNET_CRYPTO_EcdsaPublicKey subject_key;
+
+  /**
+   * Expiration time of this credential
+   */
+  uint64_t expiration GNUNET_PACKED;
+
+  /**
+   * Issuer subject attribute length
+   */
+  uint32_t issuer_attribute_len;
+
+  /**
+   * Issuer attribute length
+   */
+  uint32_t subject_attribute_len;
+
+  /**
+   * Followed by the subject attribute string
+   */
+};
+
 
 GNUNET_NETWORK_STRUCT_END
 
diff --git a/src/abd/abd_api.c b/src/abd/abd_api.c
new file mode 100644
index 000000000..cdc52df91
--- /dev/null
+++ b/src/abd/abd_api.c
@@ -0,0 +1,556 @@
+/*
+     This file is part of GNUnet.
+     Copyright (C) 2009-2013, 2016 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
+*/
+/**
+ * @file abd/abd_api.c
+ * @brief library to access the ABD service
+ * @author Martin Schanzenbach
+ */
+#include "platform.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_constants.h"
+#include "gnunet_arm_service.h"
+#include "gnunet_hello_lib.h"
+#include "gnunet_protocols.h"
+#include "gnunet_signatures.h"
+#include "abd.h"
+#include "abd_serialization.h"
+#include "gnunet_abd_service.h"
+#include "gnunet_identity_service.h"
+
+
+#define LOG(kind, ...) GNUNET_log_from (kind, "abd-api", __VA_ARGS__)
+
+/**
+ * Handle to a verify request
+ */
+struct GNUNET_ABD_Request
+{
+
+  /**
+   * DLL
+   */
+  struct GNUNET_ABD_Request *next;
+
+  /**
+   * DLL
+   */
+  struct GNUNET_ABD_Request *prev;
+
+  /**
+   * handle to abd service
+   */
+  struct GNUNET_ABD_Handle *abd_handle;
+
+  /**
+   * processor to call on verify result
+   */
+  GNUNET_ABD_CredentialResultProcessor verify_proc;
+
+  /**
+   * @e verify_proc closure
+   */
+  void *proc_cls;
+
+  /**
+   * processor to call on intermediate result
+   */
+  GNUNET_ABD_IntermediateResultProcessor int_proc;
+
+  /**
+   * @e verify_proc2 closure
+   */
+  void *proc2_cls;
+
+  /**
+   * Envelope with the message for this queue entry.
+   */
+  struct GNUNET_MQ_Envelope *env;
+
+  /**
+   * request id
+   */
+  uint32_t r_id;
+};
+
+
+/**
+ * Connection to the ABD service.
+ */
+struct GNUNET_ABD_Handle
+{
+
+  /**
+   * Configuration to use.
+   */
+  const struct GNUNET_CONFIGURATION_Handle *cfg;
+
+  /**
+   * Connection to service (if available).
+   */
+  struct GNUNET_MQ_Handle *mq;
+
+  /**
+   * Head of linked list of active verify requests.
+   */
+  struct GNUNET_ABD_Request *request_head;
+
+  /**
+   * Tail of linked list of active verify requests.
+   */
+  struct GNUNET_ABD_Request *request_tail;
+
+  /**
+   * Reconnect task
+   */
+  struct GNUNET_SCHEDULER_Task *reconnect_task;
+
+  /**
+   * How long do we wait until we try to reconnect?
+   */
+  struct GNUNET_TIME_Relative reconnect_backoff;
+
+  /**
+   * Request Id generator.  Incremented by one for each request.
+   */
+  uint32_t r_id_gen;
+};
+
+
+/**
+ * Reconnect to ABD service.
+ *
+ * @param handle the handle to the ABD service
+ */
+static void
+reconnect (struct GNUNET_ABD_Handle *handle);
+
+
+/**
+ * Reconnect to ABD
+ *
+ * @param cls the handle
+ */
+static void
+reconnect_task (void *cls)
+{
+  struct GNUNET_ABD_Handle *handle = cls;
+
+  handle->reconnect_task = NULL;
+  reconnect (handle);
+}
+
+
+/**
+ * Disconnect from service and then reconnect.
+ *
+ * @param handle our handle
+ */
+static void
+force_reconnect (struct GNUNET_ABD_Handle *handle)
+{
+  GNUNET_MQ_destroy (handle->mq);
+  handle->mq = NULL;
+  handle->reconnect_backoff =
+    GNUNET_TIME_STD_BACKOFF (handle->reconnect_backoff);
+  handle->reconnect_task =
+    GNUNET_SCHEDULER_add_delayed (handle->reconnect_backoff,
+                                  &reconnect_task,
+                                  handle);
+}
+
+
+/**
+ * Generic error handler, called with the appropriate error code and
+ * the same closure specified at the creation of the message queue.
+ * Not every message queue implementation supports an error handler.
+ *
+ * @param cls closure with the `struct GNUNET_ABD_Handle *`
+ * @param error error code
+ */
+static void
+mq_error_handler (void *cls, enum GNUNET_MQ_Error error)
+{
+  struct GNUNET_ABD_Handle *handle = cls;
+
+  force_reconnect (handle);
+}
+
+/**
+ * Check validity of message received from the ABD service
+ *
+ * @param cls the `struct GNUNET_ABD_Handle *`
+ * @param vr_msg the incoming message
+ */
+static int
+check_result (void *cls, const struct DelegationChainResultMessage *vr_msg)
+{
+  //TODO
+  return GNUNET_OK;
+}
+
+
+/**
+ * Handler for messages received from the ABD service
+ *
+ * @param cls the `struct GNUNET_ABD_Handle *`
+ * @param vr_msg the incoming message
+ */
+static void
+handle_result (void *cls, const struct DelegationChainResultMessage *vr_msg)
+{
+  struct GNUNET_ABD_Handle *handle = cls;
+  uint32_t r_id = ntohl (vr_msg->id);
+  struct GNUNET_ABD_Request *vr;
+  size_t mlen = ntohs (vr_msg->header.size) - sizeof (*vr_msg);
+  uint32_t d_count = ntohl (vr_msg->d_count);
+  uint32_t c_count = ntohl (vr_msg->c_count);
+  struct GNUNET_ABD_Delegation d_chain[d_count];
+  struct GNUNET_ABD_Delegate dels[c_count];
+  GNUNET_ABD_CredentialResultProcessor proc;
+  void *proc_cls;
+
+  LOG (GNUNET_ERROR_TYPE_DEBUG,
+       "Received verify reply from ABD service\n");
+  for (vr = handle->request_head; NULL != vr; vr = vr->next)
+    if (vr->r_id == r_id)
+      break;
+  if (NULL == vr)
+    return;
+  proc = vr->verify_proc;
+  proc_cls = vr->proc_cls;
+  GNUNET_CONTAINER_DLL_remove (handle->request_head, handle->request_tail, vr);
+  GNUNET_MQ_discard (vr->env);
+  GNUNET_free (vr);
+  GNUNET_assert (
+    GNUNET_OK ==
+    GNUNET_ABD_delegation_chain_deserialize (mlen,
+                                                    (const char *) &vr_msg[1],
+                                                    d_count,
+                                                    d_chain,
+                                                    c_count,
+                                                    dels));
+  if (GNUNET_NO == ntohl (vr_msg->del_found))
+  {
+    proc (proc_cls, 0, NULL, 0,
+          NULL);
+  }
+  else
+  {
+    proc (proc_cls, d_count, d_chain, c_count, dels);
+  }
+}
+
+static int
+check_intermediate (void *cls, const struct DelegationChainIntermediateMessage 
*vr_msg)
+{
+  //TODO
+  return GNUNET_OK;
+}
+
+static void
+handle_intermediate (void *cls, const struct 
DelegationChainIntermediateMessage *vr_msg)
+{
+  struct GNUNET_ABD_Handle *handle = cls;
+  uint32_t r_id = ntohl (vr_msg->id);
+  uint32_t size = ntohl (vr_msg->size);
+  bool is_bw = ntohs(vr_msg->is_bw);
+  struct GNUNET_ABD_Request *vr;
+  GNUNET_ABD_IntermediateResultProcessor proc;
+  void *proc_cls;
+  struct GNUNET_ABD_Delegation *dd;
+
+
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Received intermediate reply from ABD 
service\n");
+
+  for (vr = handle->request_head; NULL != vr; vr = vr->next)
+    if (vr->r_id == r_id)
+      break;
+  if (NULL == vr)
+    return;
+  
+  proc = vr->int_proc;
+  proc_cls = vr->proc2_cls;
+  
+  dd = GNUNET_new (struct GNUNET_ABD_Delegation);
+  GNUNET_assert (
+    GNUNET_OK ==
+    GNUNET_ABD_delegation_chain_deserialize (size,
+                                                    (const char *) &vr_msg[1],
+                                                    1,
+                                                    dd,
+                                                    0,
+                                                    NULL));
+  proc (proc_cls, dd, is_bw);
+}
+
+
+
+/**
+ * Reconnect to ABD service.
+ *
+ * @param handle the handle to the ABD service
+ */
+static void
+reconnect (struct GNUNET_ABD_Handle *handle)
+{
+  struct GNUNET_MQ_MessageHandler handlers[] =
+    {GNUNET_MQ_hd_var_size (result,
+                            GNUNET_MESSAGE_TYPE_ABD_VERIFY_RESULT,
+                            struct DelegationChainResultMessage,
+                            handle),
+     GNUNET_MQ_hd_var_size (result,
+                            GNUNET_MESSAGE_TYPE_ABD_COLLECT_RESULT,
+                            struct DelegationChainResultMessage,
+                            handle),
+     GNUNET_MQ_hd_var_size (intermediate,
+                            GNUNET_MESSAGE_TYPE_ABD_INTERMEDIATE_RESULT,
+                            struct DelegationChainIntermediateMessage,
+                            handle),
+     GNUNET_MQ_handler_end ()};
+  struct GNUNET_ABD_Request *vr;
+
+  GNUNET_assert (NULL == handle->mq);
+  LOG (GNUNET_ERROR_TYPE_DEBUG, "Trying to connect to ABD\n");
+  handle->mq = GNUNET_CLIENT_connect (handle->cfg,
+                                      "abd",
+                                      handlers,
+                                      &mq_error_handler,
+                                      handle);
+  if (NULL == handle->mq)
+    return;
+  for (vr = handle->request_head; NULL != vr; vr = vr->next)
+    GNUNET_MQ_send_copy (handle->mq, vr->env);
+}
+
+
+/**
+ * Initialize the connection with the ABD service.
+ *
+ * @param cfg configuration to use
+ * @return handle to the ABD service, or NULL on error
+ */
+struct GNUNET_ABD_Handle *
+GNUNET_ABD_connect (const struct GNUNET_CONFIGURATION_Handle *cfg)
+{
+  struct GNUNET_ABD_Handle *handle;
+
+  handle = GNUNET_new (struct GNUNET_ABD_Handle);
+  handle->cfg = cfg;
+  reconnect (handle);
+  if (NULL == handle->mq)
+  {
+    GNUNET_free (handle);
+    return NULL;
+  }
+  return handle;
+}
+
+
+/**
+ * Shutdown connection with the ABD service.
+ *
+ * @param handle handle of the ABD connection to stop
+ */
+void
+GNUNET_ABD_disconnect (struct GNUNET_ABD_Handle *handle)
+{
+  if (NULL != handle->mq)
+  {
+    GNUNET_MQ_destroy (handle->mq);
+    handle->mq = NULL;
+  }
+  if (NULL != handle->reconnect_task)
+  {
+    GNUNET_SCHEDULER_cancel (handle->reconnect_task);
+    handle->reconnect_task = NULL;
+  }
+  GNUNET_assert (NULL == handle->request_head);
+  GNUNET_free (handle);
+}
+
+
+/**
+ * Cancel pending verify request
+ *
+ * @param lr the verify request to cancel
+ */
+void
+GNUNET_ABD_request_cancel (struct GNUNET_ABD_Request *lr)
+{
+  struct GNUNET_ABD_Handle *handle = lr->abd_handle;
+
+  GNUNET_CONTAINER_DLL_remove (handle->request_head, handle->request_tail, lr);
+  GNUNET_MQ_discard (lr->env);
+  GNUNET_free (lr);
+}
+
+
+/**
+ * Performs attribute collection.
+ * Collects all abds of subject to fulfill the 
+ * attribute, if possible
+ *
+ * @param handle handle to the Credential service
+ * @param issuer_key the issuer public key
+ * @param issuer_attribute the issuer attribute
+ * @param subject_key the subject public key
+ * @param proc function to call on result
+ * @param proc_cls closure for processor
+ * @return handle to the queued request
+ */
+struct GNUNET_ABD_Request *
+GNUNET_ABD_collect (
+  struct GNUNET_ABD_Handle *handle,
+  const struct GNUNET_CRYPTO_EcdsaPublicKey *issuer_key,
+  const char *issuer_attribute,
+  const struct GNUNET_CRYPTO_EcdsaPrivateKey *subject_key,
+  enum GNUNET_ABD_AlgoDirectionFlags direction,
+  GNUNET_ABD_CredentialResultProcessor proc,
+  void *proc_cls,
+  GNUNET_ABD_IntermediateResultProcessor proc2,
+  void *proc2_cls)
+{
+  /* IPC to shorten abd names, return shorten_handle */
+  struct CollectMessage *c_msg;
+  struct GNUNET_ABD_Request *vr;
+  size_t nlen;
+
+  if (NULL == issuer_attribute)
+  {
+    GNUNET_break (0);
+    return NULL;
+  }
+
+  //DEBUG LOG
+  LOG (GNUNET_ERROR_TYPE_DEBUG,
+       "Trying to collect `%s' in ABD\n",
+       issuer_attribute);
+  nlen = strlen (issuer_attribute) + 1;
+  if (nlen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (*vr))
+  {
+    GNUNET_break (0);
+    return NULL;
+  }
+  vr = GNUNET_new (struct GNUNET_ABD_Request);
+  vr->abd_handle = handle;
+  vr->verify_proc = proc;
+  vr->proc_cls = proc_cls;
+  vr->int_proc =  proc2;
+  vr->proc2_cls = proc2_cls;
+  vr->r_id = handle->r_id_gen++;
+  vr->env =
+    GNUNET_MQ_msg_extra (c_msg, nlen, GNUNET_MESSAGE_TYPE_ABD_COLLECT);
+  c_msg->id = htonl (vr->r_id);
+  c_msg->subject_key = *subject_key;
+  c_msg->issuer_key = *issuer_key;
+  c_msg->issuer_attribute_len = htons (strlen (issuer_attribute));
+  c_msg->resolution_algo = htons (direction);
+
+  GNUNET_memcpy (&c_msg[1], issuer_attribute, strlen (issuer_attribute));
+  GNUNET_CONTAINER_DLL_insert (handle->request_head, handle->request_tail, vr);
+  if (NULL != handle->mq)
+    GNUNET_MQ_send_copy (handle->mq, vr->env);
+  return vr;
+}
+/**
+ * Performs attribute verification.
+ * Checks if there is a delegation chain from
+ * attribute ``issuer_attribute'' issued by the issuer
+ * with public key ``issuer_key'' maps to the attribute
+ * ``subject_attribute'' claimed by the subject with key
+ * ``subject_key''
+ *
+ * @param handle handle to the Credential service
+ * @param issuer_key the issuer public key
+ * @param issuer_attribute the issuer attribute
+ * @param subject_key the subject public key
+ * @param delegate_count number of delegates provided
+ * @param delegates subject delegates
+ * @param proc function to call on result
+ * @param proc_cls closure for processor
+ * @return handle to the queued request
+ */
+struct GNUNET_ABD_Request *
+GNUNET_ABD_verify (
+  struct GNUNET_ABD_Handle *handle,
+  const struct GNUNET_CRYPTO_EcdsaPublicKey *issuer_key,
+  const char *issuer_attribute,
+  const struct GNUNET_CRYPTO_EcdsaPublicKey *subject_key,
+  uint32_t delegate_count,
+  const struct GNUNET_ABD_Delegate *delegates,
+  enum GNUNET_ABD_AlgoDirectionFlags direction,
+  GNUNET_ABD_CredentialResultProcessor proc,
+  void *proc_cls,
+  GNUNET_ABD_IntermediateResultProcessor proc2,
+  void *proc2_cls)
+{
+  /* IPC to shorten abd names, return shorten_handle */
+  struct VerifyMessage *v_msg;
+  struct GNUNET_ABD_Request *vr;
+  size_t nlen;
+  size_t clen;
+
+  if (NULL == issuer_attribute || NULL == delegates)
+  {
+    GNUNET_break (0);
+    return NULL;
+  }
+
+  clen = GNUNET_ABD_delegates_get_size (delegate_count, delegates);
+
+  //DEBUG LOG
+  LOG (GNUNET_ERROR_TYPE_DEBUG,
+       "Trying to verify `%s' in ABD\n",
+       issuer_attribute);
+  nlen = strlen (issuer_attribute) + 1 + clen;
+  if (nlen >= GNUNET_MAX_MESSAGE_SIZE - sizeof (*vr))
+  {
+    GNUNET_break (0);
+    return NULL;
+  }
+  vr = GNUNET_new (struct GNUNET_ABD_Request);
+  vr->abd_handle = handle;
+  vr->verify_proc = proc;
+  vr->proc_cls = proc_cls;
+  vr->int_proc =  proc2;
+  vr->proc2_cls = proc2_cls;
+  vr->r_id = handle->r_id_gen++;
+  vr->env =
+    GNUNET_MQ_msg_extra (v_msg, nlen, GNUNET_MESSAGE_TYPE_ABD_VERIFY);
+  v_msg->id = htonl (vr->r_id);
+  v_msg->subject_key = *subject_key;
+  v_msg->d_count = htonl (delegate_count);
+  v_msg->issuer_key = *issuer_key;
+  v_msg->issuer_attribute_len = htons (strlen (issuer_attribute));
+  v_msg->resolution_algo = htons (direction);
+
+  GNUNET_memcpy (&v_msg[1], issuer_attribute, strlen (issuer_attribute));
+  GNUNET_ABD_delegates_serialize (delegate_count,
+                                         delegates,
+                                         clen,
+                                         ((char *) &v_msg[1]) +
+                                           strlen (issuer_attribute) + 1);
+  GNUNET_CONTAINER_DLL_insert (handle->request_head, handle->request_tail, vr);
+  if (NULL != handle->mq)
+    GNUNET_MQ_send_copy (handle->mq, vr->env);
+  return vr;
+}
+
+/* end of abd_api.c */
diff --git a/src/abd/abd_serialization.c b/src/abd/abd_serialization.c
new file mode 100644
index 000000000..d2bc15166
--- /dev/null
+++ b/src/abd/abd_serialization.c
@@ -0,0 +1,508 @@
+/*
+     This file is part of GNUnet.
+     Copyright (C) 2009-2013, 2016 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
+*/
+
+
+/**
+ * @file abd/abd_serialization.c
+ * @brief API to serialize and deserialize delegation chains 
+ * and abds
+ * @author Martin Schanzenbach
+ */
+#include "platform.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_constants.h"
+#include "gnunet_abd_service.h"
+#include "gnunet_signatures.h"
+#include "abd.h"
+
+/**
+ * Calculate how many bytes we will need to serialize
+ * the given delegation chain
+ *
+ * @param ds_count number of delegation chain entries
+ * @param dsr array of #GNUNET_ABD_DelegationSet
+ * @return the required size to serialize
+ */
+size_t
+GNUNET_ABD_delegation_set_get_size (
+  unsigned int ds_count,
+  const struct GNUNET_ABD_DelegationSet *dsr)
+{
+  unsigned int i;
+  size_t ret;
+
+  ret = sizeof (struct DelegationRecordData) * (ds_count);
+
+  for (i = 0; i < ds_count; i++)
+  {
+    GNUNET_assert ((ret + dsr[i].subject_attribute_len) >= ret);
+    ret += dsr[i].subject_attribute_len;
+  }
+  return ret;
+}
+
+/**
+ * Serizalize the given delegation chain entries and abd
+ *
+ * @param d_count number of delegation chain entries
+ * @param dsr array of #GNUNET_ABD_DelegationSet
+ * @param dest_size size of the destination
+ * @param dest where to store the result
+ * @return the size of the data, -1 on failure
+ */
+ssize_t
+GNUNET_ABD_delegation_set_serialize (
+  unsigned int d_count,
+  const struct GNUNET_ABD_DelegationSet *dsr,
+  size_t dest_size,
+  char *dest)
+{
+  struct DelegationRecordData rec;
+  unsigned int i;
+  size_t off;
+
+  off = 0;
+  for (i = 0; i < d_count; i++)
+  {
+    rec.subject_attribute_len = htonl ((uint32_t) 
dsr[i].subject_attribute_len);
+    rec.subject_key = dsr[i].subject_key;
+    if (off + sizeof (rec) > dest_size)
+      return -1;
+    GNUNET_memcpy (&dest[off], &rec, sizeof (rec));
+    off += sizeof (rec);
+    if (0 == dsr[i].subject_attribute_len)
+      continue;
+    if (off + dsr[i].subject_attribute_len > dest_size)
+      return -1;
+    GNUNET_memcpy (&dest[off],
+                   dsr[i].subject_attribute,
+                   dsr[i].subject_attribute_len);
+    off += dsr[i].subject_attribute_len;
+  }
+  return off;
+}
+
+
+/**
+ * Deserialize the given destination
+ *
+ * @param len size of the serialized delegation chain and cred
+ * @param src the serialized data
+ * @param d_count the number of delegation chain entries
+ * @param dsr where to put the delegation chain entries
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
+ */
+int
+GNUNET_ABD_delegation_set_deserialize (
+  size_t len,
+  const char *src,
+  unsigned int d_count,
+  struct GNUNET_ABD_DelegationSet *dsr)
+{
+  struct DelegationRecordData rec;
+  unsigned int i;
+  size_t off;
+
+  off = 0;
+  for (i = 0; i < d_count; i++)
+  {
+    if (off + sizeof (rec) > len)
+      return GNUNET_SYSERR;
+    GNUNET_memcpy (&rec, &src[off], sizeof (rec));
+    dsr[i].subject_key = rec.subject_key;
+    off += sizeof (rec);
+    dsr[i].subject_attribute_len = ntohl ((uint32_t) 
rec.subject_attribute_len);
+    if (off + dsr[i].subject_attribute_len > len)
+      return GNUNET_SYSERR;
+    dsr[i].subject_attribute = (char *) &src[off];
+    off += dsr[i].subject_attribute_len;
+  }
+  return GNUNET_OK;
+}
+
+
+/**
+ * Calculate how many bytes we will need to serialize
+ * the abds
+ *
+ * @param c_count number of abd entries
+ * @param cd a #GNUNET_ABD_Credential
+ * @return the required size to serialize
+ */
+size_t
+GNUNET_ABD_delegates_get_size (
+  unsigned int c_count,
+  const struct GNUNET_ABD_Delegate *cd)
+{
+  unsigned int i;
+  size_t ret;
+
+  ret = sizeof (struct DelegateEntry) * (c_count);
+
+  for (i = 0; i < c_count; i++)
+  {
+    GNUNET_assert ((ret + cd[i].issuer_attribute_len + 
cd[i].subject_attribute_len) >= ret);
+    // subject_attribute_len should be 0
+    ret += cd[i].issuer_attribute_len + cd[i].subject_attribute_len;
+  }
+  return ret;
+}
+/**
+ * Serizalize the given abds
+ *
+ * @param c_count number of abd entries
+ * @param cd a #GNUNET_ABD_Credential
+ * @param dest_size size of the destination
+ * @param dest where to store the result
+ * @return the size of the data, -1 on failure
+ */
+ssize_t
+GNUNET_ABD_delegates_serialize (
+  unsigned int c_count,
+  const struct GNUNET_ABD_Delegate *cd,
+  size_t dest_size,
+  char *dest)
+{
+  struct DelegateEntry c_rec;
+  unsigned int i;
+  size_t off;
+
+  off = 0;
+  for (i = 0; i < c_count; i++)
+  {
+    //c_rec.subject_attribute_len = htonl ((uint32_t) 
cd[i].subject_attribute_len);
+    c_rec.issuer_attribute_len = htonl ((uint32_t) cd[i].issuer_attribute_len);
+    c_rec.issuer_key = cd[i].issuer_key;
+    c_rec.subject_key = cd[i].subject_key;
+    c_rec.signature = cd[i].signature;
+    c_rec.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_DELEGATE);
+    c_rec.purpose.size =
+      htonl ((sizeof (struct DelegateEntry) + cd[i].issuer_attribute_len) -
+             sizeof (struct GNUNET_CRYPTO_EcdsaSignature));
+    c_rec.expiration = GNUNET_htonll (cd[i].expiration.abs_value_us);
+    if (off + sizeof (c_rec) > dest_size)
+      return -1;
+    GNUNET_memcpy (&dest[off], &c_rec, sizeof (c_rec));
+    off += sizeof (c_rec);
+    if (off + cd[i].issuer_attribute_len > dest_size)
+      return -1;
+    GNUNET_memcpy (&dest[off],
+                   cd[i].issuer_attribute,
+                   cd[i].issuer_attribute_len);
+    off += cd[i].issuer_attribute_len;
+  }
+
+  return off;
+}
+
+
+/**
+ * Deserialize the given destination
+ *
+ * @param len size of the serialized creds
+ * @param src the serialized data
+ * @param c_count the number of abd entries
+ * @param cd where to put the abd data
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
+ */
+int
+GNUNET_ABD_delegates_deserialize (size_t len,
+                                         const char *src,
+                                         unsigned int c_count,
+                                         struct GNUNET_ABD_Delegate *cd)
+{
+  struct DelegateEntry c_rec;
+  unsigned int i;
+  size_t off;
+
+  off = 0;
+  for (i = 0; i < c_count; i++)
+  {
+    if (off + sizeof (c_rec) > len)
+      return GNUNET_SYSERR;
+    GNUNET_memcpy (&c_rec, &src[off], sizeof (c_rec));
+    cd[i].issuer_attribute_len = ntohl ((uint32_t) c_rec.issuer_attribute_len);
+    cd[i].issuer_key = c_rec.issuer_key;
+    cd[i].subject_key = c_rec.subject_key;
+    cd[i].signature = c_rec.signature;
+    cd[i].expiration.abs_value_us = GNUNET_ntohll (c_rec.expiration);
+    off += sizeof (c_rec);
+    if (off + cd[i].issuer_attribute_len > len)
+      return GNUNET_SYSERR;
+    cd[i].issuer_attribute = &src[off];
+    off += cd[i].issuer_attribute_len;
+    cd[i].subject_attribute_len = 0;
+  }
+  return GNUNET_OK;
+}
+
+
+/**
+ * Calculate how many bytes we will need to serialize
+ * the given delegation chain and abd
+ *
+ * @param d_count number of delegation chain entries
+ * @param dd array of #GNUNET_ABD_Delegation
+ * @param c_count number of abd entries
+ * @param cd a #GNUNET_ABD_Credential
+ * @return the required size to serialize
+ */
+size_t
+GNUNET_ABD_delegation_chain_get_size (
+  unsigned int d_count,
+  const struct GNUNET_ABD_Delegation *dd,
+  unsigned int c_count,
+  const struct GNUNET_ABD_Delegate *cd)
+{
+  unsigned int i;
+  size_t ret;
+
+  ret = sizeof (struct ChainEntry) * (d_count);
+
+  for (i = 0; i < d_count; i++)
+  {
+    GNUNET_assert (
+      (ret + dd[i].issuer_attribute_len + dd[i].subject_attribute_len) >= ret);
+    ret += dd[i].issuer_attribute_len + dd[i].subject_attribute_len;
+  }
+  return ret + GNUNET_ABD_delegates_get_size (c_count, cd);
+}
+
+/**
+ * Serizalize the given delegation chain entries and abd
+ *
+ * @param d_count number of delegation chain entries
+ * @param dd array of #GNUNET_ABD_Delegation
+ * @param c_count number of abd entries
+ * @param cd a #GNUNET_ABD_Credential
+ * @param dest_size size of the destination
+ * @param dest where to store the result
+ * @return the size of the data, -1 on failure
+ */
+ssize_t
+GNUNET_ABD_delegation_chain_serialize (
+  unsigned int d_count,
+  const struct GNUNET_ABD_Delegation *dd,
+  unsigned int c_count,
+  const struct GNUNET_ABD_Delegate *cd,
+  size_t dest_size,
+  char *dest)
+{
+  struct ChainEntry rec;
+  unsigned int i;
+  size_t off;
+
+  off = 0;
+  for (i = 0; i < d_count; i++)
+  {
+    rec.issuer_attribute_len = htonl ((uint32_t) dd[i].issuer_attribute_len);
+    rec.subject_attribute_len = htonl ((uint32_t) dd[i].subject_attribute_len);
+    rec.issuer_key = dd[i].issuer_key;
+    rec.subject_key = dd[i].subject_key;
+    if (off + sizeof (rec) > dest_size)
+      return -1;
+    GNUNET_memcpy (&dest[off], &rec, sizeof (rec));
+    off += sizeof (rec);
+    if (off + dd[i].issuer_attribute_len > dest_size)
+      return -1;
+    GNUNET_memcpy (&dest[off],
+                   dd[i].issuer_attribute,
+                   dd[i].issuer_attribute_len);
+    off += dd[i].issuer_attribute_len;
+    if (0 == dd[i].subject_attribute_len)
+      continue;
+    if (off + dd[i].subject_attribute_len > dest_size)
+      return -1;
+    GNUNET_memcpy (&dest[off],
+                   dd[i].subject_attribute,
+                   dd[i].subject_attribute_len);
+    off += dd[i].subject_attribute_len;
+  }
+  return off + GNUNET_ABD_delegates_serialize (c_count,
+                                                      cd,
+                                                      dest_size - off,
+                                                      &dest[off]);
+}
+
+
+/**
+ * Deserialize the given destination
+ *
+ * @param len size of the serialized delegation chain and cred
+ * @param src the serialized data
+ * @param d_count the number of delegation chain entries
+ * @param dd where to put the delegation chain entries
+ * @param c_count the number of abd entries
+ * @param cd where to put the abd data
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
+ */
+int
+GNUNET_ABD_delegation_chain_deserialize (
+  size_t len,
+  const char *src,
+  unsigned int d_count,
+  struct GNUNET_ABD_Delegation *dd,
+  unsigned int c_count,
+  struct GNUNET_ABD_Delegate *cd)
+{
+  struct ChainEntry rec;
+  unsigned int i;
+  size_t off;
+
+  off = 0;
+  for (i = 0; i < d_count; i++)
+  {
+    if (off + sizeof (rec) > len)
+      return GNUNET_SYSERR;
+    GNUNET_memcpy (&rec, &src[off], sizeof (rec));
+    dd[i].issuer_attribute_len = ntohl ((uint32_t) rec.issuer_attribute_len);
+    dd[i].issuer_key = rec.issuer_key;
+    dd[i].subject_key = rec.subject_key;
+    off += sizeof (rec);
+    if (off + dd[i].issuer_attribute_len > len)
+      return GNUNET_SYSERR;
+    dd[i].issuer_attribute = &src[off];
+    off += dd[i].issuer_attribute_len;
+    dd[i].subject_attribute_len = ntohl ((uint32_t) rec.subject_attribute_len);
+    if (off + dd[i].subject_attribute_len > len)
+      return GNUNET_SYSERR;
+    dd[i].subject_attribute = &src[off];
+    off += dd[i].subject_attribute_len;
+  }
+  return GNUNET_ABD_delegates_deserialize (len - off,
+                                                  &src[off],
+                                                  c_count,
+                                                  cd);
+}
+
+int
+GNUNET_ABD_delegate_serialize (struct GNUNET_ABD_Delegate *dele,
+                                      char **data)
+{
+  size_t size;
+  struct DelegateEntry *cdata;
+  int attr_len;
+
+  // +1 for \0
+  if (0 == dele->subject_attribute_len)
+  {
+    attr_len = dele->issuer_attribute_len + 1;
+  }
+  else
+  {
+    attr_len = dele->issuer_attribute_len + dele->subject_attribute_len + 2;
+  }
+  size = sizeof (struct DelegateEntry) + attr_len;
+
+  char tmp_str[attr_len];
+  GNUNET_memcpy (tmp_str, dele->issuer_attribute, dele->issuer_attribute_len);
+  if (0 != dele->subject_attribute_len)
+  {
+    tmp_str[dele->issuer_attribute_len] = '\0';
+    GNUNET_memcpy (tmp_str + dele->issuer_attribute_len + 1,
+                   dele->subject_attribute,
+                   dele->subject_attribute_len);
+  }
+  tmp_str[attr_len - 1] = '\0';
+
+  *data = GNUNET_malloc (size);
+  cdata = (struct DelegateEntry *) *data;
+  cdata->subject_key = dele->subject_key;
+  cdata->issuer_key = dele->issuer_key;
+  cdata->expiration = GNUNET_htonll (dele->expiration.abs_value_us);
+  cdata->signature = dele->signature;
+  cdata->issuer_attribute_len = htonl (dele->issuer_attribute_len + 1);
+  if (0 == dele->subject_attribute_len)
+  {
+    cdata->subject_attribute_len = htonl (0);
+  }
+  else
+  {
+    cdata->subject_attribute_len = htonl (dele->subject_attribute_len + 1);
+  }
+  cdata->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_DELEGATE);
+  cdata->purpose.size =
+    htonl (size - sizeof (struct GNUNET_CRYPTO_EcdsaSignature));
+
+  GNUNET_memcpy (&cdata[1], tmp_str, attr_len);
+
+  if (GNUNET_OK !=
+      GNUNET_CRYPTO_ecdsa_verify (GNUNET_SIGNATURE_PURPOSE_DELEGATE,
+                                  &cdata->purpose,
+                                  &cdata->signature,
+                                  &cdata->issuer_key))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Serialize: Invalid delegate\n");
+    return 0;
+  }
+  return size;
+}
+
+struct GNUNET_ABD_Delegate *
+GNUNET_ABD_delegate_deserialize (const char *data, size_t data_size)
+{
+  struct GNUNET_ABD_Delegate *dele;
+  struct DelegateEntry *cdata;
+  char *attr_combo_str;
+
+  if (data_size < sizeof (struct DelegateEntry))
+    return NULL;
+  cdata = (struct DelegateEntry *) data;
+  if (GNUNET_OK !=
+      GNUNET_CRYPTO_ecdsa_verify (GNUNET_SIGNATURE_PURPOSE_DELEGATE,
+                                  &cdata->purpose,
+                                  &cdata->signature,
+                                  &cdata->issuer_key))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Deserialize: Invalid delegate\n");
+    return NULL;
+  }
+  attr_combo_str = (char *) &cdata[1];
+  int iss_len = ntohl (cdata->issuer_attribute_len);
+  int sub_len = ntohl (cdata->subject_attribute_len);
+  int attr_combo_len = iss_len + sub_len;
+
+  dele =
+    GNUNET_malloc (sizeof (struct GNUNET_ABD_Delegate) + attr_combo_len);
+
+  dele->issuer_key = cdata->issuer_key;
+  dele->subject_key = cdata->subject_key;
+  GNUNET_memcpy (&dele[1], attr_combo_str, attr_combo_len);
+  dele->signature = cdata->signature;
+
+  // Set the pointers for the attributes
+  dele->issuer_attribute = (char *) &dele[1];
+  dele->issuer_attribute_len = iss_len;
+  dele->subject_attribute_len = sub_len;
+  if (0 == sub_len)
+  {
+    dele->subject_attribute = NULL;
+  }
+  else
+  {
+    dele->subject_attribute = (char *) &dele[1] + iss_len;
+  }
+
+  dele->expiration.abs_value_us = GNUNET_ntohll (cdata->expiration);
+
+  return dele;
+}
+
+/* end of abd_serialization.c */
diff --git a/src/abd/abd_serialization.h b/src/abd/abd_serialization.h
new file mode 100644
index 000000000..cef9f42ef
--- /dev/null
+++ b/src/abd/abd_serialization.h
@@ -0,0 +1,165 @@
+/*
+     This file is part of GNUnet.
+     Copyright (C) 2009-2013, 2016 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
+*/
+
+
+/**
+ * @file abd/abd_serialization.h
+ * @brief API to serialize and deserialize delegation chains 
+ * and abds
+ * @author Martin Schanzenbach
+ */
+#ifndef ABD_SERIALIZATION_H
+#define ABD_SERIALIZATION_H
+
+#include "platform.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_constants.h"
+#include "gnunet_abd_service.h"
+
+/**
+ * Calculate how many bytes we will need to serialize
+ * the given delegation record
+ *
+ * @param ds_count number of delegation chain entries
+ * @param dsr array of #GNUNET_ABD_Delegation
+ * @return the required size to serialize
+ */
+size_t
+GNUNET_ABD_delegation_set_get_size (
+  unsigned int ds_count,
+  const struct GNUNET_ABD_DelegationSet *dsr);
+
+/**
+ * Serizalize the given delegation record entries
+ *
+ * @param d_count number of delegation chain entries
+ * @param dsr array of #GNUNET_ABD_Delegation
+ * @param dest_size size of the destination
+ * @param dest where to store the result
+ * @return the size of the data, -1 on failure
+ */
+ssize_t
+GNUNET_ABD_delegation_set_serialize (
+  unsigned int d_count,
+  const struct GNUNET_ABD_DelegationSet *dsr,
+  size_t dest_size,
+  char *dest);
+
+
+/**
+ * Deserialize the given destination
+ *
+ * @param len size of the serialized delegation recird
+ * @param src the serialized data
+ * @param d_count the number of delegation chain entries
+ * @param dsr where to put the delegation chain entries
+ * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
+ */
+int
+GNUNET_ABD_delegation_set_deserialize (
+  size_t len,
+  const char *src,
+  unsigned int d_count,
+  struct GNUNET_ABD_DelegationSet *dsr);
+
+/**
+   * Calculate how many bytes we will need to serialize
+   * the given delegation chain and abd
+   *
+   * @param d_count number of delegation chain entries
+   * @param dd array of #GNUNET_ABD_Delegation
+   * @param c_count number of abd entries
+   * @param cd a #GNUNET_ABD_Delegate
+   * @return the required size to serialize
+   */
+size_t
+GNUNET_ABD_delegation_chain_get_size (
+  unsigned int d_count,
+  const struct GNUNET_ABD_Delegation *dd,
+  unsigned int c_count,
+  const struct GNUNET_ABD_Delegate *cd);
+
+/**
+   * Serizalize the given delegation chain entries and abd
+   *
+   * @param d_count number of delegation chain entries
+   * @param dd array of #GNUNET_ABD_Delegation
+   * @param c_count number of abd entries
+   * @param cd a #GNUNET_ABD_Delegate
+   * @param dest_size size of the destination
+   * @param dest where to store the result
+   * @return the size of the data, -1 on failure
+   */
+ssize_t
+GNUNET_ABD_delegation_chain_serialize (
+  unsigned int d_count,
+  const struct GNUNET_ABD_Delegation *dd,
+  unsigned int c_count,
+  const struct GNUNET_ABD_Delegate *cd,
+  size_t dest_size,
+  char *dest);
+
+
+/**
+   * Deserialize the given destination
+   *
+   * @param len size of the serialized delegation chain and cred
+   * @param src the serialized data
+   * @param d_count the number of delegation chain entries
+   * @param dd where to put the delegation chain entries
+   * @param c_count number of abd entries
+   * @param cd where to put the abd data
+   * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
+   */
+int
+GNUNET_ABD_delegation_chain_deserialize (
+  size_t len,
+  const char *src,
+  unsigned int d_count,
+  struct GNUNET_ABD_Delegation *dd,
+  unsigned int c_count,
+  struct GNUNET_ABD_Delegate *cd);
+size_t
+GNUNET_ABD_delegates_get_size (
+  unsigned int c_count,
+  const struct GNUNET_ABD_Delegate *cd);
+
+ssize_t
+GNUNET_ABD_delegates_serialize (
+  unsigned int c_count,
+  const struct GNUNET_ABD_Delegate *cd,
+  size_t dest_size,
+  char *dest);
+
+
+int
+GNUNET_ABD_delegates_deserialize (size_t len,
+                                         const char *src,
+                                         unsigned int c_count,
+                                         struct GNUNET_ABD_Delegate *cd);
+
+int
+GNUNET_ABD_delegate_serialize (struct GNUNET_ABD_Delegate *cred,
+                                      char **data);
+
+struct GNUNET_ABD_Delegate *
+GNUNET_ABD_delegate_deserialize (const char *data, size_t data_size);
+#endif
+/* end of abd_serialization.h */
diff --git a/src/abd/delegate_misc.c b/src/abd/delegate_misc.c
new file mode 100644
index 000000000..ecc7f7669
--- /dev/null
+++ b/src/abd/delegate_misc.c
@@ -0,0 +1,274 @@
+/*
+     This file is part of GNUnet.
+     Copyright (C) 2009-2013, 2016 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
+*/
+
+
+/**
+ * @file abd/delegate_misc.c
+ * @brief Misc API for delegate
+ *
+ * @author Martin Schanzenbach
+ */
+#include "platform.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_constants.h"
+#include "gnunet_abd_service.h"
+#include "gnunet_signatures.h"
+#include "abd.h"
+#include <inttypes.h>
+
+char *
+GNUNET_ABD_delegate_to_string (
+  const struct GNUNET_ABD_Delegate *cred)
+{
+  char *cred_str;
+  char *subject_pkey;
+  char *issuer_pkey;
+  char *signature;
+
+  subject_pkey = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred->subject_key);
+  issuer_pkey = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred->issuer_key);
+  GNUNET_STRINGS_base64_encode ((char *) &cred->signature,
+                                sizeof (struct GNUNET_CRYPTO_EcdsaSignature),
+                                &signature);
+  if (0 == cred->subject_attribute_len)
+  {
+    GNUNET_asprintf (&cred_str,
+                     "%s.%s -> %s | %s | %" SCNu64,
+                     issuer_pkey,
+                     cred->issuer_attribute,
+                     subject_pkey,
+                     signature,
+                     cred->expiration.abs_value_us);
+  }
+  else
+  {
+    GNUNET_asprintf (&cred_str,
+                     "%s.%s -> %s.%s | %s | %" SCNu64,
+                     issuer_pkey,
+                     cred->issuer_attribute,
+                     subject_pkey,
+                     cred->subject_attribute,
+                     signature,
+                     cred->expiration.abs_value_us);
+  }
+  GNUNET_free (subject_pkey);
+  GNUNET_free (issuer_pkey);
+  GNUNET_free (signature);
+
+  return cred_str;
+}
+
+struct GNUNET_ABD_Delegate *
+GNUNET_ABD_delegate_from_string (const char *s)
+{
+  struct GNUNET_ABD_Delegate *dele;
+  size_t enclen = (sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)) * 8;
+  if (enclen % 5 > 0)
+    enclen += 5 - enclen % 5;
+  enclen /= 5; /* 260/5 = 52 */
+  char subject_pkey[enclen + 1];
+  char issuer_pkey[enclen + 1];
+  char iss_attr[253 + 1];
+  // Needs to be initialized, in case of Type 1 credential (A.a <- B)
+  char sub_attr[253 + 1] = "";
+  char signature[256]; //TODO max payload size
+
+  struct GNUNET_CRYPTO_EcdsaSignature *sig;
+  struct GNUNET_TIME_Absolute etime_abs;
+
+  // If it's A.a <- B.b...
+  if (6 != SSCANF (s,
+                   "%52s.%253s -> %52s.%253s | %s | %" SCNu64,
+                   issuer_pkey,
+                   iss_attr,
+                   subject_pkey,
+                   sub_attr,
+                   signature,
+                   &etime_abs.abs_value_us))
+  {
+    // Try if it's A.a <- B
+    if (5 != SSCANF (s,
+                     "%52s.%253s -> %52s | %s | %" SCNu64,
+                     issuer_pkey,
+                     iss_attr,
+                     subject_pkey,
+                     signature,
+                     &etime_abs.abs_value_us))
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                  "Unable to parse DEL record string `%s'\n",
+                  s);
+      return NULL;
+    }
+  }
+
+  // +1 for \0
+  int attr_len;
+  if (strcmp (sub_attr, "") == 0)
+  {
+    attr_len = strlen (iss_attr) + 1;
+  }
+  else
+  {
+    attr_len = strlen (iss_attr) + strlen (sub_attr) + 2;
+  }
+  dele = GNUNET_malloc (sizeof (struct GNUNET_ABD_Delegate) + attr_len);
+
+  char tmp_str[attr_len];
+  GNUNET_memcpy (tmp_str, iss_attr, strlen (iss_attr));
+  if (strcmp (sub_attr, "") != 0)
+  {
+    tmp_str[strlen (iss_attr)] = '\0';
+    GNUNET_memcpy (tmp_str + strlen (iss_attr) + 1,
+                   sub_attr,
+                   strlen (sub_attr));
+  }
+  tmp_str[attr_len - 1] = '\0';
+
+  GNUNET_CRYPTO_ecdsa_public_key_from_string (subject_pkey,
+                                              strlen (subject_pkey),
+                                              &dele->subject_key);
+  GNUNET_CRYPTO_ecdsa_public_key_from_string (issuer_pkey,
+                                              strlen (issuer_pkey),
+                                              &dele->issuer_key);
+  GNUNET_assert (sizeof (struct GNUNET_CRYPTO_EcdsaSignature) ==
+                 GNUNET_STRINGS_base64_decode (signature,
+                                               strlen (signature),
+                                               (void **) &sig));
+  dele->signature = *sig;
+  dele->expiration = etime_abs;
+  GNUNET_free (sig);
+
+  GNUNET_memcpy (&dele[1], tmp_str, attr_len);
+
+  dele->issuer_attribute = (char *) &dele[1];
+  dele->issuer_attribute_len = strlen (iss_attr);
+  if (strcmp (sub_attr, "") == 0)
+  {
+    dele->subject_attribute = NULL;
+    dele->subject_attribute_len = 0;
+  }
+  else
+  {
+    dele->subject_attribute = (char *) &dele[1] + strlen (iss_attr) + 1;
+    dele->subject_attribute_len = strlen (sub_attr);
+  }
+
+  return dele;
+}
+
+/**
+ * Issue an attribute to a subject
+ *
+ * @param issuer the ego that should be used to issue the attribute
+ * @param subject the subject of the attribute
+ * @param iss_attr the name of the attribute
+ * @return handle to the queued request
+ */
+
+struct GNUNET_ABD_Delegate *
+GNUNET_ABD_delegate_issue (
+  const struct GNUNET_CRYPTO_EcdsaPrivateKey *issuer,
+  struct GNUNET_CRYPTO_EcdsaPublicKey *subject,
+  const char *iss_attr,
+  const char *sub_attr,
+  struct GNUNET_TIME_Absolute *expiration)
+{
+  struct DelegateEntry *del;
+  struct GNUNET_ABD_Delegate *dele;
+  size_t size;
+  int attr_len;
+
+  if (NULL == sub_attr)
+  {
+    // +1 for \0
+    attr_len = strlen (iss_attr) + 1;
+  }
+  else
+  {
+    // +2 for both strings need to be terminated with \0
+    attr_len = strlen (iss_attr) + strlen (sub_attr) + 2;
+  }
+  size = sizeof (struct DelegateEntry) + attr_len;
+
+  char tmp_str[attr_len];
+  GNUNET_memcpy (tmp_str, iss_attr, strlen (iss_attr));
+  if (NULL != sub_attr)
+  {
+    tmp_str[strlen (iss_attr)] = '\0';
+    GNUNET_memcpy (tmp_str + strlen (iss_attr) + 1,
+                   sub_attr,
+                   strlen (sub_attr));
+  }
+  tmp_str[attr_len - 1] = '\0';
+
+  del = GNUNET_malloc (size);
+  del->purpose.size =
+    htonl (size - sizeof (struct GNUNET_CRYPTO_EcdsaSignature));
+  del->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_DELEGATE);
+  GNUNET_CRYPTO_ecdsa_key_get_public (issuer, &del->issuer_key);
+  del->subject_key = *subject;
+  del->expiration = GNUNET_htonll (expiration->abs_value_us);
+  del->issuer_attribute_len = htonl (strlen (iss_attr) + 1);
+  if (NULL == sub_attr)
+  {
+    del->subject_attribute_len = htonl (0);
+  }
+  else
+  {
+    del->subject_attribute_len = htonl (strlen (sub_attr) + 1);
+  }
+
+  GNUNET_memcpy (&del[1], tmp_str, attr_len);
+
+  if (GNUNET_OK !=
+      GNUNET_CRYPTO_ecdsa_sign (issuer, &del->purpose, &del->signature))
+  {
+    GNUNET_break (0);
+    GNUNET_free (del);
+    return NULL;
+  }
+
+  dele = GNUNET_malloc (sizeof (struct GNUNET_ABD_Delegate) + attr_len);
+  dele->signature = del->signature;
+  dele->expiration = *expiration;
+  GNUNET_CRYPTO_ecdsa_key_get_public (issuer, &dele->issuer_key);
+
+  dele->subject_key = *subject;
+
+  // Copy the combined string at the part in the memory where the struct ends
+  GNUNET_memcpy (&dele[1], tmp_str, attr_len);
+
+  dele->issuer_attribute = (char *) &dele[1];
+  dele->issuer_attribute_len = strlen (iss_attr);
+  if (NULL == sub_attr)
+  {
+    dele->subject_attribute = NULL;
+    dele->subject_attribute_len = 0;
+  }
+  else
+  {
+    dele->subject_attribute = (char *) &dele[1] + strlen (iss_attr) + 1;
+    dele->subject_attribute_len = strlen (sub_attr);
+  }
+
+  GNUNET_free (del);
+  return dele;
+}
diff --git a/src/credential/credential_misc.h b/src/abd/delegate_misc.h
similarity index 70%
rename from src/credential/credential_misc.h
rename to src/abd/delegate_misc.h
index 510e1aacb..42a95ce99 100644
--- a/src/credential/credential_misc.h
+++ b/src/abd/delegate_misc.h
@@ -18,19 +18,19 @@
      SPDX-License-Identifier: AGPL3.0-or-later
  */
 /**
- * @file credential/credential_misc.h
- * @brief Credential helper functions
+ * @file abd/delegate_misc.h
+ * @brief Delegate helper functions
  */
-#ifndef CREDENTIAL_MISC_H
-#define CREDENTIAL_MISC_H
+#ifndef DELEGATE_MISC_H
+#define DELEGATE_MISC_H
 
-#include "gnunet_credential_service.h"
+#include "gnunet_abd_service.h"
 
 char *
-GNUNET_CREDENTIAL_credential_to_string (
-  const struct GNUNET_CREDENTIAL_Credential *cred);
+GNUNET_ABD_delegate_to_string (
+    const struct GNUNET_ABD_Delegate *cred);
 
-struct GNUNET_CREDENTIAL_Credential *
-GNUNET_CREDENTIAL_credential_from_string (const char *str);
+struct GNUNET_ABD_Delegate *
+GNUNET_ABD_delegate_from_string (const char *str);
 
 #endif
diff --git a/src/abd/gnunet-abd.c b/src/abd/gnunet-abd.c
new file mode 100644
index 000000000..23083ec68
--- /dev/null
+++ b/src/abd/gnunet-abd.c
@@ -0,0 +1,1070 @@
+/*
+     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
+*/
+/**
+ * @file gnunet-abd.c
+ * @brief command line tool to access command line Credential service
+ * @author Martin Schanzenbach
+ */
+#include "platform.h"
+#include <gnunet_util_lib.h>
+#include <gnunet_abd_service.h>
+#include <gnunet_gnsrecord_lib.h>
+#include <gnunet_namestore_service.h>
+#include "delegate_misc.h"
+#include "abd_serialization.h"
+
+/**
+ * Configuration we are using.
+ */
+static const struct GNUNET_CONFIGURATION_Handle *cfg;
+
+/**
+ * Handle to the namestore.
+ */
+static struct GNUNET_NAMESTORE_Handle *ns;
+
+/**
+ * Private key for the our zone.
+ */
+static struct GNUNET_CRYPTO_EcdsaPrivateKey zone_pkey;
+
+/**
+ * EgoLookup
+ */
+static struct GNUNET_IDENTITY_EgoLookup *el;
+
+/**
+ * Handle to Credential service.
+ */
+static struct GNUNET_ABD_Handle *abd;
+
+/**
+ * Desired timeout for the lookup (default is no timeout).
+ */
+static struct GNUNET_TIME_Relative timeout;
+
+/**
+ * Handle to verify request
+ */
+static struct GNUNET_ABD_Request *verify_request;
+
+/**
+ * Handle to collect request
+ */
+static struct GNUNET_ABD_Request *collect_request;
+
+/**
+ * Task scheduled to handle timeout.
+ */
+static struct GNUNET_SCHEDULER_Task *tt;
+
+/**
+ * Return value of the commandline.
+ */
+static int ret = 0;
+
+/**
+ * Subject pubkey string
+ */
+static char *subject;
+
+/**
+ * Subject delegate string
+ */
+static char *subject_delegate;
+
+/**
+ * Credential TTL
+ */
+static char *expiration;
+
+/**
+ * Subject key
+ */
+struct GNUNET_CRYPTO_EcdsaPublicKey subject_pkey;
+
+/**
+ * Issuer key
+ */
+struct GNUNET_CRYPTO_EcdsaPublicKey issuer_pkey;
+
+
+/**
+ * Issuer pubkey string
+ */
+static char *issuer_key;
+
+/**
+ * ego
+ */
+static char *ego_name;
+
+/**
+ * Issuer attribute
+ */
+static char *issuer_attr;
+
+/**
+ * Verify mode
+ */
+static int verify;
+
+/**
+ * Collect mode
+ */
+static int collect;
+
+/**
+ * Create mode
+ */
+static int create_is;
+
+/**
+ * Create mode
+ */
+static int create_ss;
+
+/**
+ * Create mode
+ */
+static int sign_ss;
+
+/**
+ * Signed issue credentials
+ */
+static char *import;
+
+/**
+ * Is record private
+ */
+static int is_private;
+
+/**
+ * Search direction: forward
+ */
+static int forward;
+
+/**
+ * Search direction: backward
+ */
+static int backward;
+
+/**
+ * API enum, filled and passed for collect/verify
+ */
+enum GNUNET_ABD_AlgoDirectionFlags direction = 0;
+
+/**
+ * Queue entry for the 'add' operation.
+ */
+static struct GNUNET_NAMESTORE_QueueEntry *add_qe;
+
+/**
+ * Value in binary format.
+ */
+static void *data;
+
+/**
+ * Number of bytes in #data.
+ */
+static size_t data_size;
+
+/**
+ * Type string converted to DNS type value.
+ */
+static uint32_t type;
+
+/**
+ * Type of the record to add/remove, NULL to remove all.
+ */
+static char *typestring;
+/**
+ * Expiration string converted to numeric value.
+ */
+static uint64_t etime;
+
+/**
+ * Is expiration time relative or absolute time?
+ */
+static int etime_is_rel = GNUNET_SYSERR;
+
+/**
+ * Fixed size of the public/private keys
+ */
+static const int key_length = 52;
+
+/**
+ * Record label for storing delegations
+ */
+static char *record_label;
+
+/**
+ * Task run on shutdown.  Cleans up everything.
+ *
+ * @param cls unused
+ */
+static void
+do_shutdown (void *cls)
+{
+  if (NULL != verify_request)
+  {
+    GNUNET_ABD_request_cancel (verify_request);
+    verify_request = NULL;
+  }
+  if (NULL != abd)
+  {
+    GNUNET_ABD_disconnect (abd);
+    abd = NULL;
+  }
+  if (NULL != tt)
+  {
+    GNUNET_SCHEDULER_cancel (tt);
+    tt = NULL;
+  }
+  if (NULL != el)
+  {
+    GNUNET_IDENTITY_ego_lookup_cancel (el);
+    el = NULL;
+  }
+  if (NULL != add_qe)
+  {
+    GNUNET_NAMESTORE_cancel (add_qe);
+    add_qe = NULL;
+  }
+  if (NULL != ns)
+  {
+    GNUNET_NAMESTORE_disconnect (ns);
+    ns = NULL;
+  }
+}
+
+
+/**
+ * Task run on timeout. Triggers shutdown.
+ *
+ * @param cls unused
+ */
+static void
+do_timeout (void *cls)
+{
+  tt = NULL;
+  GNUNET_SCHEDULER_shutdown ();
+}
+
+static void
+handle_intermediate_result(void *cls,
+  struct GNUNET_ABD_Delegation *dd,
+  bool is_bw)
+{
+  char *prefix = "";
+  if(is_bw)
+    prefix = "Backward -";
+  else
+    prefix = "Forward -";
+
+  printf ("%s Intermediate result: %s.%s <- %s.%s\n",
+      prefix,
+      GNUNET_CRYPTO_ecdsa_public_key_to_string (&dd->issuer_key),
+      dd->issuer_attribute,
+      GNUNET_CRYPTO_ecdsa_public_key_to_string (&dd->subject_key),
+      dd->subject_attribute);
+}
+
+static void
+handle_collect_result (void *cls,
+                       unsigned int d_count,
+                       struct GNUNET_ABD_Delegation *dc,
+                       unsigned int c_count,
+                       struct GNUNET_ABD_Delegate *dele)
+{
+  int i;
+  char *line;
+
+  verify_request = NULL;
+  if (NULL != dele)
+  {
+    for (i = 0; i < c_count; i++)
+    {
+      line = GNUNET_ABD_delegate_to_string (&dele[i]);
+      printf ("%s\n", line);
+      GNUNET_free (line);
+    }
+  }
+  else
+  {
+    printf ("Received NULL\n");
+  }
+
+  GNUNET_SCHEDULER_shutdown ();
+}
+
+
+static void
+handle_verify_result (void *cls,
+                      unsigned int d_count,
+                      struct GNUNET_ABD_Delegation *dc,
+                      unsigned int c_count,
+                      struct GNUNET_ABD_Delegate *dele)
+{
+  int i;
+  char *iss_key;
+  char *sub_key;
+
+  verify_request = NULL;
+  if (NULL == dele)
+    ret = 1;
+  else
+  {
+    printf ("Delegation Chain:\n");
+    for (i = 0; i < d_count; i++)
+    {
+      iss_key = GNUNET_CRYPTO_ecdsa_public_key_to_string (&dc[i].issuer_key);
+      sub_key = GNUNET_CRYPTO_ecdsa_public_key_to_string (&dc[i].subject_key);
+
+      if (0 != dc[i].subject_attribute_len)
+      {
+        printf ("(%d) %s.%s <- %s.%s\n",
+                i,
+                iss_key,
+                dc[i].issuer_attribute,
+                sub_key,
+                dc[i].subject_attribute);
+      }
+      else
+      {
+        printf ("(%d) %s.%s <- %s\n",
+                i,
+                iss_key,
+                dc[i].issuer_attribute,
+                sub_key);
+      }
+      GNUNET_free (iss_key);
+      GNUNET_free (sub_key);
+    }
+    printf ("\nDelegate(s):\n");
+    for (i = 0; i < c_count; i++)
+    {
+      iss_key = GNUNET_CRYPTO_ecdsa_public_key_to_string (&dele[i].issuer_key);
+      sub_key = GNUNET_CRYPTO_ecdsa_public_key_to_string 
(&dele[i].subject_key);
+      printf ("%s.%s <- %s\n", iss_key, dele[i].issuer_attribute, sub_key);
+      GNUNET_free (iss_key);
+      GNUNET_free (sub_key);
+    }
+    printf ("Successful.\n");
+  }
+
+  GNUNET_SCHEDULER_shutdown ();
+}
+
+/**
+ * Callback invoked from identity service with ego information.
+ * An @a ego of NULL means the ego was not found.
+ *
+ * @param cls closure with the configuration
+ * @param ego an ego known to identity service, or NULL
+ */
+static void
+identity_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego)
+{
+  const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey;
+
+  el = NULL;
+  if (NULL == ego)
+  {
+    if (NULL != ego_name)
+    {
+      fprintf (stderr,
+               _ ("Ego `%s' not known to identity service\n"),
+               ego_name);
+    }
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+
+  if (GNUNET_YES == collect)
+  {
+
+    if (GNUNET_OK !=
+        GNUNET_CRYPTO_ecdsa_public_key_from_string (issuer_key,
+                                                    strlen (issuer_key),
+                                                    &issuer_pkey))
+    {
+      fprintf (stderr,
+               _ ("Issuer public key `%s' is not well-formed\n"),
+               issuer_key);
+      GNUNET_SCHEDULER_shutdown ();
+    }
+    privkey = GNUNET_IDENTITY_ego_get_private_key (ego);
+
+    collect_request = GNUNET_ABD_collect (abd,
+                                                 &issuer_pkey,
+                                                 issuer_attr,
+                                                 privkey,
+                                                 direction,
+                                                 &handle_collect_result,
+                                                 NULL,
+                                                 &handle_intermediate_result,
+                                                      NULL);
+    return;
+  }
+  GNUNET_SCHEDULER_shutdown ();
+}
+
+/**
+ * Parse expiration time.
+ *
+ * @param expirationstring text to parse
+ * @param etime_is_rel[out] set to #GNUNET_YES if time is relative
+ * @param etime[out] set to expiration time (abs or rel)
+ * @return #GNUNET_OK on success
+ */
+static int
+parse_expiration (const char *expirationstring,
+                  int *etime_is_rel,
+                  uint64_t *etime)
+{
+  // copied from namestore/gnunet-namestore.c
+  struct GNUNET_TIME_Relative etime_rel;
+  struct GNUNET_TIME_Absolute etime_abs;
+
+  if (0 == strcmp (expirationstring, "never"))
+  {
+    *etime = GNUNET_TIME_UNIT_FOREVER_ABS.abs_value_us;
+    *etime_is_rel = GNUNET_NO;
+    return GNUNET_OK;
+  }
+  if (GNUNET_OK ==
+      GNUNET_STRINGS_fancy_time_to_relative (expirationstring, &etime_rel))
+  {
+    *etime_is_rel = GNUNET_YES;
+    *etime = etime_rel.rel_value_us;
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Storing record with relative expiration time of %s\n",
+                GNUNET_STRINGS_relative_time_to_string (etime_rel, GNUNET_NO));
+    return GNUNET_OK;
+  }
+  if (GNUNET_OK ==
+      GNUNET_STRINGS_fancy_time_to_absolute (expirationstring, &etime_abs))
+  {
+    *etime_is_rel = GNUNET_NO;
+    *etime = etime_abs.abs_value_us;
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Storing record with absolute expiration time of %s\n",
+                GNUNET_STRINGS_absolute_time_to_string (etime_abs));
+    return GNUNET_OK;
+  }
+  return GNUNET_SYSERR;
+}
+
+/**
+ * Function called if lookup fails.
+ */
+static void
+error_cb (void *cls)
+{
+  fprintf (stderr, "Error occured during lookup, shutting down.\n");
+  GNUNET_SCHEDULER_shutdown ();
+  return;
+}
+static void
+add_continuation (void *cls, int32_t success, const char *emsg)
+{
+  struct GNUNET_NAMESTORE_QueueEntry **qe = cls;
+  *qe = NULL;
+
+  if(GNUNET_OK == success)
+    printf ("Adding successful.\n");
+  else
+    fprintf (stderr, "Error occured during adding, shutting down.\n");
+
+  GNUNET_SCHEDULER_shutdown ();
+}
+
+static void
+get_existing_record (void *cls,
+                     const struct GNUNET_CRYPTO_EcdsaPrivateKey *zone_key,
+                     const char *rec_name,
+                     unsigned int rd_count,
+                     const struct GNUNET_GNSRECORD_Data *rd)
+{
+  struct GNUNET_GNSRECORD_Data rdn[rd_count + 1];
+  struct GNUNET_GNSRECORD_Data *rde;
+
+  memset (rdn, 0, sizeof (struct GNUNET_GNSRECORD_Data));
+  GNUNET_memcpy (&rdn[1], rd, rd_count * sizeof (struct 
GNUNET_GNSRECORD_Data));
+  rde = &rdn[0];
+  rde->data = data;
+  rde->data_size = data_size;
+  rde->record_type = type;
+
+  // Set flags
+  if (GNUNET_YES == is_private)
+    rde->flags |= GNUNET_GNSRECORD_RF_PRIVATE;
+  rde->expiration_time = etime;
+  if (GNUNET_YES == etime_is_rel)
+    rde->flags |= GNUNET_GNSRECORD_RF_RELATIVE_EXPIRATION;
+  else if (GNUNET_NO != etime_is_rel)
+    rde->expiration_time = GNUNET_TIME_UNIT_FOREVER_ABS.abs_value_us;
+
+  GNUNET_assert (NULL != rec_name);
+  add_qe = GNUNET_NAMESTORE_records_store (ns,
+                                           &zone_pkey,
+                                           rec_name,
+                                           rd_count + 1,
+                                           rde,
+                                           &add_continuation,
+                                           &add_qe);
+
+  return;
+}
+
+static void
+store_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego)
+{
+  const struct GNUNET_CONFIGURATION_Handle *cfg = cls;
+
+  el = NULL;
+
+  ns = GNUNET_NAMESTORE_connect (cfg);
+  if (NULL == ns)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                _ ("Failed to connect to namestore\n"));
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+
+  // Key handling
+  zone_pkey = *GNUNET_IDENTITY_ego_get_private_key (ego);
+
+  if (GNUNET_GNSRECORD_TYPE_DELEGATE == type)
+  {
+    // Parse import
+    struct GNUNET_ABD_Delegate *cred;
+    cred = GNUNET_ABD_delegate_from_string (import);
+
+    // Get import subject public key string
+    char *subject_pubkey_str =
+      GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred->subject_key);
+
+    // Get zone public key string
+    struct GNUNET_CRYPTO_EcdsaPublicKey zone_pubkey;
+    GNUNET_IDENTITY_ego_get_public_key (ego, &zone_pubkey);
+    char *zone_pubkey_str =
+      GNUNET_CRYPTO_ecdsa_public_key_to_string (&zone_pubkey);
+
+    // Check if the subject key in the signed import matches the zone's key it 
is issued to
+    if (strcmp (zone_pubkey_str, subject_pubkey_str) != 0)
+    {
+      fprintf (stderr,
+               "Import signed delegate does not match this ego's public 
key.\n");
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+
+    // Expiration
+    etime = cred->expiration.abs_value_us;
+    etime_is_rel = GNUNET_NO;
+
+    // Prepare the data to be store in the record
+    data_size = GNUNET_ABD_delegate_serialize (cred, (char **) &data);
+    GNUNET_free (cred);
+  }
+  else
+  {
+    // For all other types e.g. GNUNET_GNSRECORD_TYPE_ATTRIBUTE
+    if (GNUNET_OK !=
+        GNUNET_GNSRECORD_string_to_value (type, subject, &data, &data_size))
+    {
+      fprintf (stderr,
+               "Value `%s' invalid for record type `%s'\n",
+               subject,
+               typestring);
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+
+    // Take care of expiration
+    if (NULL == expiration)
+    {
+      fprintf (stderr, "Missing option -e for operation 'create'\n");
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    if (GNUNET_OK != parse_expiration (expiration, &etime_is_rel, &etime))
+    {
+      fprintf (stderr, "Invalid time format `%s'\n", expiration);
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+  }
+
+  // Start lookup
+  add_qe = GNUNET_NAMESTORE_records_lookup (ns,
+                                            &zone_pkey,
+                                            record_label,
+                                            &error_cb,
+                                            NULL,
+                                            &get_existing_record,
+                                            NULL);
+  return;
+}
+
+static void
+sign_cb (void *cls, const struct GNUNET_IDENTITY_Ego *ego)
+{
+  const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey;
+  struct GNUNET_ABD_Delegate *dele;
+  struct GNUNET_TIME_Absolute etime_abs;
+  char *res;
+
+  el = NULL;
+
+  // work on expiration time
+  if (NULL == expiration)
+  {
+    fprintf (stderr, "Please specify a TTL\n");
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+  else if (GNUNET_OK !=
+           GNUNET_STRINGS_fancy_time_to_absolute (expiration, &etime_abs))
+  {
+    fprintf (stderr,
+             "%s is not a valid ttl! Only absolute times are accepted!\n",
+             expiration);
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+
+  // If contains a space - split it by the first space only - assume first 
entry is subject followed by attribute(s)
+  char *subject_pubkey_str;
+  char *subject_attr = NULL;
+  char *token;
+
+  // Subject Public Key
+  token = strtok (subject, " ");
+  if (key_length == strlen (token))
+  {
+    subject_pubkey_str = token;
+  }
+  else
+  {
+    fprintf (stderr, "Key error, wrong length: %ld!\n", strlen (token));
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+  // Subject Attribute(s)
+  token = strtok (NULL, " ");
+  if (NULL != token)
+  {
+    subject_attr = token;
+  }
+
+  // work on keys
+  privkey = GNUNET_IDENTITY_ego_get_private_key (ego);
+
+  if (GNUNET_OK !=
+      GNUNET_CRYPTO_ecdsa_public_key_from_string (subject_pubkey_str,
+                                                  strlen (subject_pubkey_str),
+                                                  &subject_pkey))
+  {
+    fprintf (stderr,
+             "Subject public key `%s' is not well-formed\n",
+             subject_pubkey_str);
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+
+  // Sign delegate
+  dele = GNUNET_ABD_delegate_issue (privkey,
+                                           &subject_pkey,
+                                           issuer_attr,
+                                           subject_attr,
+                                           &etime_abs);
+  res = GNUNET_ABD_delegate_to_string (dele);
+  GNUNET_free (dele);
+  printf ("%s\n", res);
+
+  GNUNET_free_non_null (ego_name);
+  ego_name = NULL;
+
+  GNUNET_SCHEDULER_shutdown ();
+}
+
+/**
+ * Main function that will be run.
+ *
+ * @param cls closure
+ * @param args remaining command-line arguments
+ * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
+ * @param c configuration
+ */
+static void
+run (void *cls,
+     char *const *args,
+     const char *cfgfile,
+     const struct GNUNET_CONFIGURATION_Handle *c)
+{
+  cfg = c;
+
+  tt = GNUNET_SCHEDULER_add_delayed (timeout, &do_timeout, NULL);
+  GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL);
+
+  // Check relevant cmdline parameters
+  if (GNUNET_YES == create_is)
+  {
+    if (NULL == ego_name)
+    {
+      fprintf (stderr, "Missing option '-ego'\n");
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    if (NULL == issuer_attr)
+    {
+      fprintf (stderr, "Missing option '-attribute' for issuer attribute\n");
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    if (NULL == subject)
+    {
+      fprintf (stderr, "Missing option -subject for operation 'create'.'\n");
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+
+    // Lookup ego, on success call store_cb and store as ATTRIBUTE type
+    type = GNUNET_GNSRECORD_TYPE_ATTRIBUTE;
+    record_label = issuer_attr;
+    el = GNUNET_IDENTITY_ego_lookup (cfg, ego_name, &store_cb, (void *) cfg);
+    return;
+  }
+
+  if (GNUNET_YES == create_ss)
+  {
+
+    // check if signed parameter has been passed in cmd line call
+    if (NULL == import)
+    {
+      fprintf (stderr, "'import' required\n");
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+
+    type = GNUNET_GNSRECORD_TYPE_DELEGATE;
+    record_label = GNUNET_GNS_EMPTY_LABEL_AT;
+    // Store subject side
+    el = GNUNET_IDENTITY_ego_lookup (cfg, ego_name, &store_cb, (void *) cfg);
+
+    return;
+  }
+
+  if (GNUNET_YES == sign_ss)
+  {
+    if (NULL == ego_name)
+    {
+      fprintf (stderr, "ego required\n");
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    if (NULL == subject)
+    {
+      fprintf (stderr, "Subject public key needed\n");
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+
+    // lookup ego and call function sign_cb on success
+    el = GNUNET_IDENTITY_ego_lookup (cfg, ego_name, &sign_cb, (void *) cfg);
+    return;
+  }
+
+  if (GNUNET_NO == forward && GNUNET_NO == backward)
+  {
+    // set default: bidirectional
+    forward = GNUNET_YES;
+    backward = GNUNET_YES;
+  }
+  if (GNUNET_YES == forward)
+    direction |= GNUNET_ABD_FLAG_FORWARD;
+  if (GNUNET_YES == backward)
+    direction |= GNUNET_ABD_FLAG_BACKWARD;
+
+  if (GNUNET_YES == collect)
+  {
+    if (NULL == issuer_key)
+    {
+      fprintf (stderr, _ ("Issuer public key not well-formed\n"));
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+
+    abd = GNUNET_ABD_connect (cfg);
+
+    if (NULL == abd)
+    {
+      fprintf (stderr, _ ("Failed to connect to ABD\n"));
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    if (NULL == issuer_attr)
+    {
+      fprintf (stderr, _ ("You must provide issuer the attribute\n"));
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+
+    if (NULL == ego_name)
+    {
+      fprintf (stderr, _ ("ego required\n"));
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    el = GNUNET_IDENTITY_ego_lookup (cfg, ego_name, &identity_cb, (void *) 
cfg);
+    return;
+  }
+
+  if (NULL == subject)
+  {
+    fprintf (stderr, _ ("Subject public key needed\n"));
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+  if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_public_key_from_string (subject,
+                                                               strlen 
(subject),
+                                                               &subject_pkey))
+  {
+    fprintf (stderr,
+             _ ("Subject public key `%s' is not well-formed\n"),
+             subject);
+    GNUNET_SCHEDULER_shutdown ();
+    return;
+  }
+
+  if (GNUNET_YES == verify)
+  {
+    if (NULL == issuer_key)
+    {
+      fprintf (stderr, _ ("Issuer public key not well-formed\n"));
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    if (GNUNET_OK !=
+        GNUNET_CRYPTO_ecdsa_public_key_from_string (issuer_key,
+                                                    strlen (issuer_key),
+                                                    &issuer_pkey))
+    {
+      fprintf (stderr,
+               _ ("Issuer public key `%s' is not well-formed\n"),
+               issuer_key);
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    abd = GNUNET_ABD_connect (cfg);
+
+    if (NULL == abd)
+    {
+      fprintf (stderr, _ ("Failed to connect to ABD\n"));
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    if (NULL == issuer_attr || NULL == subject_delegate)
+    {
+      fprintf (stderr, _ ("You must provide issuer and subject attributes\n"));
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+
+    //Subject credentials are comma separated
+    char *tmp = GNUNET_strdup (subject_delegate);
+    char *tok = strtok (tmp, ",");
+    if (NULL == tok)
+    {
+      fprintf (stderr, "Invalid subject credentials\n");
+      GNUNET_free (tmp);
+      GNUNET_SCHEDULER_shutdown ();
+      return;
+    }
+    int count = 1;
+    int i;
+    while (NULL != (tok = strtok (NULL, ",")))
+      count++;
+    struct GNUNET_ABD_Delegate delegates[count];
+    struct GNUNET_ABD_Delegate *dele;
+    GNUNET_free (tmp);
+    tmp = GNUNET_strdup (subject_delegate);
+    tok = strtok (tmp, ",");
+    for (i = 0; i < count; i++)
+    {
+      dele = GNUNET_ABD_delegate_from_string (tok);
+      GNUNET_memcpy (&delegates[i],
+                     dele,
+                     sizeof (struct GNUNET_ABD_Delegate));
+      delegates[i].issuer_attribute = GNUNET_strdup (dele->issuer_attribute);
+      tok = strtok (NULL, ",");
+      GNUNET_free (dele);
+    }
+
+    verify_request = GNUNET_ABD_verify (abd,
+                                               &issuer_pkey,
+                                               issuer_attr,
+                                               &subject_pkey,
+                                               count,
+                                               delegates,
+                                               direction,
+                                               &handle_verify_result,
+                                               NULL,
+                                               &handle_intermediate_result,
+                                                    NULL);
+    for (i = 0; i < count; i++)
+    {
+      GNUNET_free ((char *) delegates[i].issuer_attribute);
+    }
+    GNUNET_free (tmp);
+  }
+  else
+  {
+    fprintf (stderr,
+             _ (
+               "Please specify name to lookup, subject key and issuer 
key!\n"));
+    GNUNET_SCHEDULER_shutdown ();
+  }
+  return;
+}
+
+
+/**
+ * The main function for gnunet-gns.
+ *
+ * @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 *const *argv)
+{
+  struct GNUNET_GETOPT_CommandLineOption options[] =
+    {GNUNET_GETOPT_option_flag ('V',
+                                "verify",
+                                gettext_noop (
+                                  "verify credential against attribute"),
+                                &verify),
+     GNUNET_GETOPT_option_string (
+       's',
+       "subject",
+       "PKEY",
+       gettext_noop (
+         "The public key of the subject to lookup the"
+         "credential for, or for issuer side storage: subject and its 
attributes"),
+       &subject),
+     GNUNET_GETOPT_option_string (
+       'd',
+       "delegate",
+       "DELE",
+       gettext_noop ("The private, signed delegate presented by the subject"),
+       &subject_delegate),
+     GNUNET_GETOPT_option_string (
+       'i',
+       "issuer",
+       "PKEY",
+       gettext_noop (
+         "The public key of the authority to verify the credential against"),
+       &issuer_key),
+     GNUNET_GETOPT_option_string ('e',
+                                  "ego",
+                                  "EGO",
+                                  gettext_noop ("The ego/zone name to use"),
+                                  &ego_name),
+     GNUNET_GETOPT_option_string (
+       'a',
+       "attribute",
+       "ATTR",
+       gettext_noop ("The issuer attribute to verify against or to issue"),
+       &issuer_attr),
+     GNUNET_GETOPT_option_string ('T',
+                                  "ttl",
+                                  "EXP",
+                                  gettext_noop (
+                                    "The time to live for the credential."
+                                    "e.g. 5m, 6h, \"1990-12-30 12:00:00\""),
+                                  &expiration),
+     GNUNET_GETOPT_option_flag ('g',
+                                "collect",
+                                gettext_noop ("collect credentials"),
+                                &collect),
+     GNUNET_GETOPT_option_flag ('U',
+                                "createIssuerSide",
+                                gettext_noop (
+                                  "Create and issue a credential issuer 
side."),
+                                &create_is),
+     GNUNET_GETOPT_option_flag ('C',
+                                "createSubjectSide",
+                                gettext_noop (
+                                  "Issue a credential subject side."),
+                                &create_ss),
+     GNUNET_GETOPT_option_flag (
+       'S',
+       "signSubjectSide",
+       gettext_noop ("Create, sign and return a credential subject side."),
+       &sign_ss),
+     GNUNET_GETOPT_option_string (
+       'x',
+       "import",
+       "IMP",
+       gettext_noop (
+         "Import signed credentials that should be issued to a zone/ego"),
+       &import),
+     GNUNET_GETOPT_option_flag ('P',
+                                "private",
+                                gettext_noop ("Create private record entry."),
+                                &is_private),
+     GNUNET_GETOPT_option_flag (
+       'F',
+       "forward",
+       gettext_noop (
+         "Indicates that the collect/verify process is done via forward 
search."),
+       &forward),
+     GNUNET_GETOPT_option_flag (
+       'B',
+       "backward",
+       gettext_noop (
+         "Indicates that the collect/verify process is done via forward 
search."),
+       &backward),
+     GNUNET_GETOPT_OPTION_END};
+
+
+  timeout = GNUNET_TIME_UNIT_FOREVER_REL;
+  if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
+    return 2;
+
+  GNUNET_log_setup ("gnunet-abd", "WARNING", NULL);
+  if (GNUNET_OK != GNUNET_PROGRAM_run (argc,
+                                          argv,
+                                          "gnunet-abd",
+                                          _ ("GNUnet abd resolver tool"),
+                                          options,
+                                          &run,
+                                          NULL))
+    ret = 1;
+  GNUNET_free ((void *) argv);
+  return ret;
+}
+
+/* end of gnunet-abd.c */
diff --git a/src/abd/gnunet-service-abd.c b/src/abd/gnunet-service-abd.c
new file mode 100644
index 000000000..84222b290
--- /dev/null
+++ b/src/abd/gnunet-service-abd.c
@@ -0,0 +1,1751 @@
+/*
+     This file is part of GNUnet.
+     Copyright (C) 2011-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
+*/
+/**
+ * @file abd/gnunet-service-abd.c
+ * @brief GNUnet Credential Service (main service)
+ * @author Martin Schanzenbach
+ */
+#include "platform.h"
+
+#include "gnunet_util_lib.h"
+
+#include "abd.h"
+#include "abd_serialization.h"
+#include "gnunet_abd_service.h"
+#include "gnunet_protocols.h"
+#include "gnunet_signatures.h"
+#include "gnunet_statistics_service.h"
+#include <gnunet_dnsparser_lib.h>
+#include <gnunet_gns_service.h>
+#include <gnunet_gnsrecord_lib.h>
+#include <gnunet_identity_service.h>
+#include <gnunet_namestore_service.h>
+
+
+#define GNUNET_ABD_MAX_LENGTH 255
+
+struct VerifyRequestHandle;
+
+struct DelegationSetQueueEntry;
+
+
+struct DelegationChainEntry
+{
+  /**
+   * DLL
+   */
+  struct DelegationChainEntry *next;
+
+  /**
+   * DLL
+   */
+  struct DelegationChainEntry *prev;
+
+  /**
+   * The issuer
+   */
+  struct GNUNET_CRYPTO_EcdsaPublicKey issuer_key;
+
+  /**
+   * The subject
+   */
+  struct GNUNET_CRYPTO_EcdsaPublicKey subject_key;
+
+  /**
+   * The issued attribute
+   */
+  char *issuer_attribute;
+
+  /**
+   * The delegated attribute
+   */
+  char *subject_attribute;
+};
+
+/**
+ * DLL for record
+ */
+struct DelegateRecordEntry
+{
+  /**
+   * DLL
+   */
+  struct DelegateRecordEntry *next;
+
+  /**
+   * DLL
+   */
+  struct DelegateRecordEntry *prev;
+
+  /**
+   * Number of references in delegation chains
+   */
+  uint32_t refcount;
+
+  /**
+   * Payload
+   */
+  struct GNUNET_ABD_Delegate *delegate;
+};
+
+/**
+ * DLL used for delegations
+ * Used for OR delegations
+ */
+struct DelegationQueueEntry
+{
+  /**
+   * DLL
+   */
+  struct DelegationQueueEntry *next;
+
+  /**
+   * DLL
+   */
+  struct DelegationQueueEntry *prev;
+
+  /**
+   * Parent set
+   */
+  struct DelegationSetQueueEntry *parent_set;
+
+  /**
+   * Required solutions
+   */
+  uint32_t required_solutions;
+};
+
+/**
+ * DLL for delegation sets
+ * Used for AND delegation set
+ */
+struct DelegationSetQueueEntry
+{
+  /**
+   * DLL
+   */
+  struct DelegationSetQueueEntry *next;
+
+  /**
+   * DLL
+   */
+  struct DelegationSetQueueEntry *prev;
+
+  /**
+   * GNS handle
+   */
+  struct GNUNET_GNS_LookupRequest *lookup_request;
+
+  /**
+   * Verify handle
+   */
+  struct VerifyRequestHandle *handle;
+
+  /**
+   * Parent attribute delegation
+   */
+  struct DelegationQueueEntry *parent;
+
+  /**
+   * Issuer key
+   */
+  struct GNUNET_CRYPTO_EcdsaPublicKey *issuer_key;
+
+  /**
+   * Queue entries of this set
+   */
+  struct DelegationQueueEntry *queue_entries_head;
+
+  /**
+   * Queue entries of this set
+   */
+  struct DelegationQueueEntry *queue_entries_tail;
+
+  /**
+   * Parent QueueEntry
+   */
+  struct DelegationQueueEntry *parent_queue_entry;
+
+  /**
+   * Issuer attribute delegated to
+   */
+  char *issuer_attribute;
+
+  /**
+   * The current attribute to look up
+   */
+  char *lookup_attribute;
+
+  /**
+   * Trailing attribute context
+   */
+  char *attr_trailer;
+
+  /**
+   * Still to resolve delegation as string
+   */
+  char *unresolved_attribute_delegation;
+
+  /**
+   * The delegation chain entry
+   */
+  struct DelegationChainEntry *delegation_chain_entry;
+
+  /**
+   * True if added by backward resolution
+   */
+  bool from_bw;
+};
+
+
+/**
+ * Handle to a lookup operation from api
+ */
+struct VerifyRequestHandle
+{
+  /**
+   * True if created by a collect request.
+   */
+  bool is_collect;
+  /**
+   * We keep these in a DLL.
+   */
+  struct VerifyRequestHandle *next;
+
+  /**
+   * We keep these in a DLL.
+   */
+  struct VerifyRequestHandle *prev;
+
+  /**
+   * Handle to the requesting client
+   */
+  struct GNUNET_SERVICE_Client *client;
+
+  /**
+   * Size of delegation tree
+   */
+  uint32_t delegation_chain_size;
+
+  /**
+   * Children of this attribute
+   */
+  struct DelegationChainEntry *delegation_chain_head;
+
+  /**
+   * Children of this attribute
+   */
+  struct DelegationChainEntry *delegation_chain_tail;
+
+  /**
+   * List for bidirectional matching
+   */
+  struct DelegationSetQueueEntry *dsq_head;
+
+  /**
+   * List for bidirectional matching
+   */
+  struct DelegationSetQueueEntry *dsq_tail;
+
+  /**
+   * Issuer public key
+   */
+  struct GNUNET_CRYPTO_EcdsaPublicKey issuer_key;
+
+  /**
+   * Issuer attribute
+   */
+  char *issuer_attribute;
+
+  /**
+   * Subject public key
+   */
+  struct GNUNET_CRYPTO_EcdsaPublicKey subject_key;
+
+  /**
+   * Delegate DLL
+   */
+  struct DelegateRecordEntry *del_chain_head;
+
+  /**
+   * Delegate DLL
+   */
+  struct DelegateRecordEntry *del_chain_tail;
+
+  /**
+   * Delegate DLL size
+   */
+  uint32_t del_chain_size;
+
+  /**
+   * Current Delegation Pointer
+   */
+  struct DelegationQueueEntry *current_delegation;
+
+  /**
+   * request id
+   */
+  uint32_t request_id;
+
+  /**
+   * Pending lookups
+   */
+  uint64_t pending_lookups;
+
+  /**
+   * Direction of the resolution algo
+   */
+  enum GNUNET_ABD_AlgoDirectionFlags resolution_algo;
+
+  /**
+   * Delegate iterator for lookup
+   */
+  struct GNUNET_NAMESTORE_QueueEntry *dele_qe;
+};
+
+
+/**
+ * Head of the DLL.
+ */
+static struct VerifyRequestHandle *vrh_head = NULL;
+
+/**
+ * Tail of the DLL.
+ */
+static struct VerifyRequestHandle *vrh_tail = NULL;
+
+/**
+ * Handle to the statistics service
+ */
+static struct GNUNET_STATISTICS_Handle *statistics;
+
+/**
+ * Handle to GNS service.
+ */
+static struct GNUNET_GNS_Handle *gns;
+
+/**
+ * Handle to namestore service
+ */
+static struct GNUNET_NAMESTORE_Handle *namestore;
+
+static void
+print_deleset (struct DelegationSetQueueEntry *dsentry, char *text)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "%s %s.%s <- %s.%s\n",
+              text,
+              GNUNET_CRYPTO_ecdsa_public_key_to_string (
+                &dsentry->delegation_chain_entry->issuer_key),
+              dsentry->delegation_chain_entry->issuer_attribute,
+              GNUNET_CRYPTO_ecdsa_public_key_to_string (
+                &dsentry->delegation_chain_entry->subject_key),
+              dsentry->delegation_chain_entry->subject_attribute);
+}
+
+static void
+cleanup_dsq_entry (struct DelegationSetQueueEntry *ds_entry)
+{
+  GNUNET_free_non_null (ds_entry->issuer_key);
+  GNUNET_free_non_null (ds_entry->issuer_attribute);
+  GNUNET_free_non_null (ds_entry->attr_trailer);
+  // those fields are only set/used in bw search
+  if (ds_entry->from_bw)
+  {
+    GNUNET_free_non_null (ds_entry->lookup_attribute);
+    GNUNET_free_non_null (ds_entry->unresolved_attribute_delegation);
+  }
+  if (NULL != ds_entry->lookup_request)
+  {
+    GNUNET_GNS_lookup_cancel (ds_entry->lookup_request);
+    ds_entry->lookup_request = NULL;
+  }
+  if (NULL != ds_entry->delegation_chain_entry)
+  {
+    GNUNET_free_non_null (
+      ds_entry->delegation_chain_entry->subject_attribute);
+    GNUNET_free_non_null (ds_entry->delegation_chain_entry->issuer_attribute);
+    GNUNET_free (ds_entry->delegation_chain_entry);
+  }
+  // Free DQ entries
+  for(struct DelegationQueueEntry *dq_entry = ds_entry->queue_entries_head; 
+    NULL != ds_entry->queue_entries_head;
+    dq_entry = ds_entry->queue_entries_head)
+  {
+    GNUNET_CONTAINER_DLL_remove (ds_entry->queue_entries_head,
+                                ds_entry->queue_entries_tail,
+                                dq_entry);
+    GNUNET_free (dq_entry);
+  }
+  GNUNET_free (ds_entry);
+}
+
+static void
+cleanup_handle (struct VerifyRequestHandle *vrh)
+{
+  struct DelegateRecordEntry *del_entry;
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Cleaning up...\n");
+
+  if (NULL != vrh->dsq_head)
+  {
+    for (struct DelegationSetQueueEntry *ds_entry = vrh->dsq_head; NULL != 
vrh->dsq_head;
+       ds_entry = vrh->dsq_head)
+    {
+      GNUNET_CONTAINER_DLL_remove (vrh->dsq_head, vrh->dsq_tail, ds_entry);
+      cleanup_dsq_entry(ds_entry);
+    }
+  }
+  if (NULL != vrh->del_chain_head)
+  {
+    for (del_entry = vrh->del_chain_head; NULL != vrh->del_chain_head;
+        del_entry = vrh->del_chain_head)
+    {
+      GNUNET_CONTAINER_DLL_remove (vrh->del_chain_head,
+                                  vrh->del_chain_tail,
+                                  del_entry);
+      GNUNET_free_non_null (del_entry->delegate);
+      GNUNET_free (del_entry);
+    }
+  }
+  GNUNET_free_non_null (vrh->issuer_attribute);
+  GNUNET_free (vrh);
+}
+
+static void
+shutdown_task (void *cls)
+{
+  struct VerifyRequestHandle *vrh;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down!\n");
+
+  while (NULL != (vrh = vrh_head))
+  {
+    // ABD_resolver_lookup_cancel (clh->lookup);
+    GNUNET_CONTAINER_DLL_remove (vrh_head, vrh_tail, vrh);
+    cleanup_handle (vrh);
+  }
+
+  if (NULL != gns)
+  {
+    GNUNET_GNS_disconnect (gns);
+    gns = NULL;
+  }
+  if (NULL != namestore)
+  {
+    GNUNET_NAMESTORE_disconnect (namestore);
+    namestore = NULL;
+  }
+  if (NULL != statistics)
+  {
+    GNUNET_STATISTICS_destroy (statistics, GNUNET_NO);
+    statistics = NULL;
+  }
+}
+
+static void
+send_intermediate_response(struct VerifyRequestHandle *vrh, struct 
DelegationChainEntry *ch_entry, bool is_bw){
+  struct DelegationChainIntermediateMessage *rmsg;
+  struct GNUNET_MQ_Envelope *env;
+  struct GNUNET_ABD_Delegation *dd;
+  size_t size;
+
+  // Don't report immediate results during collect
+  if(vrh->is_collect)
+    return;
+
+  dd = GNUNET_new (struct GNUNET_ABD_Delegation);
+  dd->issuer_key = ch_entry->issuer_key;
+  dd->subject_key = ch_entry->subject_key;
+  dd->issuer_attribute = ch_entry->issuer_attribute;
+  dd->issuer_attribute_len = strlen (ch_entry->issuer_attribute) + 1;
+  dd->subject_attribute_len = 0;
+  dd->subject_attribute = NULL;
+  if (NULL != ch_entry->subject_attribute)
+  {
+    dd->subject_attribute = ch_entry->subject_attribute;
+    dd->subject_attribute_len = strlen (ch_entry->subject_attribute) + 1;
+  }
+  
+
+  size = GNUNET_ABD_delegation_chain_get_size (1,
+                                                 dd,
+                                                 0,
+                                                 NULL);
+
+  env = GNUNET_MQ_msg_extra (rmsg,
+                             size,
+                             GNUNET_MESSAGE_TYPE_ABD_INTERMEDIATE_RESULT);
+  // Assign id so that client can find associated request
+  rmsg->id = vrh->request_id;
+  rmsg->is_bw = htons(is_bw);
+  rmsg->size = htonl(size);
+
+  GNUNET_assert (
+    -1 != GNUNET_ABD_delegation_chain_serialize (1,
+                                                  dd,
+                                                  0,
+                                                  NULL,
+                                                  size,
+                                                  (char *) &rmsg[1]));
+  GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq (vrh->client), env);
+}
+
+static void
+send_lookup_response (struct VerifyRequestHandle *vrh)
+{
+  struct GNUNET_MQ_Envelope *env;
+  struct DelegationChainResultMessage *rmsg;
+  struct DelegationChainEntry *dce;
+  struct GNUNET_ABD_Delegation dd[vrh->delegation_chain_size];
+  struct GNUNET_ABD_Delegate dele[vrh->del_chain_size];
+  struct DelegateRecordEntry *del;
+  struct DelegateRecordEntry *tmp;
+  size_t size;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending response\n");
+  dce = vrh->delegation_chain_head;
+  for (uint32_t i = 0; i < vrh->delegation_chain_size; i++)
+  {
+    dd[i].issuer_key = dce->issuer_key;
+    dd[i].subject_key = dce->subject_key;
+    dd[i].issuer_attribute = dce->issuer_attribute;
+    dd[i].issuer_attribute_len = strlen (dce->issuer_attribute) + 1;
+    dd[i].subject_attribute_len = 0;
+    dd[i].subject_attribute = NULL;
+    if (NULL != dce->subject_attribute)
+    {
+      dd[i].subject_attribute = dce->subject_attribute;
+      dd[i].subject_attribute_len = strlen (dce->subject_attribute) + 1;
+    }
+    dce = dce->next;
+  }
+
+  // Remove all not needed credentials
+  for (del = vrh->del_chain_head; NULL != del;)
+  {
+    if (del->refcount > 0)
+    {
+      del = del->next;
+      continue;
+    }
+    tmp = del;
+    del = del->next;
+    GNUNET_CONTAINER_DLL_remove (vrh->del_chain_head, vrh->del_chain_tail, 
tmp);
+    GNUNET_free (tmp->delegate);
+    GNUNET_free (tmp);
+    vrh->del_chain_size--;
+  }
+
+  // Get serialized record data
+  // Append at the end of rmsg
+  del = vrh->del_chain_head;
+  for (uint32_t i = 0; i < vrh->del_chain_size; i++)
+  {
+    dele[i].issuer_key = del->delegate->issuer_key;
+    dele[i].subject_key = del->delegate->subject_key;
+    dele[i].issuer_attribute_len = strlen (del->delegate->issuer_attribute) + 
1;
+    dele[i].issuer_attribute = del->delegate->issuer_attribute;
+    dele[i].subject_attribute_len = del->delegate->subject_attribute_len;
+    dele[i].subject_attribute = del->delegate->subject_attribute;
+    dele[i].expiration = del->delegate->expiration;
+    dele[i].signature = del->delegate->signature;
+    del = del->next;
+  }
+  size =
+    GNUNET_ABD_delegation_chain_get_size (vrh->delegation_chain_size,
+                                                 dd,
+                                                 vrh->del_chain_size,
+                                                 dele);
+  env = GNUNET_MQ_msg_extra (rmsg,
+                             size,
+                             GNUNET_MESSAGE_TYPE_ABD_VERIFY_RESULT);
+  // Assign id so that client can find associated request
+  rmsg->id = vrh->request_id;
+  rmsg->d_count = htonl (vrh->delegation_chain_size);
+  rmsg->c_count = htonl (vrh->del_chain_size);
+
+  if (0 < vrh->del_chain_size)
+    rmsg->del_found = htonl (GNUNET_YES);
+  else
+    rmsg->del_found = htonl (GNUNET_NO);
+
+  GNUNET_assert (
+    -1 !=
+    GNUNET_ABD_delegation_chain_serialize (vrh->delegation_chain_size,
+                                                  dd,
+                                                  vrh->del_chain_size,
+                                                  dele,
+                                                  size,
+                                                  (char *) &rmsg[1]));
+
+  GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq (vrh->client), env);
+  GNUNET_CONTAINER_DLL_remove (vrh_head, vrh_tail, vrh);
+  cleanup_handle (vrh);
+  GNUNET_STATISTICS_update (statistics,
+                            "Completed verifications",
+                            1,
+                            GNUNET_NO);
+}
+
+static char *
+partial_match (char *tmp_trail,
+               char *tmp_subattr,
+               char *parent_trail,
+               char *issuer_attribute)
+{
+  char *saveptr1, *saveptr2;
+  char *trail_token;
+  char *sub_token;
+  char *attr_trailer;
+
+  // tok both, parent->attr_trailer and del->sub_attr to see how far they 
match,
+  // take rest of parent trailer (only when del->sub_attr token is null), and
+  // create new/actual trailer with del->iss_attr
+  trail_token = strtok_r (tmp_trail, ".", &saveptr1);
+  sub_token = strtok_r (tmp_subattr, ".", &saveptr2);
+  while (NULL != trail_token && NULL != sub_token)
+  {
+    if (0 == strcmp (trail_token, sub_token))
+    {
+      // good, matches, remove
+    }
+    else
+    {
+      // not relevant for solving the chain, end for iteration here
+      return NULL;
+    }
+
+    trail_token = strtok_r (NULL, ".", &saveptr1);
+    sub_token = strtok_r (NULL, ".", &saveptr2);
+  }
+  // skip this entry and go to next for if:
+  // 1. at some point the attr of the trailer and the subject dont match
+  // 2. the trailer is NULL, but the subject has more attributes
+  // Reason: This will lead to "startzone.attribute" but we're looking for a 
solution
+  // for "<- startzone"
+  if (NULL == trail_token)
+  {
+    return NULL;
+  }
+
+  // do not have to check sub_token == NULL, if both would be NULL
+  // at the same time, the complete match part above should have triggered 
already
+
+  // otherwise, above while only ends when sub_token == NULL
+  GNUNET_asprintf (&attr_trailer, "%s", trail_token);
+  trail_token = strtok_r (NULL, ".", &saveptr1);
+  while (NULL != trail_token)
+  {
+    GNUNET_asprintf (&attr_trailer, "%s.%s", parent_trail, trail_token);
+    trail_token = strtok_r (NULL, ".", &saveptr1);
+  }
+  GNUNET_asprintf (&attr_trailer, "%s.%s", issuer_attribute, attr_trailer);
+  return attr_trailer;
+}
+
+static int
+handle_bidirectional_match (struct DelegationSetQueueEntry *actual_entry,
+                            struct DelegationSetQueueEntry *match_entry,
+                            struct VerifyRequestHandle *vrh)
+{
+  struct DelegationSetQueueEntry *old_fw_parent;
+  struct DelegationSetQueueEntry *fw_entry = actual_entry;
+  struct DelegationSetQueueEntry *last_entry = match_entry;
+  // parent fixing, combine backward and forward chain parts
+  while (NULL != fw_entry->parent_queue_entry)
+  {
+    old_fw_parent = fw_entry->parent_queue_entry->parent_set;
+    // set parent
+    fw_entry->parent_queue_entry->parent_set = last_entry;
+
+    last_entry = fw_entry;
+    fw_entry = old_fw_parent;
+  }
+  // set last entry of chain as actual_entry
+  //actual_entry = last_entry;
+  // set refcount, loop all delegations
+  for (struct DelegateRecordEntry *del_entry = vrh->del_chain_head;
+       del_entry != NULL;
+       del_entry = del_entry->next)
+  {
+    if (0 != memcmp (&last_entry->delegation_chain_entry->subject_key,
+                     &del_entry->delegate->issuer_key,
+                     sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
+      continue;
+    if (0 != strcmp (last_entry->delegation_chain_entry->subject_attribute,
+                     del_entry->delegate->issuer_attribute))
+      continue;
+
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found delegate.\n");
+    // increase refcount of the start delegation
+    del_entry->refcount++;
+  }
+  // backtrack
+  for (struct DelegationSetQueueEntry *tmp_set = last_entry;
+       NULL != tmp_set->parent_queue_entry;
+       tmp_set = tmp_set->parent_queue_entry->parent_set)
+  {
+    tmp_set->parent_queue_entry->required_solutions--;
+
+    // add new found entry to vrh
+    vrh->delegation_chain_size++;
+    GNUNET_CONTAINER_DLL_insert (vrh->delegation_chain_head,
+                                 vrh->delegation_chain_tail,
+                                 tmp_set->delegation_chain_entry);
+
+    // if one node on the path still needs solutions, this current
+    // patch cannot fullfil the conditions and therefore stops here
+    // however, it is in the vrh and can be used by the other paths
+    // related to this path/collection/verification
+    if (0 < tmp_set->parent_queue_entry->required_solutions)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "Chain requires more solutions, waiting...\n");
+      return GNUNET_NO;
+    }
+  }
+  return GNUNET_YES;
+}
+
+static void
+forward_resolution (void *cls,
+                    uint32_t rd_count,
+                    const struct GNUNET_GNSRECORD_Data *rd)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received %d entries.\n", rd_count);
+
+  struct VerifyRequestHandle *vrh;
+  struct DelegationSetQueueEntry *current_set;
+  struct DelegationSetQueueEntry *ds_entry;
+  struct DelegationQueueEntry *dq_entry;
+
+  current_set = cls;
+  // set handle to NULL (as el = NULL)
+  current_set->lookup_request = NULL;
+  vrh = current_set->handle;
+  vrh->pending_lookups--;
+
+  // Loop record entries
+  for (uint32_t i = 0; i < rd_count; i++)
+  {
+    if (GNUNET_GNSRECORD_TYPE_DELEGATE != rd[i].record_type)
+      continue;
+
+    // Start deserialize into Delegate
+    struct GNUNET_ABD_Delegate *del;
+    del = GNUNET_ABD_delegate_deserialize (rd[i].data, rd[i].data_size);
+
+    // Start: Create DQ Entry
+    dq_entry = GNUNET_new (struct DelegationQueueEntry);
+    // AND delegations are not possible, only 1 solution
+    dq_entry->required_solutions = 1;
+    dq_entry->parent_set = current_set;
+
+    // Insert it into the current set
+    GNUNET_CONTAINER_DLL_insert (current_set->queue_entries_head,
+                                 current_set->queue_entries_tail,
+                                 dq_entry);
+
+    // Start: Create DS Entry
+    ds_entry = GNUNET_new (struct DelegationSetQueueEntry);
+    GNUNET_CONTAINER_DLL_insert (vrh->dsq_head, vrh->dsq_tail, ds_entry);
+    ds_entry->from_bw = false;
+
+    // (1) A.a <- A.b.c
+    // (2) A.b <- D.d
+    // (3) D.d <- E
+    // (4) E.c <- F.c
+    // (5) F.c <- G
+    // Possibilities:
+    // 1. complete match: trailer = 0, validate
+    // 2. partial match: replace
+    // 3. new solution: replace, add trailer
+
+    // At resolution chain start trailer of parent is NULL
+    if (NULL == current_set->attr_trailer)
+    {
+      // for (5) F.c <- G, remember .c when going upwards
+      ds_entry->attr_trailer = GNUNET_strdup (del->issuer_attribute);
+    }
+    else
+    {
+      if (0 == del->subject_attribute_len)
+      {
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found: New solution\n");
+        // new solution
+        // create new trailer del->issuer_attribute, ds_entry->attr_trailer
+        GNUNET_asprintf (&ds_entry->attr_trailer,
+                         "%s.%s",
+                         del->issuer_attribute,
+                         current_set->attr_trailer);
+      }
+      else if (0 == strcmp (del->subject_attribute, current_set->attr_trailer))
+      {
+        // complete match
+        // new trailer == issuer attribute (e.g. (5) to (4))
+        ds_entry->attr_trailer = GNUNET_strdup (del->issuer_attribute);
+      }
+      else
+      {
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found: Partial match\n");
+        // partial match
+
+        char *trail = partial_match (GNUNET_strdup (current_set->attr_trailer),
+                                     GNUNET_strdup (del->subject_attribute),
+                                     current_set->attr_trailer,
+                                     GNUNET_strdup (del->issuer_attribute));
+
+        // if null: skip this record entry (reasons: mismatch or overmatch, 
both not relevant)
+        if (NULL == trail)
+        {
+          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                      "Entry not relevant, discarding: %s.%s <- %s.%s\n",
+                      GNUNET_CRYPTO_ecdsa_public_key_to_string (
+                        &del->issuer_key),
+                      del->issuer_attribute,
+                      GNUNET_CRYPTO_ecdsa_public_key_to_string (
+                        &del->subject_key),
+                      del->subject_attribute);
+          continue;
+        }
+        else
+          ds_entry->attr_trailer = trail;
+      }
+    }
+
+
+    // Start: Credential Chain Entry
+    // issuer key is subject key, who needs to be contacted to resolve this 
(forward, therefore subject)
+    ds_entry->issuer_key = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
+    GNUNET_memcpy (ds_entry->issuer_key,
+                   &del->subject_key,
+                   sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
+
+    ds_entry->delegation_chain_entry = GNUNET_new (struct 
DelegationChainEntry);
+    ds_entry->delegation_chain_entry->subject_key = del->subject_key;
+    if (0 < del->subject_attribute_len)
+      ds_entry->delegation_chain_entry->subject_attribute =
+        GNUNET_strdup (del->subject_attribute);
+    ds_entry->delegation_chain_entry->issuer_key = del->issuer_key;
+    ds_entry->delegation_chain_entry->issuer_attribute =
+      GNUNET_strdup (del->issuer_attribute);
+    
+    // Found new entry, repoting intermediate result
+    send_intermediate_response(vrh, ds_entry->delegation_chain_entry, false);
+
+    // current delegation as parent
+    ds_entry->parent_queue_entry = dq_entry;
+
+    // Check for solution
+    // if: issuer key we looking for
+    if (0 == memcmp (&del->issuer_key,
+                     &vrh->issuer_key,
+                     sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
+    {
+      // if: issuer attr we looking for
+      if (0 == strcmp (del->issuer_attribute, vrh->issuer_attribute))
+      {
+        // if: complete match, meaning new trailer == issuer attr
+        if (0 == strcmp (vrh->issuer_attribute, ds_entry->attr_trailer))
+        {
+          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found: Solution\n");
+
+          // Add found solution into delegation_chain
+          struct DelegationSetQueueEntry *tmp_set;
+          for (tmp_set = ds_entry; NULL != tmp_set->parent_queue_entry;
+               tmp_set = tmp_set->parent_queue_entry->parent_set)
+          {
+            if (NULL != tmp_set->delegation_chain_entry)
+            {
+              vrh->delegation_chain_size++;
+              GNUNET_CONTAINER_DLL_insert (vrh->delegation_chain_head,
+                                           vrh->delegation_chain_tail,
+                                           tmp_set->delegation_chain_entry);
+            }
+          }
+
+          // Increase refcount for this delegate
+          for (struct DelegateRecordEntry *del_entry = vrh->del_chain_head;
+               del_entry != NULL;
+               del_entry = del_entry->next)
+          {
+            if (0 == memcmp (&del_entry->delegate->issuer_key,
+                             &vrh->delegation_chain_head->subject_key,
+                             sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
+            {
+              if (0 == strcmp (del_entry->delegate->issuer_attribute,
+                               vrh->delegation_chain_head->subject_attribute))
+              {
+                del_entry->refcount++;
+              }
+            }
+          }
+
+          send_lookup_response (vrh);
+          return;
+        }
+      }
+    }
+
+    // Check for bidirectional crossmatch
+    for (struct DelegationSetQueueEntry *del_entry = vrh->dsq_head;
+         del_entry != NULL;
+         del_entry = del_entry->next)
+    {
+      // only check entries not by backward algorithm
+      if (del_entry->from_bw)
+      {
+        // key of list entry matches actual key
+        if (0 == memcmp (&del_entry->delegation_chain_entry->subject_key,
+                         &ds_entry->delegation_chain_entry->issuer_key,
+                         sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
+        {
+          // compare entry subject attributes to this trailer (iss attr + old 
trailer)
+          if (0 == strcmp (del_entry->unresolved_attribute_delegation,
+                           ds_entry->attr_trailer))
+          {
+            print_deleset (del_entry, "Forward:");
+            GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                        "Forward: Found match with above!\n");
+
+            // one node on the path still needs solutions: return
+            if (GNUNET_NO ==
+                handle_bidirectional_match (ds_entry, del_entry, vrh))
+              return;
+            
+            send_lookup_response (vrh);
+            return;
+          }
+        }
+      }
+    }
+
+    // Starting a new GNS lookup
+    vrh->pending_lookups++;
+    ds_entry->handle = vrh;
+
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Starting to look up trailer %s in zone %s\n",
+                ds_entry->attr_trailer,
+                GNUNET_CRYPTO_ecdsa_public_key_to_string (&del->issuer_key));
+
+    ds_entry->lookup_request =
+      GNUNET_GNS_lookup (gns,
+                        GNUNET_GNS_EMPTY_LABEL_AT,
+                        &del->issuer_key,
+                        GNUNET_GNSRECORD_TYPE_DELEGATE,
+                        GNUNET_GNS_LO_DEFAULT,
+                        &forward_resolution,
+                        ds_entry);
+  }
+
+  if (0 == vrh->pending_lookups)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "We are all out of attributes...\n");
+    send_lookup_response (vrh);
+    return;
+  }
+}
+
+static void
+backward_resolution (void *cls,
+                     uint32_t rd_count,
+                     const struct GNUNET_GNSRECORD_Data *rd)
+{
+  struct VerifyRequestHandle *vrh;
+  const struct GNUNET_ABD_DelegationRecord *sets;
+  struct DelegateRecordEntry *del_pointer;
+  struct DelegationSetQueueEntry *current_set;
+  struct DelegationSetQueueEntry *ds_entry;
+  struct DelegationSetQueueEntry *tmp_set;
+  struct DelegationQueueEntry *dq_entry;
+  char *expanded_attr;
+  char *lookup_attribute;
+
+  current_set = cls;
+  current_set->lookup_request = NULL;
+  vrh = current_set->handle;
+  vrh->pending_lookups--;
+
+  // Each OR
+  for (uint32_t i = 0; i < rd_count; i++)
+  {
+    if (GNUNET_GNSRECORD_TYPE_ATTRIBUTE != rd[i].record_type)
+      continue;
+
+    sets = rd[i].data;
+    struct GNUNET_ABD_DelegationSet set[ntohl (sets->set_count)];
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Found new attribute delegation with %d sets. Creating new 
Job...\n",
+                ntohl (sets->set_count));
+
+    if (GNUNET_OK !=
+        GNUNET_ABD_delegation_set_deserialize (GNUNET_ntohll (
+                                                        sets->data_size),
+                                                      (const char *) &sets[1],
+                                                      ntohl (sets->set_count),
+                                                      set))
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to deserialize!\n");
+      continue;
+    }
+    dq_entry = GNUNET_new (struct DelegationQueueEntry);
+    dq_entry->required_solutions = ntohl (sets->set_count);
+    dq_entry->parent_set = current_set;
+
+    GNUNET_CONTAINER_DLL_insert (current_set->queue_entries_head,
+                                 current_set->queue_entries_tail,
+                                 dq_entry);
+    // Each AND
+    for (uint32_t j = 0; j < ntohl (sets->set_count); j++)
+    {
+      ds_entry = GNUNET_new (struct DelegationSetQueueEntry);
+      GNUNET_CONTAINER_DLL_insert (vrh->dsq_head, vrh->dsq_tail, ds_entry);
+      ds_entry->from_bw = true;
+
+      if (NULL != current_set->attr_trailer)
+      {
+        if (0 == set[j].subject_attribute_len)
+        {
+          GNUNET_asprintf (&expanded_attr, "%s", current_set->attr_trailer);
+        }
+        else
+        {
+          GNUNET_asprintf (&expanded_attr,
+                           "%s.%s",
+                           set[j].subject_attribute,
+                           current_set->attr_trailer);
+        }
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Expanded to %s\n", 
expanded_attr);
+        ds_entry->unresolved_attribute_delegation = expanded_attr;
+      }
+      else
+      {
+        if (0 != set[j].subject_attribute_len)
+        {
+          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                      "Not Expanding %s\n",
+                      set[j].subject_attribute);
+          ds_entry->unresolved_attribute_delegation =
+            GNUNET_strdup (set[j].subject_attribute);
+        }
+      }
+
+      // Add a credential chain entry
+      ds_entry->delegation_chain_entry =
+        GNUNET_new (struct DelegationChainEntry);
+      ds_entry->delegation_chain_entry->subject_key = set[j].subject_key;
+      ds_entry->issuer_key = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
+      GNUNET_memcpy (ds_entry->issuer_key,
+                     &set[j].subject_key,
+                     sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
+      if (0 < set[j].subject_attribute_len)
+        ds_entry->delegation_chain_entry->subject_attribute =
+          GNUNET_strdup (set[j].subject_attribute);
+      ds_entry->delegation_chain_entry->issuer_key = *current_set->issuer_key;
+      ds_entry->delegation_chain_entry->issuer_attribute =
+        GNUNET_strdup (current_set->lookup_attribute);
+
+      // Found new entry, repoting intermediate result
+      send_intermediate_response(vrh, ds_entry->delegation_chain_entry, true);
+
+      ds_entry->parent_queue_entry = dq_entry; // current_delegation;
+
+      /**
+       * Check if this delegation already matches one of our credentials
+       */
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Checking for cred match\n");
+
+      for (del_pointer = vrh->del_chain_head; del_pointer != NULL;
+           del_pointer = del_pointer->next)
+      {
+        // If key and attribute match credential: continue and backtrack
+        if (0 != memcmp (&set[j].subject_key,
+                         &del_pointer->delegate->issuer_key,
+                         sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
+          continue;
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                    "Checking if %s matches %s\n",
+                    ds_entry->unresolved_attribute_delegation,
+                    del_pointer->delegate->issuer_attribute);
+
+        if (0 != strcmp (ds_entry->unresolved_attribute_delegation,
+                         del_pointer->delegate->issuer_attribute))
+          continue;
+
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found issuer\n");
+        // increase refcount of the start delegation
+        del_pointer->refcount++;
+
+        // Backtrack
+        for (tmp_set = ds_entry; NULL != tmp_set->parent_queue_entry;
+             tmp_set = tmp_set->parent_queue_entry->parent_set)
+        {
+          tmp_set->parent_queue_entry->required_solutions--;
+          if (NULL != tmp_set->delegation_chain_entry)
+          {
+            vrh->delegation_chain_size++;
+            GNUNET_CONTAINER_DLL_insert (vrh->delegation_chain_head,
+                                         vrh->delegation_chain_tail,
+                                         tmp_set->delegation_chain_entry);
+          }
+          if (0 < tmp_set->parent_queue_entry->required_solutions)
+            break;
+        }
+
+        // if the break above is not called the condition of the for is met
+        if (NULL == tmp_set->parent_queue_entry)
+        {
+          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "All solutions found\n");
+          // Found match
+          send_lookup_response (vrh);
+          return;
+        }
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Not all solutions found yet.\n");
+        continue;
+      }
+
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "Building new lookup request from %s\n",
+                  ds_entry->unresolved_attribute_delegation);
+      // Continue with next/new backward resolution
+      char issuer_attribute_name[strlen (
+                                   ds_entry->unresolved_attribute_delegation) +
+                                 1];
+      strcpy (issuer_attribute_name, 
ds_entry->unresolved_attribute_delegation);
+      char *next_attr = strtok (issuer_attribute_name, ".");
+      if (NULL == next_attr)
+      {
+        GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                    "Failed to parse next attribute\n");
+        continue;
+      }
+      GNUNET_asprintf (&lookup_attribute, "%s", next_attr);
+      GNUNET_asprintf (&ds_entry->lookup_attribute, "%s", next_attr);
+      if (strlen (next_attr) ==
+          strlen (ds_entry->unresolved_attribute_delegation))
+      {
+        ds_entry->attr_trailer = NULL;
+      }
+      else
+      {
+        next_attr += strlen (next_attr) + 1;
+        ds_entry->attr_trailer = GNUNET_strdup (next_attr);
+      }
+
+      // Check for bidirectional crossmatch
+      for (struct DelegationSetQueueEntry *del_entry = vrh->dsq_head;
+           del_entry != NULL;
+           del_entry = del_entry->next)
+      {
+        // only check entries added by forward algorithm
+        if (!del_entry->from_bw)
+        {
+          // key of list entry matches actual key
+          if (0 == memcmp (&del_entry->delegation_chain_entry->issuer_key,
+                           &ds_entry->delegation_chain_entry->subject_key,
+                           sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
+          {
+            // compare entry subject attributes to this trailer (iss attr + 
old trailer)
+            if (0 == strcmp (del_entry->attr_trailer,
+                             ds_entry->unresolved_attribute_delegation))
+            {
+              print_deleset (del_entry, "Backward:");
+              GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                          "Backward: Found match with above!\n");
+
+              // if one node on the path still needs solutions: return
+              if (GNUNET_NO ==
+                  handle_bidirectional_match (del_entry, ds_entry, vrh))
+                    break;
+                  
+              // Send lookup response
+              send_lookup_response (vrh);
+              return;
+            }
+          }
+        }
+      }
+
+      // Starting a new GNS lookup
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                  "Looking up %s\n",
+                  ds_entry->lookup_attribute);
+      if (NULL != ds_entry->attr_trailer)
+        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                    "%s still to go...\n",
+                    ds_entry->attr_trailer);
+
+      vrh->pending_lookups++;
+      ds_entry->handle = vrh;
+      ds_entry->lookup_request =
+        GNUNET_GNS_lookup (gns,
+                          lookup_attribute,
+                          ds_entry->issuer_key, // issuer_key,
+                          GNUNET_GNSRECORD_TYPE_ATTRIBUTE,
+                          GNUNET_GNS_LO_DEFAULT,
+                          &backward_resolution,
+                          ds_entry);
+
+      GNUNET_free (lookup_attribute);
+    }
+  }
+
+  if (0 == vrh->pending_lookups)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "We are all out of attributes...\n");
+    send_lookup_response (vrh);
+    return;
+  }
+}
+
+
+/**
+ * Result from GNS lookup.
+ *
+ * @param cls the closure (our client lookup handle)
+ */
+static int
+delegation_chain_bw_resolution_start (void *cls)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Start Backward Resolution...\n");
+
+  struct VerifyRequestHandle *vrh = cls;
+  struct DelegationSetQueueEntry *ds_entry;
+  struct DelegateRecordEntry *del_entry;
+
+  if (0 == vrh->del_chain_size)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No delegates found\n");
+    send_lookup_response (vrh);
+    return 1;
+  }
+
+  // Pre-check with vrh->dele_chain_.. if match issuer_key
+  // Backward: check every cred entry if match issuer key
+  // otherwise: start at issuer and go down till match
+  // A.a <- ...
+  // X.x <- C
+  // Y.y <- C
+  // if not X.x or Y.y == A.a start at A
+  for (del_entry = vrh->del_chain_head; del_entry != NULL;
+       del_entry = del_entry->next)
+  {
+    if (0 != memcmp (&del_entry->delegate->issuer_key,
+                     &vrh->issuer_key,
+                     sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
+      continue;
+    if (0 !=
+        strcmp (del_entry->delegate->issuer_attribute, vrh->issuer_attribute))
+      continue;
+    del_entry->refcount++;
+    // Found match prematurely
+    send_lookup_response (vrh);
+    return 1;
+  }
+
+
+  //Check for attributes from the issuer and follow the chain
+  //till you get the required subject's attributes
+  char issuer_attribute_name[strlen (vrh->issuer_attribute) + 1];
+  strcpy (issuer_attribute_name, vrh->issuer_attribute);
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Looking up %s\n",
+              issuer_attribute_name);
+  ds_entry = GNUNET_new (struct DelegationSetQueueEntry);
+  GNUNET_CONTAINER_DLL_insert (vrh->dsq_head, vrh->dsq_tail, ds_entry);
+  ds_entry->from_bw = true;
+  ds_entry->issuer_key = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
+  GNUNET_memcpy (ds_entry->issuer_key,
+                 &vrh->issuer_key,
+                 sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
+  ds_entry->issuer_attribute = GNUNET_strdup (vrh->issuer_attribute);
+
+  ds_entry->delegation_chain_entry = GNUNET_new (struct DelegationChainEntry);
+  ds_entry->delegation_chain_entry->issuer_key = vrh->issuer_key;
+  ds_entry->delegation_chain_entry->issuer_attribute =
+    GNUNET_strdup (vrh->issuer_attribute);
+
+  ds_entry->handle = vrh;
+  ds_entry->lookup_attribute = GNUNET_strdup (vrh->issuer_attribute);
+  ds_entry->unresolved_attribute_delegation = NULL;
+  vrh->pending_lookups = 1;
+
+  // Start with backward resolution
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Start Backward Resolution\n");
+
+  ds_entry->lookup_request = GNUNET_GNS_lookup (gns,
+                                                issuer_attribute_name,
+                                                &vrh->issuer_key, // 
issuer_key,
+                                                
GNUNET_GNSRECORD_TYPE_ATTRIBUTE,
+                                                GNUNET_GNS_LO_DEFAULT,
+                                                &backward_resolution,
+                                                ds_entry);
+  return 0;
+}
+
+static int
+delegation_chain_fw_resolution_start (void *cls)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Start Forward Resolution...\n");
+
+  struct VerifyRequestHandle *vrh = cls;
+  struct DelegationSetQueueEntry *ds_entry;
+  struct DelegateRecordEntry *del_entry;
+
+  // set to 0 and increase on each lookup: for fw multiple lookups (may be) 
started
+  vrh->pending_lookups = 0;
+
+  if (0 == vrh->del_chain_size)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No delegations found\n");
+    send_lookup_response (vrh);
+    return 1;
+  }
+
+  // Pre-check with vrh->dele_chain_.. if match issuer_key
+  // otherwise FW: start mutliple lookups for each vrh->dele_chain
+  // A.a <- ...
+  // X.x <- C
+  // Y.y <- C
+  // if not X.x or Y.y  == A.a start at X and at Y
+  for (del_entry = vrh->del_chain_head; del_entry != NULL;
+       del_entry = del_entry->next)
+  {
+    if (0 != memcmp (&del_entry->delegate->issuer_key,
+                     &vrh->issuer_key,
+                     sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey)))
+      continue;
+    if (0 !=
+        strcmp (del_entry->delegate->issuer_attribute, vrh->issuer_attribute))
+      continue;
+    del_entry->refcount++;
+    // Found match prematurely
+    send_lookup_response (vrh);
+    return 1;
+  }
+
+  // None match, therefore start for every delegation found a lookup chain
+  // Return and end collect process on first chain iss <-> sub found
+
+  // ds_entry created belongs to the first lookup, vrh still has the
+  // issuer+attr we look for
+  for (del_entry = vrh->del_chain_head; del_entry != NULL;
+       del_entry = del_entry->next)
+  {
+
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Looking for %s.%s\n",
+                GNUNET_CRYPTO_ecdsa_public_key_to_string (
+                  &del_entry->delegate->issuer_key),
+                del_entry->delegate->issuer_attribute);
+
+    ds_entry = GNUNET_new (struct DelegationSetQueueEntry);
+    GNUNET_CONTAINER_DLL_insert (vrh->dsq_head, vrh->dsq_tail, ds_entry);
+    ds_entry->from_bw = false;
+    ds_entry->issuer_key = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
+    GNUNET_memcpy (ds_entry->issuer_key,
+                   &del_entry->delegate->subject_key,
+                   sizeof (struct GNUNET_CRYPTO_EcdsaPublicKey));
+    
+    ds_entry->delegation_chain_entry = GNUNET_new (struct 
DelegationChainEntry);
+    ds_entry->delegation_chain_entry->subject_key = 
del_entry->delegate->subject_key;
+    ds_entry->delegation_chain_entry->subject_attribute = NULL;
+    ds_entry->delegation_chain_entry->issuer_key = 
del_entry->delegate->issuer_key;
+    ds_entry->delegation_chain_entry->issuer_attribute =
+      GNUNET_strdup (del_entry->delegate->issuer_attribute);
+
+    ds_entry->attr_trailer =
+      GNUNET_strdup (del_entry->delegate->issuer_attribute);
+    ds_entry->handle = vrh;
+
+    vrh->pending_lookups++;
+    // Start with forward resolution
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Start Forward Resolution\n");
+
+    ds_entry->lookup_request =
+      GNUNET_GNS_lookup (gns,
+                         GNUNET_GNS_EMPTY_LABEL_AT,
+                         &del_entry->delegate->issuer_key, // issuer_key,
+                         GNUNET_GNSRECORD_TYPE_DELEGATE,
+                         GNUNET_GNS_LO_DEFAULT,
+                         &forward_resolution,
+                         ds_entry);
+  }
+  return 0;
+}
+
+static int
+check_verify (void *cls, const struct VerifyMessage *v_msg)
+{
+  size_t msg_size;
+  const char *attr;
+
+  msg_size = ntohs (v_msg->header.size);
+  if (msg_size < sizeof (struct VerifyMessage))
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  if (ntohs (v_msg->issuer_attribute_len) > GNUNET_ABD_MAX_LENGTH)
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  attr = (const char *) &v_msg[1];
+
+  if (strlen (attr) > GNUNET_ABD_MAX_LENGTH)
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  return GNUNET_OK;
+}
+
+static void
+handle_verify (void *cls, const struct VerifyMessage *v_msg)
+{
+  struct VerifyRequestHandle *vrh;
+  struct GNUNET_SERVICE_Client *client = cls;
+  struct DelegateRecordEntry *del_entry;
+  uint32_t delegate_count;
+  uint32_t delegate_data_size;
+  char attr[GNUNET_ABD_MAX_LENGTH + 1];
+  char issuer_attribute[GNUNET_ABD_MAX_LENGTH + 1];
+  char *attrptr = attr;
+  char *delegate_data;
+  const char *utf_in;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received VERIFY message\n");
+  utf_in = (const char *) &v_msg[1];
+  GNUNET_STRINGS_utf8_tolower (utf_in, attrptr);
+  GNUNET_memcpy (issuer_attribute, attr, ntohs (v_msg->issuer_attribute_len));
+  issuer_attribute[ntohs (v_msg->issuer_attribute_len)] = '\0';
+  vrh = GNUNET_new (struct VerifyRequestHandle);
+  vrh->is_collect = false;
+  GNUNET_CONTAINER_DLL_insert (vrh_head, vrh_tail, vrh);
+  vrh->client = client;
+  vrh->request_id = v_msg->id;
+  vrh->issuer_key = v_msg->issuer_key;
+  vrh->subject_key = v_msg->subject_key;
+  vrh->issuer_attribute = GNUNET_strdup (issuer_attribute);
+  vrh->resolution_algo = ntohs (v_msg->resolution_algo);
+
+  vrh->del_chain_head = NULL;
+  vrh->del_chain_tail = NULL;
+  vrh->dsq_head = NULL;
+  vrh->dsq_tail = NULL;
+  vrh->del_chain_head = NULL;
+  vrh->del_chain_tail = NULL;
+
+  GNUNET_SERVICE_client_continue (vrh->client);
+  if (0 == strlen (issuer_attribute))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No issuer attribute provided!\n");
+    send_lookup_response (vrh);
+    return;
+  }
+
+  // Parse delegates from verifaction message
+  delegate_count = ntohl (v_msg->d_count);
+  delegate_data_size = ntohs (v_msg->header.size) -
+                       sizeof (struct VerifyMessage) -
+                       ntohs (v_msg->issuer_attribute_len) - 1;
+  struct GNUNET_ABD_Delegate delegates[delegate_count];
+  memset (delegates,
+          0,
+          sizeof (struct GNUNET_ABD_Delegate) * delegate_count);
+  delegate_data = (char *) &v_msg[1] + ntohs (v_msg->issuer_attribute_len) + 1;
+  if (GNUNET_OK != GNUNET_ABD_delegates_deserialize (delegate_data_size,
+                                                            delegate_data,
+                                                            delegate_count,
+                                                            delegates))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot deserialize delegates!\n");
+    send_lookup_response (vrh);
+    return;
+  }
+
+  // Prepare vrh delegation chain for later validation
+  for (uint32_t i = 0; i < delegate_count; i++)
+  {
+    del_entry = GNUNET_new (struct DelegateRecordEntry);
+    del_entry->delegate =
+      GNUNET_malloc (sizeof (struct GNUNET_ABD_Delegate) +
+                     delegates[i].issuer_attribute_len + 1);
+    GNUNET_memcpy (del_entry->delegate,
+                   &delegates[i],
+                   sizeof (struct GNUNET_ABD_Delegate));
+    GNUNET_memcpy (&del_entry->delegate[1],
+                   delegates[i].issuer_attribute,
+                   delegates[i].issuer_attribute_len);
+    del_entry->delegate->issuer_attribute_len =
+      delegates[i].issuer_attribute_len;
+    del_entry->delegate->issuer_attribute = (char *) &del_entry->delegate[1];
+    GNUNET_CONTAINER_DLL_insert_tail (vrh->del_chain_head,
+                                      vrh->del_chain_tail,
+                                      del_entry);
+    vrh->del_chain_size++;
+  }
+
+  // Switch resolution algo
+  if (GNUNET_ABD_FLAG_BACKWARD & vrh->resolution_algo &&
+      GNUNET_ABD_FLAG_FORWARD & vrh->resolution_algo)
+  {
+    if(1 == delegation_chain_fw_resolution_start (vrh))
+      return;
+    delegation_chain_bw_resolution_start (vrh);
+  }
+  else if (GNUNET_ABD_FLAG_BACKWARD & vrh->resolution_algo)
+  {
+    delegation_chain_bw_resolution_start (vrh);
+  }
+  else if (GNUNET_ABD_FLAG_FORWARD & vrh->resolution_algo)
+  {
+    delegation_chain_fw_resolution_start (vrh);
+  }
+}
+
+static void
+handle_delegate_collection_error_cb (void *cls)
+{
+  struct VerifyRequestHandle *vrh = cls;
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "Got disconnected from namestore database.\n");
+  vrh->dele_qe = NULL;
+  send_lookup_response (vrh);
+}
+
+static void
+delegate_collection_finished (void *cls)
+{
+  struct VerifyRequestHandle *vrh = cls;
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Done collecting delegates.\n");
+
+  // if both are set: bidirectional search, meaning start both chain 
resolutions
+  if (GNUNET_ABD_FLAG_BACKWARD & vrh->resolution_algo &&
+      GNUNET_ABD_FLAG_FORWARD & vrh->resolution_algo)
+  {
+    // if premature match found don't start bw resultion
+    if(1 == delegation_chain_fw_resolution_start (vrh))
+      return;
+    delegation_chain_bw_resolution_start (vrh);
+  }
+  else if (GNUNET_ABD_FLAG_BACKWARD & vrh->resolution_algo)
+  {
+    delegation_chain_bw_resolution_start (vrh);
+  }
+  else if (GNUNET_ABD_FLAG_FORWARD & vrh->resolution_algo)
+  {
+    delegation_chain_fw_resolution_start (vrh);
+  }
+}
+
+static void
+handle_delegate_collection_cb (void *cls,
+                               const struct GNUNET_CRYPTO_EcdsaPrivateKey *key,
+                               const char *label,
+                               unsigned int rd_count,
+                               const struct GNUNET_GNSRECORD_Data *rd)
+{
+  struct VerifyRequestHandle *vrh = cls;
+  struct GNUNET_ABD_Delegate *del;
+  struct DelegateRecordEntry *del_entry;
+  int cred_record_count;
+  cred_record_count = 0;
+  vrh->dele_qe = NULL;
+
+  for (uint32_t i = 0; i < rd_count; i++)
+  {
+    if (GNUNET_GNSRECORD_TYPE_DELEGATE != rd[i].record_type)
+      continue;
+    cred_record_count++;
+    del = GNUNET_ABD_delegate_deserialize (rd[i].data, rd[i].data_size);
+    if (NULL == del)
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Invalid delegate found\n");
+      continue;
+    }
+    // only add the entries that are explicity marked as private
+    // and therefor symbolize the end of a chain
+    if (rd[i].flags & GNUNET_GNSRECORD_RF_PRIVATE)
+    {
+      del_entry = GNUNET_new (struct DelegateRecordEntry);
+      del_entry->delegate = del;
+      GNUNET_CONTAINER_DLL_insert_tail (vrh->del_chain_head,
+                                        vrh->del_chain_tail,
+                                        del_entry);
+      vrh->del_chain_size++;
+    }
+  }
+
+  delegate_collection_finished (vrh);
+}
+
+static void
+handle_collect (void *cls, const struct CollectMessage *c_msg)
+{
+  char attr[GNUNET_ABD_MAX_LENGTH + 1];
+  char issuer_attribute[GNUNET_ABD_MAX_LENGTH + 1];
+  struct VerifyRequestHandle *vrh;
+  struct GNUNET_SERVICE_Client *client = cls;
+  char *attrptr = attr;
+  const char *utf_in;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received COLLECT message\n");
+
+  utf_in = (const char *) &c_msg[1];
+  GNUNET_STRINGS_utf8_tolower (utf_in, attrptr);
+
+  GNUNET_memcpy (issuer_attribute, attr, ntohs (c_msg->issuer_attribute_len));
+  issuer_attribute[ntohs (c_msg->issuer_attribute_len)] = '\0';
+  vrh = GNUNET_new (struct VerifyRequestHandle);
+  vrh->is_collect = true;
+  GNUNET_CONTAINER_DLL_insert (vrh_head, vrh_tail, vrh);
+  vrh->client = client;
+  vrh->request_id = c_msg->id;
+  vrh->issuer_key = c_msg->issuer_key;
+  GNUNET_CRYPTO_ecdsa_key_get_public (&c_msg->subject_key, &vrh->subject_key);
+  vrh->issuer_attribute = GNUNET_strdup (issuer_attribute);
+  vrh->resolution_algo = ntohs (c_msg->resolution_algo);
+
+  vrh->del_chain_head = NULL;
+  vrh->del_chain_tail = NULL;
+  vrh->dsq_head = NULL;
+  vrh->dsq_tail = NULL;
+  vrh->del_chain_head = NULL;
+  vrh->del_chain_tail = NULL;
+
+  if (0 == strlen (issuer_attribute))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No issuer attribute provided!\n");
+    send_lookup_response (vrh);
+    return;
+  }
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Getting delegates for subject\n");
+
+  // Get all delegates from subject
+  vrh->dele_qe =
+    GNUNET_NAMESTORE_records_lookup (namestore,
+                                     &c_msg->subject_key,
+                                     GNUNET_GNS_EMPTY_LABEL_AT,
+                                     &handle_delegate_collection_error_cb,
+                                     vrh,
+                                     &handle_delegate_collection_cb,
+                                     vrh);
+  GNUNET_SERVICE_client_continue (vrh->client);
+}
+
+
+static int
+check_collect (void *cls, const struct CollectMessage *c_msg)
+{
+  size_t msg_size;
+  const char *attr;
+
+  msg_size = ntohs (c_msg->header.size);
+  if (msg_size < sizeof (struct CollectMessage))
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  if (ntohs (c_msg->issuer_attribute_len) > GNUNET_ABD_MAX_LENGTH)
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  attr = (const char *) &c_msg[1];
+
+  if (('\0' != attr[msg_size - sizeof (struct CollectMessage) - 1]) ||
+      (strlen (attr) > GNUNET_ABD_MAX_LENGTH))
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+  return GNUNET_OK;
+}
+
+static void
+client_disconnect_cb (void *cls,
+                      struct GNUNET_SERVICE_Client *client,
+                      void *app_ctx)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Client %p disconnected\n", client);
+}
+
+static void *
+client_connect_cb (void *cls,
+                   struct GNUNET_SERVICE_Client *client,
+                   struct GNUNET_MQ_Handle *mq)
+{
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Client %p connected\n", client);
+  return client;
+}
+
+/**
+ * Process Credential requests.
+ *
+ * @param cls closure
+ * @param c configuration to use
+ * @param handle service handle
+ */
+static void
+run (void *cls,
+     const struct GNUNET_CONFIGURATION_Handle *c,
+     struct GNUNET_SERVICE_Handle *handle)
+{
+
+  gns = GNUNET_GNS_connect (c);
+  if (NULL == gns)
+  {
+    fprintf (stderr, _ ("Failed to connect to GNS\n"));
+  }
+  namestore = GNUNET_NAMESTORE_connect (c);
+  if (NULL == namestore)
+  {
+    fprintf (stderr, _ ("Failed to connect to namestore\n"));
+  }
+
+  statistics = GNUNET_STATISTICS_create ("abd", c);
+  GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL);
+}
+
+
+/**
+ * Define "main" method using service macro
+ */
+GNUNET_SERVICE_MAIN (
+  "abd",
+  GNUNET_SERVICE_OPTION_NONE,
+  &run,
+  &client_connect_cb,
+  &client_disconnect_cb,
+  NULL,
+  GNUNET_MQ_hd_var_size (verify,
+                         GNUNET_MESSAGE_TYPE_ABD_VERIFY,
+                         struct VerifyMessage,
+                         NULL),
+  GNUNET_MQ_hd_var_size (collect,
+                         GNUNET_MESSAGE_TYPE_ABD_COLLECT,
+                         struct CollectMessage,
+                         NULL),
+  GNUNET_MQ_handler_end ());
+
+/* end of gnunet-service-abd.c */
diff --git a/src/abd/plugin_gnsrecord_abd.c b/src/abd/plugin_gnsrecord_abd.c
new file mode 100644
index 000000000..811878627
--- /dev/null
+++ b/src/abd/plugin_gnsrecord_abd.c
@@ -0,0 +1,349 @@
+/*
+     This file is part of GNUnet
+     Copyright (C) 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
+*/
+
+/**
+ * @file abd/plugin_gnsrecord_abd.c
+ * @brief gnsrecord plugin to provide the API for ABD records
+ * @author Martin Schanzenbach
+ */
+#include "platform.h"
+
+#include "gnunet_util_lib.h"
+
+#include "delegate_misc.h"
+#include "abd_serialization.h"
+#include "gnunet_abd_service.h"
+#include "gnunet_gnsrecord_lib.h"
+#include "gnunet_gnsrecord_plugin.h"
+#include "gnunet_signatures.h"
+/**
+ * Convert the 'value' of a record to a string.
+ *
+ * @param cls closure, unused
+ * @param type type of the record
+ * @param data value in binary encoding
+ * @param data_size number of bytes in @a data
+ * @return NULL on error, otherwise human-readable representation of the value
+ */
+static char *
+abd_value_to_string (void *cls,
+                            uint32_t type,
+                            const void *data,
+                            size_t data_size)
+{
+  const char *cdata;
+
+  switch (type)
+  {
+  case GNUNET_GNSRECORD_TYPE_ATTRIBUTE:
+  {
+    struct GNUNET_ABD_DelegationRecord sets;
+    char *attr_str;
+    char *subject_pkey;
+    char *tmp_str;
+    int i;
+    if (data_size < sizeof (struct GNUNET_ABD_DelegationRecord))
+      return NULL; /* malformed */
+
+    GNUNET_memcpy (&sets, data, sizeof (sets));
+    cdata = data;
+
+    struct GNUNET_ABD_DelegationSet set[ntohl (sets.set_count)];
+    if (GNUNET_OK !=
+        GNUNET_ABD_delegation_set_deserialize (GNUNET_ntohll (
+                                                        sets.data_size),
+                                                      &cdata[sizeof (sets)],
+                                                      ntohl (sets.set_count),
+                                                      set))
+      return NULL;
+
+    for (i = 0; i < ntohl (sets.set_count); i++)
+    {
+      subject_pkey =
+        GNUNET_CRYPTO_ecdsa_public_key_to_string (&set[i].subject_key);
+
+      if (0 == set[i].subject_attribute_len)
+      {
+        if (0 == i)
+        {
+          GNUNET_asprintf (&attr_str, "%s", subject_pkey);
+        }
+        else
+        {
+          GNUNET_asprintf (&tmp_str, "%s,%s", attr_str, subject_pkey);
+          GNUNET_free (attr_str);
+          attr_str = tmp_str;
+        }
+      }
+      else
+      {
+        if (0 == i)
+        {
+          GNUNET_asprintf (&attr_str,
+                           "%s %s",
+                           subject_pkey,
+                           set[i].subject_attribute);
+        }
+        else
+        {
+          GNUNET_asprintf (&tmp_str,
+                           "%s,%s %s",
+                           attr_str,
+                           subject_pkey,
+                           set[i].subject_attribute);
+          GNUNET_free (attr_str);
+          attr_str = tmp_str;
+        }
+      }
+      GNUNET_free (subject_pkey);
+    }
+    return attr_str;
+  }
+  case GNUNET_GNSRECORD_TYPE_DELEGATE:
+  {
+    struct GNUNET_ABD_Delegate *cred;
+    char *cred_str;
+
+    cred = GNUNET_ABD_delegate_deserialize (data, data_size);
+    cred_str = GNUNET_ABD_delegate_to_string (cred);
+    GNUNET_free (cred);
+    return cred_str;
+  }
+  default:
+    return NULL;
+  }
+}
+
+
+/**
+ * Convert human-readable version of a 'value' of a record to the binary
+ * representation.
+ *
+ * @param cls closure, unused
+ * @param type type of the record
+ * @param s human-readable string
+ * @param data set to value in binary encoding (will be allocated)
+ * @param data_size set to number of bytes in @a data
+ * @return #GNUNET_OK on success
+ */
+static int
+abd_string_to_value (void *cls,
+                            uint32_t type,
+                            const char *s,
+                            void **data,
+                            size_t *data_size)
+{
+  if (NULL == s)
+    return GNUNET_SYSERR;
+  switch (type)
+  {
+  case GNUNET_GNSRECORD_TYPE_ATTRIBUTE:
+  {
+    struct GNUNET_ABD_DelegationRecord *sets;
+    char attr_str[253 + 1];
+    char subject_pkey[52 + 1];
+    char *token;
+    char *tmp_str;
+    int matches = 0;
+    int entries;
+    size_t tmp_data_size;
+    int i;
+
+    tmp_str = GNUNET_strdup (s);
+    token = strtok (tmp_str, ",");
+    entries = 0;
+    tmp_data_size = 0;
+    *data_size = sizeof (struct GNUNET_ABD_DelegationRecord);
+    while (NULL != token)
+    {
+      // also fills the variables subject_pley and attr_str if "regex"-like 
match
+      matches = SSCANF (token, "%s %s", subject_pkey, attr_str);
+
+      if (0 == matches)
+      {
+        GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                    _ ("Unable to parse ATTR record string `%s'\n"),
+                    s);
+        GNUNET_free (tmp_str);
+        return GNUNET_SYSERR;
+      }
+
+      entries++;
+      token = strtok (NULL, ",");
+    }
+    GNUNET_free (tmp_str);
+
+    tmp_str = GNUNET_strdup (s);
+    token = strtok (tmp_str, ",");
+    if (NULL == token)
+    {
+      GNUNET_free (tmp_str);
+      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Malformed string %s\n", s);
+      return GNUNET_SYSERR;
+    }
+
+    struct GNUNET_ABD_DelegationSet set[entries];
+    // sets memory to be 0, starting at *set for the size of struct * entries
+    memset (set, 0, sizeof (struct GNUNET_ABD_DelegationSet) * entries);
+    for (i = 0; i < entries; i++)
+    {
+      matches = SSCANF (token, "%s %s", subject_pkey, attr_str);
+
+      // sets the public key for the set entry
+      GNUNET_CRYPTO_ecdsa_public_key_from_string (subject_pkey,
+                                                  strlen (subject_pkey),
+                                                  &set[i].subject_key);
+
+      // If not just key, also set subject attribute (Not A.a <- B but A.a <- 
B.b)
+      if (2 == matches)
+      {
+        set[i].subject_attribute_len = strlen (attr_str) + 1;
+        set[i].subject_attribute = GNUNET_strdup (attr_str);
+      }
+      // If more entries, then token string can take the next entry (separated 
by ',') by calling strtok again
+      token = strtok (NULL, ",");
+    }
+    tmp_data_size = GNUNET_ABD_delegation_set_get_size (entries, set);
+
+    if (-1 == tmp_data_size)
+    {
+      GNUNET_free (tmp_str);
+      return GNUNET_SYSERR;
+    }
+    *data_size += tmp_data_size;
+    *data = sets = GNUNET_malloc (*data_size);
+    GNUNET_ABD_delegation_set_serialize (entries,
+                                                set,
+                                                tmp_data_size,
+                                                (char *) &sets[1]);
+    for (i = 0; i < entries; i++)
+    {
+      if (0 != set[i].subject_attribute_len)
+        GNUNET_free ((char *) set[i].subject_attribute);
+    }
+    sets->set_count = htonl (entries);
+    sets->data_size = GNUNET_htonll (tmp_data_size);
+
+    GNUNET_free (tmp_str);
+    return GNUNET_OK;
+  }
+  case GNUNET_GNSRECORD_TYPE_DELEGATE:
+  {
+    struct GNUNET_ABD_Delegate *cred;
+    cred = GNUNET_ABD_delegate_from_string (s);
+
+    *data_size = GNUNET_ABD_delegate_serialize (cred, (char **) data);
+
+    return GNUNET_OK;
+  }
+  default:
+    return GNUNET_SYSERR;
+  }
+}
+
+
+/**
+ * Mapping of record type numbers to human-readable
+ * record type names.
+ */
+static struct
+{
+  const char *name;
+  uint32_t number;
+} name_map[] = {{"ATTR", GNUNET_GNSRECORD_TYPE_ATTRIBUTE},
+                {"DEL", GNUNET_GNSRECORD_TYPE_DELEGATE},
+                {NULL, UINT32_MAX}};
+
+
+/**
+ * Convert a type name (i.e. "AAAA") to the corresponding number.
+ *
+ * @param cls closure, unused
+ * @param gns_typename name to convert
+ * @return corresponding number, UINT32_MAX on error
+ */
+static uint32_t
+abd_typename_to_number (void *cls, const char *gns_typename)
+{
+  unsigned int i;
+
+  i = 0;
+  while ((name_map[i].name != NULL) &&
+         (0 != strcasecmp (gns_typename, name_map[i].name)))
+    i++;
+  return name_map[i].number;
+}
+
+
+/**
+ * Convert a type number (i.e. 1) to the corresponding type string (i.e. "A")
+ *
+ * @param cls closure, unused
+ * @param type number of a type to convert
+ * @return corresponding typestring, NULL on error
+ */
+static const char *
+abd_number_to_typename (void *cls, uint32_t type)
+{
+  unsigned int i;
+
+  i = 0;
+  while ((name_map[i].name != NULL) && (type != name_map[i].number))
+    i++;
+  return name_map[i].name;
+}
+
+
+/**
+ * Entry point for the plugin.
+ *
+ * @param cls NULL
+ * @return the exported block API
+ */
+void *
+libgnunet_plugin_gnsrecord_abd_init (void *cls)
+{
+  struct GNUNET_GNSRECORD_PluginFunctions *api;
+
+  api = GNUNET_new (struct GNUNET_GNSRECORD_PluginFunctions);
+  api->value_to_string = &abd_value_to_string;
+  api->string_to_value = &abd_string_to_value;
+  api->typename_to_number = &abd_typename_to_number;
+  api->number_to_typename = &abd_number_to_typename;
+  return api;
+}
+
+
+/**
+ * Exit point from the plugin.
+ *
+ * @param cls the return value from #libgnunet_plugin_block_test_init
+ * @return NULL
+ */
+void *
+libgnunet_plugin_gnsrecord_abd_done (void *cls)
+{
+  struct GNUNET_GNSRECORD_PluginFunctions *api = cls;
+
+  GNUNET_free (api);
+  return NULL;
+}
+
+/* end of plugin_gnsrecord_abd.c */
diff --git a/src/abd/test_abd_bi_and.sh b/src/abd/test_abd_bi_and.sh
new file mode 100755
index 000000000..b32313636
--- /dev/null
+++ b/src/abd/test_abd_bi_and.sh
@@ -0,0 +1,98 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 10"
+gnunet-arm -s -c test_abd_lookup.conf
+
+gnunet-identity -C a -c test_abd_lookup.conf
+gnunet-identity -C b -c test_abd_lookup.conf
+gnunet-identity -C c -c test_abd_lookup.conf
+gnunet-identity -C d -c test_abd_lookup.conf
+gnunet-identity -C e -c test_abd_lookup.conf
+gnunet-identity -C f -c test_abd_lookup.conf
+gnunet-identity -C g -c test_abd_lookup.conf
+gnunet-identity -C h -c test_abd_lookup.conf
+AKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep a | awk '{print $3}')
+BKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep b | awk '{print $3}')
+CKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep c | awk '{print $3}')
+DKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep d | awk '{print $3}')
+EKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep e | awk '{print $3}')
+FKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep f | awk '{print $3}')
+GKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep g | awk '{print $3}')
+HKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep h | awk '{print $3}')
+gnunet-identity -d
+
+#   (1) (A.a) <- B.b
+#   (2) (B.b) <- C.c AND G.g
+#   (3) C.c <- (D.D)
+#   (4) D.d <- (E.e)
+#   (5) E.e <- (F) priv
+#   (6) (G.g) <- H.h 
+#   (7) H.h <- (F) priv
+
+# BIDIRECTIONAL
+gnunet-abd --createIssuerSide --ego=a --attribute="a" --subject="$BKEY b" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z a
+gnunet-abd --createIssuerSide --ego=b --attribute="b" --subject="$CKEY c, 
$GKEY g" --ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+gnunet-abd --createIssuerSide --ego=g --attribute="g" --subject="$HKEY h" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=c --attribute="c" 
--subject="$DKEY d" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=d --import="$SIGNED"
+gnunet-namestore -D -z d
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=d --attribute="d" 
--subject="$EKEY e" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=e --import="$SIGNED"
+gnunet-namestore -D -z e
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=e --attribute="e" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+gnunet-namestore -D -z f
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=h --attribute="h" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+gnunet-namestore -D -z h
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$AKEY --attribute="a" --ego=f 
--forward --backward -c test_abd_lookup.conf | paste -d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate=\'$DELS\' --forward --backward -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate="$DELS" --forward --backward -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z a -d -n "a" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z b -d -n "b" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z g -d -n "g" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z d -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z e -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z f -d -n "@" -t DEL -c test_abd_lookup.conf
+
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
+
diff --git a/src/abd/test_abd_bi_and2.sh b/src/abd/test_abd_bi_and2.sh
new file mode 100755
index 000000000..8d1601ef4
--- /dev/null
+++ b/src/abd/test_abd_bi_and2.sh
@@ -0,0 +1,94 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 10"
+gnunet-arm -s -c test_abd_lookup.conf
+
+gnunet-identity -C a -c test_abd_lookup.conf
+gnunet-identity -C b -c test_abd_lookup.conf
+gnunet-identity -C c -c test_abd_lookup.conf
+gnunet-identity -C d -c test_abd_lookup.conf
+gnunet-identity -C e -c test_abd_lookup.conf
+gnunet-identity -C f -c test_abd_lookup.conf
+gnunet-identity -C g -c test_abd_lookup.conf
+gnunet-identity -C h -c test_abd_lookup.conf
+AKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep a | awk '{print $3}')
+BKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep b | awk '{print $3}')
+CKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep c | awk '{print $3}')
+DKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep d | awk '{print $3}')
+EKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep e | awk '{print $3}')
+FKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep f | awk '{print $3}')
+GKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep g | awk '{print $3}')
+HKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep h | awk '{print $3}')
+gnunet-identity -d
+
+#   (1) (A.a) <- B.b
+#   (2) (B.b) <- C.c AND G.g
+#   (3) C.c <- (D.D)
+#   (4) D.d <- (E.e)
+#   (5) E.e <- (F) priv
+#   (6) G.g <- (F) priv
+
+# BIDIRECTIONAL
+gnunet-abd --createIssuerSide --ego=a --attribute="a" --subject="$BKEY b" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z a
+gnunet-abd --createIssuerSide --ego=b --attribute="b" --subject="$CKEY c, 
$GKEY g" --ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=c --attribute="c" 
--subject="$DKEY d" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=d --import="$SIGNED"
+gnunet-namestore -D -z d
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=d --attribute="d" 
--subject="$EKEY e" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=e --import="$SIGNED"
+gnunet-namestore -D -z e
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=e --attribute="e" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+gnunet-namestore -D -z f
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=g --attribute="g" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+gnunet-namestore -D -z h
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$AKEY --attribute="a" --ego=f 
-c test_abd_lookup.conf | paste -d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate=\'$DELS\' -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate="$DELS" -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z a -d -n "a" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z b -d -n "b" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z d -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z e -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z f -d -n "@" -t DEL -c test_abd_lookup.conf
+
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
+
diff --git a/src/abd/test_abd_bi_and3.sh b/src/abd/test_abd_bi_and3.sh
new file mode 100755
index 000000000..cde2a020b
--- /dev/null
+++ b/src/abd/test_abd_bi_and3.sh
@@ -0,0 +1,96 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 10"
+gnunet-arm -s -c test_abd_lookup.conf
+
+gnunet-identity -C a -c test_abd_lookup.conf
+gnunet-identity -C b -c test_abd_lookup.conf
+gnunet-identity -C c -c test_abd_lookup.conf
+gnunet-identity -C d -c test_abd_lookup.conf
+gnunet-identity -C e -c test_abd_lookup.conf
+gnunet-identity -C f -c test_abd_lookup.conf
+gnunet-identity -C g -c test_abd_lookup.conf
+gnunet-identity -C h -c test_abd_lookup.conf
+AKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep a | awk '{print $3}')
+BKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep b | awk '{print $3}')
+CKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep c | awk '{print $3}')
+DKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep d | awk '{print $3}')
+EKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep e | awk '{print $3}')
+FKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep f | awk '{print $3}')
+GKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep g | awk '{print $3}')
+HKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep h | awk '{print $3}')
+gnunet-identity -d
+
+#   (1) (A.a) <- B.b
+#   (2) (B.b) <- C.c AND G.g
+#   (3) C.c <- (D.d)
+#   (4) D.d <- (E.e)
+#   (5) E.e <- (F) priv
+#   (6) G.g <- (H.h)
+#   (7) H.h <- (F) priv
+
+# BIDIRECTIONAL
+gnunet-abd --createIssuerSide --ego=a --attribute="a" --subject="$BKEY b" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z a
+gnunet-abd --createIssuerSide --ego=b --attribute="b" --subject="$CKEY c, 
$GKEY g" --ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=c --attribute="c" 
--subject="$DKEY d" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=d --import="$SIGNED"
+gnunet-namestore -D -z d
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=d --attribute="d" 
--subject="$EKEY e" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=e --import="$SIGNED"
+gnunet-namestore -D -z e
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=g --attribute="g" 
--subject="$HKEY h" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=h --import="$SIGNED"
+gnunet-namestore -D -z h
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=e --attribute="e" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=h --attribute="h" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+gnunet-namestore -D -z f
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$AKEY --attribute="a" --ego=f 
-c test_abd_lookup.conf | paste -d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate=\'$DELS\' -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate="$DELS" -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z a -d -n "a" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z b -d -n "b" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z d -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z e -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z f -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z h -d -n "@" -t DEL -c test_abd_lookup.conf
+
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
diff --git a/src/abd/test_abd_bi_and4.sh b/src/abd/test_abd_bi_and4.sh
new file mode 100755
index 000000000..e8cd6efd6
--- /dev/null
+++ b/src/abd/test_abd_bi_and4.sh
@@ -0,0 +1,83 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 10"
+gnunet-arm -s -c test_abd_lookup.conf
+
+gnunet-identity -C a -c test_abd_lookup.conf
+gnunet-identity -C b -c test_abd_lookup.conf
+gnunet-identity -C c -c test_abd_lookup.conf
+gnunet-identity -C d -c test_abd_lookup.conf
+gnunet-identity -C e -c test_abd_lookup.conf
+gnunet-identity -C f -c test_abd_lookup.conf
+gnunet-identity -C g -c test_abd_lookup.conf
+gnunet-identity -C h -c test_abd_lookup.conf
+AKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep a | awk '{print $3}')
+BKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep b | awk '{print $3}')
+CKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep c | awk '{print $3}')
+DKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep d | awk '{print $3}')
+EKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep e | awk '{print $3}')
+FKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep f | awk '{print $3}')
+GKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep g | awk '{print $3}')
+HKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep h | awk '{print $3}')
+gnunet-identity -d
+
+#   (1) (A.a) <- B.b
+#   (2) (B.b) <- C.c AND G.g
+#   (3) C.c <- (F) priv
+#   (4) G.g <- (F) priv
+
+# BIDIRECTIONAL
+gnunet-abd --createIssuerSide --ego=a --attribute="a" --subject="$BKEY b" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z a
+gnunet-abd --createIssuerSide --ego=b --attribute="b" --subject="$CKEY c, 
$GKEY g" --ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=g --attribute="g" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=c --attribute="c" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+gnunet-namestore -D -z f
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$AKEY --attribute="a" --ego=f 
--backward -c test_abd_lookup.conf | paste -d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate=\'$DELS\'  --backward -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate="$DELS"  --backward -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z a -d -n "a" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z b -d -n "b" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z f -d -n "@" -t DEL -c test_abd_lookup.conf
+
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
+
diff --git a/src/abd/test_abd_bi_bw.sh b/src/abd/test_abd_bi_bw.sh
new file mode 100755
index 000000000..6b0e51722
--- /dev/null
+++ b/src/abd/test_abd_bi_bw.sh
@@ -0,0 +1,87 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 10"
+gnunet-arm -s -c test_abd_lookup.conf
+
+gnunet-identity -C a -c test_abd_lookup.conf
+gnunet-identity -C b -c test_abd_lookup.conf
+gnunet-identity -C c -c test_abd_lookup.conf
+gnunet-identity -C d -c test_abd_lookup.conf
+gnunet-identity -C e -c test_abd_lookup.conf
+gnunet-identity -C f -c test_abd_lookup.conf
+gnunet-identity -C g -c test_abd_lookup.conf
+AKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep a | awk '{print $3}')
+BKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep b | awk '{print $3}')
+CKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep c | awk '{print $3}')
+DKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep d | awk '{print $3}')
+EKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep e | awk '{print $3}')
+FKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep f | awk '{print $3}')
+GKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep g | awk '{print $3}')
+gnunet-identity -d
+
+#   (1) (A.a) <- B.b
+#   (2) (B.b) <- C.c
+#   (3) C.c <- (D.D)
+#   (4) D.d <- (E.e)
+#   (5) E.e <- (F)
+
+# BIDIRECTIONAL
+gnunet-abd --createIssuerSide --ego=a --attribute="a" --subject="$BKEY b" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z a
+gnunet-abd --createIssuerSide --ego=b --attribute="b" --subject="$CKEY c" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=c --attribute="c" 
--subject="$DKEY d" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=d --import="$SIGNED"
+gnunet-namestore -D -z d
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=d --attribute="d" 
--subject="$EKEY e" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=e --import="$SIGNED"
+gnunet-namestore -D -z e
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=e --attribute="e" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+gnunet-namestore -D -z f
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$AKEY --attribute="a" --ego=f 
--forward --backward -c test_abd_lookup.conf | paste -d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate=\'$DELS\' --forward --backward -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate="$DELS" --forward --backward -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z a -d -n "a" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z b -d -n "b" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z d -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z e -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z f -d -n "@" -t DEL -c test_abd_lookup.conf
+
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
diff --git a/src/abd/test_abd_bi_bw_link.sh b/src/abd/test_abd_bi_bw_link.sh
new file mode 100755
index 000000000..f60f78827
--- /dev/null
+++ b/src/abd/test_abd_bi_bw_link.sh
@@ -0,0 +1,92 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 10"
+gnunet-arm -s -c test_abd_lookup.conf
+
+gnunet-identity -C a -c test_abd_lookup.conf
+gnunet-identity -C b -c test_abd_lookup.conf
+gnunet-identity -C c -c test_abd_lookup.conf
+gnunet-identity -C d -c test_abd_lookup.conf
+gnunet-identity -C e -c test_abd_lookup.conf
+gnunet-identity -C f -c test_abd_lookup.conf
+gnunet-identity -C g -c test_abd_lookup.conf
+AKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep a | awk '{print $3}')
+BKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep b | awk '{print $3}')
+CKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep c | awk '{print $3}')
+DKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep d | awk '{print $3}')
+EKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep e | awk '{print $3}')
+FKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep f | awk '{print $3}')
+GKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep g | awk '{print $3}')
+gnunet-identity -d
+
+#   (1) (A.a) <- B.b
+#   (2) (B.b) <- G.g.c
+#   (3) (G.g) <- C
+#   (3) C.c <- (D.D)
+#   (4) D.d <- (E.e)
+#   (5) E.e <- (F)
+
+# BIDIRECTIONAL
+gnunet-abd --createIssuerSide --ego=a --attribute="a" --subject="$BKEY b" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z a
+gnunet-abd --createIssuerSide --ego=b --attribute="b" --subject="$GKEY g.c" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+gnunet-abd --createIssuerSide --ego=g --attribute="g" --subject="$CKEY" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=c --attribute="c" 
--subject="$DKEY d" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=d --import="$SIGNED"
+gnunet-namestore -D -z d
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=d --attribute="d" 
--subject="$EKEY e" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=e --import="$SIGNED"
+gnunet-namestore -D -z e
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=e --attribute="e" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+gnunet-namestore -D -z f
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$AKEY --attribute="a" --ego=f 
--forward --backward -c test_abd_lookup.conf | paste -d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate=\'$DELS\' --forward --backward -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate="$DELS" --forward --backward -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z a -d -n "a" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z b -d -n "b" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z g -d -n "g" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z d -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z e -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z f -d -n "@" -t DEL -c test_abd_lookup.conf
+
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
+
diff --git a/src/abd/test_abd_bi_bw_link2.sh b/src/abd/test_abd_bi_bw_link2.sh
new file mode 100755
index 000000000..b0fb49b8e
--- /dev/null
+++ b/src/abd/test_abd_bi_bw_link2.sh
@@ -0,0 +1,93 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 10"
+gnunet-arm -s -c test_abd_lookup.conf
+
+gnunet-identity -C a -c test_abd_lookup.conf
+gnunet-identity -C b -c test_abd_lookup.conf
+gnunet-identity -C c -c test_abd_lookup.conf
+gnunet-identity -C d -c test_abd_lookup.conf
+gnunet-identity -C e -c test_abd_lookup.conf
+gnunet-identity -C f -c test_abd_lookup.conf
+gnunet-identity -C g -c test_abd_lookup.conf
+AKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep a | awk '{print $3}')
+BKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep b | awk '{print $3}')
+CKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep c | awk '{print $3}')
+DKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep d | awk '{print $3}')
+EKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep e | awk '{print $3}')
+FKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep f | awk '{print $3}')
+GKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep g | awk '{print $3}')
+gnunet-identity -d
+
+#   (1) (A.a) <- B.b
+#   (2) (B.b) <- G.g.c
+#   (3) G.g <- (C)
+#   (3) C.c <- (D.d)
+#   (4) D.d <- (E.e)
+#   (5) E.e <- (F)
+
+# BIDIRECTIONAL
+gnunet-abd --createIssuerSide --ego=a --attribute="a" --subject="$BKEY b" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z a
+gnunet-abd --createIssuerSide --ego=b --attribute="b" --subject="$GKEY g.c" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=g --attribute="g" 
--subject="$CKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=c --import="$SIGNED"
+gnunet-namestore -D -z c
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=c --attribute="c" 
--subject="$DKEY d" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=d --import="$SIGNED"
+gnunet-namestore -D -z d
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=d --attribute="d" 
--subject="$EKEY e" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=e --import="$SIGNED"
+gnunet-namestore -D -z e
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=e --attribute="e" 
--subject="$FKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" --private
+gnunet-namestore -D -z f
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$AKEY --attribute="a" --ego=f 
--forward --backward -c test_abd_lookup.conf | paste -d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate=\'$DELS\' --forward --backward -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$FKEY 
--delegate="$DELS" --forward --backward -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z a -d -n "a" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z b -d -n "b" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z c -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z d -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z e -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z f -d -n "@" -t DEL -c test_abd_lookup.conf
+
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
+
diff --git a/src/abd/test_abd_bi_fw.sh b/src/abd/test_abd_bi_fw.sh
new file mode 100755
index 000000000..75a940fbe
--- /dev/null
+++ b/src/abd/test_abd_bi_fw.sh
@@ -0,0 +1,92 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 10"
+gnunet-arm -s -c test_abd_lookup.conf
+
+gnunet-identity -C a -c test_abd_lookup.conf
+gnunet-identity -C b -c test_abd_lookup.conf
+gnunet-identity -C c -c test_abd_lookup.conf
+gnunet-identity -C d -c test_abd_lookup.conf
+gnunet-identity -C e -c test_abd_lookup.conf
+gnunet-identity -C f -c test_abd_lookup.conf
+gnunet-identity -C g -c test_abd_lookup.conf
+AKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep a | awk '{print $3}')
+BKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep b | awk '{print $3}')
+CKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep c | awk '{print $3}')
+DKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep d | awk '{print $3}')
+EKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep e | awk '{print $3}')
+FKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep f | awk '{print $3}')
+GKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep g | awk '{print $3}')
+gnunet-identity -d
+
+#   (1) (A.a) <- B.b
+#   (2) (B.b) <- C.c
+#   (3) C.c <- (D.D)
+#   (4) D.d <- (E.e)
+#   (5) E.e <- (F.f)
+#   (6) F.f <- (G)
+
+# BIDIRECTIONAL
+gnunet-abd --createIssuerSide --ego=a --attribute="a" --subject="$BKEY b" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z a
+gnunet-abd --createIssuerSide --ego=b --attribute="b" --subject="$CKEY c" 
--ttl=5m -c test_abd_lookup.conf
+gnunet-namestore -D -z b
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=c --attribute="c" 
--subject="$DKEY d" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=d --import="$SIGNED"
+gnunet-namestore -D -z d
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=d --attribute="d" 
--subject="$EKEY e" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=e --import="$SIGNED"
+gnunet-namestore -D -z e
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=e --attribute="e" 
--subject="$FKEY f" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED" 
+gnunet-namestore -D -z f
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=f --attribute="f" 
--subject="$GKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=g --import="$SIGNED" --private
+gnunet-namestore -D -z g
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$AKEY --attribute="a" --ego=g 
--forward --backward -c test_abd_lookup.conf | paste -d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$GKEY 
--delegate=\'$DELS\' --forward --backward -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$GKEY 
--delegate="$DELS" --forward --backward -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z a -d -n "a" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z b -d -n "b" -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z d -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z e -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z f -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z g -d -n "@" -t DEL -c test_abd_lookup.conf
+
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
diff --git a/src/credential/test_credential_defaults.conf 
b/src/abd/test_abd_defaults.conf
similarity index 86%
rename from src/credential/test_credential_defaults.conf
rename to src/abd/test_abd_defaults.conf
index 39f82ad16..7b4cb576d 100644
--- a/src/credential/test_credential_defaults.conf
+++ b/src/abd/test_abd_defaults.conf
@@ -1,7 +1,7 @@
 @INLINE@ ../../contrib/conf/gnunet/no_forcestart.conf
 
 [PATHS]
-GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-credential-testing/
+GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-abd-testing/
 
 [namestore-sqlite]
 FILENAME = $GNUNET_TEST_HOME/namestore/sqlite_test.db
diff --git a/src/abd/test_abd_issue.sh b/src/abd/test_abd_issue.sh
new file mode 100755
index 000000000..8076aa921
--- /dev/null
+++ b/src/abd/test_abd_issue.sh
@@ -0,0 +1,46 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+#  (1) PKEY1.user -> PKEY2.resu.user
+#  (2) PKEY2.resu -> PKEY3
+#  (3) PKEY3.user -> PKEY4
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
+
+TEST_ATTR="test"
+gnunet-arm -s -c test_abd_lookup.conf
+gnunet-identity -C testissuer -c test_abd_lookup.conf
+gnunet-identity -C testsubject -c test_abd_lookup.conf
+SUBJECT_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep testsubject | 
awk '{print $3}')
+ISSUER_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep testissuer | 
awk '{print $3}')
+
+# Get abd and store it with subject (3)
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=testissuer 
--attribute=$TEST_ATTR --subject=$SUBJECT_KEY --ttl="2019-12-12 10:00:00" -c 
test_abd_lookup.conf`
+
+STATUS=$?
+
+if test $? != 0
+then
+  echo "Error issuing..."
+  exit 1
+fi
+#Try import
+$DO_TIMEOUT gnunet-abd --createSubjectSide --ego=testsubject 
--import="$SIGNED" --private -c test_abd_lookup.conf
+RES=$?
+gnunet-arm -e -c test_abd_lookup.conf
+exit $RES
diff --git a/src/credential/test_credential_lookup.conf 
b/src/abd/test_abd_lookup.conf
similarity index 82%
rename from src/credential/test_credential_lookup.conf
rename to src/abd/test_abd_lookup.conf
index 9cd16605d..4072ba23b 100644
--- a/src/credential/test_credential_lookup.conf
+++ b/src/abd/test_abd_lookup.conf
@@ -1,7 +1,7 @@
-@INLINE@ test_credential_defaults.conf
+@INLINE@ test_abd_defaults.conf
 
 [PATHS]
-GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-credential-peer-1/
+GNUNET_TEST_HOME = $GNUNET_TMP/test-gnunet-abd-peer-1/
 
 [dht]
 START_ON_DEMAND = YES
@@ -9,7 +9,7 @@ START_ON_DEMAND = YES
 [transport]
 PLUGINS =
 
-[credential]
+[abd]
 START_ON_DEMAND = YES
 #PREFIX = valgrind --leak-check=full --track-origins=yes 
--log-file=/tmp/credlog
 
diff --git a/src/abd/test_abd_own.sh b/src/abd/test_abd_own.sh
new file mode 100755
index 000000000..f4780ea90
--- /dev/null
+++ b/src/abd/test_abd_own.sh
@@ -0,0 +1,140 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 10"
+gnunet-arm -s -c test_abd_lookup.conf
+
+gnunet-identity -C a -c test_abd_lookup.conf
+gnunet-identity -C d -c test_abd_lookup.conf
+gnunet-identity -C e -c test_abd_lookup.conf
+gnunet-identity -C f -c test_abd_lookup.conf
+gnunet-identity -C g -c test_abd_lookup.conf
+AKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep a | awk '{print $3}')
+DKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep d | awk '{print $3}')
+EKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep e | awk '{print $3}')
+FKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep f | awk '{print $3}')
+GKEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep g | awk '{print $3}')
+
+############################################################################################
+#   (1) EPub.discount <- EOrg.preferred
+#   (2) EOrg.preferred <- StateU.student
+#   (3) StateU.student <- RegistrarB.student
+#   (4) RegistrarB.student <- Alice
+
+gnunet-identity -C epub -c test_abd_lookup.conf
+gnunet-identity -C eorg -c test_abd_lookup.conf
+gnunet-identity -C stateu -c test_abd_lookup.conf
+gnunet-identity -C registrarb -c test_abd_lookup.conf
+gnunet-identity -C alice -c test_abd_lookup.conf
+
+EPUB_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep epub | awk 
'{print $3}')
+EORG_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep eorg | awk 
'{print $3}')
+STATEU_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep stateu | awk 
'{print $3}')
+REGISTRARB_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep registrarb 
| awk '{print $3}')
+ALICE_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep alice | awk 
'{print $3}')
+
+
+DISC_ATTR="discount"
+PREF_ATTR="preferred"
+STATE_STUD_ATTR="student"
+REG_STUD_ATTR="student"
+END_ATTR="end"
+
+gnunet-identity -d
+
+# FORWARD, subject side stored (different constallations)
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=a --attribute="a" 
--subject="$AKEY b.c" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=a --import="$SIGNED"
+gnunet-namestore -D -z a
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=a --attribute="b" 
--subject="$DKEY d" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=d --import="$SIGNED"
+gnunet-namestore -D -z d
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=d --attribute="d" 
--subject="$EKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=e --import="$SIGNED"
+gnunet-namestore -D -z e
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=e --attribute="c" 
--subject="$FKEY c" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED"
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=e --attribute="k" 
--subject="$FKEY c.k" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=f --import="$SIGNED"
+gnunet-namestore -D -z f
+
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=f --attribute="c" 
--subject="$GKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=g --import="$SIGNED" --private
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=a --attribute="c" 
--subject="$GKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=g --import="$SIGNED" --private
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=d --attribute="h.o" 
--subject="$GKEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=g --import="$SIGNED"
+gnunet-namestore -D -z g
+
+
+# BACKWARD, issuer side stored
+# (1) EPub assigns the attribute "discount" to all entities that have been 
assigned "preferred" by EOrg
+gnunet-abd --createIssuerSide --ego=epub --attribute=$DISC_ATTR 
--subject="$EORG_KEY $PREF_ATTR" --ttl=5m -c test_abd_lookup.conf
+
+# (2) EOrg assigns the attribute "preferred" to all entities that have been 
assigned "student" by StateU
+gnunet-abd --createIssuerSide --ego=eorg --attribute=$PREF_ATTR 
--subject="$STATEU_KEY $STATE_STUD_ATTR" --ttl=5m -c test_abd_lookup.conf
+
+# (3) StateU assigns the attribute "student" to all entities that have been 
asssigned "student" by RegistrarB
+gnunet-abd --createIssuerSide --ego=stateu --attribute=$STATE_STUD_ATTR 
--subject="$REGISTRARB_KEY $REG_STUD_ATTR" --ttl=5m -c test_abd_lookup.conf
+
+# (4) RegistrarB issues Alice the credential "student"
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=registrarb 
--attribute="$REG_STUD_ATTR" --subject="$ALICE_KEY" --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=alice --import="$SIGNED" --private
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+# FORWARD
+#DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$AKEY --attribute="a" --ego=g 
--forward -c test_abd_lookup.conf | paste -d, -s - -`
+#echo $DELS
+#echo gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$GKEY 
--delegate=\'$DELS\' --forward -c test_abd_lookup.conf
+#RES_DELS=`gnunet-abd --verify --issuer=$AKEY --attribute="a" --subject=$GKEY 
--delegate="$DELS" --forward -c test_abd_lookup.conf`
+
+# BACKWARD
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$EPUB_KEY 
--attribute=$DISC_ATTR --ego=alice --backward -c test_abd_lookup.conf | paste 
-d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$EPUB_KEY --attribute=$DISC_ATTR 
--subject=$ALICE_KEY --delegate=\'$DELS\' --backward -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$EPUB_KEY --attribute=$DISC_ATTR 
--subject=$ALICE_KEY --delegate="$DELS" --backward -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z epub -d -n $DISC_ATTR -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z eorg -d -n $PREF_ATTR -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z stateu -d -n $STATE_STUD_ATTR -t ATTR -c 
test_abd_lookup.conf
+#gnunet-namestore -z a -d -n "@" -t DEL -c test_abd_lookup.conf
+#gnunet-namestore -z d -d -n "@" -t DEL -c test_abd_lookup.conf
+#gnunet-namestore -z e -d -n "@" -t DEL -c test_abd_lookup.conf
+#gnunet-namestore -z f -d -n "@" -t DEL -c test_abd_lookup.conf
+#gnunet-namestore -z g -d -n "@" -t DEL -c test_abd_lookup.conf
+
+
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
+
diff --git a/src/abd/test_abd_verify.sh b/src/abd/test_abd_verify.sh
new file mode 100755
index 000000000..9ece91c62
--- /dev/null
+++ b/src/abd/test_abd_verify.sh
@@ -0,0 +1,87 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+#  (1) Service.user -> GNU.project.member
+#  (2) GNU.project -> GNUnet
+#  (3) GNUnet.member -> GNUnet.developer
+#  (4) GNUnet.member -> GNUnet.user
+#  (5) GNUnet.developer -> Alice
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
+gnunet-arm -s -c test_abd_lookup.conf
+gnunet-identity -C service -c test_abd_lookup.conf
+gnunet-identity -C alice -c test_abd_lookup.conf
+gnunet-identity -C gnu -c test_abd_lookup.conf
+gnunet-identity -C gnunet -c test_abd_lookup.conf
+
+GNU_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep gnu | grep -v 
gnunet | awk '{print $3}')
+ALICE_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep alice | awk 
'{print $3}')
+GNUNET_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep gnunet | awk 
'{print $3}')
+SERVICE_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep service | awk 
'{print $3}')
+
+USER_ATTR="user"
+GNU_PROJECT_ATTR="project"
+MEMBER_ATTR="member"
+DEVELOPER_ATTR="developer"
+DEV_ATTR="developer"
+TEST_CREDENTIAL="mygnunetcreds"
+
+gnunet-identity -d
+
+# (1) A service assigns the attribute "user" to all entities that have been 
assigned "member" by entities that werde assigned "project" from GNU
+gnunet-abd --createIssuerSide --ego=service --attribute="$USER_ATTR" 
--subject="$GNU_KEY $GNU_PROJECT_ATTR.$MEMBER_ATTR" --ttl="2019-12-12 10:00:00" 
-c test_abd_lookup.conf
+gnunet-namestore -D -z service
+
+# (2) GNU recognized GNUnet as a GNU project and delegates the "project" 
attribute
+gnunet-abd --createIssuerSide --ego=gnu --attribute="$GNU_PROJECT_ATTR" 
--subject="$GNUNET_KEY" --ttl="2019-12-12 10:00:00" -c test_abd_lookup.conf
+gnunet-namestore -D -z gnu
+
+# (3+4) GNUnet assigns the attribute "member" to all entities gnunet has also 
assigned "developer" or "user"
+gnunet-abd --createIssuerSide --ego=gnunet --attribute="$MEMBER_ATTR" 
--subject="$GNUNET_KEY $DEVELOPER_ATTR" --ttl="2019-12-12 10:00:00" -c 
test_abd_lookup.conf
+gnunet-abd --createIssuerSide --ego=gnunet --attribute="$MEMBER_ATTR" 
--subject="$GNUNET_KEY $USER_ATTR" --ttl="2019-12-12 10:00:00" -c 
test_abd_lookup.conf
+gnunet-namestore -D -z gnunet
+
+# (5) GNUnet signes the delegate and Alice stores it
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=gnunet 
--attribute=$DEV_ATTR --subject=$ALICE_KEY --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=alice --import="$SIGNED" --private
+gnunet-namestore -D -z alice
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$SERVICE_KEY 
--attribute=$USER_ATTR --ego=alice --backward -c test_abd_lookup.conf | paste 
-d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$SERVICE_KEY --attribute=$USER_ATTR 
--subject=$ALICE_KEY --delegate=\'$DELS\' --backward -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$SERVICE_KEY --attribute=$USER_ATTR 
--subject=$ALICE_KEY --delegate="$DELS" --backward -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z alice -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z gnu -d -n $GNU_PROJECT_ATTR -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z gnunet -d -n $MEMBER_ATTR -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z service -d -n $USER_ATTR -t ATTR -c test_abd_lookup.conf
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
diff --git a/src/abd/test_abd_verify_and.sh b/src/abd/test_abd_verify_and.sh
new file mode 100755
index 000000000..c6287055e
--- /dev/null
+++ b/src/abd/test_abd_verify_and.sh
@@ -0,0 +1,86 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+#  (1) Service.user -> GNU.project.member
+#  (2) GNU.project -> GNUnet
+#  (3) GNUnet.member -> GNUnet.developer AND GNUnet.user
+#  (4) GNUnet.developer -> Alice
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
+gnunet-arm -s -c test_abd_lookup.conf
+gnunet-identity -C service -c test_abd_lookup.conf
+gnunet-identity -C alice -c test_abd_lookup.conf
+gnunet-identity -C gnu -c test_abd_lookup.conf
+gnunet-identity -C gnunet -c test_abd_lookup.conf
+
+GNU_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep gnu | grep -v 
gnunet | awk '{print $3}')
+ALICE_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep alice | awk 
'{print $3}')
+GNUNET_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep gnunet | awk 
'{print $3}')
+SERVICE_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep service | awk 
'{print $3}')
+
+USER_ATTR="user"
+GNU_PROJECT_ATTR="project"
+MEMBER_ATTR="member"
+DEVELOPER_ATTR="developer"
+DEV_ATTR="developer"
+
+gnunet-identity -d
+
+# (1) A service assigns the attribute "user" to all entities that have been 
assigned "member" by entities that werde assigned "project" from GNU
+gnunet-abd --createIssuerSide --ego=service --attribute="$USER_ATTR" 
--subject="$GNU_KEY $GNU_PROJECT_ATTR.$MEMBER_ATTR" --ttl="2019-12-12 10:00:00" 
-c test_abd_lookup.conf
+gnunet-namestore -D -z service
+
+# (2) GNU recognized GNUnet as a GNU project and delegates the "project" 
attribute
+gnunet-abd --createIssuerSide --ego=gnu --attribute="$GNU_PROJECT_ATTR" 
--subject="$GNUNET_KEY" --ttl="2019-12-12 10:00:00" -c test_abd_lookup.conf
+gnunet-namestore -D -z gnu
+
+# (3+4) GNUnet assigns the attribute "member" to all entities gnunet has also 
assigned "developer" or "user"
+gnunet-abd --createIssuerSide --ego=gnunet --attribute="$MEMBER_ATTR" 
--subject="$GNUNET_KEY $DEVELOPER_ATTR, $GNUNET_KEY $USER_ATTR" 
--ttl="2019-12-12 10:00:00" -c test_abd_lookup.conf
+gnunet-namestore -D -z gnunet
+
+# (5) GNUnet signes the delegates and Alice stores it
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=gnunet 
--attribute=$DEV_ATTR --subject=$ALICE_KEY --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=alice --import="$SIGNED" --private
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=gnunet 
--attribute=$USER_ATTR --subject=$ALICE_KEY --ttl="2019-12-12 10:00:00"`
+gnunet-abd --createSubjectSide --ego=alice --import="$SIGNED" --private
+gnunet-namestore -D -z alice
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$SERVICE_KEY 
--attribute=$USER_ATTR --ego=alice --backward -c test_abd_lookup.conf | paste 
-d, -s - -`
+echo $DELS
+echo gnunet-abd --verify --issuer=$SERVICE_KEY --attribute=$USER_ATTR 
--subject=$ALICE_KEY --delegate=\'$DELS\' --backward -c test_abd_lookup.conf
+gnunet-abd --verify --issuer=$SERVICE_KEY --attribute=$USER_ATTR 
--subject=$ALICE_KEY --delegate="$DELS" --backward -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z alice -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-namestore -z gnu -d -n $GNU_PROJECT_ATTR -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z gnunet -d -n $MEMBER_ATTR -t ATTR -c test_abd_lookup.conf
+gnunet-namestore -z service -d -n $USER_ATTR -t ATTR -c test_abd_lookup.conf
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credentials."
+  exit 1
+fi
diff --git a/src/abd/test_abd_verify_simple.sh 
b/src/abd/test_abd_verify_simple.sh
new file mode 100755
index 000000000..e917f8793
--- /dev/null
+++ b/src/abd/test_abd_verify_simple.sh
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+trap "gnunet-arm -e -c test_abd_lookup.conf" SIGINT
+
+LOCATION=$(which gnunet-config)
+if [ -z $LOCATION ]
+then
+  LOCATION="gnunet-config"
+fi
+$LOCATION --version 1> /dev/null
+if test $? != 0
+then
+       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
+       exit 77
+fi
+
+rm -rf `gnunet-config -c test_abd_lookup.conf -s PATHS -o GNUNET_HOME -f`
+
+#  (1) Issuer.user -> Subject
+
+
+which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
+gnunet-arm -s -c test_abd_lookup.conf
+gnunet-identity -C testissuer -c test_abd_lookup.conf
+gnunet-identity -C testsubject -c test_abd_lookup.conf
+
+TEST_ATTR="user"
+SUBJECT_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep testsubject | 
awk '{print $3}')
+ISSUER_KEY=$(gnunet-identity -d -c test_abd_lookup.conf | grep testissuer | 
awk '{print $3}')
+
+gnunet-identity -d
+
+# Create delegate (1)
+SIGNED=`$DO_TIMEOUT gnunet-abd --signSubjectSide --ego=testissuer 
--attribute=$TEST_ATTR --subject=$SUBJECT_KEY --ttl="2019-12-12 10:00:00" -c 
test_abd_lookup.conf`
+gnunet-abd --createSubjectSide --ego=testsubject --import="$SIGNED" --private
+gnunet-namestore -D -z testsubject
+
+# Starting to resolve
+echo "+++ Starting to Resolve +++"
+
+DELS=`$DO_TIMEOUT gnunet-abd --collect --issuer=$ISSUER_KEY 
--attribute=$TEST_ATTR --ego=testsubject -c test_abd_lookup.conf | paste -d, -s 
- -`
+echo $DELS
+gnunet-abd --verify --issuer=$ISSUER_KEY --attribute=$TEST_ATTR 
--subject=$SUBJECT_KEY --delegate="$DELS" -c test_abd_lookup.conf
+
+RES=$?
+
+# Cleanup properly
+gnunet-namestore -z testsubject -d -n "@" -t DEL -c test_abd_lookup.conf
+gnunet-arm -e -c test_abd_lookup.conf
+
+if [ "$RES" == 0 ]
+then
+  exit 0
+else
+  echo "FAIL: Failed to verify credential."
+  exit 1
+fi
\ No newline at end of file
diff --git a/src/credential/Makefile.am b/src/credential/Makefile.am
deleted file mode 100644
index bc6c49deb..000000000
--- a/src/credential/Makefile.am
+++ /dev/null
@@ -1,111 +0,0 @@
-# This Makefile.am is in the public domain
-AM_CPPFLAGS = -I$(top_srcdir)/src/include
-
-EXTRA_DIST = \
-  test_credential_defaults.conf \
-  test_credential_lookup.conf
-
-
-if USE_COVERAGE
-  AM_CFLAGS = --coverage -O0
-endif
-
-pkgcfgdir = $(pkgdatadir)/config.d/
-
-libexecdir= $(pkglibdir)/libexec/
-
-plugindir = $(libdir)/gnunet
-
-pkgcfg_DATA = \
-  credential.conf
-
-
-# /usr/lib - compiles a layer which can be used to be communicagte with the 
service
-lib_LTLIBRARIES = \
-  libgnunetcredential.la
-
-# /usr/lib/gnunet/libexec - Business logic . Separate process
-libexec_PROGRAMS = \
-  gnunet-service-credential
-
-bin_PROGRAMS = \
-  gnunet-credential
-
-plugin_LTLIBRARIES = \
-  libgnunet_plugin_gnsrecord_credential.la
-
-
-gnunet_credential_SOURCES = \
- gnunet-credential.c
-gnunet_credential_LDADD = \
-  libgnunetcredential.la \
-  $(top_builddir)/src/util/libgnunetutil.la \
-       $(top_builddir)/src/gnsrecord/libgnunetgnsrecord.la \
-  $(top_builddir)/src/identity/libgnunetidentity.la \
-  $(GN_LIBINTL)
-
-
-libgnunet_plugin_gnsrecord_credential_la_SOURCES = \
-  plugin_gnsrecord_credential.c
-libgnunet_plugin_gnsrecord_credential_la_LIBADD = \
-       libgnunetcredential.la \
-  $(top_builddir)/src/util/libgnunetutil.la \
-  $(LTLIBINTL)
-libgnunet_plugin_gnsrecord_credential_la_LDFLAGS = \
- $(GN_PLUGIN_LDFLAGS)
-
-
-
-gnunet_service_credential_SOURCES = \
- gnunet-service-credential.c
-gnunet_service_credential_LDADD = \
-       libgnunetcredential.la \
-  $(top_builddir)/src/util/libgnunetutil.la \
-       $(top_builddir)/src/gns/libgnunetgns.la \
-       $(top_builddir)/src/namestore/libgnunetnamestore.la \
-  $(top_builddir)/src/statistics/libgnunetstatistics.la \
-  $(GN_LIBINTL)
-
-
-libgnunetcredential_la_SOURCES = \
- credential_api.c credential.h \
- credential_serialization.c \
- credential_serialization.h \
- credential_misc.c \
- credential_misc.h
-libgnunetcredential_la_LIBADD = \
- $(top_builddir)/src/util/libgnunetutil.la $(XLIB)
-libgnunetcredential_la_LDFLAGS = \
-  $(GN_LIB_LDFLAGS)
-
-
-
-check_SCRIPTS = \
-  test_credential_issue.sh \
-       test_credential_verify_simple.sh \
-       test_credential_verify.sh \
-       test_credential_verify_and.sh
-
-if ENABLE_TEST_RUN
-if HAVE_SQLITE
- AM_TESTS_ENVIRONMENT=export GNUNET_PREFIX=$${GNUNET_PREFIX:-@libdir@};export 
PATH=$${GNUNET_PREFIX:-@prefix@}/bin:$$PATH;
- TESTS = $(check_SCRIPTS)
-endif
-endif
-
-#libgnunet_plugin_rest_credential_la_SOURCES = \
-#  plugin_rest_credential.c
-#libgnunet_plugin_rest_credential_la_LIBADD = \
-#  $(top_builddir)/src/credential/libgnunetcredential.la \
-#      $(top_builddir)/src/rest/libgnunetrest.la \
-#      $(top_builddir)/src/identity/libgnunetidentity.la \
-#  $(top_builddir)/src/util/libgnunetutil.la $(XLIBS) \
-#  $(LTLIBINTL) -ljansson $(MHD_LIBS)
-#libgnunet_plugin_rest_credential_la_LDFLAGS = \
-# $(GN_PLUGIN_LDFLAGS)
-#libgnunet_plugin_rest_credential_la_CFLAGS = $(MHD_CFLAGS) $(AM_CFLAGS)
-
-
-
-
-
diff --git a/src/credential/credential.conf.in 
b/src/credential/credential.conf.in
deleted file mode 100644
index d5a0b1c88..000000000
--- a/src/credential/credential.conf.in
+++ /dev/null
@@ -1,5 +0,0 @@
-[credential]
-BINARY = gnunet-service-credential
-UNIXPATH = $GNUNET_USER_RUNTIME_DIR/gnunet-service-credential.sock
-RUN_PER_USER = YES
-OPTIONS = -L DEBUG
diff --git a/src/credential/credential_api.c b/src/credential/credential_api.c
deleted file mode 100644
index 3cbaf6c21..000000000
--- a/src/credential/credential_api.c
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
-     This file is part of GNUnet.
-     Copyright (C) 2009-2013, 2016 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
- */
-/**
- * @file credential/credential_api.c
- * @brief library to access the CREDENTIAL service
- * @author Martin Schanzenbach
- */
-#include "platform.h"
-#include "gnunet_util_lib.h"
-#include "gnunet_constants.h"
-#include "gnunet_arm_service.h"
-#include "gnunet_hello_lib.h"
-#include "gnunet_protocols.h"
-#include "gnunet_signatures.h"
-#include "credential.h"
-#include "credential_serialization.h"
-#include "gnunet_credential_service.h"
-#include "gnunet_identity_service.h"
-
-
-#define LOG(kind, ...) GNUNET_log_from (kind, "credential-api", __VA_ARGS__)
-
-/**
- * Handle to a verify request
- */
-struct GNUNET_CREDENTIAL_Request
-{
-  /**
-   * DLL
-   */
-  struct GNUNET_CREDENTIAL_Request *next;
-
-  /**
-   * DLL
-   */
-  struct GNUNET_CREDENTIAL_Request *prev;
-
-  /**
-   * handle to credential service
-   */
-  struct GNUNET_CREDENTIAL_Handle *credential_handle;
-
-  /**
-   * processor to call on verify result
-   */
-  GNUNET_CREDENTIAL_CredentialResultProcessor verify_proc;
-
-  /**
-   * @e verify_proc closure
-   */
-  void *proc_cls;
-
-  /**
-   * Envelope with the message for this queue entry.
-   */
-  struct GNUNET_MQ_Envelope *env;
-
-  /**
-   * request id
-   */
-  uint32_t r_id;
-};
-
-
-/**
- * Connection to the CREDENTIAL service.
- */
-struct GNUNET_CREDENTIAL_Handle
-{
-  /**
-   * Configuration to use.
-   */
-  const struct GNUNET_CONFIGURATION_Handle *cfg;
-
-  /**
-   * Connection to service (if available).
-   */
-  struct GNUNET_MQ_Handle *mq;
-
-  /**
-   * Head of linked list of active verify requests.
-   */
-  struct GNUNET_CREDENTIAL_Request *request_head;
-
-  /**
-   * Tail of linked list of active verify requests.
-   */
-  struct GNUNET_CREDENTIAL_Request *request_tail;
-
-  /**
-   * Reconnect task
-   */
-  struct GNUNET_SCHEDULER_Task *reconnect_task;
-
-  /**
-   * How long do we wait until we try to reconnect?
-   */
-  struct GNUNET_TIME_Relative reconnect_backoff;
-
-  /**
-   * Request Id generator.  Incremented by one for each request.
-   */
-  uint32_t r_id_gen;
-};
-
-
-/**
- * Reconnect to CREDENTIAL service.
- *
- * @param handle the handle to the CREDENTIAL service
- */
-static void
-reconnect (struct GNUNET_CREDENTIAL_Handle *handle);
-
-
-/**
- * Reconnect to CREDENTIAL
- *
- * @param cls the handle
- */
-static void
-reconnect_task (void *cls)
-{
-  struct GNUNET_CREDENTIAL_Handle *handle = cls;
-
-  handle->reconnect_task = NULL;
-  reconnect (handle);
-}
-
-
-/**
- * Disconnect from service and then reconnect.
- *
- * @param handle our handle
- */
-static void
-force_reconnect (struct GNUNET_CREDENTIAL_Handle *handle)
-{
-  GNUNET_MQ_destroy (handle->mq);
-  handle->mq = NULL;
-  handle->reconnect_backoff
-    = GNUNET_TIME_STD_BACKOFF (handle->reconnect_backoff);
-  handle->reconnect_task
-    = GNUNET_SCHEDULER_add_delayed (handle->reconnect_backoff,
-                                    &reconnect_task,
-                                    handle);
-}
-
-
-/**
- * Generic error handler, called with the appropriate error code and
- * the same closure specified at the creation of the message queue.
- * Not every message queue implementation supports an error handler.
- *
- * @param cls closure with the `struct GNUNET_CREDENTIAL_Handle *`
- * @param error error code
- */
-static void
-mq_error_handler (void *cls,
-                  enum GNUNET_MQ_Error error)
-{
-  struct GNUNET_CREDENTIAL_Handle *handle = cls;
-
-  force_reconnect (handle);
-}
-
-/**
- * Check validity of message received from the CREDENTIAL service
- *
- * @param cls the `struct GNUNET_CREDENTIAL_Handle *`
- * @param vr_msg the incoming message
- */
-static int
-check_result (void *cls,
-              const struct DelegationChainResultMessage *vr_msg)
-{
-  // TODO
-  return GNUNET_OK;
-}
-
-
-/**
- * Handler for messages received from the CREDENTIAL service
- *
- * @param cls the `struct GNUNET_CREDENTIAL_Handle *`
- * @param vr_msg the incoming message
- */
-static void
-handle_result (void *cls,
-               const struct DelegationChainResultMessage *vr_msg)
-{
-  struct GNUNET_CREDENTIAL_Handle *handle = cls;
-  uint32_t r_id = ntohl (vr_msg->id);
-  struct GNUNET_CREDENTIAL_Request *vr;
-  size_t mlen = ntohs (vr_msg->header.size) - sizeof(*vr_msg);
-  uint32_t d_count = ntohl (vr_msg->d_count);
-  uint32_t c_count = ntohl (vr_msg->c_count);
-  struct GNUNET_CREDENTIAL_Delegation d_chain[d_count];
-  struct GNUNET_CREDENTIAL_Credential creds[c_count];
-  GNUNET_CREDENTIAL_CredentialResultProcessor proc;
-  void *proc_cls;
-
-  LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Received verify reply from CREDENTIAL service\n");
-  for (vr = handle->request_head; NULL != vr; vr = vr->next)
-    if (vr->r_id == r_id)
-      break;
-  if (NULL == vr)
-    return;
-  proc = vr->verify_proc;
-  proc_cls = vr->proc_cls;
-  GNUNET_CONTAINER_DLL_remove (handle->request_head,
-                               handle->request_tail,
-                               vr);
-  GNUNET_MQ_discard (vr->env);
-  GNUNET_free (vr);
-  GNUNET_assert (GNUNET_OK ==
-                 GNUNET_CREDENTIAL_delegation_chain_deserialize (mlen,
-                                                                 (const
-                                                                  char*) 
&vr_msg
-                                                                 [1],
-                                                                 d_count,
-                                                                 d_chain,
-                                                                 c_count,
-                                                                 creds));
-  if (GNUNET_NO == ntohl (vr_msg->cred_found))
-  {
-    proc (proc_cls,
-          0,
-          NULL,
-          0,
-          NULL);  // TODO
-  }
-  else
-  {
-    proc (proc_cls,
-          d_count,
-          d_chain,
-          c_count,
-          creds);
-  }
-}
-
-
-/**
- * Reconnect to CREDENTIAL service.
- *
- * @param handle the handle to the CREDENTIAL service
- */
-static void
-reconnect (struct GNUNET_CREDENTIAL_Handle *handle)
-{
-  struct GNUNET_MQ_MessageHandler handlers[] = {
-    GNUNET_MQ_hd_var_size (result,
-                           GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY_RESULT,
-                           struct DelegationChainResultMessage,
-                           handle),
-    GNUNET_MQ_hd_var_size (result,
-                           GNUNET_MESSAGE_TYPE_CREDENTIAL_COLLECT_RESULT,
-                           struct DelegationChainResultMessage,
-                           handle),
-    GNUNET_MQ_handler_end ()
-  };
-  struct GNUNET_CREDENTIAL_Request *vr;
-
-  GNUNET_assert (NULL == handle->mq);
-  LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Trying to connect to CREDENTIAL\n");
-  handle->mq = GNUNET_CLIENT_connect (handle->cfg,
-                                      "credential",
-                                      handlers,
-                                      &mq_error_handler,
-                                      handle);
-  if (NULL == handle->mq)
-    return;
-  for (vr = handle->request_head; NULL != vr; vr = vr->next)
-    GNUNET_MQ_send_copy (handle->mq,
-                         vr->env);
-}
-
-
-/**
- * Initialize the connection with the CREDENTIAL service.
- *
- * @param cfg configuration to use
- * @return handle to the CREDENTIAL service, or NULL on error
- */
-struct GNUNET_CREDENTIAL_Handle *
-GNUNET_CREDENTIAL_connect (const struct GNUNET_CONFIGURATION_Handle *cfg)
-{
-  struct GNUNET_CREDENTIAL_Handle *handle;
-
-  handle = GNUNET_new (struct GNUNET_CREDENTIAL_Handle);
-  handle->cfg = cfg;
-  reconnect (handle);
-  if (NULL == handle->mq)
-  {
-    GNUNET_free (handle);
-    return NULL;
-  }
-  return handle;
-}
-
-
-/**
- * Shutdown connection with the CREDENTIAL service.
- *
- * @param handle handle of the CREDENTIAL connection to stop
- */
-void
-GNUNET_CREDENTIAL_disconnect (struct GNUNET_CREDENTIAL_Handle *handle)
-{
-  if (NULL != handle->mq)
-  {
-    GNUNET_MQ_destroy (handle->mq);
-    handle->mq = NULL;
-  }
-  if (NULL != handle->reconnect_task)
-  {
-    GNUNET_SCHEDULER_cancel (handle->reconnect_task);
-    handle->reconnect_task = NULL;
-  }
-  GNUNET_assert (NULL == handle->request_head);
-  GNUNET_free (handle);
-}
-
-
-/**
- * Cancel pending verify request
- *
- * @param lr the verify request to cancel
- */
-void
-GNUNET_CREDENTIAL_request_cancel (struct GNUNET_CREDENTIAL_Request *lr)
-{
-  struct GNUNET_CREDENTIAL_Handle *handle = lr->credential_handle;
-
-  GNUNET_CONTAINER_DLL_remove (handle->request_head,
-                               handle->request_tail,
-                               lr);
-  GNUNET_MQ_discard (lr->env);
-  GNUNET_free (lr);
-}
-
-
-/**
- * Performs attribute collection.
- * Collects all credentials of subject to fulfill the
- * attribute, if possible
- *
- * @param handle handle to the Credential service
- * @param issuer_key the issuer public key
- * @param issuer_attribute the issuer attribute
- * @param subject_key the subject public key
- * @param proc function to call on result
- * @param proc_cls closure for processor
- * @return handle to the queued request
- */
-struct GNUNET_CREDENTIAL_Request*
-GNUNET_CREDENTIAL_collect (struct GNUNET_CREDENTIAL_Handle *handle,
-                           const struct
-                           GNUNET_CRYPTO_EcdsaPublicKey *issuer_key,
-                           const char *issuer_attribute,
-                           const struct
-                           GNUNET_CRYPTO_EcdsaPrivateKey *subject_key,
-                           GNUNET_CREDENTIAL_CredentialResultProcessor proc,
-                           void *proc_cls)
-{
-  /* IPC to shorten credential names, return shorten_handle */
-  struct CollectMessage *c_msg;
-  struct GNUNET_CREDENTIAL_Request *vr;
-  size_t nlen;
-
-  if (NULL == issuer_attribute)
-  {
-    GNUNET_break (0);
-    return NULL;
-  }
-
-  // DEBUG LOG
-  LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Trying to collect `%s' in CREDENTIAL\n",
-       issuer_attribute);
-  nlen = strlen (issuer_attribute) + 1;
-  if (nlen >= GNUNET_MAX_MESSAGE_SIZE - sizeof(*vr))
-  {
-    GNUNET_break (0);
-    return NULL;
-  }
-  vr = GNUNET_new (struct GNUNET_CREDENTIAL_Request);
-  vr->credential_handle = handle;
-  vr->verify_proc = proc;
-  vr->proc_cls = proc_cls;
-  vr->r_id = handle->r_id_gen++;
-  vr->env = GNUNET_MQ_msg_extra (c_msg,
-                                 nlen,
-                                 GNUNET_MESSAGE_TYPE_CREDENTIAL_COLLECT);
-  c_msg->id = htonl (vr->r_id);
-  c_msg->subject_key = *subject_key;
-  c_msg->issuer_key = *issuer_key;
-  c_msg->issuer_attribute_len = htons (strlen (issuer_attribute));
-  GNUNET_memcpy (&c_msg[1],
-                 issuer_attribute,
-                 strlen (issuer_attribute));
-  GNUNET_CONTAINER_DLL_insert (handle->request_head,
-                               handle->request_tail,
-                               vr);
-  if (NULL != handle->mq)
-    GNUNET_MQ_send_copy (handle->mq,
-                         vr->env);
-  return vr;
-}
-/**
- * Performs attribute verification.
- * Checks if there is a delegation chain from
- * attribute ``issuer_attribute'' issued by the issuer
- * with public key ``issuer_key'' maps to the attribute
- * ``subject_attribute'' claimed by the subject with key
- * ``subject_key''
- *
- * @param handle handle to the Credential service
- * @param issuer_key the issuer public key
- * @param issuer_attribute the issuer attribute
- * @param subject_key the subject public key
- * @param credential_count number of credentials provided
- * @param credentials subject credentials
- * @param proc function to call on result
- * @param proc_cls closure for processor
- * @return handle to the queued request
- */
-struct GNUNET_CREDENTIAL_Request*
-GNUNET_CREDENTIAL_verify (struct GNUNET_CREDENTIAL_Handle *handle,
-                          const struct GNUNET_CRYPTO_EcdsaPublicKey 
*issuer_key,
-                          const char *issuer_attribute,
-                          const struct
-                          GNUNET_CRYPTO_EcdsaPublicKey *subject_key,
-                          uint32_t credential_count,
-                          const struct
-                          GNUNET_CREDENTIAL_Credential *credentials,
-                          GNUNET_CREDENTIAL_CredentialResultProcessor proc,
-                          void *proc_cls)
-{
-  /* IPC to shorten credential names, return shorten_handle */
-  struct VerifyMessage *v_msg;
-  struct GNUNET_CREDENTIAL_Request *vr;
-  size_t nlen;
-  size_t clen;
-
-  if ((NULL == issuer_attribute)||(NULL == credentials))
-  {
-    GNUNET_break (0);
-    return NULL;
-  }
-
-  clen = GNUNET_CREDENTIAL_credentials_get_size (credential_count,
-                                                 credentials);
-
-  // DEBUG LOG
-  LOG (GNUNET_ERROR_TYPE_DEBUG,
-       "Trying to verify `%s' in CREDENTIAL\n",
-       issuer_attribute);
-  nlen = strlen (issuer_attribute) + 1 + clen;
-  if (nlen >= GNUNET_MAX_MESSAGE_SIZE - sizeof(*vr))
-  {
-    GNUNET_break (0);
-    return NULL;
-  }
-  vr = GNUNET_new (struct GNUNET_CREDENTIAL_Request);
-  vr->credential_handle = handle;
-  vr->verify_proc = proc;
-  vr->proc_cls = proc_cls;
-  vr->r_id = handle->r_id_gen++;
-  vr->env = GNUNET_MQ_msg_extra (v_msg,
-                                 nlen,
-                                 GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY);
-  v_msg->id = htonl (vr->r_id);
-  v_msg->subject_key = *subject_key;
-  v_msg->c_count = htonl (credential_count);
-  v_msg->issuer_key = *issuer_key;
-  v_msg->issuer_attribute_len = htons (strlen (issuer_attribute));
-  GNUNET_memcpy (&v_msg[1],
-                 issuer_attribute,
-                 strlen (issuer_attribute));
-  GNUNET_CREDENTIAL_credentials_serialize (credential_count,
-                                           credentials,
-                                           clen,
-                                           ((char*) &v_msg[1])
-                                           + strlen (issuer_attribute) + 1);
-  GNUNET_CONTAINER_DLL_insert (handle->request_head,
-                               handle->request_tail,
-                               vr);
-  if (NULL != handle->mq)
-    GNUNET_MQ_send_copy (handle->mq,
-                         vr->env);
-  return vr;
-}
-
-/* end of credential_api.c */
diff --git a/src/credential/credential_misc.c b/src/credential/credential_misc.c
deleted file mode 100644
index 13435273e..000000000
--- a/src/credential/credential_misc.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
-     This file is part of GNUnet.
-     Copyright (C) 2009-2013, 2016 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
- */
-
-
-/**
- * @file credential/credential_misc.c
- * @brief Misc API for credentials
- *
- * @author Martin Schanzenbach
- */
-#include "platform.h"
-#include "gnunet_util_lib.h"
-#include "gnunet_constants.h"
-#include "gnunet_credential_service.h"
-#include "gnunet_signatures.h"
-#include "credential.h"
-#include <inttypes.h>
-
-char*
-GNUNET_CREDENTIAL_credential_to_string (const struct
-                                        GNUNET_CREDENTIAL_Credential *cred)
-{
-  char *cred_str;
-  char *subject_pkey;
-  char *issuer_pkey;
-  char *signature;
-
-
-  subject_pkey = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred->subject_key);
-  issuer_pkey = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred->issuer_key);
-  GNUNET_STRINGS_base64_encode ((char*) &cred->signature,
-                                sizeof(struct GNUNET_CRYPTO_EcdsaSignature),
-                                &signature);
-  GNUNET_asprintf (&cred_str,
-                   "%s.%s -> %s | %s | %" SCNu64,
-                   issuer_pkey,
-                   cred->issuer_attribute,
-                   subject_pkey,
-                   signature,
-                   cred->expiration.abs_value_us);
-  GNUNET_free (subject_pkey);
-  GNUNET_free (issuer_pkey);
-  GNUNET_free (signature);
-  return cred_str;
-}
-
-struct GNUNET_CREDENTIAL_Credential*
-GNUNET_CREDENTIAL_credential_from_string (const char*s)
-{
-  struct GNUNET_CREDENTIAL_Credential *cred;
-  size_t enclen = (sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey)) * 8;
-
-  if (enclen % 5 > 0)
-    enclen += 5 - enclen % 5;
-  enclen /= 5; /* 260/5 = 52 */
-  char subject_pkey[enclen + 1];
-  char issuer_pkey[enclen + 1];
-  char name[253 + 1];
-  char signature[256]; // TODO max payload size
-
-  struct GNUNET_CRYPTO_EcdsaSignature *sig;
-  struct GNUNET_TIME_Absolute etime_abs;
-
-  if (5 != sscanf (s,
-                   "%52s.%253s -> %52s | %s | %" SCNu64,
-                   issuer_pkey,
-                   name,
-                   subject_pkey,
-                   signature,
-                   &etime_abs.abs_value_us))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                _ ("Unable to parse CRED record string `%s'\n"),
-                s);
-    return NULL;
-  }
-  cred = GNUNET_malloc (sizeof(struct GNUNET_CREDENTIAL_Credential) + strlen (
-                          name) + 1);
-  GNUNET_CRYPTO_ecdsa_public_key_from_string (subject_pkey,
-                                              strlen (subject_pkey),
-                                              &cred->subject_key);
-  GNUNET_CRYPTO_ecdsa_public_key_from_string (issuer_pkey,
-                                              strlen (issuer_pkey),
-                                              &cred->issuer_key);
-  GNUNET_assert (sizeof(struct GNUNET_CRYPTO_EcdsaSignature) ==
-                 GNUNET_STRINGS_base64_decode (signature,
-                                               strlen (
-                                                 signature),
-                                               (
-                                                 char**) &sig));
-  cred->signature = *sig;
-  cred->expiration = etime_abs;
-  GNUNET_free (sig);
-  GNUNET_memcpy (&cred[1],
-                 name,
-                 strlen (name) + 1);
-  cred->issuer_attribute_len = strlen ((char*) &cred[1]);
-  cred->issuer_attribute = (char*) &cred[1];
-  return cred;
-}
-
-/**
- * Issue an attribute to a subject
- *
- * @param issuer the ego that should be used to issue the attribute
- * @param subject the subject of the attribute
- * @param attribute the name of the attribute
- * @return handle to the queued request
- */
-struct GNUNET_CREDENTIAL_Credential *
-GNUNET_CREDENTIAL_credential_issue (const struct
-                                    GNUNET_CRYPTO_EcdsaPrivateKey *issuer,
-                                    struct GNUNET_CRYPTO_EcdsaPublicKey 
*subject,
-                                    const char *attribute,
-                                    struct GNUNET_TIME_Absolute *expiration)
-{
-  struct CredentialEntry *crd;
-  struct GNUNET_CREDENTIAL_Credential *cred;
-  size_t size;
-
-  size = sizeof(struct CredentialEntry) + strlen (attribute) + 1;
-  crd = GNUNET_malloc (size);
-  cred = GNUNET_malloc (sizeof(struct GNUNET_CREDENTIAL_Credential) + strlen (
-                          attribute) + 1);
-  crd->purpose.size = htonl (size - sizeof(struct
-                                           GNUNET_CRYPTO_EcdsaSignature));
-
-  crd->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_CREDENTIAL);
-  GNUNET_CRYPTO_ecdsa_key_get_public (issuer,
-                                      &crd->issuer_key);
-  crd->subject_key = *subject;
-  crd->expiration = GNUNET_htonll (expiration->abs_value_us);
-  crd->issuer_attribute_len = htonl (strlen (attribute) + 1);
-  GNUNET_memcpy ((char*) &crd[1],
-                 attribute,
-                 strlen (attribute) + 1);
-  if (GNUNET_OK !=
-      GNUNET_CRYPTO_ecdsa_sign (issuer,
-                                &crd->purpose,
-                                &crd->signature))
-  {
-    GNUNET_break (0);
-    GNUNET_free (crd);
-    GNUNET_free (cred);
-    return NULL;
-  }
-  cred->signature = crd->signature;
-  cred->expiration = *expiration;
-  GNUNET_CRYPTO_ecdsa_key_get_public (issuer,
-                                      &cred->issuer_key);
-
-  cred->subject_key = *subject;
-  GNUNET_memcpy (&cred[1],
-                 attribute,
-                 strlen (attribute) + 1);
-  cred->issuer_attribute = (char*) &cred[1];
-  GNUNET_free (crd);
-  return cred;
-}
diff --git a/src/credential/credential_serialization.c 
b/src/credential/credential_serialization.c
deleted file mode 100644
index 40fa112dd..000000000
--- a/src/credential/credential_serialization.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
-     This file is part of GNUnet.
-     Copyright (C) 2009-2013, 2016 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
- */
-
-
-/**
- * @file credential/credential_serialization.c
- * @brief API to serialize and deserialize delegation chains
- * and credentials
- * @author Martin Schanzenbach
- */
-#include "platform.h"
-#include "gnunet_util_lib.h"
-#include "gnunet_constants.h"
-#include "gnunet_credential_service.h"
-#include "gnunet_signatures.h"
-#include "credential.h"
-
-/**
- * Calculate how many bytes we will need to serialize
- * the given delegation chain
- *
- * @param ds_count number of delegation chain entries
- * @param dsr array of #GNUNET_CREDENTIAL_DelegationSet
- * @return the required size to serialize
- */
-size_t
-GNUNET_CREDENTIAL_delegation_set_get_size (unsigned int ds_count,
-                                           const struct
-                                           GNUNET_CREDENTIAL_DelegationSet 
*dsr)
-{
-  unsigned int i;
-  size_t ret;
-
-  ret = sizeof(struct DelegationRecordData) * (ds_count);
-
-  for (i = 0; i < ds_count; i++)
-  {
-    GNUNET_assert ((ret + dsr[i].subject_attribute_len) >= ret);
-    ret += dsr[i].subject_attribute_len;
-  }
-  return ret;
-}
-
-/**
- * Serizalize the given delegation chain entries and credential
- *
- * @param d_count number of delegation chain entries
- * @param dsr array of #GNUNET_CREDENTIAL_DelegationSet
- * @param dest_size size of the destination
- * @param dest where to store the result
- * @return the size of the data, -1 on failure
- */
-ssize_t
-GNUNET_CREDENTIAL_delegation_set_serialize (unsigned int d_count,
-                                            const struct
-                                            GNUNET_CREDENTIAL_DelegationSet 
*dsr,
-                                            size_t dest_size,
-                                            char *dest)
-{
-  struct DelegationRecordData rec;
-  unsigned int i;
-  size_t off;
-
-  off = 0;
-  for (i = 0; i < d_count; i++)
-  {
-    rec.subject_attribute_len = htonl ((uint32_t) 
dsr[i].subject_attribute_len);
-    rec.subject_key = dsr[i].subject_key;
-    if (off + sizeof(rec) > dest_size)
-      return -1;
-    GNUNET_memcpy (&dest[off],
-                   &rec,
-                   sizeof(rec));
-    off += sizeof(rec);
-    if (0 == dsr[i].subject_attribute_len)
-      continue;
-    if (off + dsr[i].subject_attribute_len > dest_size)
-      return -1;
-    GNUNET_memcpy (&dest[off],
-                   dsr[i].subject_attribute,
-                   dsr[i].subject_attribute_len);
-    off += dsr[i].subject_attribute_len;
-  }
-  return off;
-}
-
-
-/**
- * Deserialize the given destination
- *
- * @param len size of the serialized delegation chain and cred
- * @param src the serialized data
- * @param d_count the number of delegation chain entries
- * @param dsr where to put the delegation chain entries
- * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
- */
-int
-GNUNET_CREDENTIAL_delegation_set_deserialize (size_t len,
-                                              const char *src,
-                                              unsigned int d_count,
-                                              struct
-                                              GNUNET_CREDENTIAL_DelegationSet *
-                                              dsr)
-{
-  struct DelegationRecordData rec;
-  unsigned int i;
-  size_t off;
-
-  off = 0;
-  for (i = 0; i < d_count; i++)
-  {
-    if (off + sizeof(rec) > len)
-      return GNUNET_SYSERR;
-    GNUNET_memcpy (&rec, &src[off], sizeof(rec));
-    dsr[i].subject_key = rec.subject_key;
-    off += sizeof(rec);
-    dsr[i].subject_attribute_len = ntohl ((uint32_t) 
rec.subject_attribute_len);
-    if (off + dsr[i].subject_attribute_len > len)
-      return GNUNET_SYSERR;
-    dsr[i].subject_attribute = (char*) &src[off];
-    off += dsr[i].subject_attribute_len;
-  }
-  return GNUNET_OK;
-}
-
-
-/**
- * Calculate how many bytes we will need to serialize
- * the credentials
- *
- * @param c_count number of credential entries
- * @param cd a #GNUNET_CREDENTIAL_Credential
- * @return the required size to serialize
- */
-size_t
-GNUNET_CREDENTIAL_credentials_get_size (unsigned int c_count,
-                                        const struct
-                                        GNUNET_CREDENTIAL_Credential *cd)
-{
-  unsigned int i;
-  size_t ret;
-
-  ret = sizeof(struct CredentialEntry) * (c_count);
-
-  for (i = 0; i < c_count; i++)
-  {
-    GNUNET_assert ((ret + cd[i].issuer_attribute_len) >= ret);
-    ret += cd[i].issuer_attribute_len;
-  }
-  return ret;
-}
-/**
- * Serizalize the given credentials
- *
- * @param c_count number of credential entries
- * @param cd a #GNUNET_CREDENTIAL_Credential
- * @param dest_size size of the destination
- * @param dest where to store the result
- * @return the size of the data, -1 on failure
- */
-ssize_t
-GNUNET_CREDENTIAL_credentials_serialize (unsigned int c_count,
-                                         const struct
-                                         GNUNET_CREDENTIAL_Credential *cd,
-                                         size_t dest_size,
-                                         char *dest)
-{
-  struct CredentialEntry c_rec;
-  unsigned int i;
-  size_t off;
-
-  off = 0;
-  for (i = 0; i < c_count; i++)
-  {
-    c_rec.issuer_attribute_len = htonl ((uint32_t) cd[i].issuer_attribute_len);
-    c_rec.issuer_key = cd[i].issuer_key;
-    c_rec.subject_key = cd[i].subject_key;
-    c_rec.signature = cd[i].signature;
-    c_rec.purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_CREDENTIAL);
-    c_rec.purpose.size = htonl ((sizeof(struct CredentialEntry)
-                                 + cd[i].issuer_attribute_len) - sizeof(struct
-                                                                        
GNUNET_CRYPTO_EcdsaSignature));
-    c_rec.expiration = GNUNET_htonll (cd[i].expiration.abs_value_us);
-    if (off + sizeof(c_rec) > dest_size)
-      return -1;
-    GNUNET_memcpy (&dest[off],
-                   &c_rec,
-                   sizeof(c_rec));
-    off += sizeof(c_rec);
-    if (off + cd[i].issuer_attribute_len > dest_size)
-      return -1;
-    GNUNET_memcpy (&dest[off],
-                   cd[i].issuer_attribute,
-                   cd[i].issuer_attribute_len);
-    off += cd[i].issuer_attribute_len;
-  }
-
-  return off;
-}
-
-
-
-/**
- * Deserialize the given destination
- *
- * @param len size of the serialized creds
- * @param src the serialized data
- * @param c_count the number of credential entries
- * @param cd where to put the credential data
- * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
- */
-int
-GNUNET_CREDENTIAL_credentials_deserialize (size_t len,
-                                           const char *src,
-                                           unsigned int c_count,
-                                           struct GNUNET_CREDENTIAL_Credential 
*
-                                           cd)
-{
-  struct CredentialEntry c_rec;
-  unsigned int i;
-  size_t off;
-
-  off = 0;
-  for (i = 0; i < c_count; i++)
-  {
-    if (off + sizeof(c_rec) > len)
-      return GNUNET_SYSERR;
-    GNUNET_memcpy (&c_rec, &src[off], sizeof(c_rec));
-    cd[i].issuer_attribute_len = ntohl ((uint32_t) c_rec.issuer_attribute_len);
-    cd[i].issuer_key = c_rec.issuer_key;
-    cd[i].subject_key = c_rec.subject_key;
-    cd[i].signature = c_rec.signature;
-    cd[i].expiration.abs_value_us = GNUNET_ntohll (c_rec.expiration);
-    off += sizeof(c_rec);
-    if (off + cd[i].issuer_attribute_len > len)
-      return GNUNET_SYSERR;
-    cd[i].issuer_attribute = &src[off];
-    off += cd[i].issuer_attribute_len;
-  }
-  return GNUNET_OK;
-}
-
-
-
-/**
- * Calculate how many bytes we will need to serialize
- * the given delegation chain and credential
- *
- * @param d_count number of delegation chain entries
- * @param dd array of #GNUNET_CREDENTIAL_Delegation
- * @param c_count number of credential entries
- * @param cd a #GNUNET_CREDENTIAL_Credential
- * @return the required size to serialize
- */
-size_t
-GNUNET_CREDENTIAL_delegation_chain_get_size (unsigned int d_count,
-                                             const struct
-                                             GNUNET_CREDENTIAL_Delegation *dd,
-                                             unsigned int c_count,
-                                             const struct
-                                             GNUNET_CREDENTIAL_Credential *cd)
-{
-  unsigned int i;
-  size_t ret;
-
-  ret = sizeof(struct ChainEntry) * (d_count);
-
-  for (i = 0; i < d_count; i++)
-  {
-    GNUNET_assert ((ret
-                    + dd[i].issuer_attribute_len
-                    + dd[i].subject_attribute_len) >= ret);
-    ret += dd[i].issuer_attribute_len + dd[i].subject_attribute_len;
-  }
-  return ret + GNUNET_CREDENTIAL_credentials_get_size (c_count, cd);
-}
-
-/**
- * Serizalize the given delegation chain entries and credential
- *
- * @param d_count number of delegation chain entries
- * @param dd array of #GNUNET_CREDENTIAL_Delegation
- * @param c_count number of credential entries
- * @param cd a #GNUNET_CREDENTIAL_Credential
- * @param dest_size size of the destination
- * @param dest where to store the result
- * @return the size of the data, -1 on failure
- */
-ssize_t
-GNUNET_CREDENTIAL_delegation_chain_serialize (unsigned int d_count,
-                                              const struct
-                                              GNUNET_CREDENTIAL_Delegation *dd,
-                                              unsigned int c_count,
-                                              const struct
-                                              GNUNET_CREDENTIAL_Credential *cd,
-                                              size_t dest_size,
-                                              char *dest)
-{
-  struct ChainEntry rec;
-  unsigned int i;
-  size_t off;
-
-  off = 0;
-  for (i = 0; i < d_count; i++)
-  {
-    rec.issuer_attribute_len = htonl ((uint32_t) dd[i].issuer_attribute_len);
-    rec.subject_attribute_len = htonl ((uint32_t) dd[i].subject_attribute_len);
-    rec.issuer_key = dd[i].issuer_key;
-    rec.subject_key = dd[i].subject_key;
-    if (off + sizeof(rec) > dest_size)
-      return -1;
-    GNUNET_memcpy (&dest[off],
-                   &rec,
-                   sizeof(rec));
-    off += sizeof(rec);
-    if (off + dd[i].issuer_attribute_len > dest_size)
-      return -1;
-    GNUNET_memcpy (&dest[off],
-                   dd[i].issuer_attribute,
-                   dd[i].issuer_attribute_len);
-    off += dd[i].issuer_attribute_len;
-    if (0 == dd[i].subject_attribute_len)
-      continue;
-    if (off + dd[i].subject_attribute_len > dest_size)
-      return -1;
-    GNUNET_memcpy (&dest[off],
-                   dd[i].subject_attribute,
-                   dd[i].subject_attribute_len);
-    off += dd[i].subject_attribute_len;
-  }
-  return off + GNUNET_CREDENTIAL_credentials_serialize (c_count,
-                                                        cd,
-                                                        dest_size - off,
-                                                        &dest[off]);
-}
-
-
-/**
- * Deserialize the given destination
- *
- * @param len size of the serialized delegation chain and cred
- * @param src the serialized data
- * @param d_count the number of delegation chain entries
- * @param dd where to put the delegation chain entries
- * @param c_count the number of credential entries
- * @param cd where to put the credential data
- * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
- */
-int
-GNUNET_CREDENTIAL_delegation_chain_deserialize (size_t len,
-                                                const char *src,
-                                                unsigned int d_count,
-                                                struct
-                                                GNUNET_CREDENTIAL_Delegation 
*dd,
-                                                unsigned int c_count,
-                                                struct
-                                                GNUNET_CREDENTIAL_Credential 
*cd)
-{
-  struct ChainEntry rec;
-  unsigned int i;
-  size_t off;
-
-  off = 0;
-  for (i = 0; i < d_count; i++)
-  {
-    if (off + sizeof(rec) > len)
-      return GNUNET_SYSERR;
-    GNUNET_memcpy (&rec, &src[off], sizeof(rec));
-    dd[i].issuer_attribute_len = ntohl ((uint32_t) rec.issuer_attribute_len);
-    dd[i].issuer_key = rec.issuer_key;
-    dd[i].subject_key = rec.subject_key;
-    off += sizeof(rec);
-    if (off + dd[i].issuer_attribute_len > len)
-      return GNUNET_SYSERR;
-    dd[i].issuer_attribute = &src[off];
-    off += dd[i].issuer_attribute_len;
-    dd[i].subject_attribute_len = ntohl ((uint32_t) rec.subject_attribute_len);
-    if (off + dd[i].subject_attribute_len > len)
-      return GNUNET_SYSERR;
-    dd[i].subject_attribute = &src[off];
-    off += dd[i].subject_attribute_len;
-  }
-  return GNUNET_CREDENTIAL_credentials_deserialize (len - off,
-                                                    &src[off],
-                                                    c_count,
-                                                    cd);
-}
-int
-GNUNET_CREDENTIAL_credential_serialize (struct
-                                        GNUNET_CREDENTIAL_Credential *cred,
-                                        char **data)
-{
-  size_t size;
-  struct CredentialEntry *cdata;
-
-  size = sizeof(struct CredentialEntry) + strlen (cred->issuer_attribute) + 1;
-  *data = GNUNET_malloc (size);
-  cdata = (struct CredentialEntry*) *data;
-  cdata->subject_key = cred->subject_key;
-  cdata->issuer_key = cred->issuer_key;
-  cdata->expiration = GNUNET_htonll (cred->expiration.abs_value_us);
-  cdata->signature = cred->signature;
-  cdata->issuer_attribute_len = htonl (strlen (cred->issuer_attribute) + 1);
-  cdata->purpose.purpose = htonl (GNUNET_SIGNATURE_PURPOSE_CREDENTIAL);
-  cdata->purpose.size = htonl (size - sizeof(struct
-                                             GNUNET_CRYPTO_EcdsaSignature));
-  GNUNET_memcpy (&cdata[1],
-                 cred->issuer_attribute,
-                 strlen (cred->issuer_attribute));
-
-  if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_verify (
-        GNUNET_SIGNATURE_PURPOSE_CREDENTIAL,
-        &cdata->purpose,
-        &cdata->signature,
-        &cdata->issuer_key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Invalid credential\n");
-    // return NULL;
-  }
-  return size;
-}
-
-struct GNUNET_CREDENTIAL_Credential*
-GNUNET_CREDENTIAL_credential_deserialize (const char*data,
-                                          size_t data_size)
-{
-  struct GNUNET_CREDENTIAL_Credential *cred;
-  struct CredentialEntry *cdata;
-  char *issuer_attribute;
-
-  if (data_size < sizeof(struct CredentialEntry))
-    return NULL;
-  cdata = (struct CredentialEntry*) data;
-  if (GNUNET_OK != GNUNET_CRYPTO_ecdsa_verify (
-        GNUNET_SIGNATURE_PURPOSE_CREDENTIAL,
-        &cdata->purpose,
-        &cdata->signature,
-        &cdata->issuer_key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
-                "Invalid credential\n");
-    // return NULL;
-  }
-  issuer_attribute = (char*) &cdata[1];
-
-  cred = GNUNET_malloc (sizeof(struct GNUNET_CREDENTIAL_Credential) + ntohl (
-                          cdata->issuer_attribute_len));
-
-  cred->issuer_key = cdata->issuer_key;
-  cred->subject_key = cdata->subject_key;
-  GNUNET_memcpy (&cred[1],
-                 issuer_attribute,
-                 ntohl (cdata->issuer_attribute_len));
-  cred->signature = cdata->signature;
-  cred->issuer_attribute = (char*) &cred[1];
-  cred->expiration.abs_value_us = GNUNET_ntohll (cdata->expiration);
-  return cred;
-}
-
-
-/* end of credential_serialization.c */
diff --git a/src/credential/credential_serialization.h 
b/src/credential/credential_serialization.h
deleted file mode 100644
index 65326de31..000000000
--- a/src/credential/credential_serialization.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
-     This file is part of GNUnet.
-     Copyright (C) 2009-2013, 2016 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
- */
-
-
-/**
- * @file credential/credential_serialization.h
- * @brief API to serialize and deserialize delegation chains
- * and credentials
- * @author Martin Schanzenbach
- */
-#ifndef CREDENTIAL_SERIALIZATION_H
-#define CREDENTIAL_SERIALIZATION_H
-
-#include "platform.h"
-#include "gnunet_util_lib.h"
-#include "gnunet_constants.h"
-#include "gnunet_credential_service.h"
-
-/**
- * Calculate how many bytes we will need to serialize
- * the given delegation record
- *
- * @param ds_count number of delegation chain entries
- * @param dsr array of #GNUNET_CREDENTIAL_Delegation
- * @return the required size to serialize
- */
-size_t
-GNUNET_CREDENTIAL_delegation_set_get_size (unsigned int ds_count,
-                                           const struct
-                                           GNUNET_CREDENTIAL_DelegationSet 
*dsr);
-
-/**
- * Serizalize the given delegation record entries
- *
- * @param d_count number of delegation chain entries
- * @param dsr array of #GNUNET_CREDENTIAL_Delegation
- * @param dest_size size of the destination
- * @param dest where to store the result
- * @return the size of the data, -1 on failure
- */
-ssize_t
-GNUNET_CREDENTIAL_delegation_set_serialize (unsigned int d_count,
-                                            const struct
-                                            GNUNET_CREDENTIAL_DelegationSet 
*dsr,
-                                            size_t dest_size,
-                                            char *dest);
-
-
-/**
- * Deserialize the given destination
- *
- * @param len size of the serialized delegation recird
- * @param src the serialized data
- * @param d_count the number of delegation chain entries
- * @param dsr where to put the delegation chain entries
- * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
- */
-int
-GNUNET_CREDENTIAL_delegation_set_deserialize (size_t len,
-                                              const char *src,
-                                              unsigned int d_count,
-                                              struct
-                                              GNUNET_CREDENTIAL_DelegationSet *
-                                              dsr);
-
-/**
- * Calculate how many bytes we will need to serialize
- * the given delegation chain and credential
- *
- * @param d_count number of delegation chain entries
- * @param dd array of #GNUNET_CREDENTIAL_Delegation
- * @param c_count number of credential entries
- * @param cd a #GNUNET_CREDENTIAL_Credential
- * @return the required size to serialize
- */
-size_t
-GNUNET_CREDENTIAL_delegation_chain_get_size (unsigned int d_count,
-                                             const struct
-                                             GNUNET_CREDENTIAL_Delegation *dd,
-                                             unsigned int c_count,
-                                             const struct
-                                             GNUNET_CREDENTIAL_Credential *cd);
-
-/**
- * Serizalize the given delegation chain entries and credential
- *
- * @param d_count number of delegation chain entries
- * @param dd array of #GNUNET_CREDENTIAL_Delegation
- * @param c_count number of credential entries
- * @param cd a #GNUNET_CREDENTIAL_Credential
- * @param dest_size size of the destination
- * @param dest where to store the result
- * @return the size of the data, -1 on failure
- */
-ssize_t
-GNUNET_CREDENTIAL_delegation_chain_serialize (unsigned int d_count,
-                                              const struct
-                                              GNUNET_CREDENTIAL_Delegation *dd,
-                                              unsigned int c_count,
-                                              const struct
-                                              GNUNET_CREDENTIAL_Credential *cd,
-                                              size_t dest_size,
-                                              char *dest);
-
-
-/**
- * Deserialize the given destination
- *
- * @param len size of the serialized delegation chain and cred
- * @param src the serialized data
- * @param d_count the number of delegation chain entries
- * @param dd where to put the delegation chain entries
- * @param c_count number of credential entries
- * @param cd where to put the credential data
- * @return #GNUNET_OK on success, #GNUNET_SYSERR on error
- */
-int
-GNUNET_CREDENTIAL_delegation_chain_deserialize (size_t len,
-                                                const char *src,
-                                                unsigned int d_count,
-                                                struct
-                                                GNUNET_CREDENTIAL_Delegation 
*dd,
-                                                unsigned int c_count,
-                                                struct
-                                                GNUNET_CREDENTIAL_Credential 
*cd);
-size_t
-GNUNET_CREDENTIAL_credentials_get_size (unsigned int c_count,
-                                        const struct
-                                        GNUNET_CREDENTIAL_Credential *cd);
-
-ssize_t
-GNUNET_CREDENTIAL_credentials_serialize (unsigned int c_count,
-                                         const struct
-                                         GNUNET_CREDENTIAL_Credential *cd,
-                                         size_t dest_size,
-                                         char *dest);
-
-
-int
-GNUNET_CREDENTIAL_credentials_deserialize (size_t len,
-                                           const char *src,
-                                           unsigned int c_count,
-                                           struct GNUNET_CREDENTIAL_Credential 
*
-                                           cd);
-
-
-int
-GNUNET_CREDENTIAL_credential_serialize (struct
-                                        GNUNET_CREDENTIAL_Credential *cred,
-                                        char **data);
-
-struct GNUNET_CREDENTIAL_Credential*
-GNUNET_CREDENTIAL_credential_deserialize (const char*data,
-                                          size_t data_size);
-#endif
-/* end of credential_serialization.h */
diff --git a/src/credential/gnunet-credential.c 
b/src/credential/gnunet-credential.c
deleted file mode 100644
index 0558ca5fc..000000000
--- a/src/credential/gnunet-credential.c
+++ /dev/null
@@ -1,603 +0,0 @@
-/*
-     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
- */
-/**
- * @file gnunet-credential.c
- * @brief command line tool to access command line Credential service
- * @author Martin Schanzenbach
- */
-#include "platform.h"
-#include <gnunet_util_lib.h>
-#include <gnunet_credential_service.h>
-#include <gnunet_gnsrecord_lib.h>
-#include "credential_misc.h"
-#include "credential_serialization.h"
-
-/**
- * Configuration we are using.
- */
-static const struct GNUNET_CONFIGURATION_Handle *cfg;
-
-/**
- * EgoLookup
- */
-static struct GNUNET_IDENTITY_EgoLookup *el;
-
-/**
- * Handle to Credential service.
- */
-static struct GNUNET_CREDENTIAL_Handle *credential;
-
-/**
- * Desired timeout for the lookup (default is no timeout).
- */
-static struct GNUNET_TIME_Relative timeout;
-
-/**
- * Handle to verify request
- */
-static struct GNUNET_CREDENTIAL_Request *verify_request;
-
-/**
- * Handle to collect request
- */
-static struct GNUNET_CREDENTIAL_Request *collect_request;
-
-/**
- * Task scheduled to handle timeout.
- */
-static struct GNUNET_SCHEDULER_Task *tt;
-
-/**
- * Subject pubkey string
- */
-static char *subject_key;
-
-/**
- * Subject credential string
- */
-static char *subject_credential;
-
-/**
- * Credential TTL
- */
-static char *expiration;
-
-/**
- * Subject key
- */
-struct GNUNET_CRYPTO_EcdsaPublicKey subject_pkey;
-
-/**
- * Issuer key
- */
-struct GNUNET_CRYPTO_EcdsaPublicKey issuer_pkey;
-
-
-/**
- * Issuer pubkey string
- */
-static char *issuer_key;
-
-/**
- * ego
- */
-static char *ego_name;
-
-/**
- * Issuer attribute
- */
-static char *issuer_attr;
-
-/**
- * Verify mode
- */
-static int verify;
-
-/**
- * Issue mode
- */
-static int create_cred;
-
-/**
- * Collect mode
- */
-static int collect;
-
-/**
- * Task run on shutdown.  Cleans up everything.
- *
- * @param cls unused
- */
-static void
-do_shutdown (void *cls)
-{
-  if (NULL != verify_request)
-  {
-    GNUNET_CREDENTIAL_request_cancel (verify_request);
-    verify_request = NULL;
-  }
-  if (NULL != credential)
-  {
-    GNUNET_CREDENTIAL_disconnect (credential);
-    credential = NULL;
-  }
-  if (NULL != tt)
-  {
-    GNUNET_SCHEDULER_cancel (tt);
-    tt = NULL;
-  }
-}
-
-
-/**
- * Task run on timeout. Triggers shutdown.
- *
- * @param cls unused
- */
-static void
-do_timeout (void *cls)
-{
-  tt = NULL;
-  GNUNET_SCHEDULER_shutdown ();
-}
-
-static void
-handle_collect_result (void *cls,
-                       unsigned int d_count,
-                       struct GNUNET_CREDENTIAL_Delegation *dc,
-                       unsigned int c_count,
-                       struct GNUNET_CREDENTIAL_Credential *cred)
-{
-  int i;
-  char*line;
-
-  verify_request = NULL;
-  if (NULL != cred)
-  {
-    for (i = 0; i < c_count; i++)
-    {
-      line = GNUNET_CREDENTIAL_credential_to_string (&cred[i]);
-      printf ("%s\n",
-              line);
-      GNUNET_free (line);
-    }
-  }
-
-
-  GNUNET_SCHEDULER_shutdown ();
-}
-
-
-static void
-handle_verify_result (void *cls,
-                      unsigned int d_count,
-                      struct GNUNET_CREDENTIAL_Delegation *dc,
-                      unsigned int c_count,
-                      struct GNUNET_CREDENTIAL_Credential *cred)
-{
-  int i;
-  char*iss_key;
-  char*sub_key;
-
-  verify_request = NULL;
-  if (NULL == cred)
-    printf ("Failed.\n");
-  else
-  {
-    printf ("Delegation Chain:\n");
-    for (i = 0; i < d_count; i++)
-    {
-      iss_key = GNUNET_CRYPTO_ecdsa_public_key_to_string (&dc[i].issuer_key);
-      sub_key = GNUNET_CRYPTO_ecdsa_public_key_to_string (&dc[i].subject_key);
-      if (0 != dc[i].subject_attribute_len)
-      {
-        printf ("(%d) %s.%s <- %s.%s\n", i,
-                iss_key, dc[i].issuer_attribute,
-                sub_key, dc[i].subject_attribute);
-      }
-      else
-      {
-        printf ("(%d) %s.%s <- %s\n", i,
-                iss_key, dc[i].issuer_attribute,
-                sub_key);
-      }
-      GNUNET_free (iss_key);
-      GNUNET_free (sub_key);
-    }
-    printf ("\nCredentials:\n");
-    for (i = 0; i < c_count; i++)
-    {
-      iss_key = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred[i].issuer_key);
-      sub_key = GNUNET_CRYPTO_ecdsa_public_key_to_string 
(&cred[i].subject_key);
-      printf ("%s.%s <- %s\n",
-              iss_key, cred[i].issuer_attribute,
-              sub_key);
-      GNUNET_free (iss_key);
-      GNUNET_free (sub_key);
-    }
-    printf ("Successful.\n");
-  }
-
-
-  GNUNET_SCHEDULER_shutdown ();
-}
-
-/**
- * Callback invoked from identity service with ego information.
- * An @a ego of NULL means the ego was not found.
- *
- * @param cls closure with the configuration
- * @param ego an ego known to identity service, or NULL
- */
-static void
-identity_cb (void *cls,
-             const struct GNUNET_IDENTITY_Ego *ego)
-{
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *privkey;
-  struct GNUNET_CREDENTIAL_Credential *crd;
-  struct GNUNET_TIME_Absolute etime_abs;
-  struct GNUNET_TIME_Relative etime_rel;
-  char *res;
-
-  el = NULL;
-  if (NULL == ego)
-  {
-    if (NULL != ego_name)
-    {
-      fprintf (stderr,
-               _ ("Ego `%s' not known to identity service\n"),
-               ego_name);
-    }
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-
-  if (GNUNET_YES == collect)
-  {
-    if (GNUNET_OK !=
-        GNUNET_CRYPTO_ecdsa_public_key_from_string (issuer_key,
-                                                    strlen (issuer_key),
-                                                    &issuer_pkey))
-    {
-      fprintf (stderr,
-               _ ("Issuer public key `%s' is not well-formed\n"),
-               issuer_key);
-      GNUNET_SCHEDULER_shutdown ();
-    }
-    privkey = GNUNET_IDENTITY_ego_get_private_key (ego);
-
-    collect_request = GNUNET_CREDENTIAL_collect (credential,
-                                                 &issuer_pkey,
-                                                 issuer_attr,  // TODO argument
-                                                 privkey,
-                                                 &handle_collect_result,
-                                                 NULL);
-    return;
-  }
-
-  // Else issue
-
-  if (NULL == expiration)
-  {
-    fprintf (stderr,
-             "Please specify a TTL\n");
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  else if (GNUNET_OK == GNUNET_STRINGS_fancy_time_to_relative (expiration,
-                                                               &etime_rel))
-  {
-    etime_abs = GNUNET_TIME_relative_to_absolute (etime_rel);
-  }
-  else if (GNUNET_OK != GNUNET_STRINGS_fancy_time_to_absolute (expiration,
-                                                               &etime_abs))
-  {
-    fprintf (stderr,
-             "%s is not a valid ttl!\n",
-             expiration);
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-
-
-  privkey = GNUNET_IDENTITY_ego_get_private_key (ego);
-  GNUNET_free_non_null (ego_name);
-  ego_name = NULL;
-  crd = GNUNET_CREDENTIAL_credential_issue (privkey,
-                                            &subject_pkey,
-                                            issuer_attr,
-                                            &etime_abs);
-
-  res = GNUNET_CREDENTIAL_credential_to_string (crd);
-  GNUNET_free (crd);
-  printf ("%s\n", res);
-  GNUNET_SCHEDULER_shutdown ();
-}
-
-
-
-
-/**
- * Main function that will be run.
- *
- * @param cls closure
- * @param args remaining command-line arguments
- * @param cfgfile name of the configuration file used (for saving, can be 
NULL!)
- * @param c configuration
- */
-static void
-run (void *cls,
-     char *const *args,
-     const char *cfgfile,
-     const struct GNUNET_CONFIGURATION_Handle *c)
-{
-  cfg = c;
-
-
-  tt = GNUNET_SCHEDULER_add_delayed (timeout,
-                                     &do_timeout, NULL);
-  GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL);
-
-  if (GNUNET_YES == collect)
-  {
-    if (NULL == issuer_key)
-    {
-      fprintf (stderr,
-               _ ("Issuer public key not well-formed\n"));
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-
-    credential = GNUNET_CREDENTIAL_connect (cfg);
-
-    if (NULL == credential)
-    {
-      fprintf (stderr,
-               _ ("Failed to connect to CREDENTIAL\n"));
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-    if (NULL == issuer_attr)
-    {
-      fprintf (stderr,
-               _ ("You must provide issuer the attribute\n"));
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-
-    if (NULL == ego_name)
-    {
-      fprintf (stderr,
-               _ ("ego required\n"));
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-    el = GNUNET_IDENTITY_ego_lookup (cfg,
-                                     ego_name,
-                                     &identity_cb,
-                                     (void *) cfg);
-    return;
-  }
-
-  if (NULL == subject_key)
-  {
-    fprintf (stderr,
-             _ ("Subject public key needed\n"));
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  if (GNUNET_OK !=
-      GNUNET_CRYPTO_ecdsa_public_key_from_string (subject_key,
-                                                  strlen (subject_key),
-                                                  &subject_pkey))
-  {
-    fprintf (stderr,
-             _ ("Subject public key `%s' is not well-formed\n"),
-             subject_key);
-    GNUNET_SCHEDULER_shutdown ();
-    return;
-  }
-  if (GNUNET_YES == verify)
-  {
-    if (NULL == issuer_key)
-    {
-      fprintf (stderr,
-               _ ("Issuer public key not well-formed\n"));
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-    if (GNUNET_OK !=
-        GNUNET_CRYPTO_ecdsa_public_key_from_string (issuer_key,
-                                                    strlen (issuer_key),
-                                                    &issuer_pkey))
-    {
-      fprintf (stderr,
-               _ ("Issuer public key `%s' is not well-formed\n"),
-               issuer_key);
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-    credential = GNUNET_CREDENTIAL_connect (cfg);
-
-    if (NULL == credential)
-    {
-      fprintf (stderr,
-               _ ("Failed to connect to CREDENTIAL\n"));
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-    if ((NULL == issuer_attr) ||(NULL == subject_credential) )
-    {
-      fprintf (stderr,
-               _ ("You must provide issuer and subject attributes\n"));
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-
-    // Subject credentials are comma separated
-    char *tmp = GNUNET_strdup (subject_credential);
-    char *tok = strtok (tmp, ",");
-    if (NULL == tok)
-    {
-      fprintf (stderr,
-               "Invalid subject credentials\n");
-      GNUNET_free (tmp);
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-    int count = 1;
-    int i;
-    while (NULL != (tok = strtok (NULL, ",")))
-      count++;
-    struct GNUNET_CREDENTIAL_Credential credentials[count];
-    struct GNUNET_CREDENTIAL_Credential *cred;
-    GNUNET_free (tmp);
-    tmp = GNUNET_strdup (subject_credential);
-    tok = strtok (tmp, ",");
-    for (i = 0; i < count; i++)
-    {
-      cred = GNUNET_CREDENTIAL_credential_from_string (tok);
-      GNUNET_memcpy (&credentials[i],
-                     cred,
-                     sizeof(struct GNUNET_CREDENTIAL_Credential));
-      credentials[i].issuer_attribute = GNUNET_strdup (cred->issuer_attribute);
-      tok = strtok (NULL, ",");
-      GNUNET_free (cred);
-    }
-
-    verify_request = GNUNET_CREDENTIAL_verify (credential,
-                                               &issuer_pkey,
-                                               issuer_attr,  // TODO argument
-                                               &subject_pkey,
-                                               count,
-                                               credentials,
-                                               &handle_verify_result,
-                                               NULL);
-    for (i = 0; i < count; i++)
-    {
-      GNUNET_free ((char*) credentials[i].issuer_attribute);
-    }
-    GNUNET_free (tmp);
-  }
-  else if (GNUNET_YES == create_cred)
-  {
-    if (NULL == ego_name)
-    {
-      fprintf (stderr,
-               _ ("Issuer ego required\n"));
-      GNUNET_SCHEDULER_shutdown ();
-      return;
-    }
-    el = GNUNET_IDENTITY_ego_lookup (cfg,
-                                     ego_name,
-                                     &identity_cb,
-                                     (void *) cfg);
-    return;
-  }
-  else
-  {
-    fprintf (stderr,
-             _ (
-               "Please specify name to lookup, subject key and issuer 
key!\n"));
-    GNUNET_SCHEDULER_shutdown ();
-  }
-  return;
-}
-
-
-/**
- * The main function for gnunet-gns.
- *
- * @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 *const *argv)
-{
-  struct GNUNET_GETOPT_CommandLineOption options[] = {
-    GNUNET_GETOPT_option_flag ('I',
-                               "issue",
-                               gettext_noop ("create credential"),
-                               &create_cred),
-    GNUNET_GETOPT_option_flag ('V',
-                               "verify",
-                               gettext_noop (
-                                 "verify credential against attribute"),
-                               &verify),
-    GNUNET_GETOPT_option_string ('s',
-                                 "subject",
-                                 "PKEY",
-                                 gettext_noop (
-                                   "The public key of the subject to lookup 
the credential for"),
-                                 &subject_key),
-    GNUNET_GETOPT_option_string ('b',
-                                 "credential",
-                                 "CRED",
-                                 gettext_noop (
-                                   "The name of the credential presented by 
the subject"),
-                                 &subject_credential),
-    GNUNET_GETOPT_option_string ('i',
-                                 "issuer",
-                                 "PKEY",
-                                 gettext_noop (
-                                   "The public key of the authority to verify 
the credential against"),
-                                 &issuer_key),
-    GNUNET_GETOPT_option_string ('e',
-                                 "ego",
-                                 "EGO",
-                                 gettext_noop ("The ego to use"),
-                                 &ego_name),
-    GNUNET_GETOPT_option_string ('a',
-                                 "attribute",
-                                 "ATTR",
-                                 gettext_noop (
-                                   "The issuer attribute to verify against or 
to issue"),
-                                 &issuer_attr),
-    GNUNET_GETOPT_option_string ('T',
-                                 "ttl",
-                                 "EXP",
-                                 gettext_noop (
-                                   "The time to live for the credential"),
-                                 &expiration),
-    GNUNET_GETOPT_option_flag ('g',
-                               "collect",
-                               gettext_noop ("collect credentials"),
-                               &collect),
-    GNUNET_GETOPT_OPTION_END
-  };
-  int ret;
-
-  timeout = GNUNET_TIME_UNIT_FOREVER_REL;
-  if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv))
-    return 2;
-
-  GNUNET_log_setup ("gnunet-credential", "WARNING", NULL);
-  ret =
-    (GNUNET_OK ==
-     GNUNET_PROGRAM_run (argc, argv, "gnunet-credential",
-                         _ ("GNUnet credential resolver tool"),
-                         options,
-                         &run, NULL)) ? 0 : 1;
-  GNUNET_free ((void*) argv);
-  return ret;
-}
-
-/* end of gnunet-credential.c */
diff --git a/src/credential/gnunet-service-credential.c 
b/src/credential/gnunet-service-credential.c
deleted file mode 100644
index f4a96014f..000000000
--- a/src/credential/gnunet-service-credential.c
+++ /dev/null
@@ -1,1151 +0,0 @@
-/*
-     This file is part of GNUnet.
-     Copyright (C) 2011-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
- */
-/**
- * @file credential/gnunet-service-credential.c
- * @brief GNUnet Credential Service (main service)
- * @author Martin Schanzenbach
- */
-#include "platform.h"
-
-#include "gnunet_util_lib.h"
-
-#include "credential.h"
-#include "credential_serialization.h"
-#include "gnunet_credential_service.h"
-#include "gnunet_protocols.h"
-#include "gnunet_signatures.h"
-#include "gnunet_statistics_service.h"
-#include <gnunet_dnsparser_lib.h>
-#include <gnunet_gns_service.h>
-#include <gnunet_gnsrecord_lib.h>
-#include <gnunet_identity_service.h>
-#include <gnunet_namestore_service.h>
-
-
-#define GNUNET_CREDENTIAL_MAX_LENGTH 255
-
-struct VerifyRequestHandle;
-
-struct DelegationSetQueueEntry;
-
-
-struct DelegationChainEntry
-{
-  /**
-   * DLL
-   */
-  struct DelegationChainEntry *next;
-
-  /**
-   * DLL
-   */
-  struct DelegationChainEntry *prev;
-
-  /**
-   * The issuer
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey issuer_key;
-
-  /**
-   * The subject
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey subject_key;
-
-  /**
-   * The issued attribute
-   */
-  char *issuer_attribute;
-
-  /**
-   * The delegated attribute
-   */
-  char *subject_attribute;
-};
-
-/**
- * DLL for record
- */
-struct CredentialRecordEntry
-{
-  /**
-   * DLL
-   */
-  struct CredentialRecordEntry *next;
-
-  /**
-   * DLL
-   */
-  struct CredentialRecordEntry *prev;
-
-  /**
-   * Number of references in delegation chains
-   */
-  uint32_t refcount;
-
-  /**
-   * Payload
-   */
-  struct GNUNET_CREDENTIAL_Credential *credential;
-};
-
-/**
- * DLL used for delegations
- * Used for OR delegations
- */
-struct DelegationQueueEntry
-{
-  /**
-   * DLL
-   */
-  struct DelegationQueueEntry *next;
-
-  /**
-   * DLL
-   */
-  struct DelegationQueueEntry *prev;
-
-  /**
-   * Sets under this Queue
-   */
-  struct DelegationSetQueueEntry *set_entries_head;
-
-  /**
-   * Sets under this Queue
-   */
-  struct DelegationSetQueueEntry *set_entries_tail;
-
-  /**
-   * Parent set
-   */
-  struct DelegationSetQueueEntry *parent_set;
-
-  /**
-   * Required solutions
-   */
-  uint32_t required_solutions;
-};
-
-/**
- * DLL for delegation sets
- * Used for AND delegation set
- */
-struct DelegationSetQueueEntry
-{
-  /**
-   * DLL
-   */
-  struct DelegationSetQueueEntry *next;
-
-  /**
-   * DLL
-   */
-  struct DelegationSetQueueEntry *prev;
-
-  /**
-   * GNS handle
-   */
-  struct GNUNET_GNS_LookupRequest *lookup_request;
-
-  /**
-   * Verify handle
-   */
-  struct VerifyRequestHandle *handle;
-
-  /**
-   * Parent attribute delegation
-   */
-  struct DelegationQueueEntry *parent;
-
-  /**
-   * Issuer key
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey *issuer_key;
-
-  /**
-   * Queue entries of this set
-   */
-  struct DelegationQueueEntry *queue_entries_head;
-
-  /**
-   * Queue entries of this set
-   */
-  struct DelegationQueueEntry *queue_entries_tail;
-
-  /**
-   * Parent QueueEntry
-   */
-  struct DelegationQueueEntry *parent_queue_entry;
-
-  /**
-   * Issuer attribute delegated to
-   */
-  char *issuer_attribute;
-
-  /**
-   * The current attribute to look up
-   */
-  char *lookup_attribute;
-
-  /**
-   * Trailing attribute context
-   */
-  char *attr_trailer;
-
-  /**
-   * Still to resolve delegation as string
-   */
-  char *unresolved_attribute_delegation;
-
-  /**
-   * The delegation chain entry
-   */
-  struct DelegationChainEntry *delegation_chain_entry;
-};
-
-
-/**
- * Handle to a lookup operation from api
- */
-struct VerifyRequestHandle
-{
-  /**
-   * We keep these in a DLL.
-   */
-  struct VerifyRequestHandle *next;
-
-  /**
-   * We keep these in a DLL.
-   */
-  struct VerifyRequestHandle *prev;
-
-  /**
-   * Handle to the requesting client
-   */
-  struct GNUNET_SERVICE_Client *client;
-
-  /**
-   * GNS handle
-   */
-  struct GNUNET_GNS_LookupRequest *lookup_request;
-
-  /**
-   * Size of delegation tree
-   */
-  uint32_t delegation_chain_size;
-
-  /**
-   * Children of this attribute
-   */
-  struct DelegationChainEntry *delegation_chain_head;
-
-  /**
-   * Children of this attribute
-   */
-  struct DelegationChainEntry *delegation_chain_tail;
-
-  /**
-   * Issuer public key
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey issuer_key;
-
-  /**
-   * Issuer attribute
-   */
-  char *issuer_attribute;
-
-  /**
-   * Subject public key
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey subject_key;
-
-  /**
-   * Credential DLL
-   */
-  struct CredentialRecordEntry *cred_chain_head;
-
-  /**
-   * Credential DLL
-   */
-  struct CredentialRecordEntry *cred_chain_tail;
-
-  /**
-   * Credential DLL size
-   */
-  uint32_t cred_chain_size;
-
-  /**
-   * Root Delegation Set
-   */
-  struct DelegationSetQueueEntry *root_set;
-
-  /**
-   * Current Delegation Pointer
-   */
-  struct DelegationQueueEntry *current_delegation;
-
-  /**
-   * request id
-   */
-  uint32_t request_id;
-
-  /**
-   * Pending lookups
-   */
-  uint64_t pending_lookups;
-
-  /**
-   * Credential iterator
-   */
-  struct GNUNET_NAMESTORE_ZoneIterator *cred_collection_iter;
-
-  /**
-   * Collect task
-   */
-  struct GNUNET_SCHEDULER_Task *collect_next_task;
-};
-
-
-/**
- * Head of the DLL.
- */
-static struct VerifyRequestHandle *vrh_head;
-
-/**
- * Tail of the DLL.
- */
-static struct VerifyRequestHandle *vrh_tail;
-
-/**
- * Handle to the statistics service
- */
-static struct GNUNET_STATISTICS_Handle *statistics;
-
-/**
- * Handle to GNS service.
- */
-static struct GNUNET_GNS_Handle *gns;
-
-
-/**
- * Handle to namestore service
- */
-static struct GNUNET_NAMESTORE_Handle *namestore;
-
-static void
-cleanup_delegation_set (struct DelegationSetQueueEntry *ds_entry)
-{
-  struct DelegationQueueEntry *dq_entry;
-  struct DelegationSetQueueEntry *child;
-
-  if (NULL == ds_entry)
-    return;
-
-  for (dq_entry = ds_entry->queue_entries_head; NULL != dq_entry;
-       dq_entry = ds_entry->queue_entries_head)
-  {
-    GNUNET_CONTAINER_DLL_remove (ds_entry->queue_entries_head,
-                                 ds_entry->queue_entries_tail,
-                                 dq_entry);
-    for (child = dq_entry->set_entries_head; NULL != child;
-         child = dq_entry->set_entries_head)
-    {
-      GNUNET_CONTAINER_DLL_remove (dq_entry->set_entries_head,
-                                   dq_entry->set_entries_tail,
-                                   child);
-      cleanup_delegation_set (child);
-    }
-    GNUNET_free (dq_entry);
-  }
-  GNUNET_free_non_null (ds_entry->issuer_key);
-  GNUNET_free_non_null (ds_entry->lookup_attribute);
-  GNUNET_free_non_null (ds_entry->issuer_attribute);
-  GNUNET_free_non_null (ds_entry->unresolved_attribute_delegation);
-  GNUNET_free_non_null (ds_entry->attr_trailer);
-  if (NULL != ds_entry->lookup_request)
-  {
-    GNUNET_GNS_lookup_cancel (ds_entry->lookup_request);
-    ds_entry->lookup_request = NULL;
-  }
-  if (NULL != ds_entry->delegation_chain_entry)
-  {
-    GNUNET_free_non_null (ds_entry->delegation_chain_entry->subject_attribute);
-    GNUNET_free_non_null (ds_entry->delegation_chain_entry->issuer_attribute);
-    GNUNET_free (ds_entry->delegation_chain_entry);
-  }
-  GNUNET_free (ds_entry);
-}
-
-static void
-cleanup_handle (struct VerifyRequestHandle *vrh)
-{
-  struct CredentialRecordEntry *cr_entry;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Cleaning up...\n");
-  if (NULL != vrh->lookup_request)
-  {
-    GNUNET_GNS_lookup_cancel (vrh->lookup_request);
-    vrh->lookup_request = NULL;
-  }
-  cleanup_delegation_set (vrh->root_set);
-  GNUNET_free_non_null (vrh->issuer_attribute);
-  for (cr_entry = vrh->cred_chain_head; NULL != vrh->cred_chain_head;
-       cr_entry = vrh->cred_chain_head)
-  {
-    GNUNET_CONTAINER_DLL_remove (vrh->cred_chain_head,
-                                 vrh->cred_chain_tail,
-                                 cr_entry);
-    GNUNET_free_non_null (cr_entry->credential);
-    GNUNET_free (cr_entry);
-  }
-  GNUNET_free (vrh);
-}
-
-static void
-shutdown_task (void *cls)
-{
-  struct VerifyRequestHandle *vrh;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down!\n");
-
-  while (NULL != (vrh = vrh_head))
-  {
-    // CREDENTIAL_resolver_lookup_cancel (clh->lookup);
-    GNUNET_CONTAINER_DLL_remove (vrh_head, vrh_tail, vrh);
-    cleanup_handle (vrh);
-  }
-
-  if (NULL != gns)
-  {
-    GNUNET_GNS_disconnect (gns);
-    gns = NULL;
-  }
-  if (NULL != namestore)
-  {
-    GNUNET_NAMESTORE_disconnect (namestore);
-    namestore = NULL;
-  }
-  if (NULL != statistics)
-  {
-    GNUNET_STATISTICS_destroy (statistics, GNUNET_NO);
-    statistics = NULL;
-  }
-}
-
-
-static void
-send_lookup_response (struct VerifyRequestHandle *vrh)
-{
-  struct GNUNET_MQ_Envelope *env;
-  struct DelegationChainResultMessage *rmsg;
-  struct DelegationChainEntry *dce;
-  struct GNUNET_CREDENTIAL_Delegation dd[vrh->delegation_chain_size];
-  struct GNUNET_CREDENTIAL_Credential cred[vrh->cred_chain_size];
-  struct CredentialRecordEntry *cd;
-  struct CredentialRecordEntry *tmp;
-  size_t size;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Sending response\n");
-  dce = vrh->delegation_chain_head;
-  for (uint32_t i = 0; i < vrh->delegation_chain_size; i++)
-  {
-    dd[i].issuer_key = dce->issuer_key;
-    dd[i].subject_key = dce->subject_key;
-    dd[i].issuer_attribute = dce->issuer_attribute;
-    dd[i].issuer_attribute_len = strlen (dce->issuer_attribute) + 1;
-    dd[i].subject_attribute_len = 0;
-    dd[i].subject_attribute = NULL;
-    if (NULL != dce->subject_attribute)
-    {
-      dd[i].subject_attribute = dce->subject_attribute;
-      dd[i].subject_attribute_len = strlen (dce->subject_attribute) + 1;
-    }
-    dce = dce->next;
-  }
-
-  /**
-   * Remove all credentials not needed
-   */
-  for (cd = vrh->cred_chain_head; NULL != cd;)
-  {
-    if (cd->refcount > 0)
-    {
-      cd = cd->next;
-      continue;
-    }
-    tmp = cd;
-    cd = cd->next;
-    GNUNET_CONTAINER_DLL_remove (vrh->cred_chain_head,
-                                 vrh->cred_chain_tail,
-                                 tmp);
-    GNUNET_free (tmp->credential);
-    GNUNET_free (tmp);
-    vrh->cred_chain_size--;
-  }
-
-  /**
-   * Get serialized record data
-   * Append at the end of rmsg
-   */
-  cd = vrh->cred_chain_head;
-  for (uint32_t i = 0; i < vrh->cred_chain_size; i++)
-  {
-    cred[i].issuer_key = cd->credential->issuer_key;
-    cred[i].subject_key = cd->credential->subject_key;
-    cred[i].issuer_attribute_len
-      = strlen (cd->credential->issuer_attribute) + 1;
-    cred[i].issuer_attribute = cd->credential->issuer_attribute;
-    cred[i].expiration = cd->credential->expiration;
-    cred[i].signature = cd->credential->signature;
-    cd = cd->next;
-  }
-  size
-    = GNUNET_CREDENTIAL_delegation_chain_get_size (vrh->delegation_chain_size,
-                                                   dd,
-                                                   vrh->cred_chain_size,
-                                                   cred);
-  env = GNUNET_MQ_msg_extra (rmsg,
-                             size,
-                             GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY_RESULT);
-  // Assign id so that client can find associated request
-  rmsg->id = vrh->request_id;
-  rmsg->d_count = htonl (vrh->delegation_chain_size);
-  rmsg->c_count = htonl (vrh->cred_chain_size);
-
-  if (0 < vrh->cred_chain_size)
-    rmsg->cred_found = htonl (GNUNET_YES);
-  else
-    rmsg->cred_found = htonl (GNUNET_NO);
-
-  GNUNET_assert (
-    -1
-    != GNUNET_CREDENTIAL_delegation_chain_serialize 
(vrh->delegation_chain_size,
-                                                     dd,
-                                                     vrh->cred_chain_size,
-                                                     cred,
-                                                     size,
-                                                     (char *) &rmsg[1]));
-
-  GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq (vrh->client), env);
-  GNUNET_CONTAINER_DLL_remove (vrh_head, vrh_tail, vrh);
-  cleanup_handle (vrh);
-
-  GNUNET_STATISTICS_update (statistics,
-                            "Completed verifications",
-                            1,
-                            GNUNET_NO);
-}
-
-
-static void
-backward_resolution (void *cls,
-                     uint32_t rd_count,
-                     const struct GNUNET_GNSRECORD_Data *rd)
-{
-  struct VerifyRequestHandle *vrh;
-  const struct GNUNET_CREDENTIAL_DelegationRecord *sets;
-  struct CredentialRecordEntry *cred_pointer;
-  struct DelegationSetQueueEntry *current_set;
-  struct DelegationSetQueueEntry *ds_entry;
-  struct DelegationSetQueueEntry *tmp_set;
-  struct DelegationQueueEntry *dq_entry;
-  char *expanded_attr;
-  char *lookup_attribute;
-
-
-  current_set = cls;
-  current_set->lookup_request = NULL;
-  vrh = current_set->handle;
-  vrh->pending_lookups--;
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Got %d attrs\n", rd_count);
-
-  // Each OR
-  for (uint32_t i = 0; i < rd_count; i++)
-  {
-    if (GNUNET_GNSRECORD_TYPE_ATTRIBUTE != rd[i].record_type)
-      continue;
-
-    sets = rd[i].data;
-    struct GNUNET_CREDENTIAL_DelegationSet set[ntohl (sets->set_count)];
-    GNUNET_log (
-      GNUNET_ERROR_TYPE_DEBUG,
-      "Found new attribute delegation with %d sets. Creating new Job...\n",
-      ntohl (sets->set_count));
-
-    if (GNUNET_OK
-        != GNUNET_CREDENTIAL_delegation_set_deserialize (
-          GNUNET_ntohll (sets->data_size),
-          (const char *) &sets[1],
-          ntohl (sets->set_count),
-          set))
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to deserialize!\n");
-      continue;
-    }
-    dq_entry = GNUNET_new (struct DelegationQueueEntry);
-    dq_entry->required_solutions = ntohl (sets->set_count);
-    dq_entry->parent_set = current_set;
-    GNUNET_CONTAINER_DLL_insert (current_set->queue_entries_head,
-                                 current_set->queue_entries_tail,
-                                 dq_entry);
-    // Each AND
-    for (uint32_t j = 0; j < ntohl (sets->set_count); j++)
-    {
-      ds_entry = GNUNET_new (struct DelegationSetQueueEntry);
-      if (NULL != current_set->attr_trailer)
-      {
-        if (0 == set[j].subject_attribute_len)
-        {
-          GNUNET_asprintf (&expanded_attr, "%s", current_set->attr_trailer);
-        }
-        else
-        {
-          GNUNET_asprintf (&expanded_attr,
-                           "%s.%s",
-                           set[j].subject_attribute,
-                           current_set->attr_trailer);
-        }
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Expanded to %s\n", 
expanded_attr);
-        ds_entry->unresolved_attribute_delegation = expanded_attr;
-      }
-      else
-      {
-        if (0 != set[j].subject_attribute_len)
-        {
-          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                      "Not Expanding %s\n",
-                      set[j].subject_attribute);
-          ds_entry->unresolved_attribute_delegation
-            = GNUNET_strdup (set[j].subject_attribute);
-        }
-      }
-
-      // Add a credential chain entry
-      ds_entry->delegation_chain_entry
-        = GNUNET_new (struct DelegationChainEntry);
-      ds_entry->delegation_chain_entry->subject_key = set[j].subject_key;
-      ds_entry->issuer_key = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
-      GNUNET_memcpy (ds_entry->issuer_key,
-                     &set[j].subject_key,
-                     sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey));
-      if (0 < set[j].subject_attribute_len)
-        ds_entry->delegation_chain_entry->subject_attribute
-          = GNUNET_strdup (set[j].subject_attribute);
-      ds_entry->delegation_chain_entry->issuer_key = *current_set->issuer_key;
-      ds_entry->delegation_chain_entry->issuer_attribute
-        = GNUNET_strdup (current_set->lookup_attribute);
-
-      ds_entry->parent_queue_entry = dq_entry;     // current_delegation;
-      GNUNET_CONTAINER_DLL_insert (dq_entry->set_entries_head,
-                                   dq_entry->set_entries_tail,
-                                   ds_entry);
-
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Checking for cred match\n");
-      /**
-       * Check if this delegation already matches one of our credentials
-       */
-      for (cred_pointer = vrh->cred_chain_head; cred_pointer != NULL;
-           cred_pointer = cred_pointer->next)
-      {
-        if (0
-            != GNUNET_memcmp (&set->subject_key,
-                              &cred_pointer->credential->issuer_key))
-          continue;
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                    "Checking if %s matches %s\n",
-                    ds_entry->unresolved_attribute_delegation,
-                    cred_pointer->credential->issuer_attribute);
-
-        if (0
-            != strcmp (ds_entry->unresolved_attribute_delegation,
-                       cred_pointer->credential->issuer_attribute))
-          continue;
-
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Found issuer\n");
-        cred_pointer->refcount++;
-        // Backtrack
-        for (tmp_set = ds_entry; NULL != tmp_set->parent_queue_entry;
-             tmp_set = tmp_set->parent_queue_entry->parent_set)
-        {
-          tmp_set->parent_queue_entry->required_solutions--;
-          if (NULL != tmp_set->delegation_chain_entry)
-          {
-            vrh->delegation_chain_size++;
-            GNUNET_CONTAINER_DLL_insert (vrh->delegation_chain_head,
-                                         vrh->delegation_chain_tail,
-                                         tmp_set->delegation_chain_entry);
-          }
-          if (0 < tmp_set->parent_queue_entry->required_solutions)
-            break;
-        }
-
-        if (NULL == tmp_set->parent_queue_entry)
-        {
-          GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "All solutions found\n");
-          // Found match
-          send_lookup_response (vrh);
-          return;
-        }
-        GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Not all solutions found yet.\n");
-        continue;
-      }
-      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                  "Building new lookup request from %s\n",
-                  ds_entry->unresolved_attribute_delegation);
-      // Continue with backward resolution
-      char
-        issuer_attribute_name[strlen 
(ds_entry->unresolved_attribute_delegation)
-                              + 1];
-      strcpy (issuer_attribute_name, 
ds_entry->unresolved_attribute_delegation);
-      char *next_attr = strtok (issuer_attribute_name, ".");
-      if (NULL == next_attr)
-      {
-        GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                    "Failed to parse next attribute\n");
-        continue;
-      }
-      GNUNET_asprintf (&lookup_attribute, "%s", next_attr);
-      GNUNET_asprintf (&ds_entry->lookup_attribute, "%s", next_attr);
-      if (strlen (next_attr)
-          == strlen (ds_entry->unresolved_attribute_delegation))
-      {
-        ds_entry->attr_trailer = NULL;
-      }
-      else
-      {
-        next_attr += strlen (next_attr) + 1;
-        ds_entry->attr_trailer = GNUNET_strdup (next_attr);
-      }
-
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                  "Looking up %s\n",
-                  ds_entry->lookup_attribute);
-      if (NULL != ds_entry->attr_trailer)
-        GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                    "%s still to go...\n",
-                    ds_entry->attr_trailer);
-
-      vrh->pending_lookups++;
-      ds_entry->handle = vrh;
-      ds_entry->lookup_request
-        = GNUNET_GNS_lookup (gns,
-                             lookup_attribute,
-                             ds_entry->issuer_key,    // issuer_key,
-                             GNUNET_GNSRECORD_TYPE_ATTRIBUTE,
-                             GNUNET_GNS_LO_DEFAULT,
-                             &backward_resolution,
-                             ds_entry);
-      GNUNET_free (lookup_attribute);
-    }
-  }
-
-  if (0 == vrh->pending_lookups)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "We are all out of attributes...\n");
-    send_lookup_response (vrh);
-    return;
-  }
-}
-
-
-/**
- * Result from GNS lookup.
- *
- * @param cls the closure (our client lookup handle)
- */
-static void
-delegation_chain_resolution_start (void *cls)
-{
-  struct VerifyRequestHandle *vrh = cls;
-  struct DelegationSetQueueEntry *ds_entry;
-  struct CredentialRecordEntry *cr_entry;
-
-  vrh->lookup_request = NULL;
-
-  if (0 == vrh->cred_chain_size)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No credentials found\n");
-    send_lookup_response (vrh);
-    return;
-  }
-
-  for (cr_entry = vrh->cred_chain_head; cr_entry != NULL;
-       cr_entry = cr_entry->next)
-  {
-    if (0
-        != GNUNET_memcmp (&cr_entry->credential->issuer_key,
-                          &vrh->issuer_key))
-      continue;
-    if (0
-        != strcmp (cr_entry->credential->issuer_attribute,
-                   vrh->issuer_attribute))
-      continue;
-    cr_entry->refcount++;
-    // Found match prematurely
-    send_lookup_response (vrh);
-    return;
-  }
-
-  /**
-   * Check for attributes from the issuer and follow the chain
-   * till you get the required subject's attributes
-   */
-  char issuer_attribute_name[strlen (vrh->issuer_attribute) + 1];
-  strcpy (issuer_attribute_name, vrh->issuer_attribute);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Looking up %s\n",
-              issuer_attribute_name);
-  ds_entry = GNUNET_new (struct DelegationSetQueueEntry);
-  ds_entry->issuer_key = GNUNET_new (struct GNUNET_CRYPTO_EcdsaPublicKey);
-  GNUNET_memcpy (ds_entry->issuer_key,
-                 &vrh->issuer_key,
-                 sizeof(struct GNUNET_CRYPTO_EcdsaPublicKey));
-  ds_entry->issuer_attribute = GNUNET_strdup (vrh->issuer_attribute);
-  ds_entry->handle = vrh;
-  ds_entry->lookup_attribute = GNUNET_strdup (vrh->issuer_attribute);
-  vrh->root_set = ds_entry;
-  vrh->pending_lookups = 1;
-  // Start with backward resolution
-  ds_entry->lookup_request = GNUNET_GNS_lookup (gns,
-                                                issuer_attribute_name,
-                                                &vrh->issuer_key, // 
issuer_key,
-                                                
GNUNET_GNSRECORD_TYPE_ATTRIBUTE,
-                                                GNUNET_GNS_LO_DEFAULT,
-                                                &backward_resolution,
-                                                ds_entry);
-}
-
-static int
-check_verify (void *cls, const struct VerifyMessage *v_msg)
-{
-  size_t msg_size;
-  const char *attr;
-
-  msg_size = ntohs (v_msg->header.size);
-  if (msg_size < sizeof(struct VerifyMessage))
-  {
-    GNUNET_break (0);
-    return GNUNET_SYSERR;
-  }
-  if (ntohs (v_msg->issuer_attribute_len) > GNUNET_CREDENTIAL_MAX_LENGTH)
-  {
-    GNUNET_break (0);
-    return GNUNET_SYSERR;
-  }
-  attr = (const char *) &v_msg[1];
-
-  if (strlen (attr) > GNUNET_CREDENTIAL_MAX_LENGTH)
-  {
-    GNUNET_break (0);
-    return GNUNET_SYSERR;
-  }
-  return GNUNET_OK;
-}
-
-static void
-handle_verify (void *cls, const struct VerifyMessage *v_msg)
-{
-  struct VerifyRequestHandle *vrh;
-  struct GNUNET_SERVICE_Client *client = cls;
-  struct CredentialRecordEntry *cr_entry;
-  uint32_t credentials_count;
-  uint32_t credential_data_size;
-  char attr[GNUNET_CREDENTIAL_MAX_LENGTH + 1];
-  char issuer_attribute[GNUNET_CREDENTIAL_MAX_LENGTH + 1];
-  char *attrptr = attr;
-  char *credential_data;
-  const char *utf_in;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received VERIFY message\n");
-  utf_in = (const char *) &v_msg[1];
-  GNUNET_STRINGS_utf8_tolower (utf_in, attrptr);
-  GNUNET_memcpy (issuer_attribute, attr, ntohs (v_msg->issuer_attribute_len));
-  issuer_attribute[ntohs (v_msg->issuer_attribute_len)] = '\0';
-  vrh = GNUNET_new (struct VerifyRequestHandle);
-  GNUNET_CONTAINER_DLL_insert (vrh_head, vrh_tail, vrh);
-  vrh->client = client;
-  vrh->request_id = v_msg->id;
-  vrh->issuer_key = v_msg->issuer_key;
-  vrh->subject_key = v_msg->subject_key;
-  vrh->issuer_attribute = GNUNET_strdup (issuer_attribute);
-  GNUNET_SERVICE_client_continue (vrh->client);
-  if (0 == strlen (issuer_attribute))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No issuer attribute provided!\n");
-    send_lookup_response (vrh);
-    return;
-  }
-  /**
-   * First, collect credentials
-   * TODO: cleanup!
-   */
-  credentials_count = ntohl (v_msg->c_count);
-  credential_data_size = ntohs (v_msg->header.size)
-                         - sizeof(struct VerifyMessage)
-                         - ntohs (v_msg->issuer_attribute_len) - 1;
-  struct GNUNET_CREDENTIAL_Credential credentials[credentials_count];
-  memset (credentials,
-          0,
-          sizeof(struct GNUNET_CREDENTIAL_Credential) * credentials_count);
-  credential_data = (char *) &v_msg[1] + ntohs (v_msg->issuer_attribute_len)
-                    + 1;
-  if (GNUNET_OK
-      != GNUNET_CREDENTIAL_credentials_deserialize (credential_data_size,
-                                                    credential_data,
-                                                    credentials_count,
-                                                    credentials))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Cannot deserialize credentials!\n");
-    send_lookup_response (vrh);
-    return;
-  }
-
-  for (uint32_t i = 0; i < credentials_count; i++)
-  {
-    cr_entry = GNUNET_new (struct CredentialRecordEntry);
-    cr_entry->credential
-      = GNUNET_malloc (sizeof(struct GNUNET_CREDENTIAL_Credential)
-                       + credentials[i].issuer_attribute_len + 1);
-    GNUNET_memcpy (cr_entry->credential,
-                   &credentials[i],
-                   sizeof(struct GNUNET_CREDENTIAL_Credential));
-    GNUNET_memcpy (&cr_entry->credential[1],
-                   credentials[i].issuer_attribute,
-                   credentials[i].issuer_attribute_len);
-    cr_entry->credential->issuer_attribute_len
-      = credentials[i].issuer_attribute_len;
-    cr_entry->credential->issuer_attribute = (char *) &cr_entry->credential[1];
-    GNUNET_CONTAINER_DLL_insert_tail (vrh->cred_chain_head,
-                                      vrh->cred_chain_tail,
-                                      cr_entry);
-    vrh->cred_chain_size++;
-  }
-
-  delegation_chain_resolution_start (vrh);
-}
-
-static void
-handle_cred_collection_error_cb (void *cls)
-{
-  struct VerifyRequestHandle *vrh = cls;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Got disconnected from namestore database.\n");
-  vrh->cred_collection_iter = NULL;
-  send_lookup_response (vrh);
-}
-
-static void
-collect_next (void *cls)
-{
-  struct VerifyRequestHandle *vrh = cls;
-
-  vrh->collect_next_task = NULL;
-  GNUNET_assert (NULL != vrh->cred_collection_iter);
-  GNUNET_NAMESTORE_zone_iterator_next (vrh->cred_collection_iter, 1);
-}
-
-
-static void
-handle_cred_collection_cb (void *cls,
-                           const struct GNUNET_CRYPTO_EcdsaPrivateKey *key,
-                           const char *label,
-                           unsigned int rd_count,
-                           const struct GNUNET_GNSRECORD_Data *rd)
-{
-  struct VerifyRequestHandle *vrh = cls;
-  struct GNUNET_CREDENTIAL_Credential *crd;
-  struct CredentialRecordEntry *cr_entry;
-  int cred_record_count;
-
-  cred_record_count = 0;
-  for (uint32_t i = 0; i < rd_count; i++)
-  {
-    if (GNUNET_GNSRECORD_TYPE_CREDENTIAL != rd[i].record_type)
-      continue;
-    cred_record_count++;
-    crd
-      = GNUNET_CREDENTIAL_credential_deserialize (rd[i].data, rd[i].data_size);
-    if (NULL == crd)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_WARNING, "Invalid credential found\n");
-      continue;
-    }
-    cr_entry = GNUNET_new (struct CredentialRecordEntry);
-    cr_entry->credential = crd;
-    GNUNET_CONTAINER_DLL_insert_tail (vrh->cred_chain_head,
-                                      vrh->cred_chain_tail,
-                                      cr_entry);
-    vrh->cred_chain_size++;
-  }
-  vrh->collect_next_task = GNUNET_SCHEDULER_add_now (&collect_next, vrh);
-}
-
-static void
-handle_cred_collection_finished_cb (void *cls)
-{
-  struct VerifyRequestHandle *vrh = cls;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Done collecting credentials.\n");
-  vrh->cred_collection_iter = NULL;
-  delegation_chain_resolution_start (vrh);
-}
-
-static void
-handle_collect (void *cls, const struct CollectMessage *c_msg)
-{
-  char attr[GNUNET_CREDENTIAL_MAX_LENGTH + 1];
-  char issuer_attribute[GNUNET_CREDENTIAL_MAX_LENGTH + 1];
-  struct VerifyRequestHandle *vrh;
-  struct GNUNET_SERVICE_Client *client = cls;
-  char *attrptr = attr;
-  const char *utf_in;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Received COLLECT message\n");
-
-  utf_in = (const char *) &c_msg[1];
-  GNUNET_STRINGS_utf8_tolower (utf_in, attrptr);
-
-  GNUNET_memcpy (issuer_attribute, attr, ntohs (c_msg->issuer_attribute_len));
-  issuer_attribute[ntohs (c_msg->issuer_attribute_len)] = '\0';
-  vrh = GNUNET_new (struct VerifyRequestHandle);
-  GNUNET_CONTAINER_DLL_insert (vrh_head, vrh_tail, vrh);
-  vrh->client = client;
-  vrh->request_id = c_msg->id;
-  vrh->issuer_key = c_msg->issuer_key;
-  GNUNET_CRYPTO_ecdsa_key_get_public (&c_msg->subject_key, &vrh->subject_key);
-  vrh->issuer_attribute = GNUNET_strdup (issuer_attribute);
-
-  if (0 == strlen (issuer_attribute))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "No issuer attribute provided!\n");
-    send_lookup_response (vrh);
-    return;
-  }
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Getting credentials for subject\n");
-  /**
-   * First, get attribute from subject
-   */
-  vrh->cred_collection_iter = GNUNET_NAMESTORE_zone_iteration_start (
-    namestore,
-    &c_msg->subject_key,
-    &handle_cred_collection_error_cb,
-    vrh,
-    &handle_cred_collection_cb,
-    vrh,
-    &handle_cred_collection_finished_cb,
-    vrh);
-  GNUNET_SERVICE_client_continue (vrh->client);
-}
-
-
-static int
-check_collect (void *cls, const struct CollectMessage *c_msg)
-{
-  size_t msg_size;
-  const char *attr;
-
-  msg_size = ntohs (c_msg->header.size);
-  if (msg_size < sizeof(struct CollectMessage))
-  {
-    GNUNET_break (0);
-    return GNUNET_SYSERR;
-  }
-  if (ntohs (c_msg->issuer_attribute_len) > GNUNET_CREDENTIAL_MAX_LENGTH)
-  {
-    GNUNET_break (0);
-    return GNUNET_SYSERR;
-  }
-  attr = (const char *) &c_msg[1];
-
-  if (('\0' != attr[msg_size - sizeof(struct CollectMessage) - 1])
-      || (strlen (attr) > GNUNET_CREDENTIAL_MAX_LENGTH))
-  {
-    GNUNET_break (0);
-    return GNUNET_SYSERR;
-  }
-  return GNUNET_OK;
-}
-
-static void
-client_disconnect_cb (void *cls,
-                      struct GNUNET_SERVICE_Client *client,
-                      void *app_ctx)
-{
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Client %p disconnected\n", client);
-}
-
-static void *
-client_connect_cb (void *cls,
-                   struct GNUNET_SERVICE_Client *client,
-                   struct GNUNET_MQ_Handle *mq)
-{
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Client %p connected\n", client);
-  return client;
-}
-
-/**
- * Process Credential requests.
- *
- * @param cls closure
- * @param c configuration to use
- * @param handle service handle
- */
-static void
-run (void *cls,
-     const struct GNUNET_CONFIGURATION_Handle *c,
-     struct GNUNET_SERVICE_Handle *handle)
-{
-  gns = GNUNET_GNS_connect (c);
-  if (NULL == gns)
-  {
-    fprintf (stderr, _ ("Failed to connect to GNS\n"));
-  }
-  namestore = GNUNET_NAMESTORE_connect (c);
-  if (NULL == namestore)
-  {
-    fprintf (stderr, _ ("Failed to connect to namestore\n"));
-  }
-
-  statistics = GNUNET_STATISTICS_create ("credential", c);
-  GNUNET_SCHEDULER_add_shutdown (&shutdown_task, NULL);
-}
-
-
-/**
- * Define "main" method using service macro
- */
-GNUNET_SERVICE_MAIN (
-  "credential",
-  GNUNET_SERVICE_OPTION_NONE,
-  &run,
-  &client_connect_cb,
-  &client_disconnect_cb,
-  NULL,
-  GNUNET_MQ_hd_var_size (verify,
-                         GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY,
-                         struct VerifyMessage,
-                         NULL),
-  GNUNET_MQ_hd_var_size (collect,
-                         GNUNET_MESSAGE_TYPE_CREDENTIAL_COLLECT,
-                         struct CollectMessage,
-                         NULL),
-  GNUNET_MQ_handler_end ());
-
-/* end of gnunet-service-credential.c */
diff --git a/src/credential/plugin_gnsrecord_credential.c 
b/src/credential/plugin_gnsrecord_credential.c
deleted file mode 100644
index 269e558c2..000000000
--- a/src/credential/plugin_gnsrecord_credential.c
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
-     This file is part of GNUnet
-     Copyright (C) 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
- */
-
-/**
- * @file credential/plugin_gnsrecord_credential.c
- * @brief gnsrecord plugin to provide the API for CREDENTIAL records
- * @author Martin Schanzenbach
- */
-#include "platform.h"
-
-#include "gnunet_util_lib.h"
-
-#include "credential_misc.h"
-#include "credential_serialization.h"
-#include "gnunet_credential_service.h"
-#include "gnunet_gnsrecord_lib.h"
-#include "gnunet_gnsrecord_plugin.h"
-#include "gnunet_signatures.h"
-/**
- * Convert the 'value' of a record to a string.
- *
- * @param cls closure, unused
- * @param type type of the record
- * @param data value in binary encoding
- * @param data_size number of bytes in @a data
- * @return NULL on error, otherwise human-readable representation of the value
- */
-static char *
-credential_value_to_string (void *cls, uint32_t type, const void *data,
-                            size_t data_size)
-{
-  const char *cdata;
-
-  switch (type)
-  {
-  case GNUNET_GNSRECORD_TYPE_ATTRIBUTE: {
-      struct GNUNET_CREDENTIAL_DelegationRecord sets;
-      char *attr_str;
-      char *subject_pkey;
-      char *tmp_str;
-      int i;
-      if (data_size < sizeof(struct GNUNET_CREDENTIAL_DelegationRecord))
-        return NULL; /* malformed */
-      GNUNET_memcpy (&sets, data, sizeof(sets));
-      cdata = data;
-      struct GNUNET_CREDENTIAL_DelegationSet set[ntohl (sets.set_count)];
-      if (GNUNET_OK != GNUNET_CREDENTIAL_delegation_set_deserialize (
-            GNUNET_ntohll (sets.data_size), &cdata[sizeof(sets)],
-            ntohl (sets.set_count), set))
-        return NULL;
-
-      for (i = 0; i < ntohl (sets.set_count); i++)
-      {
-        subject_pkey =
-          GNUNET_CRYPTO_ecdsa_public_key_to_string (&set[i].subject_key);
-        GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "%d len attr\n",
-                    set[i].subject_attribute_len);
-        if (0 == set[i].subject_attribute_len)
-        {
-          if (0 == i)
-          {
-            GNUNET_asprintf (&attr_str, "%s", subject_pkey);
-          }
-          else
-          {
-            GNUNET_asprintf (&tmp_str, "%s,%s", attr_str, subject_pkey);
-            GNUNET_free (attr_str);
-            attr_str = tmp_str;
-          }
-        }
-        else
-        {
-          if (0 == i)
-          {
-            GNUNET_asprintf (&attr_str, "%s %s", subject_pkey,
-                             set[i].subject_attribute);
-          }
-          else
-          {
-            GNUNET_asprintf (&tmp_str, "%s,%s %s", attr_str, subject_pkey,
-                             set[i].subject_attribute);
-            GNUNET_free (attr_str);
-            attr_str = tmp_str;
-          }
-        }
-        GNUNET_free (subject_pkey);
-      }
-      return attr_str;
-    }
-
-  case GNUNET_GNSRECORD_TYPE_CREDENTIAL: {
-      struct GNUNET_CREDENTIAL_Credential *cred;
-      char *cred_str;
-
-      cred = GNUNET_CREDENTIAL_credential_deserialize (data, data_size);
-      cred_str = GNUNET_CREDENTIAL_credential_to_string (cred);
-      GNUNET_free (cred);
-      return cred_str;
-    }
-
-  case GNUNET_GNSRECORD_TYPE_POLICY: {
-      return GNUNET_strndup (data, data_size);
-    }
-
-  default:
-    return NULL;
-  }
-}
-
-
-/**
- * Convert human-readable version of a 'value' of a record to the binary
- * representation.
- *
- * @param cls closure, unused
- * @param type type of the record
- * @param s human-readable string
- * @param data set to value in binary encoding (will be allocated)
- * @param data_size set to number of bytes in @a data
- * @return #GNUNET_OK on success
- */
-static int
-credential_string_to_value (void *cls, uint32_t type, const char *s,
-                            void **data, size_t *data_size)
-{
-  if (NULL == s)
-    return GNUNET_SYSERR;
-  switch (type)
-  {
-  case GNUNET_GNSRECORD_TYPE_ATTRIBUTE: {
-      struct GNUNET_CREDENTIAL_DelegationRecord *sets;
-      char attr_str[253 + 1];
-      char subject_pkey[52 + 1];
-      char *token;
-      char *tmp_str;
-      int matches = 0;
-      int entries;
-      size_t tmp_data_size;
-      int i;
-
-      tmp_str = GNUNET_strdup (s);
-      token = strtok (tmp_str, ",");
-      entries = 0;
-      tmp_data_size = 0;
-      *data_size = sizeof(struct GNUNET_CREDENTIAL_DelegationRecord);
-      while (NULL != token)
-      {
-        matches = sscanf (token, "%s %s", subject_pkey, attr_str);
-        if (0 == matches)
-        {
-          GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                      _ ("Unable to parse ATTR record string `%s'\n"), s);
-          GNUNET_free (tmp_str);
-          return GNUNET_SYSERR;
-        }
-        if (1 == matches)
-        {
-          tmp_data_size += sizeof(struct 
GNUNET_CREDENTIAL_DelegationRecordSet);
-        }
-        else if (2 == matches)
-        {
-          tmp_data_size += sizeof(struct GNUNET_CREDENTIAL_DelegationRecordSet)
-                           + strlen (attr_str) + 1;
-        }
-        entries++;
-        token = strtok (NULL, ",");
-      }
-      GNUNET_free (tmp_str);
-      tmp_str = GNUNET_strdup (s);
-      token = strtok (tmp_str, ",");
-      if (NULL == token)
-      {
-        GNUNET_free (tmp_str);
-        GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Malformed string %s\n", s);
-        return GNUNET_SYSERR;
-      }
-      struct GNUNET_CREDENTIAL_DelegationSet set[entries];
-      memset (set, 0, sizeof(struct GNUNET_CREDENTIAL_DelegationSet) * 
entries);
-      for (i = 0; i < entries; i++)
-      {
-        matches = sscanf (token, "%s %s", subject_pkey, attr_str);
-        GNUNET_CRYPTO_ecdsa_public_key_from_string (
-          subject_pkey, strlen (subject_pkey), &set[i].subject_key);
-        if (2 == matches)
-        {
-          set[i].subject_attribute_len = strlen (attr_str) + 1;
-          set[i].subject_attribute = GNUNET_strdup (attr_str);
-        }
-        token = strtok (NULL, ",");
-      }
-      tmp_data_size = GNUNET_CREDENTIAL_delegation_set_get_size (entries, set);
-
-      if (-1 == tmp_data_size)
-      {
-        GNUNET_free (tmp_str);
-        return GNUNET_SYSERR;
-      }
-      *data_size += tmp_data_size;
-      *data = sets = GNUNET_malloc (*data_size);
-      GNUNET_CREDENTIAL_delegation_set_serialize (entries, set, tmp_data_size,
-                                                  (char *) &sets[1]);
-      for (i = 0; i < entries; i++)
-      {
-        if (0 != set[i].subject_attribute_len)
-          GNUNET_free ((char *) set[i].subject_attribute);
-      }
-      sets->set_count = htonl (entries);
-      sets->data_size = GNUNET_htonll (tmp_data_size);
-
-      GNUNET_free (tmp_str);
-      return GNUNET_OK;
-    }
-
-  case GNUNET_GNSRECORD_TYPE_CREDENTIAL: {
-      struct GNUNET_CREDENTIAL_Credential *cred;
-      cred = GNUNET_CREDENTIAL_credential_from_string (s);
-
-      *data_size = GNUNET_CREDENTIAL_credential_serialize (cred,
-                                                           (char **) data);
-      return GNUNET_OK;
-    }
-
-  case GNUNET_GNSRECORD_TYPE_POLICY: {
-      *data_size = strlen (s);
-      *data = GNUNET_strdup (s);
-      return GNUNET_OK;
-    }
-
-  default:
-    return GNUNET_SYSERR;
-  }
-}
-
-
-/**
- * Mapping of record type numbers to human-readable
- * record type names.
- */
-static struct
-{
-  const char *name;
-  uint32_t number;
-} name_map[] = { { "CRED", GNUNET_GNSRECORD_TYPE_CREDENTIAL },
-                 { "ATTR", GNUNET_GNSRECORD_TYPE_ATTRIBUTE },
-                 { "POLICY", GNUNET_GNSRECORD_TYPE_POLICY },
-                 { NULL, UINT32_MAX } };
-
-
-/**
- * Convert a type name (i.e. "AAAA") to the corresponding number.
- *
- * @param cls closure, unused
- * @param gns_typename name to convert
- * @return corresponding number, UINT32_MAX on error
- */
-static uint32_t
-credential_typename_to_number (void *cls, const char *gns_typename)
-{
-  unsigned int i;
-
-  i = 0;
-  while ((name_map[i].name != NULL) &&
-         (0 != strcasecmp (gns_typename, name_map[i].name)))
-    i++;
-  return name_map[i].number;
-}
-
-
-/**
- * Convert a type number (i.e. 1) to the corresponding type string (i.e. "A")
- *
- * @param cls closure, unused
- * @param type number of a type to convert
- * @return corresponding typestring, NULL on error
- */
-static const char *
-credential_number_to_typename (void *cls, uint32_t type)
-{
-  unsigned int i;
-
-  i = 0;
-  while ((name_map[i].name != NULL) && (type != name_map[i].number))
-    i++;
-  return name_map[i].name;
-}
-
-
-/**
- * Entry point for the plugin.
- *
- * @param cls NULL
- * @return the exported block API
- */
-void *
-libgnunet_plugin_gnsrecord_credential_init (void *cls)
-{
-  struct GNUNET_GNSRECORD_PluginFunctions *api;
-
-  api = GNUNET_new (struct GNUNET_GNSRECORD_PluginFunctions);
-  api->value_to_string = &credential_value_to_string;
-  api->string_to_value = &credential_string_to_value;
-  api->typename_to_number = &credential_typename_to_number;
-  api->number_to_typename = &credential_number_to_typename;
-  return api;
-}
-
-
-/**
- * Exit point from the plugin.
- *
- * @param cls the return value from #libgnunet_plugin_block_test_init
- * @return NULL
- */
-void *
-libgnunet_plugin_gnsrecord_credential_done (void *cls)
-{
-  struct GNUNET_GNSRECORD_PluginFunctions *api = cls;
-
-  GNUNET_free (api);
-  return NULL;
-}
-
-/* end of plugin_gnsrecord_credential.c */
diff --git a/src/credential/plugin_rest_credential.c 
b/src/credential/plugin_rest_credential.c
deleted file mode 100644
index 513ddfff9..000000000
--- a/src/credential/plugin_rest_credential.c
+++ /dev/null
@@ -1,1174 +0,0 @@
-/*
-   This file is part of GNUnet.
-   Copyright (C) 2012-2016 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 credential/plugin_rest_credential.c
- * @brief GNUnet CREDENTIAL REST plugin
- *
- */
-
-#include "platform.h"
-#include "gnunet_rest_plugin.h"
-#include <gnunet_identity_service.h>
-#include <gnunet_gnsrecord_lib.h>
-#include <gnunet_namestore_service.h>
-#include <gnunet_credential_service.h>
-#include <gnunet_rest_lib.h>
-#include <gnunet_jsonapi_lib.h>
-#include <gnunet_jsonapi_util.h>
-#include <jansson.h>
-
-#define GNUNET_REST_API_NS_CREDENTIAL "/credential"
-
-#define GNUNET_REST_API_NS_CREDENTIAL_ISSUE "/credential/issue"
-
-#define GNUNET_REST_API_NS_CREDENTIAL_VERIFY "/credential/verify"
-
-#define GNUNET_REST_API_NS_CREDENTIAL_COLLECT "/credential/collect"
-
-#define GNUNET_REST_JSONAPI_CREDENTIAL_EXPIRATION "expiration"
-
-#define GNUNET_REST_JSONAPI_CREDENTIAL_SUBJECT_KEY "subject_key"
-
-#define GNUNET_REST_JSONAPI_CREDENTIAL_SUBJECT_EGO "subject"
-
-#define GNUNET_REST_JSONAPI_CREDENTIAL "credential"
-
-#define GNUNET_REST_JSONAPI_CREDENTIAL_TYPEINFO "credential"
-
-#define GNUNET_REST_JSONAPI_DELEGATIONS "delegations"
-
-#define GNUNET_REST_JSONAPI_CREDENTIAL_ISSUER_ATTR "attribute"
-
-#define GNUNET_REST_JSONAPI_CREDENTIAL_SUBJECT_ATTR "credential"
-
-/**
- * @brief struct returned by the initialization function of the plugin
- */
-struct Plugin
-{
-  const struct GNUNET_CONFIGURATION_Handle *cfg;
-};
-
-const struct GNUNET_CONFIGURATION_Handle *cfg;
-
-struct RequestHandle
-{
-  /**
-   * Handle to Credential service.
-   */
-  struct GNUNET_CREDENTIAL_Handle *credential;
-
-  /**
-   * Handle to lookup request
-   */
-  struct GNUNET_CREDENTIAL_Request *verify_request;
-
-  /**
-   * Handle to issue request
-   */
-  struct GNUNET_CREDENTIAL_Request *issue_request;
-
-  /**
-   * Handle to identity
-   */
-  struct GNUNET_IDENTITY_Handle *identity;
-
-  /**
-   * Handle to identity operation
-   */
-  struct GNUNET_IDENTITY_Operation *id_op;
-
-  /**
-   * Handle to ego lookup
-   */
-  struct GNUNET_IDENTITY_EgoLookup *ego_lookup;
-
-  /**
-   * Handle to rest request
-   */
-  struct GNUNET_REST_RequestHandle *rest_handle;
-
-  /**
-   * ID of a task associated with the resolution process.
-   */
-  struct GNUNET_SCHEDULER_Task *timeout_task;
-
-  /**
-   * The root of the received JSON or NULL
-   */
-  json_t *json_root;
-
-  /**
-   * The plugin result processor
-   */
-  GNUNET_REST_ResultProcessor proc;
-
-  /**
-   * The closure of the result processor
-   */
-  void *proc_cls;
-
-  /**
-   * The issuer attribute to verify
-   */
-  char *issuer_attr;
-
-  /**
-   * The subject attribute
-   */
-  char *subject_attr;
-
-  /**
-   * The public key of the issuer
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey issuer_key;
-
-  /**
-   * The public key of the subject
-   */
-  struct GNUNET_CRYPTO_EcdsaPublicKey subject_key;
-
-  /**
-   * HTTP response code
-   */
-  int response_code;
-
-  /**
-   * Timeout
-   */
-  struct GNUNET_TIME_Relative timeout;
-};
-
-
-/**
- * Cleanup lookup handle.
- *
- * @param handle Handle to clean up
- */
-static void
-cleanup_handle (struct RequestHandle *handle)
-{
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Cleaning up\n");
-  if (NULL != handle->json_root)
-    json_decref (handle->json_root);
-
-  if (NULL != handle->issuer_attr)
-    GNUNET_free (handle->issuer_attr);
-  if (NULL != handle->subject_attr)
-    GNUNET_free (handle->subject_attr);
-  if (NULL != handle->verify_request)
-    GNUNET_CREDENTIAL_request_cancel (handle->verify_request);
-  if (NULL != handle->credential)
-    GNUNET_CREDENTIAL_disconnect (handle->credential);
-  if (NULL != handle->id_op)
-    GNUNET_IDENTITY_cancel (handle->id_op);
-  if (NULL != handle->ego_lookup)
-    GNUNET_IDENTITY_ego_lookup_cancel (handle->ego_lookup);
-  if (NULL != handle->identity)
-    GNUNET_IDENTITY_disconnect (handle->identity);
-  if (NULL != handle->timeout_task)
-  {
-    GNUNET_SCHEDULER_cancel (handle->timeout_task);
-  }
-  GNUNET_free (handle);
-}
-
-
-static void
-do_error (void *cls)
-{
-  struct RequestHandle *handle = cls;
-  struct MHD_Response *resp;
-
-  resp = GNUNET_REST_create_response (NULL);
-  handle->proc (handle->proc_cls, resp, handle->response_code);
-  cleanup_handle (handle);
-}
-
-/**
- * Attribute delegation to JSON
- *
- * @param delegation_chain_entry the DSE
- * @return JSON, NULL if failed
- */
-static json_t*
-attribute_delegation_to_json (struct
-                              GNUNET_CREDENTIAL_Delegation *
-                              delegation_chain_entry)
-{
-  char *subject;
-  char *issuer;
-  json_t *attr_obj;
-
-  issuer = GNUNET_CRYPTO_ecdsa_public_key_to_string (
-    &delegation_chain_entry->issuer_key);
-  if (NULL == issuer)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Issuer in delegation malformed\n");
-    return NULL;
-  }
-  subject = GNUNET_CRYPTO_ecdsa_public_key_to_string (
-    &delegation_chain_entry->subject_key);
-  if (NULL == subject)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Subject in credential malformed\n");
-    GNUNET_free (issuer);
-    return NULL;
-  }
-  attr_obj = json_object ();
-
-  json_object_set_new (attr_obj, "issuer", json_string (issuer));
-  json_object_set_new (attr_obj, "issuer_attribute",
-                       json_string (delegation_chain_entry->issuer_attribute));
-
-  json_object_set_new (attr_obj, "subject", json_string (subject));
-  if (0 < delegation_chain_entry->subject_attribute_len)
-  {
-    json_object_set_new (attr_obj, "subject_attribute",
-                         json_string (
-                           delegation_chain_entry->subject_attribute));
-  }
-  GNUNET_free (issuer);
-  GNUNET_free (subject);
-  return attr_obj;
-}
-
-/**
- * JSONAPI resource to Credential
- *
- * @param res the JSONAPI resource
- * @return the resulting credential, NULL if failed
- */
-static struct GNUNET_CREDENTIAL_Credential*
-json_to_credential (json_t *res)
-{
-  struct GNUNET_CREDENTIAL_Credential *cred;
-  json_t *tmp;
-  const char *attribute;
-  const char *signature;
-  char *sig;
-
-  tmp = json_object_get (res, "attribute");
-  if (0 == json_is_string (tmp))
-  {
-    return NULL;
-  }
-  attribute = json_string_value (tmp);
-  cred = GNUNET_malloc (sizeof(struct GNUNET_CREDENTIAL_Credential)
-                        + strlen (attribute));
-  cred->issuer_attribute = attribute;
-  cred->issuer_attribute_len = strlen (attribute);
-  tmp = json_object_get (res, "issuer");
-  if (0 == json_is_string (tmp))
-  {
-    GNUNET_free (cred);
-    return NULL;
-  }
-
-  GNUNET_CRYPTO_ecdsa_public_key_from_string (json_string_value (tmp),
-                                              strlen (json_string_value (tmp)),
-                                              &cred->issuer_key);
-  tmp = json_object_get (res, "subject");
-  if (0 == json_is_string (tmp))
-  {
-    GNUNET_free (cred);
-    return NULL;
-  }
-  GNUNET_CRYPTO_ecdsa_public_key_from_string (json_string_value (tmp),
-                                              strlen (json_string_value (tmp)),
-                                              &cred->subject_key);
-
-  tmp = json_object_get (res, "signature");
-  if (0 == json_is_string (tmp))
-  {
-    GNUNET_free (cred);
-    return NULL;
-  }
-  signature = json_string_value (tmp);
-  GNUNET_STRINGS_base64_decode (signature,
-                                strlen (signature),
-                                (char**) &sig);
-  GNUNET_memcpy (&cred->signature,
-                 sig,
-                 sizeof(struct GNUNET_CRYPTO_EcdsaSignature));
-  GNUNET_free (sig);
-
-  tmp = json_object_get (res, "expiration");
-  if (0 == json_is_integer (tmp))
-  {
-    GNUNET_free (cred);
-    return NULL;
-  }
-  cred->expiration.abs_value_us = json_integer_value (tmp);
-  return cred;
-}
-
-
-/**
- * Credential to JSON
- *
- * @param cred the credential
- * @return the resulting json, NULL if failed
- */
-static json_t*
-credential_to_json (struct GNUNET_CREDENTIAL_Credential *cred)
-{
-  char *issuer;
-  char *subject;
-  char *signature;
-  char attribute[cred->issuer_attribute_len + 1];
-  json_t *cred_obj;
-
-  issuer = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred->issuer_key);
-  if (NULL == issuer)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Issuer in credential malformed\n");
-    return NULL;
-  }
-  subject = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred->subject_key);
-  if (NULL == subject)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Subject in credential malformed\n");
-    GNUNET_free (issuer);
-    return NULL;
-  }
-  GNUNET_STRINGS_base64_encode ((char*) &cred->signature,
-                                sizeof(struct GNUNET_CRYPTO_EcdsaSignature),
-                                &signature);
-  GNUNET_memcpy (attribute,
-                 cred->issuer_attribute,
-                 cred->issuer_attribute_len);
-  attribute[cred->issuer_attribute_len] = '\0';
-  cred_obj = json_object ();
-  json_object_set_new (cred_obj, "issuer", json_string (issuer));
-  json_object_set_new (cred_obj, "subject", json_string (subject));
-  json_object_set_new (cred_obj, "attribute", json_string (attribute));
-  json_object_set_new (cred_obj, "signature", json_string (signature));
-  json_object_set_new (cred_obj, "expiration", json_integer (
-                         cred->expiration.abs_value_us));
-  GNUNET_free (issuer);
-  GNUNET_free (subject);
-  GNUNET_free (signature);
-  return cred_obj;
-}
-
-static void
-handle_collect_response (void *cls,
-                         unsigned int d_count,
-                         struct GNUNET_CREDENTIAL_Delegation *delegation_chain,
-                         unsigned int c_count,
-                         struct GNUNET_CREDENTIAL_Credential *cred)
-{
-  struct RequestHandle *handle = cls;
-  struct MHD_Response *resp;
-  struct GNUNET_JSONAPI_Document *json_document;
-  struct GNUNET_JSONAPI_Resource *json_resource;
-  json_t *cred_obj;
-  json_t *cred_array;
-  char *result;
-  char *issuer;
-  char *id;
-  uint32_t i;
-
-  handle->verify_request = NULL;
-  if (NULL == cred)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Verify failed.\n");
-    handle->response_code = MHD_HTTP_NOT_FOUND;
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  issuer = GNUNET_CRYPTO_ecdsa_public_key_to_string (&handle->issuer_key);
-  if (NULL == issuer)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Issuer in delegation malformed\n");
-    return;
-  }
-  GNUNET_asprintf (&id,
-                   "%s.%s",
-                   issuer,
-                   handle->issuer_attr);
-  GNUNET_free (issuer);
-  json_document = GNUNET_JSONAPI_document_new ();
-  json_resource = GNUNET_JSONAPI_resource_new (
-    GNUNET_REST_JSONAPI_CREDENTIAL_TYPEINFO,
-    id);
-  GNUNET_free (id);
-  cred_array = json_array ();
-  for (i = 0; i < c_count; i++)
-  {
-    cred_obj = credential_to_json (&cred[i]);
-    json_array_append_new (cred_array, cred_obj);
-  }
-  GNUNET_JSONAPI_resource_add_attr (json_resource,
-                                    GNUNET_REST_JSONAPI_CREDENTIAL,
-                                    cred_array);
-  GNUNET_JSONAPI_document_resource_add (json_document, json_resource);
-  GNUNET_JSONAPI_document_serialize (json_document, &result);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Result %s\n",
-              result);
-  json_decref (cred_array);
-  GNUNET_JSONAPI_document_delete (json_document);
-  resp = GNUNET_REST_create_response (result);
-  GNUNET_free (result);
-  handle->proc (handle->proc_cls, resp, MHD_HTTP_OK);
-  cleanup_handle (handle);
-}
-
-static void
-subject_ego_lookup (void *cls,
-                    const struct GNUNET_IDENTITY_Ego *ego)
-{
-  struct RequestHandle *handle = cls;
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *sub_key;
-
-  handle->ego_lookup = NULL;
-
-  if (NULL == ego)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Subject not found\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  sub_key = GNUNET_IDENTITY_ego_get_private_key (ego);
-  handle->verify_request = GNUNET_CREDENTIAL_collect (handle->credential,
-                                                      &handle->issuer_key,
-                                                      handle->issuer_attr,
-                                                      sub_key,
-                                                      &handle_collect_response,
-                                                      handle);
-}
-
-
-
-static void
-handle_verify_response (void *cls,
-                        unsigned int d_count,
-                        struct GNUNET_CREDENTIAL_Delegation *delegation_chain,
-                        unsigned int c_count,
-                        struct GNUNET_CREDENTIAL_Credential *cred)
-{
-  struct RequestHandle *handle = cls;
-  struct MHD_Response *resp;
-  struct GNUNET_JSONAPI_Document *json_document;
-  struct GNUNET_JSONAPI_Resource *json_resource;
-  json_t *cred_obj;
-  json_t *attr_obj;
-  json_t *cred_array;
-  json_t *attr_array;
-  char *result;
-  char *issuer;
-  char *id;
-  uint32_t i;
-
-  handle->verify_request = NULL;
-  if (NULL == cred)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Verify failed.\n");
-    handle->response_code = MHD_HTTP_NOT_FOUND;
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  issuer = GNUNET_CRYPTO_ecdsa_public_key_to_string (&handle->issuer_key);
-  if (NULL == issuer)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Issuer in delegation malformed\n");
-    return;
-  }
-  GNUNET_asprintf (&id,
-                   "%s.%s",
-                   issuer,
-                   handle->issuer_attr);
-  GNUNET_free (issuer);
-  json_document = GNUNET_JSONAPI_document_new ();
-  json_resource = GNUNET_JSONAPI_resource_new (
-    GNUNET_REST_JSONAPI_CREDENTIAL_TYPEINFO,
-    id);
-  GNUNET_free (id);
-  attr_array = json_array ();
-  for (i = 0; i < d_count; i++)
-  {
-    attr_obj = attribute_delegation_to_json (&delegation_chain[i]);
-    json_array_append_new (attr_array, attr_obj);
-  }
-  cred_array = json_array ();
-  for (i = 0; i < c_count; i++)
-  {
-    cred_obj = credential_to_json (&cred[i]);
-    json_array_append_new (cred_array, cred_obj);
-  }
-  GNUNET_JSONAPI_resource_add_attr (json_resource,
-                                    GNUNET_REST_JSONAPI_CREDENTIAL,
-                                    cred_array);
-  GNUNET_JSONAPI_resource_add_attr (json_resource,
-                                    GNUNET_REST_JSONAPI_DELEGATIONS,
-                                    attr_array);
-  GNUNET_JSONAPI_document_resource_add (json_document, json_resource);
-  GNUNET_JSONAPI_document_serialize (json_document, &result);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Result %s\n",
-              result);
-  json_decref (attr_array);
-  json_decref (cred_array);
-  GNUNET_JSONAPI_document_delete (json_document);
-  resp = GNUNET_REST_create_response (result);
-  handle->proc (handle->proc_cls, resp, MHD_HTTP_OK);
-  GNUNET_free (result);
-  cleanup_handle (handle);
-}
-
-static void
-collect_cred_cont (struct GNUNET_REST_RequestHandle *conndata_handle,
-                   const char*url,
-                   void *cls)
-{
-  struct RequestHandle *handle = cls;
-  struct GNUNET_HashCode key;
-  char *tmp;
-  char *entity_attr;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Connecting...\n");
-  handle->credential = GNUNET_CREDENTIAL_connect (cfg);
-  handle->timeout_task = GNUNET_SCHEDULER_add_delayed (handle->timeout,
-                                                       &do_error, handle);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Connected\n");
-  if (NULL == handle->credential)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Connecting to CREDENTIAL failed\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_CREDENTIAL_ISSUER_ATTR,
-                      strlen (GNUNET_REST_JSONAPI_CREDENTIAL_ISSUER_ATTR),
-                      &key);
-  if (GNUNET_NO ==
-      GNUNET_CONTAINER_multihashmap_contains (conndata_handle->url_param_map,
-                                              &key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Missing issuer attribute\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  tmp = GNUNET_CONTAINER_multihashmap_get (conndata_handle->url_param_map,
-                                           &key);
-  entity_attr = GNUNET_strdup (tmp);
-  tmp = strtok (entity_attr, ".");
-  if (NULL == tmp)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed issuer or attribute\n");
-    GNUNET_free (entity_attr);
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  if (GNUNET_OK !=
-      GNUNET_CRYPTO_ecdsa_public_key_from_string (tmp,
-                                                  strlen (tmp),
-                                                  &handle->issuer_key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed issuer key\n");
-    GNUNET_free (entity_attr);
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  tmp = strtok (NULL, ".");  // Issuer attribute
-  if (NULL == tmp)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed attribute\n");
-    GNUNET_free (entity_attr);
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  handle->issuer_attr = GNUNET_strdup (tmp);
-  GNUNET_free (entity_attr);
-
-  GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_CREDENTIAL_SUBJECT_EGO,
-                      strlen (GNUNET_REST_JSONAPI_CREDENTIAL_SUBJECT_EGO),
-                      &key);
-  if (GNUNET_NO ==
-      GNUNET_CONTAINER_multihashmap_contains (conndata_handle->url_param_map,
-                                              &key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Missing subject\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  tmp = GNUNET_CONTAINER_multihashmap_get (conndata_handle->url_param_map,
-                                           &key);
-  if (NULL == tmp)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed subject\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  handle->ego_lookup = GNUNET_IDENTITY_ego_lookup (cfg,
-                                                   tmp,
-                                                   &subject_ego_lookup,
-                                                   handle);
-}
-
-
-
-static void
-verify_cred_cont (struct GNUNET_REST_RequestHandle *conndata_handle,
-                  const char*url,
-                  void *cls)
-{
-  struct RequestHandle *handle = cls;
-  struct GNUNET_HashCode key;
-  struct GNUNET_JSONAPI_Document *json_obj;
-  struct GNUNET_JSONAPI_Resource *res;
-  struct GNUNET_CREDENTIAL_Credential *cred;
-  char *tmp;
-  char *entity_attr;
-  int i;
-  uint32_t credential_count;
-  uint32_t resource_count;
-  json_t *cred_json;
-  json_t *data_js;
-  json_error_t err;
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Connecting...\n");
-  handle->credential = GNUNET_CREDENTIAL_connect (cfg);
-  handle->timeout_task = GNUNET_SCHEDULER_add_delayed (handle->timeout,
-                                                       &do_error, handle);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Connected\n");
-  if (NULL == handle->credential)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Connecting to CREDENTIAL failed\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_CREDENTIAL_ISSUER_ATTR,
-                      strlen (GNUNET_REST_JSONAPI_CREDENTIAL_ISSUER_ATTR),
-                      &key);
-  if (GNUNET_NO ==
-      GNUNET_CONTAINER_multihashmap_contains (conndata_handle->url_param_map,
-                                              &key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Missing issuer attribute\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  tmp = GNUNET_CONTAINER_multihashmap_get (conndata_handle->url_param_map,
-                                           &key);
-  entity_attr = GNUNET_strdup (tmp);
-  tmp = strtok (entity_attr, ".");
-  if (NULL == tmp)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed issuer or attribute\n");
-    GNUNET_free (entity_attr);
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  if (GNUNET_OK !=
-      GNUNET_CRYPTO_ecdsa_public_key_from_string (tmp,
-                                                  strlen (tmp),
-                                                  &handle->issuer_key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed issuer key\n");
-    GNUNET_free (entity_attr);
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  tmp = strtok (NULL, ".");  // Issuer attribute
-  if (NULL == tmp)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed attribute\n");
-    GNUNET_free (entity_attr);
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  handle->issuer_attr = GNUNET_strdup (tmp);
-  GNUNET_free (entity_attr);
-
-  GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_CREDENTIAL_SUBJECT_KEY,
-                      strlen (GNUNET_REST_JSONAPI_CREDENTIAL_SUBJECT_KEY),
-                      &key);
-  if (GNUNET_NO ==
-      GNUNET_CONTAINER_multihashmap_contains (conndata_handle->url_param_map,
-                                              &key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Missing subject key\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  tmp = GNUNET_CONTAINER_multihashmap_get (conndata_handle->url_param_map,
-                                           &key);
-  if (NULL == tmp)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed subject\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  if (GNUNET_OK !=
-      GNUNET_CRYPTO_ecdsa_public_key_from_string (tmp,
-                                                  strlen (tmp),
-                                                  &handle->subject_key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed subject key\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-
-  if (0 >= handle->rest_handle->data_size)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Missing credentials\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-
-  struct GNUNET_JSON_Specification docspec[] = {
-    GNUNET_JSON_spec_jsonapi_document (&json_obj),
-    GNUNET_JSON_spec_end ()
-  };
-  char term_data[handle->rest_handle->data_size + 1];
-  term_data[handle->rest_handle->data_size] = '\0';
-  credential_count = 0;
-  GNUNET_memcpy (term_data,
-                 handle->rest_handle->data,
-                 handle->rest_handle->data_size);
-  data_js = json_loads (term_data,
-                        JSON_DECODE_ANY,
-                        &err);
-  GNUNET_assert (GNUNET_OK == GNUNET_JSON_parse (data_js, docspec,
-                                                 NULL, NULL));
-  json_decref (data_js);
-  if (NULL == json_obj)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Unable to parse JSONAPI Object from %s\n",
-                term_data);
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-
-  resource_count = GNUNET_JSONAPI_document_resource_count (json_obj);
-  GNUNET_assert (1 == resource_count);
-  res = (GNUNET_JSONAPI_document_get_resource (json_obj, 0));
-  if (GNUNET_NO == GNUNET_JSONAPI_resource_check_type (res,
-                                                       
GNUNET_REST_JSONAPI_CREDENTIAL_TYPEINFO))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Resource not a credential!\n");
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Unable to parse JSONAPI Object from %s\n",
-                term_data);
-    GNUNET_JSONAPI_document_delete (json_obj);
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  cred_json = GNUNET_JSONAPI_resource_read_attr (res,
-                                                 
GNUNET_REST_JSONAPI_CREDENTIAL);
-
-  GNUNET_assert (json_is_array (cred_json));
-
-  credential_count = json_array_size (cred_json);
-
-  struct GNUNET_CREDENTIAL_Credential credentials[credential_count];
-  for (i = 0; i < credential_count; i++)
-  {
-    cred = json_to_credential (json_array_get (cred_json, i));
-    if (NULL == cred)
-    {
-      GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                  "Unable to parse credential!\n");
-      continue;
-    }
-    GNUNET_memcpy (&credentials[i],
-                   cred,
-                   sizeof(struct GNUNET_CREDENTIAL_Credential));
-    credentials[i].issuer_attribute = GNUNET_strdup (cred->issuer_attribute);
-    GNUNET_free (cred);
-  }
-  GNUNET_JSONAPI_document_delete (json_obj);
-  handle->verify_request = GNUNET_CREDENTIAL_verify (handle->credential,
-                                                     &handle->issuer_key,
-                                                     handle->issuer_attr,
-                                                     &handle->subject_key,
-                                                     credential_count,
-                                                     credentials,
-                                                     &handle_verify_response,
-                                                     handle);
-  for (i = 0; i < credential_count; i++)
-    GNUNET_free ((char*) credentials[i].issuer_attribute);
-}
-
-void
-send_cred_response (struct RequestHandle *handle,
-                    struct GNUNET_CREDENTIAL_Credential *cred)
-{
-  struct MHD_Response *resp;
-  struct GNUNET_JSONAPI_Document *json_document;
-  struct GNUNET_JSONAPI_Resource *json_resource;
-  json_t *cred_obj;
-  char *result;
-  char *issuer;
-  char *subject;
-  char *signature;
-  char *id;
-
-  GNUNET_assert (NULL != cred);
-  issuer = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred->issuer_key);
-  if (NULL == issuer)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Subject malformed\n");
-    GNUNET_free (issuer);
-    return;
-  }
-  GNUNET_asprintf (&id,
-                   "%s.%s",
-                   issuer,
-                   (char*) &cred[1]);
-  subject = GNUNET_CRYPTO_ecdsa_public_key_to_string (&cred->subject_key);
-  if (NULL == subject)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Subject malformed\n");
-    GNUNET_free (id);
-    GNUNET_free (issuer);
-    return;
-  }
-  GNUNET_STRINGS_base64_encode ((char*) &cred->signature,
-                                sizeof(struct GNUNET_CRYPTO_EcdsaSignature),
-                                &signature);
-  json_document = GNUNET_JSONAPI_document_new ();
-  json_resource = GNUNET_JSONAPI_resource_new (
-    GNUNET_REST_JSONAPI_CREDENTIAL_TYPEINFO,
-    id);
-  GNUNET_free (id);
-  cred_obj = json_object ();
-  json_object_set_new (cred_obj, "issuer", json_string (issuer));
-  json_object_set_new (cred_obj, "subject", json_string (subject));
-  json_object_set_new (cred_obj, "expiration", json_integer (
-                         cred->expiration.abs_value_us));
-  json_object_set_new (cred_obj, "signature", json_string (signature));
-  GNUNET_JSONAPI_resource_add_attr (json_resource,
-                                    GNUNET_REST_JSONAPI_CREDENTIAL,
-                                    cred_obj);
-  GNUNET_JSONAPI_document_resource_add (json_document, json_resource);
-  GNUNET_JSONAPI_document_serialize (json_document, &result);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Result %s\n",
-              result);
-  json_decref (cred_obj);
-  GNUNET_JSONAPI_document_delete (json_document);
-  resp = GNUNET_REST_create_response (result);
-  handle->proc (handle->proc_cls, resp, MHD_HTTP_OK);
-  GNUNET_free (result);
-  GNUNET_free (signature);
-  GNUNET_free (issuer);
-  GNUNET_free (subject);
-  cleanup_handle (handle);
-}
-
-void
-get_cred_issuer_cb (void *cls,
-                    struct GNUNET_IDENTITY_Ego *ego,
-                    void **ctx,
-                    const char *name)
-{
-  struct RequestHandle *handle = cls;
-  struct GNUNET_TIME_Absolute etime_abs;
-  struct GNUNET_TIME_Relative etime_rel;
-  const struct GNUNET_CRYPTO_EcdsaPrivateKey *issuer_key;
-  struct GNUNET_HashCode key;
-  struct GNUNET_CREDENTIAL_Credential *cred;
-  char*expiration_str;
-  char*tmp;
-
-  handle->id_op = NULL;
-
-  if (NULL == name)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Issuer not configured!\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Connecting to credential service...\n");
-  handle->credential = GNUNET_CREDENTIAL_connect (cfg);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "Connected\n");
-  if (NULL == handle->credential)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Connecting to CREDENTIAL failed\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_CREDENTIAL_EXPIRATION,
-                      strlen (GNUNET_REST_JSONAPI_CREDENTIAL_EXPIRATION),
-                      &key);
-  if (GNUNET_NO ==
-      GNUNET_CONTAINER_multihashmap_contains (
-        handle->rest_handle->url_param_map,
-        &key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Missing expiration\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  expiration_str = GNUNET_CONTAINER_multihashmap_get (
-    handle->rest_handle->url_param_map,
-    &key);
-  if (NULL == expiration_str)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Expiration malformed\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-
-  if (GNUNET_OK == GNUNET_STRINGS_fancy_time_to_relative (expiration_str,
-                                                          &etime_rel))
-  {
-    etime_abs = GNUNET_TIME_relative_to_absolute (etime_rel);
-  }
-  else if (GNUNET_OK != GNUNET_STRINGS_fancy_time_to_absolute (expiration_str,
-                                                               &etime_abs))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed expiration: %s\n", expiration_str);
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_CREDENTIAL_ISSUER_ATTR,
-                      strlen (GNUNET_REST_JSONAPI_CREDENTIAL_ISSUER_ATTR),
-                      &key);
-  if (GNUNET_NO ==
-      GNUNET_CONTAINER_multihashmap_contains (
-        handle->rest_handle->url_param_map,
-        &key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Missing issuer attribute\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  handle->issuer_attr = GNUNET_strdup (GNUNET_CONTAINER_multihashmap_get
-                                         (handle->rest_handle->url_param_map,
-                                         &key));
-  GNUNET_CRYPTO_hash (GNUNET_REST_JSONAPI_CREDENTIAL_SUBJECT_KEY,
-                      strlen (GNUNET_REST_JSONAPI_CREDENTIAL_SUBJECT_KEY),
-                      &key);
-  if (GNUNET_NO ==
-      GNUNET_CONTAINER_multihashmap_contains (
-        handle->rest_handle->url_param_map,
-        &key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Missing subject\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  tmp = GNUNET_CONTAINER_multihashmap_get (handle->rest_handle->url_param_map,
-                                           &key);
-  if (NULL == tmp)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed subject\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  if (GNUNET_OK !=
-      GNUNET_CRYPTO_ecdsa_public_key_from_string (tmp,
-                                                  strlen (tmp),
-                                                  &handle->subject_key))
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Malformed subject key\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  issuer_key = GNUNET_IDENTITY_ego_get_private_key (ego);
-  cred = GNUNET_CREDENTIAL_credential_issue (issuer_key,
-                                             &handle->subject_key,
-                                             handle->issuer_attr,
-                                             &etime_abs);
-  if (NULL == cred)
-  {
-    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                "Failed to create credential\n");
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-    return;
-  }
-  send_cred_response (handle, cred);
-}
-
-
-static void
-issue_cred_cont (struct GNUNET_REST_RequestHandle *conndata_handle,
-                 const char*url,
-                 void *cls)
-{
-  struct RequestHandle *handle = cls;
-
-  handle->identity = GNUNET_IDENTITY_connect (cfg,
-                                              NULL,
-                                              NULL);
-  handle->id_op = GNUNET_IDENTITY_get (handle->identity,
-                                       "credential-issuer",
-                                       &get_cred_issuer_cb,
-                                       handle);
-  handle->timeout_task = GNUNET_SCHEDULER_add_delayed (handle->timeout,
-                                                       &do_error,
-                                                       handle);
-}
-
-static void
-options_cont (struct GNUNET_REST_RequestHandle *con_handle,
-              const char*url,
-              void *cls)
-{
-  struct MHD_Response *resp;
-  struct RequestHandle *handle = cls;
-
-  // For GNS, independent of path return all options
-  resp = GNUNET_REST_create_response (NULL);
-  MHD_add_response_header (resp,
-                           "Access-Control-Allow-Methods",
-                           MHD_HTTP_METHOD_GET);
-  handle->proc (handle->proc_cls,
-                resp,
-                MHD_HTTP_OK);
-  cleanup_handle (handle);
-}
-
-
-static void
-rest_credential_process_request (struct
-                                 GNUNET_REST_RequestHandle *conndata_handle,
-                                 GNUNET_REST_ResultProcessor proc,
-                                 void *proc_cls)
-{
-  struct RequestHandle *handle = GNUNET_new (struct RequestHandle);
-  struct GNUNET_REST_RequestHandlerError err;
-
-  handle->timeout = GNUNET_TIME_UNIT_FOREVER_REL;
-  handle->proc_cls = proc_cls;
-  handle->proc = proc;
-  handle->rest_handle = conndata_handle;
-
-  static const struct GNUNET_REST_RequestHandler handlers[] = {
-    { MHD_HTTP_METHOD_POST, GNUNET_REST_API_NS_CREDENTIAL_VERIFY,
-      &verify_cred_cont },
-    { MHD_HTTP_METHOD_GET, GNUNET_REST_API_NS_CREDENTIAL_COLLECT,
-      &collect_cred_cont },
-    { MHD_HTTP_METHOD_GET, GNUNET_REST_API_NS_CREDENTIAL_ISSUE,
-      &issue_cred_cont },
-    { MHD_HTTP_METHOD_OPTIONS, GNUNET_REST_API_NS_CREDENTIAL, &options_cont },
-    GNUNET_REST_HANDLER_END
-  };
-
-  if (GNUNET_NO == GNUNET_JSONAPI_handle_request (conndata_handle,
-                                                  handlers,
-                                                  &err,
-                                                  handle))
-  {
-    handle->response_code = err.error_code;
-    GNUNET_SCHEDULER_add_now (&do_error, handle);
-  }
-}
-
-
-/**
- * Entry point for the plugin.
- *
- * @param cls the "struct GNUNET_NAMESTORE_PluginEnvironment*"
- * @return NULL on error, otherwise the plugin context
- */
-void *
-libgnunet_plugin_rest_credential_init (void *cls)
-{
-  static struct Plugin plugin;
-
-  cfg = cls;
-  struct GNUNET_REST_Plugin *api;
-
-  if (NULL != plugin.cfg)
-    return NULL;                /* can only initialize once! */
-  memset (&plugin, 0, sizeof(struct Plugin));
-  plugin.cfg = cfg;
-  api = GNUNET_new (struct GNUNET_REST_Plugin);
-  api->cls = &plugin;
-  api->name = GNUNET_REST_API_NS_CREDENTIAL;
-  api->process_request = &rest_credential_process_request;
-  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-              _ ("GNS REST API initialized\n"));
-  return api;
-}
-
-
-/**
- * Exit point from the plugin.
- *
- * @param cls the plugin context (as returned by "init")
- * @return always NULL
- */
-void *
-libgnunet_plugin_rest_credential_done (void *cls)
-{
-  struct GNUNET_REST_Plugin *api = cls;
-  struct Plugin *plugin = api->cls;
-
-  plugin->cfg = NULL;
-  GNUNET_free (api);
-  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-              "GNS REST plugin is finished\n");
-  return NULL;
-}
-
-/* end of plugin_rest_gns.c */
diff --git a/src/credential/test_credential_collect.sh 
b/src/credential/test_credential_collect.sh
deleted file mode 100755
index 0ae063eda..000000000
--- a/src/credential/test_credential_collect.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh
-trap "gnunet-arm -e -c test_credential_lookup.conf" SIGINT
-
-LOCATION=$(which gnunet-config)
-if [ -z $LOCATION ]
-then
-  LOCATION="gnunet-config"
-fi
-$LOCATION --version 1> /dev/null
-if test $? != 0
-then
-       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
-       exit 77
-fi
-
-rm -rf `gnunet-config -c test_credential_lookup.conf -s PATHS -o GNUNET_HOME 
-f`
-
-#  (1) PKEY1.user -> PKEY2.resu.user
-#  (2) PKEY2.resu -> PKEY3
-#  (3) PKEY3.user -> PKEY4
-
-
-which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
-
-TEST_ATTR="test"
-TEST_ATTR2="test2"
-gnunet-arm -s -c test_credential_lookup.conf
-gnunet-identity -C testissuer -c test_credential_lookup.conf
-gnunet-identity -C testsubject -c test_credential_lookup.conf
-SUBJECT_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep 
testsubject | awk '{print $3}')
-ISSUER_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep 
testissuer | awk '{print $3}')
-#TODO1 Get credential and store it with subject (3)
-CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=testissuer 
--subject=$SUBJECT_KEY --attribute=$TEST_ATTR --ttl=5m -c 
test_credential_lookup.conf`
-$DO_TIMEOUT gnunet-namestore -a -z testsubject -n c1 -t CRED -V "$CRED" -e 5m 
-c test_credential_lookup.conf
-CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=testissuer 
--subject=$SUBJECT_KEY --attribute=$TEST_ATTR2 --ttl=5m -c 
test_credential_lookup.conf`
-$DO_TIMEOUT gnunet-namestore -a -z testsubject -n c2 -t CRED -V "$CRED" -e 5m 
-c test_credential_lookup.conf
-CREDS=`$DO_TIMEOUT gnunet-credential --collect --issuer=$ISSUER_KEY 
--attribute=$TEST_ATTR --ego=testsubject -c test_credential_lookup.conf | paste 
-d, -s`
-echo $CREDS
-RES=$?
-gnunet-arm -e -c test_credential_lookup.conf
-
-if test $? != 0
-then
-  echo "Error collecting..."
-  exit 1
-fi
-
diff --git a/src/credential/test_credential_collect_rest.sh 
b/src/credential/test_credential_collect_rest.sh
deleted file mode 100755
index fe59d9399..000000000
--- a/src/credential/test_credential_collect_rest.sh
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/sh
-trap "gnunet-arm -e -c test_credential_lookup.conf" SIGINT
-
-LOCATION=$(which gnunet-config)
-if [ -z $LOCATION ]
-then
-  LOCATION="gnunet-config"
-fi
-$LOCATION --version 1> /dev/null
-if test $? != 0
-then
-       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
-       exit 77
-fi
-
-rm -rf `gnunet-config -c test_credential_lookup.conf -s PATHS -o GNUNET_HOME 
-f`
-
-#  (1) Service.user -> GNU.project.member
-#  (2) GNU.project -> GNUnet
-#  (3) GNUnet.member -> GNUnet.developer
-#  (4) GNUnet.member -> GNUnet.user
-#  (5) GNUnet.developer -> Alice
-
-
-which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
-gnunet-arm -s -c test_credential_lookup.conf
-gnunet-identity -C service -c test_credential_lookup.conf
-gnunet-identity -C alice -c test_credential_lookup.conf
-gnunet-identity -C gnu -c test_credential_lookup.conf
-gnunet-identity -C gnunet -c test_credential_lookup.conf
-
-GNU_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep gnu | grep 
-v gnunet | awk '{print $3}')
-ALICE_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep alice | 
awk '{print $3}')
-GNUNET_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep gnunet | 
awk '{print $3}')
-SERVICE_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep service 
| awk '{print $3}')
-
-USER_ATTR="user"
-GNU_PROJECT_ATTR="project"
-MEMBER_ATTR="member"
-DEVELOPER_ATTR="developer"
-DEV_ATTR="developer"
-TEST_CREDENTIAL="mygnunetcreds"
-
-# (1) A service assigns the attribute "user" to all entities that have been 
assigned "member" by entities that werde assigned "project" from GNU
-gnunet-namestore -p -z service -a -n $USER_ATTR -t ATTR -V "$GNU_KEY 
$GNU_PROJECT_ATTR.$MEMBER_ATTR" -e 5m -c test_credential_lookup.conf
-
-# (2) GNU recognized GNUnet as a GNU project and delegates the "project" 
attribute
-gnunet-namestore -p -z gnu -a -n $GNU_PROJECT_ATTR -t ATTR -V "$GNUNET_KEY" -e 
5m -c test_credential_lookup.conf
-
-# (3+4) GNUnet assigns the attribute "member" to all entities gnunet has also 
assigned "developer" or "user"
-gnunet-namestore -p -z gnunet -a -n $MEMBER_ATTR -t ATTR -V "$GNUNET_KEY 
$DEVELOPER_ATTR" -e 5m -c test_credential_lookup.conf
-gnunet-namestore -p -z gnunet -a -n $MEMBER_ATTR -t ATTR -V "$GNUNET_KEY 
$USER_ATTR" -e 5m -c test_credential_lookup.conf
-
-# (5) GNUnet issues Alice the credential "developer"
-CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=gnunet --subject=$ALICE_KEY 
--attribute=$DEV_ATTR --ttl=5m -c test_credential_lookup.conf`
-
-# Alice stores the credential under "mygnunetcreds"
-gnunet-namestore -p -z alice -a -n $TEST_CREDENTIAL -t CRED -V "$CRED" -e 5m 
-c test_credential_lookup.conf
-
-# (5) GNUnet issues Alice the credential "developer"
-CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=gnunet --subject=$ALICE_KEY 
--attribute=$USER_ATTR --ttl=5m -c test_credential_lookup.conf`
-
-# Alice stores the credential under "mygnunetcreds"
-gnunet-namestore -p -z alice -a -n $TEST_CREDENTIAL -t CRED -V "$CRED" -e 5m 
-c test_credential_lookup.conf
-
-#TODO2 Add -z swich like in gnunet-gns
-#RES_CRED=`gnunet-credential --collect --issuer=$SERVICE_KEY 
--attribute=$USER_ATTR --subject=$ALICE_KEY -c test_credential_lookup.conf`
-
-gnunet-arm -i rest -c test_credential_lookup.conf
-
-sleep 5
-
-curl -v 
"localhost:7776/credential/collect?attribute=$SERVICE_KEY.$USER_ATTR&subject=alice"
-
-#TODO cleanup properly
-gnunet-namestore -z alice -d -n $TEST_CREDENTIAL -t CRED -e never -c 
test_credential_lookup.conf
-gnunet-namestore -z gnu -d -n $GNU_PROJECT_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-namestore -z gnunet -d -n $MEMBER_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-namestore -z service -d -n $USER_ATTR -t ATTR -c 
test_credential_lookup.conf
-echo "Stopping arm..."
-gnunet-arm -e -c test_credential_lookup.conf
-echo "Done"
-if [ "$RES_CRED" != "Failed." ]
-then
-    # TODO: replace echo -e bashism.
-    echo -e "${RES_CRED}"
-    exit 0
-else
-    echo "FAIL: Failed to verify credential $RES_CRED."
-    exit 1
-fi
diff --git a/src/credential/test_credential_issue.sh 
b/src/credential/test_credential_issue.sh
deleted file mode 100755
index f06de5d42..000000000
--- a/src/credential/test_credential_issue.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/sh
-trap "gnunet-arm -e -c test_credential_lookup.conf" SIGINT
-
-LOCATION=$(which gnunet-config)
-if [ -z $LOCATION ]
-then
-  LOCATION="gnunet-config"
-fi
-$LOCATION --version 1> /dev/null
-if test $? != 0
-then
-       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
-       exit 77
-fi
-
-rm -rf `gnunet-config -c test_credential_lookup.conf -s PATHS -o GNUNET_HOME 
-f`
-
-#  (1) PKEY1.user -> PKEY2.resu.user
-#  (2) PKEY2.resu -> PKEY3
-#  (3) PKEY3.user -> PKEY4
-
-
-which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
-
-TEST_ATTR="test"
-gnunet-arm -s -c test_credential_lookup.conf
-gnunet-identity -C testissuer -c test_credential_lookup.conf
-gnunet-identity -C testsubject -c test_credential_lookup.conf
-SUBJECT_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep 
testsubject | awk '{print $3}')
-ISSUER_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep 
testissuer | awk '{print $3}')
-#TODO1 Get credential and store it with subject (3)
-CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=testissuer 
--subject=$SUBJECT_KEY --attribute=$TEST_ATTR --ttl=5m -c 
test_credential_lookup.conf`
-STATUS=$?
-
-if test $? != 0
-then
-  echo "Error issuing..."
-  exit 1
-fi
-#Try import
-$DO_TIMEOUT gnunet-namestore -a -z testsubject -n c1 -t CRED -V "$CRED" -e 5m 
-c test_credential_lookup.conf
-RES=$?
-gnunet-arm -e -c test_credential_lookup.conf
-exit $RES
diff --git a/src/credential/test_credential_issue_rest.sh 
b/src/credential/test_credential_issue_rest.sh
deleted file mode 100755
index c518c08ec..000000000
--- a/src/credential/test_credential_issue_rest.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-trap "gnunet-arm -e -c test_credential_lookup.conf" SIGINT
-
-LOCATION=$(which gnunet-config)
-if [ -z $LOCATION ]
-then
-  LOCATION="gnunet-config"
-fi
-$LOCATION --version 1> /dev/null
-if test $? != 0
-then
-       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
-       exit 77
-fi
-
-rm -rf `gnunet-config -c test_credential_lookup.conf -s PATHS -o GNUNET_HOME 
-f`
-
-#  (1) PKEY1.user -> PKEY2.resu.user
-#  (2) PKEY2.resu -> PKEY3
-#  (3) PKEY3.user -> PKEY4
-
-
-which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
-
-TEST_ATTR="test"
-gnunet-arm -s -c test_credential_lookup.conf
-gnunet-arm -i gns
-gnunet-arm -i credential
-gnunet-arm -i identity
-gnunet-arm -i rest -c test_credential_lookup.conf
-
-gnunet-arm -I -c test_credential_lookup.conf
-gnunet-identity -C testissuer -c test_credential_lookup.conf
-gnunet-identity -C testsubject -c test_credential_lookup.conf
-gnunet-identity -s credential-issuer -e testissuer
-SUBJECT_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep 
testsubject | awk '{print $3}')
-ISSUER_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep 
testissuer | awk '{print $3}')
-#TODO1 Get credential and store it with subject (3)
-sleep 5
-curl 
"localhost:7776/credential/issue?subject_key=$SUBJECT_KEY&attribute=$TEST_ATTR&expiration=1d"
-#CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=testissuer 
--subject=$SUBJECT_KEY --attribute=$TEST_ATTR --ttl=5m -c 
test_credential_lookup.conf`
-STATUS=$?
-
-if test $? != 0
-then
-  echo "Error issuing..."
-  exit 1
-fi
-#Try import
-#$DO_TIMEOUT gnunet-namestore -a -z testsubject -n c1 -t CRED -V "$CRED" -e 5m 
-c test_credential_lookup.conf
-RES=$?
-gnunet-arm -e -c test_credential_lookup.conf
-exit $RES
diff --git a/src/credential/test_credential_verify.sh 
b/src/credential/test_credential_verify.sh
deleted file mode 100755
index 49d4d4afb..000000000
--- a/src/credential/test_credential_verify.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env bash
-trap "gnunet-arm -e -c test_credential_lookup.conf" SIGINT
-
-LOCATION=$(which gnunet-config)
-if [ -z $LOCATION ]
-then
-  LOCATION="gnunet-config"
-fi
-$LOCATION --version 1> /dev/null
-if test $? != 0
-then
-       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
-       exit 77
-fi
-
-rm -rf `gnunet-config -c test_credential_lookup.conf -s PATHS -o GNUNET_HOME 
-f`
-
-#  (1) Service.user -> GNU.project.member
-#  (2) GNU.project -> GNUnet
-#  (3) GNUnet.member -> GNUnet.developer
-#  (4) GNUnet.member -> GNUnet.user
-#  (5) GNUnet.developer -> Alice
-
-
-which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
-gnunet-arm -s -c test_credential_lookup.conf
-gnunet-identity -C service -c test_credential_lookup.conf
-gnunet-identity -C alice -c test_credential_lookup.conf
-gnunet-identity -C gnu -c test_credential_lookup.conf
-gnunet-identity -C gnunet -c test_credential_lookup.conf
-
-GNU_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep gnu | grep 
-v gnunet | awk '{print $3}')
-ALICE_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep alice | 
awk '{print $3}')
-GNUNET_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep gnunet | 
awk '{print $3}')
-SERVICE_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep service 
| awk '{print $3}')
-
-USER_ATTR="user"
-GNU_PROJECT_ATTR="project"
-MEMBER_ATTR="member"
-DEVELOPER_ATTR="developer"
-DEV_ATTR="developer"
-TEST_CREDENTIAL="mygnunetcreds"
-
-# (1) A service assigns the attribute "user" to all entities that have been 
assigned "member" by entities that werde assigned "project" from GNU
-gnunet-namestore -p -z service -a -n $USER_ATTR -t ATTR -V "$GNU_KEY 
$GNU_PROJECT_ATTR.$MEMBER_ATTR" -e 5m -c test_credential_lookup.conf
-
-# (2) GNU recognized GNUnet as a GNU project and delegates the "project" 
attribute
-gnunet-namestore -p -z gnu -a -n $GNU_PROJECT_ATTR -t ATTR -V "$GNUNET_KEY" -e 
5m -c test_credential_lookup.conf
-
-# (3+4) GNUnet assigns the attribute "member" to all entities gnunet has also 
assigned "developer" or "user"
-gnunet-namestore -p -z gnunet -a -n $MEMBER_ATTR -t ATTR -V "$GNUNET_KEY 
$DEVELOPER_ATTR" -e 5m -c test_credential_lookup.conf
-gnunet-namestore -p -z gnunet -a -n $MEMBER_ATTR -t ATTR -V "$GNUNET_KEY 
$USER_ATTR" -e 5m -c test_credential_lookup.conf
-
-# (5) GNUnet issues Alice the credential "developer"
-CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=gnunet --subject=$ALICE_KEY 
--attribute=$DEV_ATTR --ttl=5m -c test_credential_lookup.conf`
-
-# Alice stores the credential under "mygnunetcreds"
-gnunet-namestore -p -z alice -a -n $TEST_CREDENTIAL -t CRED -V "$CRED" -e 5m 
-c test_credential_lookup.conf
-
-CREDS=`$DO_TIMEOUT gnunet-credential --collect --issuer=$SERVICE_KEY 
--attribute=$USER_ATTR --ego=alice -c test_credential_lookup.conf | paste -d, 
-s`
-
-echo gnunet-credential --verify --issuer=$SERVICE_KEY --attribute=$USER_ATTR 
--subject=$ALICE_KEY --credential=\'$CREDS\' -c test_credential_lookup.conf
-#TODO2 Add -z swich like in gnunet-gns
-gnunet-credential --verify --issuer=$SERVICE_KEY --attribute=$USER_ATTR 
--subject=$ALICE_KEY --credential="$CREDS" -c test_credential_lookup.conf
-
-
-#TODO cleanup properly
-gnunet-namestore -z alice -d -n $TEST_CREDENTIAL -t CRED -e never -c 
test_credential_lookup.conf
-gnunet-namestore -z gnu -d -n $GNU_PROJECT_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-namestore -z gnunet -d -n $MEMBER_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-namestore -z service -d -n $USER_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-arm -e -c test_credential_lookup.conf
-
-if [ "$RES_CRED" != "Failed." ]
-then
-  # TODO: replace echo -e bashism
-  echo -e "${RES_CRED}"
-  exit 0
-else
-  echo "FAIL: Failed to verify credential $RES_CRED."
-  exit 1
-fi
diff --git a/src/credential/test_credential_verify_and.sh 
b/src/credential/test_credential_verify_and.sh
deleted file mode 100755
index fa0ab34e1..000000000
--- a/src/credential/test_credential_verify_and.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/usr/bin/env bash
-trap "gnunet-arm -e -c test_credential_lookup.conf" SIGINT
-
-LOCATION=$(which gnunet-config)
-if [ -z $LOCATION ]
-then
-  LOCATION="gnunet-config"
-fi
-$LOCATION --version 1> /dev/null
-if test $? != 0
-then
-       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
-       exit 77
-fi
-
-rm -rf `gnunet-config -c test_credential_lookup.conf -s PATHS -o GNUNET_HOME 
-f`
-
-#  (1) Service.user -> GNU.project.member
-#  (2) GNU.project -> GNUnet
-#  (3) GNUnet.member -> GNUnet.developer and GNUnet.user
-#  (4) GNUnet.developer -> Alice
-
-
-which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
-gnunet-arm -s -c test_credential_lookup.conf
-gnunet-identity -C service -c test_credential_lookup.conf
-gnunet-identity -C alice -c test_credential_lookup.conf
-gnunet-identity -C gnu -c test_credential_lookup.conf
-gnunet-identity -C gnunet -c test_credential_lookup.conf
-
-GNU_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep gnu | grep 
-v gnunet | awk '{print $3}')
-ALICE_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep alice | 
awk '{print $3}')
-GNUNET_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep gnunet | 
awk '{print $3}')
-SERVICE_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep service 
| awk '{print $3}')
-
-USER_ATTR="user"
-GNU_PROJECT_ATTR="project"
-MEMBER_ATTR="member"
-DEVELOPER_ATTR="developer"
-DEV_ATTR="developer"
-TEST_CREDENTIAL="mygnunetcreds"
-set -x
-# (1) A service assigns the attribute "user" to all entities that have been 
assigned "member" by entities that werde assigned "project" from GNU
-gnunet-namestore -p -z service -a -n $USER_ATTR -t ATTR -V "$GNU_KEY 
$GNU_PROJECT_ATTR.$MEMBER_ATTR" -e 5m -c test_credential_lookup.conf
-
-# (2) GNU recognized GNUnet as a GNU project and delegates the "project" 
attribute
-gnunet-namestore -p -z gnu -a -n $GNU_PROJECT_ATTR -t ATTR -V "$GNUNET_KEY" -e 
5m -c test_credential_lookup.conf
-
-# (3+4) GNUnet assigns the attribute "member" to all entities gnunet has also
-# assigned "developer" and "user"
-gnunet-namestore -p -z gnunet -a -n $MEMBER_ATTR -t ATTR -V "$GNUNET_KEY 
$DEVELOPER_ATTR,$GNUNET_KEY $USER_ATTR" -e 5m -c test_credential_lookup.conf
-
-# (5) GNUnet issues Alice the credential "developer"
-CRED1=`$DO_TIMEOUT gnunet-credential --issue --ego=gnunet --subject=$ALICE_KEY 
--attribute=$DEV_ATTR --ttl=5m -c test_credential_lookup.conf`
-# (5) GNUnet issues Alice the credential "user"
-CRED2=`$DO_TIMEOUT gnunet-credential --issue --ego=gnunet --subject=$ALICE_KEY 
--attribute=$USER_ATTR --ttl=5m -c test_credential_lookup.conf`
-# Alice stores the credential under "mygnunetcreds"
-gnunet-namestore -p -z alice -a -n $TEST_CREDENTIAL -t CRED -V "$CRED1" -e 5m 
-c test_credential_lookup.conf
-gnunet-namestore -p -z alice -a -n $TEST_CREDENTIAL -t CRED -V "$CRED2" -e 5m 
-c test_credential_lookup.conf
-
-CREDS=`$DO_TIMEOUT gnunet-credential --collect --issuer=$SERVICE_KEY 
--attribute=$USER_ATTR --ego=alice -c test_credential_lookup.conf | paste -d, 
-s`
-
-#TODO2 Add -z swich like in gnunet-gns
-RES_CRED=`gnunet-credential --verify --issuer=$SERVICE_KEY 
--attribute=$USER_ATTR --subject=$ALICE_KEY --credential="$CREDS" -c 
test_credential_lookup.conf`
-
-
-#TODO cleanup properly
-gnunet-namestore -z alice -d -n $TEST_CREDENTIAL -t CRED -e never -c 
test_credential_lookup.conf
-gnunet-namestore -z gnu -d -n $GNU_PROJECT_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-namestore -z gnunet -d -n $MEMBER_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-namestore -z service -d -n $USER_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-arm -e -c test_credential_lookup.conf
-
-if [ "$RES_CRED" != "Failed." ]
-then
-  # TODO: echo -e bashism
-  echo -e "${RES_CRED}"
-  exit 0
-else
-  echo "FAIL: Failed to verify credential $RES_CRED."
-  exit 1
-fi
diff --git a/src/credential/test_credential_verify_rest.sh 
b/src/credential/test_credential_verify_rest.sh
deleted file mode 100755
index 99db5da8a..000000000
--- a/src/credential/test_credential_verify_rest.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env bash
-trap "gnunet-arm -e -c test_credential_lookup.conf" SIGINT
-
-LOCATION=$(which gnunet-config)
-if [ -z $LOCATION ]
-then
-  LOCATION="gnunet-config"
-fi
-$LOCATION --version 1> /dev/null
-if test $? != 0
-then
-       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
-       exit 77
-fi
-
-rm -rf `gnunet-config -c test_credential_lookup.conf -s PATHS -o GNUNET_HOME 
-f`
-
-#  (1) Service.user -> GNU.project.member
-#  (2) GNU.project -> GNUnet
-#  (3) GNUnet.member -> GNUnet.developer
-#  (4) GNUnet.member -> GNUnet.user
-#  (5) GNUnet.developer -> Alice
-
-
-which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
-gnunet-arm -s -c test_credential_lookup.conf
-gnunet-identity -C service -c test_credential_lookup.conf
-gnunet-identity -C alice -c test_credential_lookup.conf
-gnunet-identity -C gnu -c test_credential_lookup.conf
-gnunet-identity -C gnunet -c test_credential_lookup.conf
-
-GNU_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep gnu | grep 
-v gnunet | awk '{print $3}')
-ALICE_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep alice | 
awk '{print $3}')
-GNUNET_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep gnunet | 
awk '{print $3}')
-SERVICE_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep service 
| awk '{print $3}')
-
-USER_ATTR="user"
-GNU_PROJECT_ATTR="project"
-MEMBER_ATTR="member"
-DEVELOPER_ATTR="developer"
-DEV_ATTR="developer"
-TEST_CREDENTIAL="mygnunetcreds"
-
-# (1) A service assigns the attribute "user" to all entities that have been 
assigned "member" by entities that werde assigned "project" from GNU
-gnunet-namestore -p -z service -a -n $USER_ATTR -t ATTR -V "$GNU_KEY 
$GNU_PROJECT_ATTR.$MEMBER_ATTR" -e 5m -c test_credential_lookup.conf
-
-# (2) GNU recognized GNUnet as a GNU project and delegates the "project" 
attribute
-gnunet-namestore -p -z gnu -a -n $GNU_PROJECT_ATTR -t ATTR -V "$GNUNET_KEY" -e 
5m -c test_credential_lookup.conf
-
-# (3+4) GNUnet assigns the attribute "member" to all entities gnunet has also 
assigned "developer" or "user"
-gnunet-namestore -p -z gnunet -a -n $MEMBER_ATTR -t ATTR -V "$GNUNET_KEY 
$DEVELOPER_ATTR" -e 5m -c test_credential_lookup.conf
-gnunet-namestore -p -z gnunet -a -n $MEMBER_ATTR -t ATTR -V "$GNUNET_KEY 
$USER_ATTR" -e 5m -c test_credential_lookup.conf
-
-# (5) GNUnet issues Alice the credential "developer"
-CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=gnunet --subject=$ALICE_KEY 
--attribute=$DEV_ATTR --ttl=5m -c test_credential_lookup.conf`
-
-# Alice stores the credential under "mygnunetcreds"
-gnunet-namestore -p -z alice -a -n $TEST_CREDENTIAL -t CRED -V "$CRED" -e 5m 
-c test_credential_lookup.conf
-
-#TODO2 Add -z swich like in gnunet-gns
-#RES_CRED=`gnunet-credential --verify --issuer=$SERVICE_KEY 
--attribute=$USER_ATTR --subject=$ALICE_KEY --credential=$TEST_CREDENTIAL -c 
test_credential_lookup.conf`
-
-gnunet-arm -i rest -c test_credential_lookup.conf
-
-sleep 5
-
-CREDS=`curl 
"localhost:7776/credential/collect?attribute=$SERVICE_KEY.$USER_ATTR&subject=alice"`
-
-echo $CREDS
-
-curl -v 
"localhost:7776/credential/verify?attribute=$SERVICE_KEY.$USER_ATTR&subject_key=$ALICE_KEY"
 --data "$CREDS"
-
-#TODO cleanup properly
-gnunet-namestore -z alice -d -n $TEST_CREDENTIAL -t CRED -e never -c 
test_credential_lookup.conf
-gnunet-namestore -z gnu -d -n $GNU_PROJECT_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-namestore -z gnunet -d -n $MEMBER_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-namestore -z service -d -n $USER_ATTR -t ATTR -c 
test_credential_lookup.conf
-gnunet-arm -e -c test_credential_lookup.conf
-
-if [ "$RES_CRED" != "Failed." ]
-then
-  # TODO: replace echo -e bashism
-  echo -e "${RES_CRED}"
-  exit 0
-else
-  echo "FAIL: Failed to verify credential $RES_CRED."
-  exit 1
-fi
diff --git a/src/credential/test_credential_verify_simple.sh 
b/src/credential/test_credential_verify_simple.sh
deleted file mode 100755
index 41afb47b0..000000000
--- a/src/credential/test_credential_verify_simple.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/bin/sh
-trap "gnunet-arm -e -c test_credential_lookup.conf" SIGINT
-
-LOCATION=$(which gnunet-config)
-if [ -z $LOCATION ]
-then
-  LOCATION="gnunet-config"
-fi
-$LOCATION --version 1> /dev/null
-if test $? != 0
-then
-       echo "GNUnet command line tools cannot be found, check environmental 
variables PATH and GNUNET_PREFIX"
-       exit 77
-fi
-
-rm -rf `gnunet-config -c test_credential_lookup.conf -s PATHS -o GNUNET_HOME 
-f`
-
-#  (3) Isser.user -> Subject
-
-
-which timeout > /dev/null 2>&1 && DO_TIMEOUT="timeout 30"
-gnunet-arm -s -c test_credential_lookup.conf
-gnunet-identity -C testissuer -c test_credential_lookup.conf
-gnunet-identity -C testsubject -c test_credential_lookup.conf
-
-TEST_ATTR="user"
-SUBJECT_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep 
testsubject | awk '{print $3}')
-ISSUER_KEY=$(gnunet-identity -d -c test_credential_lookup.conf | grep 
testissuer | awk '{print $3}')
-CRED=`$DO_TIMEOUT gnunet-credential --issue --ego=testissuer 
--subject=$SUBJECT_KEY --attribute=$TEST_ATTR --ttl=5m -c 
test_credential_lookup.conf`
-
-TEST_CREDENTIAL="t1"
-gnunet-namestore -p -z testsubject -a -n $TEST_CREDENTIAL -t CRED -V "$CRED" 
-e 5m -c test_credential_lookup.conf
-
-CREDS=`$DO_TIMEOUT gnunet-credential --collect --issuer=$ISSUER_KEY 
--attribute=$TEST_ATTR --ego=testsubject -c test_credential_lookup.conf | paste 
-d, -s`
-
-
-#TODO2 Add -z swich like in gnunet-gns
-#RES_CRED=`$DO_TIMEOUT gnunet-credential --verify --issuer=$ISSUER_KEY 
--attribute="$TEST_ATTR" --subject=$SUBJECT_KEY --credential=$TEST_CREDENTIAL 
-c test_credential_lookup.conf`
-RES_CRED=`gnunet-credential --verify --issuer=$ISSUER_KEY 
--attribute=$TEST_ATTR --subject=$SUBJECT_KEY --credential="$CREDS" -c 
test_credential_lookup.conf`
-
-#TODO cleanup properly
-gnunet-namestore -z testsubject -d -n $TEST_CREDENTIAL -t CRED -e never -c 
test_credential_lookup.conf
-gnunet-identity -D testsubject -c test_credential_lookup.conf
-gnunet-arm -e -c test_credential_lookup.conf
-#TODO3 proper test
-if [ "$RES_CRED" != "Failed." ]
-then
-  exit 0
-else
-  echo "FAIL: Failed to verify credential."
-  exit 1
-fi
diff --git a/src/include/Makefile.am b/src/include/Makefile.am
index 9e0813425..c81f8e7d8 100644
--- a/src/include/Makefile.am
+++ b/src/include/Makefile.am
@@ -23,6 +23,7 @@ else
 gnunetinclude_HEADERS = \
   platform.h gettext.h \
   compat.h \
+  gnunet_abd_service.h \
   gnunet_applications.h \
   gnunet_arm_service.h \
   gnunet_ats_service.h \
@@ -42,7 +43,6 @@ gnunetinclude_HEADERS = \
   gnunet_container_lib.h \
   gnunet_conversation_service.h \
   gnunet_core_service.h \
-  gnunet_credential_service.h \
   gnunet_crypto_lib.h \
   gnunet_curl_lib.h \
   gnunet_datacache_lib.h \
diff --git a/src/include/gnunet_credential_service.h 
b/src/include/gnunet_abd_service.h
similarity index 61%
rename from src/include/gnunet_credential_service.h
rename to src/include/gnunet_abd_service.h
index 05cdb7c9f..b50ff8b86 100644
--- a/src/include/gnunet_credential_service.h
+++ b/src/include/gnunet_abd_service.h
@@ -11,7 +11,7 @@
       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/>.
 
@@ -24,13 +24,13 @@
  * @file
  * API to the Credential service
  *
- * @defgroup credential  Credential service
+ * @defgroup abd  Credential service
  * Credentials
  *
  * @{
  */
-#ifndef GNUNET_CREDENTIAL_SERVICE_H
-#define GNUNET_CREDENTIAL_SERVICE_H
+#ifndef GNUNET_ABD_SERVICE_H
+#define GNUNET_ABD_SERVICE_H
 
 #include "gnunet_util_lib.h"
 #include "gnunet_gns_service.h"
@@ -48,34 +48,35 @@ extern "C"
 /**
  * Connection to the Credential service.
  */
-struct GNUNET_CREDENTIAL_Handle;
+struct GNUNET_ABD_Handle;
 
 /**
  * Handle to control a lookup operation.
  */
-struct GNUNET_CREDENTIAL_Request;
+struct GNUNET_ABD_Request;
 
 /*
- * Enum used for checking whether the issuer has the authority to issue 
credentials or is just a subject
- */
-enum GNUNET_CREDENTIAL_CredentialFlags
-{
-  // Subject had credentials before, but have been revoked now
-  GNUNET_CREDENTIAL_FLAG_REVOKED=0,
+* Enum used for checking whether the issuer has the authority to issue 
credentials or is just a subject
+*/
+enum GNUNET_ABD_CredentialFlags {
+
+  //Subject had credentials before, but have been revoked now
+  GNUNET_ABD_FLAG_REVOKED=0,
 
-  // Subject flag indicates that the subject is a holder of this credential 
and may present it as such
-  GNUNET_CREDENTIAL_FLAG_SUBJECT=1,
+  //Subject flag indicates that the subject is a holder of this credential and 
may present it as such
+  GNUNET_ABD_FLAG_SUBJECT=1,
+
+  //Issuer flag is used to signify that the subject is allowed to issue this 
credential and delegate issuance
+  GNUNET_ABD_FLAG_ISSUER=2
 
-  // Issuer flag is used to signify that the subject is allowed to issue this 
credential and delegate issuance
-  GNUNET_CREDENTIAL_FLAG_ISSUER=2
 };
 
 GNUNET_NETWORK_STRUCT_BEGIN
 /**
  * The attribute delegation record
  */
-struct GNUNET_CREDENTIAL_DelegationRecord
-{
+struct GNUNET_ABD_DelegationRecord {
+
   /**
    * Number of delegation sets in this record
    */
@@ -94,8 +95,8 @@ struct GNUNET_CREDENTIAL_DelegationRecord
 /**
  * The attribute delegation record
  */
-struct GNUNET_CREDENTIAL_DelegationRecordSet
-{
+struct GNUNET_ABD_DelegationRecordSet {
+
   /**
    * Public key of the subject this attribute was delegated to
    */
@@ -113,8 +114,8 @@ GNUNET_NETWORK_STRUCT_END
 /**
  * The attribute delegation record
  */
-struct GNUNET_CREDENTIAL_DelegationSet
-{
+struct GNUNET_ABD_DelegationSet {
+
   /**
    * Public key of the subject this attribute was delegated to
    */
@@ -132,8 +133,8 @@ struct GNUNET_CREDENTIAL_DelegationSet
 /**
  * A delegation
  */
-struct GNUNET_CREDENTIAL_Delegation
-{
+struct GNUNET_ABD_Delegation {
+
   /**
    * The issuer of the delegation
    */
@@ -167,10 +168,10 @@ struct GNUNET_CREDENTIAL_Delegation
 
 
 /**
- * A credential
+ * A delegate
  */
-struct GNUNET_CREDENTIAL_Credential
-{
+struct GNUNET_ABD_Delegate {
+
   /**
    * The issuer of the credential
    */
@@ -192,17 +193,39 @@ struct GNUNET_CREDENTIAL_Credential
   struct GNUNET_TIME_Absolute expiration;
 
   /**
-   * Length of the attribute
+   * Length of the issuer attribute
    */
   uint32_t issuer_attribute_len;
 
   /**
-   * The attribute
+   * The issuer attribute
    */
   const char *issuer_attribute;
+
+  /**
+   * Length of the subject attribute
+   */
+  uint32_t subject_attribute_len;
+
+  /**
+   * The subject attribute
+   */
+  const char *subject_attribute;
+
 };
 
+/*
+* Enum used for checking whether the issuer has the authority to issue 
credentials or is just a subject
+*/
+enum GNUNET_ABD_AlgoDirectionFlags {
+
+  //Subject had credentials before, but have been revoked now
+  GNUNET_ABD_FLAG_FORWARD=1 << 0,
+
+  //Subject flag indicates that the subject is a holder of this credential and 
may present it as such
+  GNUNET_ABD_FLAG_BACKWARD=1 << 1
 
+};
 
 /**
  * Initialize the connection with the Credential service.
@@ -210,8 +233,8 @@ struct GNUNET_CREDENTIAL_Credential
  * @param cfg configuration to use
  * @return handle to the Credential service, or NULL on error
  */
-struct GNUNET_CREDENTIAL_Handle *
-GNUNET_CREDENTIAL_connect (const struct GNUNET_CONFIGURATION_Handle *cfg);
+struct GNUNET_ABD_Handle *
+GNUNET_ABD_connect (const struct GNUNET_CONFIGURATION_Handle *cfg);
 
 
 /**
@@ -220,7 +243,7 @@ GNUNET_CREDENTIAL_connect (const struct 
GNUNET_CONFIGURATION_Handle *cfg);
  * @param handle connection to shut down
  */
 void
-GNUNET_CREDENTIAL_disconnect (struct GNUNET_CREDENTIAL_Handle *handle);
+GNUNET_ABD_disconnect (struct GNUNET_ABD_Handle *handle);
 
 
 /**
@@ -229,20 +252,18 @@ GNUNET_CREDENTIAL_disconnect (struct 
GNUNET_CREDENTIAL_Handle *handle);
  * @param cls closure
  * @param d_count the number of delegations processed
  * @param delegation_chain the delegations processed
- * @param c_count the number of credentials found
- * @param credential the credentials
+ * @param c_count the number of delegates found
+ * @param delegate the delegates
  */
-typedef void (*GNUNET_CREDENTIAL_CredentialResultProcessor) (void *cls,
-                                                             unsigned int
-                                                             d_count,
-                                                             struct
-                                                             
GNUNET_CREDENTIAL_Delegation
-                                                             *delegation_chain,
-                                                             unsigned int
-                                                             c_count,
-                                                             struct
-                                                             
GNUNET_CREDENTIAL_Credential
-                                                             *credential);
+typedef void (*GNUNET_ABD_CredentialResultProcessor) (void *cls,
+                                                         unsigned int d_count,
+                                                         struct 
GNUNET_ABD_Delegation *delegation_chain,
+                                                         unsigned int c_count,
+                                                         struct 
GNUNET_ABD_Delegate *delegte);
+                                                        
+typedef void (*GNUNET_ABD_IntermediateResultProcessor) (void *cls,
+                                                         struct 
GNUNET_ABD_Delegation *delegation,
+                                                         bool is_bw);
 
 /**
  * Iterator called on obtained result for an attribute delegation.
@@ -251,7 +272,7 @@ typedef void (*GNUNET_CREDENTIAL_CredentialResultProcessor) 
(void *cls,
  * @param success GNUNET_YES if successful
  * @param result the record data that can be handed to the subject
  */
-typedef void (*GNUNET_CREDENTIAL_DelegateResultProcessor) (void *cls,
+typedef void (*GNUNET_ABD_DelegateResultProcessor) (void *cls,
                                                            uint32_t success);
 
 /**
@@ -261,9 +282,8 @@ typedef void (*GNUNET_CREDENTIAL_DelegateResultProcessor) 
(void *cls,
  * @param success GNUNET_YES if successful
  * @param result the record data that can be handed to the subject
  */
-typedef void (*GNUNET_CREDENTIAL_RemoveDelegateResultProcessor) (void *cls,
-                                                                 uint32_t
-                                                                 success);
+typedef void (*GNUNET_ABD_RemoveDelegateResultProcessor) (void *cls,
+                                                                 uint32_t 
success);
 
 
 /**
@@ -278,33 +298,35 @@ typedef void 
(*GNUNET_CREDENTIAL_RemoveDelegateResultProcessor) (void *cls,
  * @param issuer_key the issuer public key
  * @param issuer_attribute the issuer attribute
  * @param subject_key the subject public key
- * @param credential_count number of credentials
- * @param credentials the subject credentials
+ * @param delegate_count number of delegates
+ * @param delegates the subject delegates
  * @param proc function to call on result
  * @param proc_cls closure for processor
  * @return handle to the queued request
  */
-struct GNUNET_CREDENTIAL_Request*
-GNUNET_CREDENTIAL_verify (struct GNUNET_CREDENTIAL_Handle *handle,
+struct GNUNET_ABD_Request*
+GNUNET_ABD_verify (struct GNUNET_ABD_Handle *handle,
                           const struct GNUNET_CRYPTO_EcdsaPublicKey 
*issuer_key,
                           const char *issuer_attribute,
-                          const struct
-                          GNUNET_CRYPTO_EcdsaPublicKey *subject_key,
-                          uint32_t credential_count,
-                          const struct
-                          GNUNET_CREDENTIAL_Credential *credentials,
-                          GNUNET_CREDENTIAL_CredentialResultProcessor proc,
-                          void *proc_cls);
-
-struct GNUNET_CREDENTIAL_Request*
-GNUNET_CREDENTIAL_collect (struct GNUNET_CREDENTIAL_Handle *handle,
-                           const struct
-                           GNUNET_CRYPTO_EcdsaPublicKey *issuer_key,
+                          const struct GNUNET_CRYPTO_EcdsaPublicKey 
*subject_key,
+                          uint32_t delegate_count,
+                          const struct GNUNET_ABD_Delegate *delegates,
+                          enum GNUNET_ABD_AlgoDirectionFlags direction,
+                          GNUNET_ABD_CredentialResultProcessor proc,
+                          void *proc_cls,
+                          GNUNET_ABD_IntermediateResultProcessor,
+                          void *proc2_cls);
+
+struct GNUNET_ABD_Request*
+GNUNET_ABD_collect (struct GNUNET_ABD_Handle *handle,
+                           const struct GNUNET_CRYPTO_EcdsaPublicKey 
*issuer_key,
                            const char *issuer_attribute,
-                           const struct
-                           GNUNET_CRYPTO_EcdsaPrivateKey *subject_key,
-                           GNUNET_CREDENTIAL_CredentialResultProcessor proc,
-                           void *proc_cls);
+                           const struct GNUNET_CRYPTO_EcdsaPrivateKey 
*subject_key,
+                           enum GNUNET_ABD_AlgoDirectionFlags direction,
+                           GNUNET_ABD_CredentialResultProcessor proc,
+                           void *proc_cls,
+                           GNUNET_ABD_IntermediateResultProcessor,
+                           void *proc2_cls);
 
 /**
  * Delegate an attribute
@@ -318,13 +340,13 @@ GNUNET_CREDENTIAL_collect (struct 
GNUNET_CREDENTIAL_Handle *handle,
  * @param proc_cls the result closure context
  * @return handle to the queued request
  */
-struct GNUNET_CREDENTIAL_Request *
-GNUNET_CREDENTIAL_add_delegation (struct GNUNET_CREDENTIAL_Handle *handle,
+struct GNUNET_ABD_Request *
+GNUNET_ABD_add_delegation (struct GNUNET_ABD_Handle *handle,
                                   struct GNUNET_IDENTITY_Ego *issuer,
                                   const char *attribute,
                                   struct GNUNET_CRYPTO_EcdsaPublicKey *subject,
                                   const char *delegated_attribute,
-                                  GNUNET_CREDENTIAL_DelegateResultProcessor 
proc,
+                                  GNUNET_ABD_DelegateResultProcessor proc,
                                   void *proc_cls);
 
 /**
@@ -337,12 +359,11 @@ GNUNET_CREDENTIAL_add_delegation (struct 
GNUNET_CREDENTIAL_Handle *handle,
  * @param proc_cls callback closure
  * @return handle to the queued request
  */
-struct GNUNET_CREDENTIAL_Request *
-GNUNET_CREDENTIAL_remove_delegation (struct GNUNET_CREDENTIAL_Handle *handle,
+struct GNUNET_ABD_Request *
+GNUNET_ABD_remove_delegation (struct GNUNET_ABD_Handle *handle,
                                      struct GNUNET_IDENTITY_Ego *issuer,
                                      const char *attribute,
-                                     
GNUNET_CREDENTIAL_RemoveDelegateResultProcessor
-                                     proc,
+                                     GNUNET_ABD_RemoveDelegateResultProcessor 
proc,
                                      void *proc_cls);
 
 
@@ -356,22 +377,21 @@ GNUNET_CREDENTIAL_remove_delegation (struct 
GNUNET_CREDENTIAL_Handle *handle,
  * @param expiration the TTL of the credential
  * @return handle to the queued request
  */
-struct GNUNET_CREDENTIAL_Credential*
-GNUNET_CREDENTIAL_credential_issue (const struct
-                                    GNUNET_CRYPTO_EcdsaPrivateKey *issuer,
+struct GNUNET_ABD_Delegate*
+GNUNET_ABD_delegate_issue (const struct GNUNET_CRYPTO_EcdsaPrivateKey *issuer,
                                     struct GNUNET_CRYPTO_EcdsaPublicKey 
*subject,
-                                    const char *attribute,
+                                    const char *iss_attr,
+                                    const char *sub_attr,
                                     struct GNUNET_TIME_Absolute *expiration);
 
 
-
 /**
  * Cancel pending lookup request
  *
  * @param lr the lookup request to cancel
  */
 void
-GNUNET_CREDENTIAL_request_cancel (struct GNUNET_CREDENTIAL_Request *lr);
+GNUNET_ABD_request_cancel (struct GNUNET_ABD_Request *lr);
 
 
 #if 0                           /* keep Emacsens' auto-indent happy */
diff --git a/src/include/gnunet_gnsrecord_lib.h 
b/src/include/gnunet_gnsrecord_lib.h
index f5b2f0dd1..3a49d98b9 100644
--- a/src/include/gnunet_gnsrecord_lib.h
+++ b/src/include/gnunet_gnsrecord_lib.h
@@ -107,14 +107,13 @@ extern "C" {
  */
 
 /**
- * Record type for credential
+ * 65547 deleted, free to use
  */
-#define GNUNET_GNSRECORD_TYPE_CREDENTIAL 65547
 
 /**
  * Record type for policies
  */
-#define GNUNET_GNSRECORD_TYPE_POLICY 65548
+#define GNUNET_GNSRECORD_TYPE_DELEGATE 65548
 
 /**
  * Record type for reverse lookups
diff --git a/src/include/gnunet_protocols.h b/src/include/gnunet_protocols.h
index c932c44d0..cd7cb50de 100644
--- a/src/include/gnunet_protocols.h
+++ b/src/include/gnunet_protocols.h
@@ -2716,15 +2716,17 @@ extern "C" {
 
 /**************************************************
  *
- * CREDENTIAL MESSAGE TYPES
+ * ABD MESSAGE TYPES
  */
-#define GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY 981
+#define GNUNET_MESSAGE_TYPE_ABD_VERIFY 981
 
-#define GNUNET_MESSAGE_TYPE_CREDENTIAL_VERIFY_RESULT 982
+#define GNUNET_MESSAGE_TYPE_ABD_VERIFY_RESULT 982
 
-#define GNUNET_MESSAGE_TYPE_CREDENTIAL_COLLECT 983
+#define GNUNET_MESSAGE_TYPE_ABD_COLLECT 983
 
-#define GNUNET_MESSAGE_TYPE_CREDENTIAL_COLLECT_RESULT 984
+#define GNUNET_MESSAGE_TYPE_ABD_COLLECT_RESULT 984
+
+#define GNUNET_MESSAGE_TYPE_ABD_INTERMEDIATE_RESULT 985
 
 
/******************************************************************************/
 
diff --git a/src/include/gnunet_signatures.h b/src/include/gnunet_signatures.h
index 6801c641e..a00e0372d 100644
--- a/src/include/gnunet_signatures.h
+++ b/src/include/gnunet_signatures.h
@@ -188,7 +188,7 @@ extern "C"
 /**
  * Signature for a GNUnet credential
  */
-#define GNUNET_SIGNATURE_PURPOSE_CREDENTIAL 28
+#define GNUNET_SIGNATURE_PURPOSE_DELEGATE 28
 
 /**
  * Signature by a peer affirming that this is one of its

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]